Index: media/audio/audio_output_proxy.cc |
=================================================================== |
--- media/audio/audio_output_proxy.cc (revision 132979) |
+++ media/audio/audio_output_proxy.cc (working copy) |
@@ -14,21 +14,19 @@ |
AudioOutputProxy::AudioOutputProxy(AudioOutputDispatcher* dispatcher) |
: dispatcher_(dispatcher), |
state_(kCreated), |
- physical_stream_(NULL), |
volume_(1.0) { |
} |
AudioOutputProxy::~AudioOutputProxy() { |
DCHECK(CalledOnValidThread()); |
DCHECK(state_ == kCreated || state_ == kClosed); |
- DCHECK(!physical_stream_); |
} |
bool AudioOutputProxy::Open() { |
DCHECK(CalledOnValidThread()); |
DCHECK_EQ(state_, kCreated); |
- if (!dispatcher_->StreamOpened()) { |
+ if (!dispatcher_->OpenStream()) { |
state_ = kError; |
return false; |
} |
@@ -39,18 +37,13 @@ |
void AudioOutputProxy::Start(AudioSourceCallback* callback) { |
DCHECK(CalledOnValidThread()); |
- DCHECK(physical_stream_ == NULL); |
DCHECK_EQ(state_, kOpened); |
- physical_stream_= dispatcher_->StreamStarted(); |
- if (!physical_stream_) { |
+ if (!dispatcher_->StartStream(callback, this)) { |
state_ = kError; |
callback->OnError(this, 0); |
return; |
} |
- |
- physical_stream_->SetVolume(volume_); |
- physical_stream_->Start(callback); |
state_ = kPlaying; |
} |
@@ -59,19 +52,14 @@ |
if (state_ != kPlaying) |
return; |
- DCHECK(physical_stream_); |
- physical_stream_->Stop(); |
- dispatcher_->StreamStopped(physical_stream_); |
- physical_stream_ = NULL; |
+ dispatcher_->StopStream(this); |
state_ = kOpened; |
} |
void AudioOutputProxy::SetVolume(double volume) { |
DCHECK(CalledOnValidThread()); |
volume_ = volume; |
- if (physical_stream_) { |
- physical_stream_->SetVolume(volume); |
- } |
+ dispatcher_->StreamVolumeSet(this, volume); |
} |
void AudioOutputProxy::GetVolume(double* volume) { |
@@ -82,10 +70,9 @@ |
void AudioOutputProxy::Close() { |
DCHECK(CalledOnValidThread()); |
DCHECK(state_ == kCreated || state_ == kError || state_ == kOpened); |
- DCHECK(!physical_stream_); |
if (state_ != kCreated) |
- dispatcher_->StreamClosed(); |
+ dispatcher_->CloseStream(this); |
state_ = kClosed; |