diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2024-04-08 17:26:49 -0400 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2024-04-10 09:56:47 -0400 |
commit | a78c839b5d8546e660c4a382ab1c5c1d3a2a16a6 (patch) | |
tree | 00d15b287428cf009a920e49a234c98fbd9bf934 | |
parent | 991ec8e2e088dbfeb954b6fe003e4188d516ba5a (diff) |
hog-lib: Make use of bt_uhid_replay
This makes use of bt_uhid_replay to replay the GET/SET_REPORT messages
recorded during the first time the device is created.
-rw-r--r-- | profiles/input/hog-lib.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/profiles/input/hog-lib.c b/profiles/input/hog-lib.c index 8071e1364b..0291adb6eb 100644 --- a/profiles/input/hog-lib.c +++ b/profiles/input/hog-lib.c @@ -856,12 +856,14 @@ static void set_report(struct uhid_event *ev, void *user_data) --size; } + if (hog->attrib == NULL) { + err = -ENOTCONN; + goto fail; + } + DBG("Sending report type %d ID %d to handle 0x%X", report->type, report->id, report->value_handle); - if (hog->attrib == NULL) - return; - hog->setrep_att = gatt_write_char(hog->attrib, report->value_handle, data, size, set_report_cb, @@ -1726,6 +1728,11 @@ bool bt_hog_attach(struct bt_hog *hog, void *gatt) "handle 0x%04x", r->value_handle); } + /* Attempt to replay get/set report messages since the driver might not + * be aware the device has been disconnected in the meantime. + */ + bt_uhid_replay(hog->uhid); + return true; } |