OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium 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 "content/renderer/pepper/audio_helper.h" | 5 #include "content/renderer/pepper/audio_helper.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "content/renderer/pepper/common.h" | 8 #include "content/renderer/pepper/common.h" |
9 #include "ppapi/c/pp_completion_callback.h" | 9 #include "ppapi/c/pp_completion_callback.h" |
10 #include "ppapi/c/pp_errors.h" | 10 #include "ppapi/c/pp_errors.h" |
11 | 11 |
12 using ppapi::TrackedCallback; | 12 using ppapi::TrackedCallback; |
13 | 13 |
14 namespace content { | 14 namespace content { |
15 | 15 |
16 // AudioHelper ----------------------------------------------------------------- | 16 // AudioHelper ----------------------------------------------------------------- |
17 | 17 |
18 AudioHelper::AudioHelper() : shared_memory_size_for_create_callback_(0) { | 18 AudioHelper::AudioHelper() : shared_memory_size_for_create_callback_(0) {} |
19 } | |
20 | 19 |
21 AudioHelper::~AudioHelper() { | 20 AudioHelper::~AudioHelper() {} |
22 } | |
23 | 21 |
24 int32_t AudioHelper::GetSyncSocketImpl(int* sync_socket) { | 22 int32_t AudioHelper::GetSyncSocketImpl(int* sync_socket) { |
25 if (socket_for_create_callback_) { | 23 if (socket_for_create_callback_) { |
26 #if defined(OS_POSIX) | 24 #if defined(OS_POSIX) |
27 *sync_socket = socket_for_create_callback_->handle(); | 25 *sync_socket = socket_for_create_callback_->handle(); |
28 #elif defined(OS_WIN) | 26 #elif defined(OS_WIN) |
29 *sync_socket = reinterpret_cast<int>(socket_for_create_callback_->handle()); | 27 *sync_socket = reinterpret_cast<int>(socket_for_create_callback_->handle()); |
30 #else | 28 #else |
31 #error "Platform not supported." | 29 #error "Platform not supported." |
32 #endif | 30 #endif |
33 return PP_OK; | 31 return PP_OK; |
34 } | 32 } |
35 return PP_ERROR_FAILED; | 33 return PP_ERROR_FAILED; |
36 } | 34 } |
37 | 35 |
38 int32_t AudioHelper::GetSharedMemoryImpl(int* shm_handle, uint32_t* shm_size) { | 36 int32_t AudioHelper::GetSharedMemoryImpl(int* shm_handle, uint32_t* shm_size) { |
39 if (shared_memory_for_create_callback_) { | 37 if (shared_memory_for_create_callback_) { |
40 #if defined(OS_POSIX) | 38 #if defined(OS_POSIX) |
41 *shm_handle = shared_memory_for_create_callback_->handle().fd; | 39 *shm_handle = shared_memory_for_create_callback_->handle().fd; |
42 #elif defined(OS_WIN) | 40 #elif defined(OS_WIN) |
43 *shm_handle = reinterpret_cast<int>( | 41 *shm_handle = |
44 shared_memory_for_create_callback_->handle()); | 42 reinterpret_cast<int>(shared_memory_for_create_callback_->handle()); |
45 #else | 43 #else |
46 #error "Platform not supported." | 44 #error "Platform not supported." |
47 #endif | 45 #endif |
48 *shm_size = shared_memory_size_for_create_callback_; | 46 *shm_size = shared_memory_size_for_create_callback_; |
49 return PP_OK; | 47 return PP_OK; |
50 } | 48 } |
51 return PP_ERROR_FAILED; | 49 return PP_ERROR_FAILED; |
52 } | 50 } |
53 | 51 |
54 void AudioHelper::StreamCreated( | 52 void AudioHelper::StreamCreated(base::SharedMemoryHandle shared_memory_handle, |
55 base::SharedMemoryHandle shared_memory_handle, | 53 size_t shared_memory_size, |
56 size_t shared_memory_size, | 54 base::SyncSocket::Handle socket_handle) { |
57 base::SyncSocket::Handle socket_handle) { | |
58 if (TrackedCallback::IsPending(create_callback_)) { | 55 if (TrackedCallback::IsPending(create_callback_)) { |
59 // Trusted side of proxy can specify a callback to recieve handles. In | 56 // Trusted side of proxy can specify a callback to recieve handles. In |
60 // this case we don't need to map any data or start the thread since it | 57 // this case we don't need to map any data or start the thread since it |
61 // will be handled by the proxy. | 58 // will be handled by the proxy. |
62 shared_memory_for_create_callback_.reset( | 59 shared_memory_for_create_callback_.reset( |
63 new base::SharedMemory(shared_memory_handle, false)); | 60 new base::SharedMemory(shared_memory_handle, false)); |
64 shared_memory_size_for_create_callback_ = shared_memory_size; | 61 shared_memory_size_for_create_callback_ = shared_memory_size; |
65 socket_for_create_callback_.reset(new base::SyncSocket(socket_handle)); | 62 socket_for_create_callback_.reset(new base::SyncSocket(socket_handle)); |
66 | 63 |
67 create_callback_->Run(PP_OK); | 64 create_callback_->Run(PP_OK); |
(...skipping 10 matching lines...) Expand all Loading... |
78 } | 75 } |
79 } | 76 } |
80 | 77 |
81 void AudioHelper::SetCreateCallback( | 78 void AudioHelper::SetCreateCallback( |
82 scoped_refptr<ppapi::TrackedCallback> create_callback) { | 79 scoped_refptr<ppapi::TrackedCallback> create_callback) { |
83 DCHECK(!TrackedCallback::IsPending(create_callback_)); | 80 DCHECK(!TrackedCallback::IsPending(create_callback_)); |
84 create_callback_ = create_callback; | 81 create_callback_ = create_callback; |
85 } | 82 } |
86 | 83 |
87 } // namespace content | 84 } // namespace content |
OLD | NEW |