OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this |
2 // source code is governed by a BSD-style license that can be found in the | 2 // source code is governed by a BSD-style license that can be found in the |
3 // LICENSE file. | 3 // LICENSE file. |
4 | 4 |
5 #include <math.h> | 5 #include <math.h> |
6 | 6 |
7 #include "chrome/common/render_messages.h" | 7 #include "chrome/common/render_messages.h" |
8 #include "chrome/renderer/audio_message_filter.h" | 8 #include "chrome/renderer/audio_message_filter.h" |
9 #include "chrome/renderer/media/audio_renderer_impl.h" | 9 #include "chrome/renderer/media/audio_renderer_impl.h" |
10 #include "chrome/renderer/render_view.h" | 10 #include "chrome/renderer/render_view.h" |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 io_loop_->PostTask( | 140 io_loop_->PostTask( |
141 FROM_HERE, | 141 FROM_HERE, |
142 NewRunnableMethod(this, &AudioRendererImpl::OnNotifyPacketReady)); | 142 NewRunnableMethod(this, &AudioRendererImpl::OnNotifyPacketReady)); |
143 } | 143 } |
144 } | 144 } |
145 | 145 |
146 void AudioRendererImpl::SetVolume(float volume) { | 146 void AudioRendererImpl::SetVolume(float volume) { |
147 AutoLock auto_lock(lock_); | 147 AutoLock auto_lock(lock_); |
148 if (stopped_) | 148 if (stopped_) |
149 return; | 149 return; |
150 // TODO(hclam): change this to multichannel if possible. | |
151 io_loop_->PostTask(FROM_HERE, | 150 io_loop_->PostTask(FROM_HERE, |
152 NewRunnableMethod( | 151 NewRunnableMethod( |
153 this, &AudioRendererImpl::OnSetVolume, volume, volume)); | 152 this, &AudioRendererImpl::OnSetVolume, volume)); |
154 } | 153 } |
155 | 154 |
156 void AudioRendererImpl::OnCreated(base::SharedMemoryHandle handle, | 155 void AudioRendererImpl::OnCreated(base::SharedMemoryHandle handle, |
157 size_t length) { | 156 size_t length) { |
158 DCHECK(MessageLoop::current() == io_loop_); | 157 DCHECK(MessageLoop::current() == io_loop_); |
159 | 158 |
160 AutoLock auto_lock(lock_); | 159 AutoLock auto_lock(lock_); |
161 if (stopped_) | 160 if (stopped_) |
162 return; | 161 return; |
163 | 162 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 // TODO(hclam): handle these events. | 203 // TODO(hclam): handle these events. |
205 case ViewMsg_AudioStreamState::kPlaying: | 204 case ViewMsg_AudioStreamState::kPlaying: |
206 case ViewMsg_AudioStreamState::kPaused: | 205 case ViewMsg_AudioStreamState::kPaused: |
207 break; | 206 break; |
208 default: | 207 default: |
209 NOTREACHED(); | 208 NOTREACHED(); |
210 break; | 209 break; |
211 } | 210 } |
212 } | 211 } |
213 | 212 |
214 void AudioRendererImpl::OnVolume(double left, double right) { | 213 void AudioRendererImpl::OnVolume(double volume) { |
215 // TODO(hclam): decide whether we need to report the current volume to | 214 // TODO(hclam): decide whether we need to report the current volume to |
216 // pipeline. | 215 // pipeline. |
217 } | 216 } |
218 | 217 |
219 void AudioRendererImpl::OnCreateStream( | 218 void AudioRendererImpl::OnCreateStream( |
220 AudioManager::Format format, int channels, int sample_rate, | 219 AudioManager::Format format, int channels, int sample_rate, |
221 int bits_per_sample, size_t packet_size, size_t buffer_capacity) { | 220 int bits_per_sample, size_t packet_size, size_t buffer_capacity) { |
222 DCHECK(MessageLoop::current() == io_loop_); | 221 DCHECK(MessageLoop::current() == io_loop_); |
223 | 222 |
224 AutoLock auto_lock(lock_); | 223 AutoLock auto_lock(lock_); |
(...skipping 27 matching lines...) Expand all Loading... |
252 filter_->Send(new ViewHostMsg_PauseAudioStream(0, stream_id_)); | 251 filter_->Send(new ViewHostMsg_PauseAudioStream(0, stream_id_)); |
253 } | 252 } |
254 | 253 |
255 void AudioRendererImpl::OnDestroy() { | 254 void AudioRendererImpl::OnDestroy() { |
256 DCHECK(MessageLoop::current() == io_loop_); | 255 DCHECK(MessageLoop::current() == io_loop_); |
257 | 256 |
258 filter_->RemoveDelegate(stream_id_); | 257 filter_->RemoveDelegate(stream_id_); |
259 filter_->Send(new ViewHostMsg_CloseAudioStream(0, stream_id_)); | 258 filter_->Send(new ViewHostMsg_CloseAudioStream(0, stream_id_)); |
260 } | 259 } |
261 | 260 |
262 void AudioRendererImpl::OnSetVolume(double left, double right) { | 261 void AudioRendererImpl::OnSetVolume(double volume) { |
263 DCHECK(MessageLoop::current() == io_loop_); | 262 DCHECK(MessageLoop::current() == io_loop_); |
264 | 263 |
265 AutoLock auto_lock(lock_); | 264 AutoLock auto_lock(lock_); |
266 if (stopped_) | 265 if (stopped_) |
267 return; | 266 return; |
268 filter_->Send(new ViewHostMsg_SetAudioVolume(0, stream_id_, left, right)); | 267 filter_->Send(new ViewHostMsg_SetAudioVolume(0, stream_id_, volume)); |
269 } | 268 } |
270 | 269 |
271 void AudioRendererImpl::OnNotifyPacketReady() { | 270 void AudioRendererImpl::OnNotifyPacketReady() { |
272 DCHECK(MessageLoop::current() == io_loop_); | 271 DCHECK(MessageLoop::current() == io_loop_); |
273 | 272 |
274 AutoLock auto_lock(lock_); | 273 AutoLock auto_lock(lock_); |
275 if (stopped_) | 274 if (stopped_) |
276 return; | 275 return; |
277 if (pending_request_ && GetPlaybackRate() > 0.0f) { | 276 if (pending_request_ && GetPlaybackRate() > 0.0f) { |
278 DCHECK(shared_memory_.get()); | 277 DCHECK(shared_memory_.get()); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 prerolling_ = false; | 317 prerolling_ = false; |
319 preroll_bytes_ = 0; | 318 preroll_bytes_ = 0; |
320 filter_->Send(new ViewHostMsg_PlayAudioStream(0, stream_id_)); | 319 filter_->Send(new ViewHostMsg_PlayAudioStream(0, stream_id_)); |
321 } else { | 320 } else { |
322 preroll_bytes_ -= filled; | 321 preroll_bytes_ -= filled; |
323 } | 322 } |
324 } | 323 } |
325 } | 324 } |
326 } | 325 } |
327 } | 326 } |
OLD | NEW |