diff options
Diffstat (limited to 'include/libiphone')
-rw-r--r-- | include/libiphone/afc.h | 2 | ||||
-rw-r--r-- | include/libiphone/libiphone.h | 44 |
2 files changed, 41 insertions, 5 deletions
diff --git a/include/libiphone/afc.h b/include/libiphone/afc.h index 77b6f0e..e913f91 100644 --- a/include/libiphone/afc.h +++ b/include/libiphone/afc.h @@ -107,7 +107,7 @@ afc_error_t afc_truncate(afc_client_t client, const char *path, off_t newsize); afc_error_t afc_make_link(afc_client_t client, afc_link_type_t linktype, const char *target, const char *linkname); /* Helper functions */ -char * afc_get_device_info_field(afc_client_t client, const char *field); +afc_error_t afc_get_device_info_key(afc_client_t client, const char *key, char **value); #ifdef __cplusplus } diff --git a/include/libiphone/libiphone.h b/include/libiphone/libiphone.h index 1451f15..6b95edc 100644 --- a/include/libiphone/libiphone.h +++ b/include/libiphone/libiphone.h @@ -31,7 +31,6 @@ extern "C" { #include <sys/types.h> #include <sys/stat.h> #include <plist/plist.h> -#include <usbmuxd.h> /* Error Codes */ #define IPHONE_E_SUCCESS 0 @@ -46,19 +45,56 @@ typedef int16_t iphone_error_t; struct iphone_device_int; typedef struct iphone_device_int *iphone_device_t; +struct iphone_connection_int; +typedef struct iphone_connection_int *iphone_connection_t; + /* Debugging */ #define DBGMASK_ALL 0xFFFF #define DBGMASK_NONE 0x0000 #define DBGMASK_LOCKDOWND (1 << 1) #define DBGMASK_MOBILESYNC (1 << 2) +/* generic */ void iphone_set_debug_mask(uint16_t mask); void iphone_set_debug_level(int level); -/* Interface */ -iphone_error_t iphone_get_device(iphone_device_t *device); -iphone_error_t iphone_get_device_by_uuid(iphone_device_t *device, const char *uuid); +/* discovery (events/asynchronous) */ +// event type +enum iphone_event_type { + IPHONE_DEVICE_ADD = 1, + IPHONE_DEVICE_REMOVE +}; + +// event data structure +typedef struct { + enum iphone_event_type event; + const char *uuid; + int conn_type; +} iphone_event_t; + +// event callback function prototype +typedef void (*iphone_event_cb_t) (const iphone_event_t *event, void *user_data); + +// functions +iphone_error_t iphone_event_subscribe(iphone_event_cb_t callback, void *user_data); +iphone_error_t iphone_event_unsubscribe(); + +/* discovery (synchronous) */ +iphone_error_t iphone_get_device_list(char ***devices, int *count); +iphone_error_t iphone_device_list_free(char **devices); + +/* device structure creation and destruction */ +iphone_error_t iphone_device_new(iphone_device_t *device, const char *uuid); iphone_error_t iphone_device_free(iphone_device_t device); + +/* connection/disconnection and communication */ +iphone_error_t iphone_device_connect(iphone_device_t device, uint16_t dst_port, iphone_connection_t *connection); +iphone_error_t iphone_device_disconnect(iphone_connection_t connection); +iphone_error_t iphone_device_send(iphone_connection_t connection, const char *data, uint32_t len, uint32_t *sent_bytes); +iphone_error_t iphone_device_recv_timeout(iphone_connection_t connection, char *data, uint32_t len, uint32_t *recv_bytes, unsigned int timeout); +iphone_error_t iphone_device_recv(iphone_connection_t connection, char *data, uint32_t len, uint32_t *recv_bytes); + +/* misc */ iphone_error_t iphone_device_get_handle(iphone_device_t device, uint32_t *handle); iphone_error_t iphone_device_get_uuid(iphone_device_t device, char **uuid); |