From b82fcb5e6190183179673a92f487b37f3b9cc5f1 Mon Sep 17 00:00:00 2001 From: Martin Szulecki Date: Wed, 9 Jan 2013 15:13:33 +0100 Subject: dfu: Implement dfu_check_device() helper --- src/dfu.c | 21 +++++++++++++++++++++ src/dfu.h | 1 + 2 files changed, 22 insertions(+) diff --git a/src/dfu.c b/src/dfu.c index 895a347..e93030a 100644 --- a/src/dfu.c +++ b/src/dfu.c @@ -107,6 +107,27 @@ int dfu_check_mode(struct idevicerestore_client_t* client, int* mode) { return 0; } +int dfu_check_device(struct idevicerestore_client_t* client) { + irecv_client_t dfu = NULL; + irecv_error_t dfu_error = IRECV_E_SUCCESS; + irecv_device_t device = NULL; + + irecv_init(); + dfu_error = irecv_open(&dfu, client->ecid); + if (dfu_error != IRECV_E_SUCCESS) { + return -1; + } + + dfu_error = irecv_get_device(dfu, &device); + if (dfu_error != IRECV_E_SUCCESS) { + return -1; + } + + irecv_close(dfu); + + return device->index; +} + int dfu_send_buffer(struct idevicerestore_client_t* client, char* buffer, uint32_t size) { irecv_error_t err = 0; diff --git a/src/dfu.h b/src/dfu.h index 8df31f3..2d4627c 100644 --- a/src/dfu.h +++ b/src/dfu.h @@ -38,6 +38,7 @@ struct dfu_client_t { int dfu_client_new(struct idevicerestore_client_t* client); void dfu_client_free(struct idevicerestore_client_t* client); int dfu_check_mode(struct idevicerestore_client_t* client, int* mode); +int dfu_check_device(struct idevicerestore_client_t* client); int dfu_send_buffer(struct idevicerestore_client_t* client, char* buffer, uint32_t size); int dfu_send_component(struct idevicerestore_client_t* client, plist_t build_identity, const char* component); int dfu_get_cpid(struct idevicerestore_client_t* client, unsigned int* cpid); -- cgit v1.1-32-gdbae