Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: src/shared/ppapi_proxy/plugin_audio.cc

Issue 5974006: Convert srpc definitions from using int64 to using PP_Instance, PP_Module, an... (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: '' Created 9 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/shared/ppapi_proxy/plugin_audio.h" 5 #include "native_client/src/shared/ppapi_proxy/plugin_audio.h"
6 6
7 #include <pthread.h> 7 #include <pthread.h>
8 #include <stdio.h> 8 #include <stdio.h>
9 #include <string.h> 9 #include <string.h>
10 #include <sys/errno.h> 10 #include <sys/errno.h>
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 // Start of untrusted PPB_Audio functions 215 // Start of untrusted PPB_Audio functions
216 216
217 PP_Resource Create(PP_Instance instance, 217 PP_Resource Create(PP_Instance instance,
218 PP_Resource config, 218 PP_Resource config,
219 PPB_Audio_Callback user_callback, 219 PPB_Audio_Callback user_callback,
220 void* user_data) { 220 void* user_data) {
221 PP_Resource audioResource; 221 PP_Resource audioResource;
222 NaClSrpcError retval = NACL_SRPC_RESULT_OK; 222 NaClSrpcError retval = NACL_SRPC_RESULT_OK;
223 NaClSrpcChannel* channel = NULL; 223 NaClSrpcChannel* channel = NULL;
224 AudioProxy* audio = NULL; 224 AudioProxy* audio = NULL;
225 int64_t audioResource64 = 0;
226 int64_t instance64 = static_cast<int64_t>(instance);
227 int64_t config64 = static_cast<int64_t>(config);
228 // TODO(audio): remove check below when & if we support 225 // TODO(audio): remove check below when & if we support
229 // multiple simultanious audio devices from same untrusted instance 226 // multiple simultanious audio devices from same untrusted instance
230 if (NULL != GetCurrentAudio()) { 227 if (NULL != GetCurrentAudio()) {
231 return kInvalidResourceId; 228 return kInvalidResourceId;
232 } 229 }
233 // Proxy to browser Create, get audio PP_Resource 230 // Proxy to browser Create, get audio PP_Resource
234 channel = ppapi_proxy::GetMainSrpcChannel(); 231 channel = ppapi_proxy::GetMainSrpcChannel();
235 retval = PpbAudioDevRpcClient::PPB_Audio_Dev_Create( 232 retval = PpbAudioDevRpcClient::PPB_Audio_Dev_Create(
236 channel, 233 channel,
237 instance64, 234 instance,
238 config64, 235 config,
239 &audioResource64); 236 &audioResource);
240 audioResource = static_cast<PP_Resource>(audioResource64);
241 if (NACL_SRPC_RESULT_OK != retval) { 237 if (NACL_SRPC_RESULT_OK != retval) {
242 return kInvalidResourceId; 238 return kInvalidResourceId;
243 } 239 }
244 if (kInvalidResourceId == audioResource) { 240 if (kInvalidResourceId == audioResource) {
245 return kInvalidResourceId; 241 return kInvalidResourceId;
246 } 242 }
247 // Create an AudioProxy 243 // Create an AudioProxy
248 audio = new AudioProxy(audioResource, user_callback, user_data); 244 audio = new AudioProxy(audioResource, user_callback, user_data);
249 if (NULL == audio) { 245 if (NULL == audio) {
250 return kInvalidResourceId; 246 return kInvalidResourceId;
(...skipping 16 matching lines...) Expand all
267 resource, 263 resource,
268 &out_bool); 264 &out_bool);
269 if (NACL_SRPC_RESULT_OK != retval) { 265 if (NACL_SRPC_RESULT_OK != retval) {
270 return PP_FALSE; 266 return PP_FALSE;
271 } 267 }
272 return pp::BoolToPPBool(out_bool); 268 return pp::BoolToPPBool(out_bool);
273 } 269 }
274 270
275 PP_Resource GetCurrentConfig(PP_Resource audio) { 271 PP_Resource GetCurrentConfig(PP_Resource audio) {
276 NaClSrpcChannel* channel = ppapi_proxy::GetMainSrpcChannel(); 272 NaClSrpcChannel* channel = ppapi_proxy::GetMainSrpcChannel();
277 int64_t out_resource; 273 PP_Resource out_resource;
278 NaClSrpcError retval = 274 NaClSrpcError retval =
279 PpbAudioDevRpcClient::PPB_Audio_Dev_GetCurrentConfig( 275 PpbAudioDevRpcClient::PPB_Audio_Dev_GetCurrentConfig(
280 channel, 276 channel,
281 audio, 277 audio,
282 &out_resource); 278 &out_resource);
283 if (NACL_SRPC_RESULT_OK != retval) { 279 if (NACL_SRPC_RESULT_OK != retval) {
284 return kInvalidResourceId; 280 return kInvalidResourceId;
285 } 281 }
286 return static_cast<PP_Resource>(out_resource); 282 return out_resource;
287 } 283 }
288 284
289 PP_Bool StartPlayback(PP_Resource audioResource) { 285 PP_Bool StartPlayback(PP_Resource audioResource) {
290 NaClSrpcChannel* channel = ppapi_proxy::GetMainSrpcChannel(); 286 NaClSrpcChannel* channel = ppapi_proxy::GetMainSrpcChannel();
291 int32_t out_bool; 287 int32_t out_bool;
292 AudioProxy* audio = GetBoundAudio(audioResource); 288 AudioProxy* audio = GetBoundAudio(audioResource);
293 if (NULL == audio) { 289 if (NULL == audio) {
294 return PP_FALSE; 290 return PP_FALSE;
295 } 291 }
296 if (audio->state() == AUDIO_INCOMPLETE) { 292 if (audio->state() == AUDIO_INCOMPLETE) {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 } 352 }
357 353
358 } // namespace ppapi_proxy 354 } // namespace ppapi_proxy
359 355
360 // PppAudioDevRpcServer::PPP_Audio_Dev_StreamCreated() must be in global 356 // PppAudioDevRpcServer::PPP_Audio_Dev_StreamCreated() must be in global
361 // namespace. This function receives handles for the socket and shared 357 // namespace. This function receives handles for the socket and shared
362 // memory, provided by the trusted audio implementation. 358 // memory, provided by the trusted audio implementation.
363 void PppAudioDevRpcServer::PPP_Audio_Dev_StreamCreated( 359 void PppAudioDevRpcServer::PPP_Audio_Dev_StreamCreated(
364 NaClSrpcRpc* rpc, 360 NaClSrpcRpc* rpc,
365 NaClSrpcClosure* done, 361 NaClSrpcClosure* done,
366 int64_t audioResource64, 362 PP_Resource audioResource,
367 NaClSrpcImcDescType shm, 363 NaClSrpcImcDescType shm,
368 int32_t shm_size, 364 int32_t shm_size,
369 NaClSrpcImcDescType sync_socket) { 365 NaClSrpcImcDescType sync_socket) {
370 NaClSrpcClosureRunner runner(done); 366 NaClSrpcClosureRunner runner(done);
371 PP_Resource audioResource = static_cast<PP_Resource>(audioResource64);
372 rpc->result = NACL_SRPC_RESULT_APP_ERROR; 367 rpc->result = NACL_SRPC_RESULT_APP_ERROR;
373 ppapi_proxy::AudioProxy* audio = ppapi_proxy::GetBoundAudio(audioResource); 368 ppapi_proxy::AudioProxy* audio = ppapi_proxy::GetBoundAudio(audioResource);
374 if (NULL == audio) { 369 if (NULL == audio) {
375 // Ignore if no audioResource -> audioInstance mapping exists, 370 // Ignore if no audioResource -> audioInstance mapping exists,
376 // the app may have shutdown audio before StreamCreated() invoked. 371 // the app may have shutdown audio before StreamCreated() invoked.
377 rpc->result = NACL_SRPC_RESULT_OK; 372 rpc->result = NACL_SRPC_RESULT_OK;
378 return; 373 return;
379 } 374 }
380 audio->StreamCreated(sync_socket, shm, shm_size); 375 audio->StreamCreated(sync_socket, shm, shm_size);
381 rpc->result = NACL_SRPC_RESULT_OK; 376 rpc->result = NACL_SRPC_RESULT_OK;
382 } 377 }
OLDNEW
« no previous file with comments | « src/shared/ppapi_proxy/browser_ppb_url_response_info_rpc_server.cc ('k') | src/shared/ppapi_proxy/plugin_graphics_2d.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698