1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// found in the LICENSE file. 4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ash/system/chromeos/audio/tray_audio_chromeos.h" 6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ash/metrics/user_metrics_recorder.h" 8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ash/shell.h" 9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ash/system/audio/volume_view.h" 10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ash/system/chromeos/audio/audio_detailed_view.h" 11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ash/system/chromeos/audio/tray_audio_delegate_chromeos.h" 12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ui/views/view.h" 13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)namespace ash { 15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)using system::TrayAudioDelegate; 17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)using system::TrayAudioDelegateChromeOs; 18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)TrayAudioChromeOs::TrayAudioChromeOs(SystemTray* system_tray) 20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) : TrayAudio(system_tray, 21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) scoped_ptr<TrayAudioDelegate>(new TrayAudioDelegateChromeOs())), 22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) audio_detail_view_(NULL) { 23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)TrayAudioChromeOs::~TrayAudioChromeOs() { 26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void TrayAudioChromeOs::Update() { 29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) TrayAudio::Update(); 30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (audio_detail_view_) 32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) audio_detail_view_->Update(); 33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)views::View* TrayAudioChromeOs::CreateDetailedView(user::LoginStatus status) { 36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (pop_up_volume_view_) { 37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) volume_view_ = new tray::VolumeView(this, audio_delegate_.get(), false); 38a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return volume_view_; 39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } else { 40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) Shell::GetInstance()->metrics()->RecordUserMetricsAction( 41a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ash::UMA_STATUS_AREA_DETAILED_AUDIO_VIEW); 42a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) audio_detail_view_ = 43a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) new tray::AudioDetailedView(this, status); 44a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return audio_detail_view_; 45a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 46a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 47a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 48a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void TrayAudioChromeOs::DestroyDetailedView() { 49a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (audio_detail_view_) { 50a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) audio_detail_view_ = NULL; 51a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } else if (volume_view_) { 52a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) volume_view_ = NULL; 53a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) pop_up_volume_view_ = false; 54a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 55a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 56a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 57a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} // namespace ash 58