summaryrefslogtreecommitdiffstats
path: root/chromeos/audio
diff options
context:
space:
mode:
authorderat <derat@chromium.org>2014-08-29 09:10:43 -0700
committerCommit bot <commit-bot@chromium.org>2014-08-29 16:14:58 +0000
commit3698adff97208879298ad45a0bb07ea13cc5f49c (patch)
tree7490391283611e66c95e706febbe4633f6a008ab /chromeos/audio
parentabbfd37ef6db3e3012a55634a5487b50c1526b74 (diff)
downloadchromium_src-3698adff97208879298ad45a0bb07ea13cc5f49c.zip
chromium_src-3698adff97208879298ad45a0bb07ea13cc5f49c.tar.gz
chromium_src-3698adff97208879298ad45a0bb07ea13cc5f49c.tar.bz2
app_shell: Do simple audio initialization.
Add a ShellAudioController class that activates audio devices for input and output and requests max volume. Also move chromeos::NetworkHandler initialization into ShellBrowserMainParts so that ShellNetworkController can get tests at some point. BUG=405968 Review URL: https://codereview.chromium.org/515573003 Cr-Commit-Position: refs/heads/master@{#292643}
Diffstat (limited to 'chromeos/audio')
-rw-r--r--chromeos/audio/audio_device.cc74
-rw-r--r--chromeos/audio/audio_device.h13
-rw-r--r--chromeos/audio/cras_audio_handler_unittest.cc5
3 files changed, 49 insertions, 43 deletions
diff --git a/chromeos/audio/audio_device.cc b/chromeos/audio/audio_device.cc
index 1a9169a..a3abba0 100644
--- a/chromeos/audio/audio_device.cc
+++ b/chromeos/audio/audio_device.cc
@@ -9,81 +9,81 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
+namespace chromeos {
+
namespace {
// Get the priority for a particular device type. The priority returned
// will be between 0 to 3, the higher number meaning a higher priority.
-uint8 GetDevicePriority(chromeos::AudioDeviceType type) {
+uint8 GetDevicePriority(AudioDeviceType type) {
switch (type) {
- // Fall through.
- case chromeos::AUDIO_TYPE_HEADPHONE:
- case chromeos::AUDIO_TYPE_MIC:
- case chromeos::AUDIO_TYPE_USB:
- case chromeos::AUDIO_TYPE_BLUETOOTH:
+ case AUDIO_TYPE_HEADPHONE:
+ case AUDIO_TYPE_MIC:
+ case AUDIO_TYPE_USB:
+ case AUDIO_TYPE_BLUETOOTH:
return 3;
- case chromeos::AUDIO_TYPE_HDMI:
+ case AUDIO_TYPE_HDMI:
return 2;
- // Fall through.
- case chromeos::AUDIO_TYPE_INTERNAL_SPEAKER:
- case chromeos::AUDIO_TYPE_INTERNAL_MIC:
+ case AUDIO_TYPE_INTERNAL_SPEAKER:
+ case AUDIO_TYPE_INTERNAL_MIC:
return 1;
- // Fall through.
- case chromeos::AUDIO_TYPE_KEYBOARD_MIC:
- case chromeos::AUDIO_TYPE_OTHER:
+ case AUDIO_TYPE_KEYBOARD_MIC:
+ case AUDIO_TYPE_OTHER:
default:
return 0;
}
}
-std::string GetTypeString(chromeos::AudioDeviceType type) {
+} // namespace
+
+// static
+std::string AudioDevice::GetTypeString(AudioDeviceType type) {
switch (type) {
- case chromeos::AUDIO_TYPE_HEADPHONE:
+ case AUDIO_TYPE_HEADPHONE:
return "HEADPHONE";
- case chromeos::AUDIO_TYPE_MIC:
+ case AUDIO_TYPE_MIC:
return "MIC";
- case chromeos::AUDIO_TYPE_USB:
+ case AUDIO_TYPE_USB:
return "USB";
- case chromeos::AUDIO_TYPE_BLUETOOTH:
+ case AUDIO_TYPE_BLUETOOTH:
return "BLUETOOTH";
- case chromeos::AUDIO_TYPE_HDMI:
+ case AUDIO_TYPE_HDMI:
return "HDMI";
- case chromeos::AUDIO_TYPE_INTERNAL_SPEAKER:
+ case AUDIO_TYPE_INTERNAL_SPEAKER:
return "INTERNAL_SPEAKER";
- case chromeos::AUDIO_TYPE_INTERNAL_MIC:
+ case AUDIO_TYPE_INTERNAL_MIC:
return "INTERNAL_MIC";
- case chromeos::AUDIO_TYPE_KEYBOARD_MIC:
+ case AUDIO_TYPE_KEYBOARD_MIC:
return "KEYBOARD_MIC";
- case chromeos::AUDIO_TYPE_OTHER:
+ case AUDIO_TYPE_OTHER:
default:
return "OTHER";
}
}
-chromeos::AudioDeviceType GetAudioType(const std::string& node_type) {
+// static
+AudioDeviceType AudioDevice::GetAudioType(
+ const std::string& node_type) {
if (node_type.find("HEADPHONE") != std::string::npos)
- return chromeos::AUDIO_TYPE_HEADPHONE;
+ return AUDIO_TYPE_HEADPHONE;
else if (node_type.find("INTERNAL_MIC") != std::string::npos)
- return chromeos::AUDIO_TYPE_INTERNAL_MIC;
+ return AUDIO_TYPE_INTERNAL_MIC;
else if (node_type.find("KEYBOARD_MIC") != std::string::npos)
- return chromeos::AUDIO_TYPE_KEYBOARD_MIC;
+ return AUDIO_TYPE_KEYBOARD_MIC;
else if (node_type.find("MIC") != std::string::npos)
- return chromeos::AUDIO_TYPE_MIC;
+ return AUDIO_TYPE_MIC;
else if (node_type.find("USB") != std::string::npos)
- return chromeos::AUDIO_TYPE_USB;
+ return AUDIO_TYPE_USB;
else if (node_type.find("BLUETOOTH") != std::string::npos)
- return chromeos::AUDIO_TYPE_BLUETOOTH;
+ return AUDIO_TYPE_BLUETOOTH;
else if (node_type.find("HDMI") != std::string::npos)
- return chromeos::AUDIO_TYPE_HDMI;
+ return AUDIO_TYPE_HDMI;
else if (node_type.find("INTERNAL_SPEAKER") != std::string::npos)
- return chromeos::AUDIO_TYPE_INTERNAL_SPEAKER;
+ return AUDIO_TYPE_INTERNAL_SPEAKER;
else
- return chromeos::AUDIO_TYPE_OTHER;
+ return AUDIO_TYPE_OTHER;
}
-} // namespace
-
-namespace chromeos {
-
AudioDevice::AudioDevice()
: is_input(false),
id(0),
diff --git a/chromeos/audio/audio_device.h b/chromeos/audio/audio_device.h
index 31e45fd..75ac089 100644
--- a/chromeos/audio/audio_device.h
+++ b/chromeos/audio/audio_device.h
@@ -29,6 +29,15 @@ enum AudioDeviceType {
};
struct CHROMEOS_EXPORT AudioDevice {
+ AudioDevice();
+ explicit AudioDevice(const AudioNode& node);
+ std::string ToString() const;
+
+ // Converts between the string type sent via D-Bus and AudioDeviceType.
+ // Static so they can be used by tests.
+ static std::string GetTypeString(chromeos::AudioDeviceType type);
+ static chromeos::AudioDeviceType GetAudioType(const std::string& node_type);
+
bool is_input;
uint64 id;
std::string display_name;
@@ -37,10 +46,6 @@ struct CHROMEOS_EXPORT AudioDevice {
uint8 priority;
bool active;
uint64 plugged_time;
-
- AudioDevice();
- explicit AudioDevice(const AudioNode& node);
- std::string ToString() const;
};
typedef std::vector<AudioDevice> AudioDeviceList;
diff --git a/chromeos/audio/cras_audio_handler_unittest.cc b/chromeos/audio/cras_audio_handler_unittest.cc
index dec728e..c83c21b 100644
--- a/chromeos/audio/cras_audio_handler_unittest.cc
+++ b/chromeos/audio/cras_audio_handler_unittest.cc
@@ -255,7 +255,7 @@ class CrasAudioHandlerTest : public testing::Test {
DBusThreadManager::Initialize();
cras_audio_client_stub_ = static_cast<CrasAudioClientStubImpl*>(
DBusThreadManager::Get()->GetCrasAudioClient());
- cras_audio_client_stub_->SetAudioDevices(audio_nodes);
+ cras_audio_client_stub_->SetAudioNodesForTesting(audio_nodes);
audio_pref_handler_ = new AudioDevicesPrefHandlerStub();
CrasAudioHandler::Initialize(audio_pref_handler_);
cras_audio_handler_ = CrasAudioHandler::Get();
@@ -265,7 +265,8 @@ class CrasAudioHandlerTest : public testing::Test {
}
void ChangeAudioNodes(const AudioNodeList& audio_nodes) {
- cras_audio_client_stub_->ChangeAudioNodes(audio_nodes);
+ cras_audio_client_stub_->SetAudioNodesAndNotifyObserversForTesting(
+ audio_nodes);
message_loop_.RunUntilIdle();
}