IOHIDReportElementQueue.cpp [plain text]
#include <IOKit/system.h>
#include <IOKit/IOLib.h>
#include <AssertMacros.h>
#include "IOHIDDebug.h"
#include "IOHIDReportElementQueue.h"
#define super IOHIDEventQueue
OSDefineMetaClassAndStructors(IOHIDReportElementQueue, super)
IOHIDReportElementQueue *IOHIDReportElementQueue::withCapacity(UInt32 size, IOHIDLibUserClient *client)
{
IOHIDReportElementQueue *queue = new IOHIDReportElementQueue;
if (queue) {
queue->fClient = client;
}
if (size < HID_QUEUE_CAPACITY_MIN) {
size = HID_QUEUE_CAPACITY_MIN;
}
if (size > HID_QUEUE_CAPACITY_MAX_ENTITLED) {
size = HID_QUEUE_CAPACITY_MAX_ENTITLED;
}
if (queue && !queue->initWithCapacity(size)) {
queue->release();
queue = NULL;
}
return queue;
}
Boolean IOHIDReportElementQueue::enqueue(IOHIDElementValue *value)
{
return (fClient->processElement(value, this) == kIOReturnSuccess);
}
Boolean IOHIDReportElementQueue::enqueue(void *data, UInt32 dataSize)
{
return super::enqueue(data, dataSize);
}