summaryrefslogtreecommitdiffstats
path: root/cython/imobiledevice.pxd
diff options
context:
space:
mode:
Diffstat (limited to 'cython/imobiledevice.pxd')
-rw-r--r--cython/imobiledevice.pxd110
1 files changed, 110 insertions, 0 deletions
diff --git a/cython/imobiledevice.pxd b/cython/imobiledevice.pxd
new file mode 100644
index 0000000..238df68
--- /dev/null
+++ b/cython/imobiledevice.pxd
@@ -0,0 +1,110 @@
1#!python
2#cython: language_level=3str
3
4cimport plist
5
6from libc.stdint cimport *
7
8cdef extern from "pyerrors.h":
9 ctypedef class __builtin__.Exception [object PyBaseExceptionObject]:
10 pass
11
12cdef class BaseError(Exception):
13 cdef dict _lookup_table
14 cdef int16_t _c_errcode
15
16cdef class Base:
17 cdef inline int handle_error(self, int16_t ret) except -1
18 cdef BaseError _error(self, int16_t ret)
19
20cdef class iDeviceError(BaseError): pass
21
22cdef extern from "libimobiledevice/libimobiledevice.h":
23 cdef struct idevice_private:
24 pass
25 ctypedef idevice_private* idevice_t
26 cdef struct idevice_connection_private:
27 pass
28 ctypedef idevice_connection_private* idevice_connection_t
29 cdef enum idevice_connection_type:
30 CONNECTION_USBMUXD = 1
31 CONNECTION_NETWORK
32 cdef enum idevice_event_type:
33 IDEVICE_DEVICE_ADD = 1
34 IDEVICE_DEVICE_REMOVE
35 IDEVICE_DEVICE_PAIRED
36 ctypedef struct idevice_event_t:
37 idevice_event_type event
38 char *udid
39 idevice_connection_type conn_type
40 ctypedef idevice_event_t* const_idevice_event_t "const idevice_event_t*"
41
42cdef class iDeviceEvent:
43 cdef const_idevice_event_t _c_event
44
45cdef class iDeviceConnection(Base):
46 cdef idevice_connection_t _c_connection
47
48 cpdef bytes receive_timeout(self, uint32_t max_len, unsigned int timeout)
49 cpdef bytes receive(self, max_len)
50 cpdef disconnect(self)
51
52cdef class iDevice(Base):
53 cdef idevice_t _c_dev
54
55 cpdef iDeviceConnection connect(self, uint16_t port)
56
57cdef class BaseService(Base):
58 pass
59
60cdef class PropertyListService(BaseService):
61 cpdef send(self, plist.Node node)
62 cpdef object receive(self)
63 cpdef object receive_with_timeout(self, int timeout_ms)
64 cdef int16_t _send(self, plist.plist_t node)
65 cdef int16_t _receive(self, plist.plist_t* c_node)
66 cdef int16_t _receive_with_timeout(self, plist.plist_t* c_node, int timeout_ms)
67
68cdef extern from "libimobiledevice/lockdown.h":
69 cdef struct lockdownd_client_private:
70 pass
71 ctypedef lockdownd_client_private *lockdownd_client_t
72 cdef struct lockdownd_pair_record:
73 char *device_certificate
74 char *host_certificate
75 char *host_id
76 char *root_certificate
77 ctypedef lockdownd_pair_record *lockdownd_pair_record_t
78 cdef struct lockdownd_service_descriptor:
79 uint16_t port
80 uint8_t ssl_enabled
81 ctypedef lockdownd_service_descriptor *lockdownd_service_descriptor_t
82
83cdef class LockdownError(BaseError): pass
84
85cdef class LockdownPairRecord:
86 cdef lockdownd_pair_record_t _c_record
87
88cdef class LockdownServiceDescriptor(Base):
89 cdef lockdownd_service_descriptor_t _c_service_descriptor
90
91cdef class LockdownClient(PropertyListService):
92 cdef lockdownd_client_t _c_client
93 cdef readonly iDevice device
94
95 cpdef bytes query_type(self)
96 cpdef plist.Node get_value(self, bytes domain=*, bytes key=*)
97 cpdef set_value(self, bytes domain, bytes key, object value)
98 cpdef remove_value(self, bytes domain, bytes key)
99 cpdef object start_service(self, object service)
100 cpdef object get_service_client(self, object service_class)
101 cpdef tuple start_session(self, bytes host_id)
102 cpdef stop_session(self, bytes session_id)
103 cpdef pair(self, object pair_record=*)
104 cpdef validate_pair(self, object pair_record=*)
105 cpdef unpair(self, object pair_record=*)
106 cpdef activate(self, plist.Node activation_record)
107 cpdef deactivate(self)
108 cpdef enter_recovery(self)
109 cpdef goodbye(self)
110 cpdef list get_sync_data_classes(self)