unified_audio_detailed_view_controller.cc 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // Copyright 2018 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "ash/system/audio/unified_audio_detailed_view_controller.h"
  5. #include "ash/constants/ash_features.h"
  6. #include "ash/strings/grit/ash_strings.h"
  7. #include "ash/system/audio/audio_detailed_view.h"
  8. #include "ash/system/tray/detailed_view_delegate.h"
  9. #include "ui/base/l10n/l10n_util.h"
  10. namespace ash {
  11. UnifiedAudioDetailedViewController::UnifiedAudioDetailedViewController(
  12. UnifiedSystemTrayController* tray_controller)
  13. : detailed_view_delegate_(
  14. std::make_unique<DetailedViewDelegate>(tray_controller)) {
  15. CrasAudioHandler::Get()->AddAudioObserver(this);
  16. }
  17. UnifiedAudioDetailedViewController::~UnifiedAudioDetailedViewController() {
  18. CrasAudioHandler::Get()->RemoveAudioObserver(this);
  19. }
  20. views::View* UnifiedAudioDetailedViewController::CreateView() {
  21. DCHECK(!view_);
  22. view_ = new AudioDetailedView(detailed_view_delegate_.get());
  23. view_->Update();
  24. return view_;
  25. }
  26. std::u16string UnifiedAudioDetailedViewController::GetAccessibleName() const {
  27. return l10n_util::GetStringUTF16(
  28. IDS_ASH_QUICK_SETTINGS_BUBBLE_AUDIO_SETTINGS_ACCESSIBLE_DESCRIPTION);
  29. }
  30. void UnifiedAudioDetailedViewController::OnAudioNodesChanged() {
  31. if (view_)
  32. view_->Update();
  33. }
  34. void UnifiedAudioDetailedViewController::OnActiveOutputNodeChanged() {
  35. if (view_)
  36. view_->Update();
  37. }
  38. void UnifiedAudioDetailedViewController::OnActiveInputNodeChanged() {
  39. if (view_)
  40. view_->Update();
  41. }
  42. } // namespace ash