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 10namespace pp { 11 12namespace { 13 14template <> const char* interface_name<PPB_Audio_1_0>() { 15 return PPB_AUDIO_INTERFACE_1_0; 16} 17 18} // namespace 19 20Audio::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 31bool Audio::StartPlayback() { 32 return has_interface<PPB_Audio_1_0>() && 33 get_interface<PPB_Audio_1_0>()->StartPlayback(pp_resource()); 34} 35 36bool 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