Index: ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_audio_config_rpc_server.cc |
=================================================================== |
--- ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_audio_config_rpc_server.cc (revision 0) |
+++ ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_audio_config_rpc_server.cc (revision 0) |
@@ -0,0 +1,128 @@ |
+// Copyright (c) 2010 The Native Client Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+// |
+// SRPC-abstraction wrappers around PPB_AudioConfig functions. |
+ |
+#include "ppapi/c/ppb_audio_config.h" |
+#include "native_client/src/include/portability.h" |
+#include "native_client/src/shared/ppapi_proxy/browser_globals.h" |
+#include "native_client/src/shared/ppapi_proxy/plugin_globals.h" |
+#include "native_client/src/shared/ppapi_proxy/utility.h" |
+#include "srpcgen/ppb_rpc.h" |
+ |
+using ppapi_proxy::DebugPrintf; |
+ |
+static const PPB_AudioConfig* GetAudioConfigInterface() { |
+ static const PPB_AudioConfig* audioConfig = |
+ static_cast<const PPB_AudioConfig*> |
+ (ppapi_proxy::GetBrowserInterface(PPB_AUDIO_CONFIG_INTERFACE)); |
+ return audioConfig; |
+} |
+ |
+void PpbAudioConfigRpcServer::PPB_AudioConfig_CreateStereo16Bit( |
+ NaClSrpcRpc* rpc, |
+ NaClSrpcClosure* done, |
+ PP_Instance instance, |
+ int32_t sample_rate, |
+ int32_t sample_frame_count, |
+ PP_Resource* resource) { |
+ NaClSrpcClosureRunner runner(done); |
+ const PPB_AudioConfig* audio = GetAudioConfigInterface(); |
+ rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
+ if (NULL == audio) { |
+ return; |
+ } |
+ if (NULL == resource) { |
+ return; |
+ } |
+ *resource = audio->CreateStereo16Bit( |
+ instance, static_cast<PP_AudioSampleRate>(sample_rate), |
+ sample_frame_count); |
+ DebugPrintf("PPB_AudioConfig::CreateStereo16Bit: resource=%"NACL_PRIu32"\n", |
+ *resource); |
+ rpc->result = NACL_SRPC_RESULT_OK; |
+} |
+ |
+void PpbAudioConfigRpcServer::PPB_AudioConfig_RecommendSampleFrameCount( |
+ NaClSrpcRpc* rpc, |
+ NaClSrpcClosure* done, |
+ int32_t sample_rate, |
+ int32_t request_sample_frame_count, |
+ int32_t* sample_frame_count) { |
+ NaClSrpcClosureRunner runner(done); |
+ const PPB_AudioConfig* audio = GetAudioConfigInterface(); |
+ rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
+ if (NULL == audio) { |
+ return; |
+ } |
+ *sample_frame_count = audio->RecommendSampleFrameCount( |
+ static_cast<PP_AudioSampleRate>(sample_rate), |
+ request_sample_frame_count); |
+ DebugPrintf("PPB_AudioConfig::RecommendSampleFrameCount: " |
+ "sample_frame_count=%"NACL_PRIu32"\n", *sample_frame_count); |
+ rpc->result = NACL_SRPC_RESULT_OK; |
+} |
+ |
+void PpbAudioConfigRpcServer::PPB_AudioConfig_IsAudioConfig( |
+ NaClSrpcRpc* rpc, |
+ NaClSrpcClosure* done, |
+ PP_Resource resource, |
+ int32_t* success) { |
+ NaClSrpcClosureRunner runner(done); |
+ const PPB_AudioConfig* audio = GetAudioConfigInterface(); |
+ rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
+ if (NULL == audio) { |
+ return; |
+ } |
+ PP_Bool pp_success = audio->IsAudioConfig(resource); |
+ DebugPrintf("PPB_AudioConfig::IsAudioConfig: pp_success=%d\n", pp_success); |
+ *success = (pp_success == PP_TRUE); |
+ rpc->result = NACL_SRPC_RESULT_OK; |
+} |
+ |
+void PpbAudioConfigRpcServer::PPB_AudioConfig_GetSampleRate( |
+ NaClSrpcRpc* rpc, |
+ NaClSrpcClosure* done, |
+ PP_Resource resource, |
+ int32_t* sample_rate) { |
+ NaClSrpcClosureRunner runner(done); |
+ const PPB_AudioConfig* audio = GetAudioConfigInterface(); |
+ rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
+ if (NULL == audio) { |
+ return; |
+ } |
+ if (ppapi_proxy::kInvalidResourceId == resource) { |
+ return; |
+ } |
+ if (NULL == sample_rate) { |
+ return; |
+ } |
+ *sample_rate = audio->GetSampleRate(resource); |
+ DebugPrintf("PPB_AudioConfig::GetSampleRate: pp_success=%"NACL_PRIu32"\n", |
+ *sample_rate); |
+ rpc->result = NACL_SRPC_RESULT_OK; |
+} |
+ |
+void PpbAudioConfigRpcServer::PPB_AudioConfig_GetSampleFrameCount( |
+ NaClSrpcRpc* rpc, |
+ NaClSrpcClosure* done, |
+ PP_Resource resource, |
+ int32_t* sample_frame_count) { |
+ NaClSrpcClosureRunner runner(done); |
+ const PPB_AudioConfig* audio = GetAudioConfigInterface(); |
+ rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
+ if (NULL == audio) { |
+ return; |
+ } |
+ if (ppapi_proxy::kInvalidResourceId == resource) { |
+ return; |
+ } |
+ if (NULL == sample_frame_count) { |
+ return; |
+ } |
+ *sample_frame_count = audio->GetSampleFrameCount(resource); |
+ DebugPrintf("PPB_AudioConfig::GetSampleFrameCount: " |
+ "sample_frame_count=%"NACL_PRIu32"\n", *sample_frame_count); |
+ rpc->result = NACL_SRPC_RESULT_OK; |
+} |