1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "ppapi/cpp/audio.h" 6 7 #include "ppapi/cpp/instance_handle.h" 8 #include "ppapi/cpp/module_impl.h" 9 10 namespace pp { 11 12 namespace { 13 14 template <> const char* interface_name<PPB_Audio_1_0>() { 15 return PPB_AUDIO_INTERFACE_1_0; 16 } 17 18 } // namespace 19 20 Audio::Audio(const InstanceHandle& instance, 21 const AudioConfig& config, 22 PPB_Audio_Callback callback, 23 void* user_data) 24 : config_(config) { 25 if (has_interface<PPB_Audio_1_0>()) { 26 PassRefFromConstructor(get_interface<PPB_Audio_1_0>()->Create( 27 instance.pp_instance(), config.pp_resource(), callback, user_data)); 28 } 29 } 30 31 bool Audio::StartPlayback() { 32 return has_interface<PPB_Audio_1_0>() && 33 get_interface<PPB_Audio_1_0>()->StartPlayback(pp_resource()); 34 } 35 36 bool Audio::StopPlayback() { 37 return has_interface<PPB_Audio_1_0>() && 38 get_interface<PPB_Audio_1_0>()->StopPlayback(pp_resource()); 39 } 40 41 } // namespace pp 42