summaryrefslogtreecommitdiff
path: root/gusb/gusb-device.c
diff options
context:
space:
mode:
Diffstat (limited to 'gusb/gusb-device.c')
-rw-r--r--gusb/gusb-device.c221
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;
}