IOHIDLibFactory.cpp [plain text]
#include <TargetConditionals.h>
#include <IOKit/hid/IOHIDDevicePlugIn.h>
#include <IOKit/hid/IOHIDServicePlugIn.h>
#include "IOHIDIUnknown.h"
#include "IOHIDDeviceClass.h"
#include "IOHIDUPSClass.h"
#include "IOHIDEventServiceClass.h"
#include "IOHIDEventServiceFastPathClass.h"
extern "C" void *IOHIDLibFactory(CFAllocatorRef allocator __unused, CFUUIDRef typeID);
void *IOHIDLibFactory(CFAllocatorRef allocator __unused, CFUUIDRef typeID)
{
if (CFEqual(typeID, kIOHIDDeviceUserClientTypeID))
return (void *) IOHIDObsoleteDeviceClass::alloc();
else if (CFEqual(typeID, kIOHIDDeviceTypeID))
return (void *) IOHIDDeviceClass::alloc();
else if (CFEqual(typeID, kIOHIDServicePlugInTypeID))
return (void *) IOHIDEventServiceClass::alloc();
else if (CFEqual(typeID, kIOUPSPlugInTypeID))
return (void *) IOHIDUPSClass::alloc();
else if (CFEqual(typeID, kIOHIDServiceFastPathPlugInTypeID))
return (void *) IOHIDEventServiceFastPathClass::alloc();
else
return NULL;
}