summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-18 21:06:12 +0000
committerxians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-18 21:06:12 +0000
commit31c0e51315a22462860909c286a8db2324c7b6b9 (patch)
tree02ab61bbbc45398373c364cb26561f0ec531b2d9
parentc534204df06b02679552f360dafb32854388348f (diff)
downloadchromium_src-31c0e51315a22462860909c286a8db2324c7b6b9.zip
chromium_src-31c0e51315a22462860909c286a8db2324c7b6b9.tar.gz
chromium_src-31c0e51315a22462860909c286a8db2324c7b6b9.tar.bz2
Break down AudioManagerLinux cras code to AudioManagerCras to remove the if-statements and if-def checks.
BUG=148661 TEST=compile Review URL: https://chromiumcodereview.appspot.com/12226111 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183140 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--media/audio/cras/audio_manager_cras.cc106
-rw-r--r--media/audio/cras/audio_manager_cras.h59
-rw-r--r--media/audio/cras/cras_input.cc (renamed from media/audio/linux/cras_input.cc)6
-rw-r--r--media/audio/cras/cras_input.h (renamed from media/audio/linux/cras_input.h)12
-rw-r--r--media/audio/cras/cras_input_unittest.cc (renamed from media/audio/linux/cras_input_unittest.cc)10
-rw-r--r--media/audio/cras/cras_output.cc (renamed from media/audio/linux/cras_output.cc)6
-rw-r--r--media/audio/cras/cras_output.h (renamed from media/audio/linux/cras_output.h)12
-rw-r--r--media/audio/cras/cras_output_unittest.cc (renamed from media/audio/linux/cras_output_unittest.cc)13
-rw-r--r--media/audio/linux/audio_manager_linux.cc55
-rw-r--r--media/audio/linux/audio_manager_linux.h6
-rw-r--r--media/media.gyp34
11 files changed, 228 insertions, 91 deletions
diff --git a/media/audio/cras/audio_manager_cras.cc b/media/audio/cras/audio_manager_cras.cc
new file mode 100644
index 0000000..2d0d9cf
--- /dev/null
+++ b/media/audio/cras/audio_manager_cras.cc
@@ -0,0 +1,106 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "media/audio/cras/audio_manager_cras.h"
+
+#include "base/command_line.h"
+#include "base/environment.h"
+#include "base/logging.h"
+#include "base/nix/xdg_util.h"
+#include "base/process_util.h"
+#include "base/stl_util.h"
+#include "media/audio/audio_util.h"
+#include "media/audio/cras/cras_input.h"
+#include "media/audio/cras/cras_output.h"
+
+namespace media {
+
+// Maximum number of output streams that can be open simultaneously.
+static const int kMaxOutputStreams = 50;
+
+static const char kCrasAutomaticDeviceName[] = "Automatic";
+static const char kCrasAutomaticDeviceId[] = "automatic";
+
+bool AudioManagerCras::HasAudioOutputDevices() {
+ return true;
+}
+
+bool AudioManagerCras::HasAudioInputDevices() {
+ return true;
+}
+
+AudioManagerCras::AudioManagerCras() {
+ SetMaxOutputStreamsAllowed(kMaxOutputStreams);
+}
+
+AudioManagerCras::~AudioManagerCras() {
+ Shutdown();
+}
+
+bool AudioManagerCras::CanShowAudioInputSettings() {
+ return false;
+}
+
+void AudioManagerCras::ShowAudioInputSettings() {
+ NOTIMPLEMENTED();
+}
+
+void AudioManagerCras::GetAudioInputDeviceNames(
+ media::AudioDeviceNames* device_names) {
+ DCHECK(device_names->empty());
+ GetCrasAudioInputDevices(device_names);
+ return;
+}
+
+void AudioManagerCras::GetCrasAudioInputDevices(
+ media::AudioDeviceNames* device_names) {
+ // Cras will route audio from a proper physical device automatically.
+ device_names->push_back(media::AudioDeviceName(
+ kCrasAutomaticDeviceName, kCrasAutomaticDeviceId));
+}
+
+AudioOutputStream* AudioManagerCras::MakeLinearOutputStream(
+ const AudioParameters& params) {
+ DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
+ return MakeOutputStream(params);
+}
+
+AudioOutputStream* AudioManagerCras::MakeLowLatencyOutputStream(
+ const AudioParameters& params) {
+ DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
+ return MakeOutputStream(params);
+}
+
+AudioInputStream* AudioManagerCras::MakeLinearInputStream(
+ const AudioParameters& params, const std::string& device_id) {
+ DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
+ return MakeInputStream(params, device_id);
+}
+
+AudioInputStream* AudioManagerCras::MakeLowLatencyInputStream(
+ const AudioParameters& params, const std::string& device_id) {
+ DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
+ return MakeInputStream(params, device_id);
+}
+
+AudioOutputStream* AudioManagerCras::MakeOutputStream(
+ const AudioParameters& params) {
+ return new CrasOutputStream(params, this);
+}
+
+AudioInputStream* AudioManagerCras::MakeInputStream(
+ const AudioParameters& params, const std::string& device_id) {
+ return new CrasInputStream(params, this);
+}
+
+AudioParameters AudioManagerCras::GetPreferredLowLatencyOutputStreamParameters(
+ const AudioParameters& input_params) {
+ // TODO(dalecurtis): This should include bits per channel and channel layout
+ // eventually.
+ return AudioParameters(
+ AudioParameters::AUDIO_PCM_LOW_LATENCY, input_params.channel_layout(),
+ input_params.sample_rate(), 16, input_params.frames_per_buffer());
+}
+
+} // namespace media
diff --git a/media/audio/cras/audio_manager_cras.h b/media/audio/cras/audio_manager_cras.h
new file mode 100644
index 0000000..7ff7ba4
--- /dev/null
+++ b/media/audio/cras/audio_manager_cras.h
@@ -0,0 +1,59 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MEDIA_AUDIO_CRAS_AUDIO_MANAGER_CRAS_H_
+#define MEDIA_AUDIO_CRAS_AUDIO_MANAGER_CRAS_H_
+
+#include <string>
+
+#include "base/compiler_specific.h"
+#include "base/memory/ref_counted.h"
+#include "media/audio/audio_manager_base.h"
+
+namespace media {
+
+class MEDIA_EXPORT AudioManagerCras : public AudioManagerBase {
+ public:
+ AudioManagerCras();
+
+ // AudioManager implementation.
+ virtual bool HasAudioOutputDevices() OVERRIDE;
+ virtual bool HasAudioInputDevices() OVERRIDE;
+ virtual bool CanShowAudioInputSettings() OVERRIDE;
+ virtual void ShowAudioInputSettings() OVERRIDE;
+ virtual void GetAudioInputDeviceNames(media::AudioDeviceNames* device_names)
+ OVERRIDE;
+
+ // AudioManagerBase implementation.
+ virtual AudioOutputStream* MakeLinearOutputStream(
+ const AudioParameters& params) OVERRIDE;
+ virtual AudioOutputStream* MakeLowLatencyOutputStream(
+ const AudioParameters& params) OVERRIDE;
+ virtual AudioInputStream* MakeLinearInputStream(
+ const AudioParameters& params, const std::string& device_id) OVERRIDE;
+ virtual AudioInputStream* MakeLowLatencyInputStream(
+ const AudioParameters& params, const std::string& device_id) OVERRIDE;
+ virtual AudioParameters GetPreferredLowLatencyOutputStreamParameters(
+ const AudioParameters& input_params) OVERRIDE;
+
+ protected:
+ virtual ~AudioManagerCras();
+
+ private:
+ // Gets a list of available cras input devices.
+ void GetCrasAudioInputDevices(media::AudioDeviceNames* device_names);
+
+ // Called by MakeLinearOutputStream and MakeLowLatencyOutputStream.
+ AudioOutputStream* MakeOutputStream(const AudioParameters& params);
+
+ // Called by MakeLinearInputStream and MakeLowLatencyInputStream.
+ AudioInputStream* MakeInputStream(const AudioParameters& params,
+ const std::string& device_id);
+
+ DISALLOW_COPY_AND_ASSIGN(AudioManagerCras);
+};
+
+} // namespace media
+
+#endif // MEDIA_AUDIO_CRAS_AUDIO_MANAGER_CRAS_H_
diff --git a/media/audio/linux/cras_input.cc b/media/audio/cras/cras_input.cc
index 6de405e..d93b695 100644
--- a/media/audio/linux/cras_input.cc
+++ b/media/audio/cras/cras_input.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "media/audio/linux/cras_input.h"
+#include "media/audio/cras/cras_input.h"
#include <math.h>
@@ -11,13 +11,13 @@
#include "base/logging.h"
#include "base/time.h"
#include "media/audio/audio_manager.h"
+#include "media/audio/cras/audio_manager_cras.h"
#include "media/audio/linux/alsa_util.h"
-#include "media/audio/linux/audio_manager_linux.h"
namespace media {
CrasInputStream::CrasInputStream(const AudioParameters& params,
- AudioManagerLinux* manager)
+ AudioManagerCras* manager)
: audio_manager_(manager),
bytes_per_frame_(0),
callback_(NULL),
diff --git a/media/audio/linux/cras_input.h b/media/audio/cras/cras_input.h
index 87891da..37772bf 100644
--- a/media/audio/linux/cras_input.h
+++ b/media/audio/cras/cras_input.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef MEDIA_AUDIO_LINUX_CRAS_INPUT_H_
-#define MEDIA_AUDIO_LINUX_CRAS_INPUT_H_
+#ifndef MEDIA_AUDIO_CRAS_CRAS_INPUT_H_
+#define MEDIA_AUDIO_CRAS_CRAS_INPUT_H_
#include <cras_client.h>
@@ -18,7 +18,7 @@
namespace media {
-class AudioManagerLinux;
+class AudioManagerCras;
// Provides an input stream for audio capture based on CRAS, the ChromeOS Audio
// Server. This object is not thread safe and all methods should be invoked in
@@ -27,7 +27,7 @@ class CrasInputStream : public AudioInputStreamImpl {
public:
// The ctor takes all the usual parameters, plus |manager| which is the
// audio manager who is creating this object.
- CrasInputStream(const AudioParameters& params, AudioManagerLinux* manager);
+ CrasInputStream(const AudioParameters& params, AudioManagerCras* manager);
// The dtor is typically called by the AudioManager only and it is usually
// triggered by calling AudioOutputStream::Close().
@@ -76,7 +76,7 @@ class CrasInputStream : public AudioInputStreamImpl {
// want circular references. Additionally, stream objects live on the audio
// thread, which is owned by the audio manager and we don't want to addref
// the manager from that thread.
- AudioManagerLinux* audio_manager_;
+ AudioManagerCras* audio_manager_;
// Size of frame in bytes.
uint32 bytes_per_frame_;
@@ -101,4 +101,4 @@ class CrasInputStream : public AudioInputStreamImpl {
} // namespace media
-#endif // MEDIA_AUDIO_LINUX_ALSA_INPUT_H_
+#endif // MEDIA_AUDIO_CRAS_ALSA_INPUT_H_
diff --git a/media/audio/linux/cras_input_unittest.cc b/media/audio/cras/cras_input_unittest.cc
index 5d9a1c8..352beb1 100644
--- a/media/audio/linux/cras_input_unittest.cc
+++ b/media/audio/cras/cras_input_unittest.cc
@@ -9,8 +9,8 @@
#include "base/synchronization/waitable_event.h"
#include "base/test/test_timeouts.h"
#include "base/time.h"
-#include "media/audio/linux/audio_manager_linux.h"
-#include "media/audio/linux/cras_input.h"
+#include "media/audio/cras/audio_manager_cras.h"
+#include "media/audio/cras/cras_input.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -30,7 +30,7 @@ class MockAudioInputCallback : public AudioInputStream::AudioInputCallback {
MOCK_METHOD1(OnClose, void(AudioInputStream*));
};
-class MockAudioManagerLinuxInput : public AudioManagerLinux {
+class MockAudioManagerCrasInput : public AudioManagerCras {
public:
// We need to override this function in order to skip checking the number
// of active output streams. It is because the number of active streams
@@ -45,7 +45,7 @@ class MockAudioManagerLinuxInput : public AudioManagerLinux {
class CrasInputStreamTest : public testing::Test {
protected:
CrasInputStreamTest() {
- mock_manager_.reset(new StrictMock<MockAudioManagerLinuxInput>());
+ mock_manager_.reset(new StrictMock<MockAudioManagerCrasInput>());
}
virtual ~CrasInputStreamTest() {
@@ -104,7 +104,7 @@ class CrasInputStreamTest : public testing::Test {
static const uint32 kTestFramesPerPacket;
static const int kTestSampleRate;
- scoped_ptr<StrictMock<MockAudioManagerLinuxInput> > mock_manager_;
+ scoped_ptr<StrictMock<MockAudioManagerCrasInput> > mock_manager_;
private:
DISALLOW_COPY_AND_ASSIGN(CrasInputStreamTest);
diff --git a/media/audio/linux/cras_output.cc b/media/audio/cras/cras_output.cc
index 429ffc2..1995d96 100644
--- a/media/audio/linux/cras_output.cc
+++ b/media/audio/cras/cras_output.cc
@@ -8,14 +8,14 @@
// the exception of Close(). Even if an error state has been entered, if Open()
// has previously returned successfully, Close() must be called.
-#include "media/audio/linux/cras_output.h"
+#include "media/audio/cras/cras_output.h"
#include <cras_client.h>
#include "base/logging.h"
#include "media/audio/audio_util.h"
+#include "media/audio/cras/audio_manager_cras.h"
#include "media/audio/linux/alsa_util.h"
-#include "media/audio/linux/audio_manager_linux.h"
namespace media {
@@ -61,7 +61,7 @@ std::ostream& operator<<(std::ostream& os,
// which likely will destroy this object.
CrasOutputStream::CrasOutputStream(const AudioParameters& params,
- AudioManagerLinux* manager)
+ AudioManagerCras* manager)
: client_(NULL),
stream_id_(0),
samples_per_packet_(params.frames_per_buffer()),
diff --git a/media/audio/linux/cras_output.h b/media/audio/cras/cras_output.h
index 8dffbce..dca7923 100644
--- a/media/audio/linux/cras_output.h
+++ b/media/audio/cras/cras_output.h
@@ -7,8 +7,8 @@
// CrasOutputStream object is *not* thread-safe and should only be used
// from the audio thread.
-#ifndef MEDIA_AUDIO_LINUX_CRAS_OUTPUT_H_
-#define MEDIA_AUDIO_LINUX_CRAS_OUTPUT_H_
+#ifndef MEDIA_AUDIO_CRAS_CRAS_OUTPUT_H_
+#define MEDIA_AUDIO_CRAS_CRAS_OUTPUT_H_
#include <alsa/asoundlib.h>
#include <cras_client.h>
@@ -20,7 +20,7 @@
namespace media {
-class AudioManagerLinux;
+class AudioManagerCras;
class AudioParameters;
// Implementation of AudioOuputStream for Chrome OS using the Chrome OS audio
@@ -29,7 +29,7 @@ class MEDIA_EXPORT CrasOutputStream : public AudioOutputStream {
public:
// The ctor takes all the usual parameters, plus |manager| which is the
// audio manager who is creating this object.
- CrasOutputStream(const AudioParameters& params, AudioManagerLinux* manager);
+ CrasOutputStream(const AudioParameters& params, AudioManagerCras* manager);
// The dtor is typically called by the AudioManager only and it is usually
// triggered by calling AudioOutputStream::Close().
@@ -111,7 +111,7 @@ class MEDIA_EXPORT CrasOutputStream : public AudioOutputStream {
float volume_;
// Audio manager that created us. Used to report that we've been closed.
- AudioManagerLinux* manager_;
+ AudioManagerCras* manager_;
// Callback to get audio samples.
AudioSourceCallback* source_callback_;
@@ -124,4 +124,4 @@ class MEDIA_EXPORT CrasOutputStream : public AudioOutputStream {
} // namespace media
-#endif // MEDIA_AUDIO_LINUX_CRAS_OUTPUT_H_
+#endif // MEDIA_AUDIO_CRAS_CRAS_OUTPUT_H_
diff --git a/media/audio/linux/cras_output_unittest.cc b/media/audio/cras/cras_output_unittest.cc
index f9e2b24..cbae6fe 100644
--- a/media/audio/linux/cras_output_unittest.cc
+++ b/media/audio/cras/cras_output_unittest.cc
@@ -4,8 +4,9 @@
#include <string>
-#include "media/audio/linux/audio_manager_linux.h"
-#include "media/audio/linux/cras_output.h"
+#include "base/threading/thread.h"
+#include "media/audio/cras/audio_manager_cras.h"
+#include "media/audio/cras/cras_output.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -27,7 +28,7 @@ class MockAudioSourceCallback : public AudioOutputStream::AudioSourceCallback {
MOCK_METHOD2(OnError, void(AudioOutputStream* stream, int code));
};
-class MockAudioManagerLinux : public AudioManagerLinux {
+class MockAudioManagerCras : public AudioManagerCras {
public:
MOCK_METHOD0(Init, void());
MOCK_METHOD0(HasAudioOutputDevices, bool());
@@ -60,7 +61,7 @@ class MockAudioManagerLinux : public AudioManagerLinux {
class CrasOutputStreamTest : public testing::Test {
protected:
CrasOutputStreamTest() {
- mock_manager_.reset(new StrictMock<MockAudioManagerLinux>());
+ mock_manager_.reset(new StrictMock<MockAudioManagerCras>());
}
virtual ~CrasOutputStreamTest() {
@@ -78,7 +79,7 @@ class CrasOutputStreamTest : public testing::Test {
mock_manager_.get());
}
- MockAudioManagerLinux& mock_manager() {
+ MockAudioManagerCras& mock_manager() {
return *(mock_manager_.get());
}
@@ -93,7 +94,7 @@ class CrasOutputStreamTest : public testing::Test {
static struct cras_stream_params* const kFakeStreamParams;
static struct cras_client* const kFakeClient;
- scoped_ptr<StrictMock<MockAudioManagerLinux> > mock_manager_;
+ scoped_ptr<StrictMock<MockAudioManagerCras> > mock_manager_;
private:
DISALLOW_COPY_AND_ASSIGN(CrasOutputStreamTest);
diff --git a/media/audio/linux/audio_manager_linux.cc b/media/audio/linux/audio_manager_linux.cc
index 3387d56..90543d7 100644
--- a/media/audio/linux/audio_manager_linux.cc
+++ b/media/audio/linux/audio_manager_linux.cc
@@ -12,16 +12,15 @@
#include "base/stl_util.h"
#include "media/audio/audio_output_dispatcher.h"
#include "media/audio/audio_util.h"
+#if defined(USE_CRAS)
+#include "media/audio/cras/audio_manager_cras.h"
+#endif
#include "media/audio/linux/alsa_input.h"
#include "media/audio/linux/alsa_output.h"
#include "media/audio/linux/alsa_wrapper.h"
#if defined(USE_PULSEAUDIO)
#include "media/audio/pulse/pulse_output.h"
#endif
-#if defined(USE_CRAS)
-#include "media/audio/linux/cras_input.h"
-#include "media/audio/linux/cras_output.h"
-#endif
#include "media/base/limits.h"
#include "media/base/media_switches.h"
@@ -42,21 +41,12 @@ static const char* kInvalidAudioInputDevices[] = {
"surround",
};
-static const char kCrasAutomaticDeviceName[] = "Automatic";
-static const char kCrasAutomaticDeviceId[] = "automatic";
-
// Implementation of AudioManager.
bool AudioManagerLinux::HasAudioOutputDevices() {
- if (UseCras())
- return true;
-
return HasAnyAlsaAudioDevice(kStreamPlayback);
}
bool AudioManagerLinux::HasAudioInputDevices() {
- if (UseCras())
- return true;
-
return HasAnyAlsaAudioDevice(kStreamCapture);
}
@@ -96,30 +86,9 @@ void AudioManagerLinux::ShowAudioInputSettings() {
void AudioManagerLinux::GetAudioInputDeviceNames(
media::AudioDeviceNames* device_names) {
DCHECK(device_names->empty());
- if (UseCras()) {
- GetCrasAudioInputDevices(device_names);
- return;
- }
-
GetAlsaAudioInputDevices(device_names);
}
-bool AudioManagerLinux::UseCras() {
-#if defined(USE_CRAS)
- if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kUseCras)) {
- return true;
- }
-#endif
- return false;
-}
-
-void AudioManagerLinux::GetCrasAudioInputDevices(
- media::AudioDeviceNames* device_names) {
- // Cras will route audio from a proper physical device automatically.
- device_names->push_back(media::AudioDeviceName(
- kCrasAutomaticDeviceName, kCrasAutomaticDeviceId));
-}
-
void AudioManagerLinux::GetAlsaAudioInputDevices(
media::AudioDeviceNames* device_names) {
// Constants specified by the ALSA API for device hints.
@@ -279,12 +248,6 @@ AudioInputStream* AudioManagerLinux::MakeLowLatencyInputStream(
AudioOutputStream* AudioManagerLinux::MakeOutputStream(
const AudioParameters& params) {
-#if defined(USE_CRAS)
- if (UseCras()) {
- return new CrasOutputStream(params, this);
- }
-#endif
-
#if defined(USE_PULSEAUDIO)
if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kUsePulseAudio)) {
return new PulseAudioOutputStream(params, this);
@@ -302,12 +265,6 @@ AudioOutputStream* AudioManagerLinux::MakeOutputStream(
AudioInputStream* AudioManagerLinux::MakeInputStream(
const AudioParameters& params, const std::string& device_id) {
-#if defined(USE_CRAS)
- if (UseCras()) {
- return new CrasInputStream(params, this);
- }
-#endif
-
std::string device_name = (device_id == AudioManagerBase::kDefaultDeviceId) ?
AlsaPcmInputStream::kAutoSelectDevice : device_id;
if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAlsaInputDevice)) {
@@ -319,6 +276,12 @@ AudioInputStream* AudioManagerLinux::MakeInputStream(
}
AudioManager* CreateAudioManager() {
+#if defined(USE_CRAS)
+ if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kUseCras)) {
+ return new AudioManagerCras();
+ }
+#endif
+
return new AudioManagerLinux();
}
diff --git a/media/audio/linux/audio_manager_linux.h b/media/audio/linux/audio_manager_linux.h
index cbcfe62..4d1695b 100644
--- a/media/audio/linux/audio_manager_linux.h
+++ b/media/audio/linux/audio_manager_linux.h
@@ -47,12 +47,6 @@ class MEDIA_EXPORT AudioManagerLinux : public AudioManagerBase {
kStreamCapture,
};
- // Returns true if cras should be used for input/output.
- bool UseCras();
-
- // Gets a list of available cras input devices.
- void GetCrasAudioInputDevices(media::AudioDeviceNames* device_names);
-
// Gets a list of available ALSA input devices.
void GetAlsaAudioInputDevices(media::AudioDeviceNames* device_names);
diff --git a/media/media.gyp b/media/media.gyp
index f31cdc9..1b78855 100644
--- a/media/media.gyp
+++ b/media/media.gyp
@@ -91,6 +91,12 @@
'audio/audio_source_diverter.h',
'audio/audio_util.cc',
'audio/audio_util.h',
+ 'audio/cras/audio_manager_cras.cc',
+ 'audio/cras/audio_manager_cras.h',
+ 'audio/cras/cras_input.cc',
+ 'audio/cras/cras_input.h',
+ 'audio/cras/cras_output.cc',
+ 'audio/cras/cras_output.h',
'audio/cross_process_notification.cc',
'audio/cross_process_notification.h',
'audio/cross_process_notification_posix.cc',
@@ -113,10 +119,6 @@
'audio/linux/alsa_wrapper.h',
'audio/linux/audio_manager_linux.cc',
'audio/linux/audio_manager_linux.h',
- 'audio/linux/cras_input.cc',
- 'audio/linux/cras_input.h',
- 'audio/linux/cras_output.cc',
- 'audio/linux/cras_output.h',
'audio/mac/audio_device_listener_mac.cc',
'audio/mac/audio_device_listener_mac.h',
'audio/mac/audio_input_mac.cc',
@@ -590,14 +592,26 @@
],
}, { # else: use_cras == 0
'sources!': [
- 'audio/linux/cras_input.cc',
- 'audio/linux/cras_input.h',
- 'audio/linux/cras_output.cc',
- 'audio/linux/cras_output.h',
+ 'audio/cras/audio_manager_cras.cc',
+ 'audio/cras/audio_manager_cras.h',
+ 'audio/cras/cras_input.cc',
+ 'audio/cras/cras_input.h',
+ 'audio/cras/cras_output.cc',
+ 'audio/cras/cras_output.h',
],
}],
],
}],
+ ['OS!="linux"', {
+ 'sources!': [
+ 'audio/cras/audio_manager_cras.cc',
+ 'audio/cras/audio_manager_cras.h',
+ 'audio/cras/cras_input.cc',
+ 'audio/cras/cras_input.h',
+ 'audio/cras/cras_output.cc',
+ 'audio/cras/cras_output.h',
+ ],
+ }],
['os_posix == 1', {
'conditions': [
['use_pulseaudio == 1', {
@@ -908,8 +922,8 @@
'conditions': [
['use_cras == 1', {
'sources': [
- 'audio/linux/cras_input_unittest.cc',
- 'audio/linux/cras_output_unittest.cc',
+ 'audio/cras/cras_input_unittest.cc',
+ 'audio/cras/cras_output_unittest.cc',
],
'defines': [
'USE_CRAS',