mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-05-13 17:07:01 +00:00
Back out entire dd28759eba7b push (bug 739913 and bug 742226) due to OSX 10.7 and b2g bustage. r=shouldausedtry
This commit is contained in:
parent
d3faf91314
commit
0f578d67d8
@ -318,10 +318,6 @@ var shell = {
|
|||||||
navigator.mozPower.screenEnabled = true;
|
navigator.mozPower.screenEnabled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (topic == "cpu") {
|
|
||||||
navigator.mozPower.cpuSleepAllowed = (state != "locked-foreground" &&
|
|
||||||
state != "locked-background");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let idleTimeout = Services.prefs.getIntPref("power.screen.timeout");
|
let idleTimeout = Services.prefs.getIntPref("power.screen.timeout");
|
||||||
|
@ -236,27 +236,6 @@ PowerManager::SetScreenBrightness(double aBrightness)
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
PowerManager::GetCpuSleepAllowed(bool *aEnabled)
|
|
||||||
{
|
|
||||||
if (!CheckPermission()) {
|
|
||||||
*aEnabled = true;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
*aEnabled = hal::GetCpuSleepAllowed();
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
PowerManager::SetCpuSleepAllowed(bool aEnabled)
|
|
||||||
{
|
|
||||||
NS_ENSURE_TRUE(CheckPermission(), NS_ERROR_DOM_SECURITY_ERR);
|
|
||||||
|
|
||||||
hal::SetCpuSleepAllowed(aEnabled);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // power
|
} // power
|
||||||
} // dom
|
} // dom
|
||||||
} // mozilla
|
} // mozilla
|
||||||
|
@ -42,7 +42,7 @@ interface nsIDOMMozWakeLockListener;
|
|||||||
/**
|
/**
|
||||||
* This interface implements navigator.mozPower
|
* This interface implements navigator.mozPower
|
||||||
*/
|
*/
|
||||||
[scriptable, uuid(256a3287-f528-45b5-9ba8-2b3650c056e6)]
|
[scriptable, uuid(4586bed1-cf78-4436-b503-88277d645b68)]
|
||||||
interface nsIDOMMozPowerManager : nsISupports
|
interface nsIDOMMozPowerManager : nsISupports
|
||||||
{
|
{
|
||||||
void powerOff();
|
void powerOff();
|
||||||
@ -96,11 +96,4 @@ interface nsIDOMMozPowerManager : nsISupports
|
|||||||
* @throw NS_ERROR_INVALID_ARG if brightness is not in the range [0, 1].
|
* @throw NS_ERROR_INVALID_ARG if brightness is not in the range [0, 1].
|
||||||
*/
|
*/
|
||||||
attribute double screenBrightness;
|
attribute double screenBrightness;
|
||||||
|
|
||||||
/**
|
|
||||||
* Is it possible that the device's CPU will sleep after the screen is
|
|
||||||
* disabled? Setting this attribute to false will prevent the device
|
|
||||||
* entering suspend state.
|
|
||||||
*/
|
|
||||||
attribute boolean cpuSleepAllowed;
|
|
||||||
};
|
};
|
||||||
|
16
hal/Hal.cpp
16
hal/Hal.cpp
@ -363,22 +363,6 @@ void SetScreenEnabled(bool enabled)
|
|||||||
PROXY_IF_SANDBOXED(SetScreenEnabled(enabled));
|
PROXY_IF_SANDBOXED(SetScreenEnabled(enabled));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GetCpuSleepAllowed()
|
|
||||||
{
|
|
||||||
// Generally for interfaces that are accessible by normal web content
|
|
||||||
// we should cache the result and be notified on state changes, like
|
|
||||||
// what the battery API does. But since this is only used by
|
|
||||||
// privileged interface, the synchronous getter is OK here.
|
|
||||||
AssertMainThread();
|
|
||||||
RETURN_PROXY_IF_SANDBOXED(GetCpuSleepAllowed());
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetCpuSleepAllowed(bool enabled)
|
|
||||||
{
|
|
||||||
AssertMainThread();
|
|
||||||
PROXY_IF_SANDBOXED(SetCpuSleepAllowed(enabled));
|
|
||||||
}
|
|
||||||
|
|
||||||
double GetScreenBrightness()
|
double GetScreenBrightness()
|
||||||
{
|
{
|
||||||
AssertMainThread();
|
AssertMainThread();
|
||||||
|
11
hal/Hal.h
11
hal/Hal.h
@ -148,17 +148,6 @@ double GetScreenBrightness();
|
|||||||
*/
|
*/
|
||||||
void SetScreenBrightness(double brightness);
|
void SetScreenBrightness(double brightness);
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine whether the device is allowed to sleep.
|
|
||||||
*/
|
|
||||||
bool GetCpuSleepAllowed();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set whether the device is allowed to suspend automatically after
|
|
||||||
* the screen is disabled.
|
|
||||||
*/
|
|
||||||
void SetCpuSleepAllowed(bool enabled);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the value of a light to a particular color, with a specific flash pattern.
|
* Set the value of a light to a particular color, with a specific flash pattern.
|
||||||
* light specifices which light. See Hal.idl for the list of constants
|
* light specifices which light. See Hal.idl for the list of constants
|
||||||
|
@ -84,7 +84,6 @@ CPPSRCS += \
|
|||||||
GonkHal.cpp \
|
GonkHal.cpp \
|
||||||
Power.cpp \
|
Power.cpp \
|
||||||
GonkSensor.cpp \
|
GonkSensor.cpp \
|
||||||
UeventPoller.cpp \
|
|
||||||
$(NULL)
|
$(NULL)
|
||||||
else ifeq (Linux,$(OS_TARGET))
|
else ifeq (Linux,$(OS_TARGET))
|
||||||
CPPSRCS += \
|
CPPSRCS += \
|
||||||
|
@ -141,16 +141,6 @@ void
|
|||||||
SetScreenBrightness(double brightness)
|
SetScreenBrightness(double brightness)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
bool
|
|
||||||
GetCpuSleepAllowed()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
SetCpuSleepAllowed(bool enabled)
|
|
||||||
{}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
EnableNetworkNotifications()
|
EnableNetworkNotifications()
|
||||||
{
|
{
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
#include "base/message_loop.h"
|
|
||||||
#include "hardware_legacy/uevent.h"
|
#include "hardware_legacy/uevent.h"
|
||||||
#include "Hal.h"
|
#include "Hal.h"
|
||||||
#include "HalImpl.h"
|
#include "HalImpl.h"
|
||||||
@ -20,11 +19,9 @@
|
|||||||
#include "nsIThread.h"
|
#include "nsIThread.h"
|
||||||
#include "nsIObserver.h"
|
#include "nsIObserver.h"
|
||||||
#include "nsIObserverService.h"
|
#include "nsIObserverService.h"
|
||||||
#include "nsXULAppAPI.h"
|
|
||||||
#include "hardware/lights.h"
|
#include "hardware/lights.h"
|
||||||
#include "hardware/hardware.h"
|
#include "hardware/hardware.h"
|
||||||
#include "hardware_legacy/vibrator.h"
|
#include "hardware_legacy/vibrator.h"
|
||||||
#include "UeventPoller.h"
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
@ -199,74 +196,70 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // anonymous namespace
|
class UEventWatcher : public nsRunnable {
|
||||||
|
|
||||||
class BatteryObserver : public IUeventObserver,
|
|
||||||
public RefCounted<BatteryObserver>
|
|
||||||
{
|
|
||||||
public:
|
public:
|
||||||
BatteryObserver()
|
UEventWatcher()
|
||||||
:mUpdater(new BatteryUpdater())
|
: mUpdater(new BatteryUpdater())
|
||||||
|
, mRunning(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void Notify(const NetlinkEvent &aEvent)
|
NS_IMETHOD Run()
|
||||||
{
|
{
|
||||||
// this will run on IO thread
|
while (mRunning) {
|
||||||
NetlinkEvent *event = const_cast<NetlinkEvent*>(&aEvent);
|
char buf[1024];
|
||||||
const char *subsystem = event->getSubsystem();
|
int count = uevent_next_event(buf, sizeof(buf) - 1);
|
||||||
// e.g. DEVPATH=/devices/platform/sec-battery/power_supply/battery
|
if (!count) {
|
||||||
const char *devpath = event->findParam("DEVPATH");
|
NS_WARNING("uevent_next_event() returned 0!");
|
||||||
if (strcmp(subsystem, "power_supply") == 0 &&
|
continue;
|
||||||
strstr(devpath, "battery")) {
|
}
|
||||||
// aEvent will be valid only in this method.
|
|
||||||
|
buf[sizeof(buf) - 1] = 0;
|
||||||
|
if (strstr(buf, "battery"))
|
||||||
NS_DispatchToMainThread(mUpdater);
|
NS_DispatchToMainThread(mUpdater);
|
||||||
}
|
}
|
||||||
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool mRunning;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
nsRefPtr<BatteryUpdater> mUpdater;
|
nsRefPtr<BatteryUpdater> mUpdater;
|
||||||
};
|
};
|
||||||
|
|
||||||
// sBatteryObserver is owned by the IO thread. Only the IO thread may
|
} // anonymous namespace
|
||||||
// create or destroy it.
|
|
||||||
static BatteryObserver *sBatteryObserver = NULL;
|
|
||||||
|
|
||||||
static void
|
static bool sUEventInitialized = false;
|
||||||
RegisterBatteryObserverIOThread()
|
static UEventWatcher *sWatcher = NULL;
|
||||||
{
|
static nsIThread *sWatcherThread = NULL;
|
||||||
MOZ_ASSERT(MessageLoop::current() == XRE_GetIOMessageLoop());
|
|
||||||
MOZ_ASSERT(!sBatteryObserver);
|
|
||||||
|
|
||||||
sBatteryObserver = new BatteryObserver();
|
|
||||||
RegisterUeventListener(sBatteryObserver);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
EnableBatteryNotifications()
|
EnableBatteryNotifications()
|
||||||
{
|
{
|
||||||
XRE_GetIOMessageLoop()->PostTask(
|
if (!sUEventInitialized)
|
||||||
FROM_HERE,
|
sUEventInitialized = uevent_init();
|
||||||
NewRunnableFunction(RegisterBatteryObserverIOThread));
|
if (!sUEventInitialized) {
|
||||||
}
|
NS_WARNING("uevent_init() failed!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
if (!sWatcher)
|
||||||
UnregisterBatteryObserverIOThread()
|
sWatcher = new UEventWatcher();
|
||||||
{
|
NS_ADDREF(sWatcher);
|
||||||
MOZ_ASSERT(MessageLoop::current() == XRE_GetIOMessageLoop());
|
|
||||||
MOZ_ASSERT(sBatteryObserver);
|
|
||||||
|
|
||||||
UnregisterUeventListener(sBatteryObserver);
|
sWatcher->mRunning = true;
|
||||||
delete sBatteryObserver;
|
nsresult rv = NS_NewThread(&sWatcherThread, sWatcher);
|
||||||
sBatteryObserver = NULL;
|
if (NS_FAILED(rv))
|
||||||
|
NS_WARNING("Failed to get new thread for uevent watching");
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
DisableBatteryNotifications()
|
DisableBatteryNotifications()
|
||||||
{
|
{
|
||||||
XRE_GetIOMessageLoop()->PostTask(
|
sWatcher->mRunning = false;
|
||||||
FROM_HERE,
|
sWatcherThread->Shutdown();
|
||||||
NewRunnableFunction(UnregisterBatteryObserverIOThread));
|
NS_IF_RELEASE(sWatcherThread);
|
||||||
|
delete sWatcher;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -329,8 +322,6 @@ namespace {
|
|||||||
* RAII class to help us remember to close file descriptors.
|
* RAII class to help us remember to close file descriptors.
|
||||||
*/
|
*/
|
||||||
const char *screenEnabledFilename = "/sys/power/state";
|
const char *screenEnabledFilename = "/sys/power/state";
|
||||||
const char *wakeLockFilename = "/sys/power/wake_lock";
|
|
||||||
const char *wakeUnlockFilename = "/sys/power/wake_unlock";
|
|
||||||
|
|
||||||
template<ssize_t n>
|
template<ssize_t n>
|
||||||
bool ReadFromFile(const char *filename, char (&buf)[n])
|
bool ReadFromFile(const char *filename, char (&buf)[n])
|
||||||
@ -372,12 +363,6 @@ void WriteToFile(const char *filename, const char *toWrite)
|
|||||||
// the screen is on or not.
|
// the screen is on or not.
|
||||||
bool sScreenEnabled = true;
|
bool sScreenEnabled = true;
|
||||||
|
|
||||||
// We can read wakeLockFilename to find out whether the cpu wake lock
|
|
||||||
// is already acquired, but reading and parsing it is a lot more work
|
|
||||||
// than tracking it ourselves, and it won't be accurate anyway (kernel
|
|
||||||
// internal wake locks aren't counted here.)
|
|
||||||
bool sCpuSleepAllowed = true;
|
|
||||||
|
|
||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
|
||||||
bool
|
bool
|
||||||
@ -430,19 +415,6 @@ SetScreenBrightness(double brightness)
|
|||||||
hal::SetLight(hal::eHalLightID_Buttons, aConfig);
|
hal::SetLight(hal::eHalLightID_Buttons, aConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
GetCpuSleepAllowed()
|
|
||||||
{
|
|
||||||
return sCpuSleepAllowed;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
SetCpuSleepAllowed(bool aAllowed)
|
|
||||||
{
|
|
||||||
WriteToFile(aAllowed ? wakeUnlockFilename : wakeLockFilename, "gecko");
|
|
||||||
sCpuSleepAllowed = aAllowed;
|
|
||||||
}
|
|
||||||
|
|
||||||
static light_device_t* sLights[hal::eHalLightID_Count]; // will be initialized to NULL
|
static light_device_t* sLights[hal::eHalLightID_Count]; // will be initialized to NULL
|
||||||
|
|
||||||
light_device_t* GetDevice(hw_module_t* module, char const* name)
|
light_device_t* GetDevice(hw_module_t* module, char const* name)
|
||||||
|
@ -1,198 +0,0 @@
|
|||||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
||||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <pthread.h>
|
|
||||||
#include <signal.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <strings.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
#include <linux/types.h>
|
|
||||||
#include <linux/netlink.h>
|
|
||||||
#include <netinet/in.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
|
|
||||||
#include "base/message_loop.h"
|
|
||||||
#include "mozilla/FileUtils.h"
|
|
||||||
#include "nsAutoPtr.h"
|
|
||||||
#include "nsThreadUtils.h"
|
|
||||||
#include "nsXULAppAPI.h"
|
|
||||||
|
|
||||||
#include "UeventPoller.h"
|
|
||||||
|
|
||||||
namespace mozilla {
|
|
||||||
namespace hal_impl {
|
|
||||||
|
|
||||||
static void ShutdownUevent();
|
|
||||||
|
|
||||||
class NetlinkPoller : public MessageLoopForIO::Watcher
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
NetlinkPoller() : mSocket(-1),
|
|
||||||
mIOLoop(MessageLoopForIO::current())
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual ~NetlinkPoller() {}
|
|
||||||
|
|
||||||
bool OpenSocket();
|
|
||||||
|
|
||||||
virtual void OnFileCanReadWithoutBlocking(int fd);
|
|
||||||
|
|
||||||
// no writing to the netlink socket
|
|
||||||
virtual void OnFileCanWriteWithoutBlocking(int fd)
|
|
||||||
{
|
|
||||||
MOZ_NOT_REACHED("Must not write to netlink socket");
|
|
||||||
}
|
|
||||||
|
|
||||||
MessageLoopForIO *GetIOLoop () const { return mIOLoop; }
|
|
||||||
void RegisterObserver(IUeventObserver *aObserver)
|
|
||||||
{
|
|
||||||
mUeventObserverList.AddObserver(aObserver);
|
|
||||||
}
|
|
||||||
|
|
||||||
void UnregisterObserver(IUeventObserver *aObserver)
|
|
||||||
{
|
|
||||||
mUeventObserverList.RemoveObserver(aObserver);
|
|
||||||
if (mUeventObserverList.Length() == 0)
|
|
||||||
ShutdownUevent(); // this will destroy self
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
ScopedClose mSocket;
|
|
||||||
MessageLoopForIO* mIOLoop;
|
|
||||||
MessageLoopForIO::FileDescriptorWatcher mReadWatcher;
|
|
||||||
|
|
||||||
NetlinkEvent mNetlinkEvent;
|
|
||||||
const static int kBuffsize = 64 * 1024;
|
|
||||||
uint8_t mBuffer [kBuffsize];
|
|
||||||
|
|
||||||
typedef ObserverList<NetlinkEvent> UeventObserverList;
|
|
||||||
UeventObserverList mUeventObserverList;
|
|
||||||
};
|
|
||||||
|
|
||||||
bool
|
|
||||||
NetlinkPoller::OpenSocket()
|
|
||||||
{
|
|
||||||
mSocket.mFd = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
|
|
||||||
if (mSocket.mFd < 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
int sz = kBuffsize;
|
|
||||||
|
|
||||||
if (setsockopt(mSocket.mFd, SOL_SOCKET, SO_RCVBUFFORCE, &sz, sizeof(sz)) < 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// add FD_CLOEXEC flag
|
|
||||||
int flags = fcntl(mSocket.mFd, F_GETFD);
|
|
||||||
if (flags == -1) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
flags |= FD_CLOEXEC;
|
|
||||||
if (fcntl(mSocket.mFd, F_SETFD, flags) == -1)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// set non-blocking
|
|
||||||
if (fcntl(mSocket.mFd, F_SETFL, O_NONBLOCK) == -1)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
struct sockaddr_nl saddr;
|
|
||||||
bzero(&saddr, sizeof(saddr));
|
|
||||||
saddr.nl_family = AF_NETLINK;
|
|
||||||
saddr.nl_groups = 1;
|
|
||||||
saddr.nl_pid = getpid();
|
|
||||||
|
|
||||||
if (bind(mSocket.mFd, (struct sockaddr *)&saddr, sizeof(saddr)) == -1)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (!mIOLoop->WatchFileDescriptor(mSocket.mFd,
|
|
||||||
true,
|
|
||||||
MessageLoopForIO::WATCH_READ,
|
|
||||||
&mReadWatcher,
|
|
||||||
this)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static nsAutoPtr<NetlinkPoller> sPoller;
|
|
||||||
|
|
||||||
class UeventInitTask : public Task
|
|
||||||
{
|
|
||||||
virtual void Run()
|
|
||||||
{
|
|
||||||
if (!sPoller) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (sPoller->OpenSocket()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
sPoller->GetIOLoop()->PostDelayedTask(FROM_HERE, new UeventInitTask(), 1000);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
void
|
|
||||||
NetlinkPoller::OnFileCanReadWithoutBlocking(int fd)
|
|
||||||
{
|
|
||||||
MOZ_ASSERT(fd == mSocket.mFd);
|
|
||||||
while (true) {
|
|
||||||
int ret = read(fd, mBuffer, kBuffsize);
|
|
||||||
if (ret == -1) {
|
|
||||||
if (errno == EAGAIN || errno == EWOULDBLOCK) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (errno == EINTR) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ret <= 0) {
|
|
||||||
// fatal error on netlink socket which should not happen
|
|
||||||
_exit(1);
|
|
||||||
}
|
|
||||||
mNetlinkEvent.decode(reinterpret_cast<char*>(mBuffer), ret);
|
|
||||||
mUeventObserverList.Broadcast(mNetlinkEvent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
InitializeUevent()
|
|
||||||
{
|
|
||||||
MOZ_ASSERT(!sPoller);
|
|
||||||
sPoller = new NetlinkPoller();
|
|
||||||
sPoller->GetIOLoop()->PostTask(FROM_HERE, new UeventInitTask());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
ShutdownUevent()
|
|
||||||
{
|
|
||||||
sPoller = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
RegisterUeventListener(IUeventObserver *aObserver)
|
|
||||||
{
|
|
||||||
MOZ_ASSERT(MessageLoop::current() == XRE_GetIOMessageLoop());
|
|
||||||
|
|
||||||
if (!sPoller)
|
|
||||||
InitializeUevent();
|
|
||||||
sPoller->RegisterObserver(aObserver);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
UnregisterUeventListener(IUeventObserver *aObserver)
|
|
||||||
{
|
|
||||||
MOZ_ASSERT(MessageLoop::current() == XRE_GetIOMessageLoop());
|
|
||||||
|
|
||||||
sPoller->UnregisterObserver(aObserver);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // hal_impl
|
|
||||||
} // mozilla
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
|||||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
||||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
#ifndef _mozilla_uevent_poller_h_
|
|
||||||
#define _mozilla_uevent_poller_h_
|
|
||||||
|
|
||||||
#include <sysutils/NetlinkEvent.h>
|
|
||||||
#include "mozilla/Observer.h"
|
|
||||||
|
|
||||||
class NetlinkEvent;
|
|
||||||
|
|
||||||
namespace mozilla {
|
|
||||||
namespace hal_impl {
|
|
||||||
|
|
||||||
typedef mozilla::Observer<NetlinkEvent> IUeventObserver;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register for uevent notification. Note that the method should run on the
|
|
||||||
* <b> IO Thread </b>
|
|
||||||
* @aObserver the observer to be added. The observer's Notify() is only called
|
|
||||||
* on the <b> IO Thread </b>
|
|
||||||
*/
|
|
||||||
void RegisterUeventListener(IUeventObserver *aObserver);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unregister for uevent notification. Note that the method should run on the
|
|
||||||
* <b> IO Thread </b>
|
|
||||||
* @aObserver the observer to be removed
|
|
||||||
*/
|
|
||||||
void UnregisterUeventListener(IUeventObserver *aObserver);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -91,16 +91,6 @@ void
|
|||||||
SetScreenBrightness(double brightness)
|
SetScreenBrightness(double brightness)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
bool
|
|
||||||
GetCpuSleepAllowed()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
SetCpuSleepAllowed(bool enabled)
|
|
||||||
{}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
EnableNetworkNotifications()
|
EnableNetworkNotifications()
|
||||||
{}
|
{}
|
||||||
|
@ -120,9 +120,6 @@ parent:
|
|||||||
sync GetScreenEnabled() returns (bool enabled);
|
sync GetScreenEnabled() returns (bool enabled);
|
||||||
SetScreenEnabled(bool enabled);
|
SetScreenEnabled(bool enabled);
|
||||||
|
|
||||||
sync GetCpuSleepAllowed() returns (bool enabled);
|
|
||||||
SetCpuSleepAllowed(bool enabled);
|
|
||||||
|
|
||||||
sync GetScreenBrightness() returns (double brightness);
|
sync GetScreenBrightness() returns (double brightness);
|
||||||
SetScreenBrightness(double brightness);
|
SetScreenBrightness(double brightness);
|
||||||
|
|
||||||
|
@ -138,20 +138,6 @@ SetScreenEnabled(bool enabled)
|
|||||||
Hal()->SendSetScreenEnabled(enabled);
|
Hal()->SendSetScreenEnabled(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
GetCpuSleepAllowed()
|
|
||||||
{
|
|
||||||
bool enabled = false;
|
|
||||||
Hal()->SendGetCpuSleepAllowed(&enabled);
|
|
||||||
return enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
SetCpuSleepAllowed(bool enabled)
|
|
||||||
{
|
|
||||||
Hal()->SendSetCpuSleepAllowed(enabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
double
|
double
|
||||||
GetScreenBrightness()
|
GetScreenBrightness()
|
||||||
{
|
{
|
||||||
@ -381,20 +367,6 @@ public:
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_OVERRIDE virtual bool
|
|
||||||
RecvGetCpuSleepAllowed(bool *enabled)
|
|
||||||
{
|
|
||||||
*enabled = hal::GetCpuSleepAllowed();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_OVERRIDE virtual bool
|
|
||||||
RecvSetCpuSleepAllowed(const bool &enabled)
|
|
||||||
{
|
|
||||||
hal::SetCpuSleepAllowed(enabled);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_OVERRIDE virtual bool
|
NS_OVERRIDE virtual bool
|
||||||
RecvGetScreenBrightness(double *brightness)
|
RecvGetScreenBrightness(double *brightness)
|
||||||
{
|
{
|
||||||
|
@ -69,16 +69,6 @@ void
|
|||||||
SetScreenBrightness(double brightness)
|
SetScreenBrightness(double brightness)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
bool
|
|
||||||
GetCpuSleepAllowed()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
SetCpuSleepAllowed(bool enabled)
|
|
||||||
{}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
EnableNetworkNotifications()
|
EnableNetworkNotifications()
|
||||||
{}
|
{}
|
||||||
|
@ -395,7 +395,6 @@ OS_LIBS += \
|
|||||||
-lhardware \
|
-lhardware \
|
||||||
-lutils \
|
-lutils \
|
||||||
-lcutils \
|
-lcutils \
|
||||||
-lsysutils \
|
|
||||||
-lcamera_client \
|
-lcamera_client \
|
||||||
-lbinder \
|
-lbinder \
|
||||||
-lsensorservice \
|
-lsensorservice \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user