video_activity_notifier.h revision 4e180b6a0b4720a9b8e9e959a882386f690f08ff
14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#ifndef ASH_SYSTEM_CHROMEOS_POWER_VIDEO_ACTIVITY_NOTIFIER_H_ 64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#define ASH_SYSTEM_CHROMEOS_POWER_VIDEO_ACTIVITY_NOTIFIER_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/wm/video_detector.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/time/time.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace ash { 144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace internal { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notifies the power manager when a video is playing. 174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class VideoActivityNotifier : public VideoDetectorObserver { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) explicit VideoActivityNotifier(VideoDetector* detector); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~VideoActivityNotifier(); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // VideoDetectorObserver implementation. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnVideoDetected(bool is_fullscreen) OVERRIDE; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) VideoDetector* detector_; // not owned 274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Last time that the power manager was notified. 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::TimeTicks last_notify_time_; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(VideoActivityNotifier); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} // namespace internal 354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} // namespace ash 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif // ASH_SYSTEM_CHROMEOS_POWER_VIDEO_ACTIVITY_NOTIFIER_H_ 38