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 { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notifies the power manager when a video is playing. 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class VideoActivityNotifier : public VideoDetectorObserver, 175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public ShellObserver { 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) 255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // ShellObserver implementation. 265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void OnLockStateChanged(bool locked) OVERRIDE; 275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) VideoDetector* detector_; // not owned 304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Last time that the power manager was notified. 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::TimeTicks last_notify_time_; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // True if the screen is currently locked. 355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) bool screen_is_locked_; 365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(VideoActivityNotifier); 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} // namespace ash 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif // ASH_SYSTEM_CHROMEOS_POWER_VIDEO_ACTIVITY_NOTIFIER_H_ 43