summaryrefslogtreecommitdiffstats
path: root/media/audio/linux
diff options
context:
space:
mode:
authorleandrogracia@chromium.org <leandrogracia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-13 18:07:50 +0000
committerleandrogracia@chromium.org <leandrogracia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-13 18:07:50 +0000
commit595c759b8e2d6d1db60f2b0801a8286344cc8977 (patch)
tree2939b4c5639caa29c3b8763a5dd06c2264726851 /media/audio/linux
parentbd21a961f6937f7548401bbaae78e0543a982aea (diff)
downloadchromium_src-595c759b8e2d6d1db60f2b0801a8286344cc8977.zip
chromium_src-595c759b8e2d6d1db60f2b0801a8286344cc8977.tar.gz
chromium_src-595c759b8e2d6d1db60f2b0801a8286344cc8977.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 Review URL: http://codereview.chromium.org/8208013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105333 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/audio/linux')
-rw-r--r--media/audio/linux/alsa_input.cc10
-rw-r--r--media/audio/linux/alsa_input.h9
-rw-r--r--media/audio/linux/audio_manager_linux.h29
3 files changed, 31 insertions, 17 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..e7ac53a 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,22 +19,24 @@ 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();
-
- virtual void ReleaseOutputStream(AudioOutputStream* stream);
+ 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) OVERRIDE;
protected:
virtual ~AudioManagerLinux();