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 @@
+#!python
+#cython: language_level=3str
+
+cimport plist
+
+from libc.stdint cimport *
+
+cdef extern from "pyerrors.h":
+ ctypedef class __builtin__.Exception [object PyBaseExceptionObject]:
+ pass
+
+cdef class BaseError(Exception):
+ cdef dict _lookup_table
+ cdef int16_t _c_errcode
+
+cdef class Base:
+ cdef inline int handle_error(self, int16_t ret) except -1
+ cdef BaseError _error(self, int16_t ret)
+
+cdef class iDeviceError(BaseError): pass
+
+cdef extern from "libimobiledevice/libimobiledevice.h":
+ cdef struct idevice_private:
+ pass
+ ctypedef idevice_private* idevice_t
+ cdef struct idevice_connection_private:
+ pass
+ ctypedef idevice_connection_private* idevice_connection_t
+ cdef enum idevice_connection_type:
+ CONNECTION_USBMUXD = 1
+ CONNECTION_NETWORK
+ cdef enum idevice_event_type:
+ IDEVICE_DEVICE_ADD = 1
+ IDEVICE_DEVICE_REMOVE
+ IDEVICE_DEVICE_PAIRED
+ ctypedef struct idevice_event_t:
+ idevice_event_type event
+ char *udid
+ idevice_connection_type conn_type
+ ctypedef idevice_event_t* const_idevice_event_t "const idevice_event_t*"
+
+cdef class iDeviceEvent:
+ cdef const_idevice_event_t _c_event
+
+cdef class iDeviceConnection(Base):
+ cdef idevice_connection_t _c_connection
+
+ cpdef bytes receive_timeout(self, uint32_t max_len, unsigned int timeout)
+ cpdef bytes receive(self, max_len)
+ cpdef disconnect(self)
+
+cdef class iDevice(Base):
+ cdef idevice_t _c_dev
+
+ cpdef iDeviceConnection connect(self, uint16_t port)
+
+cdef class BaseService(Base):
+ pass
+
+cdef class PropertyListService(BaseService):
+ cpdef send(self, plist.Node node)
+ cpdef object receive(self)
+ cpdef object receive_with_timeout(self, int timeout_ms)
+ cdef int16_t _send(self, plist.plist_t node)
+ cdef int16_t _receive(self, plist.plist_t* c_node)
+ cdef int16_t _receive_with_timeout(self, plist.plist_t* c_node, int timeout_ms)
+
+cdef extern from "libimobiledevice/lockdown.h":
+ cdef struct lockdownd_client_private:
+ pass
+ ctypedef lockdownd_client_private *lockdownd_client_t
+ cdef struct lockdownd_pair_record:
+ char *device_certificate
+ char *host_certificate
+ char *host_id
+ char *root_certificate
+ ctypedef lockdownd_pair_record *lockdownd_pair_record_t
+ cdef struct lockdownd_service_descriptor:
+ uint16_t port
+ uint8_t ssl_enabled
+ ctypedef lockdownd_service_descriptor *lockdownd_service_descriptor_t
+
+cdef class LockdownError(BaseError): pass
+
+cdef class LockdownPairRecord:
+ cdef lockdownd_pair_record_t _c_record
+
+cdef class LockdownServiceDescriptor(Base):
+ cdef lockdownd_service_descriptor_t _c_service_descriptor
+
+cdef class LockdownClient(PropertyListService):
+ cdef lockdownd_client_t _c_client
+ cdef readonly iDevice device
+
+ cpdef bytes query_type(self)
+ cpdef plist.Node get_value(self, bytes domain=*, bytes key=*)
+ cpdef set_value(self, bytes domain, bytes key, object value)
+ cpdef remove_value(self, bytes domain, bytes key)
+ cpdef object start_service(self, object service)
+ cpdef object get_service_client(self, object service_class)
+ cpdef tuple start_session(self, bytes host_id)
+ cpdef stop_session(self, bytes session_id)
+ cpdef pair(self, object pair_record=*)
+ cpdef validate_pair(self, object pair_record=*)
+ cpdef unpair(self, object pair_record=*)
+ cpdef activate(self, plist.Node activation_record)
+ cpdef deactivate(self)
+ cpdef enter_recovery(self)
+ cpdef goodbye(self)
+ cpdef list get_sync_data_classes(self)