[PATCH BlueZ 10/13] hog: Use hardware country code |
|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
From: Claudio Takahasi <claudio.takahasi@xxxxxxxxxxxxx>
bCountryCode is a 8-bits integer identifying hardware target country.
The order of the characteristic declarations may be different on each
implementation. Since GATT/ATT requests need to be serialized, HID
information will be returned before report map characteristic value.
---
profiles/input/hog_device.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/profiles/input/hog_device.c b/profiles/input/hog_device.c
index 778a367..7e6c4b1 100644
--- a/profiles/input/hog_device.c
+++ b/profiles/input/hog_device.c
@@ -292,7 +292,7 @@ static void report_map_read_cb(guint8 status, const guint8 *pdu, guint16 plen,
ev.u.create.vendor = vendor;
ev.u.create.product = product;
ev.u.create.version = version;
- ev.u.create.country = 0; /* get this info from the right place */
+ ev.u.create.country = hogdev->bcountrycode;
ev.u.create.bus = BUS_BLUETOOTH;
ev.u.create.rd_data = value;
ev.u.create.rd_size = vlen;
@@ -334,6 +334,7 @@ static void char_discovered_cb(GSList *chars, guint8 status, gpointer user_data)
bt_uuid_t report_uuid, report_map_uuid, info_uuid;
struct report *report;
GSList *l;
+ uint16_t map_handle = 0, info_handle = 0;
if (status != 0) {
const char *str = att_ecode2str(status);
@@ -365,12 +366,18 @@ static void char_discovered_cb(GSList *chars, guint8 status, gpointer user_data)
report);
discover_descriptor(hogdev->attrib, chr, next, report);
} else if (bt_uuid_cmp(&uuid, &report_map_uuid) == 0)
- gatt_read_char(hogdev->attrib, chr->value_handle, 0,
- report_map_read_cb, hogdev);
+ map_handle = chr->value_handle;
else if (bt_uuid_cmp(&uuid, &info_uuid) == 0)
- gatt_read_char(hogdev->attrib, chr->value_handle, 0,
- info_read_cb, hogdev);
+ info_handle = chr->value_handle;
}
+
+ if (info_handle)
+ gatt_read_char(hogdev->attrib, info_handle, 0,
+ info_read_cb, hogdev);
+
+ if (map_handle)
+ gatt_read_char(hogdev->attrib, map_handle, 0,
+ report_map_read_cb, hogdev);
}
static void output_written_cb(guint8 status, const guint8 *pdu,
--
1.7.10.4
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Bluez Devel]
[Linux USB Devel]
[Linux Media Drivers]
[Linux Audio Users]
[Yosemite News]
[Yosemite Photos]
[Free Online Dating]
[Bluez Devel]
[Linux Kernel]
[Linux SCSI]
[XFree86]
[Big List of Linux Books]