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 // From ppb_audio.idl modified Thu Dec 20 13:10:26 2012. 6 7 #include "ppapi/c/pp_errors.h" 8 #include "ppapi/c/ppb_audio.h" 9 #include "ppapi/shared_impl/tracked_callback.h" 10 #include "ppapi/thunk/enter.h" 11 #include "ppapi/thunk/ppb_audio_api.h" 12 #include "ppapi/thunk/ppb_instance_api.h" 13 #include "ppapi/thunk/resource_creation_api.h" 14 #include "ppapi/thunk/thunk.h" 15 16 namespace ppapi { 17 namespace thunk { 18 19 namespace { 20 21 PP_Resource Create(PP_Instance instance, 22 PP_Resource config, 23 PPB_Audio_Callback audio_callback, 24 void* user_data) { 25 VLOG(4) << "PPB_Audio::Create()"; 26 EnterResourceCreation enter(instance); 27 if (enter.failed()) 28 return 0; 29 return enter.functions()->CreateAudio(instance, 30 config, 31 audio_callback, 32 user_data); 33 } 34 35 PP_Bool IsAudio(PP_Resource resource) { 36 VLOG(4) << "PPB_Audio::IsAudio()"; 37 EnterResource<PPB_Audio_API> enter(resource, false); 38 return PP_FromBool(enter.succeeded()); 39 } 40 41 PP_Resource GetCurrentConfig(PP_Resource audio) { 42 VLOG(4) << "PPB_Audio::GetCurrentConfig()"; 43 EnterResource<PPB_Audio_API> enter(audio, true); 44 if (enter.failed()) 45 return 0; 46 return enter.object()->GetCurrentConfig(); 47 } 48 49 PP_Bool StartPlayback(PP_Resource audio) { 50 VLOG(4) << "PPB_Audio::StartPlayback()"; 51 EnterResource<PPB_Audio_API> enter(audio, true); 52 if (enter.failed()) 53 return PP_FALSE; 54 return enter.object()->StartPlayback(); 55 } 56 57 PP_Bool StopPlayback(PP_Resource audio) { 58 VLOG(4) << "PPB_Audio::StopPlayback()"; 59 EnterResource<PPB_Audio_API> enter(audio, true); 60 if (enter.failed()) 61 return PP_FALSE; 62 return enter.object()->StopPlayback(); 63 } 64 65 const PPB_Audio_1_0 g_ppb_audio_thunk_1_0 = { 66 &Create, 67 &IsAudio, 68 &GetCurrentConfig, 69 &StartPlayback, 70 &StopPlayback 71 }; 72 73 } // namespace 74 75 const PPB_Audio_1_0* GetPPB_Audio_1_0_Thunk() { 76 return &g_ppb_audio_thunk_1_0; 77 } 78 79 } // namespace thunk 80 } // namespace ppapi 81