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