diff options
Diffstat (limited to 'include/libimobiledevice/screenshotr.h')
| -rw-r--r-- | include/libimobiledevice/screenshotr.h | 94 |
1 files changed, 77 insertions, 17 deletions
diff --git a/include/libimobiledevice/screenshotr.h b/include/libimobiledevice/screenshotr.h index b3669ee..db3c969 100644 --- a/include/libimobiledevice/screenshotr.h +++ b/include/libimobiledevice/screenshotr.h | |||
| @@ -4,7 +4,8 @@ | |||
| 4 | * @note Requires a mounted developer image. | 4 | * @note Requires a mounted developer image. |
| 5 | * \internal | 5 | * \internal |
| 6 | * | 6 | * |
| 7 | * Copyright (c) 2010 Nikias Bassen All Rights Reserved. | 7 | * Copyright (c) 2010-2019 Nikias Bassen, All Rights Reserved. |
| 8 | * Copyright (c) 2010-2014 Martin Szulecki, All Rights Reserved. | ||
| 8 | * | 9 | * |
| 9 | * This library is free software; you can redistribute it and/or | 10 | * This library is free software; you can redistribute it and/or |
| 10 | * modify it under the terms of the GNU Lesser General Public | 11 | * modify it under the terms of the GNU Lesser General Public |
| @@ -29,27 +30,86 @@ extern "C" { | |||
| 29 | #endif | 30 | #endif |
| 30 | 31 | ||
| 31 | #include <libimobiledevice/libimobiledevice.h> | 32 | #include <libimobiledevice/libimobiledevice.h> |
| 33 | #include <libimobiledevice/lockdown.h> | ||
| 32 | 34 | ||
| 33 | /** @name Error Codes */ | 35 | /** Service identifier passed to lockdownd_start_service() to start the screenshotr service */ |
| 34 | /*@{*/ | 36 | #define SCREENSHOTR_SERVICE_NAME "com.apple.mobile.screenshotr" |
| 35 | #define SCREENSHOTR_E_SUCCESS 0 | ||
| 36 | #define SCREENSHOTR_E_INVALID_ARG -1 | ||
| 37 | #define SCREENSHOTR_E_PLIST_ERROR -2 | ||
| 38 | #define SCREENSHOTR_E_MUX_ERROR -3 | ||
| 39 | #define SCREENSHOTR_E_BAD_VERSION -4 | ||
| 40 | 37 | ||
| 41 | #define SCREENSHOTR_E_UNKNOWN_ERROR -256 | 38 | /** Error Codes */ |
| 42 | /*@}*/ | 39 | typedef enum { |
| 40 | SCREENSHOTR_E_SUCCESS = 0, | ||
| 41 | SCREENSHOTR_E_INVALID_ARG = -1, | ||
| 42 | SCREENSHOTR_E_PLIST_ERROR = -2, | ||
| 43 | SCREENSHOTR_E_MUX_ERROR = -3, | ||
| 44 | SCREENSHOTR_E_SSL_ERROR = -4, | ||
| 45 | SCREENSHOTR_E_RECEIVE_TIMEOUT = -5, | ||
| 46 | SCREENSHOTR_E_BAD_VERSION = -6, | ||
| 47 | SCREENSHOTR_E_UNKNOWN_ERROR = -256 | ||
| 48 | } screenshotr_error_t; | ||
| 43 | 49 | ||
| 44 | /** Represents an error code. */ | 50 | typedef struct screenshotr_client_private screenshotr_client_private; /**< \private */ |
| 45 | typedef int16_t screenshotr_error_t; | ||
| 46 | |||
| 47 | typedef struct screenshotr_client_private screenshotr_client_private; | ||
| 48 | typedef screenshotr_client_private *screenshotr_client_t; /**< The client handle. */ | 51 | typedef screenshotr_client_private *screenshotr_client_t; /**< The client handle. */ |
| 49 | 52 | ||
| 50 | screenshotr_error_t screenshotr_client_new(idevice_t device, uint16_t port, screenshotr_client_t * client); | 53 | |
| 51 | screenshotr_error_t screenshotr_client_free(screenshotr_client_t client); | 54 | /** |
| 52 | screenshotr_error_t screenshotr_take_screenshot(screenshotr_client_t client, char **imgdata, uint64_t *imgsize); | 55 | * Connects to the screenshotr service on the specified device. |
| 56 | * | ||
| 57 | * @param device The device to connect to. | ||
| 58 | * @param service The service descriptor returned by lockdownd_start_service. | ||
| 59 | * @param client Pointer that will be set to a newly allocated | ||
| 60 | * screenshotr_client_t upon successful return. | ||
| 61 | * | ||
| 62 | * @note This service is only available if a developer disk image has been | ||
| 63 | * mounted. | ||
| 64 | * | ||
| 65 | * @return SCREENSHOTR_E_SUCCESS on success, SCREENSHOTR_E_INVALID ARG if one | ||
| 66 | * or more parameters are invalid, or SCREENSHOTR_E_CONN_FAILED if the | ||
| 67 | * connection to the device could not be established. | ||
| 68 | */ | ||
| 69 | LIBIMOBILEDEVICE_API screenshotr_error_t screenshotr_client_new(idevice_t device, lockdownd_service_descriptor_t service, screenshotr_client_t * client); | ||
| 70 | |||
| 71 | /** | ||
| 72 | * Starts a new screenshotr service on the specified device and connects to it. | ||
| 73 | * | ||
| 74 | * @param device The device to connect to. | ||
| 75 | * @param client Pointer that will point to a newly allocated | ||
| 76 | * screenshotr_client_t upon successful return. Must be freed using | ||
| 77 | * screenshotr_client_free() after use. | ||
| 78 | * @param label The label to use for communication. Usually the program name. | ||
| 79 | * Pass NULL to disable sending the label in requests to lockdownd. | ||
| 80 | * | ||
| 81 | * @return SCREENSHOTR_E_SUCCESS on success, or an SCREENSHOTR_E_* error | ||
| 82 | * code otherwise. | ||
| 83 | */ | ||
| 84 | LIBIMOBILEDEVICE_API screenshotr_error_t screenshotr_client_start_service(idevice_t device, screenshotr_client_t* client, const char* label); | ||
| 85 | |||
| 86 | /** | ||
| 87 | * Disconnects a screenshotr client from the device and frees up the | ||
| 88 | * screenshotr client data. | ||
| 89 | * | ||
| 90 | * @param client The screenshotr client to disconnect and free. | ||
| 91 | * | ||
| 92 | * @return SCREENSHOTR_E_SUCCESS on success, or SCREENSHOTR_E_INVALID_ARG | ||
| 93 | * if client is NULL. | ||
| 94 | */ | ||
| 95 | LIBIMOBILEDEVICE_API screenshotr_error_t screenshotr_client_free(screenshotr_client_t client); | ||
| 96 | |||
| 97 | |||
| 98 | /** | ||
| 99 | * Get a screen shot from the connected device. | ||
| 100 | * | ||
| 101 | * @param client The connection screenshotr service client. | ||
| 102 | * @param imgdata Pointer that will point to a newly allocated buffer | ||
| 103 | * containing TIFF image data upon successful return. It is up to the | ||
| 104 | * caller to free the memory. | ||
| 105 | * @param imgsize Pointer to a uint64_t that will be set to the size of the | ||
| 106 | * buffer imgdata points to upon successful return. | ||
| 107 | * | ||
| 108 | * @return SCREENSHOTR_E_SUCCESS on success, SCREENSHOTR_E_INVALID_ARG if | ||
| 109 | * one or more parameters are invalid, or another error code if an | ||
| 110 | * error occurred. | ||
| 111 | */ | ||
| 112 | LIBIMOBILEDEVICE_API screenshotr_error_t screenshotr_take_screenshot(screenshotr_client_t client, char **imgdata, uint64_t *imgsize); | ||
| 53 | 113 | ||
| 54 | #ifdef __cplusplus | 114 | #ifdef __cplusplus |
| 55 | } | 115 | } |
