BT_EVENT_AG_MICROPHONE_GAIN_CHANGE, /**< Audio Microphone change callback */
BT_EVENT_AG_SPEAKER_GAIN_CHANGE, /**< Audio Speaker gain change callback */
BT_EVENT_AG_VENDOR_CMD, /**< Audio - XSAT Vendor cmd */
+ BT_EVENT_AG_BATTERY_LEVEL_CHANGE, /**< Audio battery level change callback */
BT_EVENT_AUDIO_ABSOLUTE_VOLUME_CHANGED, /**< Audio absolute volume change callback */
BT_EVENT_AUDIO_AVC_STATUS_CHANGED, /**< Absolute Volume Control status change callback */
BT_EVENT_AVRCP_CONNECTION_STATUS, /**< AVRCP connection change callback */
*/
void _bt_otp_check_service_changed(char *address, bt_gatt_service_change_t *service_change);
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Called when the battery level of the remote device is changed.
+ * @since_tizen 4.0
+ *
+ * @param[in] remote_address The remote address
+ * @param[in] level The battery level (0 ~ 100)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_ag_set_battery_level_changed_cb()
+ * @see bt_ag_unset_battery_level_changed_cb()
+ */
+typedef void (*bt_ag_battery_level_changed_cb) (const char *remote_address, unsigned int level, void *user_data);
+
typedef enum {
_PROFILE_UNKNOWN = 0,
_PROFILE_MOBILE = 0x1,
_bt_unset_cb(BT_EVENT_AG_SPEAKER_GAIN_CHANGE);
return BT_ERROR_NONE;
}
+/* LCOV_EXCL_STOP */
+
+int bt_ag_get_battery_level(const char *remote_address, unsigned int *level)
+{
+ int error;
+
+ BT_CHECK_HFP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_AG_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(remote_address);
+ BT_CHECK_INPUT_PARAMETER(level);
+
+ error = bluetooth_telephony_get_battery_level(remote_address, level);
+ error = _bt_convert_telephony_error_code(error);
+ if (BT_ERROR_NONE != error)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error);
+
+ return error;
+}
+
+int bt_ag_set_battery_level_changed_cb(bt_ag_battery_level_changed_cb callback, void *user_data)
+{
+ BT_CHECK_HFP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_AG_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(callback);
+ _bt_set_cb(BT_EVENT_AG_BATTERY_LEVEL_CHANGE, callback, user_data);
+ return BT_ERROR_NONE;
+}
+
+int bt_ag_unset_battery_level_changed_cb(void)
+{
+ BT_CHECK_HFP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_AG_INIT_STATUS();
+ if (_bt_check_cb(BT_EVENT_AG_BATTERY_LEVEL_CHANGE) == true)
+ _bt_unset_cb(BT_EVENT_AG_BATTERY_LEVEL_CHANGE);
+ return BT_ERROR_NONE;
+}
int bt_ag_open_sco(void)
{
{ BLUETOOTH_EVENT_PASSKEY_NOTIFICATION, BT_EVENT_PASSKEY_NOTIFICATION_EVENT },
{ BLUETOOTH_EVENT_CONNECTABLE_CHANGED, BT_EVENT_CONNECTABLE_CHANGED_EVENT },
{ BLUETOOTH_EVENT_TELEPHONY_VENDOR_AT_CMD, BT_EVENT_AG_VENDOR_CMD },
+ { BLUETOOTH_EVENT_TELEPHONY_HF_BATTERY_LEVEL_CHANGED, BT_EVENT_AG_BATTERY_LEVEL_CHANGE },
{ BLUETOOTH_EVENT_RSSI_ENABLED, BT_EVENT_RSSI_ENABLED_EVENT },
{ BLUETOOTH_EVENT_RSSI_ALERT, BT_EVENT_RSSI_ALERT_EVENT },
{ BLUETOOTH_EVENT_RAW_RSSI, BT_EVENT_GET_RSSI_EVENT },