libimobiledevice
1.3.0
|
Device/Connection handling and communication. More...
Data Structures | |
struct | idevice_info_t |
struct | idevice_event_t |
Provides information about the occurred event. More... | |
Typedefs | |
typedef struct idevice_private | idevice_private |
typedef idevice_private * | idevice_t |
The device handle. | |
typedef struct idevice_connection_private | idevice_connection_private |
typedef idevice_connection_private * | idevice_connection_t |
The connection handle. | |
typedef void(* | idevice_event_cb_t) (const idevice_event_t *event, void *user_data) |
Callback to notifiy if a device was added or removed. | |
Enumerations | |
enum | idevice_error_t { IDEVICE_E_SUCCESS = 0, IDEVICE_E_INVALID_ARG = -1, IDEVICE_E_UNKNOWN_ERROR = -2, IDEVICE_E_NO_DEVICE = -3, IDEVICE_E_NOT_ENOUGH_DATA = -4, IDEVICE_E_SSL_ERROR = -6, IDEVICE_E_TIMEOUT = -7 } |
Error Codes. | |
enum | idevice_options { IDEVICE_LOOKUP_USBMUX = 1 << 1, IDEVICE_LOOKUP_NETWORK = 1 << 2, IDEVICE_LOOKUP_PREFER_NETWORK = 1 << 3 } |
Options for idevice_new_with_options() More... | |
enum | idevice_connection_type { CONNECTION_USBMUXD = 1, CONNECTION_NETWORK } |
Type of connection a device is available on. | |
enum | idevice_event_type { IDEVICE_DEVICE_ADD = 1, IDEVICE_DEVICE_REMOVE, IDEVICE_DEVICE_PAIRED } |
The event type for device add or removal. | |
Functions | |
void | idevice_set_debug_level (int level) |
Set the level of debugging. More... | |
idevice_error_t | idevice_event_subscribe (idevice_event_cb_t callback, void *user_data) |
Register a callback function that will be called when device add/remove events occur. More... | |
idevice_error_t | idevice_event_unsubscribe (void) |
Release the event callback function that has been registered with idevice_event_subscribe(). More... | |
idevice_error_t | idevice_get_device_list (char ***devices, int *count) |
Get a list of UDIDs of currently available devices (USBMUX devices only). More... | |
idevice_error_t | idevice_device_list_free (char **devices) |
Free a list of device UDIDs. More... | |
idevice_error_t | idevice_get_device_list_extended (idevice_info_t **devices, int *count) |
Get a list of currently available devices. More... | |
idevice_error_t | idevice_device_list_extended_free (idevice_info_t *devices) |
Free an extended device list retrieved through idevice_get_device_list_extended(). More... | |
idevice_error_t | idevice_new (idevice_t *device, const char *udid) |
Creates an idevice_t structure for the device specified by UDID, if the device is available (USBMUX devices only). More... | |
idevice_error_t | idevice_new_with_options (idevice_t *device, const char *udid, enum idevice_options options) |
Creates an idevice_t structure for the device specified by UDID, if the device is available, with the given lookup options. More... | |
idevice_error_t | idevice_free (idevice_t device) |
Cleans up an idevice structure, then frees the structure itself. More... | |
idevice_error_t | idevice_connect (idevice_t device, uint16_t port, idevice_connection_t *connection) |
Set up a connection to the given device. More... | |
idevice_error_t | idevice_disconnect (idevice_connection_t connection) |
Disconnect from the device and clean up the connection structure. More... | |
idevice_error_t | idevice_connection_send (idevice_connection_t connection, const char *data, uint32_t len, uint32_t *sent_bytes) |
Send data to a device via the given connection. More... | |
idevice_error_t | idevice_connection_receive_timeout (idevice_connection_t connection, char *data, uint32_t len, uint32_t *recv_bytes, unsigned int timeout) |
Receive data from a device via the given connection. More... | |
idevice_error_t | idevice_connection_receive (idevice_connection_t connection, char *data, uint32_t len, uint32_t *recv_bytes) |
Receive data from a device via the given connection. More... | |
idevice_error_t | idevice_connection_enable_ssl (idevice_connection_t connection) |
Enables SSL for the given connection. More... | |
idevice_error_t | idevice_connection_disable_ssl (idevice_connection_t connection) |
Disable SSL for the given connection. More... | |
idevice_error_t | idevice_connection_disable_bypass_ssl (idevice_connection_t connection, uint8_t sslBypass) |
Disable bypass SSL for the given connection without sending out terminate messages. More... | |
idevice_error_t | idevice_connection_get_fd (idevice_connection_t connection, int *fd) |
Get the underlying file descriptor for a connection. More... | |
idevice_error_t | idevice_get_handle (idevice_t device, uint32_t *handle) |
Gets the handle or (usbmux device id) of the device. | |
idevice_error_t | idevice_get_udid (idevice_t device, char **udid) |
Gets the unique id for the device. | |
Device/Connection handling and communication.
enum idevice_options |
Options for idevice_new_with_options()
idevice_error_t idevice_connect | ( | idevice_t | device, |
uint16_t | port, | ||
idevice_connection_t * | connection | ||
) |
Set up a connection to the given device.
device | The device to connect to. |
port | The destination port to connect to. |
connection | Pointer to an idevice_connection_t that will be filled with the necessary data of the connection. |
idevice_error_t idevice_connection_disable_bypass_ssl | ( | idevice_connection_t | connection, |
uint8_t | sslBypass | ||
) |
Disable bypass SSL for the given connection without sending out terminate messages.
connection | The connection to disable SSL for. |
sslBypass | if true ssl connection will not be terminated but just cleaned up, allowing plain text data going on underlying connection |
idevice_error_t idevice_connection_disable_ssl | ( | idevice_connection_t | connection | ) |
Disable SSL for the given connection.
connection | The connection to disable SSL for. |
idevice_error_t idevice_connection_enable_ssl | ( | idevice_connection_t | connection | ) |
Enables SSL for the given connection.
connection | The connection to enable SSL for. |
idevice_error_t idevice_connection_get_fd | ( | idevice_connection_t | connection, |
int * | fd | ||
) |
Get the underlying file descriptor for a connection.
connection | The connection to get fd of |
fd | Pointer to an int where the fd is stored |
idevice_error_t idevice_connection_receive | ( | idevice_connection_t | connection, |
char * | data, | ||
uint32_t | len, | ||
uint32_t * | recv_bytes | ||
) |
Receive data from a device via the given connection.
This function is like idevice_connection_receive_timeout, but with a predefined reasonable timeout.
connection | The connection to receive data from. |
data | Buffer that will be filled with the received data. This buffer has to be large enough to hold len bytes. |
len | Buffer size or number of bytes to receive. |
recv_bytes | Number of bytes actually received. |
idevice_error_t idevice_connection_receive_timeout | ( | idevice_connection_t | connection, |
char * | data, | ||
uint32_t | len, | ||
uint32_t * | recv_bytes, | ||
unsigned int | timeout | ||
) |
Receive data from a device via the given connection.
This function will return after the given timeout even if no data has been received.
connection | The connection to receive data from. |
data | Buffer that will be filled with the received data. This buffer has to be large enough to hold len bytes. |
len | Buffer size or number of bytes to receive. |
recv_bytes | Number of bytes actually received. |
timeout | Timeout in milliseconds after which this function should return even if no data has been received. |
idevice_error_t idevice_connection_send | ( | idevice_connection_t | connection, |
const char * | data, | ||
uint32_t | len, | ||
uint32_t * | sent_bytes | ||
) |
Send data to a device via the given connection.
connection | The connection to send data over. |
data | Buffer with data to send. |
len | Size of the buffer to send. |
sent_bytes | Pointer to an uint32_t that will be filled with the number of bytes actually sent. |
idevice_error_t idevice_device_list_extended_free | ( | idevice_info_t * | devices | ) |
Free an extended device list retrieved through idevice_get_device_list_extended().
devices | Device list to free. |
idevice_error_t idevice_device_list_free | ( | char ** | devices | ) |
Free a list of device UDIDs.
devices | List of UDIDs to free. |
idevice_error_t idevice_disconnect | ( | idevice_connection_t | connection | ) |
Disconnect from the device and clean up the connection structure.
connection | The connection to close. |
idevice_error_t idevice_event_subscribe | ( | idevice_event_cb_t | callback, |
void * | user_data | ||
) |
Register a callback function that will be called when device add/remove events occur.
callback | Callback function to call. |
user_data | Application-specific data passed as parameter to the registered callback function. |
idevice_error_t idevice_event_unsubscribe | ( | void | ) |
Release the event callback function that has been registered with idevice_event_subscribe().
idevice_error_t idevice_free | ( | idevice_t | device | ) |
Cleans up an idevice structure, then frees the structure itself.
device | idevice_t to free. |
idevice_error_t idevice_get_device_list | ( | char *** | devices, |
int * | count | ||
) |
Get a list of UDIDs of currently available devices (USBMUX devices only).
devices | List of UDIDs of devices that are currently available. This list is terminated by a NULL pointer. |
count | Number of devices found. |
idevice_error_t idevice_get_device_list_extended | ( | idevice_info_t ** | devices, |
int * | count | ||
) |
Get a list of currently available devices.
devices | List of idevice_info_t records with device information. This list is terminated by a NULL pointer. |
count | Number of devices included in the list. |
idevice_error_t idevice_new | ( | idevice_t * | device, |
const char * | udid | ||
) |
Creates an idevice_t structure for the device specified by UDID, if the device is available (USBMUX devices only).
device | Upon calling this function, a pointer to a location of type idevice_t. On successful return, this location will be populated. |
udid | The UDID to match. |
idevice_error_t idevice_new_with_options | ( | idevice_t * | device, |
const char * | udid, | ||
enum idevice_options | options | ||
) |
Creates an idevice_t structure for the device specified by UDID, if the device is available, with the given lookup options.
device | Upon calling this function, a pointer to a location of type idevice_t. On successful return, this location will be populated. |
udid | The UDID to match. |
options | Specifies what connection types should be considered when looking up devices. Accepts bitwise or'ed values of idevice_options. If 0 (no option) is specified it will default to IDEVICE_LOOKUP_USBMUX. To lookup both USB and network-connected devices, pass IDEVICE_LOOKUP_USBMUX | IDEVICE_LOOKUP_NETWORK. If a device is available both via USBMUX and network, it will select the USB connection. This behavior can be changed by adding IDEVICE_LOOKUP_PREFER_NETWORK to the options in which case it will select the network connection. |
void idevice_set_debug_level | ( | int | level | ) |
Set the level of debugging.
level | Set to 0 for no debug output or 1 to enable debug output. |