uint8_t res_support;
} __packed;
+#define MGMT_OP_SET_STREAMING_MODE (TIZEN_OP_CODE_BASE + 0x1b)
+struct mgmt_cp_set_streaming_mode {
+ uint8_t streaming_mode;
+ bdaddr_t bdaddr;
+} __packed;
+
/* BEGIN TIZEN_Bluetooth :: name update changes */
#define MGMT_EV_DEVICE_NAME_UPDATE (TIZEN_EV_BASE + 0x01)
struct mgmt_ev_device_name_update {
{
struct avdtp_stream *stream = sep->stream;
#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
+ struct btd_adapter *adapter = device_get_adapter(session->device);
#if (defined(TIZEN_FEATURE_BLUEZ_BRCM_QOS) || defined(TIZEN_FEATURE_BLUEZ_ROLE_CHANGE)) || \
defined(TIZEN_FEATURE_BLUEZ_SPRD_QOS)
const bdaddr_t *dst;
#ifdef TIZEN_FEATURE_BLUEZ_ROLE_CHANGE
fix_role_to_master(dst, FALSE);
#endif /* TIZEN_FEATURE_BLUEZ_ROLE_CHANGE */
+ btd_adapter_set_streaming_mode(adapter, dst, FALSE);
#endif /* TIZEN_FEATURE_BLUEZ_MODIFY */
break;
#ifdef TIZEN_FEATURE_BLUEZ_ROLE_CHANGE
fix_role_to_master(dst, TRUE);
#endif /* TIZEN_FEATURE_BLUEZ_ROLE_CHANGE */
+ btd_adapter_set_streaming_mode(adapter, dst, TRUE);
#endif /* TIZEN_FEATURE_BLUEZ_MODIFY */
stream->open_acp = FALSE;
break;
return false;
}
+
+int btd_adapter_set_streaming_mode(struct btd_adapter *adapter,
+ const bdaddr_t *bdaddr, gboolean enable)
+{
+ struct mgmt_cp_set_streaming_mode cp;
+ char addr[18];
+
+ ba2str(bdaddr, addr);
+ DBG("hci%u device %s", adapter->dev_id, addr);
+
+ memset(&cp, 0, sizeof(cp));
+
+ cp.streaming_mode = enable ? 1 : 0;
+ bacpy(&cp.bdaddr, bdaddr);
+
+ if (mgmt_send(adapter->mgmt, MGMT_OP_SET_STREAMING_MODE,
+ adapter->dev_id, sizeof(cp), &cp,
+ NULL, NULL, NULL) > 0)
+ return 0;
+
+ return -EIO;
+}
uint16_t max_tx_octets, uint16_t max_tx_time);
#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
void adapter_check_version(struct btd_adapter *adapter, uint8_t hci_ver);
+
+int btd_adapter_set_streaming_mode(struct btd_adapter *adapter,
+ const bdaddr_t *bdaddr, gboolean enable);
+
#ifdef TIZEN_FEATURE_BLUEZ_BATTERY_WATCH
charging_state_e get_charging_state(struct btd_adapter *adapter);
#endif /* TIZEN_FEATURE_BLUEZ_BATTERY_WATCH */