12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #ifdef SHOULD_COMPILE_LOOKIN_SERVER
- #include <dispatch/dispatch.h>
- #import <Foundation/Foundation.h>
- // Lookin_PTUSBDeviceDidAttachNotification
- // Posted when a device has been attached. Also posted for each device that is
- // already attached when the Lookin_PTUSBHub starts listening.
- //
- // .userInfo = {
- // DeviceID = 3;
- // MessageType = Attached;
- // Properties = {
- // ConnectionSpeed = 480000000;
- // ConnectionType = USB;
- // DeviceID = 3;
- // LocationID = 1234567890;
- // ProductID = 1234;
- // SerialNumber = 0123456789abcdef0123456789abcdef01234567;
- // };
- // }
- //
- FOUNDATION_EXPORT NSString * const Lookin_PTUSBDeviceDidAttachNotification;
- // Lookin_PTUSBDeviceDidDetachNotification
- // Posted when a device has been detached.
- //
- // .userInfo = {
- // DeviceID = 3;
- // MessageType = Detached;
- // }
- //
- FOUNDATION_EXPORT NSString * const Lookin_PTUSBDeviceDidDetachNotification;
- // NSError domain
- FOUNDATION_EXPORT NSString * const Lookin_PTUSBHubErrorDomain;
- // Error codes returned with NSError.code for NSError domain Lookin_PTUSBHubErrorDomain
- typedef enum {
- PTUSBHubErrorBadDevice = 2,
- PTUSBHubErrorConnectionRefused = 3,
- } PTUSBHubError;
- @interface Lookin_PTUSBHub : NSObject
- // Shared, implicitly opened hub.
- + (Lookin_PTUSBHub*)sharedHub;
- // Connect to a TCP *port* on a device, while the actual transport is over USB.
- // Upon success, *error* is nil and *channel* is a duplex I/O channel.
- // You can retrieve the underlying file descriptor using
- // dispatch_io_get_descriptor(channel). The dispatch_io_t channel behaves just
- // like any stream type dispatch_io_t, making it possible to use the same logic
- // for both USB bridged connections and e.g. ethernet-based connections.
- //
- // *onStart* is called either when a connection failed, in which case the error
- // argument is non-nil, or when the connection was successfully established (the
- // error argument is nil). Must not be NULL.
- //
- // *onEnd* is called when a connection was open and just did close. If the error
- // argument is non-nil, the channel closed because of an error. Pass NULL for no
- // callback.
- //
- - (void)connectToDevice:(NSNumber*)deviceID
- port:(int)port
- onStart:(void(^)(NSError *error, dispatch_io_t channel))onStart
- onEnd:(void(^)(NSError *error))onEnd;
- // Start listening for devices. You only need to invoke this method on custom
- // instances to start receiving notifications. The shared instance returned from
- // +sharedHub is always in listening mode.
- //
- // *onStart* is called either when the system failed to start listening, in
- // which case the error argument is non-nil, or when the receiver is listening.
- // Pass NULL for no callback.
- //
- // *onEnd* is called when listening stopped. If the error argument is non-nil,
- // listening stopped because of an error. Pass NULL for no callback.
- //
- - (void)listenOnQueue:(dispatch_queue_t)queue
- onStart:(void(^)(NSError*))onStart
- onEnd:(void(^)(NSError*))onEnd;
- @end
- #endif /* SHOULD_COMPILE_LOOKIN_SERVER */
|