| From 1630cbe326460a89d5c342847b658a499484ced0 Mon Sep 17 00:00:00 2001 |
| From: Scott James Remnant <scott@netsplit.com> |
| Date: Thu, 29 Mar 2012 14:04:14 -0700 |
| Subject: [PATCH 05/13] Add display parameter to plugin pincode callback |
| |
| Pass a display parameter to the plugin pincode callback, a plugin |
| may set this to TRUE to indicate the PIN it generates should be |
| displayed on the screen for entry into the remote device. |
| --- |
| plugins/wiimote.c | 2 +- |
| src/adapter.c | 4 ++-- |
| src/adapter.h | 4 ++-- |
| src/event.c | 3 ++- |
| 4 files changed, 7 insertions(+), 6 deletions(-) |
| |
| diff --git a/plugins/wiimote.c b/plugins/wiimote.c |
| index 1ae638b..43b6de3 100644 |
| --- a/plugins/wiimote.c |
| +++ b/plugins/wiimote.c |
| @@ -56,7 +56,7 @@ |
| */ |
| |
| static ssize_t wii_pincb(struct btd_adapter *adapter, struct btd_device *device, |
| - char *pinbuf) |
| + char *pinbuf, gboolean *display) |
| { |
| uint16_t vendor, product; |
| bdaddr_t sba, dba; |
| diff --git a/src/adapter.c b/src/adapter.c |
| index acb845e..ccf7991 100644 |
| --- a/src/adapter.c |
| +++ b/src/adapter.c |
| @@ -3330,7 +3330,7 @@ void btd_adapter_unregister_pin_cb(struct btd_adapter *adapter, |
| } |
| |
| ssize_t btd_adapter_get_pin(struct btd_adapter *adapter, struct btd_device *dev, |
| - char *pin_buf) |
| + char *pin_buf, gboolean *display) |
| { |
| GSList *l; |
| btd_adapter_pin_cb_t cb; |
| @@ -3339,7 +3339,7 @@ ssize_t btd_adapter_get_pin(struct btd_adapter *adapter, struct btd_device *dev, |
| |
| for (l = adapter->pin_callbacks; l != NULL; l = g_slist_next(l)) { |
| cb = l->data; |
| - ret = cb(adapter, dev, pin_buf); |
| + ret = cb(adapter, dev, pin_buf, display); |
| if (ret > 0) |
| return ret; |
| } |
| diff --git a/src/adapter.h b/src/adapter.h |
| index ceebb97..aa66070 100644 |
| --- a/src/adapter.h |
| +++ b/src/adapter.h |
| @@ -172,13 +172,13 @@ int btd_adapter_switch_offline(struct btd_adapter *adapter); |
| void btd_adapter_enable_auto_connect(struct btd_adapter *adapter); |
| |
| typedef ssize_t (*btd_adapter_pin_cb_t) (struct btd_adapter *adapter, |
| - struct btd_device *dev, char *out); |
| + struct btd_device *dev, char *out, gboolean *display); |
| void btd_adapter_register_pin_cb(struct btd_adapter *adapter, |
| btd_adapter_pin_cb_t cb); |
| void btd_adapter_unregister_pin_cb(struct btd_adapter *adapter, |
| btd_adapter_pin_cb_t cb); |
| ssize_t btd_adapter_get_pin(struct btd_adapter *adapter, struct btd_device *dev, |
| - char *pin_buf); |
| + char *pin_buf, gboolean *display); |
| |
| typedef void (*bt_hci_result_t) (uint8_t status, gpointer user_data); |
| |
| diff --git a/src/event.c b/src/event.c |
| index 7d66b6d..d87b6a4 100644 |
| --- a/src/event.c |
| +++ b/src/event.c |
| @@ -119,12 +119,13 @@ int btd_event_request_pin(bdaddr_t *sba, bdaddr_t *dba, gboolean secure) |
| struct btd_device *device; |
| char pin[17]; |
| ssize_t pinlen; |
| + gboolean display = FALSE; |
| |
| if (!get_adapter_and_device(sba, dba, &adapter, &device, TRUE)) |
| return -ENODEV; |
| |
| memset(pin, 0, sizeof(pin)); |
| - pinlen = btd_adapter_get_pin(adapter, device, pin); |
| + pinlen = btd_adapter_get_pin(adapter, device, pin, &display); |
| if (pinlen > 0 && (!secure || pinlen == 16)) { |
| btd_adapter_pincode_reply(adapter, dba, pin, pinlen); |
| return 0; |
| -- |
| 1.7.7.3 |
| |