diff --git a/extra/core-foundation/core-foundation.factor b/extra/core-foundation/core-foundation.factor index e1c2c4c517..1dbf295cee 100644 --- a/extra/core-foundation/core-foundation.factor +++ b/extra/core-foundation/core-foundation.factor @@ -80,6 +80,9 @@ FUNCTION: void CFRelease ( CFTypeRef cf ) ; FUNCTION: CFTypeID CFGetTypeID ( CFTypeRef cf ) ; +FUNCTION: CFRunLoopRef CFRunLoopGetCurrent ( ) ; +FUNCTION: CFRunLoopRef CFRunLoopGetMain ( ) ; + : CF>array ( alien -- array ) dup CFArrayGetCount [ CFArrayGetValueAtIndex ] with map ; @@ -135,3 +138,5 @@ M: f ] [ "Cannot load bundled named " prepend throw ] ?if ; + +: kCFRunLoopDefaultMode "kCFRunLoopDefaultMode" ; inline diff --git a/extra/iokit/hid/hid.factor b/extra/iokit/hid/hid.factor index da8c785791..79c3516b4e 100644 --- a/extra/iokit/hid/hid.factor +++ b/extra/iokit/hid/hid.factor @@ -1,4 +1,5 @@ -USING: iokit alien.syntax alien.c-types kernel system core-foundation ; +USING: iokit alien alien.syntax alien.c-types kernel +system core-foundation ; IN: iokit.hid : kIOHIDDeviceKey "IOHIDDevice" ; inline @@ -128,16 +129,30 @@ TYPEDEF: void* IOHIDTransactionRef TYPEDEF: UInt32 IOHIDValueScaleType TYPEDEF: UInt32 IOHIDTransactionDirectionType -! Callback signature: void IOHIDCallback(void* context, IOReturn result, void* sender); TYPEDEF: void* IOHIDCallback -! Callback signature: void IOHIDReportCallback(void* context, IOReturn result, void* sender, IOHIDReportType type, UInt32 reportID, uchar * report, CFIndex reportLength); +: IOHIDCallback ( quot -- alien ) + [ "void" { "void*" "IOReturn" "void*" } "cdecl" ] + dip alien-callback ; inline + TYPEDEF: void* IOHIDReportCallback -! Callback signature: void IOHIDValueCallback(void* context, IOReturn result, void* sender, IOHIDValueRef value); +: IOHIDReportCallback ( quot -- alien ) + [ "void" { "void*" "IOReturn" "void*" "IOHIDReportType" "UInt32" "uchar*" "CFIndex" } "cdecl" ] + dip alien-callback ; inline + TYPEDEF: void* IOHIDValueCallback -! Callback signature: void IOHIDValueMultipleCallback(void* context, IOReturn result, void* sender, CFDictionaryRef multiple); +: IOHIDValueCallback ( quot -- alien ) + [ "void" { "void*" "IOReturn" "void*" "IOHIDValueRef" } "cdecl" ] + dip alien-callback ; inline + TYPEDEF: void* IOHIDValueMultipleCallback -! Callback signature: void IOHIDDeviceCallback(void* context, IOReturn result, void* sender, IOHIDDeviceRef device); +: IOHIDValueMultipleCallback ( quot -- alien ) + [ "void" { "void*" "IOReturn" "void*" "CFDictionaryRef" } "cdecl" ] + dip alien-callback ; inline + TYPEDEF: void* IOHIDDeviceCallback +: IOHIDDeviceCallback ( quot -- alien ) + [ "void" { "void*" "IOReturn" "void*" "IOHIDDeviceRef" } "cdecl" ] + dip alien-callback ; inline ! IOHIDDevice