diff options
author | leandrogracia@chromium.org <leandrogracia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-13 18:38:58 +0000 |
---|---|---|
committer | leandrogracia@chromium.org <leandrogracia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-13 18:38:58 +0000 |
commit | beb0f37738b9c0a18a17621124d61cf508941fc9 (patch) | |
tree | 8aa576aab16620d3bbba1cbf80eb760cf3efcb8e /media/audio/linux | |
parent | e6d876e110a8e90d6918a44fafb99914288102ab (diff) | |
download | chromium_src-beb0f37738b9c0a18a17621124d61cf508941fc9.zip chromium_src-beb0f37738b9c0a18a17621124d61cf508941fc9.tar.gz chromium_src-beb0f37738b9c0a18a17621124d61cf508941fc9.tar.bz2 |
Add a method to the audio manager to find out if recording is currently active in Chrome.
Adding also missing OVERRIDEs in the affected files.
BUG=97388
TEST=none
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=105333
Review URL: http://codereview.chromium.org/8208013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105337 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/audio/linux')
-rw-r--r-- | media/audio/linux/alsa_input.cc | 10 | ||||
-rw-r--r-- | media/audio/linux/alsa_input.h | 9 | ||||
-rw-r--r-- | media/audio/linux/audio_manager_linux.h | 25 |
3 files changed, 29 insertions, 15 deletions
diff --git a/media/audio/linux/alsa_input.cc b/media/audio/linux/alsa_input.cc index 8aad65a..725ecb4 100644 --- a/media/audio/linux/alsa_input.cc +++ b/media/audio/linux/alsa_input.cc @@ -9,8 +9,10 @@ #include "base/logging.h" #include "base/message_loop.h" #include "base/time.h" +#include "media/audio/audio_manager.h" #include "media/audio/linux/alsa_util.h" #include "media/audio/linux/alsa_wrapper.h" +#include "media/audio/linux/audio_manager_linux.h" static const int kNumPacketsInRingBuffer = 3; @@ -105,6 +107,9 @@ void AlsaPcmInputStream::Start(AudioInputCallback* callback) { FROM_HERE, base::Bind(&AlsaPcmInputStream::ReadAudio, weak_factory_.GetWeakPtr()), delay_ms); + + static_cast<AudioManagerLinux*>(AudioManager::GetAudioManager())-> + IncreaseActiveInputStreamCount(); } } @@ -213,6 +218,11 @@ void AlsaPcmInputStream::Stop() { if (!device_handle_ || !callback_) return; + // Stop is always called before Close. In case of error, this will be + // also called when closing the input controller. + static_cast<AudioManagerLinux*>(AudioManager::GetAudioManager())-> + DecreaseActiveInputStreamCount(); + weak_factory_.InvalidateWeakPtrs(); // Cancel the next scheduled read. int error = wrapper_->PcmDrop(device_handle_); if (error < 0) diff --git a/media/audio/linux/alsa_input.h b/media/audio/linux/alsa_input.h index 3e5209a..6aa1b87 100644 --- a/media/audio/linux/alsa_input.h +++ b/media/audio/linux/alsa_input.h @@ -9,6 +9,7 @@ #include <string> +#include "base/compiler_specific.h" #include "base/memory/scoped_ptr.h" #include "base/memory/weak_ptr.h" #include "media/audio/audio_io.h" @@ -34,10 +35,10 @@ class AlsaPcmInputStream : public AudioInputStream { virtual ~AlsaPcmInputStream(); // Implementation of AudioOutputStream. - virtual bool Open(); - virtual void Start(AudioInputCallback* callback); - virtual void Stop(); - virtual void Close(); + virtual bool Open() OVERRIDE; + virtual void Start(AudioInputCallback* callback) OVERRIDE; + virtual void Stop() OVERRIDE; + virtual void Close() OVERRIDE; private: // Logs the error and invokes any registered callbacks. diff --git a/media/audio/linux/audio_manager_linux.h b/media/audio/linux/audio_manager_linux.h index 5ec6221..77ea481 100644 --- a/media/audio/linux/audio_manager_linux.h +++ b/media/audio/linux/audio_manager_linux.h @@ -7,6 +7,7 @@ #include <set> +#include "base/compiler_specific.h" #include "base/memory/ref_counted.h" #include "base/threading/thread.h" #include "media/audio/audio_manager_base.h" @@ -18,20 +19,22 @@ class MEDIA_EXPORT AudioManagerLinux : public AudioManagerBase { AudioManagerLinux(); // Call before using a newly created AudioManagerLinux instance. - virtual void Init(); + virtual void Init() OVERRIDE; // Implementation of AudioManager. - virtual bool HasAudioOutputDevices(); - virtual bool HasAudioInputDevices(); + virtual bool HasAudioOutputDevices() OVERRIDE; + virtual bool HasAudioInputDevices() OVERRIDE; virtual AudioOutputStream* MakeAudioOutputStream( - const AudioParameters& params); - virtual AudioInputStream* MakeAudioInputStream(const AudioParameters& params); - virtual bool CanShowAudioInputSettings(); - virtual void ShowAudioInputSettings(); - virtual void GetAudioInputDeviceNames(media::AudioDeviceNames* device_names); - - virtual void MuteAll(); - virtual void UnMuteAll(); + const AudioParameters& params) OVERRIDE; + virtual AudioInputStream* MakeAudioInputStream(const AudioParameters& params) + OVERRIDE; + virtual bool CanShowAudioInputSettings() OVERRIDE; + virtual void ShowAudioInputSettings() OVERRIDE; + virtual void GetAudioInputDeviceNames(media::AudioDeviceNames* device_names) + OVERRIDE; + + virtual void MuteAll() OVERRIDE; + virtual void UnMuteAll() OVERRIDE; virtual void ReleaseOutputStream(AudioOutputStream* stream); |