Code: Alles auswählen
ImportC ""
class_addMethod(Class.i, Selector.i, *Callback, *Types)
class_createInstance(Class.i, ExtraBytes.i)
class_addProtocol(Class.i, Protocol.i)
objc_allocateClassPair(ModelClass.i, NewClassName.P-ASCII, ExtraBytes.i)
objc_lookUpClass(ClassName.P-ASCII)
object_setClass(ObjectToModify.i, NewClass.i)
objc_registerClassPair(NewClass.i)
objc_getProtocol(ProtocolName.P-ASCII)
sel_registerName(MethodName.P-ASCII)
RunApplicationEventLoop()
EndImport
ImportC "/System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth"
IOBluetoothLocalDeviceAvailable()
IOBluetoothNumberOfAvailableHIDDevices()
EndImport
Global appDelegate = CocoaMessage(0, CocoaMessage(0, 0, "NSApplication sharedApplication"), "delegate")
Global delegateClass = object_getClass_(appDelegate)
;Global inquiry
Global device
Global ende.b = #False
Structure BluetoothDeviceAddress
blupp.b[6]
EndStructure
Global btaddr.BluetoothDeviceAddress
Procedure Exit()
If ende = #True
End
EndIf
EndProcedure
ProcedureC deviceInquiryComplete(obj.i, sel.i, sender.i, error.i, aborted.i)
; CocoaMessage(@device, sender, "foundDevices")
; If CocoaMessage(0, device, "count") > 0
; For i = 0 To CocoaMessage(0, device, "count") - 1
; CocoaMessage(@sname, CocoaMessage(0, device, "objectAtIndex:", i), "name")
; Debug PeekS(CocoaMessage(0, sname, "UTF8String"), -1, #PB_UTF8)
; Next i
; EndIf
ende = #True
Exit()
EndProcedure
ProcedureC deviceInquiryDeviceFound(obj.i, sel.i, sender.i, devices.i)
Debug PeekS(CocoaMessage(0, CocoaMessage(0, devices, "addressString"), "UTF8String"), -1, #PB_UTF8)
Debug PeekS(CocoaMessage(0, CocoaMessage(0, devices, "name"), "UTF8String"), -1, #PB_UTF8)
EndProcedure
ProcedureC deviceInquiryDeviceNameUpdated(obj.i, sel.i, sender.i, device.i, devicesRemaining.l)
;Debug device
EndProcedure
ProcedureC deviceInquiryStarted(obj.i, sel.i, sender.i)
Debug "Searching for Devices..."
EndProcedure
ProcedureC deviceInquiryUpdatingDeviceNamesStarted(obj.i, sel.i, sender.i, devicesRemaining.l)
EndProcedure
adapter = CocoaMessage(0, 0, "IOBluetoothDevice new")
CocoaMessage(@devices, 0, "IOBluetoothDevice pairedDevices")
CocoaMessage(@addr, CocoaMessage(0, devices, "objectAtIndex:", 0), "getAddress")
CocoaMessage(@str_addr, CocoaMessage(0, devices, "objectAtIndex:", 0), "addressString")
Debug PeekS(CocoaMessage(0, str_addr, "UTF8String"), -1, #PB_UTF8)
CocoaMessage(@name, CocoaMessage(0, devices, "objectAtIndex:", 0), "name")
Debug PeekS(CocoaMessage(0, name, "UTF8String"), -1, #PB_UTF8)
CocoaMessage(@name, CocoaMessage(0, devices, "objectAtIndex:", 0), "openConnection")
Debug CocoaMessage(0, CocoaMessage(0, devices, "objectAtIndex:", 0), "isPaired")
Debug CocoaMessage(0, CocoaMessage(0, devices, "objectAtIndex:", 0), "isConnected")
hci = CocoaMessage(0, 0, "IOBluetoothHostController new")
hci_name = CocoaMessage(0, hci, "nameAsString")
Debug PeekS(CocoaMessage(0, hci_name, "UTF8String"), -1, #PB_UTF8)
;-Suche
CocoaMessage(@inquiry, 0, "IOBluetoothDeviceInquiry alloc") ;new
class_addMethod(delegateClass, sel_registerName("deviceInquiryComplete:error:aborted:"), @deviceInquiryComplete(), "v@:@@@")
class_addMethod(delegateClass, sel_registerName("deviceInquiryDeviceFound:device:"), @deviceInquiryDeviceFound(), "v@:@@")
class_addMethod(delegateClass, sel_registerName("deviceInquiryDeviceNameUpdated:device:devicesRemaining:"), @deviceInquiryDeviceNameUpdated(), "v@:@@@")
class_addMethod(delegateClass, sel_registerName("deviceInquiryStarted:"), @deviceInquiryStarted(), "v@:@")
class_addMethod(delegateClass, sel_registerName("deviceInquiryUpdatingDeviceNamesStarted:devicesRemaining:"), @deviceInquiryUpdatingDeviceNamesStarted(), "v@:@@")
CocoaMessage(0, inquiry, "initWithDelegate:", class_createInstance(delegateClass, 0))
;CocoaMessage(0, inquiry, "setDelegate:", class_createInstance(delegateClass, 0))
CocoaMessage(@status, inquiry, "start")
;CocoaMessage(@status, inquiry, "stop")
RunApplicationEventLoop()