Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Unified Diff: ppapi/cpp/audio.cc

Issue 22320004: Add a new parameter |latency| to PPB_Audio. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/cpp/audio.h ('k') | ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/cpp/audio.cc
diff --git a/ppapi/cpp/audio.cc b/ppapi/cpp/audio.cc
index 89702be0072dcbea78dfe038445d6f3c3f4e0265..04a3062cb18cdf14a9abf99965077f96a3f6dc70 100644
--- a/ppapi/cpp/audio.cc
+++ b/ppapi/cpp/audio.cc
@@ -15,13 +15,30 @@ template <> const char* interface_name<PPB_Audio_1_0>() {
return PPB_AUDIO_INTERFACE_1_0;
}
+template <> const char* interface_name<PPB_Audio_1_1>() {
+ return PPB_AUDIO_INTERFACE_1_1;
+}
+
} // namespace
Audio::Audio(const InstanceHandle& instance,
const AudioConfig& config,
PPB_Audio_Callback callback,
void* user_data)
- : config_(config) {
+ : config_(config),
+ use_1_0_interface_(false) {
+ if (has_interface<PPB_Audio_1_1>()) {
+ PassRefFromConstructor(get_interface<PPB_Audio_1_1>()->Create(
+ instance.pp_instance(), config.pp_resource(), callback, user_data));
+ }
+}
+
+Audio::Audio(const InstanceHandle& instance,
+ const AudioConfig& config,
+ PPB_Audio_Callback_1_0 callback,
+ void* user_data)
+ : config_(config),
+ use_1_0_interface_(true) {
if (has_interface<PPB_Audio_1_0>()) {
PassRefFromConstructor(get_interface<PPB_Audio_1_0>()->Create(
instance.pp_instance(), config.pp_resource(), callback, user_data));
@@ -29,13 +46,27 @@ Audio::Audio(const InstanceHandle& instance,
}
bool Audio::StartPlayback() {
- return has_interface<PPB_Audio_1_0>() &&
- get_interface<PPB_Audio_1_0>()->StartPlayback(pp_resource());
+ if (has_interface<PPB_Audio_1_1>() && !use_1_0_interface_) {
+ return PP_ToBool(get_interface<PPB_Audio_1_1>()->StartPlayback(
+ pp_resource()));
+ }
+ if (has_interface<PPB_Audio_1_0>()) {
+ return PP_ToBool(get_interface<PPB_Audio_1_0>()->StartPlayback(
+ pp_resource()));
+ }
+ return false;
}
bool Audio::StopPlayback() {
- return has_interface<PPB_Audio_1_0>() &&
- get_interface<PPB_Audio_1_0>()->StopPlayback(pp_resource());
+ if (has_interface<PPB_Audio_1_1>() && !use_1_0_interface_) {
+ return PP_ToBool(get_interface<PPB_Audio_1_1>()->StopPlayback(
+ pp_resource()));
+ }
+ if (has_interface<PPB_Audio_1_0>()) {
+ return PP_ToBool(get_interface<PPB_Audio_1_0>()->StopPlayback(
+ pp_resource()));
+ }
+ return false;
}
} // namespace pp
« no previous file with comments | « ppapi/cpp/audio.h ('k') | ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698