ppb_audio_input_dev_thunk.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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 dev/ppb_audio_input_dev.idl modified Fri Feb 22 11:43:43 2013. 6 7#include "ppapi/c/dev/ppb_audio_input_dev.h" 8#include "ppapi/c/pp_completion_callback.h" 9#include "ppapi/c/pp_errors.h" 10#include "ppapi/shared_impl/tracked_callback.h" 11#include "ppapi/thunk/enter.h" 12#include "ppapi/thunk/ppb_audio_input_api.h" 13#include "ppapi/thunk/ppb_instance_api.h" 14#include "ppapi/thunk/resource_creation_api.h" 15#include "ppapi/thunk/thunk.h" 16 17namespace ppapi { 18namespace thunk { 19 20namespace { 21 22PP_Resource Create(PP_Instance instance) { 23 EnterResourceCreation enter(instance); 24 if (enter.failed()) 25 return 0; 26 return enter.functions()->CreateAudioInput(instance); 27} 28 29PP_Bool IsAudioInput(PP_Resource resource) { 30 EnterResource<PPB_AudioInput_API> enter(resource, false); 31 return PP_FromBool(enter.succeeded()); 32} 33 34int32_t EnumerateDevices_0_2(PP_Resource audio_input, 35 PP_Resource* devices, 36 struct PP_CompletionCallback callback) { 37 EnterResource<PPB_AudioInput_API> enter(audio_input, callback, true); 38 if (enter.failed()) 39 return enter.retval(); 40 return enter.SetResult(enter.object()->EnumerateDevices0_2( 41 devices, 42 enter.callback())); 43} 44 45int32_t EnumerateDevices(PP_Resource audio_input, 46 struct PP_ArrayOutput output, 47 struct PP_CompletionCallback callback) { 48 EnterResource<PPB_AudioInput_API> enter(audio_input, callback, true); 49 if (enter.failed()) 50 return enter.retval(); 51 return enter.SetResult(enter.object()->EnumerateDevices(output, 52 enter.callback())); 53} 54 55int32_t MonitorDeviceChange(PP_Resource audio_input, 56 PP_MonitorDeviceChangeCallback callback, 57 void* user_data) { 58 EnterResource<PPB_AudioInput_API> enter(audio_input, true); 59 if (enter.failed()) 60 return enter.retval(); 61 return enter.object()->MonitorDeviceChange(callback, user_data); 62} 63 64int32_t Open(PP_Resource audio_input, 65 PP_Resource device_ref, 66 PP_Resource config, 67 PPB_AudioInput_Callback audio_input_callback, 68 void* user_data, 69 struct PP_CompletionCallback callback) { 70 EnterResource<PPB_AudioInput_API> enter(audio_input, callback, true); 71 if (enter.failed()) 72 return enter.retval(); 73 return enter.SetResult(enter.object()->Open(device_ref, 74 config, 75 audio_input_callback, 76 user_data, 77 enter.callback())); 78} 79 80PP_Resource GetCurrentConfig(PP_Resource audio_input) { 81 EnterResource<PPB_AudioInput_API> enter(audio_input, true); 82 if (enter.failed()) 83 return 0; 84 return enter.object()->GetCurrentConfig(); 85} 86 87PP_Bool StartCapture(PP_Resource audio_input) { 88 EnterResource<PPB_AudioInput_API> enter(audio_input, true); 89 if (enter.failed()) 90 return PP_FALSE; 91 return enter.object()->StartCapture(); 92} 93 94PP_Bool StopCapture(PP_Resource audio_input) { 95 EnterResource<PPB_AudioInput_API> enter(audio_input, true); 96 if (enter.failed()) 97 return PP_FALSE; 98 return enter.object()->StopCapture(); 99} 100 101void Close(PP_Resource audio_input) { 102 EnterResource<PPB_AudioInput_API> enter(audio_input, true); 103 if (enter.succeeded()) 104 enter.object()->Close(); 105} 106 107const PPB_AudioInput_Dev_0_2 g_ppb_audioinput_dev_thunk_0_2 = { 108 &Create, 109 &IsAudioInput, 110 &EnumerateDevices_0_2, 111 &Open, 112 &GetCurrentConfig, 113 &StartCapture, 114 &StopCapture, 115 &Close 116}; 117 118const PPB_AudioInput_Dev_0_3 g_ppb_audioinput_dev_thunk_0_3 = { 119 &Create, 120 &IsAudioInput, 121 &EnumerateDevices, 122 &MonitorDeviceChange, 123 &Open, 124 &GetCurrentConfig, 125 &StartCapture, 126 &StopCapture, 127 &Close 128}; 129 130} // namespace 131 132const PPB_AudioInput_Dev_0_2* GetPPB_AudioInput_Dev_0_2_Thunk() { 133 return &g_ppb_audioinput_dev_thunk_0_2; 134} 135 136const PPB_AudioInput_Dev_0_3* GetPPB_AudioInput_Dev_0_3_Thunk() { 137 return &g_ppb_audioinput_dev_thunk_0_3; 138} 139 140} // namespace thunk 141} // namespace ppapi 142