Chromium Code Reviews| Index: media/audio/audio_input_controller.cc |
| diff --git a/media/audio/audio_input_controller.cc b/media/audio/audio_input_controller.cc |
| index 17d121642d3e6218782ec29ae949bed4b61a074d..e6e0629d0e9ec9cf383b57c970f3fc88b6b13dfa 100644 |
| --- a/media/audio/audio_input_controller.cc |
| +++ b/media/audio/audio_input_controller.cc |
| @@ -10,7 +10,14 @@ |
| namespace { |
| const int kMaxInputChannels = 2; |
| -const int kTimerResetInterval = 1; // One second. |
| +const int kTimerResetIntervalSeconds = 1; |
| +#if defined(OS_IOS) |
| +// The first callback on iOS is received after the current background |
| +// audio has faded away. |
| +const int kTimerInitialIntervalSeconds = 4; |
| +#else |
| +const int kTimerInitialIntervalSeconds = 1; |
| +#endif // defined(OS_IOS) |
| } |
| namespace media { |
| @@ -139,13 +146,13 @@ void AudioInputController::DoCreate(AudioManager* audio_manager, |
| } |
| DCHECK(!no_data_timer_.get()); |
| - // Create the data timer which will call DoCheckForNoData() after a delay |
| - // of |kTimerResetInterval| seconds. The timer is started in DoRecord() |
| - // and restarted in each DoCheckForNoData() callback. |
| - no_data_timer_.reset(new base::DelayTimer<AudioInputController>(FROM_HERE, |
| - base::TimeDelta::FromSeconds(kTimerResetInterval), |
| - this, |
| - &AudioInputController::DoCheckForNoData)); |
| + // Create the data timer which will call DoCheckForNoData(). The timer |
| + // is started in DoRecord() and restarted in each DoCheckForNoData() callback. |
| + no_data_timer_.reset(new base::Timer(FROM_HERE, |
| + base::TimeDelta::FromSeconds(kTimerInitialIntervalSeconds), |
|
scherkus (not reviewing)
2012/09/05 15:46:43
hrmmm the indentation style was incorrect prior to
Milan Broum
2012/09/05 17:12:03
Done. Your suggestion exceeded 80 chars, split it
|
| + base::Bind(&AudioInputController::DoCheckForNoData, |
| + base::Unretained(this)), |
| + false)); |
| state_ = kCreated; |
| handler_->OnCreated(this); |
| @@ -162,7 +169,7 @@ void AudioInputController::DoRecord() { |
| state_ = kRecording; |
| } |
| - // Start the data timer. Once |kTimerResetInterval| seconds have passed, |
| + // Start the data timer. Once |kTimerResetIntervalSeconds| have passed, |
| // a callback to DoCheckForNoData() is made. |
| no_data_timer_->Reset(); |
| @@ -243,8 +250,12 @@ void AudioInputController::DoCheckForNoData() { |
| // flag will only be disabled during a very short period. |
| SetDataIsActive(false); |
| - // Restart the timer to ensure that we check the flag in one second again. |
| - no_data_timer_->Reset(); |
| + // Restart the timer to ensure that we check the flag again in |
| + // |kTimerResetIntervalSeconds|. |
| + no_data_timer_->Start(FROM_HERE, |
|
scherkus (not reviewing)
2012/09/05 15:46:43
ditto
Milan Broum
2012/09/05 17:12:03
Done.
|
| + base::TimeDelta::FromSeconds(kTimerResetIntervalSeconds), |
| + base::Bind(&AudioInputController::DoCheckForNoData, |
| + base::Unretained(this))); |
| } |
| void AudioInputController::OnData(AudioInputStream* stream, const uint8* data, |