Callback declared in bt_pan.h is
'typedef void (*btpan_control_state_callback)
(btpan_control_state_t state, bt_status_t error, int local_role,
const char* ifname);
But PanService.Java defined it wrong way.
private void onControlStateChanged(int local_role, int state,
int error, String ifname).
First and third parameters are misplaced, so sending data according
to PanService.Java, discard this fix if issue fixed in PanService.Java.
---
android/hal-pan.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/android/hal-pan.c b/android/hal-pan.c
index 8c0f8d8..a596ffd 100644
--- a/android/hal-pan.c
+++ b/android/hal-pan.c
@@ -45,9 +45,18 @@ static void handle_ctrl_state(void *buf, uint16_t len)
{
struct hal_ev_pan_ctrl_state *ev = buf;
+ /* FIXME: Callback declared in bt_pan.h is 'typedef void
+ * (*btpan_control_state_callback)(btpan_control_state_t state,
+ * bt_status_t error, int local_role, const char* ifname);
+ * But PanService.Java defined it wrong way.
+ * private void onControlStateChanged(int local_role, int state,
+ * int error, String ifname).
+ * First and third parameters are misplaced, so sending data according
+ * to PanService.Java, fix this if issue fixed in PanService.Java.
+ */
if (cbs->control_state_cb)
- cbs->control_state_cb(ev->state, ev->status,
- ev->local_role, (char *)ev->name);
+ cbs->control_state_cb(ev->local_role, ev->state, ev->status,
+ (char *)ev->name);
}
/* handlers will be called from notification thread context,--
1.8.3.2