#include "GUIEventDevice.h" #include #include #include //#define GUIEVENTDEVICE_DEBUG GUIEventDevice::GUIEventDevice() : CharacterDevice(66, 1) { } GUIEventDevice::~GUIEventDevice() { } bool GUIEventDevice::can_read(Process& process) const { return !process.gui_events().is_empty(); } ssize_t GUIEventDevice::read(Process& process, byte* buffer, size_t size) { #ifdef GUIEVENTDEVICE_DEBUG dbgprintf("GUIEventDevice::read(): %s<%u>, size=%u, sizeof(GUI_Event)=%u\n", process.name().characters(), process.pid(), size, sizeof(GUI_Event)); #endif if (process.gui_events().is_empty()) return 0; LOCKER(process.gui_events_lock()); ASSERT(size == sizeof(GUI_Event)); *reinterpret_cast(buffer) = process.gui_events().take_first(); return size; } ssize_t GUIEventDevice::write(Process&, const byte*, size_t) { return -EINVAL; }