#include <IOKit/IOKitLib.h>
#include <IOKit/hidsystem/IOHIDShared.h>
#include <assert.h>
mach_port_t masterPort;
io_connect_t OpenEventDriver( void )
{
register kern_return_t kr;
mach_port_t ev, service, iter;
assert( KERN_SUCCESS == (
kr = IOServiceGetMatchingServices( masterPort,
IOServiceMatching( kIOHIDSystemClass ), &iter)
));
assert(
service = IOIteratorNext( iter )
);
assert( KERN_SUCCESS == (
kr = IOServiceOpen( service,
mach_task_self(),
kIOHIDParamConnectType,
&ev)
));
IOObjectRelease( service );
IOObjectRelease( iter );
return( ev );
}
void TestParams( io_connect_t ev )
{
kern_return_t kr;
NXEventData event;
IOGPoint loc;
char * s = "hello ";
char c;
loc.x = 200;
loc.y = 200;
assert( KERN_SUCCESS == (
kr = IOHIDSetMouseLocation( ev, 200, 200 )
));
while( (c = *(s++))) {
event.key.repeat = FALSE;
event.key.keyCode = 0;
event.key.charSet = NX_ASCIISET;
event.key.charCode = c;
event.key.origCharSet = event.key.charSet;
event.key.origCharCode = event.key.charCode;
assert( KERN_SUCCESS == (
kr = IOHIDPostEvent ( ev, NX_KEYDOWN, loc, &event,
FALSE, 0, FALSE )
));
assert( KERN_SUCCESS == (
kr = IOHIDPostEvent ( ev, NX_KEYUP, loc, &event,
FALSE, 0, FALSE )
));
}
}
int
main(int argc, char **argv)
{
kern_return_t kr;
assert( KERN_SUCCESS == (
kr = IOMasterPort( bootstrap_port,
&masterPort)
));
TestParams( OpenEventDriver());
return( 0 );
}