| OLD | NEW |
| 1 // Copyright (c) 2010 The Native Client Authors. All rights reserved. | 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 be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "native_client/src/include/nacl_scoped_ptr.h" | 5 #include "native_client/src/include/nacl_scoped_ptr.h" |
| 6 #include "native_client/src/include/portability.h" | 6 #include "native_client/src/include/portability.h" |
| 7 #include "native_client/src/shared/ppapi_proxy/browser_globals.h" | 7 #include "native_client/src/shared/ppapi_proxy/browser_globals.h" |
| 8 #include "native_client/src/shared/ppapi_proxy/browser_ppp.h" | 8 #include "native_client/src/shared/ppapi_proxy/browser_ppp.h" |
| 9 #include "native_client/src/shared/ppapi_proxy/plugin_globals.h" | 9 #include "native_client/src/shared/ppapi_proxy/plugin_globals.h" |
| 10 #include "native_client/src/trusted/desc/nacl_desc_invalid.h" | 10 #include "native_client/src/trusted/desc/nacl_desc_invalid.h" |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 nacl_shm, | 88 nacl_shm, |
| 89 shared_memory_size, | 89 shared_memory_size, |
| 90 nacl_socket); | 90 nacl_socket); |
| 91 } | 91 } |
| 92 | 92 |
| 93 } // namespace | 93 } // namespace |
| 94 | 94 |
| 95 void PpbAudioDevRpcServer::PPB_Audio_Dev_Create( | 95 void PpbAudioDevRpcServer::PPB_Audio_Dev_Create( |
| 96 NaClSrpcRpc* rpc, | 96 NaClSrpcRpc* rpc, |
| 97 NaClSrpcClosure* done, | 97 NaClSrpcClosure* done, |
| 98 int64_t instance, | 98 PP_Instance instance, |
| 99 int64_t config, | 99 PP_Resource config, |
| 100 int64_t* resource) { | 100 PP_Resource* resource) { |
| 101 NaClSrpcClosureRunner runner(done); | 101 NaClSrpcClosureRunner runner(done); |
| 102 const PPB_AudioTrusted_Dev* audio = GetAudioTrustedInterface(); | 102 const PPB_AudioTrusted_Dev* audio = GetAudioTrustedInterface(); |
| 103 PP_Resource audio_id; | 103 PP_Resource audio_id; |
| 104 PP_CompletionCallback callback; | 104 PP_CompletionCallback callback; |
| 105 StreamCreatedCallbackData* data; | 105 StreamCreatedCallbackData* data; |
| 106 int32_t r; | 106 int32_t r; |
| 107 rpc->result = NACL_SRPC_RESULT_APP_ERROR; | 107 rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
| 108 if (ppapi_proxy::kInvalidResourceId == config) | 108 if (ppapi_proxy::kInvalidResourceId == config) |
| 109 return; | 109 return; |
| 110 if (NULL == audio) | 110 if (NULL == audio) |
| 111 return; | 111 return; |
| 112 *resource = audio->CreateTrusted(instance); | 112 *resource = audio->CreateTrusted(instance); |
| 113 audio_id = static_cast<PP_Resource>(*resource); | 113 audio_id = *resource; |
| 114 if (ppapi_proxy::kInvalidResourceId == audio_id) | 114 if (ppapi_proxy::kInvalidResourceId == audio_id) |
| 115 return; | 115 return; |
| 116 data = new StreamCreatedCallbackData( | 116 data = new StreamCreatedCallbackData(instance, audio_id); |
| 117 static_cast<PP_Instance>(instance), audio_id); | |
| 118 callback = PP_MakeCompletionCallback(StreamCreatedCallback, data); | 117 callback = PP_MakeCompletionCallback(StreamCreatedCallback, data); |
| 119 r = audio->Open(audio_id, config, callback); | 118 r = audio->Open(audio_id, config, callback); |
| 120 // if the Open() call failed, pass failure code and explicitly | 119 // if the Open() call failed, pass failure code and explicitly |
| 121 // invoke the completion callback, giving it a chance to release data. | 120 // invoke the completion callback, giving it a chance to release data. |
| 122 if ((r != PP_ERROR_WOULDBLOCK)) { | 121 if ((r != PP_ERROR_WOULDBLOCK)) { |
| 123 PP_RunCompletionCallback(&callback, r); | 122 PP_RunCompletionCallback(&callback, r); |
| 124 return; | 123 return; |
| 125 } | 124 } |
| 126 rpc->result = NACL_SRPC_RESULT_OK; | 125 rpc->result = NACL_SRPC_RESULT_OK; |
| 127 } | 126 } |
| 128 | 127 |
| 129 void PpbAudioDevRpcServer::PPB_Audio_Dev_StartPlayback( | 128 void PpbAudioDevRpcServer::PPB_Audio_Dev_StartPlayback( |
| 130 NaClSrpcRpc* rpc, | 129 NaClSrpcRpc* rpc, |
| 131 NaClSrpcClosure* done, | 130 NaClSrpcClosure* done, |
| 132 int64_t resource, | 131 PP_Resource resource, |
| 133 int32_t* out_bool) { | 132 int32_t* out_bool) { |
| 134 NaClSrpcClosureRunner runner(done); | 133 NaClSrpcClosureRunner runner(done); |
| 135 const PPB_Audio_Dev* audio = GetAudioInterface(); | 134 const PPB_Audio_Dev* audio = GetAudioInterface(); |
| 136 rpc->result = NACL_SRPC_RESULT_APP_ERROR; | 135 rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
| 137 if (NULL == audio) { | 136 if (NULL == audio) { |
| 138 *out_bool = false; | 137 *out_bool = false; |
| 139 return; | 138 return; |
| 140 } | 139 } |
| 141 *out_bool = static_cast<int32_t>(audio->StartPlayback(resource)); | 140 *out_bool = static_cast<int32_t>(audio->StartPlayback(resource)); |
| 142 rpc->result = NACL_SRPC_RESULT_OK; | 141 rpc->result = NACL_SRPC_RESULT_OK; |
| 143 } | 142 } |
| 144 | 143 |
| 145 void PpbAudioDevRpcServer::PPB_Audio_Dev_StopPlayback( | 144 void PpbAudioDevRpcServer::PPB_Audio_Dev_StopPlayback( |
| 146 NaClSrpcRpc* rpc, | 145 NaClSrpcRpc* rpc, |
| 147 NaClSrpcClosure* done, | 146 NaClSrpcClosure* done, |
| 148 int64_t resource, | 147 PP_Resource resource, |
| 149 int32_t* out_bool) { | 148 int32_t* out_bool) { |
| 150 NaClSrpcClosureRunner runner(done); | 149 NaClSrpcClosureRunner runner(done); |
| 151 const PPB_Audio_Dev* audio = GetAudioInterface(); | 150 const PPB_Audio_Dev* audio = GetAudioInterface(); |
| 152 rpc->result = NACL_SRPC_RESULT_APP_ERROR; | 151 rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
| 153 if (NULL == audio) { | 152 if (NULL == audio) { |
| 154 *out_bool = false; | 153 *out_bool = false; |
| 155 return; | 154 return; |
| 156 } | 155 } |
| 157 *out_bool = static_cast<int32_t>(audio->StopPlayback(resource)); | 156 *out_bool = static_cast<int32_t>(audio->StopPlayback(resource)); |
| 158 rpc->result = NACL_SRPC_RESULT_OK; | 157 rpc->result = NACL_SRPC_RESULT_OK; |
| 159 } | 158 } |
| 160 | 159 |
| 161 void PpbAudioDevRpcServer::PPB_Audio_Dev_IsAudio( | 160 void PpbAudioDevRpcServer::PPB_Audio_Dev_IsAudio( |
| 162 NaClSrpcRpc* rpc, | 161 NaClSrpcRpc* rpc, |
| 163 NaClSrpcClosure* done, | 162 NaClSrpcClosure* done, |
| 164 int64_t resource, | 163 PP_Resource resource, |
| 165 int32_t* out_bool) { | 164 int32_t* out_bool) { |
| 166 NaClSrpcClosureRunner runner(done); | 165 NaClSrpcClosureRunner runner(done); |
| 167 const PPB_Audio_Dev* audio = GetAudioInterface(); | 166 const PPB_Audio_Dev* audio = GetAudioInterface(); |
| 168 rpc->result = NACL_SRPC_RESULT_APP_ERROR; | 167 rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
| 169 if (NULL == audio) { | 168 if (NULL == audio) { |
| 170 *out_bool = false; | 169 *out_bool = false; |
| 171 return; | 170 return; |
| 172 } | 171 } |
| 173 *out_bool = static_cast<int32_t>(audio->IsAudio(resource)); | 172 *out_bool = static_cast<int32_t>(audio->IsAudio(resource)); |
| 174 rpc->result = NACL_SRPC_RESULT_OK; | 173 rpc->result = NACL_SRPC_RESULT_OK; |
| 175 } | 174 } |
| 176 | 175 |
| 177 void PpbAudioDevRpcServer::PPB_Audio_Dev_GetCurrentConfig( | 176 void PpbAudioDevRpcServer::PPB_Audio_Dev_GetCurrentConfig( |
| 178 NaClSrpcRpc* rpc, | 177 NaClSrpcRpc* rpc, |
| 179 NaClSrpcClosure* done, | 178 NaClSrpcClosure* done, |
| 180 int64_t resource, | 179 PP_Resource resource, |
| 181 int64_t* config) { | 180 PP_Resource* config) { |
| 182 NaClSrpcClosureRunner runner(done); | 181 NaClSrpcClosureRunner runner(done); |
| 183 const PPB_Audio_Dev* audio = GetAudioInterface(); | 182 const PPB_Audio_Dev* audio = GetAudioInterface(); |
| 184 rpc->result = NACL_SRPC_RESULT_APP_ERROR; | 183 rpc->result = NACL_SRPC_RESULT_APP_ERROR; |
| 185 if (NULL == audio) { | 184 if (NULL == audio) { |
| 186 return; | 185 return; |
| 187 } | 186 } |
| 188 if (ppapi_proxy::kInvalidResourceId == resource) { | 187 if (ppapi_proxy::kInvalidResourceId == resource) { |
| 189 return; | 188 return; |
| 190 } | 189 } |
| 191 *config = audio->GetCurrentConfig(resource); | 190 *config = audio->GetCurrentConfig(resource); |
| 192 rpc->result = NACL_SRPC_RESULT_OK; | 191 rpc->result = NACL_SRPC_RESULT_OK; |
| 193 } | 192 } |
| OLD | NEW |