blob: b736f75194bc7a3b87896674733e222568a976a5 [file] [log] [blame]
/*
* Copyright 2007 The Android Open Source Project
*
* Vibrating notification device.
*/
#include "Common.h"
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <unistd.h>
/*
* The user will write a decimal integer indicating the time, in milliseconds,
* that the device should vibrate. In current usage, this is either -1
* (meaning vibrate forever) or 0 (don't vibrate).
*/
static ssize_t writeVibrator(FakeDev* dev, int fd, const void* buf,
size_t count)
{
if (count == 2 && memcmp(buf, "0\n", 2) == 0) {
wsEnableVibration(0);
} else if (count == 3 && memcmp(buf, "-1\n", 3) == 0) {
wsEnableVibration(1);
} else {
wsLog("%s: got %d bytes: '%*s'\n",
dev->debugName, count, count, (const char*) buf);
}
return count;
}
/*
* Open the vibration control device.
*/
FakeDev* wsOpenDevVibrator(const char* pathName, int flags)
{
FakeDev* newDev = wsCreateFakeDev(pathName);
if (newDev != NULL) {
newDev->write = writeVibrator;
}
return newDev;
}