Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2525)

Unified Diff: ash/common/system/chromeos/audio/volume_view.cc

Issue 2778503002: Remove TrayAudioDelegate (Closed)
Patch Set: nits Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/common/system/chromeos/audio/volume_view.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/system/chromeos/audio/volume_view.cc
diff --git a/ash/common/system/chromeos/audio/volume_view.cc b/ash/common/system/chromeos/audio/volume_view.cc
index 28898aac2324eaa91ad99e117eb2fb7ee9fa69ce..991b0c2e4e1616cb672771fe40619922f711ee83 100644
--- a/ash/common/system/chromeos/audio/volume_view.cc
+++ b/ash/common/system/chromeos/audio/volume_view.cc
@@ -7,7 +7,6 @@
#include <algorithm>
#include "ash/common/metrics/user_metrics_action.h"
-#include "ash/common/system/chromeos/audio/tray_audio_delegate.h"
#include "ash/common/system/tray/actionable_view.h"
#include "ash/common/system/tray/system_tray_item.h"
#include "ash/common/system/tray/tray_constants.h"
@@ -16,6 +15,7 @@
#include "ash/common/wm_shell.h"
#include "ash/resources/vector_icons/vector_icons.h"
#include "ash/strings/grit/ash_strings.h"
+#include "chromeos/audio/cras_audio_handler.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/paint_vector_icon.h"
@@ -27,30 +27,44 @@
#include "ui/views/controls/slider.h"
#include "ui/views/layout/fill_layout.h"
+using chromeos::CrasAudioHandler;
+
+namespace ash {
namespace {
const gfx::VectorIcon* const kVolumeLevelIcons[] = {
- &ash::kSystemMenuVolumeMuteIcon, // Muted.
- &ash::kSystemMenuVolumeLowIcon, // Low volume.
- &ash::kSystemMenuVolumeMediumIcon, // Medium volume.
- &ash::kSystemMenuVolumeHighIcon, // High volume.
- &ash::kSystemMenuVolumeHighIcon, // Full volume.
+ &kSystemMenuVolumeMuteIcon, // Muted.
+ &kSystemMenuVolumeLowIcon, // Low volume.
+ &kSystemMenuVolumeMediumIcon, // Medium volume.
+ &kSystemMenuVolumeHighIcon, // High volume.
+ &kSystemMenuVolumeHighIcon, // Full volume.
};
+const gfx::VectorIcon& GetActiveOutputDeviceVectorIcon() {
+ chromeos::AudioDevice device;
+ if (CrasAudioHandler::Get()->GetPrimaryActiveOutputDevice(&device)) {
+ if (device.type == chromeos::AUDIO_TYPE_HEADPHONE)
+ return kSystemMenuHeadsetIcon;
+ if (device.type == chromeos::AUDIO_TYPE_USB)
+ return kSystemMenuUsbIcon;
+ if (device.type == chromeos::AUDIO_TYPE_BLUETOOTH)
+ return kSystemMenuBluetoothIcon;
+ if (device.type == chromeos::AUDIO_TYPE_HDMI)
+ return kSystemMenuHdmiIcon;
+ }
+ return gfx::kNoneIcon;
+}
+
} // namespace
-namespace ash {
namespace tray {
class VolumeButton : public ButtonListenerActionableView {
public:
- VolumeButton(SystemTrayItem* owner,
- views::ButtonListener* listener,
- system::TrayAudioDelegate* audio_delegate)
+ VolumeButton(SystemTrayItem* owner, views::ButtonListener* listener)
: ButtonListenerActionableView(owner,
TrayPopupInkDropStyle::HOST_CENTERED,
listener),
- audio_delegate_(audio_delegate),
image_(TrayPopupUtils::CreateMainImageView()),
image_index_(-1) {
TrayPopupUtils::ConfigureContainer(TriView::Container::START, this);
@@ -64,11 +78,11 @@ class VolumeButton : public ButtonListenerActionableView {
~VolumeButton() override {}
void Update() {
- float level =
- static_cast<float>(audio_delegate_->GetOutputVolumeLevel()) / 100.0f;
+ CrasAudioHandler* audio_handler = CrasAudioHandler::Get();
+ float level = audio_handler->GetOutputVolumePercent() / 100.0f;
int volume_levels = arraysize(kVolumeLevelIcons) - 1;
int image_index =
- audio_delegate_->IsOutputAudioMuted()
+ audio_handler->IsOutputMuted()
? 0
: (level == 1.0 ? volume_levels
: std::max(1, static_cast<int>(std::ceil(
@@ -85,11 +99,10 @@ class VolumeButton : public ButtonListenerActionableView {
node_data->SetName(
l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_VOLUME_MUTE));
node_data->role = ui::AX_ROLE_TOGGLE_BUTTON;
- if (audio_delegate_->IsOutputAudioMuted())
+ if (CrasAudioHandler::Get()->IsOutputMuted())
node_data->AddStateFlag(ui::AX_STATE_PRESSED);
}
- system::TrayAudioDelegate* audio_delegate_;
views::ImageView* image_;
int image_index_;
@@ -97,11 +110,9 @@ class VolumeButton : public ButtonListenerActionableView {
};
VolumeView::VolumeView(SystemTrayItem* owner,
- system::TrayAudioDelegate* audio_delegate,
bool is_default_view)
: owner_(owner),
tri_view_(TrayPopupUtils::CreateMultiTargetRowView()),
- audio_delegate_(audio_delegate),
more_button_(nullptr),
icon_(nullptr),
slider_(nullptr),
@@ -110,12 +121,11 @@ VolumeView::VolumeView(SystemTrayItem* owner,
SetLayoutManager(new views::FillLayout);
AddChildView(tri_view_);
- icon_ = new VolumeButton(owner, this, audio_delegate_);
+ icon_ = new VolumeButton(owner, this);
tri_view_->AddView(TriView::Container::START, icon_);
slider_ = TrayPopupUtils::CreateSlider(this);
- slider_->SetValue(
- static_cast<float>(audio_delegate_->GetOutputVolumeLevel()) / 100.0f);
+ slider_->SetValue(CrasAudioHandler::Get()->GetOutputVolumePercent() / 100.0f);
slider_->SetAccessibleName(
l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_VOLUME));
tri_view_->AddView(TriView::Container::CENTER, slider_);
@@ -151,7 +161,7 @@ VolumeView::~VolumeView() {}
void VolumeView::Update() {
icon_->Update();
- slider_->UpdateState(!audio_delegate_->IsOutputAudioMuted());
+ slider_->UpdateState(!CrasAudioHandler::Get()->IsOutputMuted());
UpdateDeviceTypeAndMore();
Layout();
}
@@ -175,13 +185,15 @@ void VolumeView::SetVolumeLevel(float percent) {
}
void VolumeView::UpdateDeviceTypeAndMore() {
- bool show_more = is_default_view_ && audio_delegate_->HasAlternativeSources();
+ CrasAudioHandler* audio_handler = CrasAudioHandler::Get();
+ bool show_more =
+ is_default_view_ && (audio_handler->has_alternative_output() ||
+ audio_handler->has_alternative_input());
if (!show_more)
return;
- const gfx::VectorIcon& device_icon =
- audio_delegate_->GetActiveOutputDeviceVectorIcon();
+ const gfx::VectorIcon& device_icon = GetActiveOutputDeviceVectorIcon();
const bool target_visibility = !device_icon.is_empty();
if (target_visibility)
device_type_->SetImage(gfx::CreateVectorIcon(device_icon, kMenuIconColor));
@@ -192,30 +204,33 @@ void VolumeView::UpdateDeviceTypeAndMore() {
}
void VolumeView::HandleVolumeUp(int level) {
- audio_delegate_->SetOutputVolumeLevel(level);
- if (audio_delegate_->IsOutputAudioMuted() &&
- level > audio_delegate_->GetOutputDefaultVolumeMuteLevel()) {
- audio_delegate_->SetOutputAudioIsMuted(false);
+ CrasAudioHandler* audio_handler = CrasAudioHandler::Get();
+ audio_handler->SetOutputVolumePercent(level);
+ if (audio_handler->IsOutputMuted() &&
+ level > audio_handler->GetOutputDefaultVolumeMuteThreshold()) {
+ audio_handler->SetOutputMute(false);
}
}
void VolumeView::HandleVolumeDown(int level) {
- audio_delegate_->SetOutputVolumeLevel(level);
- if (!audio_delegate_->IsOutputAudioMuted() &&
- level <= audio_delegate_->GetOutputDefaultVolumeMuteLevel()) {
- audio_delegate_->SetOutputAudioIsMuted(true);
- } else if (audio_delegate_->IsOutputAudioMuted() &&
- level > audio_delegate_->GetOutputDefaultVolumeMuteLevel()) {
- audio_delegate_->SetOutputAudioIsMuted(false);
+ CrasAudioHandler* audio_handler = CrasAudioHandler::Get();
+ audio_handler->SetOutputVolumePercent(level);
+ if (!audio_handler->IsOutputMuted() &&
+ level <= audio_handler->GetOutputDefaultVolumeMuteThreshold()) {
+ audio_handler->SetOutputMute(true);
+ } else if (audio_handler->IsOutputMuted() &&
+ level > audio_handler->GetOutputDefaultVolumeMuteThreshold()) {
+ audio_handler->SetOutputMute(false);
}
}
void VolumeView::ButtonPressed(views::Button* sender, const ui::Event& event) {
if (sender == icon_) {
- bool mute_on = !audio_delegate_->IsOutputAudioMuted();
- audio_delegate_->SetOutputAudioIsMuted(mute_on);
+ CrasAudioHandler* audio_handler = CrasAudioHandler::Get();
+ bool mute_on = !audio_handler->IsOutputMuted();
+ audio_handler->SetOutputMute(mute_on);
if (!mute_on)
- audio_delegate_->AdjustOutputVolumeToAudibleLevel();
+ audio_handler->AdjustOutputVolumeToAudibleLevel();
icon_->Update();
} else if (sender == more_button_) {
owner_->TransitionDetailedView();
@@ -230,7 +245,7 @@ void VolumeView::SliderValueChanged(views::Slider* sender,
views::SliderChangeReason reason) {
if (reason == views::VALUE_CHANGED_BY_USER) {
int new_volume = static_cast<int>(value * 100);
- int current_volume = audio_delegate_->GetOutputVolumeLevel();
+ int current_volume = CrasAudioHandler::Get()->GetOutputVolumePercent();
if (new_volume == current_volume)
return;
WmShell::Get()->RecordUserMetricsAction(
« no previous file with comments | « ash/common/system/chromeos/audio/volume_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698