summaryrefslogtreecommitdiffstats
path: root/include/libimobiledevice/sbservices.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libimobiledevice/sbservices.h')
-rw-r--r--include/libimobiledevice/sbservices.h155
1 files changed, 135 insertions, 20 deletions
diff --git a/include/libimobiledevice/sbservices.h b/include/libimobiledevice/sbservices.h
index 616168e..7435947 100644
--- a/include/libimobiledevice/sbservices.h
+++ b/include/libimobiledevice/sbservices.h
@@ -3,7 +3,8 @@
3 * @brief Manage SpringBoard icons and retrieve icon images. 3 * @brief Manage SpringBoard icons and retrieve icon images.
4 * \internal 4 * \internal
5 * 5 *
6 * Copyright (c) 2009 Nikias Bassen All Rights Reserved. 6 * Copyright (c) 2010-2014 Martin Szulecki All Rights Reserved.
7 * Copyright (c) 2009-2010 Nikias Bassen All Rights Reserved.
7 * 8 *
8 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public 10 * modify it under the terms of the GNU Lesser General Public
@@ -20,38 +21,152 @@
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 */ 22 */
22 23
23#ifndef SB_SERVICES_H 24#ifndef ISB_SERVICES_H
24#define SB_SERVICES_H 25#define ISB_SERVICES_H
25 26
26#ifdef __cplusplus 27#ifdef __cplusplus
27extern "C" { 28extern "C" {
28#endif 29#endif
29 30
30#include <libimobiledevice/libimobiledevice.h> 31#include <libimobiledevice/libimobiledevice.h>
32#include <libimobiledevice/lockdown.h>
31 33
32/** @name Error Codes */ 34/** Service identifier passed to lockdownd_start_service() to start the springboardservices service */
33/*@{*/ 35#define SBSERVICES_SERVICE_NAME "com.apple.springboardservices"
34#define SBSERVICES_E_SUCCESS 0
35#define SBSERVICES_E_INVALID_ARG -1
36#define SBSERVICES_E_PLIST_ERROR -2
37#define SBSERVICES_E_CONN_FAILED -3
38 36
39#define SBSERVICES_E_UNKNOWN_ERROR -256 37/** Error Codes */
40/*@}*/ 38typedef enum {
39 SBSERVICES_E_SUCCESS = 0,
40 SBSERVICES_E_INVALID_ARG = -1,
41 SBSERVICES_E_PLIST_ERROR = -2,
42 SBSERVICES_E_CONN_FAILED = -3,
43 SBSERVICES_E_UNKNOWN_ERROR = -256
44} sbservices_error_t;
41 45
42/** Represents an error code. */ 46/** Orientation of the user interface on the device */
43typedef int16_t sbservices_error_t; 47typedef enum {
48 SBSERVICES_INTERFACE_ORIENTATION_UNKNOWN = 0,
49 SBSERVICES_INTERFACE_ORIENTATION_PORTRAIT = 1,
50 SBSERVICES_INTERFACE_ORIENTATION_PORTRAIT_UPSIDE_DOWN = 2,
51 SBSERVICES_INTERFACE_ORIENTATION_LANDSCAPE_RIGHT = 3,
52 SBSERVICES_INTERFACE_ORIENTATION_LANDSCAPE_LEFT = 4
53} sbservices_interface_orientation_t;
44 54
45typedef struct sbservices_client_private sbservices_client_private; 55typedef struct sbservices_client_private sbservices_client_private; /**< \private */
46typedef sbservices_client_private *sbservices_client_t; /**< The client handle. */ 56typedef sbservices_client_private *sbservices_client_t; /**< The client handle. */
47 57
48/* Interface */ 58/* Interface */
49sbservices_error_t sbservices_client_new(idevice_t device, uint16_t port, sbservices_client_t *client); 59
50sbservices_error_t sbservices_client_free(sbservices_client_t client); 60/**
51sbservices_error_t sbservices_get_icon_state(sbservices_client_t client, plist_t *state, const char *format_version); 61 * Connects to the springboardservices service on the specified device.
52sbservices_error_t sbservices_set_icon_state(sbservices_client_t client, plist_t newstate); 62 *
53sbservices_error_t sbservices_get_icon_pngdata(sbservices_client_t client, const char *bundleId, char **pngdata, uint64_t *pngsize); 63 * @param device The device to connect to.
54sbservices_error_t sbservices_get_home_screen_wallpaper_pngdata(sbservices_client_t client, char **pngdata, uint64_t *pngsize); 64 * @param service The service descriptor returned by lockdownd_start_service.
65 * @param client Pointer that will point to a newly allocated
66 * sbservices_client_t upon successful return.
67 *
68 * @return SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
69 * client is NULL, or an SBSERVICES_E_* error code otherwise.
70 */
71LIBIMOBILEDEVICE_API sbservices_error_t sbservices_client_new(idevice_t device, lockdownd_service_descriptor_t service, sbservices_client_t *client);
72
73/**
74 * Starts a new sbservices service on the specified device and connects to it.
75 *
76 * @param device The device to connect to.
77 * @param client Pointer that will point to a newly allocated
78 * sbservices_client_t upon successful return. Must be freed using
79 * sbservices_client_free() after use.
80 * @param label The label to use for communication. Usually the program name.
81 * Pass NULL to disable sending the label in requests to lockdownd.
82 *
83 * @return SBSERVICES_E_SUCCESS on success, or an SBSERVICES_E_* error
84 * code otherwise.
85 */
86LIBIMOBILEDEVICE_API sbservices_error_t sbservices_client_start_service(idevice_t device, sbservices_client_t* client, const char* label);
87
88/**
89 * Disconnects an sbservices client from the device and frees up the
90 * sbservices client data.
91 *
92 * @param client The sbservices client to disconnect and free.
93 *
94 * @return SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
95 * client is NULL, or an SBSERVICES_E_* error code otherwise.
96 */
97LIBIMOBILEDEVICE_API sbservices_error_t sbservices_client_free(sbservices_client_t client);
98
99
100/**
101 * Gets the icon state of the connected device.
102 *
103 * @param client The connected sbservices client to use.
104 * @param state Pointer that will point to a newly allocated plist containing
105 * the current icon state. It is up to the caller to free the memory.
106 * @param format_version A string to be passed as formatVersion along with
107 * the request, or NULL if no formatVersion should be passed. This is only
108 * supported since iOS 4.0 so for older firmware versions this must be set
109 * to NULL.
110 *
111 * @return SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
112 * client or state is invalid, or an SBSERVICES_E_* error code otherwise.
113 */
114LIBIMOBILEDEVICE_API sbservices_error_t sbservices_get_icon_state(sbservices_client_t client, plist_t *state, const char *format_version);
115
116/**
117 * Sets the icon state of the connected device.
118 *
119 * @param client The connected sbservices client to use.
120 * @param newstate A plist containing the new iconstate.
121 *
122 * @return SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
123 * client or newstate is NULL, or an SBSERVICES_E_* error code otherwise.
124 */
125LIBIMOBILEDEVICE_API sbservices_error_t sbservices_set_icon_state(sbservices_client_t client, plist_t newstate);
126
127/**
128 * Get the icon of the specified app as PNG data.
129 *
130 * @param client The connected sbservices client to use.
131 * @param bundleId The bundle identifier of the app to retrieve the icon for.
132 * @param pngdata Pointer that will point to a newly allocated buffer
133 * containing the PNG data upon successful return. It is up to the caller
134 * to free the memory.
135 * @param pngsize Pointer to a uint64_t that will be set to the size of the
136 * buffer pngdata points to upon successful return.
137 *
138 * @return SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
139 * client, bundleId, or pngdata are invalid, or an SBSERVICES_E_* error
140 * code otherwise.
141 */
142LIBIMOBILEDEVICE_API sbservices_error_t sbservices_get_icon_pngdata(sbservices_client_t client, const char *bundleId, char **pngdata, uint64_t *pngsize);
143
144/**
145 * Gets the interface orientation of the device.
146 *
147 * @param client The connected sbservices client to use.
148 * @param interface_orientation The interface orientation upon successful return.
149 *
150 * @return SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
151 * client or state is invalid, or an SBSERVICES_E_* error code otherwise.
152 */
153LIBIMOBILEDEVICE_API sbservices_error_t sbservices_get_interface_orientation(sbservices_client_t client, sbservices_interface_orientation_t* interface_orientation);
154
155/**
156 * Get the home screen wallpaper as PNG data.
157 *
158 * @param client The connected sbservices client to use.
159 * @param pngdata Pointer that will point to a newly allocated buffer
160 * containing the PNG data upon successful return. It is up to the caller
161 * to free the memory.
162 * @param pngsize Pointer to a uint64_t that will be set to the size of the
163 * buffer pngdata points to upon successful return.
164 *
165 * @return SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
166 * client or pngdata are invalid, or an SBSERVICES_E_* error
167 * code otherwise.
168 */
169LIBIMOBILEDEVICE_API sbservices_error_t sbservices_get_home_screen_wallpaper_pngdata(sbservices_client_t client, char **pngdata, uint64_t *pngsize);
55 170
56#ifdef __cplusplus 171#ifdef __cplusplus
57} 172}