Consolidate volume_control_delegate and sysmte_tray_delegate
BUG=115936 Review URL: https://chromiumcodereview.appspot.com/10825264 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151607 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
@ -499,16 +499,16 @@ bool AcceleratorController::PerformAction(int action,
|
||||
HandleKeyboardBrightnessUp(accelerator);
|
||||
break;
|
||||
case VOLUME_MUTE:
|
||||
if (volume_control_delegate_.get())
|
||||
return volume_control_delegate_->HandleVolumeMute(accelerator);
|
||||
return shell->tray_delegate()->GetVolumeControlDelegate()->
|
||||
HandleVolumeMute(accelerator);
|
||||
break;
|
||||
case VOLUME_DOWN:
|
||||
if (volume_control_delegate_.get())
|
||||
return volume_control_delegate_->HandleVolumeDown(accelerator);
|
||||
return shell->tray_delegate()->GetVolumeControlDelegate()->
|
||||
HandleVolumeDown(accelerator);
|
||||
break;
|
||||
case VOLUME_UP:
|
||||
if (volume_control_delegate_.get())
|
||||
return volume_control_delegate_->HandleVolumeUp(accelerator);
|
||||
return shell->tray_delegate()->GetVolumeControlDelegate()->
|
||||
HandleVolumeUp(accelerator);
|
||||
break;
|
||||
case FOCUS_LAUNCHER:
|
||||
if (shell->launcher())
|
||||
@ -699,11 +699,6 @@ void AcceleratorController::SetScreenshotDelegate(
|
||||
screenshot_delegate_.swap(screenshot_delegate);
|
||||
}
|
||||
|
||||
void AcceleratorController::SetVolumeControlDelegate(
|
||||
scoped_ptr<VolumeControlDelegate> volume_control_delegate) {
|
||||
volume_control_delegate_.swap(volume_control_delegate);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// AcceleratorController, ui::AcceleratorTarget implementation:
|
||||
|
||||
|
@ -83,17 +83,10 @@ class ASH_EXPORT AcceleratorController : public ui::AcceleratorTarget {
|
||||
keyboard_brightness_control_delegate);
|
||||
void SetScreenshotDelegate(
|
||||
scoped_ptr<ScreenshotDelegate> screenshot_delegate);
|
||||
void SetVolumeControlDelegate(
|
||||
scoped_ptr<VolumeControlDelegate> volume_control_delegate);
|
||||
|
||||
BrightnessControlDelegate* brightness_control_delegate() const {
|
||||
return brightness_control_delegate_.get();
|
||||
}
|
||||
|
||||
VolumeControlDelegate* volume_control_delegate() const {
|
||||
return volume_control_delegate_.get();
|
||||
}
|
||||
|
||||
private:
|
||||
// Initializes the accelerators this class handles as a target.
|
||||
void Init();
|
||||
@ -116,7 +109,6 @@ class ASH_EXPORT AcceleratorController : public ui::AcceleratorTarget {
|
||||
scoped_ptr<KeyboardBrightnessControlDelegate>
|
||||
keyboard_brightness_control_delegate_;
|
||||
scoped_ptr<ScreenshotDelegate> screenshot_delegate_;
|
||||
scoped_ptr<VolumeControlDelegate> volume_control_delegate_;
|
||||
|
||||
// A map from accelerators to the AcceleratorAction values, which are used in
|
||||
// the implementation.
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include "ash/shell_window_ids.h"
|
||||
#include "ash/system/brightness/brightness_control_delegate.h"
|
||||
#include "ash/system/keyboard_brightness/keyboard_brightness_control_delegate.h"
|
||||
#include "ash/system/tray/system_tray_delegate.h"
|
||||
#include "ash/test/ash_test_base.h"
|
||||
#include "ash/test/test_shell_delegate.h"
|
||||
#include "ash/volume_control_delegate.h"
|
||||
@ -143,6 +144,16 @@ class DummyVolumeControlDelegate : public VolumeControlDelegate {
|
||||
}
|
||||
virtual void SetVolumePercent(double percent) OVERRIDE {
|
||||
}
|
||||
virtual bool IsAudioMuted() const OVERRIDE {
|
||||
return false;
|
||||
}
|
||||
virtual void SetAudioMuted(bool muted) OVERRIDE {
|
||||
}
|
||||
virtual float GetVolumeLevel() const OVERRIDE {
|
||||
return 0.0;
|
||||
}
|
||||
virtual void SetVolumeLevel(float level) OVERRIDE {
|
||||
}
|
||||
|
||||
int handle_volume_mute_count() const {
|
||||
return handle_volume_mute_count_;
|
||||
@ -615,12 +626,12 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) {
|
||||
const ui::Accelerator f9(ui::VKEY_F9, ui::EF_NONE);
|
||||
const ui::Accelerator f10(ui::VKEY_F10, ui::EF_NONE);
|
||||
{
|
||||
EXPECT_FALSE(GetController()->Process(f8));
|
||||
EXPECT_FALSE(GetController()->Process(f9));
|
||||
EXPECT_FALSE(GetController()->Process(f10));
|
||||
EXPECT_TRUE(GetController()->Process(f8));
|
||||
EXPECT_TRUE(GetController()->Process(f9));
|
||||
EXPECT_TRUE(GetController()->Process(f10));
|
||||
DummyVolumeControlDelegate* delegate =
|
||||
new DummyVolumeControlDelegate(false);
|
||||
GetController()->SetVolumeControlDelegate(
|
||||
ash::Shell::GetInstance()->tray_delegate()->SetVolumeControlDelegate(
|
||||
scoped_ptr<VolumeControlDelegate>(delegate).Pass());
|
||||
EXPECT_EQ(0, delegate->handle_volume_mute_count());
|
||||
EXPECT_FALSE(GetController()->Process(f8));
|
||||
@ -637,7 +648,7 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) {
|
||||
}
|
||||
{
|
||||
DummyVolumeControlDelegate* delegate = new DummyVolumeControlDelegate(true);
|
||||
GetController()->SetVolumeControlDelegate(
|
||||
ash::Shell::GetInstance()->tray_delegate()->SetVolumeControlDelegate(
|
||||
scoped_ptr<VolumeControlDelegate>(delegate).Pass());
|
||||
EXPECT_EQ(0, delegate->handle_volume_mute_count());
|
||||
EXPECT_TRUE(GetController()->Process(f8));
|
||||
@ -658,7 +669,7 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) {
|
||||
{
|
||||
DummyVolumeControlDelegate* delegate =
|
||||
new DummyVolumeControlDelegate(false);
|
||||
GetController()->SetVolumeControlDelegate(
|
||||
ash::Shell::GetInstance()->tray_delegate()->SetVolumeControlDelegate(
|
||||
scoped_ptr<VolumeControlDelegate>(delegate).Pass());
|
||||
EXPECT_EQ(0, delegate->handle_volume_mute_count());
|
||||
EXPECT_FALSE(GetController()->Process(volume_mute));
|
||||
@ -675,7 +686,7 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) {
|
||||
}
|
||||
{
|
||||
DummyVolumeControlDelegate* delegate = new DummyVolumeControlDelegate(true);
|
||||
GetController()->SetVolumeControlDelegate(
|
||||
ash::Shell::GetInstance()->tray_delegate()->SetVolumeControlDelegate(
|
||||
scoped_ptr<VolumeControlDelegate>(delegate).Pass());
|
||||
EXPECT_EQ(0, delegate->handle_volume_mute_count());
|
||||
EXPECT_TRUE(GetController()->Process(volume_mute));
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include "ash/system/tray/system_tray_delegate.h"
|
||||
#include "ash/system/tray/tray_constants.h"
|
||||
#include "ash/system/tray/tray_views.h"
|
||||
#include "ash/volume_control_delegate.h"
|
||||
#include "base/utf_string_conversions.h"
|
||||
#include "grit/ash_strings.h"
|
||||
#include "grit/ui_resources.h"
|
||||
@ -39,8 +40,19 @@ const int kVolumeImageHeight = 25;
|
||||
// The one for mute is at the 0 index and the other
|
||||
// four are used for ascending volume levels.
|
||||
const int kVolumeLevels = 4;
|
||||
|
||||
bool IsAudioMuted() {
|
||||
return Shell::GetInstance()->tray_delegate()->
|
||||
GetVolumeControlDelegate()->IsAudioMuted();
|
||||
}
|
||||
|
||||
float GetVolumeLevel() {
|
||||
return Shell::GetInstance()->tray_delegate()->
|
||||
GetVolumeControlDelegate()->GetVolumeLevel();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace tray {
|
||||
|
||||
class VolumeButton : public views::ToggleImageButton {
|
||||
@ -58,10 +70,8 @@ class VolumeButton : public views::ToggleImageButton {
|
||||
virtual ~VolumeButton() {}
|
||||
|
||||
void Update() {
|
||||
ash::SystemTrayDelegate* delegate =
|
||||
ash::Shell::GetInstance()->tray_delegate();
|
||||
float level = delegate->GetVolumeLevel();
|
||||
int image_index = delegate->IsAudioMuted() ?
|
||||
float level = GetVolumeLevel();
|
||||
int image_index = IsAudioMuted() ?
|
||||
0 : (level == 1.0 ?
|
||||
kVolumeLevels :
|
||||
std::max(1, int(std::ceil(level * (kVolumeLevels - 1)))));
|
||||
@ -101,9 +111,7 @@ class MuteButton : public ash::internal::TrayBarButtonWithTitle {
|
||||
virtual ~MuteButton() {}
|
||||
|
||||
void Update() {
|
||||
ash::SystemTrayDelegate* delegate =
|
||||
ash::Shell::GetInstance()->tray_delegate();
|
||||
UpdateButton(delegate->IsAudioMuted());
|
||||
UpdateButton(IsAudioMuted());
|
||||
SchedulePaint();
|
||||
}
|
||||
|
||||
@ -115,7 +123,7 @@ class VolumeSlider : public views::Slider {
|
||||
explicit VolumeSlider(views::SliderListener* listener)
|
||||
: views::Slider(listener, views::Slider::HORIZONTAL) {
|
||||
set_focus_border_color(kFocusBorderColor);
|
||||
SetValue(ash::Shell::GetInstance()->tray_delegate()->GetVolumeLevel());
|
||||
SetValue(GetVolumeLevel());
|
||||
SetAccessibleName(
|
||||
ui::ResourceBundle::GetSharedInstance().GetLocalizedString(
|
||||
IDS_ASH_STATUS_TRAY_VOLUME));
|
||||
@ -124,7 +132,7 @@ class VolumeSlider : public views::Slider {
|
||||
virtual ~VolumeSlider() {}
|
||||
|
||||
void Update() {
|
||||
UpdateState(!ash::Shell::GetInstance()->tray_delegate()->IsAudioMuted());
|
||||
UpdateState(!IsAudioMuted());
|
||||
}
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(VolumeSlider);
|
||||
@ -179,9 +187,8 @@ class VolumeView : public views::View,
|
||||
virtual void ButtonPressed(views::Button* sender,
|
||||
const ui::Event& event) OVERRIDE {
|
||||
CHECK(sender == icon_ || sender == mute_);
|
||||
ash::SystemTrayDelegate* delegate =
|
||||
ash::Shell::GetInstance()->tray_delegate();
|
||||
delegate->SetAudioMuted(!delegate->IsAudioMuted());
|
||||
ash::Shell::GetInstance()->tray_delegate()->
|
||||
GetVolumeControlDelegate()->SetAudioMuted(!IsAudioMuted());
|
||||
}
|
||||
|
||||
// Overridden from views:SliderListener.
|
||||
@ -190,9 +197,8 @@ class VolumeView : public views::View,
|
||||
float old_value,
|
||||
views::SliderChangeReason reason) OVERRIDE {
|
||||
if (reason == views::VALUE_CHANGED_BY_USER) {
|
||||
ash::SystemTrayDelegate* delegate =
|
||||
ash::Shell::GetInstance()->tray_delegate();
|
||||
delegate->SetVolumeLevel(value);
|
||||
ash::Shell::GetInstance()->tray_delegate()->
|
||||
GetVolumeControlDelegate()->SetVolumeLevel(value);
|
||||
}
|
||||
icon_->Update();
|
||||
}
|
||||
@ -216,9 +222,7 @@ TrayVolume::~TrayVolume() {
|
||||
}
|
||||
|
||||
bool TrayVolume::GetInitialVisibility() {
|
||||
ash::SystemTrayDelegate* delegate =
|
||||
ash::Shell::GetInstance()->tray_delegate();
|
||||
return delegate->IsAudioMuted();
|
||||
return IsAudioMuted();
|
||||
}
|
||||
|
||||
views::View* TrayVolume::CreateDefaultView(user::LoginStatus status) {
|
||||
@ -248,7 +252,7 @@ void TrayVolume::OnVolumeChanged(float percent) {
|
||||
tray_view()->SetVisible(GetInitialVisibility());
|
||||
|
||||
if (volume_view_) {
|
||||
if (ash::Shell::GetInstance()->tray_delegate()->IsAudioMuted())
|
||||
if (IsAudioMuted())
|
||||
percent = 0.0;
|
||||
volume_view_->SetVolumeLevel(percent);
|
||||
SetDetailedViewCloseDelay(kTrayPopupAutoCloseDelayInSeconds);
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "ash/system/tray/system_tray.h"
|
||||
#include "ash/system/tray/system_tray_delegate.h"
|
||||
#include "ash/system/web_notification/web_notification_tray.h"
|
||||
#include "ash/volume_control_delegate.h"
|
||||
#include "base/i18n/time_formatting.h"
|
||||
#include "base/utf_string_conversions.h"
|
||||
#include "ui/aura/window.h"
|
||||
@ -22,15 +23,46 @@ namespace ash {
|
||||
|
||||
namespace {
|
||||
|
||||
class DummyVolumeControlDelegate : public VolumeControlDelegate {
|
||||
public:
|
||||
DummyVolumeControlDelegate() {}
|
||||
virtual ~DummyVolumeControlDelegate() {}
|
||||
|
||||
virtual bool HandleVolumeMute(const ui::Accelerator& accelerator) OVERRIDE {
|
||||
return true;
|
||||
}
|
||||
virtual bool HandleVolumeDown(const ui::Accelerator& accelerator) OVERRIDE {
|
||||
return true;
|
||||
}
|
||||
virtual bool HandleVolumeUp(const ui::Accelerator& accelerator) OVERRIDE {
|
||||
return true;
|
||||
}
|
||||
virtual void SetVolumePercent(double percent) OVERRIDE {
|
||||
}
|
||||
virtual bool IsAudioMuted() const OVERRIDE {
|
||||
return true;
|
||||
}
|
||||
virtual void SetAudioMuted(bool muted) OVERRIDE {
|
||||
}
|
||||
virtual float GetVolumeLevel() const OVERRIDE {
|
||||
return 0.0;
|
||||
}
|
||||
virtual void SetVolumeLevel(float level) OVERRIDE {
|
||||
}
|
||||
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(DummyVolumeControlDelegate);
|
||||
};
|
||||
|
||||
class DummySystemTrayDelegate : public SystemTrayDelegate {
|
||||
public:
|
||||
DummySystemTrayDelegate()
|
||||
: muted_(false),
|
||||
wifi_enabled_(true),
|
||||
: wifi_enabled_(true),
|
||||
cellular_enabled_(true),
|
||||
bluetooth_enabled_(true),
|
||||
volume_(0.5),
|
||||
caps_lock_enabled_(false) {
|
||||
caps_lock_enabled_(false),
|
||||
volume_control_delegate_(
|
||||
ALLOW_THIS_IN_INITIALIZER_LIST(new DummyVolumeControlDelegate)) {
|
||||
}
|
||||
|
||||
virtual ~DummySystemTrayDelegate() {}
|
||||
@ -91,22 +123,6 @@ class DummySystemTrayDelegate : public SystemTrayDelegate {
|
||||
virtual void ShowHelp() OVERRIDE {
|
||||
}
|
||||
|
||||
virtual bool IsAudioMuted() const OVERRIDE {
|
||||
return muted_;
|
||||
}
|
||||
|
||||
virtual void SetAudioMuted(bool muted) OVERRIDE {
|
||||
muted_ = muted;
|
||||
}
|
||||
|
||||
virtual float GetVolumeLevel() const OVERRIDE {
|
||||
return volume_;
|
||||
}
|
||||
|
||||
virtual void SetVolumeLevel(float volume) OVERRIDE {
|
||||
volume_ = volume;
|
||||
}
|
||||
|
||||
virtual bool IsCapsLockOn() const OVERRIDE {
|
||||
return caps_lock_enabled_;
|
||||
}
|
||||
@ -260,13 +276,22 @@ class DummySystemTrayDelegate : public SystemTrayDelegate {
|
||||
virtual void ChangeProxySettings() OVERRIDE {
|
||||
}
|
||||
|
||||
bool muted_;
|
||||
virtual VolumeControlDelegate* GetVolumeControlDelegate() const OVERRIDE {
|
||||
return volume_control_delegate_.get();
|
||||
}
|
||||
|
||||
virtual void SetVolumeControlDelegate(
|
||||
scoped_ptr<VolumeControlDelegate> delegate) OVERRIDE {
|
||||
volume_control_delegate_.swap(delegate);
|
||||
}
|
||||
|
||||
|
||||
bool wifi_enabled_;
|
||||
bool cellular_enabled_;
|
||||
bool bluetooth_enabled_;
|
||||
float volume_;
|
||||
bool caps_lock_enabled_;
|
||||
gfx::ImageSkia null_image_;
|
||||
scoped_ptr<VolumeControlDelegate> volume_control_delegate_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(DummySystemTrayDelegate);
|
||||
};
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include "ash/system/user/login_status.h"
|
||||
#include "base/file_path.h"
|
||||
#include "base/i18n/time_formatting.h"
|
||||
#include "base/memory/scoped_ptr.h"
|
||||
#include "base/string16.h"
|
||||
#include "ui/gfx/image/image_skia.h"
|
||||
|
||||
@ -96,6 +97,8 @@ struct ASH_EXPORT IMEInfo {
|
||||
|
||||
typedef std::vector<IMEInfo> IMEInfoList;
|
||||
|
||||
class VolumeControlDelegate;
|
||||
|
||||
class SystemTrayDelegate {
|
||||
public:
|
||||
virtual ~SystemTrayDelegate() {}
|
||||
@ -142,18 +145,6 @@ class SystemTrayDelegate {
|
||||
// Shows help.
|
||||
virtual void ShowHelp() = 0;
|
||||
|
||||
// Is the system audio muted?
|
||||
virtual bool IsAudioMuted() const = 0;
|
||||
|
||||
// Mutes/Unmutes the audio system.
|
||||
virtual void SetAudioMuted(bool muted) = 0;
|
||||
|
||||
// Gets the volume level. The range is [0, 1.0].
|
||||
virtual float GetVolumeLevel() const = 0;
|
||||
|
||||
// Sets the volume level. The range is [0, 1.0].
|
||||
virtual void SetVolumeLevel(float level) = 0;
|
||||
|
||||
// Gets whether the caps lock is on.
|
||||
virtual bool IsCapsLockOn() const = 0;
|
||||
|
||||
@ -278,6 +269,14 @@ class SystemTrayDelegate {
|
||||
|
||||
// Shows UI for changing proxy settings.
|
||||
virtual void ChangeProxySettings() = 0;
|
||||
|
||||
// Returns VolumeControlDelegate.
|
||||
virtual VolumeControlDelegate* GetVolumeControlDelegate() const = 0;
|
||||
|
||||
// Sets VolumeControlDelegate.
|
||||
virtual void SetVolumeControlDelegate(
|
||||
scoped_ptr<VolumeControlDelegate> delegate) = 0;
|
||||
|
||||
};
|
||||
|
||||
} // namespace ash
|
||||
|
@ -20,6 +20,18 @@ class VolumeControlDelegate {
|
||||
virtual bool HandleVolumeDown(const ui::Accelerator& accelerator) = 0;
|
||||
virtual bool HandleVolumeUp(const ui::Accelerator& accelerator) = 0;
|
||||
|
||||
// Is the system audio muted?
|
||||
virtual bool IsAudioMuted() const = 0;
|
||||
|
||||
// Mutes/Unmutes the audio system.
|
||||
virtual void SetAudioMuted(bool muted) = 0;
|
||||
|
||||
// Gets the volume level. The range is [0, 1.0].
|
||||
virtual float GetVolumeLevel() const = 0;
|
||||
|
||||
// Sets the volume level. The range is [0, 1.0].
|
||||
virtual void SetVolumeLevel(float level) = 0;
|
||||
|
||||
// Requests that the volume be set to |percent|, in the range
|
||||
// [0.0, 100.0].
|
||||
virtual void SetVolumePercent(double percent) = 0;
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include "ash/shell_delegate.h"
|
||||
#include "ash/shell_window_ids.h"
|
||||
#include "ash/system/brightness/brightness_control_delegate.h"
|
||||
#include "ash/system/tray/system_tray_delegate.h"
|
||||
#include "ash/volume_control_delegate.h"
|
||||
#include "ash/wm/property_util.h"
|
||||
#include "ash/wm/window_animations.h"
|
||||
@ -692,10 +693,8 @@ bool SystemGestureEventFilter::HandleDeviceControl(
|
||||
if (delegate)
|
||||
delegate->SetBrightnessPercent(100.0 - percent, true);
|
||||
} else if (start_location_ == BEZEL_START_RIGHT) {
|
||||
ash::VolumeControlDelegate* delegate =
|
||||
accelerator->volume_control_delegate();
|
||||
if (delegate)
|
||||
delegate->SetVolumePercent(100.0 - percent);
|
||||
Shell::GetInstance()->tray_delegate()->GetVolumeControlDelegate()->
|
||||
SetVolumePercent(100.0 - percent);
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include "ash/launcher/launcher_model.h"
|
||||
#include "ash/shell.h"
|
||||
#include "ash/system/brightness/brightness_control_delegate.h"
|
||||
#include "ash/system/tray/system_tray_delegate.h"
|
||||
#include "ash/test/ash_test_base.h"
|
||||
#include "ash/test/test_launcher_delegate.h"
|
||||
#include "ash/volume_control_delegate.h"
|
||||
@ -69,6 +70,17 @@ class DummyVolumeControlDelegate : public VolumeControlDelegate,
|
||||
virtual void SetVolumePercent(double percent) OVERRIDE {
|
||||
SetPercent(percent);
|
||||
}
|
||||
virtual bool IsAudioMuted() const OVERRIDE {
|
||||
return false;
|
||||
}
|
||||
virtual void SetAudioMuted(bool muted) OVERRIDE {
|
||||
}
|
||||
virtual float GetVolumeLevel() const OVERRIDE {
|
||||
return 0.0;
|
||||
}
|
||||
virtual void SetVolumeLevel(float level) OVERRIDE {
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(DummyVolumeControlDelegate);
|
||||
@ -199,7 +211,7 @@ TEST_F(SystemGestureEventFilterTest, DeviceControl) {
|
||||
|
||||
DummyVolumeControlDelegate* delegateVolume =
|
||||
new DummyVolumeControlDelegate();
|
||||
accelerator->SetVolumeControlDelegate(
|
||||
ash::Shell::GetInstance()->tray_delegate()->SetVolumeControlDelegate(
|
||||
scoped_ptr<VolumeControlDelegate>(delegateVolume).Pass());
|
||||
|
||||
const int kTouchId = 5;
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "ash/system/tray/system_tray.h"
|
||||
#include "ash/system/user/update_observer.h"
|
||||
#include "ash/system/user/user_observer.h"
|
||||
#include "ash/volume_control_delegate.h"
|
||||
#include "base/bind_helpers.h"
|
||||
#include "base/callback.h"
|
||||
#include "base/chromeos/chromeos_version.h"
|
||||
@ -56,6 +57,7 @@
|
||||
#include "chrome/browser/lifetime/application_lifetime.h"
|
||||
#include "chrome/browser/prefs/pref_service.h"
|
||||
#include "chrome/browser/profiles/profile_manager.h"
|
||||
#include "chrome/browser/ui/ash/volume_controller_chromeos.h"
|
||||
#include "chrome/browser/ui/browser_finder.h"
|
||||
#include "chrome/browser/ui/browser.h"
|
||||
#include "chrome/browser/ui/chrome_pages.h"
|
||||
@ -171,7 +173,9 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
||||
search_key_mapped_to_(input_method::kSearchKey),
|
||||
screen_locked_(false),
|
||||
connected_network_state_(STATE_UNKNOWN),
|
||||
data_promo_notification_(new DataPromoNotification()) {
|
||||
data_promo_notification_(new DataPromoNotification()),
|
||||
volume_control_delegate_(ALLOW_THIS_IN_INITIALIZER_LIST(
|
||||
new VolumeController)) {
|
||||
AudioHandler::GetInstance()->AddVolumeObserver(this);
|
||||
DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this);
|
||||
DBusThreadManager::Get()->GetPowerManagerClient()->RequestStatusUpdate(
|
||||
@ -337,22 +341,6 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
||||
chrome::ShowHelp(GetAppropriateBrowser(), chrome::HELP_SOURCE_MENU);
|
||||
}
|
||||
|
||||
virtual bool IsAudioMuted() const OVERRIDE {
|
||||
return AudioHandler::GetInstance()->IsMuted();
|
||||
}
|
||||
|
||||
virtual void SetAudioMuted(bool muted) OVERRIDE {
|
||||
return AudioHandler::GetInstance()->SetMuted(muted);
|
||||
}
|
||||
|
||||
virtual float GetVolumeLevel() const OVERRIDE {
|
||||
return AudioHandler::GetInstance()->GetVolumePercent() / 100.f;
|
||||
}
|
||||
|
||||
virtual void SetVolumeLevel(float level) OVERRIDE {
|
||||
AudioHandler::GetInstance()->SetVolumePercent(level * 100.f);
|
||||
}
|
||||
|
||||
virtual bool IsCapsLockOn() const OVERRIDE {
|
||||
input_method::InputMethodManager* ime_manager =
|
||||
input_method::InputMethodManager::GetInstance();
|
||||
@ -721,6 +709,15 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
||||
BaseLoginDisplayHost::default_host()->OpenProxySettings();
|
||||
}
|
||||
|
||||
virtual ash::VolumeControlDelegate* GetVolumeControlDelegate() const OVERRIDE
|
||||
{
|
||||
return volume_control_delegate_.get();
|
||||
}
|
||||
|
||||
virtual void SetVolumeControlDelegate(
|
||||
scoped_ptr<ash::VolumeControlDelegate> delegate) OVERRIDE {
|
||||
volume_control_delegate_.swap(delegate);
|
||||
}
|
||||
private:
|
||||
// Returns the last active browser. If there is no such browser, creates a new
|
||||
// browser window with an empty tab and returns it.
|
||||
@ -1250,6 +1247,8 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
|
||||
|
||||
scoped_ptr<DataPromoNotification> data_promo_notification_;
|
||||
|
||||
scoped_ptr<ash::VolumeControlDelegate> volume_control_delegate_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(SystemTrayDelegate);
|
||||
};
|
||||
|
||||
|
@ -29,7 +29,6 @@
|
||||
#include "base/chromeos/chromeos_version.h"
|
||||
#include "chrome/browser/chromeos/input_method/input_method_manager.h"
|
||||
#include "chrome/browser/chromeos/login/user_manager.h"
|
||||
#include "chrome/browser/ui/ash/volume_controller_chromeos.h"
|
||||
#include "chrome/browser/ui/ash/brightness_controller_chromeos.h"
|
||||
#include "chrome/browser/ui/ash/ime_controller_chromeos.h"
|
||||
#include "chrome/browser/ui/ash/keyboard_brightness_controller_chromeos.h"
|
||||
@ -87,9 +86,6 @@ void OpenAsh() {
|
||||
shell->accelerator_controller()->SetKeyboardBrightnessControlDelegate(
|
||||
scoped_ptr<ash::KeyboardBrightnessControlDelegate>(
|
||||
new KeyboardBrightnessController).Pass());
|
||||
shell->accelerator_controller()->SetVolumeControlDelegate(
|
||||
scoped_ptr<ash::VolumeControlDelegate>(new VolumeController).Pass());
|
||||
|
||||
ash::Shell::GetInstance()->high_contrast_controller()->SetEnabled(
|
||||
chromeos::accessibility::IsHighContrastEnabled());
|
||||
|
||||
|
@ -67,6 +67,24 @@ bool VolumeController::HandleVolumeUp(const ui::Accelerator& accelerator) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool VolumeController::IsAudioMuted() const {
|
||||
return chromeos::AudioHandler::GetInstance()->IsMuted();
|
||||
}
|
||||
|
||||
void VolumeController::SetAudioMuted(bool muted) {
|
||||
chromeos::AudioHandler::GetInstance()->SetMuted(muted);
|
||||
}
|
||||
|
||||
// Gets the volume level. The range is [0, 1.0].
|
||||
float VolumeController::GetVolumeLevel() const {
|
||||
return chromeos::AudioHandler::GetInstance()->GetVolumePercent() / 100.f;
|
||||
}
|
||||
|
||||
// Sets the volume level. The range is [0, 1.0].
|
||||
void VolumeController::SetVolumeLevel(float level) {
|
||||
chromeos::AudioHandler::GetInstance()->SetVolumePercent(level * 100.f);
|
||||
}
|
||||
|
||||
void VolumeController::SetVolumePercent(double percent) {
|
||||
chromeos::AudioHandler* audio_handler = chromeos::AudioHandler::GetInstance();
|
||||
audio_handler->SetVolumePercent(percent);
|
||||
|
@ -20,6 +20,10 @@ class VolumeController : public ash::VolumeControlDelegate {
|
||||
virtual bool HandleVolumeMute(const ui::Accelerator& accelerator) OVERRIDE;
|
||||
virtual bool HandleVolumeDown(const ui::Accelerator& accelerator) OVERRIDE;
|
||||
virtual bool HandleVolumeUp(const ui::Accelerator& accelerator) OVERRIDE;
|
||||
virtual bool IsAudioMuted() const OVERRIDE;
|
||||
virtual void SetAudioMuted(bool muted) OVERRIDE;
|
||||
virtual float GetVolumeLevel() const OVERRIDE;
|
||||
virtual void SetVolumeLevel(float level) OVERRIDE;
|
||||
virtual void SetVolumePercent(double percent) OVERRIDE;
|
||||
|
||||
private:
|
||||
|
Reference in New Issue
Block a user