Add the inhouse APIs for AVRCP control volume up / down 77/188577/2
authorWootak Jung <wootak.jung@samsung.com>
Thu, 30 Aug 2018 05:14:49 +0000 (14:14 +0900)
committerPyun DoHyun <dh79.pyun@samsung.com>
Fri, 7 Sep 2018 05:14:25 +0000 (05:14 +0000)
Change-Id: I798b217b70d5b1f6991c7e3f906783468108a375

include/bluetooth_internal.h
src/bluetooth-avrcp.c
test/bt_unit_test.c
test/bt_unit_test.h

index e1e369b..3723a07 100644 (file)
@@ -3498,6 +3498,50 @@ int bt_avrcp_control_set_absolute_volume(unsigned int value);
 
 /**
  * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief  Sends the volume up request to the remote device.
+ * @since_tizen 5.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @return  0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE  Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED  Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #BT_ERROR_NOT_ENABLED  Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED  Operation failed
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED  Remote device is not connected
+ * @retval #BT_ERROR_PERMISSION_DENIED  Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED  Not supported
+ *
+ * @pre The remote device must be connected.
+ * @see bt_avrcp_control_connect()
+ * @see bt_avrcp_control_initialize()
+ */
+int bt_avrcp_control_increase_volume(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief  Sends the volume down request to the remote device.
+ * @since_tizen 5.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @return  0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE  Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED  Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER  Invalid parameter
+ * @retval #BT_ERROR_NOT_ENABLED  Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED  Operation failed
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED  Remote device is not connected
+ * @retval #BT_ERROR_PERMISSION_DENIED  Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED  Not supported
+ *
+ * @pre The remote device must be connected.
+ * @see bt_avrcp_control_connect()
+ * @see bt_avrcp_control_initialize()
+ */
+int bt_avrcp_control_decrease_volume(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
  * @brief  Sends the delay report to the remote device.
  * @since_tizen 5.0
  * @privlevel platform
index 48c3945..8b6a1ed 100644 (file)
@@ -406,6 +406,38 @@ int bt_avrcp_control_set_absolute_volume(unsigned int value)
        return error;
 }
 
+int bt_avrcp_control_increase_volume(void)
+{
+       int error;
+
+       BT_CHECK_AVRCP_CONTROL_SUPPORT();
+       BT_CHECK_INIT_STATUS();
+       BT_CHECK_AVRCP_CONTROL_INIT_STATUS();
+       error = bluetooth_media_control_command(VOLUME_UP);
+       error = _bt_convert_avrcp_error_code(error);
+       error = _bt_get_error_code(error);
+       if (BT_ERROR_NONE != error)
+               BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error); /* LCOV_EXCL_LINE */
+
+       return error;
+}
+
+int bt_avrcp_control_decrease_volume(void)
+{
+       int error;
+
+       BT_CHECK_AVRCP_CONTROL_SUPPORT();
+       BT_CHECK_INIT_STATUS();
+       BT_CHECK_AVRCP_CONTROL_INIT_STATUS();
+       error = bluetooth_media_control_command(VOLUME_DOWN);
+       error = _bt_convert_avrcp_error_code(error);
+       error = _bt_get_error_code(error);
+       if (BT_ERROR_NONE != error)
+               BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error); /* LCOV_EXCL_LINE */
+
+       return error;
+}
+
 int bt_avrcp_control_send_delay_report(unsigned int value)
 {
        int error;
index f62b02d..03dcfdc 100644 (file)
@@ -777,6 +777,10 @@ tc_table_t tc_avrcp[] = {
                , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_PREV},
        {"bt_avrcp_control_player_SET_ABSOLUTE_VOLUME"
                , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SET_ABSOLUTE_VOLUME},
+       {"bt_avrcp_control_player_VOLUME_UP"
+               , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_VOLUME_UP},
+       {"bt_avrcp_control_player_VOLUME_DOWN"
+               , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_VOLUME_DOWN},
        {"bt_avrcp_control_player_GET_REPEAT"
                , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_REPEAT},
        {"bt_avrcp_control_player_SET_REPEAT"
@@ -7439,6 +7443,16 @@ int test_input_callback(void *data)
                        TC_PRT("returns %s\n", __bt_get_error_message(ret));
                        break;
                        }
+               case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_VOLUME_UP: {
+                       ret = bt_avrcp_control_increase_volume();
+                       TC_PRT("returns %s\n", __bt_get_error_message(ret));
+                       break;
+                       }
+               case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_VOLUME_DOWN: {
+                       ret = bt_avrcp_control_decrease_volume();
+                       TC_PRT("returns %s\n", __bt_get_error_message(ret));
+                       break;
+                       }
                case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SEND_DELAY_REPORT: {
                        static unsigned int delay_level = 1;
                        ret = bt_avrcp_control_send_delay_report(delay_level++);
index d37b39c..8e2f1ec 100644 (file)
@@ -317,6 +317,8 @@ typedef enum {
        BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_NEXT,
        BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_PREV,
        BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SET_ABSOLUTE_VOLUME,
+       BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_VOLUME_UP,
+       BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_VOLUME_DOWN,
        BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SEND_DELAY_REPORT,
        BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_REPEAT,
        BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SET_REPEAT,