Home | History | Annotate | Download | only in power
      1 // Copyright (c) 2012 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 
      5 #include "chrome/browser/chromeos/power/video_activity_notifier.h"
      6 
      7 #include "ash/shell.h"
      8 #include "chromeos/dbus/dbus_thread_manager.h"
      9 #include "chromeos/dbus/power_manager_client.h"
     10 
     11 namespace {
     12 
     13 // Minimum number of seconds between notifications.
     14 const int kNotifyIntervalSec = 5;
     15 
     16 }  // namespace
     17 
     18 namespace chromeos {
     19 
     20 VideoActivityNotifier::VideoActivityNotifier() {
     21   ash::Shell::GetInstance()->video_detector()->AddObserver(this);
     22 }
     23 
     24 VideoActivityNotifier::~VideoActivityNotifier() {
     25   ash::Shell::GetInstance()->video_detector()->RemoveObserver(this);
     26 }
     27 
     28 void VideoActivityNotifier::OnVideoDetected(bool is_fullscreen) {
     29   base::TimeTicks now = base::TimeTicks::Now();
     30   if (last_notify_time_.is_null() ||
     31       (now - last_notify_time_).InSeconds() >= kNotifyIntervalSec) {
     32     DBusThreadManager::Get()->GetPowerManagerClient()->NotifyVideoActivity(
     33         is_fullscreen);
     34     last_notify_time_ = now;
     35   }
     36 }
     37 
     38 }  // namespace chromeos
     39