summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.cc71
-rw-r--r--chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.h11
-rw-r--r--chrome/browser/extensions/api/audio/audio_api.cc37
-rw-r--r--chrome/browser/extensions/api/audio/audio_api.h4
-rw-r--r--chrome/browser/extensions/api/audio/audio_service.cc15
-rw-r--r--chrome/browser/extensions/api/audio/audio_service.h11
-rw-r--r--chrome/browser/extensions/api/audio/audio_service_chromeos.cc101
7 files changed, 59 insertions, 191 deletions
diff --git a/chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.cc b/chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.cc
index a3aa88d..c8d5b03 100644
--- a/chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.cc
+++ b/chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.cc
@@ -4,8 +4,6 @@
#include "chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.h"
-#include <algorithm>
-
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/logging.h"
@@ -19,49 +17,64 @@
namespace chromeos {
-double AudioDevicesPrefHandlerImpl::GetVolumeGainValue(
- uint64 device_id) {
- UpdateDevicesVolumePref();
+namespace {
+
+// Default value for the volume pref, as a percent in the range [0.0, 100.0].
+const double kDefaultVolumePercent = 75.0;
- std::string device_id_str = base::Uint64ToString(device_id);
- if (!device_volume_settings_->HasKey(device_id_str))
- MigrateDeviceVolumeSettings(device_id_str);
+// Values used for muted preference.
+const int kPrefMuteOff = 0;
+const int kPrefMuteOn = 1;
- double volume = kDefaultVolumeGainPercent;
- device_volume_settings_->GetDouble(device_id_str, &volume);
+} // namespace
+double AudioDevicesPrefHandlerImpl::GetOutputVolumeValue() {
+ if (!CrasAudioHandler::IsInitialized())
+ return kDefaultVolumePercent;
+
+ UpdateDevicesVolumePref();
+ std::string active_device_id = base::Uint64ToString(
+ CrasAudioHandler::Get()->GetActiveOutputNode());
+ if (!device_volume_settings_->HasKey(active_device_id))
+ MigrateDeviceVolumeSettings(active_device_id);
+ double volume = kDefaultVolumePercent;
+ device_volume_settings_->GetDouble(active_device_id, &volume);
return volume;
}
-void AudioDevicesPrefHandlerImpl::SetVolumeGainValue(
- uint64 device_id, double value) {
- value = std::min(std::max(value, 0.0), 100.0);
- device_volume_settings_->SetDouble(base::Uint64ToString(device_id), value);
-
+void AudioDevicesPrefHandlerImpl::SetOutputVolumeValue(double volume_percent) {
+ std::string active_device_id = base::Uint64ToString(
+ CrasAudioHandler::Get()->GetActiveOutputNode());
+ if (volume_percent > 100.0)
+ volume_percent = 100.0;
+ if (volume_percent < 0.0)
+ volume_percent = 0.0;
+ device_volume_settings_->SetDouble(active_device_id, volume_percent);
SaveDevicesVolumePref();
}
-bool AudioDevicesPrefHandlerImpl::GetMuteValue(uint64 device_id) {
- UpdateDevicesVolumePref();
-
- std::string device_id_str = base::Uint64ToString(device_id);
- if (!device_mute_settings_->HasKey(device_id_str))
- MigrateDeviceMuteSettings(device_id_str);
+bool AudioDevicesPrefHandlerImpl::GetOutputMuteValue() {
+ if (!CrasAudioHandler::IsInitialized())
+ return false;
+ UpdateDevicesVolumePref();
+ std::string active_device_id = base::Uint64ToString(
+ CrasAudioHandler::Get()->GetActiveOutputNode());
+ if (!device_mute_settings_->HasKey(active_device_id))
+ MigrateDeviceMuteSettings(active_device_id);
int mute = kPrefMuteOff;
- device_mute_settings_->GetInteger(device_id_str, &mute);
-
+ device_mute_settings_->GetInteger(active_device_id, &mute);
return (mute == kPrefMuteOn);
}
-void AudioDevicesPrefHandlerImpl::SetMuteValue(uint64 device_id,
- bool mute) {
- device_mute_settings_->SetBoolean(base::Uint64ToString(device_id),
- mute ? kPrefMuteOn : kPrefMuteOff);
+void AudioDevicesPrefHandlerImpl::SetOutputMuteValue(bool mute) {
+ std::string active_device_id = base::Uint64ToString(
+ CrasAudioHandler::Get()->GetActiveOutputNode());
+ device_mute_settings_->SetBoolean(active_device_id,
+ mute ? kPrefMuteOn : kPrefMuteOff);
SaveDevicesVolumePref();
}
-
bool AudioDevicesPrefHandlerImpl::GetAudioCaptureAllowedValue() {
return local_state_->GetBoolean(prefs::kAudioCaptureAllowed);
}
@@ -133,7 +146,7 @@ void AudioDevicesPrefHandlerImpl::SaveDevicesVolumePref() {
prefs::kAudioDevicesVolumePercent);
base::DictionaryValue::Iterator it(*device_volume_settings_);
while (!it.IsAtEnd()) {
- double volume = kDefaultVolumeGainPercent;
+ double volume = kDefaultVolumePercent;
it.value().GetAsDouble(&volume);
dict_update->Set(it.key(), new base::FundamentalValue(volume));
it.Advance();
diff --git a/chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.h b/chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.h
index e596a1f..44dafe5 100644
--- a/chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.h
+++ b/chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.h
@@ -22,15 +22,12 @@ class AudioDevicesPrefHandlerImpl : public AudioDevicesPrefHandler {
explicit AudioDevicesPrefHandlerImpl(PrefService* local_state);
// Overridden from AudioDevicesPrefHandler.
- virtual double GetVolumeGainValue(uint64 device_id) OVERRIDE;
- virtual void SetVolumeGainValue(uint64 device_id, double value) OVERRIDE;
-
- virtual bool GetMuteValue(uint64 device_id) OVERRIDE;
- virtual void SetMuteValue(uint64 device_id, bool mute_on) OVERRIDE;
-
+ virtual double GetOutputVolumeValue() OVERRIDE;
+ virtual bool GetOutputMuteValue() OVERRIDE;
+ virtual void SetOutputVolumeValue(double volume_percent) OVERRIDE;
+ virtual void SetOutputMuteValue(bool mute_on) OVERRIDE;
virtual bool GetAudioCaptureAllowedValue() OVERRIDE;
virtual bool GetAudioOutputAllowedValue() OVERRIDE;
-
virtual void AddAudioPrefObserver(AudioPrefObserver* observer) OVERRIDE;
virtual void RemoveAudioPrefObserver(AudioPrefObserver* observer) OVERRIDE;
diff --git a/chrome/browser/extensions/api/audio/audio_api.cc b/chrome/browser/extensions/api/audio/audio_api.cc
index 0c717b1..aacf14f 100644
--- a/chrome/browser/extensions/api/audio/audio_api.cc
+++ b/chrome/browser/extensions/api/audio/audio_api.cc
@@ -60,45 +60,18 @@ void AudioGetInfoFunction::OnGetInfoCompleted(const OutputInfo& output_info,
if (success)
results_ = api::audio::GetInfo::Results::Create(output_info, input_info);
else
- SetError("Error occurred when querying audio device information.");
+ SetError("Error occured when querying audio device information.");
SendResponse(success);
}
bool AudioSetActiveDevicesFunction::RunImpl() {
- scoped_ptr<api::audio::SetActiveDevices::Params> params(
- api::audio::SetActiveDevices::Params::Create(*args_));
- EXTENSION_FUNCTION_VALIDATE(params.get());
-
- AudioService* service =
- AudioAPI::GetFactoryInstance()->GetForProfile(profile())->GetService();
- DCHECK(service);
-
- service->SetActiveDevices(params->ids);
- return true;
+ // TODO: implement this.
+ return false;
}
bool AudioSetPropertiesFunction::RunImpl() {
- scoped_ptr<api::audio::SetProperties::Params> params(
- api::audio::SetProperties::Params::Create(*args_));
- EXTENSION_FUNCTION_VALIDATE(params.get());
-
- AudioService* service =
- AudioAPI::GetFactoryInstance()->GetForProfile(profile())->GetService();
- DCHECK(service);
-
- int volume_value = params->properties.volume.get() ?
- *params->properties.volume : -1;
-
- int gain_value = params->properties.gain.get() ?
- *params->properties.gain : -1;
-
- if (!service->SetDeviceProperties(params->id,
- params->properties.is_muted,
- volume_value,
- gain_value))
- return false;
- else
- return true;
+ // TODO: implement this.
+ return false;
}
} // namespace extensions
diff --git a/chrome/browser/extensions/api/audio/audio_api.h b/chrome/browser/extensions/api/audio/audio_api.h
index ae9398a..c8530f6 100644
--- a/chrome/browser/extensions/api/audio/audio_api.h
+++ b/chrome/browser/extensions/api/audio/audio_api.h
@@ -54,7 +54,7 @@ class AudioGetInfoFunction : public AsyncExtensionFunction {
bool success);
};
-class AudioSetActiveDevicesFunction : public SyncExtensionFunction {
+class AudioSetActiveDevicesFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("audio.setActiveDevices",
AUDIO_SETACTIVEDEVICES);
@@ -64,7 +64,7 @@ class AudioSetActiveDevicesFunction : public SyncExtensionFunction {
virtual bool RunImpl() OVERRIDE;
};
-class AudioSetPropertiesFunction : public SyncExtensionFunction {
+class AudioSetPropertiesFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("audio.setProperties",
AUDIO_SETPROPERTIES);
diff --git a/chrome/browser/extensions/api/audio/audio_service.cc b/chrome/browser/extensions/api/audio/audio_service.cc
index e165de2..e5fa3db 100644
--- a/chrome/browser/extensions/api/audio/audio_service.cc
+++ b/chrome/browser/extensions/api/audio/audio_service.cc
@@ -17,11 +17,6 @@ class AudioServiceImpl : public AudioService {
// Start to query audio device information.
virtual void StartGetInfo(const GetInfoCallback& callback) OVERRIDE;
- virtual void SetActiveDevices(const DeviceIdList& device_list) OVERRIDE;
- virtual bool SetDeviceProperties(const std::string& device_id,
- bool muted,
- int volume,
- int gain) OVERRIDE;
};
void AudioServiceImpl::AddObserver(Observer* observer) {
@@ -42,14 +37,4 @@ void AudioServiceImpl::StartGetInfo(const GetInfoCallback& callback) {
callback.Run(OutputInfo(), InputInfo(), false);
}
-void AudioServiceImpl::SetActiveDevices(const DeviceIdList& device_list) {
-}
-
-bool AudioServiceImpl::SetDeviceProperties(const std::string& device_id,
- bool muted,
- int volume,
- int gain) {
- return false;
-}
-
} // namespace extensions
diff --git a/chrome/browser/extensions/api/audio/audio_service.h b/chrome/browser/extensions/api/audio/audio_service.h
index dd6c59f..9d3883e 100644
--- a/chrome/browser/extensions/api/audio/audio_service.h
+++ b/chrome/browser/extensions/api/audio/audio_service.h
@@ -13,7 +13,6 @@ namespace extensions {
typedef std::vector<linked_ptr<api::audio::OutputDeviceInfo> > OutputInfo;
typedef std::vector<linked_ptr<api::audio::InputDeviceInfo> > InputInfo;
-typedef std::vector<std::string> DeviceIdList;
class AudioService {
public:
@@ -43,16 +42,6 @@ class AudioService {
// The |callback| will be invoked once the query is completed.
virtual void StartGetInfo(const GetInfoCallback& callback) = 0;
- // Set the devices in the following list as active. This will only pick
- // the first input and first active devices to set to active.
- virtual void SetActiveDevices(const DeviceIdList& device_list) = 0;
-
- // Set the muted and volume/gain properties of a device.
- virtual bool SetDeviceProperties(const std::string& device_id,
- bool muted,
- int volume,
- int gain) = 0;
-
protected:
AudioService() {}
diff --git a/chrome/browser/extensions/api/audio/audio_service_chromeos.cc b/chrome/browser/extensions/api/audio/audio_service_chromeos.cc
index e408fa6..40aad49d 100644
--- a/chrome/browser/extensions/api/audio/audio_service_chromeos.cc
+++ b/chrome/browser/extensions/api/audio/audio_service_chromeos.cc
@@ -6,9 +6,6 @@
#include "base/callback.h"
#include "base/memory/weak_ptr.h"
-#include "base/strings/string_number_conversions.h"
-#include "chromeos/audio/audio_device.h"
-#include "chromeos/audio/cras_audio_handler.h"
#include "chromeos/dbus/audio_node.h"
#include "chromeos/dbus/cras_audio_client.h"
#include "chromeos/dbus/dbus_thread_manager.h"
@@ -22,22 +19,17 @@ using api::audio::OutputDeviceInfo;
using api::audio::InputDeviceInfo;
class AudioServiceImpl : public AudioService,
- public chromeos::CrasAudioHandler::Observer {
+ public chromeos::CrasAudioClient::Observer {
public:
AudioServiceImpl();
virtual ~AudioServiceImpl();
// Called by listeners to this service to add/remove themselves as observers.
- virtual void AddObserver(AudioService::Observer* observer) OVERRIDE;
- virtual void RemoveObserver(AudioService::Observer* observer) OVERRIDE;
+ virtual void AddObserver(AudioService::Observer* observer);
+ virtual void RemoveObserver(AudioService::Observer* observer);
// Start to query audio device information.
- virtual void StartGetInfo(const GetInfoCallback& callback) OVERRIDE;
- virtual void SetActiveDevices(const DeviceIdList& device_list) OVERRIDE;
- virtual bool SetDeviceProperties(const std::string& device_id,
- bool muted,
- int volume,
- int gain) OVERRIDE;
+ virtual void StartGetInfo(const GetInfoCallback& callback);
protected:
// chromeos::CrasAudioClient::Observer overrides.
@@ -57,14 +49,10 @@ class AudioServiceImpl : public AudioService,
const chromeos::AudioNodeList& audio_nodes,
bool success);
- bool FindDevice(uint64 id, chromeos::AudioDevice* device);
- uint64 GetIdFromStr(const std::string& id_str);
-
// List of observers.
ObserverList<AudioService::Observer> observer_list_;
chromeos::CrasAudioClient* cras_audio_client_;
- chromeos::CrasAudioHandler* cras_audio_handler_;
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
@@ -75,7 +63,6 @@ class AudioServiceImpl : public AudioService,
AudioServiceImpl::AudioServiceImpl()
: cras_audio_client_(NULL),
- cras_audio_handler_(NULL),
weak_ptr_factory_(this) {
if (chromeos::DBusThreadManager::IsInitialized() &&
chromeos::DBusThreadManager::Get()) {
@@ -83,8 +70,6 @@ AudioServiceImpl::AudioServiceImpl()
chromeos::DBusThreadManager::Get()->GetCrasAudioClient();
if (cras_audio_client_)
cras_audio_client_->AddObserver(this);
- if (chromeos::CrasAudioHandler::IsInitialized())
- cras_audio_handler_ = chromeos::CrasAudioHandler::Get();
}
}
@@ -110,55 +95,6 @@ void AudioServiceImpl::StartGetInfo(const GetInfoCallback& callback) {
callback));
}
-void AudioServiceImpl::SetActiveDevices(const DeviceIdList& device_list) {
- DCHECK(cras_audio_handler_);
- if (!cras_audio_handler_)
- return;
-
- bool input_device_set = false;
- bool output_device_set = false;
-
- for (size_t i = 0; i < device_list.size(); ++i) {
- chromeos::AudioDevice device;
- bool found = FindDevice(GetIdFromStr(device_list[i]), &device);
- if (found) {
- if (device.is_input && !input_device_set) {
- cras_audio_handler_->SetActiveInputNode(device.id);
- input_device_set = true;
- } else if (!device.is_input && !output_device_set) {
- cras_audio_handler_->SetActiveOutputNode(device.id);
- output_device_set = true;
- }
- }
- }
-}
-
-bool AudioServiceImpl::SetDeviceProperties(const std::string& device_id,
- bool muted,
- int volume,
- int gain) {
- DCHECK(cras_audio_handler_);
- if (!cras_audio_handler_)
- return false;
-
- chromeos::AudioDevice device;
- bool found = FindDevice(GetIdFromStr(device_id), &device);
- if (!found)
- return false;
-
- if (!device.is_input && volume != -1) {
- cras_audio_handler_->SetVolumeGainPercentForDevice(GetIdFromStr(device_id),
- volume);
- return true;
- } else if (device.is_input && gain != -1) {
- cras_audio_handler_->SetVolumeGainPercentForDevice(GetIdFromStr(device_id),
- gain);
- return true;
- }
-
- return false;
-}
-
void AudioServiceImpl::OnGetNodes(const GetInfoCallback& callback,
const chromeos::AudioNodeList& audio_nodes,
bool success) {
@@ -169,19 +105,15 @@ void AudioServiceImpl::OnGetNodes(const GetInfoCallback& callback,
iter != audio_nodes.end(); ++iter) {
if (!iter->is_input) {
linked_ptr<OutputDeviceInfo> info(new OutputDeviceInfo());
- info->id = base::Uint64ToString(iter->id);
+ info->id = iter->id;
info->name = iter->name;
info->is_active = iter->active;
- info->volume = cras_audio_handler_->GetOutputVolumePercentForDevice(
- iter->id);
output_info.push_back(info);
} else {
linked_ptr<InputDeviceInfo> info(new InputDeviceInfo());
- info->id = base::Uint64ToString(iter->id);
+ info->id = iter->id;
info->name = iter->name;
info->is_active = iter->active;
- info->gain = cras_audio_handler_->GetInputGainPercentForDevice(
- iter->id);
input_info.push_back(info);
}
}
@@ -192,27 +124,6 @@ void AudioServiceImpl::OnGetNodes(const GetInfoCallback& callback,
callback.Run(output_info, input_info, success);
}
-bool AudioServiceImpl::FindDevice(uint64 id, chromeos::AudioDevice* device) {
- chromeos::AudioDeviceList devices;
- cras_audio_handler_->GetAudioDevices(&devices);
-
- for (size_t i = 0; i < devices.size(); ++i) {
- if (devices[i].id == id) {
- *device = devices[i];
- return true;
- }
- }
- return false;
-}
-
-uint64 AudioServiceImpl::GetIdFromStr(const std::string& id_str) {
- uint64 device_id;
- if (!base::StringToUint64(id_str, &device_id))
- return 0;
- else
- return device_id;
-}
-
void AudioServiceImpl::OutputVolumeChanged(int volume) {
NotifyDeviceChanged();
}