haiku/src/servers/power/lid_monitor.cpp

44 lines
656 B
C++

/*
* Copyright 2013, Jérôme Duval, korli@users.berlios.de.
* Copyright 2005, Nathan Whitehorn.
*
* Distributed under the terms of the MIT License.
*/
#include "lid_monitor.h"
#include <Messenger.h>
#include <Roster.h>
#include <stdio.h>
#include <RosterPrivate.h>
LidMonitor::LidMonitor()
{
int fd = open("/dev/power/acpi_lid/0", O_RDONLY);
if (fd > 0)
fFDs.insert(fd);
}
LidMonitor::~LidMonitor()
{
for (std::set<int>::iterator it = fFDs.begin(); it != fFDs.end(); ++it)
close(*it);
}
void
LidMonitor::HandleEvent(int fd)
{
uint8 status;
if (read(fd, &status, 1) != 1)
return;
if (status == 1)
printf("lid status 1\n");
}