OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2010 The Native Client Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can |
| 3 // be found in the LICENSE file. |
| 4 |
| 5 #include "native_client/src/shared/ppapi_proxy/plugin_ppb_audio_config.h" |
| 6 |
| 7 #include <stdio.h> |
| 8 #include <string.h> |
| 9 #include "srpcgen/ppb_rpc.h" |
| 10 #include "native_client/src/include/portability.h" |
| 11 #include "native_client/src/shared/ppapi_proxy/plugin_globals.h" |
| 12 #include "native_client/src/shared/ppapi_proxy/utility.h" |
| 13 #include "native_client/src/shared/srpc/nacl_srpc.h" |
| 14 #include "ppapi/c/ppb_audio_config.h" |
| 15 |
| 16 namespace ppapi_proxy { |
| 17 |
| 18 namespace { |
| 19 |
| 20 PP_AudioSampleRate GetSampleRate(PP_Resource config) { |
| 21 DebugPrintf("PPB_AudioConfig::GetSampleRate: config=%"NACL_PRIu32"\n", |
| 22 config); |
| 23 int32_t sample_rate; |
| 24 NaClSrpcError srpc_result = |
| 25 PpbAudioConfigRpcClient::PPB_AudioConfig_GetSampleRate( |
| 26 GetMainSrpcChannel(), |
| 27 config, |
| 28 &sample_rate); |
| 29 DebugPrintf("PPB_AudioConfig::GetSampleRate: %s\n", |
| 30 NaClSrpcErrorString(srpc_result)); |
| 31 if (NACL_SRPC_RESULT_OK == srpc_result) { |
| 32 return static_cast<PP_AudioSampleRate>(sample_rate); |
| 33 } |
| 34 return PP_AUDIOSAMPLERATE_NONE; |
| 35 } |
| 36 |
| 37 uint32_t GetSampleFrameCount(PP_Resource config) { |
| 38 DebugPrintf("PPB_AudioConfig::GetSampleFrameCount: config=%"NACL_PRIu32"\n", |
| 39 config); |
| 40 int32_t sample_frame_count; |
| 41 NaClSrpcError srpc_result = |
| 42 PpbAudioConfigRpcClient::PPB_AudioConfig_GetSampleFrameCount( |
| 43 GetMainSrpcChannel(), |
| 44 config, |
| 45 &sample_frame_count); |
| 46 DebugPrintf("PPB_AudioConfig::GetSampleFrameCount: %s\n", |
| 47 NaClSrpcErrorString(srpc_result)); |
| 48 if (NACL_SRPC_RESULT_OK == srpc_result) { |
| 49 return static_cast<uint32_t>(sample_frame_count); |
| 50 } |
| 51 return 0; |
| 52 } |
| 53 |
| 54 uint32_t RecommendSampleFrameCount(PP_AudioSampleRate sample_rate, |
| 55 uint32_t request_sample_frame_count) { |
| 56 DebugPrintf("PPB_AudioConfig::RecommendSampleFrameCount"); |
| 57 int32_t out_sample_frame_count; |
| 58 NaClSrpcError srpc_result = |
| 59 PpbAudioConfigRpcClient::PPB_AudioConfig_RecommendSampleFrameCount( |
| 60 GetMainSrpcChannel(), |
| 61 static_cast<int32_t>(sample_rate), |
| 62 static_cast<int32_t>(request_sample_frame_count), |
| 63 &out_sample_frame_count); |
| 64 DebugPrintf("PPB_AudioConfig::RecommendSampleFrameCount: %s\n", |
| 65 NaClSrpcErrorString(srpc_result)); |
| 66 if (NACL_SRPC_RESULT_OK == srpc_result) { |
| 67 return static_cast<uint32_t>(out_sample_frame_count); |
| 68 } |
| 69 return 0; |
| 70 } |
| 71 |
| 72 PP_Bool IsAudioConfig(PP_Resource resource) { |
| 73 DebugPrintf("PPB_AudioConfig::IsAudioConfig: resource=%"NACL_PRIu32"\n", |
| 74 resource); |
| 75 int32_t success; |
| 76 NaClSrpcError srpc_result = |
| 77 PpbAudioConfigRpcClient::PPB_AudioConfig_IsAudioConfig( |
| 78 GetMainSrpcChannel(), |
| 79 resource, |
| 80 &success); |
| 81 DebugPrintf("PPB_AudioConfig::IsAudioConfig: %s\n", |
| 82 NaClSrpcErrorString(srpc_result)); |
| 83 if (NACL_SRPC_RESULT_OK == srpc_result && success) { |
| 84 return PP_TRUE; |
| 85 } |
| 86 return PP_FALSE; |
| 87 } |
| 88 |
| 89 PP_Resource CreateStereo16Bit(PP_Instance instance, |
| 90 PP_AudioSampleRate sample_rate, |
| 91 uint32_t sample_frame_count) { |
| 92 DebugPrintf("PPB_AudioConfig::CreateStereo16Bit: instance=%"NACL_PRIu32"\n", |
| 93 instance); |
| 94 PP_Resource resource; |
| 95 NaClSrpcError srpc_result = |
| 96 PpbAudioConfigRpcClient::PPB_AudioConfig_CreateStereo16Bit( |
| 97 GetMainSrpcChannel(), |
| 98 instance, |
| 99 static_cast<int32_t>(sample_rate), |
| 100 static_cast<int32_t>(sample_frame_count), |
| 101 &resource); |
| 102 DebugPrintf("PPB_AudioConfig::CreateStereo16Bit: %s\n", |
| 103 NaClSrpcErrorString(srpc_result)); |
| 104 if (NACL_SRPC_RESULT_OK == srpc_result) { |
| 105 return resource; |
| 106 } |
| 107 return kInvalidResourceId; |
| 108 } |
| 109 } // namespace |
| 110 |
| 111 const PPB_AudioConfig* PluginAudioConfig::GetInterface() { |
| 112 static const PPB_AudioConfig audio_config_interface = { |
| 113 CreateStereo16Bit, |
| 114 RecommendSampleFrameCount, |
| 115 IsAudioConfig, |
| 116 GetSampleRate, |
| 117 GetSampleFrameCount, |
| 118 }; |
| 119 return &audio_config_interface; |
| 120 } |
| 121 } // namespace ppapi_proxy |
OLD | NEW |