diff options
Diffstat (limited to 'gusb/gusb-device.c')
-rw-r--r-- | gusb/gusb-device.c | 221 |
1 files changed, 125 insertions, 96 deletions
diff --git a/gusb/gusb-device.c b/gusb/gusb-device.c index 576b148..add6352 100644 --- a/gusb/gusb-device.c +++ b/gusb/gusb-device.c @@ -30,13 +30,13 @@ * * Private #GUsbDevice data **/ -struct _GUsbDevicePrivate { +typedef struct { gchar *platform_id; GUsbContext *context; libusb_device *device; libusb_device_handle *handle; struct libusb_device_descriptor desc; -}; +} GUsbDevicePrivate; enum { PROP_0, PROP_LIBUSB_DEVICE, PROP_CONTEXT, PROP_PLATFORM_ID, N_PROPERTIES }; @@ -47,12 +47,15 @@ static GParamSpec *pspecs[N_PROPERTIES] = { static void g_usb_device_initable_iface_init(GInitableIface *iface); -G_DEFINE_TYPE_WITH_CODE(GUsbDevice, - g_usb_device, - G_TYPE_OBJECT, - G_ADD_PRIVATE(GUsbDevice) - G_IMPLEMENT_INTERFACE(G_TYPE_INITABLE, - g_usb_device_initable_iface_init)) +G_DEFINE_TYPE_EXTENDED(GUsbDevice, + g_usb_device, + G_TYPE_OBJECT, + 0, + G_ADD_PRIVATE(GUsbDevice) + G_IMPLEMENT_INTERFACE(G_TYPE_INITABLE, + g_usb_device_initable_iface_init)); + +#define GET_PRIVATE(o) (g_usb_device_get_instance_private(o)) /* clang-format off */ /** @@ -69,7 +72,7 @@ static void g_usb_device_finalize(GObject *object) { GUsbDevice *device = G_USB_DEVICE(object); - GUsbDevicePrivate *priv = device->priv; + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_free(priv->platform_id); @@ -80,7 +83,7 @@ static void g_usb_device_dispose(GObject *object) { GUsbDevice *device = G_USB_DEVICE(object); - GUsbDevicePrivate *priv = device->priv; + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_clear_pointer(&priv->device, libusb_unref_device); g_clear_object(&priv->context); @@ -92,7 +95,7 @@ static void g_usb_device_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GUsbDevice *device = G_USB_DEVICE(object); - GUsbDevicePrivate *priv = device->priv; + GUsbDevicePrivate *priv = GET_PRIVATE(device); switch (prop_id) { case PROP_LIBUSB_DEVICE: @@ -107,7 +110,7 @@ g_usb_device_get_property(GObject *object, guint prop_id, GValue *value, GParamS static void set_libusb_device(GUsbDevice *device, struct libusb_device *dev) { - GUsbDevicePrivate *priv = device->priv; + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_clear_pointer(&priv->device, libusb_unref_device); @@ -119,7 +122,7 @@ static void g_usb_device_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GUsbDevice *device = G_USB_DEVICE(object); - GUsbDevicePrivate *priv = device->priv; + GUsbDevicePrivate *priv = GET_PRIVATE(device); switch (prop_id) { case PROP_LIBUSB_DEVICE: @@ -144,7 +147,7 @@ g_usb_device_constructed(GObject *object) GUsbDevicePrivate *priv; gint rc; - priv = device->priv; + priv = GET_PRIVATE(device); if (!priv->device) g_error("constructed without a libusb_device"); @@ -200,7 +203,6 @@ g_usb_device_class_init(GUsbDeviceClass *klass) static void g_usb_device_init(GUsbDevice *device) { - device->priv = g_usb_device_get_instance_private(device); } /* not defined in FreeBSD */ @@ -250,7 +252,7 @@ g_usb_device_initable_init(GInitable *initable, GCancellable *cancellable, GErro GUsbDevicePrivate *priv; gint rc; - priv = device->priv; + priv = GET_PRIVATE(device); if (priv->device == NULL) { g_set_error_literal(error, @@ -313,7 +315,8 @@ _g_usb_device_new(GUsbContext *context, libusb_device *device, GError **error) libusb_device * _g_usb_device_get_device(GUsbDevice *device) { - return device->priv->device; + GUsbDevicePrivate *priv = GET_PRIVATE(device); + return priv->device; } static gboolean @@ -400,9 +403,10 @@ g_usb_device_async_not_open_error(GUsbDevice *device, gboolean _g_usb_device_open_internal(GUsbDevice *device, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); gint rc; - if (device->priv->handle != NULL) { + if (priv->handle != NULL) { g_set_error(error, G_USB_DEVICE_ERROR, G_USB_DEVICE_ERROR_ALREADY_OPEN, @@ -413,7 +417,7 @@ _g_usb_device_open_internal(GUsbDevice *device, GError **error) } /* open device */ - rc = libusb_open(device->priv->device, &device->priv->handle); + rc = libusb_open(priv->device, &priv->handle); return g_usb_device_libusb_error_to_gerror(device, rc, error); } @@ -433,11 +437,13 @@ _g_usb_device_open_internal(GUsbDevice *device, GError **error) gboolean g_usb_device_open(GUsbDevice *device, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); + g_return_val_if_fail(G_USB_IS_DEVICE(device), FALSE); g_return_val_if_fail(error == NULL || *error == NULL, FALSE); /* ignore */ - if (g_usb_context_get_flags(device->priv->context) & G_USB_CONTEXT_FLAGS_AUTO_OPEN_DEVICES) + if (g_usb_context_get_flags(priv->context) & G_USB_CONTEXT_FLAGS_AUTO_OPEN_DEVICES) return TRUE; /* open */ @@ -465,12 +471,13 @@ g_usb_device_get_custom_index(GUsbDevice *device, guint8 protocol_id, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); const struct libusb_interface_descriptor *ifp; gint rc; guint8 idx = 0x00; struct libusb_config_descriptor *config; - rc = libusb_get_active_config_descriptor(device->priv->device, &config); + rc = libusb_get_active_config_descriptor(priv->device, &config); if (!g_usb_device_libusb_error_to_gerror(device, rc, error)) return 0x00; @@ -527,6 +534,7 @@ g_usb_device_get_interface(GUsbDevice *device, guint8 protocol_id, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); const struct libusb_interface_descriptor *ifp; gint rc; GUsbInterface *interface = NULL; @@ -535,7 +543,7 @@ g_usb_device_get_interface(GUsbDevice *device, g_return_val_if_fail(G_USB_IS_DEVICE(device), NULL); g_return_val_if_fail(error == NULL || *error == NULL, NULL); - rc = libusb_get_active_config_descriptor(device->priv->device, &config); + rc = libusb_get_active_config_descriptor(priv->device, &config); if (!g_usb_device_libusb_error_to_gerror(device, rc, error)) return NULL; @@ -583,6 +591,7 @@ g_usb_device_get_interface(GUsbDevice *device, GPtrArray * g_usb_device_get_interfaces(GUsbDevice *device, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); const struct libusb_interface_descriptor *ifp; gint rc; struct libusb_config_descriptor *config; @@ -591,7 +600,7 @@ g_usb_device_get_interfaces(GUsbDevice *device, GError **error) g_return_val_if_fail(G_USB_IS_DEVICE(device), NULL); g_return_val_if_fail(error == NULL || *error == NULL, NULL); - rc = libusb_get_active_config_descriptor(device->priv->device, &config); + rc = libusb_get_active_config_descriptor(priv->device, &config); if (!g_usb_device_libusb_error_to_gerror(device, rc, error)) return NULL; @@ -627,6 +636,7 @@ g_usb_device_get_interfaces(GUsbDevice *device, GError **error) GUsbBosDescriptor * g_usb_device_get_bos_descriptor(GUsbDevice *device, guint8 capability, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); gint rc; guint8 num_device_caps; GUsbBosDescriptor *bos_descriptor = NULL; @@ -635,7 +645,7 @@ g_usb_device_get_bos_descriptor(GUsbDevice *device, guint8 capability, GError ** g_return_val_if_fail(G_USB_IS_DEVICE(device), NULL); g_return_val_if_fail(error == NULL || *error == NULL, NULL); - rc = libusb_get_bos_descriptor(device->priv->handle, &bos); + rc = libusb_get_bos_descriptor(priv->handle, &bos); if (!g_usb_device_libusb_error_to_gerror(device, rc, error)) return NULL; @@ -680,6 +690,7 @@ g_usb_device_get_bos_descriptor(GUsbDevice *device, guint8 capability, GError ** GPtrArray * g_usb_device_get_bos_descriptors(GUsbDevice *device, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); gint rc; guint8 num_device_caps; struct libusb_bos_descriptor *bos = NULL; @@ -688,7 +699,7 @@ g_usb_device_get_bos_descriptors(GUsbDevice *device, GError **error) g_return_val_if_fail(G_USB_IS_DEVICE(device), NULL); g_return_val_if_fail(error == NULL || *error == NULL, NULL); - rc = libusb_get_bos_descriptor(device->priv->handle, &bos); + rc = libusb_get_bos_descriptor(priv->handle, &bos); if (!g_usb_device_libusb_error_to_gerror(device, rc, error)) return NULL; @@ -724,18 +735,20 @@ g_usb_device_get_bos_descriptors(GUsbDevice *device, GError **error) gboolean g_usb_device_close(GUsbDevice *device, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); + g_return_val_if_fail(G_USB_IS_DEVICE(device), FALSE); g_return_val_if_fail(error == NULL || *error == NULL, FALSE); /* ignore */ - if (g_usb_context_get_flags(device->priv->context) & G_USB_CONTEXT_FLAGS_AUTO_OPEN_DEVICES) + if (g_usb_context_get_flags(priv->context) & G_USB_CONTEXT_FLAGS_AUTO_OPEN_DEVICES) return TRUE; - if (device->priv->handle == NULL) + if (priv->handle == NULL) return g_usb_device_not_open_error(device, error); - libusb_close(device->priv->handle); - device->priv->handle = NULL; + libusb_close(priv->handle); + priv->handle = NULL; return TRUE; } @@ -759,14 +772,15 @@ g_usb_device_close(GUsbDevice *device, GError **error) gboolean g_usb_device_reset(GUsbDevice *device, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); gint rc; g_return_val_if_fail(G_USB_IS_DEVICE(device), FALSE); g_return_val_if_fail(error == NULL || *error == NULL, FALSE); - if (device->priv->handle == NULL) + if (priv->handle == NULL) return g_usb_device_not_open_error(device, error); - rc = libusb_reset_device(device->priv->handle); + rc = libusb_reset_device(priv->handle); if (rc == LIBUSB_ERROR_NOT_FOUND) return TRUE; return g_usb_device_libusb_error_to_gerror(device, rc, error); @@ -788,18 +802,19 @@ g_usb_device_reset(GUsbDevice *device, GError **error) gint g_usb_device_get_configuration(GUsbDevice *device, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); gint rc; int config; g_return_val_if_fail(G_USB_IS_DEVICE(device), -1); g_return_val_if_fail(error == NULL || *error == NULL, -1); - if (device->priv->handle == NULL) { + if (priv->handle == NULL) { g_usb_device_not_open_error(device, error); return -1; } - rc = libusb_get_configuration(device->priv->handle, &config); + rc = libusb_get_configuration(priv->handle, &config); if (rc != LIBUSB_SUCCESS) { g_usb_device_libusb_error_to_gerror(device, rc, error); return -1; @@ -825,17 +840,18 @@ g_usb_device_get_configuration(GUsbDevice *device, GError **error) gboolean g_usb_device_set_configuration(GUsbDevice *device, gint configuration, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); gint rc; gint config_tmp = 0; g_return_val_if_fail(G_USB_IS_DEVICE(device), FALSE); g_return_val_if_fail(error == NULL || *error == NULL, FALSE); - if (device->priv->handle == NULL) + if (priv->handle == NULL) return g_usb_device_not_open_error(device, error); /* verify we've not already set the same configuration */ - rc = libusb_get_configuration(device->priv->handle, &config_tmp); + rc = libusb_get_configuration(priv->handle, &config_tmp); if (rc != LIBUSB_SUCCESS) { return g_usb_device_libusb_error_to_gerror(device, rc, error); } @@ -843,7 +859,7 @@ g_usb_device_set_configuration(GUsbDevice *device, gint configuration, GError ** return TRUE; /* different, so change */ - rc = libusb_set_configuration(device->priv->handle, configuration); + rc = libusb_set_configuration(priv->handle, configuration); return g_usb_device_libusb_error_to_gerror(device, rc, error); } @@ -866,23 +882,24 @@ g_usb_device_claim_interface(GUsbDevice *device, GUsbDeviceClaimInterfaceFlags flags, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); gint rc; g_return_val_if_fail(G_USB_IS_DEVICE(device), FALSE); g_return_val_if_fail(error == NULL || *error == NULL, FALSE); - if (device->priv->handle == NULL) + if (priv->handle == NULL) return g_usb_device_not_open_error(device, error); if (flags & G_USB_DEVICE_CLAIM_INTERFACE_BIND_KERNEL_DRIVER) { - rc = libusb_detach_kernel_driver(device->priv->handle, interface); + rc = libusb_detach_kernel_driver(priv->handle, interface); if (rc != LIBUSB_SUCCESS && rc != LIBUSB_ERROR_NOT_FOUND && /* No driver attached */ rc != LIBUSB_ERROR_NOT_SUPPORTED && /* win32 */ rc != LIBUSB_ERROR_BUSY /* driver rebound already */) return g_usb_device_libusb_error_to_gerror(device, rc, error); } - rc = libusb_claim_interface(device->priv->handle, interface); + rc = libusb_claim_interface(priv->handle, interface); return g_usb_device_libusb_error_to_gerror(device, rc, error); } @@ -905,20 +922,21 @@ g_usb_device_release_interface(GUsbDevice *device, GUsbDeviceClaimInterfaceFlags flags, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); gint rc; g_return_val_if_fail(G_USB_IS_DEVICE(device), FALSE); g_return_val_if_fail(error == NULL || *error == NULL, FALSE); - if (device->priv->handle == NULL) + if (priv->handle == NULL) return g_usb_device_not_open_error(device, error); - rc = libusb_release_interface(device->priv->handle, interface); + rc = libusb_release_interface(priv->handle, interface); if (rc != LIBUSB_SUCCESS) return g_usb_device_libusb_error_to_gerror(device, rc, error); if (flags & G_USB_DEVICE_CLAIM_INTERFACE_BIND_KERNEL_DRIVER) { - rc = libusb_attach_kernel_driver(device->priv->handle, interface); + rc = libusb_attach_kernel_driver(priv->handle, interface); if (rc != LIBUSB_SUCCESS && rc != LIBUSB_ERROR_NOT_FOUND && /* No driver attached */ rc != LIBUSB_ERROR_NOT_SUPPORTED && /* win32 */ rc != LIBUSB_ERROR_BUSY /* driver rebound already */) @@ -944,15 +962,16 @@ g_usb_device_release_interface(GUsbDevice *device, gboolean g_usb_device_set_interface_alt(GUsbDevice *device, gint interface, guint8 alt, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); gint rc; g_return_val_if_fail(G_USB_IS_DEVICE(device), FALSE); g_return_val_if_fail(error == NULL || *error == NULL, FALSE); - if (device->priv->handle == NULL) + if (priv->handle == NULL) return g_usb_device_not_open_error(device, error); - rc = libusb_set_interface_alt_setting(device->priv->handle, interface, (gint)alt); + rc = libusb_set_interface_alt_setting(priv->handle, interface, (gint)alt); if (rc != LIBUSB_SUCCESS) return g_usb_device_libusb_error_to_gerror(device, rc, error); @@ -974,6 +993,7 @@ g_usb_device_set_interface_alt(GUsbDevice *device, gint interface, guint8 alt, G gchar * g_usb_device_get_string_descriptor(GUsbDevice *device, guint8 desc_index, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); gint rc; /* libusb_get_string_descriptor_ascii returns max 128 bytes */ unsigned char buf[128]; @@ -981,12 +1001,12 @@ g_usb_device_get_string_descriptor(GUsbDevice *device, guint8 desc_index, GError g_return_val_if_fail(G_USB_IS_DEVICE(device), NULL); g_return_val_if_fail(error == NULL || *error == NULL, NULL); - if (device->priv->handle == NULL) { + if (priv->handle == NULL) { g_usb_device_not_open_error(device, error); return NULL; } - rc = libusb_get_string_descriptor_ascii(device->priv->handle, desc_index, buf, sizeof(buf)); + rc = libusb_get_string_descriptor_ascii(priv->handle, desc_index, buf, sizeof(buf)); if (rc < 0) { g_usb_device_libusb_error_to_gerror(device, rc, error); return NULL; @@ -1016,18 +1036,19 @@ g_usb_device_get_string_descriptor_bytes_full(GUsbDevice *device, gsize length, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); gint rc; g_autofree guint8 *buf = g_malloc0(length); g_return_val_if_fail(G_USB_IS_DEVICE(device), NULL); g_return_val_if_fail(error == NULL || *error == NULL, NULL); - if (device->priv->handle == NULL) { + if (priv->handle == NULL) { g_usb_device_not_open_error(device, error); return NULL; } - rc = libusb_get_string_descriptor(device->priv->handle, desc_index, langid, buf, length); + rc = libusb_get_string_descriptor(priv->handle, desc_index, langid, buf, length); if (rc < 0) { g_usb_device_libusb_error_to_gerror(device, rc, error); return NULL; @@ -1122,10 +1143,11 @@ g_usb_device_control_transfer(GUsbDevice *device, GCancellable *cancellable, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); GUsbSyncHelper helper; helper.ret = -1; - helper.context = g_usb_context_get_main_context(device->priv->context); + helper.context = g_usb_context_get_main_context(priv->context); helper.loop = g_main_loop_new(helper.context, FALSE); helper.error = error; helper.finish_func = g_usb_device_control_transfer_finish; @@ -1184,10 +1206,11 @@ g_usb_device_bulk_transfer(GUsbDevice *device, GCancellable *cancellable, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); GUsbSyncHelper helper; helper.ret = -1; - helper.context = g_usb_context_get_main_context(device->priv->context); + helper.context = g_usb_context_get_main_context(priv->context); helper.loop = g_main_loop_new(helper.context, FALSE); helper.error = error; helper.finish_func = g_usb_device_bulk_transfer_finish; @@ -1241,10 +1264,11 @@ g_usb_device_interrupt_transfer(GUsbDevice *device, GCancellable *cancellable, GError **error) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); GUsbSyncHelper helper; helper.ret = -1; - helper.context = g_usb_context_get_main_context(device->priv->context); + helper.context = g_usb_context_get_main_context(priv->context); helper.loop = g_main_loop_new(helper.context, FALSE); helper.error = error; helper.finish_func = g_usb_device_interrupt_transfer_finish; @@ -1420,6 +1444,7 @@ g_usb_device_control_transfer_async(GUsbDevice *device, GAsyncReadyCallback callback, gpointer user_data) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); GTask *task; GcmDeviceReq *req; gint rc; @@ -1428,7 +1453,7 @@ g_usb_device_control_transfer_async(GUsbDevice *device, g_return_if_fail(G_USB_IS_DEVICE(device)); - if (device->priv->handle == NULL) { + if (priv->handle == NULL) { g_usb_device_async_not_open_error(device, callback, user_data, @@ -1462,7 +1487,7 @@ g_usb_device_control_transfer_async(GUsbDevice *device, /* fill in transfer details */ libusb_fill_control_transfer(req->transfer, - device->priv->handle, + priv->handle, req->data_raw, g_usb_device_control_transfer_cb, task, @@ -1536,6 +1561,7 @@ g_usb_device_bulk_transfer_async(GUsbDevice *device, GAsyncReadyCallback callback, gpointer user_data) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); GTask *task; GcmDeviceReq *req; gint rc; @@ -1543,7 +1569,7 @@ g_usb_device_bulk_transfer_async(GUsbDevice *device, g_return_if_fail(G_USB_IS_DEVICE(device)); - if (device->priv->handle == NULL) { + if (priv->handle == NULL) { g_usb_device_async_not_open_error(device, callback, user_data, @@ -1564,7 +1590,7 @@ g_usb_device_bulk_transfer_async(GUsbDevice *device, /* fill in transfer details */ libusb_fill_bulk_transfer(req->transfer, - device->priv->handle, + priv->handle, endpoint, data, length, @@ -1640,6 +1666,7 @@ g_usb_device_interrupt_transfer_async(GUsbDevice *device, GAsyncReadyCallback callback, gpointer user_data) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); GTask *task; GcmDeviceReq *req; GError *error = NULL; @@ -1647,7 +1674,7 @@ g_usb_device_interrupt_transfer_async(GUsbDevice *device, g_return_if_fail(G_USB_IS_DEVICE(device)); - if (device->priv->handle == NULL) { + if (priv->handle == NULL) { g_usb_device_async_not_open_error(device, callback, user_data, @@ -1668,7 +1695,7 @@ g_usb_device_interrupt_transfer_async(GUsbDevice *device, /* fill in transfer details */ libusb_fill_interrupt_transfer(req->transfer, - device->priv->handle, + priv->handle, endpoint, data, length, @@ -1732,9 +1759,9 @@ g_usb_device_interrupt_transfer_finish(GUsbDevice *device, GAsyncResult *res, GE const gchar * g_usb_device_get_platform_id(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), NULL); - - return device->priv->platform_id; + return priv->platform_id; } /** @@ -1750,7 +1777,7 @@ g_usb_device_get_platform_id(GUsbDevice *device) GUsbDevice * g_usb_device_get_parent(GUsbDevice *device) { - GUsbDevicePrivate *priv = device->priv; + GUsbDevicePrivate *priv = GET_PRIVATE(device); libusb_device *parent; parent = libusb_get_parent(priv->device); @@ -1776,17 +1803,17 @@ g_usb_device_get_parent(GUsbDevice *device) GPtrArray * g_usb_device_get_children(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); GPtrArray *children; - GUsbDevice *device_tmp; - GUsbDevicePrivate *priv = device->priv; g_autoptr(GPtrArray) devices = NULL; /* find any devices that have @device as a parent */ children = g_ptr_array_new_with_free_func((GDestroyNotify)g_object_unref); devices = g_usb_context_get_devices(priv->context); for (guint i = 0; i < devices->len; i++) { - device_tmp = g_ptr_array_index(devices, i); - if (priv->device == libusb_get_parent(device_tmp->priv->device)) + GUsbDevice *device_tmp = g_ptr_array_index(devices, i); + GUsbDevicePrivate *priv_tmp = GET_PRIVATE(device_tmp); + if (priv->device == libusb_get_parent(priv_tmp->device)) g_ptr_array_add(children, g_object_ref(device_tmp)); } @@ -1806,9 +1833,9 @@ g_usb_device_get_children(GUsbDevice *device) guint8 g_usb_device_get_bus(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - - return libusb_get_bus_number(device->priv->device); + return libusb_get_bus_number(priv->device); } /** @@ -1824,9 +1851,9 @@ g_usb_device_get_bus(GUsbDevice *device) guint8 g_usb_device_get_address(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - - return libusb_get_device_address(device->priv->device); + return libusb_get_device_address(priv->device); } /** @@ -1842,8 +1869,9 @@ g_usb_device_get_address(GUsbDevice *device) guint8 g_usb_device_get_port_number(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - return libusb_get_port_number(device->priv->device); + return libusb_get_port_number(priv->device); } /** @@ -1859,9 +1887,9 @@ g_usb_device_get_port_number(GUsbDevice *device) guint16 g_usb_device_get_vid(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - - return device->priv->desc.idVendor; + return priv->desc.idVendor; } /** @@ -1877,9 +1905,9 @@ g_usb_device_get_vid(GUsbDevice *device) guint16 g_usb_device_get_pid(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - - return device->priv->desc.idProduct; + return priv->desc.idProduct; } /** @@ -1895,9 +1923,9 @@ g_usb_device_get_pid(GUsbDevice *device) guint16 g_usb_device_get_release(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - - return device->priv->desc.bcdDevice; + return priv->desc.bcdDevice; } /** @@ -1914,9 +1942,9 @@ g_usb_device_get_release(GUsbDevice *device) guint16 g_usb_device_get_spec(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - - return device->priv->desc.bcdUSB; + return priv->desc.bcdUSB; } /** @@ -1932,10 +1960,9 @@ g_usb_device_get_spec(GUsbDevice *device) const gchar * g_usb_device_get_vid_as_str(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), NULL); - return _g_usb_context_lookup_vendor(device->priv->context, - device->priv->desc.idVendor, - NULL); + return _g_usb_context_lookup_vendor(priv->context, priv->desc.idVendor, NULL); } /** @@ -1951,10 +1978,11 @@ g_usb_device_get_vid_as_str(GUsbDevice *device) const gchar * g_usb_device_get_pid_as_str(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), NULL); - return _g_usb_context_lookup_product(device->priv->context, - device->priv->desc.idVendor, - device->priv->desc.idProduct, + return _g_usb_context_lookup_product(priv->context, + priv->desc.idVendor, + priv->desc.idProduct, NULL); } @@ -1972,13 +2000,14 @@ g_usb_device_get_pid_as_str(GUsbDevice *device) guint8 g_usb_device_get_configuration_index(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); struct libusb_config_descriptor *config; gint rc; guint8 index; g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - rc = libusb_get_active_config_descriptor(device->priv->device, &config); + rc = libusb_get_active_config_descriptor(priv->device, &config); g_return_val_if_fail(rc == 0, 0); index = config->iConfiguration; @@ -2000,9 +2029,9 @@ g_usb_device_get_configuration_index(GUsbDevice *device) guint8 g_usb_device_get_manufacturer_index(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - - return device->priv->desc.iManufacturer; + return priv->desc.iManufacturer; } /** @@ -2018,9 +2047,9 @@ g_usb_device_get_manufacturer_index(GUsbDevice *device) guint8 g_usb_device_get_device_class(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - - return device->priv->desc.bDeviceClass; + return priv->desc.bDeviceClass; } /** @@ -2037,9 +2066,9 @@ g_usb_device_get_device_class(GUsbDevice *device) guint8 g_usb_device_get_device_subclass(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - - return device->priv->desc.bDeviceSubClass; + return priv->desc.bDeviceSubClass; } /** @@ -2056,9 +2085,9 @@ g_usb_device_get_device_subclass(GUsbDevice *device) guint8 g_usb_device_get_device_protocol(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - - return device->priv->desc.bDeviceProtocol; + return priv->desc.bDeviceProtocol; } /** @@ -2074,9 +2103,9 @@ g_usb_device_get_device_protocol(GUsbDevice *device) guint8 g_usb_device_get_product_index(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - - return device->priv->desc.iProduct; + return priv->desc.iProduct; } /** @@ -2092,7 +2121,7 @@ g_usb_device_get_product_index(GUsbDevice *device) guint8 g_usb_device_get_serial_number_index(GUsbDevice *device) { + GUsbDevicePrivate *priv = GET_PRIVATE(device); g_return_val_if_fail(G_USB_IS_DEVICE(device), 0); - - return device->priv->desc.iSerialNumber; + return priv->desc.iSerialNumber; } |