14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file.
44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "chrome/browser/chromeos/extensions/extension_system_event_observer.h"
64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "chrome/browser/extensions/api/system_private/system_private_api.h"
84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "chromeos/dbus/dbus_thread_manager.h"
94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace chromeos {
114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)ExtensionSystemEventObserver::ExtensionSystemEventObserver() {
134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this);
144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  DBusThreadManager::Get()->GetSessionManagerClient()->AddObserver(this);
154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)ExtensionSystemEventObserver::~ExtensionSystemEventObserver() {
184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this);
194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this);
204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)void ExtensionSystemEventObserver::BrightnessChanged(int level,
234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                                                     bool user_initiated) {
244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  extensions::DispatchBrightnessChangedEvent(level, user_initiated);
254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
270529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochvoid ExtensionSystemEventObserver::SuspendDone(
284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    const base::TimeDelta& sleep_duration) {
294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  extensions::DispatchWokeUpEvent();
304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)void ExtensionSystemEventObserver::ScreenIsUnlocked() {
334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  extensions::DispatchScreenUnlockedEvent();
344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}  // namespace chromeos
37