Fix : AVRCP common API error 79/173479/1
authorSangki Park <sangki79.park@samsung.com>
Mon, 19 Mar 2018 09:48:38 +0000 (18:48 +0900)
committerSangki Park <sangki79.park@samsung.com>
Thu, 22 Mar 2018 02:00:00 +0000 (11:00 +0900)
The API bt_avrcp_set_play_status_changed_cb() returns
"Not supported" error if the project supports AVRCP controller only.

This kinds of AVRCP APIs shuould be work if CONTROLLER feature is
defined only.

Change-Id: I9bbca080cce0da8f956dee7b541ccb82b7278a52
Signed-off-by: Sangki Park <sangki79.park@samsung.com>
src/bluetooth-avrcp.c

index fef8a3fb1d4ab8d7f0d885b02c147242ec0077bb..7122a823b1bc65e3ef83c84d88ac9846954107aa 100644 (file)
@@ -26,6 +26,12 @@ static bool is_avrcp_target_initialized = false;
 static bool is_avrcp_control_initialized = false;
 
 #define BT_CHECK_AVRCP_SUPPORT() \
+{ \
+       BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON); \
+       BT_CHECK_SUPPORTED_FEATURES(BT_FEATURE_AUDIO_MEDIA, BT_FEATURE_AUDIO_CONTROLLER); \
+}
+
+#define BT_CHECK_AVRCP_TARGET_SUPPORT() \
 { \
        BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON); \
        BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_AUDIO_MEDIA); \
@@ -94,7 +100,7 @@ int bt_avrcp_target_initialize(bt_avrcp_target_connection_state_changed_cb callb
 {
        int error;
 
-       BT_CHECK_AVRCP_SUPPORT();
+       BT_CHECK_AVRCP_TARGET_SUPPORT();
        BT_CHECK_INIT_STATUS();
        BT_CHECK_INPUT_PARAMETER(callback);
        _bt_set_cb(BT_EVENT_AVRCP_CONNECTION_STATUS, callback, user_data);
@@ -116,7 +122,7 @@ int bt_avrcp_target_connect(const char *remote_address)
        int error;
        bluetooth_device_address_t addr_hex = { {0,} };
 
-       BT_CHECK_AVRCP_SUPPORT();
+       BT_CHECK_AVRCP_TARGET_SUPPORT();
        BT_CHECK_INIT_STATUS();
        BT_CHECK_AVRCP_TARGET_INIT_STATUS();
        BT_CHECK_INPUT_PARAMETER(remote_address);
@@ -135,7 +141,7 @@ int bt_avrcp_target_disconnect(const char *remote_address)
        int error;
        bluetooth_device_address_t addr_hex = { {0,} };
 
-       BT_CHECK_AVRCP_SUPPORT();
+       BT_CHECK_AVRCP_TARGET_SUPPORT();
        BT_CHECK_INIT_STATUS();
        BT_CHECK_AVRCP_TARGET_INIT_STATUS();
        BT_CHECK_INPUT_PARAMETER(remote_address);
@@ -153,7 +159,7 @@ int bt_avrcp_target_deinitialize(void)
 {
        int error;
 
-       BT_CHECK_AVRCP_SUPPORT();
+       BT_CHECK_AVRCP_TARGET_SUPPORT();
        BT_CHECK_INIT_STATUS();
        BT_CHECK_AVRCP_TARGET_INIT_STATUS();
        if (_bt_check_cb(BT_EVENT_AVRCP_CONNECTION_STATUS) == true)
@@ -176,7 +182,7 @@ int bt_avrcp_target_notify_equalizer_state(bt_avrcp_equalizer_state_e state)
 {
        int error;
 
-       BT_CHECK_AVRCP_SUPPORT();
+       BT_CHECK_AVRCP_TARGET_SUPPORT();
        BT_CHECK_INIT_STATUS();
        BT_CHECK_AVRCP_TARGET_INIT_STATUS();
        error = bluetooth_media_player_change_property(EQUALIZER, state);
@@ -191,7 +197,7 @@ int bt_avrcp_target_notify_repeat_mode(bt_avrcp_repeat_mode_e mode)
 {
        int error;
 
-       BT_CHECK_AVRCP_SUPPORT();
+       BT_CHECK_AVRCP_TARGET_SUPPORT();
        BT_CHECK_INIT_STATUS();
        BT_CHECK_AVRCP_TARGET_INIT_STATUS();
        error = bluetooth_media_player_change_property(REPEAT, mode);
@@ -207,7 +213,7 @@ int bt_avrcp_target_notify_shuffle_mode(bt_avrcp_shuffle_mode_e mode)
 {
        int error;
 
-       BT_CHECK_AVRCP_SUPPORT();
+       BT_CHECK_AVRCP_TARGET_SUPPORT();
        BT_CHECK_INIT_STATUS();
        BT_CHECK_AVRCP_TARGET_INIT_STATUS();
        error = bluetooth_media_player_change_property(SHUFFLE, mode);
@@ -222,7 +228,7 @@ int bt_avrcp_target_notify_scan_mode(bt_avrcp_scan_mode_e mode)
 {
        int error;
 
-       BT_CHECK_AVRCP_SUPPORT();
+       BT_CHECK_AVRCP_TARGET_SUPPORT();
        BT_CHECK_INIT_STATUS();
        BT_CHECK_AVRCP_TARGET_INIT_STATUS();
        error = bluetooth_media_player_change_property(SCAN, mode);
@@ -238,7 +244,7 @@ int bt_avrcp_target_notify_player_state(bt_avrcp_player_state_e state)
 {
        int error;
 
-       BT_CHECK_AVRCP_SUPPORT();
+       BT_CHECK_AVRCP_TARGET_SUPPORT();
        BT_CHECK_INIT_STATUS();
        BT_CHECK_AVRCP_TARGET_INIT_STATUS();
        error = bluetooth_media_player_change_property(STATUS, state);
@@ -254,7 +260,7 @@ int bt_avrcp_target_notify_position(unsigned int position)
 {
        int error;
 
-       BT_CHECK_AVRCP_SUPPORT();
+       BT_CHECK_AVRCP_TARGET_SUPPORT();
        BT_CHECK_INIT_STATUS();
        BT_CHECK_AVRCP_TARGET_INIT_STATUS();
        error = bluetooth_media_player_change_property(POSITION, position);
@@ -271,7 +277,7 @@ int bt_avrcp_target_notify_track(const char *title, const char *artist, const ch
 {
        int error;
 
-       BT_CHECK_AVRCP_SUPPORT();
+       BT_CHECK_AVRCP_TARGET_SUPPORT();
        BT_CHECK_INIT_STATUS();
        BT_CHECK_AVRCP_TARGET_INIT_STATUS();
        media_metadata_attributes_t metadata;