| Index: ppapi/thunk/ppb_audio_input_thunk.cc
|
| diff --git a/ppapi/thunk/ppb_audio_input_thunk.cc b/ppapi/thunk/ppb_audio_input_thunk.cc
|
| index f2a65c891b99f56cb7578f87eec7abe19fe188d5..9102dc588b9d5c4516d661dd3bad5097c7f92b8e 100644
|
| --- a/ppapi/thunk/ppb_audio_input_thunk.cc
|
| +++ b/ppapi/thunk/ppb_audio_input_thunk.cc
|
| @@ -3,7 +3,9 @@
|
| // found in the LICENSE file.
|
|
|
| #include "ppapi/c/pp_errors.h"
|
| +#include "ppapi/shared_impl/ppb_device_ref_shared.h"
|
| #include "ppapi/thunk/enter.h"
|
| +#include "ppapi/thunk/ppb_device_ref_api.h"
|
| #include "ppapi/thunk/ppb_audio_input_api.h"
|
| #include "ppapi/thunk/resource_creation_api.h"
|
| #include "ppapi/thunk/thunk.h"
|
| @@ -15,16 +17,24 @@ namespace {
|
|
|
| typedef EnterResource<PPB_AudioInput_API> EnterAudioInput;
|
|
|
| -PP_Resource Create(PP_Instance instance,
|
| - PP_Resource config_id,
|
| - PPB_AudioInput_Callback callback,
|
| - void* user_data) {
|
| - EnterFunction<ResourceCreationAPI> enter(instance, true);
|
| +PP_Resource Create0_1(PP_Instance instance,
|
| + PP_Resource config,
|
| + PPB_AudioInput_Callback audio_input_callback,
|
| + void* user_data) {
|
| + EnterResourceCreation enter(instance);
|
| if (enter.failed())
|
| return 0;
|
|
|
| - return enter.functions()->CreateAudioInput(instance, config_id,
|
| - callback, user_data);
|
| + return enter.functions()->CreateAudioInput0_1(
|
| + instance, config, audio_input_callback, user_data);
|
| +}
|
| +
|
| +PP_Resource Create0_2(PP_Instance instance) {
|
| + EnterResourceCreation enter(instance);
|
| + if (enter.failed())
|
| + return 0;
|
| +
|
| + return enter.functions()->CreateAudioInput(instance);
|
| }
|
|
|
| PP_Bool IsAudioInput(PP_Resource resource) {
|
| @@ -32,8 +42,42 @@ PP_Bool IsAudioInput(PP_Resource resource) {
|
| return PP_FromBool(enter.succeeded());
|
| }
|
|
|
| -PP_Resource GetCurrentConfiguration(PP_Resource audio_id) {
|
| - EnterAudioInput enter(audio_id, true);
|
| +int32_t EnumerateDevices(PP_Resource audio_input,
|
| + PP_Resource* devices,
|
| + PP_CompletionCallback callback) {
|
| + EnterAudioInput enter(audio_input, callback, true);
|
| + if (enter.failed())
|
| + return enter.retval();
|
| +
|
| + return enter.SetResult(enter.object()->EnumerateDevices(devices, callback));
|
| +}
|
| +
|
| +int32_t Open(PP_Resource audio_input,
|
| + PP_Resource device_ref,
|
| + PP_Resource config,
|
| + PPB_AudioInput_Callback audio_input_callback,
|
| + void* user_data,
|
| + PP_CompletionCallback callback) {
|
| + EnterAudioInput enter(audio_input, callback, true);
|
| + if (enter.failed())
|
| + return enter.retval();
|
| +
|
| + std::string device_id;
|
| + // |device_id| remains empty if |device_ref| is 0, which means the default
|
| + // device.
|
| + if (device_ref != 0) {
|
| + EnterResourceNoLock<PPB_DeviceRef_API> enter_device_ref(device_ref, true);
|
| + if (enter_device_ref.failed())
|
| + return enter.SetResult(PP_ERROR_BADRESOURCE);
|
| + device_id = enter_device_ref.object()->GetDeviceRefData().id;
|
| + }
|
| +
|
| + return enter.SetResult(enter.object()->Open(
|
| + device_id, config, audio_input_callback, user_data, callback));
|
| +}
|
| +
|
| +PP_Resource GetCurrentConfig(PP_Resource audio_input) {
|
| + EnterAudioInput enter(audio_input, true);
|
| if (enter.failed())
|
| return 0;
|
| return enter.object()->GetCurrentConfig();
|
| @@ -55,18 +99,39 @@ PP_Bool StopCapture(PP_Resource audio_input) {
|
| return enter.object()->StopCapture();
|
| }
|
|
|
| -const PPB_AudioInput_Dev g_ppb_audioinput_thunk = {
|
| - &Create,
|
| +void Close(PP_Resource audio_input) {
|
| + EnterAudioInput enter(audio_input, true);
|
| + if (enter.succeeded())
|
| + enter.object()->Close();
|
| +}
|
| +
|
| +const PPB_AudioInput_Dev_0_1 g_ppb_audioinput_0_1_thunk = {
|
| + &Create0_1,
|
| &IsAudioInput,
|
| - &GetCurrentConfiguration,
|
| + &GetCurrentConfig,
|
| &StartCapture,
|
| &StopCapture
|
| };
|
|
|
| +const PPB_AudioInput_Dev_0_2 g_ppb_audioinput_0_2_thunk = {
|
| + &Create0_2,
|
| + &IsAudioInput,
|
| + &EnumerateDevices,
|
| + &Open,
|
| + &GetCurrentConfig,
|
| + &StartCapture,
|
| + &StopCapture,
|
| + &Close
|
| +};
|
| +
|
| } // namespace
|
|
|
| const PPB_AudioInput_Dev_0_1* GetPPB_AudioInput_Dev_0_1_Thunk() {
|
| - return &g_ppb_audioinput_thunk;
|
| + return &g_ppb_audioinput_0_1_thunk;
|
| +}
|
| +
|
| +const PPB_AudioInput_Dev_0_2* GetPPB_AudioInput_Dev_0_2_Thunk() {
|
| + return &g_ppb_audioinput_0_2_thunk;
|
| }
|
|
|
| } // namespace thunk
|
|
|