SET(PREFIX ${CMAKE_INSTALL_PREFIX})
SET(INC_DIR include)
-IF (TIZEN_PROFILE_TV)
- INCLUDE_DIRECTORIES(${INC_DIR})
- INCLUDE_DIRECTORIES(${INC_DIR}/tv)
-ELSE ()
- INCLUDE_DIRECTORIES(${INC_DIR})
- IF (TIZEN_PROFILE_WEARABLE OR TIZEN_PROFILE_IVI)
- INCLUDE_DIRECTORIES(${INC_DIR}/wearable)
- ELSE ()
- INCLUDE_DIRECTORIES(${INC_DIR}/mobile)
- ENDIF (TIZEN_PROFILE_WEARABLE OR TIZEN_PROFILE_IVI)
-ENDIF (TIZEN_PROFILE_TV)
-
-IF (TIZEN_PROFILE_TV)
- SET(dependents "dlog glib-2.0 capi-base-common capi-system-info bluetooth-api db-util")
-ELSE ()
- SET(dependents "dlog glib-2.0 capi-base-common capi-system-info bluetooth-api")
-ENDIF (TIZEN_PROFILE_TV)
+INCLUDE_DIRECTORIES(${INC_DIR})
+
+SET(dependents "dlog glib-2.0 capi-base-common capi-system-info bluetooth-api db-util")
SET(pc_dependents "capi-base-common glib-2.0")
INCLUDE(FindPkgConfig)
SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIB_INSTALL_DIR}")
-IF (TIZEN_PROFILE_TV)
-SET(SOURCES
-src/bluetooth-common.c
-src/bluetooth-adapter.c
-src/bluetooth-device.c
-src/bluetooth-socket.c
-src/bluetooth-opp-server.c
-src/bluetooth-opp-client.c
-src/bluetooth-pan.c
-src/bluetooth-hdp.c
-src/bluetooth-hid.c
-src/bluetooth-audio.c
-src/bluetooth-avrcp.c
-src/bluetooth-gatt.c
-src/bluetooth-ipsp.c
-src/bluetooth-dpm.c
-)
-ELSE ()
+
SET(SOURCES
src/bluetooth-common.c
src/bluetooth-adapter.c
src/bluetooth-socket.c
src/bluetooth-opp-server.c
src/bluetooth-opp-client.c
+src/bluetooth-map-client.c
src/bluetooth-pan.c
src/bluetooth-hdp.c
src/bluetooth-hid.c
src/bluetooth-ipsp.c
src/bluetooth-dpm.c
src/bluetooth-proximity.c
+src/bluetooth-tds.c
+src/bluetooth-otp.c
)
-IF (TIZEN_PROFILE_WEARABLE OR TIZEN_PROFILE_IVI)
+
+LIST(APPEND SOURCES src/bluetooth-proximity.c)
LIST(APPEND SOURCES src/bluetooth-pbap.c)
-ENDIF (TIZEN_PROFILE_WEARABLE OR TIZEN_PROFILE_IVI)
-ENDIF (TIZEN_PROFILE_TV)
ADD_LIBRARY(${fw_name} SHARED ${SOURCES})
PATTERN "*_private.h" EXCLUDE
PATTERN "${INC_DIR}/*.h"
)
-IF (TIZEN_PROFILE_TV)
-INSTALL(
- DIRECTORY ${INC_DIR}/tv/ DESTINATION include/network
- FILES_MATCHING
- PATTERN "${INC_DIR}/tv/*.h"
- )
-
-ELSE ()
- IF (TIZEN_PROFILE_WEARABLE OR TIZEN_PROFILE_IVI)
- INSTALL(
- DIRECTORY ${INC_DIR}/wearable/ DESTINATION include/network
- FILES_MATCHING
- PATTERN "${INC_DIR}/wearable/*.h"
- )
- ELSE ()
- INSTALL(
- DIRECTORY ${INC_DIR}/mobile/ DESTINATION include/network
- FILES_MATCHING
- PATTERN "${INC_DIR}/mobile/*.h"
- )
- ENDIF (TIZEN_PROFILE_WEARABLE OR TIZEN_PROFILE_IVI)
-ENDIF (TIZEN_PROFILE_TV)
SET(PC_NAME ${fw_name})
SET(PC_REQUIRED ${pc_dependents})
)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-IF (TIZEN_PROFILE_TV)
-ELSE ()
ADD_SUBDIRECTORY(test)
-ENDIF (TIZEN_PROFILE_TV)
IF(UNIX)
*
* To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK
*
- * More details on featuring your application can be found from <a href="https://developer.tizen.org/development/tools/native-tools/manifest-text-editor#feature"><b>Feat
+ * More details on featuring your application can be found from <a href="https://developer.tizen.org/development/tools/native-tools/manifest-text-editor#feature"><b>Feature Element</b>.</a>
* @endif
*/
*
* To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK
*
- * More details on featuring your application can be found from <a href="https://developer.tizen.org/development/tools/native-tools/manifest-text-editor#feature"><b>Feat
+ * More details on featuring your application can be found from <a href="https://developer.tizen.org/development/tools/native-tools/manifest-text-editor#feature"><b>Feature Element</b>.</a>
* @endif
*/
*
*/
+/**
+ * @defgroup CAPI_NETWORK_BLUETOOTH_IPSP_MODULE Bluetooth IPSP
+ * @brief Bluetooth IPSP(Internet Protocol Support Profile) API provides functions for supporting of exchanging IPv6 packets between devices over the BLE transport.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
+ *
+ * @section CAPI_NETWORK_BLUETOOTH_IPSP_MODULE_HEADER Required Header
+ * \#include <bluetooth.h>
+ *
+ * @section CAPI_NETWORK_BLUETOOTH_IPSP_MODULE_OVERVIEW Overview
+ * Two roles are defined for devices that implement IPSP.
+ * The @a Router is used for devices that can route IPv6 packets.
+ * The @a Node is used for devices that can originate or consume IPv6 appllication packets.
+ *
+ * @section CAPI_NETWORK_BLUETOOTH_IPSP_MODULE_FEATURE Related Features
+ * This API is related with the following features:\n
+ * - http://tizen.org/feature/network.bluetooth.le.ipsp\n
+ *
+ * It is recommended to design feature related codes in your application for reliability.\n
+ *
+ * You can check if a device supports the related features for this API by using @ref CAPI_SYSTEM_SYSTEM_INFO_MODULE, thereby controlling the procedure of your application.\n
+ *
+ * To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK.\n
+ *
+ * More details on featuring your application can be found from <a href="https://developer.tizen.org/development/tools/native-tools/manifest-text-editor#feature"><b>Feature Element</b>.</a>
+ *
+ */
+
/**
* @if WEARABLE
* @defgroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE Bluetooth PBAP
--- /dev/null
+/*
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __TIZEN_NETWORK_BLUETOOTH_H__
+#define __TIZEN_NETWORK_BLUETOOTH_H__
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <tizen_error.h>
+#include <tizen.h>
+
+#include <bluetooth_type.h>
+
+#ifndef TIZEN_DEPRECATED_API
+#define TIZEN_DEPRECATED_API __attribute__((__visibility__("default"), deprecated))
+#endif
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/**
+ * @file bluetooth.h
+ * @brief API to control the Bluetooth adapter and devices and communications.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
+ */
+
+
+/**
+ * @addtogroup CAPI_NETWORK_BLUETOOTH_MODULE
+ * @{
+ */
+
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
+ * @brief Initializes the Bluetooth API.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @remarks This function must be called before Bluetooth API starts. \n
+ * You must free all resources of the Bluetooth service by calling bt_deinitialize() if Bluetooth service is no longer needed.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_deinitialize()
+ */
+int bt_initialize(void);
+
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
+ * @brief Releases all resources of the Bluetooth API.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @remarks This function must be called if Bluetooth API is no longer needed.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre Bluetooth API must be initialized with bt_initialize().
+ *
+ * @see bt_initialize()
+ */
+int bt_deinitialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
+ * @brief Gets the specification name for the given UUID.
+ * @since_tizen 3.0
+ *
+ * @remarks The @a name must be released using free().
+ *
+ * @param[in] uuid The UUID
+ * @param[out] name The specification name defined at www.bluetooth.com
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_get_uuid()
+ */
+int bt_get_uuid_name(const char *uuid, char **name);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Gets the current state of local Bluetooth adapter.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[out] adapter_state The current adapter state
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_initialize()
+ */
+int bt_adapter_get_state(bt_adapter_state_e *adapter_state);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Gets the address of local Bluetooth adapter.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @remarks The @a local_address must be released with free() by you.
+ *
+ * @param[out] local_address The device address of local Bluetooth adapter
+ *
+ * @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_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @see bt_adapter_get_name()
+ */
+int bt_adapter_get_address(char **local_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Gets the name of local Bluetooth adapter.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @details Use this function to get the friendly name associated with Bluetooth
+ * device, retrieved by the remote Bluetooth devices.
+ *
+ * @remarks The @a local_name must be released with free() by you.
+ *
+ * @param[out] local_name The local device name
+ *
+ * @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_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ *
+ * @see bt_adapter_set_name()
+ */
+int bt_adapter_get_name(char **local_name);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Sets the name of local Bluetooth adapter.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] local_name The name of the Bluetooth device. \n
+ * The maximum length is 248 characters.
+ *
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post bt_adapter_name_changed_cb() will be invoked if this function returns #BT_ERROR_NONE.
+ *
+ * @see bt_adapter_get_name()
+ * @see bt_adapter_name_changed_cb()
+ * @see bt_adapter_set_name_changed_cb()
+ * @see bt_adapter_unset_name_changed_cb()
+ */
+int bt_adapter_set_name(const char *local_name);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Gets the visibility mode of local Bluetooth adapter.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[out] mode The visibility mode of the Bluetooth device
+ * @param[out] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds).
+ * @a duration is valid only if @a mode is #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE. This value can be NULL.
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ */
+int bt_adapter_get_visibility(bt_adapter_visibility_mode_e *mode, int *duration);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Starts the device discovery, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @details If a device is discovered, bt_adapter_device_discovery_state_changed_cb() will be invoked
+ * with #BT_ADAPTER_DEVICE_DISCOVERY_FOUND, and then bt_adapter_device_discovery_state_changed_cb()
+ * will be called with #BT_ADAPTER_DEVICE_DISCOVERY_FINISHED in case of the completion or cancellation of the discovery.
+ *
+ * @remarks To connect to peer Bluetooth device, you need to know its Bluetooth address. \n
+ * The device discovery can be stopped by bt_adapter_stop_device_discovery().
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_NOW_IN_PROGRESS Operation is now in progress
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post This function invokes bt_adapter_device_discovery_state_changed_cb().
+ *
+ * @see bt_adapter_is_discovering()
+ * @see bt_adapter_stop_device_discovery()
+ * @see bt_adapter_device_discovery_state_changed_cb()
+ * @see bt_adapter_set_device_discovery_state_changed_cb()
+ * @see bt_adapter_unset_device_discovery_state_changed_cb()
+ */
+int bt_adapter_start_device_discovery(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Stops the device discovery, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @remarks The device discovery process will take 10 ~ 20 seconds to get all the devices in vicinity.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_NOT_IN_PROGRESS Operation is not in progress
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The device discovery must be in progress with bt_adapter_start_device_discovery().
+ * @post This function invokes bt_adapter_device_discovery_state_changed_cb().
+ *
+ * @see bt_adapter_is_discovering()
+ * @see bt_adapter_start_device_discovery()
+ * @see bt_adapter_set_device_discovery_state_changed_cb()
+ * @see bt_adapter_unset_device_discovery_state_changed_cb()
+ * @see bt_adapter_device_discovery_state_changed_cb()
+ */
+int bt_adapter_stop_device_discovery(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Checks for the device discovery is in progress or not.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @remarks If Bluetooth discovery is in progress, other operations are not allowed and
+ * you have to either stop the discovery operation, or wait for it to be finished,
+ * before performing other operations.
+
+ * @param[out] is_discovering The discovering status: (@c true = in progress , @c false = not in progress )
+ *
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ *
+ * @see bt_adapter_start_device_discovery()
+ * @see bt_adapter_stop_device_discovery()
+ */
+int bt_adapter_is_discovering(bool *is_discovering);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Get the service mask from the uuid list.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] uuids The UUID list of the device.
+ * @param[in] no_of_service The number of the UUID list count.
+ * @param[out] service_mask_list Service mask list converted from the given UUID list.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_service_class_t
+ */
+int bt_device_get_service_mask_from_uuid_list(char **uuids,
+ int no_of_service,
+ bt_service_class_t *service_mask_list);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Retrieves the device information of all bonded devices.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param [in] callback The callback function to invoke
+ * @param [in] user_data The user data passed from the foreach function
+ *
+ * @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_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post This function invokes bt_adapter_bonded_device_cb().
+ *
+ * @see bt_adapter_bonded_device_cb()
+ */
+int bt_adapter_foreach_bonded_device(bt_adapter_bonded_device_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Gets the device information of a bonded device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @remarks The @a device_info must be released with bt_adapter_free_device_info() by you .
+ *
+ * @param [in] remote_address The address of remote device
+ * @param [out] device_info The bonded device information
+ *
+ * @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_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post This function invokes bt_adapter_bonded_device_cb().
+ *
+ * @see bt_adapter_bonded_device_cb()
+ */
+int bt_adapter_get_bonded_device_info(const char *remote_address, bt_device_info_s **device_info);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Frees device info.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param [in] device_info The bonded device information
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_adapter_get_bonded_device_info()
+ */
+int bt_adapter_free_device_info(bt_device_info_s *device_info);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Checks whether the UUID of service is used or not
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] service_uuid The UUID of service
+ * @param[out] used Indicates whether the service is used or not
+ * @return true on success, otherwise false.
+ * @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_NOT_SUPPORTED Not supported
+ */
+int bt_adapter_is_service_used(const char *service_uuid, bool *used);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Registers a callback function to be invoked when the Bluetooth adapter state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] callback The callback function to invoke
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_adapter_state_changed_cb() will be invoked.
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_state_changed_cb()
+ * @see bt_adapter_set_state_changed_cb()
+ * @see bt_adapter_unset_state_changed_cb()
+ */
+int bt_adapter_set_state_changed_cb(bt_adapter_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_set_state_changed_cb()
+ */
+int bt_adapter_unset_state_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Registers a callback function to be invoked when the name of Bluetooth adapter changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] callback The callback function to invoke
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_adapter_name_changed_cb() will be invoked.
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_name_changed_cb()
+ * @see bt_adapter_unset_name_changed_cb()
+ */
+int bt_adapter_set_name_changed_cb(bt_adapter_name_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_set_name_changed_cb()
+ */
+int bt_adapter_unset_name_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Registers a callback function to be invoked when the visibility mode changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_adapter_visibility_mode_changed_cb() will be invoked.
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_visibility_mode_changed_cb()
+ * @see bt_adapter_unset_visibility_mode_changed_cb()
+ */
+int bt_adapter_set_visibility_mode_changed_cb(bt_adapter_visibility_mode_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_set_visibility_mode_changed_cb()
+ */
+int bt_adapter_unset_visibility_mode_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Registers a callback function to be invoked every second
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * until the visibility mode is changed from #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE
+ * to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
+ * @details When you set visibility mode as #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE,
+ * @a callback will be called every second until visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized by bt_initialize().
+ * @post bt_adapter_visibility_duration_changed_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_adapter_visibility_duration_changed_cb()
+ * @see bt_adapter_unset_visibility_duration_changed_cb()
+ */
+int bt_adapter_set_visibility_duration_changed_cb(bt_adapter_visibility_duration_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_adapter_set_visibility_duration_changed_cb()
+ */
+int bt_adapter_unset_visibility_duration_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Registers a callback function to be invoked when the device discovery state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_adapter_device_discovery_state_changed_cb() will be invoked.
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_device_discovery_state_changed_cb()
+ * @see bt_adapter_set_device_discovery_state_changed_cb()
+ * @see bt_adapter_unset_device_discovery_state_changed_cb()
+ */
+int bt_adapter_set_device_discovery_state_changed_cb(bt_adapter_device_discovery_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_set_device_discovery_state_changed_cb()
+ */
+int bt_adapter_unset_device_discovery_state_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Get the Hash and Randmoizer value, synchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[out] hash The hash value received from the controller
+ * @param[out] randomizer The hash value received from the controller
+ * @param[out] hash_len The length of the hash value
+ * @param[out] randomizer_len The length of the randomizer value
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ */
+int bt_adapter_get_local_oob_data(unsigned char **hash, unsigned char **randomizer,
+ int *hash_len, int *randomizer_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Sets the Hash and Randmoizer value, synchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] remote_address Remote device address
+ * @param[in] hash The hash value received from the controller
+ * @param[in] randomizer The hash value received from the controller
+ * @param[in] hash_len The length of the hash value. Allowed value is 16
+ * @param[in] randomizer_len The length of the randomizer value. Allowed value is 16
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ */
+int bt_adapter_set_remote_oob_data(const char *remote_address,
+ unsigned char *hash, unsigned char *randomizer,
+ int hash_len, int randomizer_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Gets the Hash and Randmoizer value, synchronously.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks The @a hash192, randomizer192, hash256 and randomizer256 must be released using free()
+ *
+ * @param[out] hash192 The hash value derived from the P-192 public key
+ * @param[out] randomizer192 The randomizer value associated with the P-192 public key
+ * @param[out] hash192_len The length of @a hash192
+ * @param[out] randomizer192_len The length of @a randomizer192
+ * @param[out] hash256 The hash value derived from the P-256 public key
+ * @param[out] randomizer256 The randomizer value associated with the P-256 public key
+ * @param[out] hash256_len The length of @a hash256
+ * @param[out] randomizer256_len The length of @a randomizer256
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ */
+int bt_adapter_get_local_oob_ext_data(unsigned char **hash192, unsigned char **randomizer192,
+ int *hash192_len, int *randomizer192_len,
+ unsigned char **hash256, unsigned char **randomizer256,
+ int *hash256_len, int *randomizer256_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Sets the Hash and Randmoizer value, synchronously.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] remote_address Remote device address
+ * @param[in] hash192 The P-192 hash value received via OOB from remote device
+ * @param[in] randomizer192 The P-192 randomizer value received via OOB from remote device
+ * @param[in] hash192_len The length of @a hash192
+ * @param[in] randomizer192_len The length of @a randomizer192
+ * @param[in] hash256 The P-256 hash value received via OOB from remote device
+ * @param[in] randomizer256 The P-256 randomizer value received via OOB from remote device
+ * @param[in] hash256_len The length of @a hash256
+ * @param[in] randomizer256_len The length of @a randomizer256
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ */
+int bt_adapter_set_remote_oob_ext_data(const char *remote_address,
+ const unsigned char *hash192, const unsigned char *randomizer192,
+ int hash192_len, int randomizer192_len,
+ const unsigned char *hash256, const unsigned char *randomizer256,
+ int hash256_len, int randomizer256_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Deletes the Hash and Randomizer value, synchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] remote_address Remote device address
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ */
+int bt_adapter_remove_remote_oob_data(const char *remote_address);
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Starts the LE device discovery.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @details If a LE device is discovered, bt_adapter_le_device_discovery_state_changed_cb()
+* will be invoked with #BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND, and then bt_adapter_le_device_discovery_state_changed_cb()
+ * will be called with #BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED in case of the completion or cancellation of the discovery.
+ *
+ * @remarks To connect to peer Bluetooth device, you need to know its Bluetooth address. \n
+ * The device discovery can be stopped by bt_adapter_le_stop_device_discovery().
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_NOW_IN_PROGRESS Operation is now in progress
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post This function invokes bt_adapter_le_device_discovery_state_changed_cb().
+ *
+ * @see bt_adapter_le_is_discovering()
+ * @see bt_adapter_le_device_discovery_state_changed_cb()
+ * @see bt_adapter_le_set_device_discovery_state_changed_cb()
+ * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
+ */
+int bt_adapter_le_start_device_discovery(void) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Stops the LE device discovery, asynchronously.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_NOT_IN_PROGRESS Operation is not in progress
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The device discovery must be in progress with bt_adapter_le_start_device_discovery().
+ * @post This function invokes bt_adapter_le_device_discovery_state_changed_cb().
+ *
+ * @see bt_adapter_le_is_discovering()
+ * @see bt_adapter_le_start_device_discovery()
+ * @see bt_adapter_le_set_device_discovery_state_changed_cb()
+ * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
+ * @see bt_adapter_le_device_discovery_state_changed_cb()
+ */
+int bt_adapter_le_stop_device_discovery(void) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Checks for the LE device discovery is in progress or not.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @remarks If Bluetooth LE discovery is in progress, other operations are not allowed and
+ * you have to either stop the LE discovery operation, or wait for it to be finished,
+ * before performing other operations.
+
+ * @param[out] is_discovering The discovering status: (@c true = in progress , @c false = not in progress )
+ *
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ *
+ * @see bt_adapter_le_start_device_discovery()
+ * @see bt_adapter_le_stop_device_discovery()
+ */
+int bt_adapter_le_is_discovering(bool *is_discovering) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Registers a callback function to be invoked when the LE device discovery state changes.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_adapter_le_device_discovery_state_changed_cb() will be invoked.
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_le_device_discovery_state_changed_cb()
+ * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
+ */
+int bt_adapter_le_set_device_discovery_state_changed_cb(bt_adapter_le_device_discovery_state_changed_cb callback, void *user_data) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_le_set_device_discovery_state_changed_cb()
+ */
+int bt_adapter_le_unset_device_discovery_state_changed_cb(void) TIZEN_DEPRECATED_API;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Starts the LE scan to find LE advertisement.
+ * @since_tizen 2.3.1
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @details If a LE advertisement is found, bt_adapter_le_scan_result_cb() will be invoked.
+ *
+ * @param[in] cb The callback to report the result of this function
+ * @param[in] user_data The user data to be passed when callback is called
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_NOW_IN_PROGRESS Operation is now in progress
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post This function invokes bt_adapter_le_scan_result_cb().
+ *
+ * @see bt_adapter_le_scan_result_cb()
+ */
+int bt_adapter_le_start_scan(bt_adapter_le_scan_result_cb cb, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Stops the LE scan.
+ * @since_tizen 2.3.1
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_NOT_IN_PROGRESS Operation is not in progress
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The LE scan must be in progress with bt_adapter_le_start_scan().
+ *
+ * @see bt_adapter_le_start_scan()
+ */
+int bt_adapter_le_stop_scan(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Gets the service UUID list from the scan result information
+ * @since_tizen 2.3.1
+ *
+ * @remarks The @a uuids must be iterated as count and each pointed data must be released with free().
+ * Then uuids must be released with free(). \n
+ * 16-bit service UUID or 128-bit service UUID is supported. (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
+ *
+ * @param[in] info The scan result information
+ * @param[in] pkt_type The packet type
+ * @param[out] uuids The list of string of the service uuid
+ * @param[out] count The count of the service UUIDs
+ *
+ * @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_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_scan_result_cb()
+ */
+int bt_adapter_le_get_scan_result_service_uuids(const bt_adapter_le_device_scan_result_info_s *info,
+ bt_adapter_le_packet_type_e pkt_type, char ***uuids, int *count);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Gets the device name from the scan result information
+ * @since_tizen 2.3.1
+ *
+ * @remarks The @a name must be released with free() by you.
+ *
+ * @param[in] info The scan result information
+ * @param[in] pkt_type The packet type
+ * @param[out] name The device name
+ *
+ * @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_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_scan_result_cb()
+ */
+int bt_adapter_le_get_scan_result_device_name(const bt_adapter_le_device_scan_result_info_s *info,
+ bt_adapter_le_packet_type_e pkt_type, char **name);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Gets the transmission power level from the scan result information
+ * @since_tizen 2.3.1
+ *
+ * @param[in] info The scan result information
+ * @param[in] pkt_type The packet type
+ * @param[out] power_level The transmission power level in dBm
+ *
+ * @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_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_scan_result_cb()
+ */
+int bt_adapter_le_get_scan_result_tx_power_level(const bt_adapter_le_device_scan_result_info_s *info,
+ bt_adapter_le_packet_type_e pkt_type, int *power_level);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Gets the service solicitation UUID list from the scan result information
+ * @since_tizen 2.3.1
+ *
+ * @remarks The @a uuids must be iterated as count and each pointed data must be released with free().
+ * Then uuids must be released with free(). \n
+ * 16-bit service solicitation UUID or 128-bit service solicitation UUID is supported.
+ * (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
+ *
+ * @param[in] info The scan result information
+ * @param[in] pkt_type The packet type
+ * @param[out] uuids The list of string of the service solicitation uuid
+ * @param[out] count The count of the service UUIDs
+ *
+ * @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_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_scan_result_cb()
+ */
+int bt_adapter_le_get_scan_result_service_solicitation_uuids(const bt_adapter_le_device_scan_result_info_s *info,
+ bt_adapter_le_packet_type_e pkt_type, char ***uuids, int *count);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Gets the service data list from the scan result information
+ * @since_tizen 2.3.1
+ *
+ * @remarks The @a data_list must be released with bt_adapter_le_free_service_data_list() by you .
+ *
+ * @param[in] info The scan result information
+ * @param[in] pkt_type The packet type
+ * @param[out] data_list The list of the service data
+ * @param[out] count The count of the service data list
+ *
+ * @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_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_scan_result_cb()
+ */
+int bt_adapter_le_get_scan_result_service_data_list(const bt_adapter_le_device_scan_result_info_s *info,
+ bt_adapter_le_packet_type_e pkt_type, bt_adapter_le_service_data_s **data_list, int *count);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Frees service data list.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] data_list The list of the service data
+ * @param[in] count The count of the service data list
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_adapter_le_get_scan_result_service_data_list()
+ */
+int bt_adapter_le_free_service_data_list(bt_adapter_le_service_data_s *data_list, int count);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Gets the appearance from the scan result information
+ * @since_tizen 2.3.1
+ *
+ * @param[in] info The scan result information
+ * @param[in] pkt_type The packet type
+ * @param[out] appearance The appearance
+ *
+ * @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_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_scan_result_cb()
+ */
+int bt_adapter_le_get_scan_result_appearance(const bt_adapter_le_device_scan_result_info_s *info,
+ bt_adapter_le_packet_type_e pkt_type, int *appearance);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Gets the manufacturer data from the scan result information
+ * @since_tizen 2.3.1
+ *
+ * @remarks The @a manufacturer_data must be released with free() by you.
+ *
+ * @param[in] info The scan result information
+ * @param[in] pkt_type The packet type
+ * @param[out] manufacturer_id The manufacturer ID
+ * @param[out] manufacturer_data The manufacturer data (byte array)
+ * @param[out] manufacturer_data_len The length of manufacturer data
+ *
+ * @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_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_scan_result_cb()
+ */
+int bt_adapter_le_get_scan_result_manufacturer_data(const bt_adapter_le_device_scan_result_info_s *info,
+ bt_adapter_le_packet_type_e pkt_type, int *manufacturer_id, char **manufacturer_data, int *manufacturer_data_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Gets iBeacon format's data from the scan result information.
+ * @since_tizen 4.0
+ *
+ * @remarks The @a ibeacon_info must be released with bt_adapter_le_free_ibeacon_report().
+ *
+ * @param[in] info The scan result information
+ * @param[in] pkt_type The packet type
+ * @param[out] ibeacon_info The iBeacon format's scan result data
+ *
+ * @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_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_scan_result_cb()
+ */
+int bt_adapter_le_get_scan_result_ibeacon_report(const bt_adapter_le_device_scan_result_info_s *info,
+ bt_adapter_le_packet_type_e pkt_type,
+ bt_adapter_le_ibeacon_scan_result_info_s **ibeacon_info);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Frees iBeacon information.
+ * @since_tizen 4.0
+ *
+ * @param[in] ibeacon_info The iBeacon format's scan result data
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_adapter_le_get_scan_result_service_data_list()
+ */
+int bt_adapter_le_free_ibeacon_report(bt_adapter_le_ibeacon_scan_result_info_s *ibeacon_info);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Create advertiser to advertise device's existence or respond to LE scanning request.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[out] advertiser The handle of advertiser
+ *
+ * @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_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_destroy_advertiser()
+ */
+int bt_adapter_le_create_advertiser(bt_advertiser_h *advertiser);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Destroy advertiser.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[out] advertiser The handle of advertiser
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_create_advertiser()
+ */
+int bt_adapter_le_destroy_advertiser(bt_advertiser_h advertiser);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_IPSP_MODULE
+ * @brief Initializes the Bluetooth IPSP (Internet Protocol Support Profile) service.
+ * @since_tizen 4.0
+ * @param[in] callback The callback called when the initialization is finished
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ */
+int bt_ipsp_initialize(bt_ipsp_init_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_IPSP_MODULE
+ * @brief Deinitializes the Bluetooth IPSP (Internet Protocol Support Profile) service.
+ * @since_tizen 4.0
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ */
+int bt_ipsp_deinitialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_IPSP_MODULE
+ * @brief Connects to a remote device's IPSP service over LE, asynchronously.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address The remote address
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @post bt_ipsp_set_connection_state_changed_cb() will be invoked.
+ * @see bt_ipsp_set_connection_state_changed_cb()
+ */
+int bt_ipsp_connect(const char *remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_IPSP_MODULE
+ * @brief Disonneicts from a remote device's IPSP service, asynchronously.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address The remote address
+ * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected by bt_ipsp_connect().
+ * @post bt_ipsp_set_connection_state_changed_cb() will be invoked.
+ * @see bt_ipsp_connect()
+ * @see bt_ipsp_set_connection_state_changed_cb()
+ */
+int bt_ipsp_disconnect(const char *remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_IPSP_MODULE
+ * @brief Registers a callback function that will be invoked when the connection state changes.
+ * @since_tizen 4.0
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ */
+int bt_ipsp_set_connection_state_changed_cb(bt_ipsp_connection_state_changed_cb callback,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_IPSP_MODULE
+ * @brief Unregisters the callback function called when the connection state changes.
+ * @since_tizen 4.0
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ */
+int bt_ipsp_unset_connection_state_changed_cb(void);
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Set the data to be advertised or responded to scan request from LE scanning device.
+ * The maximum advertised or responded data size is 31 bytes
+ * including data type and system wide data.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @remarks In case the data_type is local name or tx power level, you don't need to input data
+ * because the data value is written automatically by system.
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] pkt_type The packet type
+ * @param[in] data_type The data type that is included in packet
+ * @param[in] data The data to be advertised or be responded to scan request from LE scanning device, no need in case of LOCAL_NAME or TX_POWER_LEVEL
+ * @param[in] data_size The size of data to be set.
+ *
+ * @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_QUOTA_EXCEEDED Quota exceeded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_clear_advertising_data()
+ */
+int bt_adapter_le_add_advertising_data(bt_advertiser_h advertiser,
+ bt_adapter_le_packet_type_e pkt_type, bt_adapter_le_packet_data_type_e data_type,
+ void *data, unsigned int data_size) TIZEN_DEPRECATED_API;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Add a service UUID to advertise or scan response data.
+ * The maximum advertised or responded data size is 31 bytes
+ * including data type and system wide data.
+ * @since_tizen 2.3.1
+ *
+ * @remarks 16-bit UUID or 128-bit UUID is supported. (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] pkt_type The packet type
+ * @param[in] uuid The string of the service UUID.
+ *
+ * @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_QUOTA_EXCEEDED Quota exceeded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_clear_advertising_data()
+ */
+int bt_adapter_le_add_advertising_service_uuid(bt_advertiser_h advertiser,
+ bt_adapter_le_packet_type_e pkt_type, const char *uuid);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Add a service solicitation UUID to advertise or scan response data.
+ * The maximum advertised or responded data size is 31 bytes
+ * including data type and system wide data.
+ * @since_tizen 2.3.1
+ *
+ * @remarks 16-bit service solicitation UUID or 128-bit service solicitation UUID is supported.
+ * (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] pkt_type The packet type
+ * @param[in] uuid The string of the service solicitation UUID.
+ *
+ * @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_QUOTA_EXCEEDED Quota exceeded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_clear_advertising_data()
+ */
+int bt_adapter_le_add_advertising_service_solicitation_uuid(bt_advertiser_h advertiser,
+ bt_adapter_le_packet_type_e pkt_type, const char *uuid);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Add service data to advertise or scan response data.
+ * The maximum advertised or responded data size is 31 bytes
+ * including data type and system wide data.
+ * @since_tizen 2.3.1
+ *
+ * @remarks 16-bit UUID is supported. (e.g. 180F)
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] pkt_type The packet type
+ * @param[in] uuid 16-bit UUID of the service
+ * @param[in] service_data The service data
+ * @param[in] service_data_len The data length of service data
+ *
+ * @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_QUOTA_EXCEEDED Quota exceeded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_clear_advertising_data()
+ */
+int bt_adapter_le_add_advertising_service_data(bt_advertiser_h advertiser,
+ bt_adapter_le_packet_type_e pkt_type, const char *uuid,
+ const char *service_data, int service_data_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the external appearance of this device to advertise or scan response data.
+ * Please refer to the adopted Bluetooth specification for the the appearance.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] pkt_type The packet type
+ * @param[in] appearance The external appearance of device
+ *
+ * @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_QUOTA_EXCEEDED Quota exceeded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_clear_advertising_data()
+ */
+int bt_adapter_le_set_advertising_appearance(bt_advertiser_h advertiser,
+ bt_adapter_le_packet_type_e pkt_type, int appearance);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Add manufacturer specific data to advertise or scan response data.
+ * Please refer to the Bluetooth Assigned Numbers provided by the Bluetooth SIG for a list of existing company identifiers.
+ * The maximum advertised or responded data size is 31 bytes
+ * including data type and system wide data.
+ * @since_tizen 2.3.1
+ *
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] pkt_type The packet type
+ * @param[in] manufacturer_id Manufacturer identifier
+ * @param[in] manufacturer_data The manufacturer specific data
+ * @param[in] manufacturer_data_len The data length of manufacturer data
+ *
+ * @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_QUOTA_EXCEEDED Quota exceeded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_clear_advertising_data()
+ */
+int bt_adapter_le_add_advertising_manufacturer_data(bt_advertiser_h advertiser,
+ bt_adapter_le_packet_type_e pkt_type, int manufacturer_id, const char *manufacturer_data, int manufacturer_data_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Set whether the device name should be included in advertise or scan response data.
+ * The maximum advertised or responded data size is 31 bytes
+ * including data type and system wide data.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] pkt_type The packet type
+ * @param[in] include_name Whether the device name should be included
+ *
+ * @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_QUOTA_EXCEEDED Quota exceeded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_clear_advertising_data()
+ */
+int bt_adapter_le_set_advertising_device_name(bt_advertiser_h advertiser,
+ bt_adapter_le_packet_type_e pkt_type, bool include_name);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Set whether the transmission power level should be included in advertise or scan response data.
+ * The maximum advertised or responded data size is 31 bytes
+ * including data type and system wide data.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] pkt_type The packet type
+ * @param[in] include_tx_power Whether the transmission power level should be included
+ *
+ * @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_QUOTA_EXCEEDED Quota exceeded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_clear_advertising_data()
+ */
+int bt_adapter_le_set_advertising_tx_power_level(bt_advertiser_h advertiser,
+ bt_adapter_le_packet_type_e pkt_type, bool include_tx_power);
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Unset the data to be advertised or responded to scan request from LE scanning device.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] pkt_type The packet type
+ * @param[in] data_type The data type to be removed from selected packet
+ *
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_add_advertising_data()
+ * @see bt_adapter_le_clear_advertising_data()
+ */
+int bt_adapter_le_remove_advertising_data(bt_advertiser_h advertiser,
+ bt_adapter_le_packet_type_e pkt_type, bt_adapter_le_packet_data_type_e data_type) TIZEN_DEPRECATED_API;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Clear all data to be advertised or responded to scan request from LE scanning device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] pkt_type The packet type to be cleared
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_add_advertising_data()
+ */
+int bt_adapter_le_clear_advertising_data(bt_advertiser_h advertiser, bt_adapter_le_packet_type_e pkt_type);
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Start advertising with passed advertiser and advertising parameters.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @details Once Bluetooth advertising is started, nearby Bluetooth LE(Low Energy) supported
+ * devices can know this device's existence. And one of them can make a connection request,
+ * if it is allowed.
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] adv_params The parameters of advertising \n
+ * If NULL is passed, default values which are defined in driver / controller are used.
+ * @param[in] cb The callback to report the result of this function
+ * @param[in] user_data The user data to be passed when callback is called
+ *
+ * @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_NOW_IN_PROGRESS Operation is now in progress
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post This function invokes bt_adapter_le_advertising_state_changed_cb().
+ *
+ * @see bt_adapter_le_stop_advertising()
+ * @see bt_adapter_le_advertising_state_changed_cb()
+ */
+int bt_adapter_le_start_advertising(bt_advertiser_h advertiser, bt_adapter_le_advertising_params_s *adv_params,
+ bt_adapter_le_advertising_state_changed_cb cb, void *user_data) TIZEN_DEPRECATED_API;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Stops the advertising.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] advertiser The handle of advertiser
+ *
+ * @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_NOT_IN_PROGRESS Operation is not in progress
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The advertising must be going on with bt_adapter_le_start_advertising_new().
+ * @post This function invokes bt_adapter_le_advertising_state_changed_cb().
+ *
+ * @see bt_adapter_le_start_advertising_new()
+ * @see bt_adapter_le_advertising_state_changed_cb()
+ */
+int bt_adapter_le_stop_advertising(bt_advertiser_h advertiser);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Start advertising with passed advertiser and advertising parameters.
+ * @since_tizen 2.3.1
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @details Once Bluetooth advertising is started, nearby Bluetooth LE(Low Energy) supported
+ * devices can know this device's existence. And one of them can make a connection request,
+ * if it is allowed.
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] cb The callback to report the result of this function
+ * @param[in] user_data The user data to be passed when callback is called
+ *
+ * @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_NOW_IN_PROGRESS Operation is now in progress
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post This function invokes bt_adapter_le_advertising_state_changed_cb().
+ *
+ * @see bt_adapter_le_stop_advertising()
+ * @see bt_adapter_le_advertising_state_changed_cb()
+ */
+int bt_adapter_le_start_advertising_new(bt_advertiser_h advertiser, bt_adapter_le_advertising_state_changed_cb cb, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Set advertising mode to control the advertising power and latency.
+ * @since_tizen 2.3.1
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] mode The mode of advertising
+ *
+ * @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_NOW_IN_PROGRESS Operation is now in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_start_advertising_new()
+ */
+int bt_adapter_le_set_advertising_mode(bt_advertiser_h advertiser, bt_adapter_le_advertising_mode_e mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Set whether the advertising type should be connectable or non-connectable
+ * @since_tizen 2.3.1
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] connectable The type of advertising
+ *
+ * @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_NOW_IN_PROGRESS Operation is now in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_start_advertising_new()
+ */
+int bt_adapter_le_set_advertising_connectable(bt_advertiser_h advertiser, bool connectable);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets Bluetooth LE scan mode
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] scan_mode The scan mode
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_ENABLED Adapter is not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Parameter is invalid
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The state of local bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ */
+int bt_adapter_le_set_scan_mode(bt_adapter_le_scan_mode_e scan_mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Creates a bond with a remote Bluetooth device, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks A bond can be destroyed by bt_device_destroy_bond().\n
+ * The bonding request can be cancelled by bt_device_cancel_bonding().
+ *
+ * @param[in] remote_address The address of the remote Bluetooth device with which the bond should be created
+ *
+ * @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_RESOURCE_BUSY Device or resource busy
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
+ * @post This function invokes bt_device_bond_created_cb().
+ *
+ * @see bt_adapter_start_device_discovery()
+ * @see bt_device_bond_created_cb()
+ * @see bt_device_cancel_bonding()
+ * @see bt_device_destroy_bond()
+ * @see bt_device_set_bond_created_cb()
+ * @see bt_device_unset_bond_created_cb()
+ */
+int bt_device_create_bond(const char *remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Cancels the bonding process.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks Use this function when the remote Bluetooth device is not responding to the
+ * bond request or you wish to cancel the bonding request.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The creating a bond must be in progress by bt_device_create_bond().
+ *
+ * @see bt_device_create_bond()
+ * @see bt_device_bond_created_cb()
+ * @see bt_device_set_bond_created_cb()
+ * @see bt_device_unset_bond_created_cb()
+ */
+int bt_device_cancel_bonding(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Destroys the bond, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] remote_address The address of the remote Bluetooth device to remove bonding
+ *
+ * @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_RESOURCE_BUSY Device or resource busy
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The bond with the remote device must be created with bt_device_create_bond().
+ * @post This function invokes bt_device_bond_destroyed_cb().
+ *
+ * @see bt_device_create_bond()
+ * @see bt_device_bond_destroyed_cb()
+ * @see bt_device_set_bond_destroyed_cb()
+ * @see bt_device_unset_bond_destroyed_cb()
+ */
+int bt_device_destroy_bond(const char *remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Sets an alias for the bonded device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] remote_address The address of the remote Bluetooth device
+ * @param[in] alias The alias of the remote Bluetooth device
+ *
+ * @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_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The bond with the remote device must be created with bt_device_create_bond().
+ *
+ * @see bt_device_create_bond()
+ */
+int bt_device_set_alias(const char *remote_address, const char *alias);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Sets the authorization of a bonded device, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks Once a device is authorized, you don't need to receive a confirmation.
+ *
+ * @param[in] remote_address The address of the remote Bluetooth device to authorize
+ * @param[in] authorization_state The Bluetooth authorization state
+ *
+ * @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_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The bond with the remote device must be created with bt_device_create_bond().
+ * @post bt_device_authorization_changed_cb() will be invoked.
+ *
+ * @see bt_device_create_bond()
+ * @see bt_device_authorization_changed_cb()
+ * @see bt_device_set_authorization_changed_cb()
+ * @see bt_device_unset_authorization_changed_cb()
+ */
+int bt_device_set_authorization(const char *remote_address, bt_device_authorization_e authorization_state);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Starts the search for services supported by the specified device, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks If creating a bond succeeds, which means bt_device_bond_created_cb() is called with result #BT_ERROR_NONE,
+ * then you don't need to run this function.\n
+ * The service search takes a couple of seconds to complete normally. \n
+ *
+ * @param[in] remote_address The address of the remote Bluetooth device whose services need to be checked
+ *
+ * @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_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
+ * @retval #BT_ERROR_SERVICE_SEARCH_FAILED Service search failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
+ * @pre The bond with the remote device must be created with bt_device_create_bond().
+ * @post This function invokes bt_device_service_searched_cb().
+ *
+ * @see bt_adapter_start_device_discovery()
+ * @see bt_device_create_bond()
+ * @see bt_device_bond_created_cb()
+ * @see bt_device_service_searched_cb()
+ * @see bt_device_set_service_searched_cb()
+ * @see bt_device_unset_service_searched_cb()
+ */
+int bt_device_start_service_search(const char *remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Gets the connected profiles.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] remote_address The address of the remote device
+ * @param[in] callback The callback function to invoke
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post bt_device_connected_profile() will be invoked.
+ * @see bt_device_connected_profile()
+ */
+int bt_device_foreach_connected_profiles(const char *remote_address, bt_device_connected_profile callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Gets the profile connected status.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] remote_address The address of the remote device
+ * @param[in] bt_profile wish to know bt_profile
+ * @param[out] connected_status the connected status
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ */
+int bt_device_is_profile_connected(const char *remote_address, bt_profile_e bt_profile,
+ bool *connected_status);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Updates a LE connection mode
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] remote_address The address of the remote Bluetooth device
+ * @param[in] mode The LE connection mode
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_device_update_le_connection_mode(const char *remote_address, bt_device_le_connection_mode_e mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Registers a callback function to be invoked when the bond creates.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_device_bond_created_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_device_bond_created_cb()
+ * @see bt_device_unset_bond_created_cb()
+ */
+int bt_device_set_bond_created_cb(bt_device_bond_created_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_device_set_bond_created_cb()
+ */
+int bt_device_unset_bond_created_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Registers a callback function to be invoked when the bond destroys.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_device_bond_destroyed_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_device_bond_destroyed_cb()
+ * @see bt_device_unset_bond_destroyed_cb()
+ */
+int bt_device_set_bond_destroyed_cb(bt_device_bond_destroyed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_device_set_bond_destroyed_cb()
+ */
+int bt_device_unset_bond_destroyed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Registers a callback function to be invoked when the authorization of device changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_device_authorization_changed_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_device_authorization_changed_cb()
+ * @see bt_device_set_authorization_changed_cb()
+ * @see bt_device_unset_authorization_changed_cb()
+ */
+int bt_device_set_authorization_changed_cb(bt_device_authorization_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_device_set_authorization_changed_cb()
+ */
+int bt_device_unset_authorization_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Registers a callback function to be invoked when the process of service search finishes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_device_service_searched_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_device_service_searched_cb()
+ * @see bt_device_unset_service_searched_cb()
+ */
+int bt_device_set_service_searched_cb(bt_device_service_searched_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_device_set_service_searched_cb()
+ */
+int bt_device_unset_service_searched_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Registers a callback function to be invoked when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_device_connection_state_changed_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_device_connection_state_changed_cb()
+ * @see bt_device_unset_connection_state_changed_cb()
+ */
+int bt_device_set_connection_state_changed_cb(bt_device_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Unregisters the callback function to be invoked when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_device_set_connection_state_changed_cb()
+ */
+int bt_device_unset_connection_state_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Registers a rfcomm server socket with a specific UUID.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks A socket can be destroyed by bt_socket_destroy_rfcomm().
+ *
+ * @param[in] service_uuid The UUID of service to provide
+ * @param[out] socket_fd The file descriptor of socket to listen
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ *
+ * @see bt_socket_listen_and_accept_rfcomm()
+ * @see bt_socket_destroy_rfcomm()
+ */
+int bt_socket_create_rfcomm(const char *service_uuid, int *socket_fd);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Removes the rfcomm server socket which was created using bt_socket_create_rfcomm().
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @remarks If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
+ * then bt_socket_connection_state_changed_cb() will be called when this function is finished successfully.
+ *
+ * @param[in] socket_fd The file descriptor of socket (which was created using bt_socket_create_rfcomm()) to destroy
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The socket must be created with bt_socket_create_rfcomm().
+ * @post If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
+ * then bt_socket_connection_state_changed_cb() will be called.
+ * @see bt_socket_create_rfcomm()
+ * @see bt_socket_connection_state_changed_cb()
+ * @see bt_socket_set_connection_state_changed_cb()
+ * @see bt_socket_unset_connection_state_changed_cb()
+ */
+int bt_socket_destroy_rfcomm(int socket_fd);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Starts listening on passed rfcomm socket and accepts connection requests.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @details Pop-up is shown automatically when a RFCOMM connection is requested.
+ * bt_socket_connection_state_changed_cb() will be called with
+ * #BT_SOCKET_CONNECTED if you click "yes" and connection is finished successfully.
+ * @param[in] socket_fd The file descriptor of socket on which start to listen
+ * @param[in] max_pending_connections The maximum number of pending connections
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The socket must be created with bt_socket_create_rfcomm().
+ * @post If callback function bt_socket_connection_state_changed_cb() is set,
+ * then bt_socket_connection_state_changed_cb() will be called when the remote Bluetooth device is connected.
+ * @see bt_socket_create_rfcomm()
+ * @see bt_socket_connection_state_changed_cb()
+ * @see bt_socket_set_connection_state_changed_cb()
+ * @see bt_socket_unset_connection_state_changed_cb()
+ */
+int bt_socket_listen_and_accept_rfcomm(int socket_fd, int max_pending_connections);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Connects to a specific RFCOMM based service on a remote Bluetooth device UUID, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks A connection can be disconnected by bt_socket_disconnect_rfcomm().
+ *
+ * @param[in] remote_address The address of the remote Bluetooth device
+ * @param[in] service_uuid The UUID of service provided by the remote Bluetooth device
+ *
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
+ * @pre The bond with the remote device must be created with bt_device_create_bond().
+ * @post This function invokes bt_socket_connection_state_changed_cb().
+ *
+ * @see bt_device_create_bond()
+ * @see bt_adapter_start_device_discovery()
+ * @see bt_device_start_service_search()
+ * @see bt_socket_disconnect_rfcomm()
+ * @see bt_socket_connection_state_changed_cb()
+ * @see bt_socket_set_connection_state_changed_cb()
+ * @see bt_socket_unset_connection_state_changed_cb()
+ */
+int bt_socket_connect_rfcomm(const char *remote_address, const char *service_uuid);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Disconnects the RFCOMM connection with the given file descriptor of connected socket.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] socket_fd The file descriptor of socket to close which was received using bt_socket_connection_state_changed_cb().
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The connection must be established.
+ *
+ * @see bt_socket_connection_state_changed_cb()
+ * @see bt_socket_set_connection_state_changed_cb()
+ * @see bt_socket_unset_connection_state_changed_cb()
+ */
+int bt_socket_disconnect_rfcomm(int socket_fd);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Sends data to the connected device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @remark The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
+ *
+ * @param[in] socket_fd The file descriptor of connected socket which was received using bt_socket_connection_state_changed_cb()
+ * @param[in] data The data to be sent
+ * @param[in] length The length of data to be sent
+ *
+ * @return the number of bytes written (zero indicates nothing was written).
+ * @retval On error, -1 is returned, and errno is set appropriately. See write 2 man page.
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @exception BT_ERROR_PERMISSION_DENIED Permission denied
+ * @exception BT_ERROR_AGAIN Resource temporarily unavailable
+ *
+ * @pre The connection must be established.
+ *
+ * @see bt_socket_connection_state_changed_cb()
+ * @see bt_socket_set_connection_state_changed_cb()
+ * @see bt_socket_unset_connection_state_changed_cb()
+ */
+int bt_socket_send_data(int socket_fd, const char *data, int length);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Register a callback function that will be invoked when you receive data.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_socket_data_received_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_socket_data_received_cb()
+ * @see bt_socket_set_data_received_cb()
+ * @see bt_socket_unset_data_received_cb()
+ */
+int bt_socket_set_data_received_cb(bt_socket_data_received_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_socket_data_received_cb()
+ * @see bt_socket_set_data_received_cb()
+ */
+int bt_socket_unset_data_received_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Register a callback function that will be invoked when a RFCOMM connection is requested.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_socket_connection_requested_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_socket_unset_connection_requested_cb()
+ */
+int bt_socket_set_connection_requested_cb(bt_socket_connection_requested_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_socket_set_connection_requested_cb()
+ * @see bt_socket_connection_requested_cb()
+ */
+int bt_socket_unset_connection_requested_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Register a callback function that will be invoked when the connection state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_socket_connection_state_changed_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_socket_connection_state_changed_cb()
+ * @see bt_socket_unset_connection_state_changed_cb()
+ */
+int bt_socket_set_connection_state_changed_cb(bt_socket_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_socket_connection_state_changed_cb()
+ * @see bt_socket_set_connection_state_changed_cb()
+ */
+int bt_socket_unset_connection_state_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
+ * @brief Initializes the Bluetooth OPP server requested by bt_opp_server_connection_requested_cb().
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @details No popup appears when an OPP connection is requested from a remote device.
+ * Instead, @a connection_requested_cb() will be called.
+ * At that time, you can call either bt_opp_server_accept() or bt_opp_server_reject().
+ * @remarks This function must be called to start Bluetooth OPP server. \n
+ * You must free all resources of the Bluetooth service by calling bt_opp_server_deinitialize() if Bluetooth OPP service is no longer needed.
+ * @param[in] destination The destination path
+ * @param[in] connection_requested_cb The callback called when an OPP connection is requested
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_opp_server_connection_requested_cb()
+ * @see bt_opp_server_deinitialize()
+ * @see bt_opp_server_accept()
+ * @see bt_opp_server_reject()
+ */
+int bt_opp_server_initialize_by_connection_request(const char *destination, bt_opp_server_connection_requested_cb connection_requested_cb, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
+ * @brief Deinitializes the Bluetooth OPP server.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_opp_server_deinitialize()
+ */
+int bt_opp_server_deinitialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
+ * @brief Accepts the push request from the remote device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @remarks If you initialize OPP server by bt_opp_server_initialize_by_connection_request(), then name is ignored.
+ * You can cancel the pushes by bt_opp_server_cancel_transfer() with transfer_id.
+ * @param[in] progress_cb The callback called when a file is being transferred
+ * @param[in] finished_cb The callback called when a transfer is finished
+ * @param[in] name The name to store. This can be NULL if you initialize OPP server by bt_opp_server_initialize_by_connection_request().
+ * @param[in] user_data The user data to be passed to the callback function
+ * @param[out] transfer_id The ID of transfer
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_opp_server_reject()
+ */
+int bt_opp_server_accept(bt_opp_server_transfer_progress_cb progress_cb,
+ bt_opp_server_transfer_finished_cb finished_cb, const char *name,
+ void *user_data, int *transfer_id);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
+ * @brief Rejects the push request from the remote device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_opp_server_accept()
+ */
+int bt_opp_server_reject(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
+ * @brief Cancels the transfer.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] transfer_id The ID of transfer
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_opp_server_accept()
+ */
+int bt_opp_server_cancel_transfer(int transfer_id);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
+ * @brief Sets the destination path of file to be pushed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] destination The destination path of file to be pushed
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_opp_server_set_destination(const char *destination);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
+ * @brief Initializes the Bluetooth OPP client.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @remarks This function must be called before Bluetooth OPP client starts. \n
+ * You must free all resources of the Bluetooth service by calling bt_opp_client_deinitialize()
+ * if Bluetooth OPP service is no longer needed.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_opp_client_deinitialize()
+ */
+int bt_opp_client_initialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
+ * @brief Deinitializes the Bluetooth OPP client.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_opp_client_initialize()
+ */
+int bt_opp_client_deinitialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
+ * @brief Adds file to be pushed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] file The path of file to be pushed
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_opp_client_clear_files()
+ * @see bt_opp_client_push_files()
+ */
+int bt_opp_client_add_file(const char *file);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
+ * @brief Adds file to be pushed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_opp_client_add_file()
+ * @see bt_opp_client_push_files()
+ */
+int bt_opp_client_clear_files(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
+ * @brief Pushes the file to the remote device, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @details At first, bt_opp_client_push_responded_cb() will be called when OPP server responds to the push request.
+ * After connection is established, bt_opp_client_push_progress_cb() will be called repeatedly until a file is transferred completely.
+ * If you send several files, then bt_opp_client_push_progress_cb() with another file will be called repeatedly until the file is transferred completely.
+ * bt_opp_client_push_finished_cb() will be called when the push request is finished.
+ * @param[in] remote_address The remote address
+ * @param[in] responded_cb The callback called when OPP server responds to the push request
+ * @param[in] progress_cb The callback called when each file is being transferred
+ * @param[in] finished_cb The callback called when the push request is finished
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_opp_client_initialize()
+ * @see bt_opp_client_cancel_push
+ */
+int bt_opp_client_push_files(const char *remote_address,
+ bt_opp_client_push_responded_cb responded_cb,
+ bt_opp_client_push_progress_cb progress_cb,
+ bt_opp_client_push_finished_cb finished_cb,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
+ * @brief Cancels the push request in progress, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre bt_opp_client_push_files() must be called.
+ * @post bt_opp_client_push_finished_cb() will be invoked with result #BT_ERROR_CANCELLED,
+ * which is a parameter of bt_opp_client_push_files().
+ * @see bt_opp_client_initialize()
+ * @see bt_opp_client_push_files()
+ */
+int bt_opp_client_cancel_push(void);
+
+/**
+ * @ingroup @if WEARABLE CAPI_NETWORK_BLUETOOTH_HID_HOST_MODULE CAPI @else_NETWORK_BLUETOOTH_HID_MODULE @endif
+ * @brief Initializes the Bluetooth HID(Human Interface Device) Host.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @remarks This function must be called before Bluetooth HID Host starts. \n
+ * You must free all resources of the Bluetooth service by calling bt_hid_host_deinitialize()
+ * if Bluetooth HID Host service is no longer needed.
+ * @param[in] connection_cb The callback called when the connection state is changed
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_hid_host_deinitialize()
+ */
+int bt_hid_host_initialize(bt_hid_host_connection_state_changed_cb connection_cb, void *user_data);
+
+/**
+ * @ingroup @if WEARABLE CAPI_NETWORK_BLUETOOTH_HID_HOST_MODULE CAPI @else_NETWORK_BLUETOOTH_HID_MODULE @endif
+ * @brief Deinitializes the Bluetooth HID(Human Interface Device) Host.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth HID service must be initialized with bt_hid_host_initialize().
+ * @see bt_hid_host_initialize()
+ */
+int bt_hid_host_deinitialize(void);
+
+/**
+ * @ingroup @if WEARABLE CAPI_NETWORK_BLUETOOTH_HID_HOST_MODULE CAPI @else_NETWORK_BLUETOOTH_HID_MODULE @endif
+ * @brief Connects the remote device with the HID(Human Interface Device) service, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address The remote address
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The local device must be bonded with the remote device by bt_device_create_bond().
+ * @pre The Bluetooth HID service must be initialized with bt_hid_host_initialize().
+ * @post bt_hid_host_connection_state_changed_cb() will be invoked.
+ * @see bt_hid_host_disconnect()
+ * @see bt_hid_host_connection_state_changed_cb()
+ */
+int bt_hid_host_connect(const char *remote_address);
+
+/**
+ * @ingroup @if WEARABLE CAPI_NETWORK_BLUETOOTH_HID_HOST_MODULE CAPI @else_NETWORK_BLUETOOTH_HID_MODULE @endif
+ * @brief Disconnects the remote device with the HID(Human Interface Device) service, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address The remote address
+ * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected by bt_hid_host_connect().
+ * @post bt_hid_host_connection_state_changed_cb() will be invoked.
+ * @see bt_hid_host_connect()
+ * @see bt_hid_host_connection_state_changed_cb()
+ */
+int bt_hid_host_disconnect(const char *remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Activates the Bluetooth HID Device role.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks This function must be called to register HID UUID.
+ * Only then a remote device is able to identify this one as a HID device.
+ *
+ * @param[in] callback The callback called when the connection state is changed
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_NOW_IN_PROGRESS Already activated
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_hid_device_deactivate()
+ */
+int bt_hid_device_activate(bt_hid_device_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Deactivates the Bluetooth HID Device role.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks This function must be called to deregister the HID UUID.
+ *
+ * @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_NOT_IN_PROGRESS Not activated
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_hid_device_activate()
+ */
+int bt_hid_device_deactivate(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Initiates the HID device connection with the Device role, asynchronously.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks This function must be called to Initiate the HID device role connection.
+ *
+ * @param[in] remote_address The remote device's address.
+
+ * @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_NOT_IN_PROGRESS Not activated
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_ALREADY_DONE Already connected
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @pre The local device must be bonded with the remote device by bt_device_create_bond().
+ * @see bt_initialize()
+ * @see bt_hid_device_activate()
+ */
+int bt_hid_device_connect(const char *remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Disconnects from the HID Host device, asynchronously.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] remote_address The remote device's address.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_disconnect(const char *remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Sends the mouse event data to the remote device.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] remote_address The remote device's address.
+ * @param[in] mouse_data The mouse data to be passed to the remote device.
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The HID connection must be established.
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_send_mouse_event(const char *remote_address,
+ const bt_hid_mouse_data_s *mouse_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Sends the keyboard event data to the remote device.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] remote_address The remote device's address.
+ * @param[in] key_data The key data to be passed to the remote device
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The HID connection must be established.
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_send_key_event(const char *remote_address,
+ const bt_hid_key_data_s *key_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Sets the callback called when the device receives data from the HID Host.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @param[in] callback The callback function to be set when data is received.
+ * @param[in] user_data The user data to be passed to the callback.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_set_data_received_cb(bt_hid_device_data_received_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Unsets the data received callback.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_unset_data_received_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Responds to reports from the HID Host.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] remote_address The remote device's address.
+ * @param[in] header_type The response header type
+ * @param[in] param_type The response parameter type
+ * @param[in] data The response data
+ * @param[in] data_len The length of the response data
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The HID connection must be established.
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_reply_to_report(const char *remote_address,
+ bt_hid_header_type_e header_type,
+ bt_hid_param_type_e param_type,
+ const char *data, unsigned int data_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
+ * @brief Initializes the Bluetooth profiles related with audio.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @remarks This function must be called before Bluetooth profiles related with audio starts. \n
+ * You must free all resources of the this service by calling bt_audio_deinitialize()
+ * if Bluetooth profiles related with audio service is no longer needed.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_audio_deinitialize()
+ */
+int bt_audio_initialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
+ * @brief Deinitializes the Bluetooth profiles related with audio.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ */
+int bt_audio_deinitialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
+ * @brief Connects the remote device with the given audio profile, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @details If you input type as #BT_AUDIO_PROFILE_TYPE_ALL and connection request succeeds, then bt_audio_connection_state_changed_cb() will be called twice
+ * when #BT_AUDIO_PROFILE_TYPE_HSP_HFP is connected and #BT_AUDIO_PROFILE_TYPE_A2DP is connected.
+ * @param[in] remote_address The remote address
+ * @param[in] type The type of audio profile
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @pre The local device must be bonded with the remote device by bt_device_create_bond().
+ * @post bt_audio_connection_state_changed_cb() will be invoked.
+ * @see bt_audio_disconnect()
+ * @see bt_audio_connection_state_changed_cb()
+ */
+int bt_audio_connect(const char *remote_address, bt_audio_profile_type_e type);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
+ * @brief Disconnects the remote device with the given audio profile, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @details If you input type as #BT_AUDIO_PROFILE_TYPE_ALL and disconnection request succeeds, then bt_audio_connection_state_changed_cb() will be called twice
+ * when #BT_AUDIO_PROFILE_TYPE_HSP_HFP is disconnected and #BT_AUDIO_PROFILE_TYPE_A2DP is disconnected.
+ * @param[in] remote_address The remote address
+ * @param[in] type The type of audio profile
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected by bt_audio_connect().
+ * @post bt_audio_connection_state_changed_cb() will be invoked.
+ * @see bt_audio_connect()
+ * @see bt_audio_connection_state_changed_cb()
+ */
+int bt_audio_disconnect(const char *remote_address, bt_audio_profile_type_e type);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
+ * @brief Registers a callback function that will be invoked when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_audio_connection_state_changed_cb()
+ */
+int bt_audio_set_connection_state_changed_cb(bt_audio_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
+ * @brief Unregisters a callback function that will be invoked when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_audio_connection_state_changed_cb()
+ * @see bt_audio_set_connection_state_changed_cb()
+ */
+int bt_audio_unset_connection_state_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
+ * @brief Initializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) target service.
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @remarks This function must be called before any other AVRCP target functions are called. \n
+ * You must free all resources of the this service by calling bt_avrcp_target_deinitialize()
+ * if Bluetooth AVRCP service is no longer needed.
+ * @param[in] callback The callback function called when the connection state is changed
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_avrcp_target_deinitialize()
+ */
+int bt_avrcp_target_initialize(bt_avrcp_target_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
+ * @brief Deinitializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) target service.
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_avrcp_target_initialize().
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_target_deinitialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
+ * @brief Notifies the equalizer state to the remote device.
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] state The state of equalizer
+ * @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_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_target_notify_equalizer_state(bt_avrcp_equalizer_state_e state);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
+ * @brief Notifies the repeat mode to the remote device.
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] mode The repeat mode
+ * @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_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_target_notify_repeat_mode(bt_avrcp_repeat_mode_e mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
+ * @brief Notifies the shuffle mode to the remote device.
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] mode The repeat mode
+ * @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_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_target_notify_shuffle_mode(bt_avrcp_shuffle_mode_e mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
+ * @brief Notifies the scan mode to the remote device.
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] mode The scan mode
+ * @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_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_target_notify_scan_mode(bt_avrcp_scan_mode_e mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
+ * @brief Notifies the player state to the remote device.
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] state The player state
+ * @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_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_target_notify_player_state(bt_avrcp_player_state_e state);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
+ * @brief Notifies the current position of song to the remote device.
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] position The current position in milliseconds
+ * @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_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_target_notify_position(unsigned int position);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
+ * @brief Notifies the track to the remote device.
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] title The title of track
+ * @param[in] artist The artist of track
+ * @param[in] album The album of track
+ * @param[in] genre The genre of track
+ * @param[in] track_num The track number
+ * @param[in] total_tracks The number of all tracks
+ * @param[in] duration The duration of track in milliseconds
+ * @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_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_target_notify_track(const char *title, const char *artist, const char *album, const char *genre, unsigned int track_num, unsigned int total_tracks, unsigned int duration);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Registers a callback function that will be invoked when the equalizer state is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_unset_equalizer_state_changed_cb()
+ */
+int bt_avrcp_set_equalizer_state_changed_cb(bt_avrcp_equalizer_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Unregisters a callback function that will be invoked when the equalizer state is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_set_equalizer_state_changed_cb()
+ */
+int bt_avrcp_unset_equalizer_state_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Registers a callback function that will be invoked when the repeat mode is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_unset_repeat_mode_changed_cb()
+ */
+int bt_avrcp_set_repeat_mode_changed_cb(bt_avrcp_repeat_mode_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Unregisters a callback function that will be invoked when the repeat mode is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_set_repeat_mode_changed_cb()
+ */
+int bt_avrcp_unset_repeat_mode_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Registers a callback function that will be invoked when the shuffle mode is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_unset_shuffle_mode_changed_cb()
+ */
+int bt_avrcp_set_shuffle_mode_changed_cb(bt_avrcp_shuffle_mode_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Unregisters a callback function that will be invoked when the shuffle mode is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_set_shuffle_mode_changed_cb()
+ */
+int bt_avrcp_unset_shuffle_mode_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Registers a callback function that will be invoked when the scan mode is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_unset_scan_mode_changed_cb()
+ */
+int bt_avrcp_set_scan_mode_changed_cb(bt_avrcp_scan_mode_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Unregisters a callback function that will be invoked when the scan mode is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_set_scan_mode_changed_cb()
+ */
+int bt_avrcp_unset_scan_mode_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Registers a callback function that will be invoked when the song position is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen 3.0
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_set_position_changed_cb()
+ */
+int bt_avrcp_set_position_changed_cb(bt_avrcp_position_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Unregisters a callback function that will be invoked when the song position is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen 3.0
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_set_position_changed_cb()
+ */
+int bt_avrcp_unset_position_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Registers a callback function that will be invoked when the Play status is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen 3.0
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_unset_play_status_changed_cb()
+ */
+int bt_avrcp_set_play_status_changed_cb(bt_avrcp_play_status_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Unregisters a callback function that will be invoked when the Play status is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen 3.0
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_unset_play_status_changed_cb()
+ */
+int bt_avrcp_unset_play_status_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Registers a callback function that will be invoked when the track metadata is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen 3.0
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_unset_track_info_changed_cb()
+ */
+int bt_avrcp_set_track_info_changed_cb(bt_avrcp_track_info_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Unregisters a callback function that will be invoked when the track metadata is changed. (e.g., by a TV remote control or other input devices)
+ * @since_tizen 3.0
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_set_track_info_changed_cb()
+ */
+int bt_avrcp_unset_track_info_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Initializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) controller service.
+ * @since_tizen 3.0
+ * @remarks This function must be called before any other AVRCP controller functions are called. \n
+ * You must free all resources of the this service by calling bt_avrcp_control_deinitialize()
+ * if Bluetooth AVRCP service is no longer needed.
+ * @param[in] callback The callback function called when the connection state is changed
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_avrcp_control_deinitialize()
+ */
+int bt_avrcp_control_initialize(bt_avrcp_control_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Deinitializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) controller service.
+ * @since_tizen 3.0
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
+ * @see bt_avrcp_control_initialize()
+ */
+int bt_avrcp_control_deinitialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Connects the AVRCP (Audio/Video Remote Control Profile) target device.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address The remote address
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
+ * @see bt_avrcp_control_initialize()
+ */
+int bt_avrcp_control_connect(const char *remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Disconnects from the AVRCP (Audio/Video Remote Control Profile) target device.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address The remote address
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_control_connect()
+ */
+int bt_avrcp_control_disconnect(const char *remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Sends a command to the target device.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] cmd The commands, one of: Play, Pause, Next, Rewind.
+ * @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 Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_control_connect()
+ */
+int bt_avrcp_control_send_player_command(bt_avrcp_player_command_e cmd);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Sends the equalizer state change request to the remote device.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] state The new equalizer state, one of: ON, OFF
+ * @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_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_set_equalizer_state(bt_avrcp_equalizer_state_e state);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Gets the the equalizer state of the remote device.
+ * @since_tizen 3.0
+ * @param[out] state The equalizer state, one of: ON, OFF
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected.
+ * @see bt_avrcp_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_get_equalizer_state(bt_avrcp_equalizer_state_e *state);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Sends the repeat change request to the remote device.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] mode The new repeat mode, one of: OFF, SINGLE, ALL
+ * @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_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_set_repeat_mode(bt_avrcp_repeat_mode_e mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Gets the repeat state of the remote device.
+ * @since_tizen 3.0
+ * @param[out] mode The repeat mode, one of: OFF, SINGLE, ALL
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected.
+ * @see bt_avrcp_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_get_repeat_mode(bt_avrcp_repeat_mode_e *mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Sends the shuffle mode change request to the remote device.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] mode The new shuffle mode, one of: OFF, GROUP, ALL
+ * @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_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_set_shuffle_mode(bt_avrcp_shuffle_mode_e mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Gets the shuffle mode of the remote device.
+ * @since_tizen 3.0
+ * @param[out] mode The shuffle mode, one of: OFF, GROUP, ALL
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected.
+ * @see bt_avrcp_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_get_shuffle_mode(bt_avrcp_shuffle_mode_e *mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Sends the scan mode change request to the remote device.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] mode The new scan mode, one of: OFF, GROUP, ALL
+ * @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_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_set_scan_mode(bt_avrcp_scan_mode_e mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Gets the scan mode of the remote device.
+ * @since_tizen 3.0
+ * @param[out] mode The scan mode, one of: OFF, GROUP, ALL
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected.
+ * @see bt_avrcp_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_get_scan_mode(bt_avrcp_scan_mode_e *mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Gets the position of the song played by the remote device.
+ * @since_tizen 3.0
+ * @param[out] position The position, in milliseconds
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected.
+ * @see bt_avrcp_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_get_position(unsigned int *position);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Gets the play status of the remote device.
+ * @since_tizen 3.0
+ * @param[out] status The play status, one of: PLAYING, STOPPED...
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected.
+ * @see bt_avrcp_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_get_play_status(bt_avrcp_player_state_e *status);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Gets the metadata of the track played by the remote device.
+ * @since_tizen 3.0
+ * @remarks The @a track must be released using bt_avrcp_control_free_track_info()
+ * @param[out] track The track metadata.
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected.
+ * @see bt_avrcp_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_get_track_info(bt_avrcp_metadata_attributes_info_s **track);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Frees the track metadata.
+ * @since_tizen 3.0
+ * @param[in] track The track metadata.
+ * @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_SUPPORTED Not supported
+ * @pre track should point to valid metadata address.
+ * @see bt_avrcp_control_get_track_info()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_free_track_info(bt_avrcp_metadata_attributes_info_s *track);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Registers an application that acts as the @a Sink role of HDP(Health Device Profile).
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @remarks The @a app_id must be released with free() by you.
+ * @param[in] data_type The data type of MDEP. This value is defined in ISO/IEEE 11073-20601 spec.
+ * For example, pulse oximeter is 0x1004 and blood pressure monitor is 0x1007.
+ * @param[out] app_id The ID of application
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @see bt_hdp_unregister_sink_app()
+ */
+int bt_hdp_register_sink_app(unsigned short data_type, char **app_id);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Unregisters the given application that acts as the @a Sink role of HDP(Health Device Profile).
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] app_id The ID of application
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_hdp_register_sink_app()
+ */
+int bt_hdp_unregister_sink_app(const char *app_id);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Connects the remote device which acts as @a Source role, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address The remote address
+ * @param[in] app_id The ID of application
+ * @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_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Sink role of HDP must be registered with bt_hdp_register_sink_app().
+ * @pre The local device must be bonded with the remote device by bt_device_create_bond().
+ * @post bt_hdp_connected_cb() will be invoked.
+ * @see bt_hdp_disconnect()
+ * @see bt_hdp_set_connection_state_changed_cb()
+ * @see bt_hdp_unset_connection_state_changed_cb()
+ */
+int bt_hdp_connect_to_source(const char *remote_address, const char *app_id);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Disconnects the remote device, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address The remote address
+ * @param[in] channel The connected data channel
+ * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected.
+ * @post bt_hdp_disconnected_cb() will be invoked.
+ * @see bt_hdp_set_connection_state_changed_cb()
+ * @see bt_hdp_unset_connection_state_changed_cb()
+ */
+int bt_hdp_disconnect(const char *remote_address, unsigned int channel);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Sends the data to the remote device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] channel The connected data channel
+ * @param[in] data The data to send
+ * @param[in] size The size of data to send (byte)
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected.
+ * @see bt_hdp_data_received_cb()
+ * @see bt_hdp_set_data_received_cb()
+ * @see bt_hdp_unset_data_received_cb()
+ */
+int bt_hdp_send_data(unsigned int channel, const char *data, unsigned int size);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Registers a callback function that will be invoked when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] connected_cb The callback function called when a connection is established
+ * @param[in] disconnected_cb The callback function called when a connection is disconnected
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_hdp_unset_connection_state_changed_cb()
+ */
+int bt_hdp_set_connection_state_changed_cb(bt_hdp_connected_cb connected_cb, bt_hdp_disconnected_cb disconnected_cb, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Unregisters a callback function that will be invoked when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_hdp_set_connection_state_changed_cb()
+ */
+int bt_hdp_unset_connection_state_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Registers a callback function that will be invoked when you receive the data.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_hdp_unset_data_received_cb()
+ */
+int bt_hdp_set_data_received_cb(bt_hdp_data_received_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Unregisters a callback function that will be invoked when you receive the data.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_hdp_set_data_received_cb()
+ */
+int bt_hdp_unset_data_received_cb(void);
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_foreach_services or bt_gatt_client_get_service instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the primary services of GATT(Generic Attribute Profile).
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address The address of the remote device
+ * @param[in] callback The callback function to invoke
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post @a callback will be called if there are primary services.
+ * @see bt_gatt_primary_service_cb()
+ */
+int bt_gatt_foreach_primary_services(const char *remote_address, bt_gatt_primary_service_cb callback, void *user_data) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1. This function call is not required because characteristic discovery is happened automatically.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Discovers the characteristics in service, asynchronously.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] service The attribute handle of service
+ * @param[in] callback The result callback
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post @a callback will be called.
+ * @see bt_gatt_characteristics_discovered_cb()
+ */
+int bt_gatt_discover_characteristics(bt_gatt_attribute_h service, bt_gatt_characteristics_discovered_cb callback, void *user_data) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_get_uuid instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the UUID of service.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @remarks @a uuid must be released with free() by you.
+ * @param[in] service The attribute handle of service
+ * @param[out] uuid The UUID of service
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ */
+int bt_gatt_get_service_uuid(bt_gatt_attribute_h service, char **uuid) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_service_foreach_included_services or bt_gatt_service_get_included_service instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the included services in service.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] service The attribute handle of service
+ * @param[in] callback The callback function to invoke
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post @a callback will be called if there are included services.
+ * @see bt_gatt_included_service_cb()
+ */
+int bt_gatt_foreach_included_services(bt_gatt_attribute_h service, bt_gatt_included_service_cb callback, void *user_data) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_set_characteristic_value_changed_cb instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Registers a callback function that will be invoked when a characteristic value is changed.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_gatt_unset_characteristic_changed_cb()
+ */
+int bt_gatt_set_characteristic_changed_cb(bt_gatt_characteristic_changed_cb callback, void *user_data) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_unset_characteristic_value_changed_cb instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Unregisters a callback function that will be invoked when a characteristic is changed.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_gatt_set_characteristic_changed_cb()
+ */
+int bt_gatt_unset_characteristic_changed_cb(void) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_set_characteristic_value_changed_cb instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Watches all the characteristic value changes of the service.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] service The attribute handle of service
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_gatt_unset_characteristic_changed_cb()
+ */
+int bt_gatt_watch_characteristic_changes(bt_gatt_attribute_h service) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_unset_characteristic_value_changed_cb instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Remove watching of all the characteristic value changes of the service.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] service The attribute handle of service
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_gatt_set_characteristic_changed_cb()
+ */
+int bt_gatt_unwatch_characteristic_changes(bt_gatt_attribute_h service) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_get_value or bt_gatt_get_uuid after bt_gatt_client_read_value instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the characteristic declaration.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @remarks @a uuid and @a value must be released with free() by you.
+ * @param[in] characteristic The attribute handle of characteristic
+ * @param[out] uuid The UUID of service
+ * @param[out] value The value of characteristic (byte array)
+ * @param[out] value_length The length of value
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @see bt_gatt_set_characteristic_value()
+ */
+int bt_gatt_get_characteristic_declaration(bt_gatt_attribute_h characteristic, char **uuid, unsigned char **value, int *value_length) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_set_value and bt_gatt_client_write_value instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Sets the value of characteristic.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] characteristic The attribute handle of characteristic
+ * @param[in] value The value of characteristic (byte array)
+ * @param[in] value_length The length of value
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @see bt_gatt_get_characteristic_declaration()
+ */
+int bt_gatt_set_characteristic_value(bt_gatt_attribute_h characteristic, const unsigned char *value, int value_length) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_set_value and bt_gatt_client_write_value instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Sets the value of characteristic request.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] characteristic The attribute handle of characteristic
+ * @param[in] value The value of characteristic (byte array)
+ * @param[in] value_length The length of value
+ * @param[in] callback The result callback
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @see bt_gatt_get_characteristic_declaration()
+ */
+int bt_gatt_set_characteristic_value_request(bt_gatt_attribute_h characteristic, const unsigned char *value,
+ int value_length, bt_gatt_characteristic_write_cb callback) TIZEN_DEPRECATED_API;
+
+/**
+* @deprecated Deprecated since 2.3.1. GATT handle clone is not allowed. Instead, all handles for client role must be got from GATT client handle.
+* @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+* @brief Clones the attribute handle.
+* @since_tizen @if WEARABLE @else 2.3 @endif
+* @remarks @a clone must be released with bt_gatt_destroy_attribute_handle().
+* @param[out] clone The cloned attribute handle
+* @param[in] origin The origin attribute handle
+* @return 0 on success, otherwise negative error value.
+* @retval #BT_ERROR_NONE Successful
+* @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+* @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+* @retval #BT_ERROR_NOT_SUPPORTED Not supported
+*
+* @see bt_gatt_destroy_attribute_handle()
+*/
+int bt_gatt_clone_attribute_handle(bt_gatt_attribute_h *clone,
+ bt_gatt_attribute_h origin) TIZEN_DEPRECATED_API;
+
+/**
+* @deprecated Deprecated since 2.3.1. GATT handle clone and destroy are not allowed.
+* @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+* @brief Destroys the attribute handle.
+* @since_tizen @if WEARABLE @else 2.3 @endif
+* @param[in] handle The attribute handle
+* @return 0 on success, otherwise negative error value.
+* @retval #BT_ERROR_NONE Successful
+* @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+* @retval #BT_ERROR_NOT_SUPPORTED Not supported
+*
+* @see bt_gatt_clone_attribute_handle()
+*/
+int bt_gatt_destroy_attribute_handle(bt_gatt_attribute_h handle) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use gatt_client_read_value instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Reads the value of characteristic from remote device.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] char_handle The attribute handle of characteristic
+ * @param[in] callback The result callback
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @see bt_gatt_get_characteristic_declaration()
+ */
+int bt_gatt_read_characteristic_value(bt_gatt_attribute_h char_handle,
+ bt_gatt_characteristic_read_cb callback) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 2.3.1. This function call is not required because descriptor discovery is happened automatically.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Discovers the characteristic descriptors of a characteristic within its definition, asynchronously.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] characteristic_handle The attribute handle of characteristic
+ * @param[in] callback The result callback
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post @a callback will be called.
+ * @see bt_gatt_characteristic_descriptor_discovered_cb()
+ */
+int bt_gatt_discover_characteristic_descriptor(bt_gatt_attribute_h characteristic_handle,
+ bt_gatt_characteristic_descriptor_discovered_cb callback,
+ void *user_data) TIZEN_DEPRECATED_API;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the value of a characteristic or descriptor's GATT handle.
+ * @since_tizen 2.3.1
+ *
+ * @remarks @a value must be released using free(). \n
+ * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_read_value() must be used prior to this function \n
+ * in order to get the remote device's current value.
+ *
+ * @param[in] gatt_handle The handle of a characteristic or descriptor
+ * @param[out] value The value of @a gatt_handle. It is a byte stream type.
+ * @param[out] value_length The length of @a value
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_get_value(bt_gatt_h gatt_handle, char **value, int *value_length);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the value of a characteristic or descriptor's GATT handle as an integer type.
+ * @since_tizen 2.3.1
+ *
+ * @remarks This function returns a locally saved value in @a gatt_handle. \n
+ * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_read_value() must be used prior to this function \n
+ * in order to get the remote device's current value.
+ *
+ * @param[in] gatt_handle The handle of a characteristic or descriptor
+ * @param[in] type The type of a saved value in @a gatt_handle
+ * @param[in] offset The offset from where a value will be read from @a gatt_handle as an integer type
+ * @param[out] value The integer type's value of @a gatt_handle
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_get_int_value(bt_gatt_h gatt_handle, bt_data_type_int_e type,
+ int offset, int *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the value of a characteristic or descriptor's GATT handle as a float type.
+ * @since_tizen 2.3.1
+ *
+ * @remarks This function returns a locally saved value in @a gatt_handle. \n
+ * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_read_value() must be used prior to this function \n
+ * in order to get the remote device's current value.
+ *
+ * @param[in] gatt_handle The handle of a characteristic or descriptor
+ * @param[in] type The type of a saved value in @a gatt_handle
+ * @param[in] offset The offset from where a value will be read from @a gatt_handle as an integer type
+ * @param[out] value The float type's value of @a gatt_handle
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_get_float_value(bt_gatt_h gatt_handle, bt_data_type_float_e type,
+ int offset, float *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Updates the value of a characteristic or descriptor's GATT handle.
+ * @since_tizen 2.3.1
+ *
+ * @remarks This function updates a value of @a gatt_handle locally. \n
+ * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_write_value() can be used after this function \n
+ * in order to update the remote device's value. \n
+ *
+ * @param[in] gatt_handle The handle of a characteristic or descriptor
+ * @param[in] value The value to be updated
+ * @param[in] value_length The length of @a value
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_set_value(bt_gatt_h gatt_handle, const char *value, int value_length);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Updates the value of a characteristic or descriptor's GATT handle using a integer type's value.
+ * @since_tizen 2.3.1
+ *
+ * @remarks This function updates a value of @a gatt_handle locally. \n
+ * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_write_value() can be used after this function \n
+ * in order to update the remote device's value. \n
+ *
+ * @param[in] gatt_handle The handle of a characteristic or descriptor
+ * @param[in] type @a value will be saved in @a gatt_handle as this type
+ * @param[in] value The integer type's value to be updated
+ * @param[in] offset The offset from where @a value will be saved in @a gatt_handle
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_set_int_value(bt_gatt_h gatt_handle, bt_data_type_int_e type,
+ int value, int offset);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Updates the value of a characteristic or descriptor's GATT handle using a float type's value.
+ * @since_tizen 2.3.1
+ *
+ * @remarks This function updates a value of @a gatt_handle locally. \n
+ * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_write_value() can be used after this function \n
+ * in order to update the remote device's value. \n
+ *
+ * @param[in] gatt_handle The handle of a characteristic or descriptor
+ * @param[in] type @a mantissa and @a exponent will be saved in @a gatt_handle as this type
+ * @param[in] mantissa The mantissa of float type's value to be updated
+ * @param[in] exponent The exponent of float type's value to be updated
+ * @param[in] offset The offset from where @a mantissa and @a exponent will be saved in @a gatt_handle
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_set_float_value(bt_gatt_h gatt_handle, bt_data_type_float_e type,
+ int mantissa, int exponent, int offset);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the UUID of a service, characteristic or descriptor's GATT handle.
+ * @since_tizen 2.3.1
+ *
+ * @remarks @a uuid must be released using free(). \n
+ * 16-bit UUID or 128-bit UUID is supported. (e.g. 2A19, 00002A19-0000-1000-8000-00805F9B34FB)
+ *
+ * @param[in] gatt_handle The handle of a service, characteristic or descriptor
+ * @param[out] uuid The string of the UUID of @a gatt_handle
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_get_uuid(bt_gatt_h gatt_handle, char **uuid);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the type of GATT handle.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] gatt_handle The GATT handle
+ * @param[out] gatt_type The type of @a gatt_handle
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_get_type(bt_gatt_h gatt_handle, bt_gatt_type_e *gatt_type);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the GATT client handle which the specified service belongs to.
+ * @since_tizen 2.3.1
+ *
+ * @remark This function doesn't allocate new memory for GATT client handle.
+ * The returned GATT client handle is the same one which was got from bt_gatt_client_create().
+ * So if it is destroyed by bt_gatt_client_destroy(), all related GATT handles are freed also.
+ *
+ * @param[in] service The service's GATT handle
+ * @param[out] client The GATT client handle which @a service belongs to
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_client_create()
+ */
+int bt_gatt_service_get_client(bt_gatt_h service, bt_gatt_client_h *client);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets a characteristic's GATT handle which has specific UUID.
+ * @since_tizen 2.3.1
+ *
+ * @remark The returned GATT handle must not be freed by application.
+ * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
+ * If there are multiple characteristics which have same UUID, only the first matched one will be returned.
+ *
+ * @param[in] service The service's GATT handle
+ * @param[in] uuid The characteristic's GATT handle which has this UUID will be returned if it exists
+ * @param[out] characteristic The characteristic's GATT handle which has @a uuid if it exists
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_service_get_characteristic(bt_gatt_h service, const char *uuid,
+ bt_gatt_h *characteristic);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Invokes @a callback function on each characteristic that belongs to the specified service.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] service The service's GATT handle
+ * @param[in] callback The function to be invoked on each characteristic
+ * @param[in] user_data The user data to be passed to @a callback function
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_foreach_cb()
+ */
+int bt_gatt_service_foreach_characteristics(bt_gatt_h service,
+ bt_gatt_foreach_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets an included service's GATT handle which has specific UUID.
+ * @since_tizen 2.3.1
+ *
+ * @remark The returned GATT handle must not be freed by application.
+ * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
+ * If there are multiple included services which have same UUID, only the first matched one will be returned.
+ *
+ * @param[in] service The service's GATT handle
+ * @param[in] uuid The included service's GATT handle which has this UUID will be returned if it exists
+ * @param[out] included_service The included service's GATT handle which has @a uuid if it exists
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_service_get_included_service(bt_gatt_h service, const char *uuid,
+ bt_gatt_h *included_service);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Invokes @a callback function on each included service that belongs to the specified service.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] service The service's GATT handle
+ * @param[in] callback The function to be invoked on each included service
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_foreach_cb()
+ */
+int bt_gatt_service_foreach_included_services(bt_gatt_h service,
+ bt_gatt_foreach_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the service's GATT handle which the specified characteristic belongs to.
+ * @since_tizen 2.3.1
+ *
+ * @remark The returned GATT handle must not be freed by application.
+ * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
+ *
+ * @param[in] characteristic The characteristic's GATT handle
+ * @param[out] service The service's GATT handle which @a characteristic belongs to
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_characteristic_get_service(bt_gatt_h characteristic, bt_gatt_h *service);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the properties which a characteristic's GATT handle has.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] characteristic The characteristic's GATT handle
+ * @param[out] properties The properties which a characteristic's GATT handle has
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_property_e
+ */
+int bt_gatt_characteristic_get_properties(bt_gatt_h characteristic, int *properties);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the write type of the specified characteristic.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] characteristic The characteristic's GATT handle
+ * @param[out] write_type The write type of the specified characteristic
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_write_type_e
+ */
+int bt_gatt_characteristic_get_write_type(bt_gatt_h characteristic,
+ bt_gatt_write_type_e *write_type);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Updates the write type of the specified characteristic.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] characteristic The characteristic's GATT handle
+ * @param[in] write_type The write type to be updated
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_client_write_value()
+ * @see bt_gatt_write_type_e
+ */
+int bt_gatt_characteristic_set_write_type(bt_gatt_h characteristic,
+ bt_gatt_write_type_e write_type);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets a descriptor's GATT handle which has specific UUID.
+ * @since_tizen 2.3.1
+ *
+ * @remark The returned GATT handle must not be freed by application.
+ * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
+ * If there are multiple descriptors which have same UUID, only the first matched one will be returned.
+ *
+ * @param[in] characteristic The characteristic's GATT handle
+ * @param[in] uuid The descriptor's GATT handle which has this UUID will be returned if it exists
+ * @param[out] descriptor The descriptor's GATT handle which has @a uuid if it exists
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_characteristic_get_descriptor(bt_gatt_h characteristic, const char *uuid,
+ bt_gatt_h *descriptor);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Invokes @a callback function on each descriptor that belongs to the specified characteristic.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] characteristic The characteristic's GATT handle
+ * @param[in] callback The function to be invoked on each descriptor
+ * @param[in] user_data The user data to be passed to @a callback function
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_foreach_cb()
+ */
+int bt_gatt_characteristic_foreach_descriptors(bt_gatt_h characteristic,
+ bt_gatt_foreach_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the characteristic's GATT handle which the specified descriptor belongs to.
+ * @since_tizen 2.3.1
+ *
+ * @remark The returned GATT handle must not be freed by application.
+ * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
+ *
+ * @param[in] descriptor The descriptor's GATT handle
+ * @param[out] characteristic The characteristic's GATT handle which @a descriptor belongs to
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_descriptor_get_characteristic(bt_gatt_h descriptor, bt_gatt_h *characteristic);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Creates the GATT client handle.
+ * @since_tizen 2.3.1
+ *
+ * @remark The GATT client handle must be freed by bt_gatt_client_destroy() after use
+ *
+ * @param[in] remote_address The address of the remote device
+ * @param[out] client The created GATT client's handle
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_ALREADY_DONE Operation is already done
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_client_destroy()
+ */
+int bt_gatt_client_create(const char *remote_address, bt_gatt_client_h *client);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Destroys the GATT client's handle.
+ * @since_tizen 2.3.1
+ *
+ * @remark All related service, characteristic and descriptor's GATT handles are freed also
+ *
+ * @param[in] client The GATT client's handle
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_client_create()
+ */
+int bt_gatt_client_destroy(bt_gatt_client_h client);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the address of remote device.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] client The created GATT client's handle
+ * @param[out] remote_address The address of the remote device which is associated with @a client
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_client_create()
+ */
+int bt_gatt_client_get_remote_address(bt_gatt_client_h client,
+ char **remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Reads the value of a characteristic or descriptor from the remote device asynchronously.
+ * @since_tizen 2.3.1
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
+ * @param[in] callback When a read request is completed, this callback function will be called
+ * @param[in] user_data The user data to be passed to @a callback function
+ * @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_NOW_IN_PROGRESS Operation now in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_client_create()
+ * @see bt_gatt_client_request_completed_cb()
+ */
+int bt_gatt_client_read_value(bt_gatt_h gatt_handle,
+ bt_gatt_client_request_completed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Writes the value of a characteristic or descriptor to the remote device asynchronously.
+ * @since_tizen 2.3.1
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
+ * @param[in] callback When a write request is completed, this callback function will be called
+ * @param[in] user_data The user data to be passed to @a callback function
+ * @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_NOW_IN_PROGRESS Operation now in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_client_create()
+ * @see bt_gatt_characteristic_set_write_type()
+ * @see bt_gatt_set_value()
+ * @see bt_gatt_set_int_value()
+ * @see bt_gatt_set_float_value()
+ * @see bt_gatt_client_request_completed_cb()
+ */
+int bt_gatt_client_write_value(bt_gatt_h gatt_handle,
+ bt_gatt_client_request_completed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Requests a change of the ATT MTU value.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] client The created GATT client's handle
+ * @param[in] mtu The new MTU value
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @see bt_gatt_client_set_att_mtu_changed_cb()
+ */
+int bt_gatt_client_request_att_mtu_change(bt_gatt_client_h client, unsigned int mtu);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the ATT MTU value set for a connection.
+ * @since_tizen 4.0
+ *
+ * @param[in] client The created GATT client's handle
+ * @param[out] mtu The MTU value set for a connection
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_client_get_att_mtu(bt_gatt_client_h client, unsigned int *mtu);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Registers a callback function to be invoked when the ATT MTU is changed.
+ * @since_tizen 4.0
+ * @param[in] client The created GATT client's handle
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_device_connection_state_changed_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_gatt_client_request_att_mtu_change()
+ * @see bt_gatt_client_unset_att_mtu_changed_cb()
+ */
+int bt_gatt_client_set_att_mtu_changed_cb(bt_gatt_client_h client, bt_gatt_client_att_mtu_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Unregisters the callback function to be invoked when the ATT MTU is changed.
+ * @since_tizen 4.0
+ * @param[in] client The created GATT client's handle
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_gatt_client_request_att_mtu_change()
+ * @see bt_gatt_client_set_att_mtu_changed_cb()
+ */
+int bt_gatt_client_unset_att_mtu_changed_cb(bt_gatt_client_h client);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Registers a callback function to be invoked when the characteristic value is changed on the remote device.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] characteristic The characteristic's GATT handle
+ * @param[in] callback The callback to be invoked when the value is changed and it is informed
+ * @param[in] user_data The user data to be passed to @a callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @see bt_gatt_client_characteristic_value_changed_cb()
+ * @see bt_gatt_client_unset_characteristic_value_change()
+ */
+int bt_gatt_client_set_characteristic_value_changed_cb(bt_gatt_h characteristic,
+ bt_gatt_client_characteristic_value_changed_cb callback,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Unregisters a callback function to be invoked when the characteristic value is changed on the remote device.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] characteristic The characteristic's GATT handle, whose value change will not be informed
+ * @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_SUPPORTED Not supported
+ *
+ * @see bt_gatt_client_set_characteristic_value_changed_cb()
+ */
+int bt_gatt_client_unset_characteristic_value_changed_cb(bt_gatt_h characteristic);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets a service's GATT handle which has specific UUID.
+ * @since_tizen 2.3.1
+ *
+ * @remark The returned GATT handle must not be freed by application.
+ * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
+ * If there are multiple services which have same UUID, only the first matched one will be returned.
+ *
+ * @param[in] client The GATT client's handle
+ * @param[in] uuid The service's GATT handle which has this UUID will be returned if it exists
+ * @param[out] service The service's GATT handle which has @a uuid if it exists
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_client_get_service(bt_gatt_client_h client, const char *uuid,
+ bt_gatt_h *service);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Invokes @a callback function on each service that belongs to the specified GATT client.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] client The GATT client's handle
+ * @param[in] callback The function to be invoked on each service
+ * @param[in] user_data The user data to be passed to @a callback function
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_foreach_cb()
+ */
+int bt_gatt_client_foreach_services(bt_gatt_client_h client,
+ bt_gatt_foreach_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Registers a callback function to be invoked when service is changed from a remote device(GATT server).
+ * @since_tizen 3.0
+ *
+ * @param[in] client The GATT client's handle
+ * @param[in] callback The callback to be invoked
+ * @param[in] user_data The user data to be passed to @a callback function
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_client_unset_service_changed_cb()
+ */
+int bt_gatt_client_set_service_changed_cb(bt_gatt_client_h client,
+ bt_gatt_client_service_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Unregisters a callback function
+ * @since_tizen 3.0
+ *
+ * @param[in] client The GATT client's handle
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_client_set_service_changed_cb()
+ */
+int bt_gatt_client_unset_service_changed_cb(bt_gatt_client_h client);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Connect to a specific LE based service on a remote bluetooth device address, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks A connection can be disconnected by bt_gatt_disconnect().
+ *
+ * @param[in] address The address of the remote Bluetooth device.
+ * @param[in] auto_connect The flag of the auto connection.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @pre The remote device must support le connection.
+ * @post This function invokes bt_gatt_connection_state_changed_cb().
+ *
+ * @see bt_initialize()
+ * @see bt_gatt_disconnect()
+ * @see bt_gatt_set_connection_state_changed_cb()
+ * @see bt_gatt_unset_connection_state_changed_cb()
+ * @see bt_gatt_connection_state_changed_cb()
+ */
+int bt_gatt_connect(const char *address, bool auto_connect);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Disconnect to LE connection with the given remote Bluetooth device address, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] address The address of the remote Bluetooth device
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The connection must be established.
+ * @post This function invokes bt_gatt_connection_state_changed_cb().
+ *
+ * @see bt_initialize()
+ * @see bt_gatt_connect()
+ * @see bt_gatt_set_connection_state_changed_cb()
+ * @see bt_gatt_unset_connection_state_changed_cb()
+ * @see bt_gatt_connection_state_changed_cb()
+ */
+int bt_gatt_disconnect(const char *address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Registers a callback function that will be invoked when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] callback The callback function to register.
+ * @param[in] user_data The user data to be passed to the callback function.
+ *
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_connect()
+ * @see bt_gatt_disconnect()
+ * @see bt_gatt_unset_connection_state_changed_cb()
+ */
+int bt_gatt_set_connection_state_changed_cb(bt_gatt_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Unregisters a callback function that will be invoked when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_connect()
+ * @see bt_gatt_disconnect()
+ * @see bt_gatt_connection_state_changed_cb()
+ */
+int bt_gatt_unset_connection_state_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Destroys the GATT handle of service.
+ * @since_tizen 3.0
+ *
+ * @param[in] gatt_handle The handle of service
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_service_create()
+ */
+int bt_gatt_service_destroy(bt_gatt_h gatt_handle);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Destroys the GATT handle of characteristic.
+ * @since_tizen 3.0
+ *
+ * @param[in] gatt_handle The handle of characteristic
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_characteristic_create()
+ */
+int bt_gatt_characteristic_destroy(bt_gatt_h gatt_handle);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Destroys the GATT handle of descriptor.
+ * @since_tizen 3.0
+ *
+ * @param[in] gatt_handle The handle of descriptor
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_descriptor_create()
+ */
+int bt_gatt_descriptor_destroy(bt_gatt_h gatt_handle);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Gets the permissions which a characteristic's GATT handle has.
+ * @since_tizen 3.0
+ *
+ * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
+ *
+ * @param[in] gatt_handle The handle of a characteristic
+ * @param[out] permissions The permissions which a characteristic's GATT handle has
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_characteristic_create()
+ * @see bt_gatt_permission_e
+ */
+int bt_gatt_characteristic_get_permissions(bt_gatt_h gatt_handle, int *permissions);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Gets the permissions which a descriptor's GATT handle has.
+ * @since_tizen 3.0
+ *
+ * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
+ *
+ * @param[in] gatt_handle The handle of a descriptor
+ * @param[out] permissions The permissions which a descriptor's GATT handle has
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_descriptor_create()
+ * @see bt_gatt_permission_e
+ */
+int bt_gatt_descriptor_get_permissions(bt_gatt_h gatt_handle, int *permissions);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Creates the GATT service.
+ * @since_tizen 3.0
+ *
+ * @remarks The @a service should be destroyed by using bt_gatt_service_destroy()
+ *
+ * @param[in] uuid The UUID of the service
+ * @param[in] type The type of the service
+ * @param[out] service The GATT handle of the created service
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_service_destroy()
+ */
+int bt_gatt_service_create(const char *uuid, bt_gatt_service_type_e type,
+ bt_gatt_h *service);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Adds a characteristic to a specified service.
+ * @since_tizen 3.0
+ *
+ * @param[in] service The service's GATT handle
+ * @param[in] characteristic The characteristic's GATT handle to be added
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_service_create()
+ * @see bt_gatt_characteristic_create()
+ */
+int bt_gatt_service_add_characteristic(bt_gatt_h service,
+ bt_gatt_h characteristic);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Adds a service to a specified service as included service.
+ * @since_tizen 3.0
+ *
+ * @param[in] service The service's GATT handle
+ * @param[in] included_service The service's GATT handle to be added as included service
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_service_create()
+ */
+int bt_gatt_service_add_included_service(bt_gatt_h service,
+ bt_gatt_h included_service);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Gets the GATT server handle to which the specified service belongs.
+ * @since_tizen 3.0
+ *
+ * @remarks The returned Server handle must not be freed by application.
+ *
+ * @param[in] service The service's GATT handle
+ * @param[out] server The GATT server handle to which @a service belongs
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_server_create()
+ * @see bt_gatt_service_create()
+ * @see bt_gatt_server_register_service()
+ */
+int bt_gatt_service_get_server(bt_gatt_h service, bt_gatt_server_h *server);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Creates the GATT characteristic.
+ * @since_tizen 3.0
+ *
+ * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
+ * @remarks The @a properties can be one or more values of #bt_gatt_property_e, combined with bitwise 'or'.
+ * @remarks The @a characteristic should be destroyed by using bt_gatt_characteristic_destroy().
+ *
+ * @param[in] uuid The UUID of the characteristic
+ * @param[in] permissions the permissions of the characteristic
+ * @param[in] properties The properties of the characteristic
+ * @param[in] value The value(byte stream) of the characteristic
+ * @param[in] value_length The length of @a value
+ * @param[out] characteristic The GATT handle of the created characteristic
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_characteristic_destroy()
+ */
+int bt_gatt_characteristic_create(const char *uuid, int permissions,
+ int properties, const char *value, int value_length,
+ bt_gatt_h *characteristic);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Adds a descriptor to a specified characteristic.
+ * @since_tizen 3.0
+ *
+ * @param[in] characteristic The GATT handle of the characteristic
+ * @param[in] descriptor The descriptor's GATT handle to be added
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_characteristic_create()
+ * @see bt_gatt_descriptor_create()
+ */
+int bt_gatt_characteristic_add_descriptor(bt_gatt_h characteristic,
+ bt_gatt_h descriptor);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Creates the GATT characteristic descriptor.
+ * @since_tizen 3.0
+ *
+ * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
+ * @remarks The @a descriptor should be destroyed by using bt_gatt_descriptor_destroy().
+ *
+ * @param[in] uuid The UUID of the descriptor
+ * @param[in] permissions The permissions of the descriptor
+ * @param[in] value The value(byte stream) associated with the descriptor
+ * @param[in] value_length The length of @a value
+ * @param[out] descriptor The GATT handle of the created characteristic descriptor
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_descriptor_destroy()
+ */
+int bt_gatt_descriptor_create(const char *uuid, int permissions,
+ const char *value, int value_length,
+ bt_gatt_h *descriptor);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Initializes the GATT Server.
+ * @since_tizen 3.0
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @see bt_gatt_server_deinitialize()
+ */
+int bt_gatt_server_initialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief DeInitializes the GATT server.
+ * @since_tizen 3.0
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @see bt_gatt_server_initialize()
+ */
+int bt_gatt_server_deinitialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Creates the GATT server's handle.
+ * @since_tizen 3.0
+ *
+ * @remarks The @a server handle should be destroyed by using bt_gatt_server_destroy()
+ *
+ * @param[out] server The GATT server's handle
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_server_destroy()
+ */
+int bt_gatt_server_create(bt_gatt_server_h *server);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Destroys the GATT server's handle.
+ * @since_tizen 3.0
+ *
+ * @remarks All registered services to GATT server are unregistered
+ *
+ * @param[in] server The GATT server's handle
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_server_create()
+ */
+int bt_gatt_server_destroy(bt_gatt_server_h server);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Registers a callback function to be invoked when a read request for a specified characteristic or descriptor is issued from a remote device(GATT client).
+ * @since_tizen 3.0
+ *
+ * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
+ * @param[in] callback The callback to be invoked
+ * @param[in] user_data The user data to be passed to @a callback function
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_server_read_value_requested_cb()
+ * @see bt_gatt_server_send_response()
+ */
+int bt_gatt_server_set_read_value_requested_cb(bt_gatt_h gatt_handle,
+ bt_gatt_server_read_value_requested_cb callback,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Registers a callback function to be invoked when the remote device enables or disables the Notification/Indication for particular characteristics.
+ * @since_tizen 3.0
+ *
+ * @param[in] gatt_handle The GATT handle of a characteristic
+ * @param[in] callback The callback to be invoked
+ * @param[in] user_data The user data to be passed to @a callback function
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_server_characteristic_notification_state_changed_cb()
+ */
+int bt_gatt_server_set_characteristic_notification_state_change_cb(bt_gatt_h gatt_handle,
+ bt_gatt_server_characteristic_notification_state_changed_cb callback,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Registers a callback function to be invoked when a value of a characteristic or descriptor has been changed by a remote device(GATT client)'s request.
+ * @since_tizen 3.0
+ *
+ * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
+ * @param[in] callback The callback to be invoked
+ * @param[in] user_data The user data to be passed to @a callback function
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_server_write_value_requested_cb()
+ */
+int bt_gatt_server_set_write_value_requested_cb(bt_gatt_h gatt_handle,
+ bt_gatt_server_write_value_requested_cb callback,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Registers a specified service to the specified GATT server that the local device is hosting.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] server The GATT server that local device is hosting
+ * @param[in] service The service, which needs to be registered in @a server
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_ALREADY_DONE Operation is already done
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_server_create()
+ * @see bt_gatt_service_create()
+ * @see bt_gatt_server_start()
+ * @see bt_gatt_server_unregister_service()
+ */
+int bt_gatt_server_register_service(bt_gatt_server_h server, bt_gatt_h service);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Unregisters a specified service from the specified GATT server that the local device is hosting.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] server The GATT server that local device is hosting
+ * @param[in] service The service, which needs to be unregistered from @a server
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_SERVICE_NOT_FOUND Service not found
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_server_register_service()
+ */
+int bt_gatt_server_unregister_service(bt_gatt_server_h server, bt_gatt_h service);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Unregisters all services from the specified GATT server that the local device is hosting.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] server The GATT server that local device is hosting
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_server_register_service()
+ */
+int bt_gatt_server_unregister_all_services(bt_gatt_server_h server);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Registers the application along with the GATT services of the application it is hosting.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_ALREADY_DONE Operation is already done
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_server_initialize()
+ * @see bt_gatt_server_create()
+ * @see bt_gatt_service_create()
+ * @see bt_gatt_server_unregister_service()
+ */
+int bt_gatt_server_start(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Sends a response to the remote device as a result of a read/write request.
+ * @since_tizen 3.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks Until this function is called, a read/write request is not finished.
+ *
+ * @param[in] request_id The identification of a read/write request
+ * @param[in] request_type The request type for read/write
+ * @param[in] offset The offset from where a value is read
+ * @param[in] resp_status The application error if any occurred or BT_ERROR_NONE for successful.
+ * @param[in] value The value to be sent. It will be sent from @a offset. If it is NULL, a requested GATT handle's value will be sent from @a offset.
+ * @param[in] value_length Value Length
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_server_read_value_requested_cb()
+ */
+int bt_gatt_server_send_response(int request_id, bt_gatt_att_request_type_e request_type,
+ int offset, int resp_status, char *value, int value_length);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Notifies value change of the characteristic to the remote devices which enable a Client Characteristic Configuration Descriptor.
+ * @since_tizen 3.0
+ *
+ * @param[in] characteristic The characteristic which has a changed value
+ * @param[in] callback The function to be invoked on each remote device when a sending operation is done
+ * @param[in] device_address Remote device address to send notify or indicate and if set to NULL then notify/indicate all is enabled.
+ * @param[in] user_data The user data to be passed to @a callback function
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_server_notification_sent_cb()
+ */
+int bt_gatt_server_notify_characteristic_changed_value(bt_gatt_h characteristic,
+ bt_gatt_server_notification_sent_cb callback,
+ const char *device_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Gets a service's GATT handle which has specific UUID.
+ * @since_tizen 3.0
+ *
+ * @remark The returned GATT handle must not be freed by application.
+ * It will be freed when an associated server is destroyed by bt_gatt_server_destroy().
+ * If there are multiple services which have same UUID, only the first matched one will be returned.
+ *
+ * @param[in] server The GATT server's handle
+ * @param[in] uuid The service's GATT handle which has this UUID will be returned if it exists
+ * @param[out] service The service's GATT handle which has @a uuid if it exists
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NO_DATA No data available
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_gatt_server_get_service(bt_gatt_server_h server, const char *uuid,
+ bt_gatt_h *service);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Invokes @a callback function on each service that belongs to the specified GATT server.
+ * @since_tizen 3.0
+ *
+ * @param[in] server The GATT server's handle
+ * @param[in] callback The function to be invoked on each service
+ * @param[in] user_data The user data to be passed to @a callback function
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_foreach_cb()
+ */
+int bt_gatt_server_foreach_services(bt_gatt_server_h server,
+ bt_gatt_foreach_cb callback, void *user_data);
+
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Initializes the Bluetooth PBAP Client.
+ * @details This initialization is necessary to call other PBAP client APIs.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @remarks This function must be called to initialize Bluetooth PBAP client. You must free all resources of the Bluetooth service
+ * by calling bt_pbap_client_deinitialize() if Bluetooth PBAP Client is no longer needed.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
+ *
+ * @see bt_pbap_client_deinitialize()
+ * @see bt_pbap_client_connect()
+ * @see bt_pbap_client_disconnect()
+ * @see bt_pbap_client_get_phone_book_size()
+ * @see bt_pbap_client_get_phone_book()
+ * @see bt_pbap_client_get_list()
+ * @see bt_pbap_client_pull_vcard()
+ * @see bt_pbap_client_search_phone_book()
+ */
+int bt_pbap_client_initialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Deinitializes the Bluetooth PBAP Client.
+ * @details This deinitialization must be done to free resources when the PBAP client is not longer needed.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
+ * The PBAP client must be initialized with bt_pbap_client_initialize().
+ * @see bt_pbap_client_deinitialize()
+ * @see bt_pbap_client_connect()
+ * @see bt_pbap_client_disconnect()
+ * @see bt_pbap_client_get_phone_book_size()
+ * @see bt_pbap_client_get_phone_book()
+ * @see bt_pbap_client_get_list()
+ * @see bt_pbap_client_pull_vcard()
+ * @see bt_pbap_client_search_phone_book()
+ */
+int bt_pbap_client_deinitialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Registers a callback function that will be invoked when the connection state is changed.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
+ * @see bt_pbap_client_initialize()
+ */
+int bt_pbap_client_set_connection_state_changed_cb(bt_pbap_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Unregisters a callback function that will be invoked when the connection state is changed.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
+ * @see bt_pbap_client_initialize()
+ */
+int bt_pbap_client_unset_connection_state_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Connects to PBAP server, asynchronously.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] address The other device's address
+ *
+ * @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 Adapter is not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
+ * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
+ * @pre The local device must be bonded with the remote device by bt_device_create_bond().
+ * @post bt_pbap_connection_state_changed_cb() will be invoked.
+ * @see bt_pbap_client_disconnect()
+ * @see bt_pbap_client_set_connection_state_changed_cb()
+ */
+int bt_pbap_client_connect(const char *address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Disconnects from PBAP server, asynchronously.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] address The other device's address
+ *
+ * @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 Adapter is not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
+ * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
+ * @pre PBAP connection must be created with bt_pbap_client_connect().
+ * @post bt_pbap_connection_state_changed_cb() will be invoked.
+ * @see bt_pbap_client_connect()
+ * @see bt_pbap_client_set_connection_state_changed_cb()
+ */
+int bt_pbap_client_disconnect(const char *address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Gets size of phone book from PBAP server, asynchronously.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] address The other device's address
+ * @param[in] source Source of the phone book (Phone/SIM)
+ * @param[in] folder_type Type of folder
+ * @param[in] callback The callback function called when PBAP phone book size is returned.
+ * @param[in] user_data Data to be passed to the PBAP phone book size callback.
+ *
+ * @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 Adapter is not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
+ * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
+ * @pre PBAP connection must be created with bt_pbap_client_connect().
+ *
+ * @see bt_pbap_client_connect()
+ */
+int bt_pbap_client_get_phone_book_size(const char *address,
+ bt_pbap_address_book_source_e source,
+ bt_pbap_folder_type_e folder_type,
+ bt_pbap_phone_book_size_cb callback,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Gets all contacts and call logs as vCard from PBAP server, asynchronously.
+ * @details The received phone book file will be saved in the platform downloads folder.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/bluetooth
+ * http://tizen.org/privilege/mediastorage
+ *
+ * @param[in] address The other device's address
+ * @param[in] source Source of phone book (Phone/SIM)
+ * @param[in] folder_type Type of folder
+ * @param[in] format The vCard format
+ * @param[in] order Specifies which field shall be used to sort vCards.
+ * @param[in] offset The number of vCards to be excluded, counting from the beginning
+ * @param[in] max_list_count The maximum number of vCards to be fetched
+ * @param[in] fields vCard fields to be fetched; one or more #bt_pbap_field_e values combined with bitwise 'or'
+ * @param[in] callback The callback function called when PBAP phone book is Pulled.
+ * @param[in] user_data Data to be passed to the PBAP phone book pulling callback.
+ *
+ * @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 Adapter is not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
+ * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
+ * @pre PBAP connection must be created with bt_pbap_client_connect().
+ *
+ * @see bt_pbap_client_connect()
+ */
+int bt_pbap_client_get_phone_book(const char *address,
+ bt_pbap_address_book_source_e source,
+ bt_pbap_folder_type_e folder_type,
+ bt_pbap_vcard_format_e format,
+ bt_pbap_sort_order_e order,
+ unsigned short offset,
+ unsigned short max_list_count,
+ unsigned int fields,
+ bt_pbap_phone_book_received_cb callback,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Gets contact and call log information from the PBAP server, asynchronously.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] address The other device's address
+ * @param[in] source Source of phone book (Phone/SIM)
+ * @param[in] folder_type Type of folder
+ * @param[in] order Specifies which field shall be used to sort vCards.
+ * @param[in] offset vCards to be excluded from beginning.
+ * @param[in] max_list_count Maximum number of vCards to be fetched
+ * @param[in] callback The callback function called when PBAP List is returned.
+ * @param[in] user_data Data to be passed to the PBAP phone book pulling callback.
+ *
+ * @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 Adapter is not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
+ * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
+ * @pre PBAP connection must be created with bt_pbap_client_connect().
+ *
+ * @see bt_pbap_client_connect()
+ */
+int bt_pbap_client_get_list(const char *address,
+ bt_pbap_address_book_source_e source,
+ bt_pbap_folder_type_e folder_type,
+ bt_pbap_sort_order_e order,
+ unsigned short offset,
+ unsigned short max_list_count,
+ bt_pbap_list_vcards_cb callback,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Gets the selected contact using the index parameter as vCard from PBAP server, asynchronously.
+ * @details The received phone book file will be saved in the platform downloads folder.
+ * The @a index value should be equal to the value of the @a index field in the #bt_pbap_vcard_info_s structure,
+ * which can be obtained with bt_pbap_client_get_list() or bt_pbap_client_search_phone_book().
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/bluetooth
+ * http://tizen.org/privilege/mediastorage
+ *
+ * @param[in] address The other device's address
+ * @param[in] source Source of phone book (Phone/SIM)
+ * @param[in] folder_type Type of folder
+ * @param[in] index The handle index of vCard to be fetched
+ * @param[in] format Format of vCard
+ * @param[in] fields vCard fields to be fetched; one or more #bt_pbap_field_e values combined with bitwise 'or'
+ * @param[in] callback The callback function called when PBAP phone book is Pulled.
+ * @param[in] user_data Data to be passed to the PBAP phone book Pulling callback.
+ *
+ * @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 Adapter is not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
+ * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
+ * @pre PBAP connection must be created with bt_pbap_client_connect().
+ * @pre The vCard information (#bt_pbap_vcard_info_s) must be obtained with bt_pbap_client_get_list() or bt_pbap_client_search_phone_book().
+ * @see bt_pbap_client_connect()
+ * @see bt_pbap_client_get_list()
+ * @see bt_pbap_client_search_phone_book()
+ */
+int bt_pbap_client_pull_vcard(const char *address,
+ bt_pbap_address_book_source_e source,
+ bt_pbap_folder_type_e folder_type,
+ int index,
+ bt_pbap_vcard_format_e format,
+ unsigned int fields,
+ bt_pbap_phone_book_received_cb callback,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Finds and fetches the contact and call log information from the PBAP server, asynchronously.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] address The other device's address
+ * @param[in] source Source of phone book (Phone/SIM)
+ * @param[in] folder_type Type of folder
+ * @param[in] search_attribute field to be search
+ * @param[in] search_value pattern to be searched for
+ * @param[in] order Specifies which field shall be used to sort vCards.
+ * @param[in] offset vCards to be excluded from beginning.
+ * @param[in] max_list_count Maximum number of vCards to be fetched
+ * @param[in] callback The callback function called when PBAP List is returned.
+ * @param[in] user_data Data to be passed to the PBAP phone book pulling callback.
+ *
+ * @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 Adapter is not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
+ * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
+ * @pre PBAP connection must be created with bt_pbap_client_connect().
+ *
+ * @see bt_pbap_client_connect()
+ */
+int bt_pbap_client_search_phone_book(const char *address,
+ bt_pbap_address_book_source_e source,
+ bt_pbap_folder_type_e folder_type,
+ bt_pbap_search_field_e search_attribute,
+ const char *search_value,
+ bt_pbap_sort_order_e order,
+ unsigned short offset,
+ unsigned short max_list_count,
+ bt_pbap_list_vcards_cb callback,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Creates a scan filter to find only LE advertisements which match specific requirements.
+ * @details If the filter's attribute is not set, then the filter will accept
+ * all values of that attribute. If an attribute is set, the filter
+ * will accept only advertisements which match the set attribute.
+ *
+ * For example, if device name is set with
+ * bt_adapter_le_scan_filter_set_device_name(), the filter will accept
+ * only advertisements from devices with the given name. If device name
+ * is not set, advertisements will be filtered without regard to device
+ * names.
+ * @since_tizen 4.0
+ *
+ * @remarks The @a scan_filter should be destroyed with bt_adapter_le_scan_filter_destroy().
+ *
+ * @param[out] scan_filter The scan filter handle
+ *
+ * @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_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_scan_filter_destroy()
+ */
+int bt_adapter_le_scan_filter_create(bt_scan_filter_h *scan_filter);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Destroys a scan filter.
+ * @since_tizen 4.0
+ *
+ * @param[in] scan_filter The scan filter handle
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_scan_filter_create()
+ */
+int bt_adapter_le_scan_filter_destroy(bt_scan_filter_h scan_filter);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the device address for the advertisements filter.
+ * @since_tizen 4.0
+ *
+ * @param[in] scan_filter The scan filter handle
+ * @param[in] address The device address by which advertisements will be filtered
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_set_device_address(bt_scan_filter_h scan_filter, const char *address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the device name for the advertisements filter.
+ * @details Any previously set value will be overwritten.
+ * @since_tizen 4.0
+ *
+ * @param[in] scan_filter The scan filter handle
+ * @param[in] name The device name by which advertisements will be filtered
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_set_device_name(bt_scan_filter_h scan_filter, const char *name);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the service UUID for the advertisements filter.
+ * @details Any previously set value will be overwritten.
+ * @since_tizen 4.0
+ *
+ * @param[in] scan_filter The scan filter handle
+ * @param[in] uuid The service UUID by which advertisements will be filtered
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_set_service_uuid(bt_scan_filter_h scan_filter, const char *uuid);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the service UUID and the mask for the advertisements filter,
+ * to use for filtering by partial data.
+ * @details Any previously set value will be overwritten. The mask works as follows:
+ * For each bit set to 1 in the mask, the corresponding bits in @a uuid
+ * and in the filtered data will have to be equal. If the mask bit is set to 0,
+ * the corresponding bits will be ignored.
+ * @since_tizen 4.0
+ *
+ * @remarks The @a mask and the service @a uuid must have equal lengths.
+ *
+ * @param[in] scan_filter The scan filter handle
+ * @param[in] uuid The service UUID by which advertisements will be filtered
+ * @param[in] mask The mask to filter advertisements
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_set_service_uuid_with_mask(bt_scan_filter_h scan_filter,
+ const char *uuid, const char *mask);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the service solicitation UUID for the advertisements filter.
+ * @details Any previously set value will be overwritten.
+ * @since_tizen 4.0
+ *
+ * @param[in] scan_filter The scan filter handle
+ * @param[in] uuid The service solicitation UUID by which advertisements will be filtered
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_set_service_solicitation_uuid(bt_scan_filter_h scan_filter, const char *uuid);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the service solicitation UUID and the mask for the advertisements filter,
+ * to use for filtering by partial data.
+ * @details Any previously set value will be overwritten. The mask works as follows:
+ * For each bit set to 1 in the mask, the corresponding bits in @a uuid
+ * and in the filtered data will have to be equal. If the mask bit is set to 0,
+ * the corresponding bits will be ignored.
+ * @since_tizen 4.0
+ *
+ * @remarks The @a mask and the service solicitation @a uuid must have equal lengths.
+ *
+ * @param[in] scan_filter The scan filter handle
+ * @param[in] uuid The service solicitation UUID by which advertisements will be filtered
+ * @param[in] mask The mask by which advertisements will be filtered
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_set_service_solicitation_uuid_with_mask(bt_scan_filter_h scan_filter,
+ const char *uuid, const char *mask);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the service data for the advertisements filter.
+ * @details Any previously set value will be overwritten.
+ * @since_tizen 4.0
+ *
+ * @param[in] scan_filter The scan filter handle
+ * @param[in] uuid The service UUID by which advertisements will be filtered
+ * @param[in] data The service data by which advertisements will be filtered
+ * @param[in] data_len The length of the service data
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_set_service_data(bt_scan_filter_h scan_filter,
+ const char *uuid, const char *data, unsigned int data_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the service data and the mask for the advertisements filter,
+ * to use for filtering by partial data.
+ * @details Any previously set value will be overwritten. The mask works as follows:
+ * For each bit set to 1 in the mask, the corresponding bits in @a data
+ * and in the filtered data will have to be equal. If the mask bit is set to 0,
+ * the corresponding bits will be ignored.
+ * @since_tizen 4.0
+ *
+ * @remarks The @a mask and the service @a data must have equal lengths.
+ *
+ * @param[in] scan_filter The scan filter handle
+ * @param[in] uuid The service UUID by which advertisements will be filtered
+ * @param[in] data The service data by which advertisements will be filtered
+ * @param[in] data_len The length of the service data
+ * @param[in] mask The mask by which advertisements will be filtered
+ * @param[in] mask_len The length of the mask
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_set_service_data_with_mask(bt_scan_filter_h scan_filter,
+ const char *uuid,
+ const char *data,
+ unsigned int data_len,
+ const char *mask,
+ unsigned int mask_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the manufacturer data for the advertisements filter.
+ * @details Any previously set value will be overwritten.
+ * @since_tizen 4.0
+ *
+ * @param[in] scan_filter The scan filter handle
+ * @param[in] manufacturer_id The manufacturer ID (0x0000 ~ 0xFFFF)
+ * @param[in] data The manufacturer data (byte array)
+ * @param[in] data_len The length of the manufacturer data
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_set_manufacturer_data(bt_scan_filter_h scan_filter,
+ int manufacturer_id,
+ const char *data,
+ unsigned int data_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the manufacturer data and the mask for the advertisements filter,
+ * to use for filtering by partial data.
+ * @details Any previously set value will be overwritten. The mask works as follows:
+ * For each bit set to 1 in the mask, the corresponding bits in @a data
+ * and in the filtered data will have to be equal. If the mask bit is set to 0,
+ * the corresponding bits will be ignored.
+ * @since_tizen 4.0
+ *
+ * @remarks The @a mask and the manufacturer @a data must have equal lengths.
+ *
+ * @param[in] scan_filter The scan filter handle
+ * @param[in] manufacturer_id The manufacturer ID (0x0000 ~ 0xFFFF)
+ * @param[in] data The manufacturer data (byte array)
+ * @param[in] data_len The length of the manufacturer data
+ * @param[in] mask The mask by which advertisements will be filtered
+ * @param[in] mask_len The length of the mask
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_set_manufacturer_data_with_mask(bt_scan_filter_h scan_filter,
+ int manufacturer_id,
+ const char *data,
+ unsigned int data_len,
+ const char *mask,
+ unsigned int mask_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the scan filter type for the advertisements filter.
+ * @details The filter type is used when searching only for iBeacon or proximity
+ * type's advertising data. If the type is not set, LE scanner will
+ * search devices as with regard to other filtered attributes.
+ * If the type is set, all other attributes set for the filter are ignored.
+ * @since_tizen 4.0
+ *
+ * @param[in] scan_filter The scan filter handle
+ * @param[in] mode The scan filter type
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_set_type(bt_scan_filter_h scan_filter,
+ bt_adapter_le_scan_filter_type_e mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Registers a scan filter to use for scanning.
+ * @details If the filter is registered, it cannot be changed.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @remarks Several scan filters can be registered. If an advertisement passes
+ * any of the registered scan filters, it will be included in the results.
+ *
+ * @param[in] scan_filter The scan filter handle
+ *
+ * @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_NOW_IN_PROGRESS Scan is in progress
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_register(bt_scan_filter_h scan_filter);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Unregisters all registered scan filters.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] scan_filter The scan filter handle
+ *
+ * @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_NOW_IN_PROGRESS Scan is in progress
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_unregister(bt_scan_filter_h scan_filter);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Unregisters all registered scan filters.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOW_IN_PROGRESS Scan is in progress
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ */
+int bt_adapter_le_scan_filter_unregister_all(void);
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __TIZEN_NETWORK_BLUETOOTH_H__ */
--- /dev/null
+/*
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __TIZEN_NETWORK_BLUETOOTH_EXTENSION_H__
+#define __TIZEN_NETWORK_BLUETOOTH_EXTENSION_H__
+
+#include "bluetooth_type.h"
+#include "bluetooth_type_extension.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/**
+ * @file bluetooth_extension.h
+ */
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Opens a SCO(Synchronous Connection Oriented link) to connected remote device, asynchronously.
+ * @since_tizen 2.3
+ * @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_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_ALREADY_DONE Operation is already done
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio device must be connected with bt_audio_connect().
+ * @post bt_ag_sco_state_changed_cb() will be invoked.
+ * @see bt_ag_close_sco()
+ * @see bt_ag_sco_state_changed_cb()
+ * @see bt_audio_connect()
+ */
+int bt_ag_open_sco(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Closes an opened SCO(Synchronous Connection Oriented link), asynchronously.
+ * @since_tizen 2.3
+ * @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_NOT_ENABLED Not enabled
+ * @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 SCO must be opened with bt_ag_open_sco().
+ * @post bt_ag_sco_state_changed_cb() will be invoked.
+ * @see bt_ag_open_sco()
+ * @see bt_ag_sco_state_changed_cb()
+ */
+int bt_ag_close_sco(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Checks whether an opened SCO(Synchronous Connection Oriented link) exists or not.
+ * @since_tizen 2.3
+ * @param[out] opened The SCO status: (@c true = opened, @c false = not opened)
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_ag_open_sco()
+ * @see bt_ag_close_sco()
+ */
+int bt_ag_is_sco_opened(bool *opened);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Registers a callback function that will be invoked when the SCO(Synchronous Connection Oriented link) state is changed.
+ * @since_tizen 2.3
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_sco_state_changed_cb()
+ * @see bt_ag_unset_sco_state_changed_cb()
+ */
+int bt_ag_set_sco_state_changed_cb(bt_ag_sco_state_changed_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Unregisters a callback function that will be invoked when the SCO(Synchronous Connection Oriented link) state is changed.
+ * @since_tizen 2.3
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_sco_state_changed_cb()
+ * @see bt_ag_set_sco_state_changed_cb()
+ */
+int bt_ag_unset_sco_state_changed_cb(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Notifies the state of voice recognition.
+ * @since_tizen 2.3
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @param[in] state The state of voice recognition: (@c true = enabled, @c false = disabled)
+ * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio device must be connected with bt_audio_connect().
+ * @see bt_audio_connect()
+ */
+int bt_ag_notify_voice_recognition_state(bool state);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Notifies the speaker gain to the remote device.
+ * @since_tizen 2.3
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @details This function sends a signal to the remote device. This signal has the gain value.
+ * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
+ * When the speaker gain of remote device is changed to the requested gain, bt_audio_speaker_gain_changed_cb() will be called.
+ * @param[in] gain The gain of speaker (0 ~ 15)
+ * @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 is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
+ * @see bt_ag_get_speaker_gain()
+ * @see bt_ag_set_speaker_gain_changed_cb()
+ * @see bt_ag_unset_speaker_gain_changed_cb()
+ */
+int bt_ag_notify_speaker_gain(int gain);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Gets the current speaker gain of the remote device.
+ * @since_tizen 2.3
+ * @details This function gets the value of speaker gain of the remote device.
+ * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
+ * @param[out] gain The gain of speaker (0 ~ 15)
+ * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
+ * @see bt_ag_notify_speaker_gain()
+ * @see bt_ag_set_speaker_gain_changed_cb()
+ * @see bt_ag_unset_speaker_gain_changed_cb()
+ */
+int bt_ag_get_speaker_gain(int *gain);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Registers a callback function that will be invoked when the speaker gain of the remote device is changed.
+ * @since_tizen 2.3
+ * @details This function let you know the change of the speaker gain of the remote device.
+ * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_unset_speaker_gain_changed_cb()
+ */
+int bt_ag_set_speaker_gain_changed_cb(bt_ag_speaker_gain_changed_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Unregisters a callback function that will be invoked when the speaker gain of the remote device is changed.
+ * @since_tizen 2.3
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_set_speaker_gain_changed_cb()
+ */
+int bt_ag_unset_speaker_gain_changed_cb(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Registers a callback function that will be invoked when the microphone gain of the remote device is changed.
+ * @since_tizen 2.3
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_unset_microphone_gain_changed_cb()
+ */
+int bt_ag_set_microphone_gain_changed_cb(bt_ag_microphone_gain_changed_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Unregisters a callback function that will be invoked when the microphone gain of the remote device is changed.
+ * @since_tizen 2.3
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_set_microphone_gain_changed_cb()
+ */
+int bt_ag_unset_microphone_gain_changed_cb(void);
+
+/**
+ * @}
+ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __TIZEN_NETWORK_BLUETOOTH_EXTENSION_H__ */
--- /dev/null
+/*
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __TIZEN_NETWORK_BLUETOOTH_INTERNAL_H__
+#define __TIZEN_NETWORK_BLUETOOTH_INTERNAL_H__
+
+#include <glib.h>
+#include "bluetooth_type.h"
+#include "bluetooth_type_internal.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/**
+ * @file bluetooth_internal.h
+ */
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Enables the local Bluetooth adapter, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @details This function enables Bluetooth protocol stack and hardware.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_ALREADY_DONE Already enabled
+ * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre Bluetooth service must be initialized with bt_initialize().
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_DISABLED
+ * @post This function invokes bt_adapter_state_changed_cb().
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_get_state()
+ * @see bt_adapter_set_state_changed_cb()
+ * @see bt_adapter_unset_state_changed_cb()
+ * @see bt_adapter_state_changed_cb()
+ *
+ */
+int bt_adapter_enable(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Disables the local Bluetooth adapter, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @details This function disables Bluetooth protocol stack and hardware.
+ *
+ * @remarks You should disable Bluetooth adapter, which is helpful for saving power.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED
+ * @post This function invokes bt_adapter_state_changed_cb().
+ *
+ * @see bt_adapter_get_state()
+ * @see bt_adapter_state_changed_cb()
+ * @see bt_adapter_set_state_changed_cb()
+ * @see bt_adapter_unset_state_changed_cb ()
+ *
+ */
+int bt_adapter_disable(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Recover the local Bluetooth adapter, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @details This function does recovery logic, disables Bluetooth protocol stack and hardware, then enables after a few seconds.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED
+ * @post This function invokes bt_adapter_state_changed_cb().
+ *
+ * @see bt_adapter_get_state()
+ * @see bt_adapter_state_changed_cb()
+ * @see bt_adapter_set_state_changed_cb()
+ * @see bt_adapter_unset_state_changed_cb ()
+ *
+ */
+int bt_adapter_recover(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
+ * @brief A2DP source/sink role is switched using this API
+ * @since_tizen 4.0
+ * @param[in] Role for A2DP
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_OPERATION_FAILED Internal Error
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_initialize()
+ * @see bt_audio_initialize()
+ */
+int bt_audio_select_role(bt_audio_role_e role);
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Reset the local Bluetooth adapter, synchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @details This function resets Bluetooth protocol and values.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre Bluetooth service must be initialized with bt_initialize().
+ * @post bt_adapter_state_changed_cb() will be invoked if The state of local Bluetooth was #BT_ADAPTER_ENABLED.
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_get_state()
+ * @see bt_adapter_set_state_changed_cb()
+ * @see bt_adapter_unset_state_changed_cb()
+ * @see bt_adapter_state_changed_cb()
+ *
+ */
+int bt_adapter_reset(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Gets the version of local Bluetooth adapter.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @remarks The @a local_version must be released with free() by you.
+ *
+ * @param[out] local_version The version of local Bluetooth adapter
+ *
+ * @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_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ */
+int bt_adapter_get_version(char **local_version);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Gets the information regarding local Bluetooth adapter.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @remarks The @a all parameters must be released with free() by you.
+ *
+ * @param[out] chipset Chipset name of local Bluetooth adapter
+ * @param[out] firmware Firmware info. of local Bluetooth adapter
+ * @param[out] stack_version Bluetooth stack version
+ * @param[out] profiles The profile list of local Bluetooth adapter
+ *
+ * @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_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ */
+int bt_adapter_get_local_info(char **chipset, char **firmware, char **stack_version, char **profiles);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Sets the visibility mode.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @remarks #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE will change to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE
+ * after the given @a duration goes.
+ *
+ * @param[in] discoverable_mode The Bluetooth visibility mode to set
+ * @param[in] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds).
+ * @a duration is used only for #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE mode.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post bt_adapter_visibility_mode_changed_cb() will be invoked if this function returns #BT_ERROR_NONE.
+ *
+ * @see bt_adapter_get_visibility()
+ * @see bt_adapter_visibility_mode_changed_cb()
+ * @see bt_adapter_set_visibility_mode_changed_cb()
+ * @see bt_adapter_unset_visibility_mode_changed_cb()
+ */
+int bt_adapter_set_visibility(bt_adapter_visibility_mode_e discoverable_mode, int duration);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Registers a callback function that will be invoked when remote device requests authentication.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @pre The Bluetooth service must be initialized by bt_initialize().
+ * @param[in] callback callback function to be set when a request is received.
+ * @param[in] user_data data from application which will be provided in callback.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @see bt_initialize()
+ * @see bt_adapter_set_authentication_req_cb()
+ */
+int bt_adapter_set_authentication_req_cb(bt_adapter_authentication_req_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Unregisters a callback function that will be invoked when remote device requests authentication.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @pre The Bluetooth service must be initialized by bt_initialize().
+ * @see bt_initialize()
+ * @see bt_adapter_set_authentication_req_cb()
+ */
+int bt_adapter_unset_authentication_req_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief API to reply with PIN or PASSKEY with authentication type - TRUE or FALSE.
+ * @remarks This function can be called by application when remote device requests PIN or PASSKEY from
+ * local adapter.
+ * @param[in] passkey The passkey to be provided by application when remote devices requests for it.
+ * @param[in] authentication_reply This indicates whether application wants to accept or cancel the on-going pairing
+ * @pre This function can only be called when application receieves authentication event (BT_AUTH_PIN_REQUEST)
+ * from remote device.
+ * @see bt_adapter_set_authentication_req_cb()
+ */
+int bt_adapter_passkey_reply(char *passkey, bool authentication_reply);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief API to reply to the PASSKEY confirmation for on-going pairing with remote device.
+ * @remarks This function can be called by application, when local adapter wants PASSKEY confirmation from user.
+ * @param[in] confirmation_reply This indicates whether application wants to accepts or cancels the on-going pairing
+ * confirmation_reply : TRUE will indicate that Application has confirmed the PASSKEY
+ * confirmation_reply : FALSE will indicate that Application has failed to confirm the PASSKEY. In this situation
+ * the pairing will be failed.
+ * @pre This function can only be called when application receives authentication event (BT_AUTH_PASSKEY_CONFIRM_REQUEST)
+ * from remote device.
+ * @see bt_adapter_set_authentication_req_cb()
+ */
+int bt_adapter_passkey_confirmation_reply(bool confirmation_reply);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Registers a callback function to be invoked when the connectable state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_adapter_connectable_changed_cb() will be invoked.
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_connectable_changed_cb()
+ * @see bt_adapter_unset_connectable_changed_cb()
+ */
+int bt_adapter_set_connectable_changed_cb(bt_adapter_connectable_changed_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_set_connectable_changed_cb()
+ */
+int bt_adapter_unset_connectable_changed_cb(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Gets the connectable state of local Bluetooth adapter.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @remarks When connectable state is false, no device can connect to this device and visibility mode cannot be changed.
+ *
+ * @param[out] connectable The connectable state of local Bluetooth adapter
+ *
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ *
+ * @see bt_adapter_set_connectable()
+ */
+int bt_adapter_get_connectable(bool *connectable);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Sets the connectable state of local Bluetooth adapter.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @remarks When connectable state is false, no device can connect to this device and visibility mode cannot be changed.
+ *
+ * @param[in] connectable The connectable state to set
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post bt_adapter_connectable_changed_cb() will be invoked if this function returns #BT_ERROR_NONE.
+ *
+ * @see bt_adapter_get_connectable()
+ * @see bt_adapter_connectable_changed_cb()
+ * @see bt_adapter_set_connectable_changed_cb()
+ * @see bt_adapter_unset_connectable_changed_cb()
+ */
+int bt_adapter_set_connectable(bool connectable);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Sets the manufacturer data of local Bluetooth adapter.
+ * @since_tizen 2.3
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] data The manufacturer specific data of the Bluetooth device.
+ * @param[in] len The length of @a data.Maximaum length is 240 bytes.
+ *
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post bt_adapter_manufacturer_data_changed_cb() will be invoked
+ * if this function returns #BT_ERROR_NONE.
+ *
+ * @see bt_adapter_manufacturer_data_changed_cb
+ * @see bt_adapter_set_manufacturer_data_changed_cb()
+ * @see bt_adapter_unset_manufacturer_data_changed_cb()
+ */
+int bt_adapter_set_manufacturer_data(char *data, int len);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Parse the samsung specific manufacturer data of discovered device.
+ *
+ * @remarks bt_adapter_free_manufacturer_data should be invoked
+ * to free the memory associated with parsed data
+ *
+ * @param[in] manufacturer_data The manufacturer specific data of the discovered Bluetooth device.
+ * @param[in] len length of the received manufacturer data
+ * @param[out] data Parsed manufacturer data
+ *
+ * @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
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ *
+ * @see bt_adapter_free_manufacturer_data()
+ */
+int bt_adapter_parse_manufacturer_data(bt_manufacturer_data *data,
+ char *manufacturer_data, int manufacturer_data_len);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Free the memory associated with parsed manufacturer data
+ *
+ * @param[in] data parsed manufactrer data
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ *
+ * @see bt_adapter_parse_manufacturer_data()
+ */
+int bt_adapter_free_manufacturer_data(bt_manufacturer_data *data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Registers a callback function to be invoked
+ * when the manufacturer data of Bluetooth adapter changes.
+ * @since_tizen 2.3
+ *
+ * @param[in] callback The callback function to invoke
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_adapter_manufacturer_data_changed_cb() will be invoked.
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_unset_manufacturer_data_changed_cb()
+ */
+int bt_adapter_set_manufacturer_data_changed_cb(
+ bt_adapter_manufacturer_data_changed_cb callback,
+ void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen 2.3
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_set_manufacturer_data_changed_cb()
+ */
+int bt_adapter_unset_manufacturer_data_changed_cb(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enables the local Bluetooth le adapter, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @details This function enables Bluetooth protocol stack and hardware.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_ALREADY_DONE Already enabled
+ * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre Bluetooth service must be initialized with bt_initialize().
+ * @post This function invokes bt_adapter_le_state_changed_cb().
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_le_get_state()
+ * @see bt_adapter_le_set_state_changed_cb()
+ * @see bt_adapter_le_unset_state_changed_cb()
+ * @see bt_adapter_le_state_changed_cb()
+ *
+ */
+int bt_adapter_le_enable(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Disables the local Bluetooth le adapter, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @details This function disables Bluetooth le protocol stack and hardware.
+ *
+ * @remarks
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_LE_ENABLED
+ * @post This function invokes bt_adapter_le_state_changed_cb().
+ *
+ * @see bt_adapter_le_get_state()
+ * @see bt_adapter_le_state_changed_cb()
+ * @see bt_adapter_le_set_state_changed_cb()
+ * @see bt_adapter_le_unset_state_changed_cb ()
+ *
+ */
+int bt_adapter_le_disable(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Gets the current state of local Bluetooth adapter.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[out] adapter_le_state The current adapter le state
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_initialize()
+ */
+int bt_adapter_le_get_state(bt_adapter_le_state_e *adapter_le_state);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Registers a callback function to be invoked when the Bluetooth adapter le state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] callback The callback function to invoke
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_adapter_le_state_changed_cb() will be invoked.
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_le_state_changed_cb()
+ * @see bt_adapter_le_unset_state_changed_cb()
+ */
+int bt_adapter_le_set_state_changed_cb(bt_adapter_le_state_changed_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Unregisters the callback function.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_initialize()
+ * @see bt_adapter_le_set_state_changed_cb()
+ */
+int bt_adapter_le_unset_state_changed_cb(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief add address to whitelist for accepting scanning request.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @remarks If the adress is in the whitelist then other LE devices are able to
+ * search this device. Before calling this API, make sure that the adapter is
+ * enabled. There is no callback event for this API.
+
+ * @param[in] address The other device's address
+ * @param[in] address_type The other device's address type
+ *
+ * @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 Adapter is not enabled
+ * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ *
+ * @see bt_adapter_le_start_advertising_new()
+ * @see bt_adapter_le_stop_advertising()
+ */
+int bt_adapter_le_add_white_list(const char *address, bt_device_address_type_e address_type);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief remove address from the whitelist for not accepting scanning request.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @remarks If the adress is in the whitelist then other LE devices are able to
+ * search this device. Before calling this API, make sure that the adapter is
+ * enabled. There is no callback event for this API.
+ *
+ * @param[in] address The other device's address
+ * @param[in] address_type The other device's address type
+ *
+ * @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 Adapter is not enabled
+ * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ *
+ * @see bt_adapter_le_start_advertising_new()
+ * @see bt_adapter_le_stop_advertising()
+ */
+int bt_adapter_le_remove_white_list(const char *address, bt_device_address_type_e address_type);
+
+/**
+ * @internal
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief clear address from the whitelist for not accepting scanning request.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @remarks If the adress is in the whitelist then other LE devices are able to
+ * search this device. Before calling this API, make sure that the adapter is
+ * enabled. There is no callback event for this API.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Adapter is not enabled
+ * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ *
+ * @see bt_adapter_le_start_advertising_new()
+ * @see bt_adapter_le_stop_advertising()
+ */
+int bt_adapter_le_clear_white_list(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the Privacy feature state of local Bluetooth adapter.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] enable_privacy The privacy feature to set/unset.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_LE_ENABLED.
+ *
+ */
+int bt_adapter_le_enable_privacy(bool enable_privacy);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Sets the Hash and Randmoizer value, synchronously for LE OOB pairing.
+ * @since_tizen 4.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] remote_address Remote device address
+ * @param[in] address_type Remote device address type
+ * @param[in] hash256 The P-256 hash value received via OOB from remote device
+ * @param[in] randomizer256 The P-256 randomizer value received via OOB from remote device
+ * @param[in] hash256_len The length of @a hash256
+ * @param[in] randomizer256_len The length of @a randomizer256
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ */
+int bt_adapter_le_set_remote_oob_ext_data(const char *remote_address,
+ bt_device_address_type_e address_type,
+ const unsigned char *hash256, const unsigned char *randomizer256,
+ int hash256_len, int randomizer256_len);
+
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Set advertising filter policy to use white list
+ * @since_tizen 2.4
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] filter_policy The filter policy of advertising
+ *
+ * @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_NOW_IN_PROGRESS Operation is now in progress
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_start_advertising_new()
+ */
+int bt_adapter_le_set_advertising_filter_policy(bt_advertiser_h advertiser, bt_adapter_le_advertising_filter_policy_e filter_policy);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Retrieves the address of the devices connected with the specific profile.
+ * @since_tizen 4.0
+ *
+ * @param[in] profile_uuid The UUID of profile service uuid of the connected device
+ * @param [in] callback The callback function to invoke
+ * @param [in] user_data The user data passed from the foreach function
+ *
+ * @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_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED There is no connected device
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @post This function invokes bt_adapter_profile_connected_devices_cb().
+ *
+ * @see bt_adapter_profile_connected_devices_cb()
+ */
+int bt_adapter_foreach_profile_connected_devices(const char *profile_uuid,
+ bt_adapter_profile_connected_devices_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Gets a connection state
+ * @since_tizen @if WEARABLE @else 2.4 @endif
+ *
+ * @param[in] remote_address The address of the remote Bluetooth device
+ * @param[in] link_type The link type to get a connection state
+ * @param[out] connected The connection state
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ */
+int bt_device_get_connection_state(const char *remote_address, bt_device_connection_link_type_e link_type, bool *connected);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Creates a bond with a remote Bluetooth device, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @remarks A bond can be destroyed by bt_device_destroy_bond().\n
+ * The bonding request can be cancelled by bt_device_cancel_bonding().
+ *
+ * @param[in] remote_address The address of the remote Bluetooth device with which the bond should be created
+ * @param[in] conn_type The connection type(LE or BREDR) to create bond with remote device
+ *
+ * @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_RESOURCE_BUSY Device or resource busy
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
+ * @post This function invokes bt_device_bond_created_cb().
+ *
+ * @see bt_adapter_start_device_discovery()
+ * @see bt_device_create_bond()
+ * @see bt_device_bond_created_cb()
+ * @see bt_device_cancel_bonding()
+ * @see bt_device_destroy_bond()
+ * @see bt_device_set_bond_created_cb()
+ * @see bt_device_unset_bond_created_cb()
+ */
+int bt_device_create_bond_by_type(const char *remote_address,
+ bt_device_connection_link_type_e conn_type);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Cancels service search process.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @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_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
+ * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The service search must be in progress by bt_device_start_service_search().
+ *
+ * @see bt_device_start_service_search()
+ * @see bt_device_service_searched_cb()
+ * @see bt_device_set_service_searched_cb()
+ * @see bt_device_unset_service_searched_cb()
+ */
+int bt_device_cancel_service_search(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Gets a connection state
+ * @since_tizen @if WEARABLE 2.4 @endif
+ *
+ * @param[in] remote_address The address of the remote Bluetooth device
+ * @param[in] link_type The link type to get a connection state
+ * @param[out] connected The connection state
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ */
+int bt_device_get_connection_state(const char *remote_address, bt_device_connection_link_type_e link_type, bool *connected);
+
+/**
+ * @internal
+ * @deprecated Deprecated since 4.0. Use bt_device_set_profile_trusted instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Sets a profile restricted connection for a device
+ * @since_tizen 3.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_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
+ * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_device_set_profile_restricted(const char *device_address, bt_restricted_profile_t profile, bool restricted);
+
+/**
+ * @internal
+ * @deprecated Deprecated since 4.0. Use bt_device_get_profile_trusted instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Gets a profile restricted connection for a device
+ * @since_tizen 3.0
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
+ * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_device_get_profile_restricted(const char *device_address, bt_restricted_profile_t profile, int *restricted);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Set a profile trusted or untrusted for a device.
+ * @since_tizen 4.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_INTERNAL Internal Error
+ * @retval #BT_ERROR_NOT_INITIALIZED Not supported
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid Parameter
+ * @retval #BT_ERROR_NOT_ENABLED Invalid Parameter
+ */
+int bt_device_set_profile_trusted(const char *device_address, bt_trusted_profile_t profile, bool trust);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Get a profile is trusted or untrusted for a device.
+ * @since_tizen 4.0
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INTERNAL Internal Error
+ * @retval #BT_ERROR_NOT_INITIALIZED Not supported
+ * @retval #BT_ERROR_NOT_ENABLED Invalid Parameter
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid Parameter
+ */
+int bt_device_get_profile_trusted(const char *device_address, bt_trusted_profile_t profile, int *trust);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Registers a callback function to be invoked when Trusted Profiles are changed.
+ * @since_tizen 2.4
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not supported
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid Parameter
+ */
+int bt_device_set_trusted_profile_cb(bt_device_trusted_profiles_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Unregisters the callback function registered with bt_device_set_trusted_profile_cb().
+ * @since_tizen 2.4
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not supported
+ */
+int bt_device_unset_trusted_profile_cb(void);
+
+/**
+ * @deprecated Deprecated since 4.0. Use bt_gatt_client_request_att_mtu_change instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Request to change ATT MTU value
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] remote_address The address of the remote Bluetooth device
+ * @param[in] mtu New MTU value to be changed
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_device_request_att_mtu(const char *remote_address, unsigned int mtu) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 4.0. Use bt_gatt_client_get_att_mtu instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Gets the ATT MTU value set for a connection
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] remote_address The address of the remote Bluetooth device
+ * @param[ot] mtu MTU value set for a connection
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_device_get_att_mtu(const char *remote_address, unsigned int *mtu) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 4.0. Use bt_gatt_client_set_att_mtu_changed_cb instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Registers a callback function to be invoked when the ATT MTU is changed.
+ * @since_tizen 3.0
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_device_connection_state_changed_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_device_unset_att_mtu_changed_cb()
+ */
+int bt_device_set_att_mtu_changed_cb(bt_device_att_mtu_changed_cb callback, void *user_data) TIZEN_DEPRECATED_API;
+
+/**
+ * @deprecated Deprecated since 4.0. Use bt_gatt_client_unset_att_mtu_changed_cb instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Unregisters the callback function to be invoked when the ATT MTU is changed.
+ * @since_tizen 3.0
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_device_set_att_mtu_changed_cb()
+ */
+int bt_device_unset_att_mtu_changed_cb(void) TIZEN_DEPRECATED_API;
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Registers a rfcomm server socket with a specific UUID. Activation by dbus is possible when the profile is connected.
+ * @since_tizen 2.4
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @remarks A socket can be destroyed by bt_socket_destroy_rfcomm_ex().
+ * Application should call this API to receive a connection event when launched again by dbus.
+ *
+ * @param[in] uuid The UUID of service to provide
+ * @param[in] bus_name bus_name of the application which is provided in service file.
+ * @param[in] object_path dbus of the application
+ * @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_NOW_IN_PROGRESS Already registered
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ *
+ * @see bt_socket_listen_and_accept_rfcomm_ex()
+ * @see bt_socket_destroy_rfcomm_ex()
+ */
+int bt_socket_create_rfcomm_ex(const char *uuid, const char *bus_name, const char *object_path);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Removes the rfcomm server socket which was created using bt_socket_create_rfcomm_ex().
+ * @since_tizen 2.4
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @remarks If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
+ * then bt_socket_connection_state_changed_cb() will be called when this function is finished successfully.
+ *
+ * @param[in] uuid The UUID (which was created using bt_socket_create_rfcomm()) to destroy
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The socket must be created with bt_socket_create_rfcomm_ex().
+ * @post If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
+ * then bt_socket_connection_state_changed_cb() will be called.
+ * @see bt_socket_create_rfcomm_ex()
+ * @see bt_socket_connection_state_changed_cb()
+ * @see bt_socket_set_connection_state_changed_cb()
+ * @see bt_socket_unset_connection_state_changed_cb()
+ */
+int bt_socket_destroy_rfcomm_ex(const char *uuid);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Starts listening on passed rfcomm socket and accepts connection requests. Activation by dbus is possible when the profile is connected.
+ * @since_tizen 2.4
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @details Pop-up is shown automatically when a RFCOMM connection is requested.
+ * bt_socket_connection_state_changed_cb() will be called with
+ * #BT_SOCKET_CONNECTED if you click "yes" and connection is finished successfully.
+ * @param[in] uuid The UUID of service to provide
+ * @param[in] max_pending_connections The maximum number of pending connections
+ * @param[in] bus_name bus_name of the application which is provided in service file.
+ * @param[in] object_path dbus of the application
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The socket must be created with bt_socket_create_rfcomm_ex().
+ * @post If callback function bt_socket_connection_state_changed_cb() is set,
+ * then bt_socket_connection_state_changed_cb() will be called when the remote Bluetooth device is connected.
+ * @see bt_socket_create_rfcomm_ex()
+ * @see bt_socket_connection_state_changed_cb()
+ * @see bt_socket_set_connection_state_changed_cb()
+ * @see bt_socket_unset_connection_state_changed_cb()
+ */
+int bt_socket_listen_and_accept_rfcomm_ex(const char *uuid, int max_pending_connections, const char* bus_name, const char *object_path);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Starts listening on passed rfcomm socket.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @details bt_socket_connection_requested_cb() will be called when a RFCOMM connection is requested.
+ *
+ * @param[in] socket_fd The file descriptor socket on which start to listen
+ * @param[in] max_pending_connections The number of pending connections
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The socket must be created with bt_socket_create_rfcomm().
+ * @post This function invokes bt_socket_connection_state_changed_cb().
+ *
+ * @see bt_socket_create_rfcomm()
+ * @see bt_socket_set_connection_requested_cb()
+ * @see bt_socket_unset_connection_requested_cb()
+ * @see bt_socket_connection_requested_cb()
+ */
+int bt_socket_listen(int socket_fd, int max_pending_connections);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Accepts a connection request.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @param[in] requested_socket_fd The file descriptor of socket on which a connection is requested
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The connection is requested by bt_socket_connection_requested_cb().
+ * @see bt_socket_create_rfcomm()
+ * @see bt_socket_connection_requested_cb()
+ * @see bt_socket_listen()
+ * @see bt_socket_reject()
+*/
+int bt_socket_accept(int requested_socket_fd);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Rejects a connection request.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @param[in] socket_fd The file descriptor of socket on which a connection is requested
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The connection is requested by bt_socket_connection_requested_cb().
+ * @see bt_socket_create_rfcomm()
+ * @see bt_socket_connection_requested_cb()
+ * @see bt_socket_listen()
+ * @see bt_socket_accept()
+ */
+int bt_socket_reject(int socket_fd);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
+ * @brief Initializes the Bluetooth OPP server requested by bt_opp_server_push_requested_cb().
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @details The popup appears when an OPP connection is requested from a remote device.
+ * If you accept the request, then connection will be established and bt_opp_server_push_requested_cb() will be called.
+ * At that time, you can call either bt_opp_server_accept() or bt_opp_server_reject().
+ * @remarks This function must be called to start Bluetooth OPP server. You must free all resources of the Bluetooth service
+ * by calling bt_opp_server_deinitialize() if Bluetooth OPP service is no longer needed.
+ * @param[in] destination The destination path
+ * @param[in] push_requested_cb The callback called when a push is requested
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_opp_server_push_requested_cb()
+ * @see bt_opp_server_deinitialize()
+ * @see bt_opp_server_accept()
+ * @see bt_opp_server_reject()
+ */
+int bt_opp_server_initialize(const char *destination, bt_opp_server_push_requested_cb push_requested_cb, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_MODULE
+ * @brief Gets the percentage progress for ongoing transfers.
+ * @since_tizen 3.0
+ * @exception None
+ * @param[in] transfer_type Transfer Type: (@c BLUETOOTH_TRANSFER_INBOUND = receiving , @c BLUETOOTH_TRANSFER_OUTBOUND = sending)
+ * @param[in] transfer_id Transfer ID
+ * @param[out] progress Percentage Progress
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ */
+int bt_opp_get_transfer_progress(bt_opp_transfer_type_t transfer_type,
+ int transfer_id, unsigned char *progress);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Notifies the call event to the remote bluetooth device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @remarks Before notifying #BT_AG_CALL_EVENT_ANSWERED or #BT_AG_CALL_EVENT_DIALING, you should open SCO(Synchronous Connection Oriented link)
+ * if Bluetooth Hands-Free need SCO connection.
+ * @param[in] event The call event
+ * @param[in] call_id The call ID
+ * @param[in] phone_number The phone number. You must set this value in case of #BT_AG_CALL_EVENT_DIALING and #BT_AG_CALL_EVENT_INCOMING.
+ * In other cases, this value can be NULL.
+ * @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_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 Bluetooth audio device must be connected with bt_audio_connect().
+ * @see bt_audio_connect()
+ */
+int bt_ag_notify_call_event(bt_ag_call_event_e event, unsigned int call_id, const char *phone_number);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Notifies the call list to the remote bluetooth device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @param[in] list The call list
+ * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio device must be connected with bt_audio_connect().
+ * @see bt_audio_connect()
+ */
+int bt_ag_notify_call_list(bt_call_list_h list);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Notifies the state of voice recognition.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @param[in] state The state of voice recognition: (@c true = enabled, @c false = disabled)
+ * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio device must be connected with bt_audio_connect().
+ * @see bt_audio_connect()
+ */
+int bt_ag_notify_voice_recognition_state(bool state);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Registers a callback function that will be invoked when a call handling event happened from Hands-Free.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_call_handling_event_cb()
+ * @see bt_ag_unset_call_handling_event_cb()
+ */
+int bt_ag_set_call_handling_event_cb(bt_ag_call_handling_event_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Unregisters a callback function that will be invoked when a call handling event happened from Hands-Free.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_call_handling_event_cb()
+ * @see bt_ag_set_call_handling_event_cb()
+ */
+int bt_ag_unset_call_handling_event_cb(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Registers a callback function that will be invoked when a multi call handling event happened from Hands-Free.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_multi_call_handling_event_cb()
+ * @see bt_ag_unset_multi_call_handling_event_cb()
+ */
+int bt_ag_set_multi_call_handling_event_cb(bt_ag_multi_call_handling_event_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Unregisters a callback function that will be invoked when a multi call handling event happened from Hands-Free.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_multi_call_handling_event_cb()
+ * @see bt_ag_set_multi_call_handling_event_cb()
+ */
+int bt_ag_unset_multi_call_handling_event_cb(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Registers a callback function that will be invoked when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_dtmf_transmitted_cb()
+ * @see bt_ag_unset_dtmf_transmitted_cb()
+ */
+int bt_ag_set_dtmf_transmitted_cb(bt_ag_dtmf_transmitted_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Unregisters a callback function that will be invoked when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_dtmf_transmitted_cb()
+ * @see bt_ag_set_dtmf_transmitted_cb()
+ */
+int bt_ag_unset_dtmf_transmitted_cb(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Checks whether the remoted device enables NREC(Noise Reduction and Echo Canceling) or not.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[out] enabled The NREC status: (@c true = enabled, @c false = not enabled)
+ * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
+ * @see bt_audio_connect()
+ */
+int bt_ag_is_nrec_enabled(bool *enabled);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
+ * @brief Creates a handle of call list.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[out] list The handle of call list
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_call_list_destroy()
+ */
+int bt_call_list_create(bt_call_list_h *list);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
+ * @brief Destroys the handle of call list.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] list The handle of call list
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_call_list_create()
+ */
+int bt_call_list_destroy(bt_call_list_h list);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
+ * @brief Resets the handle of call list.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] list The handle of call list
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_call_list_create()
+ */
+int bt_call_list_reset(bt_call_list_h list);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
+ * @brief Adds a call to the handle of call list.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] list The handle of call list
+ * @param[in] call_id The call ID
+ * @param[in] state The state of audio gate call
+ * @param[in] phone_number The phone number. You must set this value in case of #BT_AG_CALL_EVENT_DIALING and #BT_AG_CALL_EVENT_INCOMING.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_call_list_create()
+ */
+int bt_call_list_add(bt_call_list_h list, unsigned int call_id, bt_ag_call_state_e state, const char *phone_number);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Registers a callback function that will be invoked when a XSATvendor AT command is transmitted from Hands-Free.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_vendor_cmd_cb()
+ * @see bt_ag_unset_vendor_cmd_cb()
+ */
+int bt_ag_set_vendor_cmd_cb(bt_ag_vendor_cmd_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Unregisters a callback function that will be invoked when a XSATvendor AT command is transmitted from Hands-Free
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_vendor_cmd_cb()
+ * @see bt_ag_set_vendor_cmd_cb()
+ */
+int bt_ag_unset_vendor_cmd_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Checks whether the remoted device is wbs (Wide Band Speech) mode or not.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[out] wbs_mode The wbs status: (@c true = wide band speech, @c false = narrow band speech)
+ * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The remote device is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
+ * @see bt_audio_connect()
+ */
+int bt_ag_is_wbs_mode(bool *wbs_mode);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Gets the HF(Hands-Free) profile connected status for AG role.
+ * @since_tizen 2.4
+ * @param[out] connected the connected status: (@c true = connected , @c false = not connected )
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ */
+int bt_ag_is_connected(bool *connected);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Switch between the connected headsets for AG role.
+ * @since_tizen 3.0
+ * @param[out]
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Not connected
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ */
+int bt_ag_switch_headset(const char *remote_addr);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Registers a callback function that will be invoked when the SCO(Synchronous Connection Oriented link) state is changed.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_sco_state_changed_cb()
+ * @see bt_ag_unset_sco_state_changed_cb()
+ */
+int bt_hf_set_sco_state_changed_cb(bt_hf_sco_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Unregisters a callback function that will be invoked when the SCO(Synchronous Connection Oriented link) state is changed.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_sco_state_changed_cb()
+ * @see bt_ag_set_sco_state_changed_cb()
+ */
+int bt_hf_unset_sco_state_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Registers a callback function that will be invoked when a call handling event happened from Hands-Free.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_call_handling_event_cb()
+ * @see bt_ag_unset_call_handling_event_cb()
+ */
+int bt_hf_set_call_handling_event_cb(bt_hf_call_handling_event_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Unregisters a callback function that will be invoked when a call handling event happened from Hands-Free.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_call_handling_event_cb()
+ * @see bt_ag_set_call_handling_event_cb()
+ */
+int bt_hf_unset_call_handling_event_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Registers a callback function that will be invoked when a call event happend from Audio-Gateway device.
+ * @since_tizen 3.0
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_hf_remote_call_event_cb()
+ * @see bt_hf_unset_remote_call_event_cb()
+ */
+int bt_hf_set_remote_call_event_cb(bt_hf_remote_call_event_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Unregisters a callback function.
+ * @since_tizen 3.0
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_hf_remote_call_event_cb()
+ * @see bt_hf_set_remote_call_event_cb()
+ */
+int bt_hf_unset_remote_call_event_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Registers a callback function that will be invoked when a multi call handling event happened from Hands-Free.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_multi_call_handling_event_cb()
+ * @see bt_ag_unset_multi_call_handling_event_cb()
+ */
+int bt_hf_set_multi_call_handling_event_cb(bt_hf_multi_call_handling_event_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Unregisters a callback function that will be invoked when a multi call handling event happened from Hands-Free.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_ag_multi_call_handling_event_cb()
+ * @see bt_ag_set_multi_call_handling_event_cb()
+ */
+int bt_hf_unset_multi_call_handling_event_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Initializes the Bluetooth HF profile related with audio.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @remarks This function must be called before Bluetooth profiles related with audio starts.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_hf_deinitialize()
+ */
+int bt_hf_initialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Deinitializes the Bluetooth HF profile related with audio.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ */
+int bt_hf_deinitialize(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Notifies the call event to the remote bluetooth device.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @privlevel platform
+ * @privilege http://tizen.org/privilege/bluetooth.admin
+ * @remarks Before notifying #BT_HF_CALL_EVENT_ANSWERED or #BT_HF_CALL_EVENT_DIALING, you should open SCO(Synchronous Connection Oriented link)
+ * if Bluetooth Hands-Free need SCO connection.
+ * @param[in] event The call event
+ * @param[in] call_id The call ID
+ * @param[in] phone_number The phone number. You must set this value in case of #BT_HF_CALL_EVENT_DIALING and #BT_HF_CALL_EVENT_INCOMING.
+ * In other cases, this value can be NULL.
+ * @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_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 Bluetooth audio device must be connected with bt_audio_connect().
+ * @see bt_audio_connect()
+ */
+int bt_hf_notify_call_event(bt_hf_call_event_e event, char *phone_number);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Notifies the speaker gain to the remote device.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @privlevel platform
+ * @privilege http://tizen.org/privilege/bluetooth.admin
+ * @details This function sends a signal to the remote device. This signal has the gain value.
+ * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
+ * When the speaker gain of remote device is changed to the requested gain, bt_audio_speaker_gain_changed_cb() will be called.
+ * @param[in] gain The gain of speaker (0 ~ 15)
+ * @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 is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
+ * @see bt_hf_get_speaker_gain()
+ * @see bt_hf_set_speaker_gain_changed_cb()
+ * @see bt_hf_unset_speaker_gain_changed_cb()
+ */
+int bt_hf_notify_speaker_gain(int gain);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Registers a callback function that will be invoked when the speaker gain of the remote device is changed.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @details This function let you know the change of the speaker gain of the remote device.
+ * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_hf_unset_speaker_gain_changed_cb()
+ */
+int bt_hf_set_speaker_gain_changed_cb(bt_hf_speaker_gain_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Unregisters a callback function that will be invoked when the speaker gain of the remote device is changed.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @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_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_hf_set_speaker_gain_changed_cb()
+ */
+int bt_hf_unset_speaker_gain_changed_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Notifies the state of voice recognition.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @privlevel platform
+ * @privilege http://tizen.org/privilege/bluetooth.admin
+ * @param[in] state The state of voice recognition: (@c true = enabled, @c false = disabled)
+ * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth audio device must be connected with bt_audio_connect().
+ * @see bt_audio_connect()
+ */
+int bt_hf_notify_voice_recognition_state(bool state);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Registers a callback function that will be invoked when a call status event happened from Hands-Free.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_hf_unset_call_status_updated_event_cb()
+ */
+int bt_hf_set_call_status_updated_event_cb(bt_hf_call_status_updated_event_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Unregisters a callback function that will be invoked when a call status event happened from Hands-Free.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_hf_set_call_status_updated_event_cb()
+ */
+int bt_hf_unset_call_status_updated_event_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Closes an opened SCO(Synchronous Connection Oriented link), synchronously.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_hf_close_sco(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Sends the DTMF(Dual Tone Multi Frequency).
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @privlevel platform
+ * @privilege http://tizen.org/privilege/bluetooth.admin
+ * @param[in] dtmf The DTMF to send
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The Bluetooth audio device must be connected with bt_audio_connect().
+ * @see bt_audio_connect()
+ */
+int bt_hf_send_dtmf(char *dtmf);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Gets the HF(Hands-Free) profile connected status for HF role.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @param[out] connected the connected status: (@c true = connected , @c false = not connected )
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ */
+int bt_hf_is_connected(bool *connected);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Checks whether an opened SCO(Synchronous Connection Oriented link) exists or not.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[out] opened The SCO status: (@c true = opened, @c false = not opened)
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio device must be connected with bt_audio_connect().
+ * @see bt_audio_connect()
+ */
+int bt_hf_is_sco_opened(bool *opened);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Gets the codec ID.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @remarks The @a codec_id must be released with free() by you.
+ *
+ * @param[out] codec_id The codec ID
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio device must be connected with bt_audio_connect().
+ * @see bt_audio_connect()
+ */
+int bt_hf_get_codec_id(unsigned int *codec_id);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Gets the call status information list.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ * @remarks The @a call_list must be released with bt_hf_free_call_status_info_list() by you.
+ * @remarks call_info_list has elements which consist of bt_hf_call_status_info_s
+ *
+ * @param[out] call_list The call status information list
+ * @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_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio device must be connected with bt_audio_connect().
+ * @see bt_hf_call_status_info_s
+ * @see bt_audio_connect()
+ */
+int bt_hf_get_call_status_info_list(GSList **call_list);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Frees the call status information list.
+ * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
+ *
+ * @param[in] call_list The call status information list
+ * @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_SUPPORTED Not supported
+ *
+ * @see bt_hf_get_call_status_info_list()
+ */
+int bt_hf_free_call_status_info_list(GSList *call_list);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_A2DP_MODULE
+ * @brief Sets copy protection. streaming application that needs to have the copy protection for the streaming data, shall invoke this API.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @param[in] status - TRUE/FALSE
+ * @return 0 on success, otherwise negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_OPERATION_FAILED on failure
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_a2dp_set_content_protection(bool status);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Gets the specification name from the UUID
+ * @since_tizen 2.4
+ *
+ * @remarks @a name must be released with free() by you.
+ *
+ * @param[in] uuid The UUID
+ * @param[out] name The specification name which defined from www.bluetooth.org
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_get_uuid()
+ */
+int bt_gatt_get_uuid_specification_name(const char *uuid, char **name);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Updates the permissions which a characteristic or descriptor's GATT handle has.
+ * @since_tizen 3.0
+ *
+ * @param[in] gatt_handle The handle of a characteristic or descriptor
+ * @param[in] permissions The permissions to be updated
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_characteristic_create()
+ * @see bt_gatt_descriptor_create()
+ * @see bt_gatt_permission_e
+ */
+int bt_gatt_set_permissions(bt_gatt_h gatt_handle, int permissions);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Updates the properties which a characteristic's GATT handle has.
+ * @since_tizen 3.0
+ *
+ * @param[in] characteristic The characteristic's GATT handle
+ * @param[in] properties The properties to be updated
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_property_e
+ */
+int bt_gatt_characteristic_set_properties(bt_gatt_h characteristic, int properties);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Destroys the GATT handle
+ * @since_tizen 2.4
+ *
+ * @param[in] gatt_handle The handle of service, characteristic or descriptor
+ * @return 0 on success, otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @see bt_gatt_service_create()
+ * @see bt_gatt_characteristic_create()
+ * @see bt_gatt_descriptor_create()
+ */
+int bt_gatt_destroy(bt_gatt_h gatt_handle);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
+ * @brief Registers a callback function that will be invoked when the A2DP Source connection state is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_audio_connection_state_changed_cb()
+ */
+int bt_a2dp_source_audio_set_connection_state_changed_cb(bt_audio_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
+ * @brief Unregisters a callback function that will be invoked when the A2DP Source connection state is changed.
+ * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
+ * @see bt_audio_initialize()
+ * @see bt_audio_connection_state_changed_cb()
+ * @see bt_audio_set_connection_state_changed_cb()
+ */
+int bt_a2dp_source_audio_unset_connection_state_changed_cb(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
+ * @brief Activates the NAP(Network Access Point).
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_ALREADY_DONE Operation is already done
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED
+ * @see bt_nap_deactivate()
+ */
+int bt_nap_activate(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
+ * @brief Deactivates the NAP(Network Access Point).
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_ALREADY_DONE Operation is already done
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth NAP service must be activated with bt_nap_activate().
+ * @see bt_nap_activate()
+ */
+int bt_nap_deactivate(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
+ * @brief Disconnects the all PANUs(Personal Area Networking User) which are connected to you.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth NAP service must be activated with bt_nap_activate().
+ * @see bt_nap_activate()
+ */
+int bt_nap_disconnect_all(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
+ * @brief Disconnects the specified PANU(Personal Area Networking User) which is connected to you.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address The remote address
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth NAP service must be activated with bt_nap_activate().
+ * @see bt_nap_activate()
+ */
+int bt_nap_disconnect(const char *remote_address);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
+ * @brief Registers a callback function that will be invoked when the connection state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_nap_connection_state_changed_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_nap_connection_state_changed_cb()
+ * @see bt_nap_unset_connection_state_changed_cb()
+ */
+int bt_nap_set_connection_state_changed_cb(bt_nap_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
+ * @brief Unregisters a callback function that will be invoked when the connection state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_nap_connection_state_changed_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_nap_connection_state_changed_cb()
+ * @see bt_nap_set_connection_state_changed_cb()
+ */
+int bt_nap_unset_connection_state_changed_cb(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
+ * @brief Registers a callback function that will be invoked when the connection state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_nap_connection_state_changed_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_panu_connection_state_changed_cb()
+ * @see bt_panu_unset_connection_state_changed_cb()
+ */
+int bt_panu_set_connection_state_changed_cb(bt_panu_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
+ * @brief Unregisters a callback function that will be invoked when the connection state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_nap_connection_state_changed_cb() will be invoked.
+ * @see bt_initialize()
+ * @see bt_panu_connection_state_changed_cb()
+ * @see bt_panu_set_connection_state_changed_cb()
+ */
+int bt_panu_unset_connection_state_changed_cb(void);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
+ * @brief Connects the remote device with the PAN(Personal Area Networking) service, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address The remote address
+ * @param[in] type The type of PAN service
+ * @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_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The local device must be bonded with the remote device by bt_device_create_bond().
+ * @post bt_panu_connection_state_changed_cb() will be invoked.
+ * @see bt_panu_disconnect()
+ * @see bt_panu_connection_state_changed_cb()
+ */
+int bt_panu_connect(const char *remote_address, bt_panu_service_type_e type);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
+ * @brief Disconnects the remote device with the PAN(Personal Area Networking) service, asynchronously.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address The remote address
+ * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The remote device must be connected by bt_panu_connect().
+ * @post bt_panu_connection_state_changed_cb() will be invoked.
+ * @see bt_panu_connect()
+ * @see bt_panu_connection_state_changed_cb()
+ */
+int bt_panu_disconnect(const char *remote_address);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief update LE connection.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @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_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized by bt_initialize().
+ * @pre The remote device must be connected with bt_gatt_connect().
+ */
+int bt_device_le_conn_update(const char *device_address,
+ const bt_le_conn_update_s *parameters);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Gets the is_alias_set property of a bonded device.
+ * @since_tizen 3.0
+ *
+ * @param [in] remote_address The address of remote device
+ * @param [out] is_alias_set The is_alias_set property of device
+ *
+ * @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_OUT_OF_MEMORY Out of memory
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ */
+int bt_adapter_get_bonded_device_is_alias_set(const char *remote_address, gboolean *is_alias_set);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Registers the method for HID Device role
+ * @since_tizen @if WEAREABLE @else 2.3.1 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @remarks This function must be called to register HID UUID
+ * then only remote device could be able identify this one as HID device
+ *
+ * @param[in] callback The callback called when the connection state is changed
+ * @param[in] user_data The user data to be passed to the callback function
+ * @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_NOW_IN_PROGRESS Already activated
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_hid_device_deactivate()
+ */
+int bt_hid_device_activate(bt_hid_device_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Unregisters the method for HID Device role
+ * @since_tizen @if WEAREABLE @else 2.3.1 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @remarks This function must be called to deregister HID UUID
+ *
+ * @param[in] socket_fd on which uuid need to be deregistered.
+ * @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_NOT_IN_PROGRESS Not activated
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_hid_device_activate()
+ */
+int bt_hid_device_deactivate(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Initiates HID device Connection with device role, asynchronously.
+ * @since_tizen @if WEAREABLE @else 2.3.1 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @remarks This function must be called to Initiate Hid device role connection
+ *
+ * @param[in] remote_address device address of remote device.
+ * @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_NOT_IN_PROGRESS Not activated
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #BT_ERROR_ALREADY_DONE Already connected
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @pre The local device must be bonded with the remote device by bt_device_create_bond().
+ * @see bt_initialize()
+ * @see bt_hid_device_activate()
+ */
+int bt_hid_device_connect(const char *remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Disconnects the connection with HID Host device, asynchronously.
+ * @since_tizen @if WEAREABLE @else 2.3.1 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] remote_address device address of remote device.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @see bt_initialize()
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_disconnect(const char *remote_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Sends the mouse event data.
+ * @since_tizen @if WEAREABLE @else 2.3.1 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] remote_address device address of remote device.
+ * @param[in] mouse_data mouse data that need to be passed to remote device
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre The HID connection must be established.
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_send_mouse_event(const char *remote_address,
+ const bt_hid_mouse_data_s *mouse_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Sends the keyboard event data.
+ * @since_tizen @if WEAREABLE @else 2.3.1 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] remote_address device address of remote device.
+ * @param[in] key_data key data the need to be passed to remote device
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre The HID connection must be established.
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_send_key_event(const char *remote_address,
+ const bt_hid_key_data_s *key_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Sets the callback when device gets some data from HID Host.
+ * @since_tizen @if WEAREABLE @else 2.3.1 @endif
+ *
+ * @param[in] callback callback function to be set when data is received.
+ * @param[in] user_data data from application which will be provided in callback.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_set_data_received_cb(bt_hid_device_data_received_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Unsets the callback when device gets some data from HID Host.
+ * @since_tizen @if WEAREABLE @else 2.3.1 @endif
+ *
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ *
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_unset_data_received_cb(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Responds to the reports from HID Host.
+ * @since_tizen @if WEAREABLE @else 2.3.1 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] remote_address device address of remote device.
+ * @param[in] header_type Header type to be there in response
+ * @param[in] param_type Parameter type to be there in response.
+ * @param[in] data Data to be present in data payload of response.
+ * @param[in] data_len The length of the response data
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre The HID connection must be established.
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_reply_to_report(const char *remote_address,
+ bt_hid_header_type_e header_type, bt_hid_param_type_e param_type,
+ const char *data, unsigned int data_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Sends the custom event data.
+ * @since_tizen @if WEAREABLE @else 3.0 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] remote_address device address of remote device.
+ * @param[in] report_id reoport id need to be passed to remote device
+ * @param[in] data The data need to be passed to remote device
+ * @param[in] data_len The length of the data
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre The HID connection must be established.
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_send_custom_event(const char *remote_address,
+ unsigned char report_id, const char *data, unsigned int data_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Sets Restriction for BT mode(BT allowed or not).
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] value - BT Allow value.
+ * BT_DPM_ERROR = -1, < bluetooth allowance error
+ * BT_DPM_BT_ALLOWED, < bluetooth allowance allowed
+ * BT_DPM_HANDSFREE_ONLY, < bluetooth allowance handsfree only
+ * BT_DPM_BT_RESTRICTED, < bluetooth allowance restricted
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre none.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_set_allow_bluetooth_mode(bt_dpm_allow_e value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads Restriction for BT mode(BT allowed or not).
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] none
+ * @param[out] value - BT Allow value.
+ * BT_DPM_ERROR = -1, < bluetooth allowance error
+ * BT_DPM_BT_ALLOWED, < bluetooth allowance allowed
+ * BT_DPM_HANDSFREE_ONLY, < bluetooth allowance handsfree only
+ * BT_DPM_BT_RESTRICTED, < bluetooth allowance restricted
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre none.
+ * @see bt_dpm_set_allow_bluetooth_mode()
+ */
+int bt_dpm_get_allow_bluetooth_mode(bt_dpm_allow_e *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Sets the Restriction for device.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_activate_device_restriction(bt_dpm_status_e value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the Restriction for device.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[out] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_is_device_restriction_active(bt_dpm_status_e *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Sets the Restriction for uuid.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_activate_uuid_restriction(bt_dpm_status_e value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the Restriction for uuid.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[out] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_is_uuid_restriction_active(bt_dpm_status_e *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Adds the device to blacklist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] device_address - Device address
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_add_devices_to_blacklist(const char *device_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Adds the device to whitelist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] device_address - Device address
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_add_devices_to_whitelist(const char *device_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Adds the uuids to blacklist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] service_uuids - profile or custom service uuids
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_add_uuids_to_blacklist(const char *service_uuid);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Adds the uuid to whitelist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] service_uuids - profile or custom service uuids
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_add_uuids_to_whitelist(const char *service_uuid);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Clears the device from blacklist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] none
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_clear_devices_from_blacklist(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Clears the device from whitelist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] none
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_clear_devices_from_whitelist(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Clears the uuids from blacklist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] none
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_clear_uuids_from_blacklist(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Clears the uuids from whitelist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] none
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_clear_uuids_from_whitelist(void);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the devices from blacklist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[out] device_list - list of devices
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_get_devices_from_blacklist(bt_dpm_device_list_s **device_list);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the devices from whitelist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[out] device_list - list of devices
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_get_devices_from_whitelist(bt_dpm_device_list_s **device_list);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the uuids from blacklist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[out] uuid_list - list of uuids
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_get_uuids_from_blacklist(bt_dpm_uuids_list_s **uuid_list);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the uuids from whitelist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[out] uuid_list - list of uuids
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_get_uuids_from_whitelist(bt_dpm_uuids_list_s **uuid_list);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Removes the devices from whitelist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] device_address - Device address
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_remove_device_from_whitelist(const char *device_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Removes the devices from blacklist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] device_address - Device address
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_remove_device_from_blacklist(const char *device_address);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Removes the uuids from whitelist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] service_uuids - profile or custom service uuids
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_remove_uuid_from_whitelist(const char *service_uuid);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Removes the uuids from blacklist.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] service_uuids - profile or custom service uuids
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_remove_uuid_from_blacklist(const char *service_uuid);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Sets the Restriction for outgoing call.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_set_allow_outgoing_call(bt_dpm_status_e value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the Restriction for outgoing call.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[out] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_get_allow_outgoing_call(bt_dpm_status_e *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Sets the Restriction for pairing.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_set_pairing_state(bt_dpm_status_e value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the Restriction for pairing.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[out] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_get_pairing_state(bt_dpm_status_e *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Sets the Restriction for profiles.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in]profile - Profile.
+ * BT_DPM_POLICY_A2DP_PROFILE_STATE,
+ * BT_DPM_POLICY_AVRCP_PROFILE_STATE,
+ * BT_DPM_POLICY_BPP_PROFILE_STATE,
+ * BT_DPM_POLICY_DUN_PROFILE_STATE,
+ * BT_DPM_POLICY_FTP_PROFILE_STATE,
+ * BT_DPM_POLICY_HFP_PROFILE_STATE,
+ * BT_DPM_POLICY_HSP_PROFILE_STATE,
+ * BT_DPM_POLICY_PBAP_PROFILE_STATE,
+ * BT_DPM_POLICY_SAP_PROFILE_STATE,
+ * BT_DPM_POLICY_SPP_PROFILE_STATE,
+ * BT_DPM_PROFILE_NONE
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_set_profile_state(bt_dpm_profile_e profile, bt_dpm_status_e value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the Restriction for profiles.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in]profile - Profile.
+ * BT_DPM_POLICY_A2DP_PROFILE_STATE,
+ * BT_DPM_POLICY_AVRCP_PROFILE_STATE,
+ * BT_DPM_POLICY_BPP_PROFILE_STATE,
+ * BT_DPM_POLICY_DUN_PROFILE_STATE,
+ * BT_DPM_POLICY_FTP_PROFILE_STATE,
+ * BT_DPM_POLICY_HFP_PROFILE_STATE,
+ * BT_DPM_POLICY_HSP_PROFILE_STATE,
+ * BT_DPM_POLICY_PBAP_PROFILE_STATE,
+ * BT_DPM_POLICY_SAP_PROFILE_STATE,
+ * BT_DPM_POLICY_SPP_PROFILE_STATE,
+ * BT_DPM_PROFILE_NONE
+ * @param[out] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_get_profile_state(bt_dpm_profile_e profile, bt_dpm_status_e *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Sets the Restriction for desktop connectivity.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_set_desktop_connectivity_state(bt_dpm_status_e value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the Restriction for desktop connectivity.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[out] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_get_desktop_connectivity_state(bt_dpm_status_e *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Sets the Restriction for discoverable mode.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_set_discoverable_state(bt_dpm_status_e value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the Restriction for discoverable mode.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[out] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_get_discoverable_state(bt_dpm_status_e *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Sets the Restriction for limited discoverable mode.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+
+int bt_dpm_set_limited_discoverable_state(bt_dpm_status_e value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the Restriction for limited discoverable mode.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[out] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_get_limited_discoverable_state(bt_dpm_status_e *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Sets the Restriction for Data transfer.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_set_data_transfer_state(bt_dpm_status_e value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+ * @brief Reads the Restriction for Data transfer.
+ * @since_tizen 3.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[out] value - State value.
+ * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
+ * @retval #BT_ERROR_NOT_SUPPORTED Not suported
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_OPERATION_FAILED operation failed
+ *
+ * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
+ * @see bt_dpm_get_allow_bluetooth_mode()
+ */
+int bt_dpm_get_data_transfer_state(bt_dpm_status_e *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Gets the pbap connected status.
+ * @since_tizen 3.0
+ * @param[in] remote_address The address of the remote device
+ * @param[out] connected_status the connected status
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ *
+ * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
+ */
+int bt_pbap_client_is_connected(const char *address, bool *connected_status);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Sends the custom event data.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] remote_address device address of remote device.
+ * @param[in] report_id reoport id need to be passed to remote device
+ * @param[in] data The data need to be passed to remote device
+ * @param[in] data_len The length of the data
+ * @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_OPERATION_FAILED Operation failed
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre The HID connection must be established.
+ * @see bt_hid_device_connection_state_changed_cb()
+ */
+int bt_hid_device_send_custom_event(const char *remote_address,
+ unsigned char report_id, const char *data, unsigned int data_len);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
+ * @brief Sends the volume change request to the remote device.
+ * @since_tizen 4.0
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ * @param[in] value The new volume level
+ * @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_target_connection_state_changed_cb()
+ * @see bt_avrcp_target_initialize()
+ */
+int bt_avrcp_control_set_absolute_volume(unsigned int value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Creates the Proximity Profile Reporter Role.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] None
+ * @param[out] reporter proximity reporter server handle
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_ALREADY_DONE Already Enabled
+ * @retval #BT_ERROR_OUT_OF_MEMORY out Of Memory
+ */
+int bt_proximity_reporter_create(bt_proximity_reporter_h *reporter);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Destroys the Proximity Profile Reporter Role.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] reporter proximity reporter server handle
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ */
+int bt_proximity_reporter_destroy(bt_proximity_reporter_h reporter);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Creates the Proximity Profile Monitor Role.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote address
+ * @param[out] monitor proximity monitor handle
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_ALREADY_DONE Already Enabled
+ * @retval #BT_ERROR_OUT_OF_MEMORY out Of Memory
+ */
+int bt_proximity_monitor_create(const char *remote_address, bt_proximity_monitor_h *monitor);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Creates the Proximity Profile Monitor Role.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] monitor proximity monitor handle
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Device not Connected
+ */
+int bt_proximity_monitor_destroy(bt_proximity_monitor_h monitor);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Proximity Monitor initiates the connection to remote reporter device.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] monitor proximity monitor handle
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ */
+int bt_proximity_monitor_connect(bt_proximity_monitor_h monitor);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Proximity Monitor disconnects with the remote reporter device.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] proximity monitor handle
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ */
+int bt_proximity_monitor_disconnect(bt_proximity_monitor_h monitor);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Sets proximity monitor connection state changed event change callback.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] proximity monitor handle
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Device not Connected
+ */
+int bt_proximity_monitor_set_connection_state_changed_cb(bt_proximity_monitor_h monitor,
+ bt_proximity_monitor_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Unsets proximity monitor connection state changed event change callback.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] proximity monitor handle
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Device not Connected
+ */
+int bt_proximity_monitor_unset_connection_state_changed_cb(bt_proximity_monitor_h monitor);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Sets proximity reporter connection state changed event change callback.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] reporter proximity reporter handle
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ */
+int bt_proximity_reporter_set_connection_state_changed_cb(bt_proximity_reporter_h reporter,
+ bt_proximity_reporter_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Unsets proximity reporter connection state changed event change callback.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] proximity reporter handle
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ */
+int bt_proximity_reporter_unset_connection_state_changed_cb(bt_proximity_reporter_h reporter);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Sets proximity reporter properties change callback.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] reporter proximity reporter handle
+ * @param[in] callback The callback function to register
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ */
+int bt_proximity_reporter_set_property_changed_cb(bt_proximity_reporter_h reporter,
+ bt_proximity_reporter_property_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Unsets proximity reporter properties change callback.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] reporter proximity reporter handle
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ */
+int bt_proximity_reporter_unset_property_changed_cb(bt_proximity_reporter_h reporter);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Set the Proximity Profile monitor linkloss alert value.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] monitor proximity monitor handle
+ * @param[in] value The value to be set for link loss alert
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Device not Connected
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_proximity_monitor_set_linkloss_alert(bt_proximity_monitor_h monitor, int value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Set the Proximity Profile monitor immediate alert value.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] monitor proximity monitor handle
+ * @param[in] value The value to be set for immediate alert
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Device not Connected
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_proximity_monitor_set_immediate_alert(bt_proximity_monitor_h monitor, int value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Read the Proximity Profile monitor linkloss alert value.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] monitor proximity monitor handle
+ * @param[out] value value read for the linkloss alert.
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Device not Connected
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_proximity_monitor_get_linkloss_alert(bt_proximity_monitor_h monitor, int *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Read the Proximity Profile monitor immediate alert value.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] monitor proximity monitor handle
+ * @param[out] value value read for the immedaite alert.
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Device not Connected
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_proximity_monitor_get_immediate_alert(bt_proximity_monitor_h monitor, int *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Read the Proximity Profile monitor Signal level value.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] monitor proximity monitor handle
+ * @param[out] value value read for the signal level.
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Device not Connected
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_proximity_monitor_get_signal_level(bt_proximity_monitor_h monitor, int *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Read the Proximity Profile reporter linkloss alert value.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address remote device reporter address
+ * @param[out] value value read for the linkloss alert.
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_proximity_reporter_get_linkloss_alert(const char *remote_address, int *value);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Read the Proximity Profile reporter immediate alert value.
+ * @since_tizen 4.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ * @param[in] remote_address remote device reporter address
+ * @param[out] value value read for the immediate alert.
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED not initialized
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ */
+int bt_proximity_reporter_get_immediate_alert(const char *remote_address, int *value);
+
+/* This internal API will be removed */
+/**
+ * @internal
+ * @deprecated Deprecated since 4.0. Use bt_adapter_le_scan_filter_unregister instead.
+ * @brief API to Unset the Proximity uuids scan report
+ */
+int bt_adapter_le_scan_filter_unset_proximity_uuid(bt_scan_filter_h scan_filter) TIZEN_DEPRECATED_API;
+
+/**
+ * @internal
+ * @brief API to register TDS provider.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] None
+ * @param[out] None
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_initialize()
+ * @see bt_tds_provider_unregister()
+ */
+int bt_tds_provider_register(void);
+
+/**
+ * @internal
+ * @brief API to unregister TDS provider.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] None
+ * @param[out] None
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @pre TDS provider must be registered with bt_tds_provider_register().
+ *
+ * @see bt_initialize()
+ * @see bt_tds_provider_register()
+ */
+int bt_tds_provider_unregister(void);
+
+/**
+ * @internal
+ * @brief API to create TDS provider.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] transport Transport to be discovered over BLE.
+ * @param[out] provider The handle associated with the newly created provider.
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @pre TDS provider must be registered with bt_tds_provider_register().
+ *
+ * @see bt_initialize()
+ * @see bt_tds_provider_register()
+ * @see bt_tds_provider_unregister()
+ * @see bt_tds_provider_destroy()
+ */
+int bt_tds_provider_create(bt_tds_provider_h *provider, bt_tds_transport_e transport);
+
+/**
+ * @internal
+ * @brief API to destroy TDS provider.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] provider The handle associated with the provider
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @pre TDS provider must be registered with bt_tds_provider_register().
+ * @pre TDS provider must be created with bt_tds_provider_create().
+ *
+ * @see bt_initialize()
+ * @see bt_tds_provider_register()
+ * @see bt_tds_provider_create()
+ */
+int bt_tds_provider_destroy(bt_tds_provider_h provider);
+
+/**
+ * @internal
+ * @brief API to set transport block data for transport provider.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] provider The handle associated with the provider
+ * @param[in] transport_state State of transport
+ * @param[in] buf transport block data
+ * @param[in] length transport block data length
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @pre TDS provider must be registered with bt_tds_provider_register().
+ * @pre TDS provider must be created with bt_tds_provider_create().
+ *
+ * @see bt_initialize()
+ * @see bt_tds_provider_register()
+ * @see bt_tds_provider_create()
+ */
+int bt_tds_provider_set_transport_data(bt_tds_provider_h provider,
+ bt_tds_transport_state_e transport_state, unsigned char *buf, int length);
+
+/**
+ * @internal
+ * @brief API to set TDS provider manufacturer specific data.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] buf manufacturer specific data
+ * @param[in] length manufacturer data length
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @pre TDS provider must be registered with bt_tds_provider_register().
+ *
+ * @see bt_initialize()
+ * @see bt_tds_provider_register()
+ * @see bt_tds_provider_create()
+ */
+int bt_tds_provider_set_manufacturer_data(unsigned char *buf, int length);
+
+/**
+ * @internal
+ * @brief API to send activation response to TDS seeker.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] address Remote device bluetooth address
+ * @param[in] result Result of activation request
+ * BT_ERROR_NONE: success
+ * BT_ERROR_INVALID_PARAMETER: Invalid data in activation request
+ * BT_ERROR_OPERATION_FAILED: Operation failed
+ * @param[in] provider The handle associated with the provider
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @pre TDS provider must be registered with bt_tds_provider_register().
+ *
+ * @see bt_initialize()
+ * @see bt_tds_provider_register()
+ * @see bt_tds_activation_requested_cb()
+ * @see bt_tds_set_transport_activation_requested_cb()
+ * @see bt_tds_unset_transport_activation_requested_cb()
+ */
+int bt_tds_provider_send_activation_resp(char *address, int result, bt_tds_provider_h provider);
+
+/**
+ * @internal
+ * @brief API to set activation requeste callback.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] callback The callback function to invoke
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ * @post bt_tds_activation_requested_cb() will be invoked.
+ *
+ * @see bt_initialize()
+ * @see bt_tds_activation_requested_cb()
+ * @see bt_tds_unset_transport_activation_requested_cb()
+ */
+int bt_tds_set_transport_activation_requested_cb(
+ bt_tds_activation_requested_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @brief API to unset activation requeste callback.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth.admin
+ *
+ * @param[in] None
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ *
+ * @see bt_initialize()
+ * @see bt_tds_set_transport_activation_requested_cb()
+ */
+int bt_tds_unset_transport_activation_requested_cb(void);
+
+/**
+ * @internal
+ * @brief TDS Seeker Profile API to start seeking Remote TDS providers only
+ */
+int bt_tds_start_seeking_providers(bt_tds_provider_scan_result_cb cb, void *user_data);
+
+/**
+ * @internal
+ * @brief TDS Seeker Profile API to stop seeking Remote TDS providers
+ */
+int bt_tds_stop_seeking_providers(void);
+
+/**
+ * @internal
+ * @brief TDS Seeker Profile API to create Seeker Role associated with Remote TDS provider
+ */
+int bt_tds_seeker_create(const char *remote_address, bt_tds_seeker_h *seeker);
+
+/**
+ * @internal
+ * @brief TDS Seeker Profile API to destroy Seeker Role associated with Remote TDS provider
+ */
+int bt_tds_seeker_destroy(bt_tds_seeker_h seeker);
+
+/**
+ * @internal
+ * @brief TDS Seeker Profile API to set connection state changed event associated with Remote TDS provider
+ */
+int bt_tds_seeker_set_connection_state_changed_cb(bt_tds_seeker_h seeker,
+ bt_tds_seeker_connection_state_changed_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @brief TDS Seeker Profile API to unset connection state changed event associated with Remote TDS provider
+ */
+int bt_tds_seeker_unset_connection_state_changed_cb(bt_tds_seeker_h seeker);
+
+/**
+ * @internal
+ * @brief TDS Seeker Profile API to connect to Remote TDS provider
+ */
+int bt_tds_seeker_connect(bt_tds_seeker_h seeker);
+
+/**
+ * @internal
+ * @brief TDS Seeker Profile API to disconnect to Remote TDS provider
+ */
+int bt_tds_seeker_disconnect(bt_tds_seeker_h seeker);
+
+/**
+ * @internal
+ * @brief TDS Seeker Profile API to read complete TDS block data which is stored in Remote TDS provider's GATT database
+ */
+int bt_tds_seeker_get_complete_transport_blocks(bt_tds_seeker_h seeker,
+ bt_tds_seeker_complete_transport_data_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @brief TDS Seeker Profile API to Activate ALternate transport supported by Remote TDS provider
+ */
+int bt_tds_seeker_activate_control_point(bt_tds_seeker_h seeker,
+ bt_tds_transport_e transport, unsigned char *buffer, int len,
+ bt_tds_control_point_activation_indication_cb callback, void *user_data);
+
+/**
+ * @ingroup
+ * @brief Starts OTP server on the given directory location.
+ */
+int bt_otp_server_initialize(const char *directory);
+
+/**
+ * @ingroup
+ * @brief Stops OTP server.
+ */
+int bt_otp_server_deinitialize();
+
+/**
+ * @ingroup
+ * @brief Registers a callback function that will be invoked when the server state is changed.
+ */
+int bt_otp_set_server_state_changed_cb(bt_otp_server_state_changed_cb callback, void *user_data);
+
+/**
+ * @ingroup
+ * @brief Registers a callback function that will be invoked when the server state is changed.
+ */
+int bt_otp_unset_server_state_changed_cb(void);
+
+/**
+ * @internal
+ * @brief OTP Client Profile API to create Client Role associated with Remote OTP Server
+ */
+int bt_otp_client_create(const char *remote_address, bt_otp_client_h *otp_client);
+
+/**
+ * @internal
+ * @brief OTP Client Profile API to destroy Client Role associated with Remote OTP Server
+ */
+int bt_otp_client_destroy(bt_otp_client_h otp_client);
+
+/**
+ * @internal
+ * @brief OTP Client Profile API to set connection state changed event associated with Remote OTP Server
+ */
+int bt_otp_client_set_connection_state_changed_cb(bt_otp_client_h otp_client,
+ bt_otp_client_state_changed_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @brief OTP Client Profile API to unset connection state changed event associated with Remote OTP Server
+ */
+int bt_otp_client_unset_connection_state_changed_cb(bt_otp_client_h otp_client);
+
+/**
+ * @internal
+ * @brief OTP client API to connect to Remote OTP Server
+ */
+int bt_otp_client_connect(bt_otp_client_h otp_client);
+
+/**
+ * @internal
+ * @brief OTP client API to disconnect to Remote OTP Server
+ */
+int bt_otp_client_disconnect(bt_otp_client_h otp_client);
+
+/**
+ * @internal
+ * @brief OTP client API to discover all objects in Remote OTP Server
+ */
+int bt_otp_client_discover_all_objects(bt_otp_client_h otp_client,
+ bt_otp_client_object_discovery_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @brief OTP client API to select object in Remote OTP Server
+ */
+int bt_otp_client_select_object(bt_otp_client_h otp_client, unsigned long long id,
+ bt_otp_client_object_select_cb callback, void *user_data);
+/**
+ * @internal
+ * @brief OTP client API to read remote objects contents
+ */
+int bt_otp_client_read_object_contents(bt_otp_client_h otp_client,
+ bt_otp_client_read_object_complete_cb callback, void *user_data);
+/**
+ * @internal
+ * @brief OTP client API to create object on remote server
+ */
+int bt_otp_client_create_object(bt_otp_client_h otp_client,
+ const char *file_path,
+ bt_otp_client_object_create_cb callback,
+ void *user_data);
+/**
+ * @internal
+ * @brief OTP client API to write object contents on remote server
+ */
+int bt_otp_client_write_object(bt_otp_client_h otp_client,
+ const char *file_path,
+ int offset, int length, int mode,
+ bt_otp_client_object_write_cb callback,
+ void *user_data);
+/**
+ * @internal
+ * @brief OTP client API to execute object on remote server
+ */
+int bt_otp_client_execute_object(bt_otp_client_h otp_client,
+ bt_otp_client_object_execute_cb callback,
+ void *user_data);
+/**
+ * @internal
+ * @brief OTP client API to delete object on remote server
+ */
+int bt_otp_client_delete_object(bt_otp_client_h otp_client,
+ bt_otp_client_object_delete_cb callback,
+ void *user_data);
+/**
+ * @}
+ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __TIZEN_NETWORK_BLUETOOTH_INTERNAL_H__ */
#include <bluetooth-hid-api.h>
#include <bluetooth-ipsp-api.h>
-#ifndef GATT_DIRECT
-#include <bluetooth-gatt-server-api.h>
-#endif
-
#include "bluetooth.h"
#include "bluetooth_internal.h"
#define BT_ERR(fmt, args...) SLOGE(fmt, ##args)
#define OPP_UUID "00001105-0000-1000-8000-00805f9b34fb"
+#define MAP_UUID "00001134-0000-1000-8000-00805f9b34fb"
/* Manufacture ID for Apple iBeacons */
#define COMPANY_ID_APPLE 0x004C
+/* Priximity Services UUID */
+#define PXP_IMMEDIATE_ALERT_SVC_UUID "1802"
+#define PXP_LINK_LOSS_SVC_UUID "1803"
+#define PXP_TX_POWER_SVC_UUID "1804"
+
/**
* @internal
* @brief Bluetooth callback.
BT_EVENT_OPP_CLIENT_PUSH_RESPONSED, /**< OPP client connection is responsed */
BT_EVENT_OPP_CLIENT_PUSH_PROGRESS, /**< OPP client push progress */
BT_EVENT_OPP_CLIENT_PUSH_FINISHED, /**< OPP client push is finished */
+ BT_EVENT_MAP_CONNECTION_REQUESTED, /**< MAP connection is requested */
+ BT_EVENT_MAP_CLIENT_OP_COMPLETE, /**< MAP client operation is complete */
BT_EVENT_PAN_CONNECTION_STATE_CHANGED, /**< PAN connection change */
BT_EVENT_NAP_CONNECTION_STATE_CHANGED, /**< NAP connection change */
BT_EVENT_HDP_CONNECTED, /**< HDP connection change */
BT_EVENT_GATT_CLIENT_READ_DESCRIPTOR, /**< GATT descriptor value read callback */
BT_EVENT_GATT_CLIENT_WRITE_DESCRIPTOR, /**< GATT descriptor value write callback */
BT_EVENT_GATT_SERVER_READ_REQUESTED, /**< GATT Characteristic/Descriptor Read Requested callback*/
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
BT_EVENT_GATT_CLIENT_CHARACTERISTIC_DISCOVERED_LEGACY, /**< GATT characteristic discovered callback */
BT_EVENT_GATT_CLIENT_CHARACTERISTIC_DESCRIPTOR_DISCOVERED_LEGACY, /**< GATT characteristic descriptor discovered callback */
BT_EVENT_GATT_CLIENT_VALUE_CHANGED_LEGACY, /**< GATT characteristic value changed callback */
BT_EVENT_GATT_CLIENT_READ_CHARACTERISTIC_LEGACY, /**< GATT characteristic value read callback */
BT_EVENT_GATT_CLIENT_WRITE_CHARACTERISTIC_LEGACY, /**< GATT characteristic value write callback */
-#endif
BT_EVENT_IPSP_INIT_STATE_CHANGED, /**< IPSP Init status changed callback */
BT_EVENT_IPSP_CONNECTION_STATUS, /**< IPSP connection status callback */
BT_EVENT_LE_DATA_LENGTH_CHANGED, /** LE data length changed callback */
BT_EVENT_GET_RSSI_EVENT, /**< Get RSSI Strength callback */
BT_EVENT_LE_READ_MAXIMUM_DATA_LENGTH, /**< Read maximun LE data length callback */
BT_EVENT_SUPPORTED_TRUSTED_PROFILE_EVENT, /**< Trusted Profile callback */
- BT_EVENT_PROXIMITY_PROPERTY_CHANGED, /**< Proximity property changed */
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
+ BT_EVENT_PROXIMITY_CONNECTION_STATE_CHANGED, /**< Proximity Monitor/Reporter Connection sgate changed */
+ BT_EVENT_PROXIMITY_REPORTER_PROPERTY_CHANGED, /**< Proximity property changed */
BT_EVENT_PBAP_CONNECTION_STATUS, /**< PBAP connection status callback */
BT_EVENT_PBAP_PHONEBOOK_SIZE, /**< PBAP Phonebook Size status callback */
BT_EVENT_PBAP_PHONEBOOK_PULL, /**< PBAP Phonebook Pull status callback */
BT_EVENT_HF_CALL_STATUS_UPDATED_EVENT, /**< Audio - HF call status updated callback */
BT_EVENT_HF_REMOTE_CALL_EVENT, /**< Audio - HF : call state event callback */
BT_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED, /**< Audio - HF : device state changed callback */
-#endif
+ BT_EVENT_MAP_CLIENT_LIST_FOLDERS, /**< MAP client - listFolders event*/
+ BT_EVENT_MAP_CLIENT_LIST_FILTER_FIELDS, /**< MAP - get filter field list callback */
+ BT_EVENT_MAP_CLIENT_LIST_MESSAGES, /**< MAP - listMessages event*/
+ BT_EVENT_MAP_CLIENT_GET_MESSAGE, /**< MAP - getMessage event*/
+ BT_EVENT_MAP_CLIENT_PUSH_MESSAGE, /**< MAP - pushMessage event*/
+ BT_EVENT_TDS_ACTIVATION_REQUESTED, /**< TDS - transport activation requested event */
+ BT_EVENT_TDS_PROVIDER_FOUND_RESULT, /**< TDS - CUSTOM Provider */
+ BT_EVENT_OTP_SERVER_STATE_CHANGED, /**< OTP - Server Status */
BT_EVENT_MAX
} bt_event_e;
BT_GATT_ROLE_CLIENT = 0x02,
} bt_gatt_role_e;
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
-/**
- * @internal
- */
-typedef enum {
- BT_ADAPTER_LE_ADVERTISING_CONNECTABLE = 0x00, /**< Connectable undirected advertising (ADV_IND) */
- BT_ADAPTER_LE_ADVERTISING_CONNECTABLE_DIRECT_HIGH = 0x01, /* @Deprecated since Tizen 2.4 */
- BT_ADAPTER_LE_ADVERTISING_SCANNABLE = 0x02, /**< Scannable undirected advertising (ADV_SCAN_IND) */
- BT_ADAPTER_LE_ADVERTISING_NON_CONNECTABLE = 0x03, /**< Non connectable undirected advertising (ADV_NONCOND_IND) */
- BT_ADAPTER_LE_ADVERTISING_CONNECTABLE_DIRECT_LOW = 0x04, /* @Deprecated since Tizen 2.4 */
-} bt_adapter_le_advertising_type_e;
-
-/**
- * @internal
- */
-typedef enum {
- BT_ADAPTER_LE_PACKET_DATA_INCOMP_LIST_16_BIT_SERVICE_CLASS_UUIDS = 0x02, /**<Incomplete list of 16 bit UUIDs */
- BT_ADAPTER_LE_PACKET_DATA_COMP_LIST_16_BIT_SERVICE_CLASS_UUIDS = 0x03, /**< Complete list of 16 bit UUIDs */
- BT_ADAPTER_LE_PACKET_DATA_INCOMP_LIST_128_BIT_SERVICE_CLASS_UUIDS = 0x06, /**< Incomplete list of 128 bit UUIDs */
- BT_ADAPTER_LE_PACKET_DATA_COMP_LIST_128_BIT_SERVICE_CLASS_UUIDS = 0x07, /**< Complete list of 128 bit UUID */
- BT_ADAPTER_LE_PACKET_DATA_LOCAL_NAME = 0x09, /**<local device name */
- BT_ADAPTER_LE_PACKET_DATA_TX_POWER_LEVEL = 0x0a, /**< TX-Power level*/
- BT_ADAPTER_LE_PACKET_DATA_16_BIT_SERVICE_SOLICITATION_UUIDS = 0x14, /**< List of 16-bit Service Solicitation UUIDs*/
- BT_ADAPTER_LE_PACKET_DATA_128_BIT_SERVICE_SOLICITATION_UUIDS = 0x15, /**< List of 128-bit Service Solicitation UUIDs*/
- BT_ADAPTER_LE_PACKET_DATA_SERVICE_DATA = 0x16, /**< Service data */
- BT_ADAPTER_LE_PACKET_DATA_APPEARANCE = 0x19, /**< Appearance*/
- BT_ADAPTER_LE_PACKET_DATA_MANUFACTURER_SPECIFIC_DATA = 0xff, /**< Manufacturer data */
-} bt_adapter_le_packet_data_type_e;
-#endif
/**
* @internal
BT_ADAPTER_LE_ADVERTISING_DATA_128_BIT_SERVICE_SOLICITATION_UUIDS = 0x15, /**< List of 128-bit Service Solicitation UUIDs*/
BT_ADAPTER_LE_ADVERTISING_DATA_SERVICE_DATA = 0x16, /**< Service data */
BT_ADAPTER_LE_ADVERTISING_DATA_APPEARANCE = 0x19, /**< Appearance*/
+ BT_ADAPTER_LE_ADVERTISING_DATA_TRANSPORT_DISCOVERY = 0x26, /**< Transport Discovery*/
BT_ADAPTER_LE_ADVERTISING_DATA_MANUFACTURER_SPECIFIC_DATA = 0xff, /**< Manufacturer data */
} bt_adapter_le_advertising_data_type_e;
bool services_discovered;
bool connected;
+ bt_gatt_client_att_mtu_changed_cb att_mtu_changed_cb;
bt_gatt_client_service_changed_cb service_changed_cb;
void *service_changed_user_data;
+ void *att_mtu_changed_user_data;
} bt_gatt_client_s;
typedef struct {
void *parent;
char *path;
char *uuid;
-#ifndef GATT_DIRECT
- int handle;
-#endif
} bt_gatt_common_s;
typedef struct {
void *parent;
char *path;
char *uuid;
-#ifndef GATT_DIRECT
- int handle;
- int numhandles;
-#endif
+
bool is_included_service;
bt_gatt_service_type_e service_type;
void *parent;
char *path;
char *uuid;
-#ifndef GATT_DIRECT
- int handle;
- bluetooth_device_address_t address;
-#endif
+
int permissions;
int properties;
bt_gatt_write_type_e write_type;
int value_length;
char *value;
+
+ bt_gatt_client_request_completed_cb read_cb;
+ void *read_user_data;
+
+ bt_gatt_client_request_completed_cb write_cb;
+ void *write_user_data;
} bt_gatt_characteristic_s;
typedef struct {
void *parent;
char *path;
char *uuid;
-#ifndef GATT_DIRECT
- int handle;
-#endif
+
int permissions;
bt_gatt_server_write_value_requested_cb write_value_requested_cb;
int value_length;
char *value;
+
+ bt_gatt_client_request_completed_cb read_cb;
+ void *read_user_data;
+
+ bt_gatt_client_request_completed_cb write_cb;
+ void *write_user_data;
} bt_gatt_descriptor_s;
typedef struct {
typedef void (*_bt_gatt_client_value_changed_cb)(char *char_path,
unsigned char *value, int value_length, void *user_data);
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumaration for the address type field in manufactrer specific data
- * @since_tizen 3.0
- */
-typedef enum {
- ADDRESS_NONE_TYPE = 0x00,
- WI_FI_P2P_ADDRESS = 0x01,
- BLUETOOTH_ADDRESS = 0x02,
- INDICATION_ADDRESS = 0x04,
- IPV4_ADDRESS = 0x08,
- IPV6_ADDRESS = 0x10,
- UNKNOWN_ADDRESS = 0xff
-} connectivity_address_t;
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumaration for the proximity locality type field in manufactrer specific data
- * @since_tizen 3.0
- */
-typedef enum {
- NONE_TYPE = 0x00,
- PROXIMITY = 0x01,
- CO_PRESENCE = 0x02,
- UNKNOWN_TYPE = 0xff
-} bt_proximity_locality_t;
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Structure of samsung specific manufacturer data
- * @since_tizen 3.0
- */
-typedef struct {
- unsigned char version;
- unsigned char service_id;
- unsigned char discovery_version;
- unsigned char associated_service_id;
- bt_proximity_locality_t proximity_locality_type;
- unsigned char proximity_locality_info;
- unsigned char device_type;
- unsigned char device_icon;
- unsigned char auth_info[5];
- connectivity_address_t addr_type;
- unsigned char addr1[6];
- unsigned char addr2[6];
- unsigned char channel_info;
- unsigned char associated_service_data_len;
- unsigned char *associated_service_data_val;
- char *name;
-} bt_manufacturer_data;
-
/**
* @internal
* @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
#define BT_CHECK_INPUT_PARAMETER(arg) \
if (arg == NULL) { \
- LOGE("[%s] INVALID_PARAMETER(0x%08x)", __FUNCTION__, BT_ERROR_INVALID_PARAMETER); \
+ LOGE("[%s] INVALID_PARAMETER(0%s=NULL)", __FUNCTION__, #arg); \
+ return BT_ERROR_INVALID_PARAMETER; \
+ }
+
+#define BT_CHECK_INPUT_PARAMETER_UINT(arg) \
+ if (arg < -1) { \
+ LOGE("[%s] INVALID_PARAMETER_UINT(%s=%d)", __FUNCTION__, #arg, arg); \
+ return BT_ERROR_INVALID_PARAMETER; \
+ }
+
+#define BT_CHECK_INPUT_PARAMETER_BOOL(arg) \
+ if (arg < -1 || arg > 1) { \
+ LOGE("[%s] INVALID_PARAMETER_BOOL(%s=%d)", __FUNCTION__, #arg, arg); \
return BT_ERROR_INVALID_PARAMETER; \
}
#define BT_FEATURE_COMMON "tizen.org/feature/network.bluetooth"
#define BT_FEATURE_LE "tizen.org/feature/network.bluetooth.le"
+#define BT_FEATURE_IPSP "tizen.org/feature/network.bluetooth.le.ipsp"
#define BT_FEATURE_AUDIO_CALL "tizen.org/feature/network.bluetooth.audio.call"
#define BT_FEATURE_AUDIO_MEDIA "tizen.org/feature/network.bluetooth.audio.media"
#define BT_FEATURE_AUDIO_CONTROLLER "tizen.org/feature/network.bluetooth.audio.controller"
#define BT_FEATURE_HID_HOST "tizen.org/feature/network.bluetooth.hid"
#define BT_FEATURE_HID_DEVICE "tizen.org/feature/network.bluetooth.hid_device"
#define BT_FEATURE_OPP "tizen.org/feature/network.bluetooth.opp"
+#define BT_FEATURE_MAP "tizen.org/feature/network.bluetooth.map"
#define BT_FEATURE_TETHERING "tizen.org/feature/network.tethering.bluetooth"
#define BT_FEATURE_PBAP_CLIENT "tizen.org/feature/network.bluetooth.phonebook.client"
int _bt_get_bt_device_info_s(bt_device_info_s **dest_dev, bluetooth_device_info_t *source_dev);
+/**
+ * @internal
+ * @brief Filter Advertising data based on AD type.
+ */
+int _bt_get_ad_data_by_type(char *in_data, int in_len,
+ char in_type, char **data, int *data_len);
+
/**
* @internal
* @brief Free bt_device_info_s.
*/
void _bt_convert_address_to_hex(bluetooth_device_address_t *addr_hex, const char *addr_str);
+void _handle_gatt_client_read_completed_event(int result, bt_gatt_resp_data_t *resp);
+
+void _handle_gatt_client_write_completed_event(int result, bt_gatt_resp_data_t *resp);
+
/**
* @internal
*/
void _bt_audio_event_proxy(int event, bt_audio_event_param_t *param, void *user_data);
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
/**
* @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
* @brief Enumerations for the device state event from Audio-Gateway device
BT_HF_REMOTE_DEVICE_STATE_VOICE_RECOGNITON, /**< Voice Recognition State (0:disabled , 1:enabled) */
} bt_hf_remote_device_state_e;
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Enumerations for the call event from Audio-Gateway device
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HF_REMOTE_CALL_EVENT_IDLE = 0x00, /**< Idle. Neither setup call nor active call exist */
- BT_HF_REMOTE_CALL_EVENT_INCOMING, /**< (Call-setup event) Received an incoming call on AG */
- BT_HF_REMOTE_CALL_EVENT_DIALING, /**< (Call-setup event) Dialing an outgoing call on AG */
- BT_HF_REMOTE_CALL_EVENT_ALERTING, /**< (Call-setup event) Remote party being alerted in an outgoing call of AG */
- BT_HF_REMOTE_CALL_EVENT_CALL_TERMINATED, /**< (Call-setup event) Setup call is terminated without activating */
- BT_HF_REMOTE_CALL_EVENT_CALL_STARTED, /**< (Active call state event) Call is started on AG */
- BT_HF_REMOTE_CALL_EVENT_CALL_ENDED, /**< (Active call state event) Active call is terminated on AG */
- BT_HF_REMOTE_CALL_EVENT_UNHELD, /**< (Call held event) No calls on hold */
- BT_HF_REMOTE_CALL_EVENT_SWAPPED, /**< (Call held event) Call is placed on hold or active/held calls swapped */
- BT_HF_REMOTE_CALL_EVENT_HELD, /**< (Call held event) Calls on hold, no active call */
- BT_HF_REMOTE_CALL_EVENT_RINGING, /**< Incoming call is ringing event with number. This event is optional event. */
- BT_HF_REMOTE_CALL_EVENT_WAITING, /**< Call Waiting notification in 3-way call scenario */
- BT_HF_REMOTE_CALL_EVENT_FAILED_TO_DIALING, /**< Failed to dialing a outgoing call on AG */
-} bt_hf_remote_call_event_e;
-
/**
* @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
* @brief Called when a device status changed event happend from Audio-Gateway device
*/
typedef void (*bt_hf_remote_device_state_changed_cb) (bt_hf_remote_device_state_e state, int value, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Called when a call event happend from Audio-Gateway device
- * @since_tizen 3.0
- *
- * @param[in] event The call state chagned event from remote Audio-Gateway device
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @see bt_hf_set_remote_call_event_cb()
- * @see bt_hf_unset_remote_call_event_cb()
- */
-typedef void (*bt_hf_remote_call_event_cb) (bt_hf_remote_call_event_e event, char *phone_number, void *user_data);
-
/**
* @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
* @brief Called when a vendor command event happened from Hands-Free.
* @brief Since the HF call back and event proxy call backs have different prototype it is wrapper function.
*/
void _bt_hf_event_proxy(int event, bt_hf_event_param_t *param, void *user_data);
-#endif
/**
* @internal
void _bt_adapter_le_invoke_advertising_state_cb(int handle, int result, bt_adapter_le_advertising_state_e adv_state);
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
bool _bt_gatt_is_legacy_client_mode(void);
-#endif
bt_gatt_client_h _bt_gatt_get_client(const char *remote_addr);
int _bt_gatt_client_update_descriptors(bt_gatt_h characteristic);
-#ifndef GATT_DIRECT
-/**
- * @internal
- * @brief Since the GATT Server call back and event proxy call backs have different prototype it is wrapper function.
- */
-void _bt_gatt_server_event_proxy(int event, gatt_server_event_param_t *param, void *user_data);
-#endif
-
-
/**
* @ingroup CAPI_NETWORK_BLUETOOTH_LE_MODULE
* @brief Reads the maximum data length of LE packets supported by the controller.
int bt_device_le_set_data_length_change_cb(
_bt_le_set_data_length_changed_cb callback, void *user_data);
+/**
+ * @internal
+ * @brief Reads if the Proximity profile is registered or not.
+ */
+int _bt_check_proximity_is_initialized(bool *is_initialized);
+
+/**
+ * @internal
+ * @brief Calls the connection state changed callback for proximity profile.
+ */
+int _bt_proximity_connection_set_state_changed(int result, const char *remote_address, bool connected);
+
+/**
+ * @internal
+ * @brief Send GATT connection state changed status with remote TDS provider.
+ */
+void _bt_tds_update_seeker_connection_state_changed(int result, const char *remote_address, bool connected);
+
+/**
+ * @internal
+ * @brief Parses TDS AD Type data recived in scan, to extract meaningful transport specific data.
+ */
+int _bt_tds_parse_transport_blocks(bt_tds_transport_block_list_s **info, char *data, int data_len);
+
+/**
+ * @internal
+ * @brief Handles complete TDS specific data to be sent to application.
+ */
+void _bt_tds_send_complete_transport_data(int result, const char *address, char *data, int data_len);
+
+/**
+ * @internal
+ * @brief Send Result of TDS specific CCCD enabled event of Remote TDS provider.
+ */
+void _bt_tds_control_point_enabled_update(int result, const char *remote_address);
+
+/**
+ * @internal
+ * @brief Send Result of TDS control point activate ACK event.
+ */
+void _bt_tds_control_point_activation_result_update(int result, const char *remote_address);
+
+/**
+ * @internal
+ * @brief Send TDS Indication response from remote TDS provider.
+ */
+void _bt_tds_control_point_indication_response_update(const char *address, bluetooth_tds_indication_res_t *info);
+
+/**
+ * @internal
+ * @brief Sends GATT primary service status changed of Remote Provider.
+ */
+void _bt_tds_check_service_changed(char *address, bt_gatt_service_change_t *service_change);
+
+/**
+ * @internal
+ * @brief Send GATT connection state changed status with remote OTP Server.
+ */
+void _bt_otp_client_connection_state_changed(int result, const char *remote_address, bool connected);
+
+/**
+ * @internal
+ * @brief Send GATT Read Response status got from remote OTP Server.
+ */
+void _bt_otp_client_read_value_response(int result, char *char_path,
+ char *char_value, int val_len);
+
+/**
+ * @internal
+ * @brief Send GATT Write Response status got from remote OTP Server.
+ */
+void _bt_otp_client_write_value_response(int result, char *handle);
+
+/**
+ * @internal
+ * @brief Send GATT Notification Enabled Response status got from remote OTP Server.
+ */
+void _bt_otp_client_notification_enabled(int result, char *handle);
+
+/**
+ * @internal
+ * @brief Send GATT Indicate Response status got from remote OTP Server.
+ */
+void _bt_otp_client_indication(int result, bluetooth_otp_resp_info_t *info);
+
+/**
+ * @internal
+ * @brief Send OTC connection status to application.
+ */
+void _bt_otc_connection_state_changed(int result, bluetooth_otc_info_t *otc_info);
+
+/**
+ * @internal
+ * @brief Sends GATT primary service status changed of Remote Server.
+ */
+void _bt_otp_check_service_changed(char *address, bt_gatt_service_change_t *service_change);
+
typedef enum {
_PROFILE_UNKNOWN = 0,
_PROFILE_MOBILE = 0x1,
extern tizen_profile_t _get_tizen_profile();
extern tizen_profile_t profile;
+#define TIZEN_PROFILE_(x) (((__builtin_expect(profile != _PROFILE_UNKNOWN, 1)) ? \
+ (profile) : _get_tizen_profile()) \
+ & (x))
+
+#define TIZEN_PROFILE_MOBILE TIZEN_PROFILE_(_PROFILE_MOBILE)
+#define TIZEN_PROFILE_COMMON TIZEN_PROFILE_(_PROFILE_COMMON)
+#define TIZEN_PROFILE_TV TIZEN_PROFILE_(_PROFILE_TV)
+#define TIZEN_PROFILE_WEARABLE TIZEN_PROFILE_(_PROFILE_WEARABLE)
+#define TIZEN_PROFILE_IVI TIZEN_PROFILE_(_PROFILE_IVI)
+
+#define TIZEN_PROFILE_WEARABLE_IVI TIZEN_PROFILE_(_PROFILE_WEARABLE | _PROFILE_IVI)
+
+#define TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT TIZEN_PROFILE_MOBILE
+
#ifdef __cplusplus
}
#endif
--- /dev/null
+/*
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_H__
+#define __TIZEN_NETWORK_BLUETOOTH_TYPE_H__
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <tizen_error.h>
+
+ #ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/**
+ * @file bluetooth_type.h
+ * @brief API to control the Bluetooth adapter, devices and communications.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_TYPE_MODULE
+ */
+
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Enumeration of PBAP fields.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ */
+typedef enum {
+ BT_PBAP_FIELD_ALL = (0xFFFFFFFFU), /**< All field */
+ BT_PBAP_FIELD_VERSION = (1U << 0), /**< vCard Version */
+ BT_PBAP_FIELD_FN = (1U << 1), /**< Formatted Name */
+ BT_PBAP_FIELD_N = (1U << 2), /**< Structured Presentation of Name */
+ BT_PBAP_FIELD_PHOTO = (1U << 3), /**< Associated Image or Photo */
+ BT_PBAP_FIELD_BDAY = (1U << 4), /**< Birthday */
+ BT_PBAP_FIELD_ADR = (1U << 5), /**< Delivery Address */
+ BT_PBAP_FIELD_LABEL = (1U << 6), /**< Delivery */
+ BT_PBAP_FIELD_TEL = (1U << 7), /**< Telephone Number */
+ BT_PBAP_FIELD_EMAIL = (1U << 8), /**< Electronic Mail Address */
+ BT_PBAP_FIELD_MAILER = (1U << 9), /**< Electronic Mail */
+ BT_PBAP_FIELD_TZ = (1U << 10), /**< Time Zone */
+ BT_PBAP_FIELD_GEO = (1U << 11), /**< Geographic Position */
+ BT_PBAP_FIELD_TITLE = (1U << 12), /**< Job */
+ BT_PBAP_FIELD_ROLE = (1U << 13), /**< Role within the Organization */
+ BT_PBAP_FIELD_LOGO = (1U << 14), /**< Organization Logo */
+ BT_PBAP_FIELD_AGENT = (1U << 15), /**< vCard of Person Representing */
+ BT_PBAP_FIELD_ORG = (1U << 16), /**< Name of Organization */
+ BT_PBAP_FIELD_NOTE = (1U << 17), /**< Comments */
+ BT_PBAP_FIELD_REV = (1U << 18), /**< Revision */
+ BT_PBAP_FIELD_SOUND = (1U << 19), /**< Pronunciation of Name */
+ BT_PBAP_FIELD_URL = (1U << 20), /**< Uniform Resource Locator */
+ BT_PBAP_FIELD_UID = (1U << 21), /**< Unique ID */
+ BT_PBAP_FIELD_KEY = (1U << 22), /**< Public Encryption Key */
+ BT_PBAP_FIELD_NICKNAME = (1U << 23), /**< Nickname */
+ BT_PBAP_FIELD_CATEGORIES = (1U << 24), /**< Categories */
+ BT_PBAP_FIELD_PROID = (1U << 25), /**< Product ID */
+ BT_PBAP_FIELD_CLASS = (1U << 26), /**< Class information */
+ BT_PBAP_FIELD_SORT_STRING = (1U << 27), /**< String used for sorting operations */
+ BT_PBAP_FIELD_X_IRMC_CALL_DATETIME = (1U << 28), /**< Time stamp */
+} bt_pbap_field_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
+ * @brief Enumerations of Bluetooth error codes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful*/
+ BT_ERROR_CANCELLED = TIZEN_ERROR_CANCELED, /**< Operation cancelled */
+ BT_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
+ BT_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
+ BT_ERROR_RESOURCE_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Device or resource busy */
+ BT_ERROR_TIMED_OUT = TIZEN_ERROR_TIMED_OUT, /**< Timeout error */
+ BT_ERROR_NOW_IN_PROGRESS = TIZEN_ERROR_NOW_IN_PROGRESS, /**< Operation now in progress */
+ BT_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< BT is Not Supported */
+ BT_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */
+ BT_ERROR_QUOTA_EXCEEDED = TIZEN_ERROR_QUOTA_EXCEEDED, /**< Quota exceeded */
+ BT_ERROR_NO_DATA = TIZEN_ERROR_NO_DATA, /**< No data available */
+ BT_ERROR_DEVICE_POLICY_RESTRICTION = TIZEN_ERROR_DEVICE_POLICY_RESTRICTION, /**< Device policy restriction (Since 3.0) */
+ BT_ERROR_NOT_INITIALIZED = TIZEN_ERROR_BLUETOOTH|0x0101, /**< Local adapter not initialized */
+ BT_ERROR_NOT_ENABLED = TIZEN_ERROR_BLUETOOTH|0x0102, /**< Local adapter not enabled */
+ BT_ERROR_ALREADY_DONE = TIZEN_ERROR_BLUETOOTH|0x0103, /**< Operation already done */
+ BT_ERROR_OPERATION_FAILED = TIZEN_ERROR_BLUETOOTH|0x0104, /**< Operation failed */
+ BT_ERROR_NOT_IN_PROGRESS = TIZEN_ERROR_BLUETOOTH|0x0105, /**< Operation not in progress */
+ BT_ERROR_REMOTE_DEVICE_NOT_BONDED = TIZEN_ERROR_BLUETOOTH|0x0106, /**< Remote device not bonded */
+ BT_ERROR_AUTH_REJECTED = TIZEN_ERROR_BLUETOOTH|0x0107, /**< Authentication rejected */
+ BT_ERROR_AUTH_FAILED = TIZEN_ERROR_BLUETOOTH|0x0108, /**< Authentication failed */
+ BT_ERROR_REMOTE_DEVICE_NOT_FOUND = TIZEN_ERROR_BLUETOOTH|0x0109, /**< Remote device not found */
+ BT_ERROR_SERVICE_SEARCH_FAILED = TIZEN_ERROR_BLUETOOTH|0x010A, /**< Service search failed */
+ BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED = TIZEN_ERROR_BLUETOOTH|0x010B, /**< Remote device is not connected */
+ BT_ERROR_AGAIN = TIZEN_ERROR_BLUETOOTH|0x010C, /**< Resource temporarily unavailable */
+ BT_ERROR_SERVICE_NOT_FOUND = TIZEN_ERROR_BLUETOOTH|0x010D, /**< Service Not Found */
+} bt_error_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Enumerations of the Bluetooth adapter state.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_ADAPTER_DISABLED = 0x00, /**< Bluetooth adapter is disabled */
+ BT_ADAPTER_ENABLED, /**< Bluetooth adapter is enabled */
+} bt_adapter_state_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Enumerations of the Bluetooth visibility mode.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE = 0x00, /**< Other devices cannot find your device via discovery */
+ BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE, /**< Discoverable mode */
+ BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE, /**< Discoverable mode with time limit. After specific period,
+ it is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.*/
+} bt_adapter_visibility_mode_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Enumerations of the discovery state of Bluetooth device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_ADAPTER_DEVICE_DISCOVERY_STARTED, /**< Device discovery is started */
+ BT_ADAPTER_DEVICE_DISCOVERY_FINISHED, /**< Device discovery is finished */
+ BT_ADAPTER_DEVICE_DISCOVERY_FOUND, /**< The remote Bluetooth device is found */
+} bt_adapter_device_discovery_state_e;
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enumerations of the discovery state of Bluetooth LE device.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ */
+typedef enum {
+ BT_ADAPTER_LE_DEVICE_DISCOVERY_STARTED, /**< LE device discovery is started */
+ BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED, /**< LE device discovery is finished */
+ BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND, /**< The remote Bluetooth LE device is found */
+} bt_adapter_le_device_discovery_state_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enumerations of the Bluetooth advertising state.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_ADAPTER_LE_ADVERTISING_STOPPED = 0x00, /**< Bluetooth advertising is stopped */
+ BT_ADAPTER_LE_ADVERTISING_STARTED, /**< Bluetooth advertising is started */
+} bt_adapter_le_advertising_state_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enumerations of the Bluetooth advertising mode.
+ * @since_tizen 2.3.1
+ */
+typedef enum {
+ BT_ADAPTER_LE_ADVERTISING_MODE_BALANCED, /**< Balanced advertising mode */
+ BT_ADAPTER_LE_ADVERTISING_MODE_LOW_LATENCY, /**< Low latency advertising mode */
+ BT_ADAPTER_LE_ADVERTISING_MODE_LOW_ENERGY /**< Low energy advertising mode */
+} bt_adapter_le_advertising_mode_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enumerations of the Bluetooth advertising filter policy.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_ADAPTER_LE_ADVERTISING_FILTER_DEFAULT = 0x00, /**< White list is not in use */
+ BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_SCAN_WL = 0x01, /**< Allow the scan
+ request that in the White list */
+ BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_CONN_WL = 0x02, /**< Allow the connection
+ request that in the White list */
+ BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_SCAN_CONN_WL = 0x03, /**< Allow the
+ scan and connection request that in the White list */
+} bt_adapter_le_advertising_filter_policy_e;
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enumerations of the Bluetooth advertising type.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ */
+typedef enum {
+ BT_ADAPTER_LE_ADVERTISING_CONNECTABLE = 0x00, /**< Connectable undirected advertising (ADV_IND) */
+ BT_ADAPTER_LE_ADVERTISING_CONNECTABLE_DIRECT_HIGH = 0x01, /**< Connectable high duty cycle directed advertising (ADV_DIRECT_IND) */
+ BT_ADAPTER_LE_ADVERTISING_SCANNABLE = 0x02, /**< Scannable undirected advertising (ADV_SCAN_IND) */
+ BT_ADAPTER_LE_ADVERTISING_NON_CONNECTABLE = 0x03, /**< Non connectable undirected advertising (ADV_NONCOND_IND) */
+ BT_ADAPTER_LE_ADVERTISING_CONNECTABLE_DIRECT_LOW = 0x04, /**< Connectable low duty cycle directed advertising (ADV_DIRECT_IND) */
+} bt_adapter_le_advertising_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enumerations of the Bluetooth LE packet type.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_ADAPTER_LE_PACKET_ADVERTISING, /**< Advertising packet */
+ BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, /**< Scan response packet */
+} bt_adapter_le_packet_type_e;
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enumerations of the Bluetooth LE data type
+ * that can be included in LE packets.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ */
+typedef enum {
+ BT_ADAPTER_LE_PACKET_DATA_COMP_LIST_16_BIT_SERVICE_CLASS_UUIDS = 0x03, /**< Complete list of 16 bit UUIDs */
+ BT_ADAPTER_LE_PACKET_DATA_LOCAL_NAME = 0x09, /**<local device name. unit-test uses this. */
+ BT_ADAPTER_LE_PACKET_DATA_MANUFACTURER_SPECIFIC_DATA = 0xff, /**< Manufacturer data */
+} bt_adapter_le_packet_data_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enumerations of the Bluetooth le scan mode.
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_ADAPTER_LE_SCAN_MODE_BALANCED, /**< Balanced mode of power consumption and connection latency */
+ BT_ADAPTER_LE_SCAN_MODE_LOW_LATENCY, /**< Low connection latency but high power consumption */
+ BT_ADAPTER_LE_SCAN_MODE_LOW_ENERGY /**< Low power consumption but high connection latency */
+} bt_adapter_le_scan_mode_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Enumerations of device disconnect reason.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_DEVICE_DISCONNECT_REASON_UNKNOWN, /**< Disconnected by unknown reason */
+ BT_DEVICE_DISCONNECT_REASON_TIMEOUT, /**< Disconnected by timeout */
+ BT_DEVICE_DISCONNECT_REASON_LOCAL_HOST, /**< Disconnected by local host */
+ BT_DEVICE_DISCONNECT_REASON_REMOTE, /**< Disconnected by remote */
+} bt_device_disconnect_reason_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Enumerations of connection link type.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_DEVICE_CONNECTION_LINK_BREDR, /**< BR/EDR link */
+ BT_DEVICE_CONNECTION_LINK_LE, /**< LE link */
+ BT_DEVICE_CONNECTION_LINK_DEFAULT = 0xFF, /**< The connection type default */
+} bt_device_connection_link_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Enumerations of device authorization state.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_DEVICE_AUTHORIZED, /**< The remote Bluetooth device is authorized */
+ BT_DEVICE_UNAUTHORIZED, /**< The remote Bluetooth device is unauthorized */
+} bt_device_authorization_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Enumerations of Bluetooth profile.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_PROFILE_RFCOMM = 0x01, /**< RFCOMM Profile */
+ BT_PROFILE_A2DP = 0x02, /**< Advanced Audio Distribution Profile Source role */
+ BT_PROFILE_HSP = 0x04, /**< Headset Profile */
+ BT_PROFILE_HID = 0x08, /**< Human Interface Device Profile */
+ BT_PROFILE_NAP = 0x10, /**< Network Access Point Profile */
+ BT_PROFILE_AG = 0x20, /**< Audio Gateway Profile */
+ BT_PROFILE_GATT = 0x40, /**< Generic Attribute Profile */
+ BT_PROFILE_NAP_SERVER = 0x80, /**< NAP server Profile */
+ BT_PROFILE_A2DP_SINK = 0x100, /**< Advanced Audio Distribution Profile Sink role */
+} bt_profile_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Enumerations of device address type.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_DEVICE_PUBLIC_ADDRESS = 0x00, /**< Public address */
+ BT_DEVICE_RANDOM_ADDRESS, /**< Random address */
+} bt_device_address_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Enumerations of service class.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_SC_NONE = 0, /**< No service class */
+ BT_SC_RES_SERVICE_MASK = 0x00000001, /**< RES service class */
+ BT_SC_SPP_SERVICE_MASK = 0x00000002, /**< SPP service class */
+ BT_SC_DUN_SERVICE_MASK = 0x00000004, /**< DUN service class */
+ BT_SC_FAX_SERVICE_MASK = 0x00000008, /**< FAX service class */
+ BT_SC_LAP_SERVICE_MASK = 0x00000010, /**< LAP service class */
+ BT_SC_HSP_SERVICE_MASK = 0x00000020, /**< HSP service class */
+ BT_SC_HFP_SERVICE_MASK = 0x00000040, /**< HFP service class */
+ BT_SC_OPP_SERVICE_MASK = 0x00000080, /**< OPP service class */
+ BT_SC_FTP_SERVICE_MASK = 0x00000100, /**< FTP service class */
+ BT_SC_CTP_SERVICE_MASK = 0x00000200, /**< CTP service class */
+ BT_SC_ICP_SERVICE_MASK = 0x00000400, /**< ICP service class */
+ BT_SC_SYNC_SERVICE_MASK = 0x00000800, /**< SYNC service class */
+ BT_SC_BPP_SERVICE_MASK = 0x00001000, /**< BPP service class */
+ BT_SC_BIP_SERVICE_MASK = 0x00002000, /**< BIP service class */
+ BT_SC_PANU_SERVICE_MASK = 0x00004000, /**< PANU service class */
+ BT_SC_NAP_SERVICE_MASK = 0x00008000, /**< NAP service class */
+ BT_SC_GN_SERVICE_MASK = 0x00010000, /**< GN service class */
+ BT_SC_SAP_SERVICE_MASK = 0x00020000, /**< SAP service class */
+ BT_SC_A2DP_SERVICE_MASK = 0x00040000, /**< A2DP service class */
+ BT_SC_AVRCP_SERVICE_MASK = 0x00080000, /**< AVRCP service class */
+ BT_SC_PBAP_SERVICE_MASK = 0x00100000, /**< PBAP service class */
+ BT_SC_HID_SERVICE_MASK = 0x00200000, /**< HID service class */
+ BT_SC_A2DP_SOURCE_SERVICE_MASK = 0x00400000, /**< A2DP SOURCE service class */
+ BT_SC_ALL_SERVICE_MASK = 0x00FFFFFF, /**< ALL service class */
+ BT_SC_MAX /**< MAX service class */
+} bt_service_class_t;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Enumerations of major service class.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_MAJOR_SERVICE_CLASS_LIMITED_DISCOVERABLE_MODE = 0x002000, /**< Limited discoverable mode */
+ BT_MAJOR_SERVICE_CLASS_POSITIONING = 0x010000, /**< Positioning class */
+ BT_MAJOR_SERVICE_CLASS_NETWORKING = 0x020000, /**< Networking class */
+ BT_MAJOR_SERVICE_CLASS_RENDERING = 0x040000, /**< Rendering class */
+ BT_MAJOR_SERVICE_CLASS_CAPTURING = 0x080000, /**< Capturing class */
+ BT_MAJOR_SERVICE_CLASS_OBJECT_TRANSFER = 0x100000, /**< Object transferring class */
+ BT_MAJOR_SERVICE_CLASS_AUDIO = 0x200000, /**< Audio class*/
+ BT_MAJOR_SERVICE_CLASS_TELEPHONY = 0x400000, /**< Telephony class */
+ BT_MAJOR_SERVICE_CLASS_INFORMATION = 0x800000, /**< Information class */
+} bt_major_service_class_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Enumerations of major device class.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_MAJOR_DEVICE_CLASS_MISC = 0x00, /**< Miscellaneous major device class*/
+ BT_MAJOR_DEVICE_CLASS_COMPUTER = 0x01, /**< Computer major device class */
+ BT_MAJOR_DEVICE_CLASS_PHONE = 0x02, /**< Phone major device class */
+ BT_MAJOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT = 0x03, /**< LAN/Network access point major device class */
+ BT_MAJOR_DEVICE_CLASS_AUDIO_VIDEO = 0x04, /**< Audio/Video major device class */
+ BT_MAJOR_DEVICE_CLASS_PERIPHERAL = 0x05, /**< Peripheral major device class */
+ BT_MAJOR_DEVICE_CLASS_IMAGING = 0x06, /**< Imaging major device class */
+ BT_MAJOR_DEVICE_CLASS_WEARABLE = 0x07, /**< Wearable device class */
+ BT_MAJOR_DEVICE_CLASS_TOY = 0x08, /**< Toy device class */
+ BT_MAJOR_DEVICE_CLASS_HEALTH = 0x09, /**< Health device class */
+ BT_MAJOR_DEVICE_CLASS_UNCATEGORIZED = 0x1F, /**< Uncategorized major device class */
+} bt_major_device_class_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Enumerations of minor device class.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_MINOR_DEVICE_CLASS_COMPUTER_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of computer */
+ BT_MINOR_DEVICE_CLASS_COMPUTER_DESKTOP_WORKSTATION = 0x04, /**< Desktop workstation minor device class of computer */
+ BT_MINOR_DEVICE_CLASS_COMPUTER_SERVER_CLASS = 0x08, /**< Server minor device class of computer */
+ BT_MINOR_DEVICE_CLASS_COMPUTER_LAPTOP = 0x0C, /**< Laptop minor device class of computer */
+ BT_MINOR_DEVICE_CLASS_COMPUTER_HANDHELD_PC_OR_PDA = 0x10, /**< Handheld PC/PDA minor device class of computer */
+ BT_MINOR_DEVICE_CLASS_COMPUTER_PALM_SIZED_PC_OR_PDA = 0x14, /**< Palm sized PC/PDA minor device class of computer */
+ BT_MINOR_DEVICE_CLASS_COMPUTER_WEARABLE_COMPUTER = 0x18, /**< Wearable(watch sized) minor device class of computer */
+
+ BT_MINOR_DEVICE_CLASS_PHONE_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of phone */
+ BT_MINOR_DEVICE_CLASS_PHONE_CELLULAR = 0x04, /**< Cellular minor device class of phone */
+ BT_MINOR_DEVICE_CLASS_PHONE_CORDLESS = 0x08, /**< Cordless minor device class of phone */
+ BT_MINOR_DEVICE_CLASS_PHONE_SMART_PHONE = 0x0C, /**< Smart phone minor device class of phone */
+ BT_MINOR_DEVICE_CLASS_PHONE_WIRED_MODEM_OR_VOICE_GATEWAY = 0x10, /**< Wired modem or voice gateway minor device class of phone */
+ BT_MINOR_DEVICE_CLASS_PHONE_COMMON_ISDN_ACCESS = 0x14, /**< Common ISDN minor device class of phone */
+
+ BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_FULLY_AVAILABLE = 0x04, /**< Fully available minor device class of LAN/Network access point */
+ BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_1_TO_17_PERCENT_UTILIZED = 0x20, /**< 1-17% utilized minor device class of LAN/Network access point */
+ BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_17_TO_33_PERCENT_UTILIZED = 0x40, /**< 17-33% utilized minor device class of LAN/Network access point */
+ BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_33_TO_50_PERCENT_UTILIZED = 0x60, /**< 33-50% utilized minor device class of LAN/Network access point */
+ BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_50_to_67_PERCENT_UTILIZED = 0x80, /**< 50-67% utilized minor device class of LAN/Network access point */
+ BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_67_TO_83_PERCENT_UTILIZED = 0xA0, /**< 67-83% utilized minor device class of LAN/Network access point */
+ BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_83_TO_99_PERCENT_UTILIZED = 0xC0, /**< 83-99% utilized minor device class of LAN/Network access point */
+ BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_NO_SERVICE_AVAILABLE = 0xE0, /**< No service available minor device class of LAN/Network access point */
+
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_WEARABLE_HEADSET = 0x04, /**< Wearable headset minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HANDS_FREE = 0x08, /**< Hands-free minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_MICROPHONE = 0x10, /**< Microphone minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_LOUDSPEAKER = 0x14, /**< Loudspeaker minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HEADPHONES = 0x18, /**< Headphones minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_PORTABLE_AUDIO = 0x1C, /**< Portable audio minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_CAR_AUDIO = 0x20, /**< Car audio minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_SET_TOP_BOX = 0x24, /**< Set-top box minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HIFI_AUDIO_DEVICE = 0x28, /**< Hifi audio minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VCR = 0x2C, /**< VCR minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_CAMERA = 0x30, /**< Video camera minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_CAMCORDER = 0x34, /**< Camcorder minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_MONITOR = 0x38, /**< Video monitor minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_DISPLAY_LOUDSPEAKER = 0x3C, /**< Video display and loudspeaker minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_CONFERENCING = 0x40, /**< Video conferencing minor device class of audio/video */
+ BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_GAMING_TOY = 0x48, /**< Gaming/toy minor device class of audio/video */
+
+ BT_MINOR_DEVICE_CLASS_PERIPHERA_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of peripheral */
+ BT_MINOR_DEVICE_CLASS_PERIPHERAL_KEY_BOARD = 0x40, /**< Key board minor device class of peripheral */
+ BT_MINOR_DEVICE_CLASS_PERIPHERAL_POINTING_DEVICE = 0x80, /**< Pointing device minor device class of peripheral */
+ BT_MINOR_DEVICE_CLASS_PERIPHERAL_COMBO_KEYBOARD_POINTING_DEVICE = 0xC0, /**< Combo keyboard or pointing device minor device class of peripheral */
+ BT_MINOR_DEVICE_CLASS_PERIPHERAL_JOYSTICK = 0x04, /**< Joystick minor device class of peripheral */
+ BT_MINOR_DEVICE_CLASS_PERIPHERAL_GAME_PAD = 0x08, /**< Game pad minor device class of peripheral */
+ BT_MINOR_DEVICE_CLASS_PERIPHERAL_REMOTE_CONTROL = 0x0C, /**< Remote control minor device class of peripheral */
+ BT_MINOR_DEVICE_CLASS_PERIPHERAL_SENSING_DEVICE = 0x10, /**< Sensing device minor device class of peripheral */
+ BT_MINOR_DEVICE_CLASS_PERIPHERAL_DIGITIZER_TABLET = 0x14, /**< Digitizer minor device class of peripheral */
+ BT_MINOR_DEVICE_CLASS_PERIPHERAL_CARD_READER = 0x18, /**< Card reader minor device class of peripheral */
+ BT_MINOR_DEVICE_CLASS_PERIPHERAL_DIGITAL_PEN = 0x1C, /**< Digital pen minor device class of peripheral */
+ BT_MINOR_DEVICE_CLASS_PERIPHERAL_HANDHELD_SCANNER = 0x20, /**< Handheld scanner minor device class of peripheral */
+ BT_MINOR_DEVICE_CLASS_PERIPHERAL_HANDHELD_GESTURAL_INPUT_DEVICE = 0x24, /**< Handheld gestural input device minor device class of peripheral */
+
+ BT_MINOR_DEVICE_CLASS_IMAGING_DISPLAY = 0x10, /**< Display minor device class of imaging */
+ BT_MINOR_DEVICE_CLASS_IMAGING_CAMERA = 0x20, /**< Camera minor device class of imaging */
+ BT_MINOR_DEVICE_CLASS_IMAGING_SCANNER = 0x40, /**< Scanner minor device class of imaging */
+ BT_MINOR_DEVICE_CLASS_IMAGING_PRINTER = 0x80, /**< Printer minor device class of imaging */
+
+ BT_MINOR_DEVICE_CLASS_WEARABLE_WRIST_WATCH = 0x04, /**< Wrist watch minor device class of wearable */
+ BT_MINOR_DEVICE_CLASS_WEARABLE_PAGER = 0x08, /**< Pager minor device class of wearable */
+ BT_MINOR_DEVICE_CLASS_WEARABLE_JACKET = 0x0C, /**< Jacket minor device class of wearable */
+ BT_MINOR_DEVICE_CLASS_WEARABLE_HELMET = 0x10, /**< Helmet minor device class of wearable */
+ BT_MINOR_DEVICE_CLASS_WEARABLE_GLASSES = 0x14, /**< Glasses minor device class of wearable */
+
+ BT_MINOR_DEVICE_CLASS_TOY_ROBOT = 0x04, /**< Robot minor device class of toy */
+ BT_MINOR_DEVICE_CLASS_TOY_VEHICLE = 0x08, /**< Vehicle minor device class of toy */
+ BT_MINOR_DEVICE_CLASS_TOY_DOLL_ACTION = 0x0C, /**< Doll/Action minor device class of toy */
+ BT_MINOR_DEVICE_CLASS_TOY_CONTROLLER = 0x10, /**< Controller minor device class of toy */
+ BT_MINOR_DEVICE_CLASS_TOY_GAME = 0x14, /**< Game minor device class of toy */
+
+ BT_MINOR_DEVICE_CLASS_HEALTH_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_BLOOD_PRESSURE_MONITOR = 0x04, /**< Blood pressure monitor minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_THERMOMETER = 0x08, /**< Thermometer minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_WEIGHING_SCALE = 0x0C, /**< Weighing scale minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_GLUCOSE_METER = 0x10, /**< Glucose minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_PULSE_OXIMETER = 0x14, /**< Pulse oximeter minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_HEART_PULSE_RATE_MONITOR = 0x18, /**< Heart/Pulse rate monitor minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_DATA_DISPLAY = 0x1C, /**< Health data display minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_STEP_COUNTER = 0x20, /**< Step counter minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_BODY_COMPOSITION_ANALYZER = 0x24, /**< Body composition analyzer minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_PEAK_FLOW_MONITOR = 0x28, /**< Peak flow monitor minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_MEDICATION_MONITOR = 0x2C, /**< Medication monitor minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_KNEE_PROSTHESIS = 0x30, /**< Knee prosthesis minor device class of health */
+ BT_MINOR_DEVICE_CLASS_HEALTH_ANKLE_PROSTHESIS = 0x34, /**< Ankle prosthesis minor device class of health */
+} bt_minor_device_class_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Enumerations of gap appearance type.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_APPEARANCE_TYPE_UNKNOWN = 0x00, /**< Unknown appearance type */
+ BT_APPEARANCE_TYPE_GENERIC_PHONE = 0x40, /**< Generic Phone type - Generic category */
+ BT_APPEARANCE_TYPE_GENERIC_COMPUTER = 0x80, /**< Generic Computer type - Generic category */
+ BT_APPEARANCE_TYPE_GENERIC_WATCH = 0xC0, /**< Generic Watch type - Generic category */
+} bt_appearance_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Enumerations of the Bluetooth device's LE connection mode.
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_DEVICE_LE_CONNECTION_MODE_BALANCED, /**< Balanced mode of power consumption and connection latency */
+ BT_DEVICE_LE_CONNECTION_MODE_LOW_LATENCY, /**< Low connection latency but high power consumption */
+ BT_DEVICE_LE_CONNECTION_MODE_LOW_ENERGY, /**< Low power consumption but high connection latency */
+} bt_device_le_connection_mode_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Enumerations of connected Bluetooth device event role.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_SOCKET_UNKNOWN = 0x00, /**< Unknown role*/
+ BT_SOCKET_SERVER , /**< Server role*/
+ BT_SOCKET_CLIENT, /**< Client role*/
+} bt_socket_role_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Enumerations of Bluetooth socket connection state.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_SOCKET_CONNECTED, /**< RFCOMM is connected */
+ BT_SOCKET_DISCONNECTED, /**< RFCOMM is disconnected */
+} bt_socket_connection_state_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
+ * @brief Enumerations for the types of profiles related with audio
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_AUDIO_PROFILE_TYPE_ALL = 0, /**< All supported profiles related with audio */
+ BT_AUDIO_PROFILE_TYPE_HSP_HFP, /**< HSP(Headset Profile) and HFP(Hands-Free Profile) */
+ BT_AUDIO_PROFILE_TYPE_A2DP, /**< A2DP(Advanced Audio Distribution Profile) */
+ BT_AUDIO_PROFILE_TYPE_AG, /**< AG(Audio Gateway) */
+ BT_AUDIO_PROFILE_TYPE_A2DP_SINK, /**< A2DP(Advanced Audio Distribution Profile) Sink role */
+} bt_audio_profile_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Enumerations for the call handling event
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_AG_CALL_HANDLING_EVENT_ANSWER = 0x00, /**< Request to answer an incoming call */
+ BT_AG_CALL_HANDLING_EVENT_RELEASE, /**< Request to release a call */
+ BT_AG_CALL_HANDLING_EVENT_REJECT, /**< Request to reject an incoming call */
+} bt_ag_call_handling_event_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Enumerations for the multi call handling event
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_AG_MULTI_CALL_HANDLING_EVENT_RELEASE_HELD_CALLS = 0x00, /**< Request to release held calls */
+ BT_AG_MULTI_CALL_HANDLING_EVENT_RELEASE_ACTIVE_CALLS, /**< Request to release active calls */
+ BT_AG_MULTI_CALL_HANDLING_EVENT_ACTIVATE_HELD_CALL, /**< Request to put active calls into hold state and activate another (held or waiting) call */
+ BT_AG_MULTI_CALL_HANDLING_EVENT_MERGE_CALLS, /**< Request to add a held call to the conversation */
+ BT_AG_MULTI_CALL_HANDLING_EVENT_EXPLICIT_CALL_TRANSFER, /**< Request to let a user who has two calls to connect these two calls together and release its connections to both other parties */
+} bt_ag_multi_call_handling_event_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Enumerations for the equalizer state
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ */
+typedef enum {
+ BT_AVRCP_EQUALIZER_STATE_OFF = 0x01, /**< Equalizer Off */
+ BT_AVRCP_EQUALIZER_STATE_ON, /**< Equalizer On */
+} bt_avrcp_equalizer_state_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Enumerations for the repeat mode
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ */
+typedef enum {
+ BT_AVRCP_REPEAT_MODE_OFF = 0x01, /**< Repeat Off */
+ BT_AVRCP_REPEAT_MODE_SINGLE_TRACK, /**< Single track repeat */
+ BT_AVRCP_REPEAT_MODE_ALL_TRACK, /**< All track repeat */
+ BT_AVRCP_REPEAT_MODE_GROUP, /**< Group repeat */
+} bt_avrcp_repeat_mode_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Enumerations for the shuffle mode
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ */
+typedef enum {
+ BT_AVRCP_SHUFFLE_MODE_OFF = 0x01, /**< Shuffle Off */
+ BT_AVRCP_SHUFFLE_MODE_ALL_TRACK, /**< All tracks shuffle */
+ BT_AVRCP_SHUFFLE_MODE_GROUP, /**< Group shuffle */
+} bt_avrcp_shuffle_mode_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Enumerations for the scan mode
+ * @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
+ */
+typedef enum {
+ BT_AVRCP_SCAN_MODE_OFF = 0x01, /**< Scan Off */
+ BT_AVRCP_SCAN_MODE_ALL_TRACK, /**< All tracks scan */
+ BT_AVRCP_SCAN_MODE_GROUP, /**< Group scan */
+} bt_avrcp_scan_mode_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Enumerations for the player state
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_AVRCP_PLAYER_STATE_STOPPED = 0x00, /**< Stopped */
+ BT_AVRCP_PLAYER_STATE_PLAYING, /**< Playing */
+ BT_AVRCP_PLAYER_STATE_PAUSED, /**< Paused */
+ BT_AVRCP_PLAYER_STATE_FORWARD_SEEK, /**< Seek Forward */
+ BT_AVRCP_PLAYER_STATE_REWIND_SEEK, /**< Seek Rewind */
+} bt_avrcp_player_state_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Enumeration for the player control commands
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_AVRCP_CONTROL_PLAY = 0x01, /**< Play */
+ BT_AVRCP_CONTROL_PAUSE, /**< Pause */
+ BT_AVRCP_CONTROL_STOP, /**< Stop */
+ BT_AVRCP_CONTROL_NEXT, /**< Next Track*/
+ BT_AVRCP_CONTROL_PREVIOUS, /**< Previous track */
+ BT_AVRCP_CONTROL_FAST_FORWARD, /**< Fast Forward */
+ BT_AVRCP_CONTROL_REWIND /**< Rewind */
+} bt_avrcp_player_command_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Structure of Track metadata information.
+ * @since_tizen 3.0
+ *
+ * @see #bt_class_s
+ */
+typedef struct {
+ const char *title; /**< Title */
+ const char *artist; /**< Artist */
+ const char *album; /**< Album name */
+ const char *genre; /**< Album Genre */
+ unsigned int total_tracks; /**< The total number of tracks */
+ unsigned int number; /**< Track number */
+ unsigned int duration; /**< Duration */
+} bt_avrcp_metadata_attributes_info_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Called when the connection state is changed.
+ * @since_tizen 3.0
+ * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
+ * @param[in] remote_address The remote address
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_avrcp_control_initialize()
+ * @see bt_avrcp_control_deinitialize()
+ */
+typedef void (*bt_avrcp_control_connection_state_changed_cb) (bool connected, const char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Called when the Song position mode is changed by the remote target device.
+ * @since_tizen 3.0
+ * @param[in] position Playback position in milliseconds. When position is 0 it means the track is starting and when it's greater than or equal to track's duration the track has ended.
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_avrcp_set_position_changed_cb()
+ * @see bt_avrcp_unset_position_changed_cb()
+ */
+typedef void (*bt_avrcp_position_changed_cb) (unsigned int position, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Called when the Song metadata information is changed by the remote target device.
+ * @since_tizen 3.0
+ * @param[in] track The song metadata information
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_avrcp_set_track_info_changed_cb()
+ * @see bt_avrcp_unset_track_info_changed_cb()
+ */
+typedef void (*bt_avrcp_track_info_changed_cb) (bt_avrcp_metadata_attributes_info_s *track, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Called when the Song Play status mode is changed by the remote target device.
+ * @since_tizen 3.0
+ * @param[in] play_state The song play status
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_avrcp_set_play_status_changed_cb()
+ * @see bt_avrcp_unset_play_status_changed_cb()
+ */
+typedef void (*bt_avrcp_play_status_changed_cb) (bt_avrcp_player_state_e play_state, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Enumerations for the data channel type
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_HDP_CHANNEL_TYPE_RELIABLE = 0x01, /**< Reliable Data Channel */
+ BT_HDP_CHANNEL_TYPE_STREAMING, /**< Streaming Data Channel */
+} bt_hdp_channel_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Enumerations of the integer type for GATT handle's value.
+ * @since_tizen 2.3.1
+ */
+typedef enum {
+ BT_DATA_TYPE_SINT8, /**< 8 bit signed int type */
+ BT_DATA_TYPE_SINT16, /**< 16 bit signed int type */
+ BT_DATA_TYPE_SINT32, /**< 32 bit signed int type */
+ BT_DATA_TYPE_UINT8, /**< 8 bit unsigned int type */
+ BT_DATA_TYPE_UINT16, /**< 16 bit unsigned int type */
+ BT_DATA_TYPE_UINT32 /**< 32 bit unsigned int type */
+} bt_data_type_int_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Enumerations of the float type for GATT handle's value.
+ * @since_tizen 2.3.1
+ */
+typedef enum {
+ BT_DATA_TYPE_FLOAT, /**< 32 bit float type */
+ BT_DATA_TYPE_SFLOAT /**< 16 bit float type */
+} bt_data_type_float_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Enumerations of the write type.
+ * @since_tizen 2.3.1
+ */
+typedef enum {
+ BT_GATT_WRITE_TYPE_WRITE_NO_RESPONSE, /**< Write without response type */
+ BT_GATT_WRITE_TYPE_WRITE /**< Write type */
+} bt_gatt_write_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Enumerations of the GATT handle's type.
+ * @since_tizen 2.3.1
+ */
+typedef enum {
+ BT_GATT_TYPE_SERVICE = 0x01, /**< GATT service type */
+ BT_GATT_TYPE_CHARACTERISTIC = 0x02, /** GATT characteristic type */
+ BT_GATT_TYPE_DESCRIPTOR = 0x03, /** GATT descriptor type */
+} bt_gatt_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Enumerations of the service type.
+ * @since_tizen 2.3.1
+ */
+typedef enum {
+ BT_GATT_SERVICE_TYPE_PRIMARY = 0x01, /**< GATT primary service type */
+ BT_GATT_SERVICE_TYPE_SECONDARY = 0x02, /**< GATT secondary service type */
+} bt_gatt_service_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Enumerations of the characteristic's property.
+ * @since_tizen 2.3.1
+ */
+typedef enum {
+ BT_GATT_PROPERTY_BROADCAST = 0x01, /**< Broadcast property */
+ BT_GATT_PROPERTY_READ = 0x02, /**< Read property */
+ BT_GATT_PROPERTY_WRITE_WITHOUT_RESPONSE = 0x04, /**< Write without response property */
+ BT_GATT_PROPERTY_WRITE = 0x08, /**< Write property */
+ BT_GATT_PROPERTY_NOTIFY = 0x10, /**< Notify property */
+ BT_GATT_PROPERTY_INDICATE = 0x20, /**< Indicate property */
+ BT_GATT_PROPERTY_AUTHENTICATED_SIGNED_WRITES = 0x40, /**< Authenticated signed writes property */
+ BT_GATT_PROPERTY_EXTENDED_PROPERTIES = 0x80, /**< Extended properties */
+} bt_gatt_property_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Enumerations of gatt server's service changing mode.
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_GATT_CLIENT_SERVICE_ADDED, /**< Service added */
+ BT_GATT_CLIENT_SERVICE_REMOVED, /**< Service removed */
+} bt_gatt_client_service_change_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Enumerations of the attribute's permission.
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_GATT_PERMISSION_READ = 0x01, /**< Readable permission */
+ BT_GATT_PERMISSION_WRITE = 0x02, /**< Writable permission */
+ BT_GATT_PERMISSION_ENCRYPT_READ = 0x04, /**< Readable permission required encryption */
+ BT_GATT_PERMISSION_ENCRYPT_WRITE = 0x08, /**< Writable permission required encryption */
+ BT_GATT_PERMISSION_ENCRYPT_AUTHENTICATED_READ = 0x10, /**< Readable permission required encryption and authentication */
+ BT_GATT_PERMISSION_ENCRYPT_AUTHENTICATED_WRITE = 0x20, /**< Writable permission required encryption and authentication */
+} bt_gatt_permission_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Enumerations of the remote device request types for attributes
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_GATT_REQUEST_TYPE_READ = 0x00, /* Read Requested */
+ BT_GATT_REQUEST_TYPE_WRITE = 0x01, /* Write Requested */
+} bt_gatt_att_request_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
+ * @brief Enumerations for the types of PAN(Personal Area Networking) service.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_PANU_SERVICE_TYPE_NAP = 0, /**< Network Access Point */
+} bt_panu_service_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief The handle to control Bluetooth LE advertising.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef void *bt_advertiser_h;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Enumeration of address book location for PBAP.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ */
+typedef enum {
+ BT_PBAP_SOURCE_DEVICE = 0x00, /**< Request for Addressbook from remote device */
+ BT_PBAP_SOURCE_SIM , /**< Request for address book from SIM */
+} bt_pbap_address_book_source_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Enumeration of folder type.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ */
+typedef enum {
+ BT_PBAP_FOLDER_PHONE_BOOK = 0x00, /**< Request for address book */
+ BT_PBAP_FOLDER_INCOMING , /**< Request for incoming calls */
+ BT_PBAP_FOLDER_OUTGOING , /**< Request for outgoing calls */
+ BT_PBAP_FOLDER_MISSED , /**< Request for missed calls */
+ BT_PBAP_FOLDER_COMBINED , /**< Request for combined calls */
+} bt_pbap_folder_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Enumeration of phone book search fields.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ */
+typedef enum {
+ BT_PBAP_SEARCH_NAME = 0x00, /**< Request for search by name (default) */
+ BT_PBAP_SEARCH_NUMBER, /**< Request for search by phone number */
+ BT_PBAP_SEARCH_SOUND, /**< Request for search by sound */
+} bt_pbap_search_field_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Enumeration of vCard Formats.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ */
+typedef enum {
+ BT_PBAP_VCARD_FORMAT_VCARD21 = 0x00, /**< vCard format 2.1 (default) */
+ BT_PBAP_VCARD_FORMAT_VCARD30, /**< vCard format 3.0 */
+} bt_pbap_vcard_format_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Enumeration of sorting orders.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ */
+typedef enum {
+ BT_PBAP_ORDER_INDEXED = 0x00, /**< Filter order indexed (default) */
+ BT_PBAP_ORDER_ALPHANUMERIC, /**< Filter order alphanumeric */
+ BT_PBAP_ORDER_PHONETIC, /**< Filter order phonetic */
+} bt_pbap_sort_order_e;
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_h instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief The attribute handle of GATT(Generic Attribute Profile).
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ */
+typedef void *bt_gatt_attribute_h;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief The handle of a service, characteristic or descriptor.
+ * @since_tizen 2.3.1
+ */
+typedef void *bt_gatt_h;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief The handle of a GATT client which is associated with a remote device.
+ * @since_tizen 2.3.1
+ */
+typedef void *bt_gatt_client_h;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief The handle of a GATT server.
+ * @since_tizen 3.0
+ */
+typedef void *bt_gatt_server_h;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief The handle of calls state.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef void *bt_call_list_h;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Class structure of device and service.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @see #bt_device_info_s
+ * @see #bt_adapter_device_discovery_info_s
+ * @see bt_device_bond_created_cb()
+ * @see bt_adapter_device_discovery_state_changed_cb()
+ */
+typedef struct {
+ bt_major_device_class_e major_device_class; /**< Major device class. */
+ bt_minor_device_class_e minor_device_class; /**< Minor device class. */
+ int major_service_class_mask; /**< Major service class mask.
+ This value can be a combination of #bt_major_service_class_e like #BT_MAJOR_SERVICE_CLASS_RENDERING | #BT_MAJOR_SERVICE_CLASS_AUDIO */
+} bt_class_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Structure of device discovery information.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @see #bt_class_s
+ * @see bt_adapter_device_discovery_state_changed_cb()
+ */
+typedef struct {
+ char *remote_address; /**< The address of remote device */
+ char *remote_name; /**< The name of remote device */
+ bt_class_s bt_class; /**< The Bluetooth classes */
+ int rssi; /**< The strength indicator of received signal */
+ bool is_bonded; /**< The bonding state */
+ char **service_uuid; /**< The UUID list of service */
+ int service_count; /**< The number of services */
+ bt_appearance_type_e appearance; /**< The Bluetooth appearance */
+ int manufacturer_data_len; /**< manufacturer specific data length */
+ char *manufacturer_data; /**< manufacturer specific data */
+} bt_adapter_device_discovery_info_s;
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Structure of le device discovery information.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @see #bt_class_s
+ * @see bt_adapter_le_device_discovery_state_changed_cb()
+ */
+typedef struct {
+ char *remote_address; /**< The address of remote device */
+ int address_type; /**< The address type of remote device */
+ int rssi; /**< The strength indicator of received signal */
+ int adv_data_len; /**< advertising indication data length */
+ char *adv_data; /**< advertising indication data */
+ int scan_data_len; /**< scan response data length */
+ char *scan_data; /**< scan response data */
+} bt_adapter_le_device_discovery_info_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Structure of le scan result information.
+ * @since_tizen 2.3.1
+ *
+ * @see bt_adapter_le_start_scan()
+ */
+typedef struct {
+ char *remote_address; /**< The address of remote device */
+ bt_device_address_type_e address_type; /**< The address type of remote device */
+ int rssi; /**< The strength indicator of received signal */
+ int adv_data_len; /**< advertising indication data length */
+ char *adv_data; /**< advertising indication data */
+ int scan_data_len; /**< scan response data length */
+ char *scan_data; /**< scan response data */
+} bt_adapter_le_device_scan_result_info_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief The structure for LE iBeacon scan result information.
+ * @since_tizen 4.0
+ *
+ * @see bt_adapter_le_start_scan()
+ */
+typedef struct {
+ int company_id; /**< Company ID */
+ int ibeacon_type; /**< iBeacon type */
+ char *uuid; /**< UUID */
+ int major_id; /**< Major ID */
+ int minor_id; /**< Minor ID */
+ int measured_power; /**< Measured power */
+} bt_adapter_le_ibeacon_scan_result_info_s;
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Structure of advertising parameters.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @see bt_adapter_le_advertising_state_changed_cb()
+ * @see bt_adapter_le_start_advertising()
+ */
+typedef struct {
+ float interval_min; /**< Minimum advertising interval for non-directed advertising.
+ A multiple of 0.625ms is only allowed (Time range : 20ms to 10.24sec). */
+ float interval_max; /**< Maximum advertising interval for non-directed advertising.
+ A multiple of 0.625ms is only allowed (Time range : 20ms to 10.24sec). */
+ char filter_policy; /* Advertising filter policy */
+ char type; /* Advertising type */
+} bt_adapter_le_advertising_params_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief LE service data structure.
+ * @since_tizen 2.3.1
+ *
+ * @see bt_adapter_le_get_scan_result_service_data()
+ */
+typedef struct {
+ char *service_uuid; /**< 16 bit UUID of the service data */
+ char *service_data; /**< Service data */
+ int service_data_len; /**< Service data length */
+} bt_adapter_le_service_data_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_IPSP_MODULE
+ * @brief Called when the IPSP initialization state changes.
+ * @since_tizen 4.0
+ * @param[in] result The result of the initialization or deinitialization request
+ * @param[in] ipsp_initialized The initialized state: (@c true = initialized, @c false = deinitialized)
+ * @param[in] user_data The user data passed from the initialization request function
+ * @see bt_ipsp_initialize()
+ * @see bt_ipsp_deinitialize()
+ */
+typedef void (*bt_ipsp_init_state_changed_cb)
+ (int result, bool ipsp_initialized, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_IPSP_MODULE
+ * @brief Called when the IPSP connection state changes.
+ * @since_tizen 4.0
+ * @param[in] result The result of the connection or disconnection request
+ * @param[in] connected The connection status: (@c true = connected, @c false = disconnected)
+ * @param[in] remote_address Address of remote device
+ * @param[in] iface_name The network interface name for IPv6 network interface
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_ipsp_connect()
+ * @see bt_ipsp_disconnect()
+ */
+typedef void (*bt_ipsp_connection_state_changed_cb)
+ (int result, bool connected, const char *remote_address, const char *iface_name, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Device information structure used for identifying pear device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @see #bt_class_s
+ * @see bt_device_bond_created_cb()
+ */
+typedef struct {
+ char *remote_address; /**< The address of remote device */
+ char *remote_name; /**< The name of remote device */
+ bt_class_s bt_class; /**< The Bluetooth classes */
+ char **service_uuid; /**< The UUID list of service */
+ int service_count; /**< The number of services */
+ bool is_bonded; /**< The bonding state */
+ bool is_connected; /**< The connection state */
+ bool is_authorized; /**< The authorization state */
+ int manufacturer_data_len; /**< manufacturer specific data length */
+ char *manufacturer_data; /**< manufacturer specific data */
+} bt_device_info_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Service Discovery Protocol (SDP) data structure.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @details This protocol is used for discovering available services or pear device,
+ * and finding one to connect with.
+ *
+ * @see bt_device_service_searched_cb()
+ */
+typedef struct {
+ char *remote_address; /**< The address of remote device */
+ char **service_uuid; /**< The UUID list of service */
+ int service_count; /**< The number of services. */
+} bt_device_sdp_info_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Device connection information structure.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @see bt_device_connection_state_changed_cb()
+ */
+typedef struct {
+ char *remote_address; /**< The address of remote device */
+ bt_device_connection_link_type_e link; /**< Link type */
+ bt_device_disconnect_reason_e disconn_reason; /**< Disconnection reason */
+} bt_device_connection_info_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Rfcomm connection data used for exchanging data between Bluetooth devices.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @see bt_socket_connection_state_changed_cb()
+ */
+typedef struct {
+ int socket_fd; /**< The file descriptor of connected socket */
+ int server_fd; /**< The file descriptor of the server socket or -1 for client connection */
+ bt_socket_role_e local_role; /**< The local device role in this connection */
+ char *remote_address; /**< The remote device address */
+ char *service_uuid; /**< The service UUId */
+} bt_socket_connection_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Structure of RFCOMM received data.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @remarks User can use standard linux functions for reading/writing
+ * data from/to sockets.
+ *
+ * @see bt_socket_data_received_cb()
+ */
+typedef struct {
+ int socket_fd; /**< The socket fd */
+ int data_size; /**< The length of the received data */
+ char *data; /**< The received data */
+} bt_socket_received_data_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Called when the Bluetooth adapter state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] result The result of the adapter state changing
+ * @param[in] adapter_state The adapter state to be changed
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_adapter_set_state_changed_cb()
+ * @see bt_adapter_unset_state_changed_cb()
+ */
+typedef void (*bt_adapter_state_changed_cb)(int result, bt_adapter_state_e adapter_state, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Called when adapter name changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] device_name The name of the Bluetooth device to be changed
+ * @param[in] user_data The user data passed from the callback registration function
+ * @pre This function will be invoked when the name of Bluetooth adapter changes
+ * if you register this callback using bt_adapter_set_name_changed_cb().
+ * @see bt_adapter_set_name()
+ * @see bt_adapter_set_name_changed_cb()
+ * @see bt_adapter_unset_name_changed_cb()
+ */
+typedef void (*bt_adapter_name_changed_cb)(char *device_name, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Called when the visibility mode changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] result The result of the visibility mode changing
+ * @param[in] visibility_mode The visibility mode to be changed
+ * @param[in] user_data The user data passed from the callback registration function
+ *
+ * @pre This function will be invoked when the visibility of Bluetooth adapter changes
+ * if you register this callback using bt_adapter_set_visibility_mode_changed_cb().
+ *
+ * @see bt_adapter_set_visibility_mode_changed_cb()
+ * @see bt_adapter_unset_visibility_mode_changed_cb()
+ */
+typedef void (*bt_adapter_visibility_mode_changed_cb)
+ (int result, bt_adapter_visibility_mode_e visibility_mode, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Called every second until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @remarks This callback function is called only if visibility mode is #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE.
+ * @param[in] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @pre This function will be invoked if you register this callback using bt_adapter_set_visibility_duration_changed_cb().
+ * @see bt_adapter_set_visibility_duration_changed_cb()
+ * @see bt_adapter_unset_visibility_duration_changed_cb()
+ */
+typedef void (*bt_adapter_visibility_duration_changed_cb)(int duration, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Called when the state of device discovery changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @remarks If \a discovery_state is #BT_ADAPTER_DEVICE_DISCOVERY_FOUND,
+ * then you can get some information, such as remote device address, remote device name, rssi, and bonding state.
+ *
+ * @param[in] result The result of the device discovery
+ * @param[in] discovery_state The discovery state to be changed
+ * @param[in] discovery_info The information of the discovered device \n
+ * If \a discovery_state is #BT_ADAPTER_DEVICE_DISCOVERY_STARTED or
+ * #BT_ADAPTER_DEVICE_DISCOVERY_FINISHED, then \a discovery_info is NULL.
+ * @param[in] user_data The user data passed from the callback registration function
+ *
+ * @pre Either bt_adapter_start_device_discovery() or bt_adapter_stop_device_discovery() will invoke this function
+ * if you register this callback using bt_adapter_set_device_discovery_state_changed_cb().
+ *
+ * @see bt_adapter_start_device_discovery()
+ * @see bt_adapter_stop_device_discovery()
+ * @see bt_adapter_set_device_discovery_state_changed_cb()
+ * @see bt_adapter_unset_device_discovery_state_changed_cb()
+ *
+ */
+typedef void (*bt_adapter_device_discovery_state_changed_cb)
+ (int result, bt_adapter_device_discovery_state_e discovery_state, bt_adapter_device_discovery_info_s *discovery_info, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Called when you get bonded devices repeatedly.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] device_info The bonded device information
+ * @param[in] user_data The user data passed from the foreach function
+ * @return @c true to continue with the next iteration of the loop,
+ * \n @c false to break out of the loop.
+ * @pre bt_adapter_foreach_bonded_device() will invoke this function.
+ *
+ * @see bt_adapter_foreach_bonded_device()
+ *
+ */
+typedef bool (*bt_adapter_bonded_device_cb)(bt_device_info_s *device_info, void *user_data);
+
+/**
+ * @deprecated Deprecated since 2.3.1
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Called when the state of LE device discovery changes.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @remarks If \a discovery_state is #BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND,
+ * then you can get some information, such as remote LE device address, remote device name, rssi, and bonding state.
+ *
+ * @param[in] result The result of the LE device discovery
+ * @param[in] discovery_state The discovery state to be changed
+ * @param[in] discovery_info The information of the discovered LE device \n
+ * If \a discovery_state is #BT_ADAPTER_LE_DEVICE_DISCOVERY_STARTED or
+ * #BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED, then \a discovery_info is NULL.
+ * @param[in] user_data The user data passed from the callback registration function
+ *
+ * @pre Either bt_adapter_start_device_discovery() or bt_adapter_stop_device_discovery() will invoke this function
+ * if you register this callback using bt_adapter_set_device_discovery_state_changed_cb().
+ *
+ * @see bt_adapter_le_start_device_discovery()
+ * @see bt_adapter_le_stop_device_discovery()
+ * @see bt_adapter_le_set_device_discovery_state_changed_cb()
+ * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
+ *
+ */
+typedef void (*bt_adapter_le_device_discovery_state_changed_cb)
+ (int result, bt_adapter_le_device_discovery_state_e discovery_state, bt_adapter_le_device_discovery_info_s *discovery_info, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Called when the LE advertisement has been found.
+ * @since_tizen 2.3.1
+ *
+ * @param[in] result The result of the LE scan
+ * @param[in] info The information of the found LE advertisement.
+ * @param[in] user_data The user data passed from the start function
+ *
+ * @see bt_adapter_le_start_scan()
+ *
+ */
+typedef void (*bt_adapter_le_scan_result_cb)(int result,
+ bt_adapter_le_device_scan_result_info_s *info, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Called when the state of advertiser changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[out] result The result of the requested state change of advertiser
+ * @param[out] advertiser The handle of the state changed advertiser
+ * @param[out] adv_state The advertiser state to be changed
+ * @param[out] user_data The user data passed from the start function
+ *
+ * @see bt_adapter_le_start_advertising_new()
+ * @see bt_adapter_le_stop_advertising()
+ */
+typedef void (*bt_adapter_le_advertising_state_changed_cb)(int result,
+ bt_advertiser_h advertiser, bt_adapter_le_advertising_state_e adv_state, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Called when the process of creating bond finishes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @remarks If the remote user does not respond within 60 seconds, a time out will happen with #BT_ERROR_TIMED_OUT result code.\n
+ * If bt_device_cancel_bonding() is called and it returns #BT_ERROR_NONE, then this callback function will be called
+ * with #BT_ERROR_CANCELLED result. \n
+ * If creating a bond succeeds but service search fails, then this callback will be called with #BT_ERROR_SERVICE_SEARCH_FAILED.
+ * In this case, you should try service search again by bt_device_start_service_search() to get the supported service list.
+ *
+ * @param[in] result The result of the bonding device
+ * @param[in] device_info The device information which you creates bond with
+ * @param[in] user_data The user data passed from the callback registration function
+ *
+ * @pre Either bt_device_create_bond() will invoke this function
+ * if you register this callback using bt_device_set_bond_created_cb().
+ *
+ * @see bt_device_create_bond()
+ * @see bt_device_cancel_bonding()
+ * @see bt_device_set_bond_created_cb()
+ * @see bt_device_unset_bond_created_cb()
+ */
+typedef void (*bt_device_bond_created_cb)(int result, bt_device_info_s *device_info, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Called when you get connected profiles repeatedly.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] profile The connected Bluetooth profile
+ * @param[in] user_data The user data passed from the foreach function
+ * @return @c true to continue with the next iteration of the loop,
+ * \n @c false to break out of the loop.
+ * @pre bt_device_foreach_connected_profiles() will invoke this function.
+ * @see bt_device_foreach_connected_profiles()
+ */
+typedef bool (*bt_device_connected_profile)(bt_profile_e profile, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Called when the bond destroys.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] result The result that a bond is destroyed
+ * @param[in] remote_address The address of the remote Bluetooth device to destroy bond with
+ * @param[in] user_data The user data passed from the callback registration function
+ * @pre bt_device_destroy_bond() will invoke this function
+ * if you register this callback using bt_device_set_bond_destroyed_cb().
+ *
+ * @see bt_device_destroy_bond()
+ * @see bt_device_set_bond_destroyed_cb()
+ * @see bt_device_unset_bond_destroyed_cb()
+ */
+typedef void (*bt_device_bond_destroyed_cb)(int result, char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Called when the authorization of device changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] authorization The authorization of device
+ * @param[in] remote_address The address of the remote Bluetooth device which is (un)authorized
+ * @param[in] user_data The user data passed from the callback registration function
+ * @pre bt_device_set_authorization() will invoke this function if you register this callback using bt_device_set_authorization_changed_cb().
+ *
+ * @see bt_device_set_authorization()
+ * @see #bt_device_set_authorization_changed_cb()
+ * @see #bt_device_unset_authorization_changed_cb()
+ */
+typedef void (*bt_device_authorization_changed_cb)
+ (bt_device_authorization_e authorization, char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Called when the process of service search finishes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @remark
+ *
+ * @param[in] result The result of the service searching
+ * @param[in] sdp_info The structure of service lists found on a device
+ * @param[in] user_data The user data passed from the callback registration function
+ * @pre Either bt_device_start_service_search() will invoke this function
+ * if you register this callback using bt_device_set_service_searched_cb().
+ *
+ * @see bt_device_start_service_search()
+ * @see bt_device_set_service_searched_cb()
+ * @see bt_device_unset_service_searched_cb()
+ *
+ */
+typedef void (*bt_device_service_searched_cb)(int result, bt_device_sdp_info_s *sdp_info, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Called when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] connected The connection status: (@c true = connected, @c false = disconnected)
+ * @param[in] conn_info The connection information
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_device_set_connection_state_changed_cb()
+ * @see bt_device_unset_connection_state_changed_cb()
+ */
+typedef void (*bt_device_connection_state_changed_cb)(bool connected, bt_device_connection_info_s *conn_info, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Called when you receive data.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] data The received data from the remote device
+ * @param[in] user_data The user data passed from the callback registration function
+ *
+ * @pre When the connected remote Bluetooth device invokes bt_socket_send_data(),
+ * this function will be invoked if you register this function using bt_socket_set_data_received_cb().
+ *
+ * @see bt_socket_set_data_received_cb()
+ * @see bt_socket_unset_data_received_cb()
+ * @see bt_socket_send_data()
+ */
+typedef void (*bt_socket_data_received_cb)(bt_socket_received_data_s *data, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Called when the socket connection state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] result The result of connection state changing
+ * @param[in] connection_state The connection state
+ * @param[in] connection The connection information which is established or disconnected
+ * @param[in] user_data The user data passed from the callback registration function
+ * @pre Either bt_socket_connect_rfcomm() will invoke this function.
+ * In addition, bt_socket_connection_state_changed_cb() will be invoked when the socket connection state is changed.
+ * @see bt_socket_listen_and_accept_rfcomm()
+ * @see bt_socket_connect_rfcomm()
+ * @see bt_socket_set_connection_state_changed_cb()
+ * @see bt_socket_unset_connection_state_changed_cb()
+ */
+typedef void (*bt_socket_connection_state_changed_cb)
+ (int result, bt_socket_connection_state_e connection_state, bt_socket_connection_s *connection, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
+ * @brief Called when a RFCOMM connection is requested.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] socket_fd The file descriptor of socket on which a connection is requested
+ * @param[in] remote_address The address of remote device
+ * @param[in] user_data The user data passed from the callback registration function
+ * @pre If you register this callback function by bt_socket_set_connection_requested_cb(),
+ * bt_socket_connection_requested_cb() will be invoked.
+ */
+typedef void (*bt_socket_connection_requested_cb) (int socket_fd, const char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
+ * @brief Called when an OPP connection is requested.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @details You must call bt_opp_server_accept_connection() if you want to accept.
+ * Otherwise, you must call bt_opp_server_reject_connection().
+ * @param[in] remote_address The address of remote device
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_opp_server_accept()
+ * @see bt_opp_server_reject()
+ */
+typedef void (*bt_opp_server_connection_requested_cb)(const char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
+ * @brief Called when a file is being transferred.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] file The path of file to be pushed
+ * @param[in] size The file size (bytes)
+ * @param[in] percent The progress in percentage (1 ~ 100)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_opp_server_accept()
+ * @see bt_opp_server_accept_connection()
+ */
+typedef void (*bt_opp_server_transfer_progress_cb) (const char *file, long long size, int percent, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
+ * @brief Called when a transfer is finished.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] error_code The result of push
+ * @param[in] file The path of file to be pushed
+ * @param[in] size The file size (bytes)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_opp_server_accept()
+ * @see bt_opp_server_accept_connection()
+ */
+typedef void (*bt_opp_server_transfer_finished_cb) (int result, const char *file, long long size, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
+ * @brief Called when OPP server responds to the push request.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] result The result of OPP server response
+ * @param[in] remote_address The remote address
+ * @param[in] user_data The user data passed from the callback registration function
+ * @pre bt_opp_client_push_files() will invoke this function.
+ * @see bt_opp_client_push_files()
+ */
+typedef void (*bt_opp_client_push_responded_cb)(int result, const char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
+ * @brief Called when each file is being transferred.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] file The path of file to be pushed
+ * @param[in] size The file size (bytes)
+ * @param[in] percent The progress in percentage (1 ~ 100). 100 means that a file is transferred completely.
+ * @param[in] user_data The user data passed from the callback registration function
+ * @pre bt_opp_client_push_files() will invoke this function.
+ * @see bt_opp_client_push_files()
+ */
+typedef void (*bt_opp_client_push_progress_cb)(const char *file, long long size, int percent, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
+ * @brief Called when the push request is finished.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] result The result of the push request
+ * @param[in] remote_address The remote address
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_opp_client_push_files()
+ */
+typedef void (*bt_opp_client_push_finished_cb)(int result, const char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
+ * @brief Called when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @details This callback is called when the connection state is changed.
+ * When you call bt_audio_connect() or bt_audio_disconnect(), this callback is also called with error result even though these functions fail.
+ * @param[in] result The result of changing the connection state
+ * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
+ * @param[in] remote_address The remote address
+ * @param[in] type The type of audio profile except #BT_AUDIO_PROFILE_TYPE_ALL
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_audio_set_connection_state_changed_cb()
+ * @see bt_audio_unset_connection_state_changed_cb()
+ */
+typedef void (*bt_audio_connection_state_changed_cb) (int result, bool connected, const char *remote_address, bt_audio_profile_type_e type, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Called when a call handling event happened from Hands-Free.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] event The call handling event happened from Hands-Free
+ * @param[in] call_id The call ID
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_ag_set_call_handling_event_cb()
+ * @see bt_ag_unset_call_handling_event_cb()
+ */
+typedef void (*bt_ag_call_handling_event_cb) (bt_ag_call_handling_event_e event, unsigned int call_id, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Called when a multi call handling event happened from Hands-Free.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] event The call handling event happened from Hands-Free
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_ag_set_multi_call_handling_event_cb()
+ * @see bt_ag_unset_multi_call_handling_event_cb()
+ */
+typedef void (*bt_ag_multi_call_handling_event_cb) (bt_ag_multi_call_handling_event_e event, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Called when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] dtmf The DTMF transmitted from Hands-Free
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_ag_set_dtmf_transmitted_cb()
+ * @see bt_ag_unset_dtmf_transmitted_cb()
+ */
+typedef void (*bt_ag_dtmf_transmitted_cb) (const char *dtmf, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Called when the speaker gain of the remote device is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] gain The gain of speaker (0 ~ 15)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_ag_set_speaker_gain_changed_cb()
+ * @see bt_ag_unset_speaker_gain_changed_cb()
+ */
+typedef void (*bt_ag_speaker_gain_changed_cb) (int gain, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Called when the microphone gain of the remote device is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] gain The gain of microphone (0 ~ 15)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_ag_set_microphone_gain_changed_cb()
+ * @see bt_ag_unset_microphone_gain_changed_cb()
+ */
+typedef void (*bt_ag_microphone_gain_changed_cb) (int gain, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Called when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
+ * @param[in] remote_address The remote address
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_avrcp_target_initialize()
+ * @see bt_avrcp_target_deinitialize()
+ */
+typedef void (*bt_avrcp_target_connection_state_changed_cb) (bool connected, const char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Called when the equalizer state is changed by the remote control device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] equalizer The equalizer state
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_avrcp_set_equalizer_state_changed_cb()
+ * @see bt_avrcp_unset_equalizer_state_changed_cb()
+ */
+typedef void (*bt_avrcp_equalizer_state_changed_cb) (bt_avrcp_equalizer_state_e equalizer, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Called when the repeat mode is changed by the remote control device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] repeat The repeat mode
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_avrcp_set_repeat_mode_changed_cb()
+ * @see bt_avrcp_unset_repeat_mode_changed_cb()
+ */
+typedef void (*bt_avrcp_repeat_mode_changed_cb) (bt_avrcp_repeat_mode_e repeat, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Called when the shuffle mode is changed by the remote control device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] shuffle The shuffle mode
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_avrcp_set_shuffle_mode_changed_cb()
+ * @see bt_avrcp_unset_shuffle_mode_changed_cb()
+ */
+typedef void (*bt_avrcp_shuffle_mode_changed_cb) (bt_avrcp_shuffle_mode_e shuffle, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
+ * @brief Called when the scan mode is changed by the remote control device.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] shuffle The shuffle mode
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_avrcp_set_scan_mode_changed_cb()
+ * @see bt_avrcp_unset_scan_mode_changed_cb()
+ */
+typedef void (*bt_avrcp_scan_mode_changed_cb) (bt_avrcp_scan_mode_e scan, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Called when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @details This callback is called when the connection state is changed.
+ * When you call bt_hid_host_connect() or bt_hid_host_disconnect(), this callback is also called with error result even though these functions fail.
+ * @param[in] result The result of changing the connection state
+ * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
+ * @param[in] remote_address The remote address
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_hid_host_connect()
+ * @see bt_hid_host_disconnect()
+ */
+typedef void (*bt_hid_host_connection_state_changed_cb) (int result, bool connected, const char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Called when the connection is established.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] result The result of connecting to the remote device
+ * @param[in] remote_address The address of connected remote device
+ * @param[in] app_id The ID of application
+ * @param[in] type The type of HDP(Health Device Profile) channel
+ * @param[in] channel The connected data channel
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_hdp_disconnected_cb
+ * @see bt_hdp_set_connection_state_changed_cb()
+ * @see bt_hdp_unset_connection_state_changed_cb()
+ */
+typedef void (*bt_hdp_connected_cb) (int result, const char *remote_address, const char *app_id,
+ bt_hdp_channel_type_e type, unsigned int channel, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Called when the connection is disconnected.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] result The result of disconnecting from the remote device
+ * @param[in] remote_address The address of disconnected remote device
+ * @param[in] channel The connected data channel
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_hdp_connected_cb
+ * @see bt_hdp_set_connection_state_changed_cb()
+ * @see bt_hdp_unset_connection_state_changed_cb()
+ */
+typedef void (*bt_hdp_disconnected_cb) (int result, const char *remote_address, unsigned int channel, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
+ * @brief Called when the you receive the data.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] channel The connected data channel
+ * @param[in] data The received data
+ * @param[in] size The size of received data (byte)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_hdp_set_data_received_cb()
+ * @see bt_hdp_unset_data_received_cb()
+ */
+typedef void (*bt_hdp_data_received_cb) (unsigned int channel, const char *data, unsigned int size, void *user_data);
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_foreach_cb instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called when you get the primary services repeatedly.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @param[in] service The attribute handle of service
+ * @param[in] user_data The user data passed from the foreach function
+ * @return @c true to continue with the next iteration of the loop,
+ * \n @c false to break out of the loop.
+ * @pre bt_gatt_foreach_primary_services() will invoke this function.
+ * @see bt_gatt_foreach_primary_services()
+ */
+typedef bool (*bt_gatt_primary_service_cb) (bt_gatt_attribute_h service, void *user_data);
+
+/**
+ * @deprecated Deprecated since 2.3.1. This is not required because characteristic discovery is happened automatically.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called after the characteristics are discovered by bt_gatt_discover_characteristics().
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @remarks If bt_gatt_discover_characteristics() failed, then this callback function is called only once with 0 total and NULL characteristic_handle.
+ * @param[in] result The result of discovering
+ * @param[in] index The index of characteristics in a service, starts from 0
+ * @param[in] total The total number of characteristics in a service
+ * @param[in] characteristic The attribute handle of characteristic
+ * @param[in] user_data The user data passed from the request function
+ * @return @c true to continue with the next iteration of the loop,
+ * \n @c false to break out of the loop.
+ * @pre bt_gatt_discover_characteristics() will invoke this callback.
+ * @see bt_gatt_discover_characteristics()
+ */
+typedef bool (*bt_gatt_characteristics_discovered_cb) (int result, int index, int total, bt_gatt_attribute_h characteristic, void *user_data);
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_foreach_cb instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called when you get the included services repeatedly.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @param[in] service The attribute handle of service
+ * @param[in] user_data The user data passed from the foreach function
+ * @return @c true to continue with the next iteration of the loop,
+ * \n @c false to break out of the loop.
+ * @pre bt_gatt_foreach_included_services() will invoke this function.
+ * @see bt_gatt_foreach_included_services()
+ */
+typedef bool (*bt_gatt_included_service_cb) (bt_gatt_attribute_h service, void *user_data);
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_characteristic_value_changed_cb instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called when a characteristic in service is changed.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @param[in] characteristic The attribute handle of characteristic
+ * @param[in] value The value of characteristic (byte array)
+ * @param[in] value_length The length of value
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_gatt_set_characteristic_changed_cb()
+ * @see bt_gatt_unset_characteristic_changed_cb()
+ */
+typedef void (*bt_gatt_characteristic_changed_cb) (bt_gatt_attribute_h characteristic, unsigned char *value, int value_length, void *user_data);
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_request_completed_cb instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called when a characteristic value is written.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @see bt_gatt_set_characteristic_value()
+ */
+typedef void (*bt_gatt_characteristic_write_cb) (void *user_data);
+
+/**
+ * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_request_completed_cb instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called when a characteristic value is read.
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @param[in] value The value of characteristic (byte array)
+ * @param[in] value_length The length of value
+ * @param[in] user_data The user data passed from the foreach function
+ * @see bt_gatt_read_characteristic_value()
+ */
+typedef void (*bt_gatt_characteristic_read_cb) (unsigned char *value,
+ int value_length, void *user_data);
+
+/**
+ * @deprecated Deprecated since 2.3.1. This is not required because descriptor discovery is happened automatically.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called after the characteristics descriptors are discovered by bt_gatt_discover_characteristic_descriptor().
+ * @since_tizen @if WEARABLE @else 2.3 @endif
+ *
+ * @param[in] result The result of discovering
+ * @param[in] characteristic_format The format of the information data.
+ * characteristic_format = 0x01 indicates UUIDs are 16-bits
+ * characteristic_format = 0x02 indicates UUIDs are 128-bits
+ * @param[in] total The total number of elements in characteristic_descriptor
+ * @param[in] characteristic descriptor The attribute handle and the UUID of characteristic descriptor
+ * @param[in] user_data The user data passed from the request function
+ * @see bt_gatt_discover_characteristic_descriptor()
+ */
+typedef void (*bt_gatt_characteristic_descriptor_discovered_cb) (int result,
+ unsigned char characteristic_format, int total,
+ bt_gatt_attribute_h characteristic_descriptor, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called when you get GATT handles repeatedly
+ * @since_tizen 2.3.1
+ *
+ * @param[in] total The total number of GATT handles to be called
+ * @param[in] index The index of current GATT handle. It starts from 0.
+ * @param[in] gatt_handle The GATT handle
+ * @param[in] user_data The user data passed from the foreach function
+ *
+ * @see bt_gatt_service_foreach_characteristics()
+ * @see bt_gatt_service_foreach_included_services()
+ * @see bt_gatt_characteristic_foreach_descriptors()
+ * @see bt_gatt_client_foreach_services()
+ */
+typedef bool (*bt_gatt_foreach_cb) (int total, int index, bt_gatt_h gatt_handle,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Attribute protocol MTU change information structure.
+ * @since_tizen 4.0
+ *
+ * @see bt_gatt_client_att_mtu_changed_cb()
+ */
+typedef struct {
+ char *remote_address; /**< The address of remote device */
+ unsigned int mtu; /**< MTU value */
+ unsigned int status; /**< Request status*/
+} bt_gatt_client_att_mtu_info_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called when the ATT MTU value is changed.
+ * @since_tizen 4.0
+ *
+ * @remarks The @a mtu_info must not be freed by application.
+ * @a mtu_info can be used only inside the callback.
+ * If it's needed outside, make a copy.
+ *
+ * @param[in] client The handle of a GATT client which is associated with a remote device
+ * @param[in] mtu_info The MTU information
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_gatt_client_set_connection_state_changed_cb()
+ * @see bt_gatt_client_unset_connection_state_changed_cb()
+ */
+typedef void (*bt_gatt_client_att_mtu_changed_cb)(bt_gatt_client_h client,
+ const bt_gatt_client_att_mtu_info_s *mtu_info,
+ void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called when the client request(e.g. read / write) has been completed
+ * @since_tizen 2.3.1
+ *
+ * @param[in] result The result of a request
+ * @param[in] request_handle The requesting GATT handle
+ * @param[in] user_data The user data passed from the requesting function
+ *
+ * @see bt_gatt_client_read_value()
+ * @see bt_gatt_client_write_value()
+ */
+typedef void (*bt_gatt_client_request_completed_cb) (int result,
+ bt_gatt_h request_handle, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called when a value of a watched characteristic's GATT handle has been changed
+ * @since_tizen 2.3.1
+ *
+ * @remarks After this function is returned, a changed value is automatically
+ * applied to @a characteristic. Before that, @a characteristic has an old value.
+ *
+ * @param[in] characteristic The characteristic's GATT handle of which value change is informed. It has an old value.
+ * @param[in] value The new value
+ * @param[in] len The length of @a value
+ * @param[in] user_data The user data passed from the registering function
+ *
+ * @see bt_gatt_client_set_characteristic_value_changed_cb()
+ */
+typedef void (*bt_gatt_client_characteristic_value_changed_cb) (bt_gatt_h characteristic,
+ char *value, int len, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called when a service of a remote GATT server has been changed.
+ * @since_tizen 3.0
+ *
+ * @param[in] client The handle of a GATT client which is associated with a remote device.
+ * @param[in] change_type The changed type
+ * @param[in] service_uuid The changed service uuid
+ * @param[in] user_data The user data passed from the registering function
+ *
+ * @see bt_gatt_client_set_characteristic_value_changed_cb()
+ */
+typedef void (*bt_gatt_client_service_changed_cb) (bt_gatt_client_h client,
+ bt_gatt_client_service_change_type_e change_type,
+ const char* service_uuid, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Called when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @details This callback is called when the connection state is changed.
+ * When you called bt_gatt_connect() or bt_gatt_disconnect(), this callback is also called with error result even though these functions fail.
+ *
+ * @param[in] result The result of changing the connection state.
+ * @param[in] connected The state to be changed, @a true means connected state, Otherwise, @a false.
+ * @param[in] remote_address The remote_address
+ * @param[in] user_data The user data passed from the callback registration function.
+ *
+ * @see bt_gatt_connect()
+ * @see bt_gatt_disconnect()
+ * @see bt_gatt_set_connection_state_changed_cb()
+ * @see bt_gatt_unset_connection_state_changed_cb()
+ */
+typedef void (*bt_gatt_connection_state_changed_cb)(int result, bool connected, const char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Called when a value of a characteristic or descriptor's GATT handle has been changed.
+ * @since_tizen 3.0
+ *
+ * @details For finishing the request, call the function #bt_gatt_server_send_response in callback.
+ *
+ * @remarks After this function is returned, a changed value is automatically
+ * applied to @a gatt_handle. Before that, @a gatt_handle has an old value.
+ * @remarks The @a remote_address must not be freed by application.
+ * @remarks The @a server must not be freed by application.
+ * @remarks The @a gatt_handle must not be freed by application.
+ * @remarks The @a value must not be freed by application.
+ *
+ * @param[in] remote_address The address of the remote device which requests a change
+ * @param[in] request_id The identification of this request. It will be used to send a response.
+ * @param[in] server The GATT server handle
+ * @param[in] gatt_handle The characteristic or descriptor's GATT handle which has an old value
+ * @param[in] response_needed Indicates whether a response is required by the remote device - @c true if required, @c false if not
+ * @param[in] offset The requested offset from where the @a gatt_handle value will be updated
+ * @param[in] value The new value
+ * @param[in] len The length of @a value
+ * @param[in] user_data The user data passed from the registration function
+ *
+ * @see bt_gatt_server_set_write_value_requested_cb()
+ * @see bt_gatt_server_send_response()
+ */
+typedef void (*bt_gatt_server_write_value_requested_cb) (const char *remote_address,
+ int request_id, bt_gatt_server_h server,
+ bt_gatt_h gatt_handle, bool response_needed, int offset,
+ const char *value, int len, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Called when the remote device requests to read a value on a GATT server.
+ * @since_tizen 3.0
+ *
+ * @details For finishing the request, call the function #bt_gatt_server_send_response in callback.
+ *
+ * @remarks The @a remote_address must not be freed by application.
+ * @remarks The @a server must not be freed by application.
+ * @remarks The @a gatt_handle must not be freed by application.
+ *
+ * @param[in] remote_address The address of the requesting remote device
+ * @param[in] request_id The identification of this request. It will be used to send a response.
+ * @param[in] server The GATT server handle
+ * @param[in] gatt_handle The characteristic or descriptor's GATT handle to be read
+ * @param[in] offset The requested offset from where the GATT handle's value is read
+ * @param[in] user_data The user data passed from the registration function
+ *
+ * @see bt_gatt_server_set_read_value_requested_cb()
+ * @see bt_gatt_server_send_response()
+ */
+typedef void (*bt_gatt_server_read_value_requested_cb) (const char *remote_address,
+ int request_id, bt_gatt_server_h server, bt_gatt_h gatt_handle,
+ int offset, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Called when the remote device enables or disables the Notification/Indication for particular characteristics.
+ * @since_tizen 3.0
+ *
+ * @details By using this callback function, server can know notification state.
+ *
+ * @remarks The @a server must not be freed by application.
+ * @remarks The @a gatt_handle must not be freed by application.
+ *
+ * @param[in] notify Indicates whether the Notification/Indication is enabled or not
+ * @param[in] server The GATT server handle
+ * @param[in] gatt_handle The characteristic's GATT handle to be read
+ * @param[in] user_data The user data passed from the registration function
+ *
+ * @see bt_gatt_server_set_read_value_requested_cb()
+ */
+typedef void (*bt_gatt_server_characteristic_notification_state_changed_cb) (bool notify,
+ bt_gatt_server_h server, bt_gatt_h gatt_handle, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
+ * @brief Called when the sending notification / indication is done.
+ * @since_tizen 3.0
+ *
+ * @remarks The @a remote_address must not be freed by application.
+ * @remarks The @a server must not be freed by application.
+ * @remarks The @a characteristic must not be freed by application.
+ *
+ * @remarks In case of an indication, once a confirmation is received from the remote device this callback will be called. \n
+ * This callback will be called several times if there are two or more remote devices which enable a Client Characteristic Configuration Descriptor(CCCD). \n
+ * For the last remote device, @a completed will be set as true.
+ *
+ * @param[in] result The result of a sending operation
+ * @param[in] remote_address The address of the remote device
+ * @param[in] server The GATT server handle
+ * @param[in] characteristic The characteristic's GATT handle
+ * @param[in] completed If this callback is for the last remote device which enables a CCCD, it will be true. Or it will be false.
+ * @param[in] user_data The user data passed from the requesting function
+ *
+ * @see bt_gatt_server_notify_characteristic_changed_value()
+ */
+typedef void (*bt_gatt_server_notification_sent_cb) (int result,
+ const char *remote_address, bt_gatt_server_h server,
+ bt_gatt_h characteristic, bool completed, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
+ * @brief Called when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] connected Indicates whether a client is connected or disconnected
+ * @param[in] remote_address The remote address
+ * @param[in] interface_name The interface name. For example, bnep0, bnep1.
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_nap_set_connection_state_changed_cb()
+ * @see bt_nap_unset_connection_state_changed_cb()
+ */
+typedef void (*bt_nap_connection_state_changed_cb) (bool connected, const char *remote_address, const char *interface_name, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
+ * @brief Called when the connection state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @details This callback is called when the connection state is changed.
+ * When you call bt_panu_connect() or bt_panu_disconnect(), this callback is also called with error result even though these functions fail.
+ * @param[in] result The result of changing the connection state
+ * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
+ * @param[in] remote_address The remote address
+ * @param[in] type The type of PAN service
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_nap_set_connection_state_changed_cb()
+ * @see bt_nap_unset_connection_state_changed_cb()
+ */
+typedef void (*bt_panu_connection_state_changed_cb) (int result, bool connected, const char *remote_address, bt_panu_service_type_e type, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Enumerations of the Bluetooth HID mouse's button.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ */
+typedef enum {
+ BT_HID_MOUSE_BUTTON_NONE = 0x00, /**<The mouse's none value*/
+ BT_HID_MOUSE_BUTTON_LEFT = 0x01, /**<The mouse's left button value*/
+ BT_HID_MOUSE_BUTTON_RIGHT = 0x02, /**<The mouse's right button value*/
+ BT_HID_MOUSE_BUTTON_MIDDLE = 0x04 /**<The mouse's middle button value*/
+} bt_hid_mouse_button_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief The structure type containing the HID mouse event information.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @see bt_hid_device_send_mouse_event()
+ */
+typedef struct {
+ int buttons; /**< The button values, we can combine key's values when we pressed multiple mouse buttons*/
+ int axis_x; /**< The location's x value, -128 ~127 */
+ int axis_y; /**< The location's y value, -128 ~127 */
+ int padding; /**< The padding value, -128 ~127 */
+} bt_hid_mouse_data_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief The structure type containing the HID keyboard event information.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ * @details If you want to know more detail values, refer to http://www.usb.org/developers/hidpage/ and see "HID Usage Tables"
+ *
+ * @see bt_hid_device_send_key_event()
+ */
+typedef struct {
+ unsigned char modifier; /**< The modifier keys : such as shift, alt */
+ unsigned char key[8]; /**< The key value - currently pressed keys : Max 8 at once */
+} bt_hid_key_data_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Enumerations of the Bluetooth HID header type.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ */
+typedef enum {
+ BT_HID_HEADER_HANDSHAKE, /**< The Bluetooth HID header type: Handshake */
+ BT_HID_HEADER_HID_CONTROL, /**< The Bluetooth HID header type: HID control */
+ BT_HID_HEADER_GET_REPORT, /**< The Bluetooth HID header type: Get report */
+ BT_HID_HEADER_SET_REPORT, /**< The Bluetooth HID header type: Set report */
+ BT_HID_HEADER_GET_PROTOCOL, /**< The Bluetooth HID header type: Get protocol */
+ BT_HID_HEADER_SET_PROTOCOL, /**< The Bluetooth HID header type: Set protocol */
+ BT_HID_HEADER_DATA, /**< The Bluetooth HID header type: Data */
+ BT_HID_HEADER_UNKNOWN /**< The Bluetooth HID header type: Unknown */
+} bt_hid_header_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Enumerations of the Bluetooth HID parameter type.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ */
+typedef enum {
+ BT_HID_PARAM_DATA_RTYPE_INPUT, /**< Parameter type: Input */
+ BT_HID_PARAM_DATA_RTYPE_OUTPUT /**< Parameter type: Output */
+} bt_hid_param_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Enumerations of the Bluetooth HID handshake type.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ */
+typedef enum {
+ BT_HID_HANDSHAKE_SUCCESSFUL = 0x00, /**< Handshake error code none */
+ BT_HID_HANDSHAKE_NOT_READY, /**< Handshake error code Not Ready */
+ BT_HID_HANDSHAKE_ERR_INVALID_REPORT_ID, /**< Handshake error code send invalid report id */
+ BT_HID_HANDSHAKE_ERR_UNSUPPORTED_REQUEST, /**< Handshake error code request unsupported request */
+ BT_HID_HANDSHAKE_ERR_INVALID_PARAMETER, /**< Handshake error code received invalid parameter */
+ BT_HID_HANDSHAKE_ERR_UNKNOWN = 0x0e, /**< unknown error */
+ BT_HID_HANDSHAKE_ERR_FATAL /**< Fatal error */
+} bt_hid_handshake_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief The structure type containing data received from the HID Host.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ */
+typedef struct {
+ const char *address; /**< The remote device's address */
+ bt_hid_header_type_e header_type; /**< The header type */
+ bt_hid_param_type_e param_type; /**< The parameter type */
+ int data_size; /**< The length of the received data */
+ const char *data; /**< The received data */
+} bt_hid_device_received_data_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Called when the Bluetooth HID Device connection state changes.
+ * @details The following error codes can be delivered: \n
+ * #BT_ERROR_NONE \n
+ * #BT_ERROR_OPERATION_FAILED \n
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @param[in] result The result of changing the connection state.
+ * @param[in] connected The requested state. @a true means the connection is enabled, @a false means the connection is disabled.
+ * @param[in] remote_address The remote device's address
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_hid_device_activate()
+ */
+typedef void (*bt_hid_device_connection_state_changed_cb) (int result,
+ bool connected, const char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
+ * @brief Called when the HID Device receives data from the HID Host.
+ * @details The following error codes can be delivered: \n
+ * #BT_ERROR_NONE \n
+ * #BT_ERROR_OPERATION_FAILED \n
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @param[in] data The data received from the HID Host.
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_hid_device_set_data_received_cb()
+ */
+typedef void (*bt_hid_device_data_received_cb)(const bt_hid_device_received_data_s *data, void *user_data);
+/* HID device related type */
+
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief The structure type containing vCard information.
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @see bt_pbap_client_pull_vcard()
+ */
+typedef struct {
+ int index; /**< The vcard index, used as a parameter for bt_pbap_client_pull_vcard() */
+ const char *contact_name; /**< The contact name of the vCard */
+} bt_pbap_vcard_info_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Called when PBAP is Connected or Disconnected.
+ * @details The following error codes can be delivered: \n
+ * #BT_ERROR_NONE \n
+ * #BT_ERROR_OPERATION_FAILED \n
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @param[in] result The result of connecting to or disconnecting from the remote device
+ * @param[in] connected The PBAP connection status (@c true = connected, @c false = disconnected)
+ * @param[in] remote_address The remote device address (@a remote_address is valid only inside this function. To use outside the callback, make a copy. @a remote_address should not be freed.)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_pbap_client_connect()
+ * @see bt_pbap_client_disconnect()
+ */
+typedef void (*bt_pbap_connection_state_changed_cb)(int result, bool connected,
+ const char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Called when PBAP Phonebook size calculation completes.
+ * @details The following error codes can be delivered: \n
+ * #BT_ERROR_NONE \n
+ * #BT_ERROR_OPERATION_FAILED \n
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @param[in] result The result of getting the phone book size
+ * @param[in] remote_address The remote device address (@a remote_address is valid only inside this function. To use outside the callback, make a copy. @a remote_address should not be freed.)
+ * @param[in] size Size of Phonebook
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_pbap_client_get_phone_book_size()
+ * @see bt_pbap_client_connect()
+ * @see bt_pbap_client_disconnect()
+ */
+typedef void (*bt_pbap_phone_book_size_cb)(int result, const char *remote_address,
+ int size, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Called when PBAP Phonebook Pull completes.
+ * @details The received phone book file will be saved in the platform downloads folder. \n
+ * The following error codes can be delivered: \n
+ * #BT_ERROR_NONE \n
+ * #BT_ERROR_OPERATION_FAILED \n
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @param[in] result The result of getting the phone book
+ * @param[in] remote_address The remote device address (@a remote_address is valid only inside this function. To use outside the callback, make a copy. @a remote_address should not be freed.)
+ * @param[in] vcf_file The absolute path of the file in which the vCards are saved (@a vcf_file is valid only inside this function. To use outside the callback, make a copy. @a vcf_file should not be freed.)
+ * @param[in] successful true if the operation was successful, false if not
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_pbap_client_get_phone_book()
+ * @see bt_pbap_client_connect()
+ * @see bt_pbap_client_disconnect()
+ */
+typedef void (*bt_pbap_phone_book_received_cb)(int result, const char *remote_address,
+ const char *vcf_file, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
+ * @brief Called when PBAP List vCards completes.
+ * @details The following error codes can be delivered: \n
+ * #BT_ERROR_NONE \n
+ * #BT_ERROR_OPERATION_FAILED \n
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @param[in] result The result of getting the vcard list
+ * @param[in] remote_address The remote device address (@a remote_address is valid only inside this function. To use outside the callback, make a copy. @a remote_address should not be freed.)
+ * @param[in] vcard_info List of vcard information (@a vcard_info is valid only inside this function. To use outside the callback, make a copy. @a vcard_info should not be freed.)
+ * @param[in] count Number of contacts in the list
+ * @param[in] successful true if the operation was successful, false if not
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_pbap_client_get_list()
+ * @see bt_pbap_client_connect()
+ * @see bt_pbap_client_disconnect()
+ */
+typedef void (*bt_pbap_list_vcards_cb)(int result, const char *remote_address,
+ const bt_pbap_vcard_info_s *vcard_info, int count, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enumeration for the scan filter type.
+ * @since_tizen 4.0
+ * @see bt_adapter_le_scan_filter_set_type()
+ */
+typedef enum {
+ BT_ADAPTER_LE_SCAN_FILTER_TYPE_IBEACON, /**< iBeacon filter type */
+ BT_ADAPTER_LE_SCAN_FILTER_TYPE_PROXIMITY_UUID, /**< Proximity UUID filter type */
+} bt_adapter_le_scan_filter_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief The handle of a Bluetooth LE scan filter.
+ * @since_tizen 4.0
+ */
+typedef void *bt_scan_filter_h;
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __TIZEN_NETWORK_BLUETOOTH_TYPE_H__ */
--- /dev/null
+/*
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_EXTENSION_H__
+#define __TIZEN_NETWORK_BLUETOOTH_TYPE_EXTENSION_H__
+
+ #ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/**
+ * @file bluetooth_type_extension.h
+ */
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Called when the SCO(Synchronous Connection Oriented link) state is changed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @details This callback is called when the SCO state is changed.
+ * When you call bt_ag_open_sco() or bt_ag_close_sco(), this callback is also called with error result even though these functions failed.
+ * @param[in] result The result of changing the connection state
+ * @param[in] opened The state to be changed: (@c true = opened, @c false = not opened)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_ag_set_sco_state_changed_cb()
+ * @see bt_ag_unset_sco_state_changed_cb()
+ * @see bt_ag_open_sco()
+ * @see bt_ag_close_sco()
+ */
+typedef void (*bt_ag_sco_state_changed_cb) (int result, bool opened, void *user_data);
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __TIZEN_NETWORK_BLUETOOTH_TYPE_EXTENSION_H__ */
--- /dev/null
+/*
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_INTERNAL_H__
+#define __TIZEN_NETWORK_BLUETOOTH_TYPE_INTERNAL_H__
+
+ #ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+#include <glib.h>
+
+/* This variable will be added into bt_service_class_t in tizen 4.0 */
+#define BT_SC_MAP_SERVICE_MASK 0x00800000 /**< MAP service class */
+
+/**
+ * @file bluetooth_type_internal.h
+ */
+
+#define BT_PROFILE_SERVICE_UUID_SPP "1101"
+#define BT_PROFILE_SERVICE_UUID_HSP_HS "1108"
+#define BT_PROFILE_SERVICE_UUID_HSP_AG "1112"
+#define BT_PROFILE_SERVICE_UUID_OPP "1105"
+#define BT_PROFILE_SERVICE_UUID_HFP_HF "111e"
+#define BT_PROFILE_SERVICE_UUID_HFP_AG "111f"
+#define BT_PROFILE_SERVICE_UUID_A2DP_SOURCE "110a"
+#define BT_PROFILE_SERVICE_UUID_A2DP_SINK "110b"
+#define BT_PROFILE_SERVICE_UUID_AVRCP_TARGET "110c"
+#define BT_PROFILE_SERVICE_UUID_AVRCP_CONTROL "110f"
+#define BT_PROFILE_SERVICE_UUID_PAN_PANU "1115"
+#define BT_PROFILE_SERVICE_UUID_PAN_NAP "1116"
+#define BT_PROFILE_SERVICE_UUID_PAN_GN "1117"
+#define BT_PROFILE_SERVICE_UUID_HDP_SOURCE "1401"
+#define BT_PROFILE_SERVICE_UUID_HDP_SINK "1402"
+#define BT_PROFILE_SERVICE_UUID_HID "1124"
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enumerations of the Bluetooth adapter le state.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_ADAPTER_LE_DISABLED = 0x00, /**< Bluetooth le is disabled */
+ BT_ADAPTER_LE_ENABLED, /**< Bluetooth le is enabled */
+} bt_adapter_le_state_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
+ * @brief Enumerations of the ATT error codes.
+ * @since_tizen 4.0
+ */
+typedef enum {
+ BT_ATT_ERROR_INTERNAL = -1,
+ BT_ATT_ERROR_NONE = 0x00,
+
+ /* Attribute error codes */
+ BT_ATT_ERROR_INVALID_HANDLE = 0x01,
+ BT_ATT_ERROR_READ_NOT_PERMITTED = 0x02,
+ BT_ATT_ERROR_WRITE_NOT_PERMITTED = 0x03,
+ BT_ATT_ERROR_INVALID_PDU = 0x04,
+ BT_ATT_ERROR_AUTHENTICATION = 0x05,
+ BT_ATT_ERROR_REQUEST_NOT_SUPPORTED = 0x06,
+ BT_ATT_ERROR_INVALID_OFFSET = 0x07,
+ BT_ATT_ERROR_AUTHORIZATION = 0x08,
+ BT_ATT_ERROR_PREPARE_QUEUE_FULL = 0x09,
+ BT_ATT_ERROR_ATTRIBUTE_NOT_FOUND = 0x0A,
+ BT_ATT_ERROR_ATTRIBUTE_NOT_LONG = 0x0B,
+ BT_ATT_ERROR_INSUFFICIENT_ENCRYPTION_KEY_SIZE = 0x0C,
+ BT_ATT_ERROR_INVALID_ATTRIBUTE_VALUE_LEN = 0x0D,
+ BT_ATT_ERROR_UNLIKELY = 0x0E,
+ BT_ATT_ERROR_INSUFFICIENT_ENCRYPTION = 0x0F,
+ BT_ATT_ERROR_UNSUPPORTED_GROUP_TYPE = 0x10,
+ BT_ATT_ERROR_INSUFFICIENT_RESOURCES = 0x11,
+
+ /* Common profile error codes */
+ BT_ATT_ERROR_WRITE_REQUEST_REJECTED = 0xFC,
+ BT_ATT_ERROR_CCCD_IMPROPERLY_CONFIGURED = 0xFD,
+ BT_ATT_ERROR_PROCEDURE_ALREADY_IN_PROGRESS = 0xFE,
+ BT_ATT_ERROR_OUT_OF_RANGE = 0xFF,
+
+} bt_att_error_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OTP_MODULE
+ * @brief Enumerations of the ATT error codes specific to OTP.
+ * @since_tizen 4.0
+ */
+typedef enum {
+ /* Bluetooth OTP error codes */
+ BT_OTP_ERROR_WRITE_REQUEST_REJECTED = 0x80,
+ BT_OTP_ERROR_OBJECT_NOT_SELECTED = 0x81,
+ BT_OTP_ERROR_CONCURRENCY_LIMIT_EXCEEDED = 0x82,
+ BT_OTP_ERROR_OBJECT_NAME_EXISTS = 0x83,
+} bt_otp_error_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Called when the Bluetooth adapter le state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] result The result of the adapter state changing
+ * @param[in] adapter_le_state The adapter le state to be changed
+ * @param[in] user_data The user data passed from the callback registration function
+ * @pre Either bt_adapter_le_enable() or bt_adapter_le_disable() will invoke this callback if you register this callback using bt_adapter_le_set_state_changed_cb().
+ * @see bt_adapter_le_enable()
+ * @see bt_adapter_le_disable()
+ * @see bt_adapter_le_set_state_changed_cb()
+ * @see bt_adapter_le_unset_state_changed_cb()
+ */
+typedef void (*bt_adapter_le_state_changed_cb)(int result, bt_adapter_le_state_e adapter_le_state, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Enumerations for the call state
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_AG_CALL_EVENT_IDLE = 0x00, /**< Idle */
+ BT_AG_CALL_EVENT_ANSWERED, /**< Answered */
+ BT_AG_CALL_EVENT_HELD, /**< Held */
+ BT_AG_CALL_EVENT_RETRIEVED, /**< Retrieved */
+ BT_AG_CALL_EVENT_DIALING, /**< Dialing */
+ BT_AG_CALL_EVENT_ALERTING, /**< Alerting */
+ BT_AG_CALL_EVENT_INCOMING, /**< Incoming */
+} bt_ag_call_event_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Enumerations for the call state
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef enum {
+ BT_AG_CALL_STATE_IDLE = 0x00, /**< Idle state */
+ BT_AG_CALL_STATE_ACTIVE, /**< Active state */
+ BT_AG_CALL_STATE_HELD, /**< Held state */
+ BT_AG_CALL_STATE_DIALING, /**< Dialing state */
+ BT_AG_CALL_STATE_ALERTING, /**< Alerting state */
+ BT_AG_CALL_STATE_INCOMING, /**< Incoming state */
+ BT_AG_CALL_STATE_WAITING, /**< Waiting for connected indication event after answering an incoming call*/
+} bt_ag_call_state_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Enumerations for the call event from Audio-Gateway device
+ * @since_tizen @if WEARABLE 3.0 @endif
+ */
+typedef enum {
+ BT_HF_REMOTE_CALL_EVENT_IDLE = 0x00, /**< Idle. Neither setup call nor active call exist */
+ BT_HF_REMOTE_CALL_EVENT_INCOMING, /**< (Call-setup event) Received an incoming call on AG */
+ BT_HF_REMOTE_CALL_EVENT_DIALING, /**< (Call-setup event) Dialing an outgoing call on AG */
+ BT_HF_REMOTE_CALL_EVENT_ALERTING, /**< (Call-setup event) Remote party being alerted in an outgoing call of AG */
+ BT_HF_REMOTE_CALL_EVENT_CALL_TERMINATED, /**< (Call-setup event) Setup call is terminated without activating */
+ BT_HF_REMOTE_CALL_EVENT_CALL_STARTED, /**< (Active call state event) Call is started on AG */
+ BT_HF_REMOTE_CALL_EVENT_CALL_ENDED, /**< (Active call state event) Active call is terminated on AG */
+ BT_HF_REMOTE_CALL_EVENT_UNHELD, /**< (Call held event) No calls on hold */
+ BT_HF_REMOTE_CALL_EVENT_SWAPPED, /**< (Call held event) Call is placed on hold or active/held calls swapped */
+ BT_HF_REMOTE_CALL_EVENT_HELD, /**< (Call held event) Calls on hold, no active call */
+ BT_HF_REMOTE_CALL_EVENT_RINGING, /**< Incoming call is ringing event with number. This event is optional event. */
+ BT_HF_REMOTE_CALL_EVENT_WAITING, /**< Call Waiting notification in 3-way call scenario */
+ BT_HF_REMOTE_CALL_EVENT_FAILED_TO_DIALING, /**< Failed to dialing a outgoing call on AG */
+} bt_hf_remote_call_event_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_MODULE
+ * @brief Enumerations for the transfer type
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_TRANSFER_INBOUND, /**< Inbound Transfer Type */
+ BT_TRANSFER_OUTBOUND, /**< Outbound Transfer Type */
+} bt_opp_transfer_type_t;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
+ * @brief Enumerations of the Bluetooth A2DP role.
+ * @since_tizen 4.0
+ */
+typedef enum {
+ BT_A2DP_SOURCE,
+ BT_A2DP_SINK,
+} bt_audio_role_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_MAP_CLIENT_MODULE
+ * @brief
+ * @since_tizen 3.0
+ */
+typedef void* bt_map_client_session_info_h;
+
+typedef void* bt_map_client_message_object_h;
+
+typedef struct {
+ int16_t offset;
+ int16_t max_count;
+} bt_map_client_list_folders_filter_s;
+
+typedef struct {
+ int16_t offset;
+ int16_t max_count;
+ int8_t subject_length;
+ char *fields;
+ char *types;
+ char *period_begin;
+ char *period_end;
+ int is_read;
+ char *recipient;
+ char *sender;
+ int is_priority;
+} bt_map_client_list_messages_filter_s;
+
+typedef struct {
+ bt_map_client_message_object_h message_object;
+ char *folder;
+ char *subject;
+ char *timestamp;
+ char *sender;
+ char *sender_address;
+ char *reply_to;
+ char *recipient;
+ char *recipient_address;
+ char *type;
+ int64_t size;
+ int is_text;
+ char *status;
+ int64_t attachment_size;
+ int is_priority;
+ int is_read;
+ int is_sent;
+ int is_protected;
+} bt_map_client_message_item_s;
+
+typedef struct {
+ int is_transparent;
+ int is_retry;
+ char *charset;
+} bt_map_client_push_message_args_s;
+
+typedef struct {
+ char *file_path;
+// TODO: maybe some additional fields could be supported
+// char *folder;
+// char *subject;
+// char *timestamp;
+// char *sender;
+// char *sender_address;
+// char *reply_to;
+// char *recipient;
+// char *recipient_address;
+// char *type;
+// int64_t size;
+// char *status;
+// int is_priority;
+// int is_read;
+// int is_deleted;
+// int is_sent;
+// int is_protected;
+} bt_map_client_message_s;
+
+typedef bt_map_client_list_folders_filter_s *bt_map_client_list_folders_filter_h;
+
+typedef bt_map_client_list_messages_filter_s *bt_map_client_list_messages_filter_h;
+
+typedef bt_map_client_message_item_s *bt_map_client_message_item_h;
+
+typedef bt_map_client_push_message_args_s *bt_map_client_push_message_args_h;
+
+typedef bt_map_client_message_s *bt_map_client_message_h;
+
+typedef void (*bt_map_client_list_folders_cb)(int result, char **folders, int count, void *user_data);
+
+typedef void (*bt_map_client_list_filter_fields_cb)(int result, char **filter_fields, int count, void *user_data);
+
+typedef void (*bt_map_client_list_messages_cb)(int result, bt_map_client_message_item_s *messages, int count, void *user_data);
+
+typedef void (*bt_map_client_push_message_cb)(int result, void *user_data);
+
+typedef void (*bt_map_client_get_message_cb)(int result, bt_map_client_message_h message, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Called when the connectable state changes.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @param[in] result The result of the connectable state changing
+ * @param[in] connectable The connectable to be changed
+ * @param[in] user_data The user data passed from the callback registration function
+ *
+ * @pre This function will be invoked when the connectable state of local Bluetooth adapter changes
+ * if you register this callback using bt_adapter_set_connectable_changed_cb().
+ *
+ * @see bt_adapter_set_connectable()
+ * @see bt_adapter_set_connectable_changed_cb()
+ * @see bt_adapter_unset_connectable_changed_cb()
+ */
+typedef void (*bt_adapter_connectable_changed_cb)
+ (int result, bool connectable, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
+ * @brief Called when the push is requested.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ *
+ * @details You must call bt_opp_server_accept() if you want to accept.
+ * Otherwise, you must call bt_opp_server_reject().
+ * @param[in] file The path of file to be pushed
+ * @param[in] size The file size (bytes)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_opp_server_initialize()
+ */
+typedef void (*bt_opp_server_push_requested_cb)(const char *file, int size, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enumerations of the Bluetooth adapter le scan type.
+ * @since_tizen 2.3
+ */
+typedef enum {
+ BT_ADAPTER_LE_PASSIVE_SCAN = 0x00,
+ BT_ADAPTER_LE_ACTIVE_SCAN
+} bt_adapter_le_scan_type_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Enumerations for the call handling event
+ * @since_tizen @if WEARABLE 2.3 @endif
+ */
+typedef enum {
+ BT_HF_CALL_HANDLING_EVENT_ANSWER = 0x00, /**< Request to answer an incoming call */
+ BT_HF_CALL_HANDLING_EVENT_RELEASE, /**< Request to release a call */
+ BT_HF_CALL_HANDLING_EVENT_REJECT, /**< Request to reject an incoming call */
+ BT_HF_CALL_HANDLING_EVENT_RING, /**< Request of ringing call */
+ BT_HF_CALL_HANDLING_EVENT_CALL_STARTED, /**< Request of Call started */
+ BT_HF_CALL_HANDLING_EVENT_CALL_ENDED, /**< Request of Call Ended */
+ BT_HF_CALL_HANDLING_EVENT_VOICE_RECOGNITION_ENABLED, /**< Request of voice recognition enabled */
+ BT_HF_CALL_HANDLING_EVENT_VOICE_RECOGNITION_DISABLED, /**< Request of voice recognition disabled */
+ BT_HF_CALL_HANDLING_EVENT_VENDOR_DEP_CMD, /**< Request of Vendor command */
+ BT_HF_CALL_HANDLING_EVENT_WAITING, /**< Request to waiting a call */
+ BT_HF_CALL_HANDLING_EVENT_HELD, /**< Request to hold a call */
+ BT_HF_CALL_HANDLING_EVENT_UNHELD, /**< Request to unhold calls */
+ BT_HF_CALL_HANDLING_EVENT_SWAPPED, /**< Request to swap calls */
+} bt_hf_call_handling_event_e;
+
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Enumerations for the multi call handling event
+ * @since_tizen @if WEARABLE 2.3 @endif
+ */
+typedef enum {
+ BT_HF_MULTI_CALL_HANDLING_EVENT_RELEASE_HELD_CALLS = 0x00, /**< Request to release held calls */
+ BT_HF_MULTI_CALL_HANDLING_EVENT_RELEASE_ACTIVE_CALLS, /**< Request to release active calls */
+ BT_HF_MULTI_CALL_HANDLING_EVENT_ACTIVATE_HELD_CALL, /**< Request to put active calls into hold state and activate another (held or waiting) call */
+ BT_HF_MULTI_CALL_HANDLING_EVENT_MERGE_CALLS, /**< Request to add a held call to the conversation */
+ BT_HF_MULTI_CALL_HANDLING_EVENT_EXPLICIT_CALL_TRANSFER, /**< Request to let a user who has two calls to connect these two calls together and release its connections to both other parties */
+} bt_hf_multi_call_handling_event_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Enumerations for the call state
+ * @since_tizen @if WEARABLE 2.3 @endif
+ */
+typedef enum {
+ BT_HF_CALL_EVENT_IDLE = 0x00, /**< Idle */
+ BT_HF_CALL_EVENT_ANSWER, /**< Answered */
+ BT_HF_CALL_EVENT_HOLD, /**< Held */
+ BT_HF_CALL_EVENT_RETRIEVE, /**< Retrieved */
+ BT_HF_CALL_EVENT_DIAL, /**< Dialing */
+ BT_HF_CALL_EVENT_ALERT, /**< Alerting */
+ BT_HF_CALL_EVENT_INCOMING, /**< Incoming */
+ BT_HF_CALL_EVENT_REDIAL, /**< Redialling */
+ BT_HF_CALL_EVENT_RELEASE_ALL_NONACTIVE_CALLS, /**< Release all nonactive calls */
+ BT_HF_CALL_EVENT_ACCEPT_AND_RELEASE, /**< Accept and Release */
+ BT_HF_CALL_EVENT_ACCEPT_AND_HOLD, /**< Accept and Hold */
+ BT_HF_CALL_EVENT_ADD_TO_CONVERSATION, /**< Add to the conversation */
+} bt_hf_call_event_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief HF Call status information.
+ * @since_tizen @if WEARABLE 2.3 @endif
+ */
+typedef struct {
+ char *number; /**< Phone Number */
+ int direction; /**< Direction :Incoming(1), Outgoing(0) */
+ int status; /**< Call Status :Active(0), Held(1), Waiting(5), Dailing(2) */
+ int multi_party; /**< Multiparty/conf call: Yes(1), No(0) */
+ int index; /**< Call index/ID */
+} bt_hf_call_status_info_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Called when the manufacturer dat changes.
+ * @since_tizen 2.3
+ *
+ * @param[in] data The manufacurer data of the Bluetooth device to be changed
+ * @param[in] len The length of @a data
+ * @param[in] user_data The user data passed from the callback registration function
+ * @pre This function will be invoked when the manufacturer data of Bluetooth adapter changes
+ * if callback is registered using bt_adapter_set_manufacturer_data_changed_cb().
+ * @see bt_adapter_set_manufacturer_data()
+ * @see bt_adapter_set_manufacturer_data_changed_cb()
+ * @see bt_adapter_unset_manufacturer_data_changed_cb()
+ */
+typedef void (*bt_adapter_manufacturer_data_changed_cb) (char *data,
+ int len, void *user_data);
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Called repeatedly when you get the devices connected with specific profile.
+ * @since_tizen 3.0
+ *
+ * @param[in] remote_address The address of remote device
+ * @param[in] user_data The user data passed from the callback registration function
+ * @return @c true to continue with the next iteration of the loop,
+ * \n @c false to break out of the loop.
+ * @pre bt_adapter_foreach_profile_connected_devices() will invoke this function.
+ * @see bt_adapter_foreach_profile_connected_devices()
+ */
+typedef bool (*bt_adapter_profile_connected_devices_cb)(const char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Called when the SCO(Synchronous Connection Oriented link) state is changed.
+ * @since_tizen @if WEARABLE 2.3 @endif
+ *
+ * @details This callback is called when the SCO state is changed.
+ * When you call bt_ag_open_sco() or bt_ag_close_sco(), this callback is also called with error result even though these functions failed.
+ * @param[in] result The result of changing the connection state
+ * @param[in] opened The state to be changed: (@c true = opened, @c false = not opened)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_ag_set_sco_state_changed_cb()
+ * @see bt_ag_unset_sco_state_changed_cb()
+ * @see bt_ag_open_sco()
+ * @see bt_ag_close_sco()
+ */
+typedef void (*bt_hf_sco_state_changed_cb) (int result, bool opened, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Called when a call handling event happened from Hands-Free.
+ * @since_tizen @if WEARABLE 2.3 @endif
+ *
+ * @param[in] event The call handling event happened from Hands-Free
+ * @param[in] call_id The call ID
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_ag_set_call_handling_event_cb()
+ * @see bt_ag_unset_call_handling_event_cb()
+ */
+typedef void (*bt_hf_call_handling_event_cb) (bt_hf_call_handling_event_e event, char *phone_number, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Called when a multi call handling event happened from Hands-Free.
+ * @since_tizen @if WEARABLE 2.3 @endif
+ *
+ * @param[in] event The call handling event happened from Hands-Free
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_ag_set_multi_call_handling_event_cb()
+ * @see bt_ag_unset_multi_call_handling_event_cb()
+ */
+typedef void (*bt_hf_multi_call_handling_event_cb) (bt_hf_multi_call_handling_event_e event, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Called when the speaker gain of the remote device is changed.
+ * @since_tizen @if WEARABLE 2.3 @endif
+ *
+ * @param[in] gain The gain of speaker (0 ~ 15)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_hf_set_speaker_gain_changed_cb()
+ * @see bt_hf_unset_speaker_gain_changed_cb()
+ */
+typedef void (*bt_hf_speaker_gain_changed_cb) (int gain, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Called when a call status updated event happened from Hands-Free.
+ * @since_tizen @if WEARABLE 2.3 @endif
+ * @remarks call_info_list has elements which consist of bt_hf_call_status_info_s
+ * @remarks The @a call_info_list must be released with bt_hf_free_call_status_info_list() by you.
+ *
+ * @param[in] event The call handling event happened from Hands-Free
+ * @param[in] call_id The call ID
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_hf_call_status_info_s
+ * @see bt_hf_set_call_status_updated_event_cb()
+ * @see bt_hf_unset_call_status_updated_event_cb()
+ */
+typedef void (*bt_hf_call_status_updated_event_cb) (GSList *call_info_list, void *user_data);
+
+/**
+* @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+* @brief DPM BT allowance state
+* @since_tizen 3.0
+*/
+typedef enum {
+ BT_DPM_ERROR = -1, /**< bluetooth allowance error */
+ BT_DPM_BT_ALLOWED, /**< bluetooth allowance allowed */
+ BT_DPM_HANDSFREE_ONLY, /**< bluetooth allowance handsfree only */
+ BT_DPM_BT_RESTRICTED, /**< bluetooth allowance restricted */
+} bt_dpm_allow_e;
+
+/**
+* @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+* @brief DPM Policy status
+* @since_tizen 3.0
+*/
+typedef enum {
+ BT_DPM_STATUS_ERROR = -1,
+
+ BT_DPM_ALLOWED = 0, /**< DPM Policy status allowed. */
+ BT_DPM_RESTRICTED = 1, /**< DPM Policy status restricted. */
+
+ BT_DPM_ENABLE = 1, /**< DPM Policy status enabled. */
+ BT_DPM_DISABLE = 0, /**< DPM Policy status disabled. */
+
+ BT_DPM_FALSE = 0, /**< DPM Policy status false. */
+ BT_DPM_TRUE = 1, /**< DPM Policy status true. */
+} bt_dpm_status_e;
+
+/**
+* @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
+* @brief DPM Profile states
+* @since_tizen 3.0
+*/
+typedef enum {
+ BT_DPM_POLICY_A2DP_PROFILE_STATE,
+ BT_DPM_POLICY_AVRCP_PROFILE_STATE,
+ BT_DPM_POLICY_BPP_PROFILE_STATE,
+ BT_DPM_POLICY_DUN_PROFILE_STATE,
+ BT_DPM_POLICY_FTP_PROFILE_STATE,
+ BT_DPM_POLICY_HFP_PROFILE_STATE,
+ BT_DPM_POLICY_HSP_PROFILE_STATE,
+ BT_DPM_POLICY_PBAP_PROFILE_STATE,
+ BT_DPM_POLICY_SAP_PROFILE_STATE,
+ BT_DPM_POLICY_SPP_PROFILE_STATE,
+ BT_DPM_PROFILE_NONE,
+} bt_dpm_profile_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Device LE connection update structure.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ */
+typedef struct {
+ unsigned int interval_min; /**< Minimum value for the connection event interval (msec) */
+ unsigned int interval_max; /**< Maximum value for the connection event interval (msec) */
+ unsigned int latency; /**< Slave latency (msec) */
+ unsigned int time_out; /**< Supervision timeout (msec) */
+} bt_le_conn_update_s;
+
+/**
+ * Structure to DPM device list
+ */
+typedef struct {
+ int count;
+ char **devices;
+} bt_dpm_device_list_s;
+
+/**
+ * Structure to DPM uuid list
+ */
+typedef struct {
+ int count;
+ char **uuids;
+} bt_dpm_uuids_list_s;
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Enumaration for the address type field in manufactrer specific data
+ * @since_tizen 3.0
+ */
+typedef enum {
+ ADDRESS_NONE_TYPE = 0x00,
+ WI_FI_P2P_ADDRESS = 0x01,
+ BLUETOOTH_ADDRESS = 0x02,
+ INDICATION_ADDRESS = 0x04,
+ IPV4_ADDRESS = 0x08,
+ IPV6_ADDRESS = 0x10,
+ UNKNOWN_ADDRESS = 0xff
+} connectivity_address_t;
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Enumaration for the proximity locality type field in manufactrer specific data
+ * @since_tizen 3.0
+ */
+typedef enum {
+ NONE_TYPE = 0x00,
+ PROXIMITY = 0x01,
+ CO_PRESENCE = 0x02,
+ UNKNOWN_TYPE = 0xff
+} bt_proximity_locality_t;
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Structure of samsung specific manufacturer data
+ * @since_tizen 3.0
+ */
+typedef struct {
+ unsigned char version;
+ unsigned char service_id;
+ unsigned char discovery_version;
+ unsigned char associated_service_id;
+ bt_proximity_locality_t proximity_locality_type;
+ unsigned char proximity_locality_info;
+ unsigned char device_type;
+ unsigned char device_icon;
+ unsigned char auth_info[5];
+ connectivity_address_t addr_type;
+ unsigned char addr1[6];
+ unsigned char addr2[6];
+ unsigned char channel_info;
+ unsigned char associated_service_data_len;
+ unsigned char *associated_service_data_val;
+ char *name;
+} bt_manufacturer_data;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Trusted Profile enumeration.
+ * @since_tizen 3.0
+ *
+ * @see bt_device_set_profile_trusted()
+ * @see bt_device_get_profile_trusted()
+ */
+typedef enum {
+ BT_TRUSTED_PROFILE_PBAP = 1,
+ BT_TRUSTED_PROFILE_MAP,
+ BT_TRUSTED_PROFILE_SAP,
+ BT_TRUSTED_PROFILE_ALL = 0xFFFFFFFF,
+} bt_trusted_profile_t;
+
+/**
+ * @deprecated Deprecated since 4.0. Use bt_trusted_profile_t instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Restricted Profile enumeration.
+ * @since_tizen 3.0
+ *
+ * @see bt_device_set_profile_restricted()
+ * @see bt_device_get_profile_restricted()
+ */
+typedef enum {
+ BT_RESTRICTED_PROFILE_HFP_HS = 1,
+ BT_RESTRICTED_PROFILE_A2DP,
+} bt_restricted_profile_t;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Enumerations of the authentication event types.
+ * @since_tizen 3.0
+ *
+ */
+typedef enum {
+ BT_AUTH_KEYBOARD_PASSKEY_DISPLAY = 0, /**< PIN display event to user for entering PIN in keyboard */
+ BT_AUTH_PIN_REQUEST, /**< Legacy PIN or PASSKEY request event */
+ BT_AUTH_PASSKEY_CONFIRM_REQUEST, /**< PASSKEY confirmation event to match PASSKEY in remote device */
+} bt_authentication_type_info_e;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Proximity Profile Role
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_PROXIMITY_REPORTER, /**< Proximity Profile Reporter role. */
+ BT_PROXIMITY_MONITOR, /**< Proximity Profile Monitor role. */
+} bt_proximity_role_t;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Proximity Profile Role
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_PROXIMITY_LINKLOSS_ALERT = 0x01, /**< Proximity profile Link Loss alert property */
+ BT_PROXIMITY_IMMEDIATE_ALERT = 0x02, /**< Proximity Profile Immediate alert property */
+ BT_PROXIMITY_TX_POWER = 0x04, /**< Proximity Profile Immediate alert property */
+} bt_proximity_property_t;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Called when Trusted Profiles is changed.
+ * @since_tizen 3.0
+ *
+ * @param[in] result The result of supported profile callback
+ * @param[in] remote_address Address of remote device
+ * @param[in] trusted_profiles Trusted profile FLAG
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_device_set_trusted_profile_cb()
+ * @see bt_device_unset_trusted_profile_cb()
+ */
+typedef void (*bt_device_trusted_profiles_cb)
+ (int result, char *remote_address, int trusted_profile, bool supported, bool trusted, void *user_data);
+
+/**
+ * @deprecated Deprecated since 4.0. Use bt_gatt_client_att_mtu_info_s instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Attribute protocol MTU change information structure.
+ * @since_tizen 3.0
+ *
+ * @see bt_device_att_mtu_changed_cb()
+ */
+typedef struct {
+ char *remote_address; /**< The address of remote device */
+ unsigned int mtu; /** < MTU value */
+ unsigned int status; /** < request status*/
+} bt_device_att_mtu_info_s;
+
+/**
+ * @deprecated Deprecated since 4.0. Use bt_gatt_client_att_mtu_changed_cb instead.
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Called when the connection state is changed.
+ * @since_tizen 3.0
+ *
+ * @param[in] connected The connection status: (@c true = connected, @c false = disconnected)
+ * @param[in] conn_info The connection information
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_device_set_connection_state_changed_cb()
+ * @see bt_device_unset_connection_state_changed_cb()
+ */
+typedef void (*bt_device_att_mtu_changed_cb)(int result, bt_device_att_mtu_info_s *mtu_info, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief The handle of a Proximity Monitor client handle which is associated with a remote device.
+ * @since_tizen 4.0
+ */
+typedef void *bt_proximity_monitor_h;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief The handle of a Proximity Reporter server.
+ * @since_tizen 4.0
+ */
+typedef void *bt_proximity_reporter_h;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Called when the Proximity profile reporter property is changed.
+ * @since_tizen 4.0
+ *
+ * @param[in] result callback result
+ * @param[in] remote_address remote device address on which property is changed
+ * @param[in] service_type The property type for which the value is changed
+ * @param[in] prop_value The property value changed
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_proximity_reporter_set_property_changed_cb()
+ * @see bt_proximity_reporter_unset_property_changed_cb()
+ */
+typedef void (*bt_proximity_reporter_property_changed_cb)
+ (int result, const char *remote_address, int service_type, int prop_value, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Called when the Proximity monitor profile connection state is changed.
+ * @since_tizen 4.0
+ *
+ * @param[in] result callback result
+ * @param[in] remote_address remote device address to which the device is connected
+ * @param[in] monitor proximity profile monitor handle
+ * @param[in] connected The connection status: (@c true = connected, @c false = disconnected)
+ * @param[in] supported_service supported services of proximity profile
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_proximity_monitor_set_connection_state_changed_cb()
+ * @see bt_proximity_monitor_unset_connection_state_changed_cb()
+ */
+typedef void (*bt_proximity_monitor_connection_state_changed_cb)
+ (int result, const char *remote_address, bt_proximity_monitor_h monitor, bool connected, int supported_service, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
+ * @brief Called when the Proximity reporter profile connection state is changed.
+ * @since_tizen 4.0
+ *
+ * @param[in] result callback result
+ * @param[in] remote_address remote device address to which the device is connected
+ * @param[in] reporter proximity profile reporter handle
+ * @param[in] connected The connection status: (@c true = connected, @c false = disconnected)
+ * @param[in] supported_service supported services of proximity profile
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_proximity_reporter_set_connection_state_changed_cb()
+ * @see bt_proximity_reporter_unset_connection_state_changed_cb()
+ */
+typedef void (*bt_proximity_reporter_connection_state_changed_cb)
+ (int result, const char *remote_address, bt_proximity_reporter_h reporter, bool connected, int supported_service, void *user_data);
+
+
+/**
+ * @internal
+ * @brief Various TDS transport states.
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_TDS_TRANSPORT_STATE_OFF, /**< Transport is currently in OFF state */
+ BT_TDS_TRANSPORT_STATE_ON, /**< Transport is currently in ON state */
+ BT_TDS_TRANSPORT_STATE_UNAVAILABLE, /**< Transport is temporarily unavailable */
+} bt_tds_transport_state_e;
+
+/**
+ * @internal
+ * @brief Various TDS transports.
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_TDS_TRANSPORT_BT = 0x01, /* Transport BR-EDR */
+ BT_TDS_TRANSPORT_CUSTOM, /* Transport custom */
+ /* ... */
+ BT_TDS_TRANSPORT_INVALID
+} bt_tds_transport_e;
+
+/**
+ * @internal
+ * @brief The structure type of TDS transport data block
+ * @since_tizen 3.0
+ */
+typedef struct {
+ bt_tds_transport_e transport;
+ bt_tds_transport_state_e state;
+ bool is_data_complete;
+ char *data;
+ int length;
+} tds_transport_data_s;
+
+/**
+ * @internal
+ * @brief The structure type of list of TDS transport data block
+ * @since_tizen 3.0
+ */
+typedef struct {
+ int num_transport_block; /**< Number of Transport Data Blocks */
+ tds_transport_data_s **data; /**< Array of Transport Data Block */
+} bt_tds_transport_block_list_s;
+
+/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
+ * @brief Called when remote device requests authentication.
+ * @since_tizen 3.0
+ * @param[in] result
+ * @param[in] auth_type
+ * typedef enum {
+ * BT_AUTH_KEYBOARD_PASSKEY_DISPLAY = 0, : PIN display event to user for entering PIN in keyboard
+ * BT_AUTH_PIN_REQUEST, : Legacy PIN or PASSKEY request event
+ * BT_AUTH_PASSKEY_CONFIRM_REQUEST, : PASSKEY confirmation event to match PASSKEY in remote device
+ * } bt_authentication_type_info_e;
+ * @param[in] device_name Name of the remote device
+ * @param[in] remote_addr Remote BD address
+ * @param[in] pass_key PASSKEY string
+ * PASSKEY string is valid only if authentication types are following
+ * a/ BT_AUTH_KEYBOARD_PASSKEY_DISPLAY
+ * b/ BT_AUTH_PASSKEY_CONFIRM_REQUEST
+ * pass_key string will be invalid if authentication event is of type BT_AUTH_PIN_REQUEST
+ * as this event indicates that user MUST enter PIN or PASSKEY and perform authentication.
+ *
+ * Upon receiving BT_AUTH_KEYBOARD_PASSKEY_DISPLAY event, user should enter PASSKEY in keyboard
+ * Application can also call bt_device_cancel_bonding() Upon receiving BT_AUTH_KEYBOARD_PASSKEY_DISPLAY
+ * event which will fail the on-going pairing with remote device.
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_adapter_set_authentication_req_cb()
+ */
+typedef void (*bt_adapter_authentication_req_cb)(int result, bt_authentication_type_info_e auth_type,
+ char *device_name, char *remote_addr,
+ char *pass_key, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Samsung XSAT Vendor dependent command.
+ * @since_tizen 2.3.2
+ */
+typedef struct {
+ int app_id; /**< The application ID */
+ char *message; /**< Command message */
+} bt_hf_vendor_dep_at_cmd_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
+ * @brief Called when a call event happend from Audio-Gateway device
+ * @since_tizen @if WEARABLE 3.0 @endif
+ *
+ * @param[in] event The call state chagned event from remote Audio-Gateway device
+ * @param[in] user_data The user data passed from the callback registration function
+ *
+ * @see bt_hf_set_remote_call_event_cb()
+ * @see bt_hf_unset_remote_call_event_cb()
+ */
+typedef void (*bt_hf_remote_call_event_cb) (bt_hf_remote_call_event_e event, char *phone_number, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
+ * @brief Called when a XSAT vendor command is transmitted from Hands-Free.
+ * @since_tizen 2.3
+ *
+ * @param[in] command The XSAT vendor command transmitted from Hands-Free
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see bt_ag_set_vendor_cmd_cb()
+ * @see bt_ag_unset_vendor_cmd_cb()
+ */
+typedef void (*bt_ag_vendor_cmd_cb) (char *command, void *user_data);
+
+/**
+ * @internal
+ * @brief The handle of a Transport Discover Service Provider.
+ * @since_tizen 3.0
+ */
+typedef void *bt_tds_provider_h;
+
+/**
+ * @internal
+ * @brief Called when remote device requests transport activation
+ * @since_tizen 3.0
+ * @param[in] remote_bd_addr Remote device address
+ * @param[in] transport transport to be activated
+ * @param[in] buf transport activation request data buffer
+ * @param[in] len transport activation request data buffer length
+ * @param[in] user_data The user data passed from the callback registration function
+ *
+ * @see bt_tds_set_transport_activation_requested_cb()
+ */
+typedef void (*bt_tds_activation_requested_cb)(char *remote_bd_addr,
+ bt_tds_transport_e transport, unsigned char *buf, int len, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief The handle of a TDS Seeker client which is associated with a remote TDS provider
+ * @since_tizen 3.0
+ */
+typedef void *bt_tds_seeker_h;
+
+/**
+ * @internal
+ * @since_tizen 3.0
+ * @brief TDS Seeker profile Scan result callback containing filtered TDS service information and
+ * complete LE discovery informations
+ */
+typedef void (*bt_tds_provider_scan_result_cb)(int result, const char *remote_address,
+ bt_tds_transport_block_list_s *info, bt_adapter_le_device_scan_result_info_s *scan_info,
+ void *user_data);
+
+/**
+ * @internal
+ * @since_tizen 3.0
+ * @brief TDS Seeker profile Connection State changed callback which is associated with a remote TDS provider
+ */
+typedef void (*bt_tds_seeker_connection_state_changed_cb)
+ (int result, const char *remote_address, bt_tds_seeker_h seeker, bool connected, void *user_data);
+
+/**
+ * @internal
+ * @since_tizen 3.0
+ * @brief TDS Seeker profile complete TDS data block read callback from remote TDS provider
+ */
+typedef void (*bt_tds_seeker_complete_transport_data_cb)
+ (int result, const char *remote_address, bt_tds_transport_block_list_s *info, void *user_data);
+
+/**
+ * @internal
+ * @since_tizen 3.0
+ * @brief TDS Seeker profile TDS Control Point Activation request callback which is associated with remote TDS provider
+ */
+typedef void (*bt_tds_control_point_activation_indication_cb)
+ (int result, const char *remote_address, unsigned char *data, int data_length, void *user_data);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @brief Called when OTP Server is Enabled or Disabled.
+ */
+typedef void (*bt_otp_server_state_changed_cb)(int result, bool connected);
+
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief The handle of a OTP client which is associated with a remote OTP Server
+ * @since_tizen 4.0
+ */
+typedef void *bt_otp_client_h;
+
+/**
+ * @internal
+ * @brief The structure type of OTP object metadata
+ * @since_tizen 4.0
+ */
+typedef struct {
+ unsigned long long id;
+ char *name;
+} otp_object_metadata_s;
+
+/**
+ * @internal
+ * @brief The structure type of list of OTP discovered objects
+ * @since_tizen 4.0
+ */
+typedef struct {
+ int num_objects; /**< Number of Objects Discovered */
+ otp_object_metadata_s **data; /**< Array of Discovered Object MetaData */
+} bt_otp_object_list_s;
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @brief OTP Client profile Connection State changed callback which is associated with a remote OTP Server
+ */
+typedef void (*bt_otp_client_state_changed_cb)
+ (int result, const char *remote_address, bt_otp_client_h otp_client, bool connected, void *user_data);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @brief OTP Client profile remote object discovery callback
+ */
+typedef void (*bt_otp_client_object_discovery_cb)
+ (int result, const char *remote_address, bt_otp_object_list_s *obj_list, void *user_data);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @brief OTP Client profile select object callback
+ */
+typedef void (*bt_otp_client_object_select_cb)
+ (int result, const char *remote_address, unsigned long long obj_id, void *user_data);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @brief OTP Client profile remote object read complete callback
+ */
+typedef void (*bt_otp_client_read_object_complete_cb)
+ (int result, const char *remote_address, char *file_path, void *user_data);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @brief OTP Client profile object create callback
+ */
+typedef void (*bt_otp_client_object_create_cb)
+ (int result, const char *remote_address, unsigned long long obj_id, void *user_data);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @brief OTP Client profile object create callback
+ */
+typedef void (*bt_otp_client_object_write_cb)
+ (int result, const char *remote_address, unsigned int length, void *user_data);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @brief OTP Client profile object execute callback
+ */
+typedef void (*bt_otp_client_object_execute_cb)
+ (int result, const char *remote_address, unsigned long long obj_id, void *user_data);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @brief OTP Client profile object delete callback
+ */
+typedef void (*bt_otp_client_object_delete_cb)
+ (int result, const char *remote_address, unsigned long long obj_id, void *user_data);
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __TIZEN_NETWORK_BLUETOOTH_TYPE_INTERNAL_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_H__
-#define __TIZEN_NETWORK_BLUETOOTH_H__
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdbool.h>
-#include <tizen_error.h>
-#include <tizen.h>
-
-#include <bluetooth_type.h>
-
-#ifndef TIZEN_DEPRECATED_API
-#define TIZEN_DEPRECATED_API __attribute__((__visibility__("default"), deprecated))
-#endif
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth.h
- * @brief API to control the Bluetooth adapter and devices and communications.
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- */
-
-
-/**
- * @addtogroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @{
- */
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @brief Initializes the Bluetooth API.
- * @since_tizen 2.3
- *
- * @remarks This function must be called before Bluetooth API starts. \n
- * You must free all resources of the Bluetooth service by calling bt_deinitialize() if Bluetooth service is no longer needed.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_deinitialize()
- */
-int bt_initialize(void);
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @brief Releases all resources of the Bluetooth API.
- * @since_tizen 2.3
- *
- * @remarks This function must be called if Bluetooth API is no longer needed.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre Bluetooth API must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- */
-int bt_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @brief Gets the specification name for the given UUID.
- * @since_tizen 3.0
- *
- * @remarks The @a name must be released using free().
- *
- * @param[in] uuid The UUID
- * @param[out] name The specification name defined at www.bluetooth.com
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_get_uuid()
- */
-int bt_get_uuid_name(const char *uuid, char **name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the current state of local Bluetooth adapter.
- * @since_tizen 2.3
- *
- * @param[out] adapter_state The current adapter state
- *
- * @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_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- */
-int bt_adapter_get_state(bt_adapter_state_e *adapter_state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the address of local Bluetooth adapter.
- * @since_tizen 2.3
- *
- * @remarks The @a local_address must be released with free() by you.
- *
- * @param[out] local_address The device address of local Bluetooth adapter
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_adapter_get_name()
- */
-int bt_adapter_get_address(char **local_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the name of local Bluetooth adapter.
- * @since_tizen 2.3
- *
- * @details Use this function to get the friendly name associated with Bluetooth
- * device, retrieved by the remote Bluetooth devices.
- *
- * @remarks The @a local_name must be released with free() by you.
- *
- * @param[out] local_name The local device name
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_set_name()
- */
-int bt_adapter_get_name(char **local_name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the name of local Bluetooth adapter.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] local_name The name of the Bluetooth device. \n
- * The maximum length is 248 characters.
- *
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_adapter_name_changed_cb() will be invoked if this function returns #BT_ERROR_NONE.
- *
- * @see bt_adapter_get_name()
- * @see bt_adapter_name_changed_cb()
- * @see bt_adapter_set_name_changed_cb()
- * @see bt_adapter_unset_name_changed_cb()
- */
-int bt_adapter_set_name(const char *local_name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the visibility mode of local Bluetooth adapter.
- * @since_tizen 2.3
- * @param[out] mode The visibility mode of the Bluetooth device
- * @param[out] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds).
- * @a duration is valid only if @a mode is #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE. This value can be NULL.
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_adapter_get_visibility(bt_adapter_visibility_mode_e *mode, int *duration);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Starts the device discovery, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details If a device is discovered, bt_adapter_device_discovery_state_changed_cb() will be invoked
- * with #BT_ADAPTER_DEVICE_DISCOVERY_FOUND, and then bt_adapter_device_discovery_state_changed_cb()
- * will be called with #BT_ADAPTER_DEVICE_DISCOVERY_FINISHED in case of the completion or cancellation of the discovery.
- *
- * @remarks To connect to peer Bluetooth device, you need to know its Bluetooth address. \n
- * The device discovery can be stopped by bt_adapter_stop_device_discovery().
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_is_discovering()
- * @see bt_adapter_stop_device_discovery()
- * @see bt_adapter_device_discovery_state_changed_cb()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- * @see bt_adapter_unset_device_discovery_state_changed_cb()
- */
-int bt_adapter_start_device_discovery(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Stops the device discovery, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks The device discovery process will take 10 ~ 20 seconds to get all the devices in vicinity.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation is not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The device discovery must be in progress with bt_adapter_start_device_discovery().
- * @post This function invokes bt_adapter_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_is_discovering()
- * @see bt_adapter_start_device_discovery()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- * @see bt_adapter_unset_device_discovery_state_changed_cb()
- * @see bt_adapter_device_discovery_state_changed_cb()
- */
-int bt_adapter_stop_device_discovery(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Checks for the device discovery is in progress or not.
- * @since_tizen 2.3
- *
- * @remarks If Bluetooth discovery is in progress, other operations are not allowed and
- * you have to either stop the discovery operation, or wait for it to be finished,
- * before performing other operations.
-
- * @param[out] is_discovering The discovering status: (@c true = in progress , @c false = not in progress )
- *
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_adapter_stop_device_discovery()
- */
-int bt_adapter_is_discovering(bool *is_discovering);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Get the service mask from the uuid list.
- * @since_tizen 2.3
- *
- * @param[in] uuids The UUID list of the device.
- * @param[in] no_of_service The number of the UUID list count.
- * @param[out] service_mask_list Service mask list converted from the given UUID list.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_service_class_t
- */
-int bt_device_get_service_mask_from_uuid_list(char **uuids,
- int no_of_service,
- bt_service_class_t *service_mask_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Retrieves the device information of all bonded devices.
- * @since_tizen 2.3
- *
- * @param [in] callback The callback function to invoke
- * @param [in] user_data The user data passed from the foreach function
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_bonded_device_cb().
- *
- * @see bt_adapter_bonded_device_cb()
- */
-int bt_adapter_foreach_bonded_device(bt_adapter_bonded_device_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the device information of a bonded device.
- * @since_tizen 2.3
- * @remarks The @a device_info must be released with bt_adapter_free_device_info() by you .
- *
- * @param [in] remote_address The address of remote device
- * @param [out] device_info The bonded device information
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_bonded_device_cb().
- *
- * @see bt_adapter_bonded_device_cb()
- */
-int bt_adapter_get_bonded_device_info(const char *remote_address, bt_device_info_s **device_info);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Frees device info.
- * @since_tizen 2.3
- *
- * @param [in] device_info The bonded device information
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_adapter_get_bonded_device_info()
- */
-int bt_adapter_free_device_info(bt_device_info_s *device_info);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Checks whether the UUID of service is used or not
- * @since_tizen 2.3
- * @param[in] service_uuid The UUID of service
- * @param[out] used Indicates whether the service is used or not
- * @return true on success, otherwise false.
- * @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_NOT_SUPPORTED Not supported
- */
-int bt_adapter_is_service_used(const char *service_uuid, bool *used);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the Bluetooth adapter state changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_state_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_state_changed_cb()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb()
- */
-int bt_adapter_set_state_changed_cb(bt_adapter_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_state_changed_cb()
- */
-int bt_adapter_unset_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the name of Bluetooth adapter changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_name_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_name_changed_cb()
- * @see bt_adapter_unset_name_changed_cb()
- */
-int bt_adapter_set_name_changed_cb(bt_adapter_name_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_name_changed_cb()
- */
-int bt_adapter_unset_name_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the visibility mode changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_visibility_mode_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_visibility_mode_changed_cb()
- * @see bt_adapter_unset_visibility_mode_changed_cb()
- */
-int bt_adapter_set_visibility_mode_changed_cb(bt_adapter_visibility_mode_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_visibility_mode_changed_cb()
- */
-int bt_adapter_unset_visibility_mode_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked every second
- * @since_tizen 2.3
- * until the visibility mode is changed from #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE
- * to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
- * @details When you set visibility mode as #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE,
- * @a callback will be called every second until visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @post bt_adapter_visibility_duration_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_adapter_visibility_duration_changed_cb()
- * @see bt_adapter_unset_visibility_duration_changed_cb()
- */
-int bt_adapter_set_visibility_duration_changed_cb(bt_adapter_visibility_duration_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_adapter_set_visibility_duration_changed_cb()
- */
-int bt_adapter_unset_visibility_duration_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the device discovery state changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_device_discovery_state_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_device_discovery_state_changed_cb()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- * @see bt_adapter_unset_device_discovery_state_changed_cb()
- */
-int bt_adapter_set_device_discovery_state_changed_cb(bt_adapter_device_discovery_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- */
-int bt_adapter_unset_device_discovery_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Get the Hash and Randmoizer value, synchronously.
- * @since_tizen 2.3
- *
- * @param[out] hash The hash value received from the controller
- * @param[out] randomizer The hash value received from the controller
- * @param[out] hash_len The length of the hash value
- * @param[out] randomizer_len The length of the randomizer value
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_get_local_oob_data(unsigned char **hash, unsigned char **randomizer,
- int *hash_len, int *randomizer_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the Hash and Randmoizer value, synchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address Remote device address
- * @param[in] hash The hash value received from the controller
- * @param[in] randomizer The hash value received from the controller
- * @param[in] hash_len The length of the hash value. Allowed value is 16
- * @param[in] randomizer_len The length of the randomizer value. Allowed value is 16
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_set_remote_oob_data(const char *remote_address,
- unsigned char *hash, unsigned char *randomizer,
- int hash_len, int randomizer_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the Hash and Randmoizer value, synchronously.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks The @a hash192, randomizer192, hash256 and randomizer256 must be released using free()
- *
- * @param[out] hash192 The hash value derived from the P-192 public key
- * @param[out] randomizer192 The randomizer value associated with the P-192 public key
- * @param[out] hash192_len The length of @a hash192
- * @param[out] randomizer192_len The length of @a randomizer192
- * @param[out] hash256 The hash value derived from the P-256 public key
- * @param[out] randomizer256 The randomizer value associated with the P-256 public key
- * @param[out] hash256_len The length of @a hash256
- * @param[out] randomizer256_len The length of @a randomizer256
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_get_local_oob_ext_data(unsigned char **hash192, unsigned char **randomizer192,
- int *hash192_len, int *randomizer192_len,
- unsigned char **hash256, unsigned char **randomizer256,
- int *hash256_len, int *randomizer256_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the Hash and Randmoizer value, synchronously.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address Remote device address
- * @param[in] hash192 The P-192 hash value received via OOB from remote device
- * @param[in] randomizer192 The P-192 randomizer value received via OOB from remote device
- * @param[in] hash192_len The length of @a hash192
- * @param[in] randomizer192_len The length of @a randomizer192
- * @param[in] hash256 The P-256 hash value received via OOB from remote device
- * @param[in] randomizer256 The P-256 randomizer value received via OOB from remote device
- * @param[in] hash256_len The length of @a hash256
- * @param[in] randomizer256_len The length of @a randomizer256
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_set_remote_oob_ext_data(const char *remote_address,
- const unsigned char *hash192, const unsigned char *randomizer192,
- int hash192_len, int randomizer192_len,
- const unsigned char *hash256, const unsigned char *randomizer256,
- int hash256_len, int randomizer256_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Deletes the Hash and Randomizer value, synchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address Remote device address
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_remove_remote_oob_data(const char *remote_address);
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Starts the LE device discovery.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details If a LE device is discovered, bt_adapter_le_device_discovery_state_changed_cb()
-* will be invoked with #BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND, and then bt_adapter_le_device_discovery_state_changed_cb()
- * will be called with #BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED in case of the completion or cancellation of the discovery.
- *
- * @remarks To connect to peer Bluetooth device, you need to know its Bluetooth address. \n
- * The device discovery can be stopped by bt_adapter_le_stop_device_discovery().
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_le_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_le_is_discovering()
- * @see bt_adapter_le_device_discovery_state_changed_cb()
- * @see bt_adapter_le_set_device_discovery_state_changed_cb()
- * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
- */
-int bt_adapter_le_start_device_discovery(void) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Stops the LE device discovery, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation is not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The device discovery must be in progress with bt_adapter_le_start_device_discovery().
- * @post This function invokes bt_adapter_le_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_le_is_discovering()
- * @see bt_adapter_le_start_device_discovery()
- * @see bt_adapter_le_set_device_discovery_state_changed_cb()
- * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
- * @see bt_adapter_le_device_discovery_state_changed_cb()
- */
-int bt_adapter_le_stop_device_discovery(void) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Checks for the LE device discovery is in progress or not.
- * @since_tizen 2.3
- *
- * @remarks If Bluetooth LE discovery is in progress, other operations are not allowed and
- * you have to either stop the LE discovery operation, or wait for it to be finished,
- * before performing other operations.
-
- * @param[out] is_discovering The discovering status: (@c true = in progress , @c false = not in progress )
- *
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_le_start_device_discovery()
- * @see bt_adapter_le_stop_device_discovery()
- */
-int bt_adapter_le_is_discovering(bool *is_discovering) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Registers a callback function to be invoked when the LE device discovery state changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_le_device_discovery_state_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_le_device_discovery_state_changed_cb()
- * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
- */
-int bt_adapter_le_set_device_discovery_state_changed_cb(bt_adapter_le_device_discovery_state_changed_cb callback, void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_le_set_device_discovery_state_changed_cb()
- */
-int bt_adapter_le_unset_device_discovery_state_changed_cb(void) TIZEN_DEPRECATED_API;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Starts the LE scan to find LE advertisement.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details If a LE advertisement is found, bt_adapter_le_scan_result_cb() will be invoked.
- *
- * @param[in] cb The callback to report the result of this function
- * @param[in] user_data The user data to be passed when callback is called
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_le_scan_result_cb().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_start_scan(bt_adapter_le_scan_result_cb cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Stops the LE scan.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation is not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The LE scan must be in progress with bt_adapter_le_start_scan().
- *
- * @see bt_adapter_le_start_scan()
- */
-int bt_adapter_le_stop_scan(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the service UUID list from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a uuids must be iterated as count and each pointed data must be released with free().
- * Then uuids must be released with free(). \n
- * 16-bit service UUID or 128-bit service UUID is supported. (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] uuids The list of string of the service uuid
- * @param[out] count The count of the service UUIDs
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_service_uuids(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, char ***uuids, int *count);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the device name from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a name must be released with free() by you.
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] name The device name
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_device_name(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, char **name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the transmission power level from the scan result information
- * @since_tizen 2.3.1
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] power_level The transmission power level in dBm
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_tx_power_level(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, int *power_level);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the service solicitation UUID list from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a uuids must be iterated as count and each pointed data must be released with free().
- * Then uuids must be released with free(). \n
- * 16-bit service solicitation UUID or 128-bit service solicitation UUID is supported.
- * (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] uuids The list of string of the service solicitation uuid
- * @param[out] count The count of the service UUIDs
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_service_solicitation_uuids(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, char ***uuids, int *count);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the service data list from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a data_list must be released with bt_adapter_le_free_service_data_list() by you .
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] data_list The list of the service data
- * @param[out] count The count of the service data list
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_service_data_list(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, bt_adapter_le_service_data_s **data_list, int *count);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Frees service data list.
- * @since_tizen 2.3.1
- *
- * @param[in] data_list The list of the service data
- * @param[in] count The count of the service data list
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_adapter_le_get_scan_result_service_data_list()
- */
-int bt_adapter_le_free_service_data_list(bt_adapter_le_service_data_s *data_list, int count);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the appearance from the scan result information
- * @since_tizen 2.3.1
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] appearance The appearance
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_appearance(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, int *appearance);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the manufacturer data from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a manufacturer_data must be released with free() by you.
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] manufacturer_id The manufacturer ID
- * @param[out] manufacturer_data The manufacturer data (byte array)
- * @param[out] manufacturer_data_len The length of manufacturer data
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_manufacturer_data(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, int *manufacturer_id, char **manufacturer_data, int *manufacturer_data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Create advertiser to advertise device's existence or respond to LE scanning request.
- * @since_tizen 2.3
- *
- * @param[out] advertiser The handle of advertiser
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_destroy_advertiser()
- */
-int bt_adapter_le_create_advertiser(bt_advertiser_h *advertiser);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Destroy advertiser.
- * @since_tizen 2.3
- *
- * @param[out] advertiser The handle of advertiser
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_create_advertiser()
- */
-int bt_adapter_le_destroy_advertiser(bt_advertiser_h advertiser);
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set the data to be advertised or responded to scan request from LE scanning device.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3
- *
- * @remarks In case the data_type is local name or tx power level, you don't need to input data
- * because the data value is written automatically by system.
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] data_type The data type that is included in packet
- * @param[in] data The data to be advertised or be responded to scan request from LE scanning device, no need in case of LOCAL_NAME or TX_POWER_LEVEL
- * @param[in] data_size The size of data to be set.
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_data(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, bt_adapter_le_packet_data_type_e data_type,
- void *data, unsigned int data_size) TIZEN_DEPRECATED_API;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Add a service UUID to advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @remarks 16-bit UUID or 128-bit UUID is supported. (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] uuid The string of the service UUID.
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_service_uuid(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, const char *uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Add a service solicitation UUID to advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @remarks 16-bit service solicitation UUID or 128-bit service solicitation UUID is supported.
- * (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] uuid The string of the service solicitation UUID.
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_service_solicitation_uuid(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, const char *uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Add service data to advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @remarks 16-bit UUID is supported. (e.g. 180F)
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] uuid 16-bit UUID of the service
- * @param[in] service_data The service data
- * @param[in] service_data_len The data length of service data
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_service_data(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, const char *uuid,
- const char *service_data, int service_data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Sets the external appearance of this device to advertise or scan response data.
- * Please refer to the adopted Bluetooth specification for the the appearance.
- * @since_tizen 2.3.1
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] appearance The external appearance of device
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_set_advertising_appearance(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, int appearance);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Add manufacturer specific data to advertise or scan response data.
- * Please refer to the Bluetooth Assigned Numbers provided by the Bluetooth SIG for a list of existing company identifiers.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] manufacturer_id Manufacturer identifier
- * @param[in] manufacturer_data The manufacturer specific data
- * @param[in] manufacturer_data_len The data length of manufacturer data
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_manufacturer_data(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, int manufacturer_id, const char *manufacturer_data, int manufacturer_data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set whether the device name should be included in advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] include_name Whether the device name should be included
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_set_advertising_device_name(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, bool include_name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set whether the transmission power level should be included in advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] include_tx_power Whether the transmission power level should be included
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_set_advertising_tx_power_level(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, bool include_tx_power);
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unset the data to be advertised or responded to scan request from LE scanning device.
- * @since_tizen 2.3
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] data_type The data type to be removed from selected packet
- *
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_add_advertising_data()
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_remove_advertising_data(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, bt_adapter_le_packet_data_type_e data_type) TIZEN_DEPRECATED_API;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Clear all data to be advertised or responded to scan request from LE scanning device.
- * @since_tizen 2.3
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type to be cleared
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_add_advertising_data()
- */
-int bt_adapter_le_clear_advertising_data(bt_advertiser_h advertiser, bt_adapter_le_packet_type_e pkt_type);
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Start advertising with passed advertiser and advertising parameters.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details Once Bluetooth advertising is started, nearby Bluetooth LE(Low Energy) supported
- * devices can know this device's existence. And one of them can make a connection request,
- * if it is allowed.
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] adv_params The parameters of advertising \n
- * If NULL is passed, default values which are defined in driver / controller are used.
- * @param[in] cb The callback to report the result of this function
- * @param[in] user_data The user data to be passed when callback is called
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post This function invokes bt_adapter_le_advertising_state_changed_cb().
- *
- * @see bt_adapter_le_stop_advertising()
- * @see bt_adapter_le_advertising_state_changed_cb()
- */
-int bt_adapter_le_start_advertising(bt_advertiser_h advertiser, bt_adapter_le_advertising_params_s *adv_params,
- bt_adapter_le_advertising_state_changed_cb cb, void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Stops the advertising.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] advertiser The handle of advertiser
- *
- * @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_NOT_IN_PROGRESS Operation is not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The advertising must be going on with bt_adapter_le_start_advertising_new().
- * @post This function invokes bt_adapter_le_advertising_state_changed_cb().
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_advertising_state_changed_cb()
- */
-int bt_adapter_le_stop_advertising(bt_advertiser_h advertiser);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Start advertising with passed advertiser and advertising parameters.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details Once Bluetooth advertising is started, nearby Bluetooth LE(Low Energy) supported
- * devices can know this device's existence. And one of them can make a connection request,
- * if it is allowed.
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] cb The callback to report the result of this function
- * @param[in] user_data The user data to be passed when callback is called
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post This function invokes bt_adapter_le_advertising_state_changed_cb().
- *
- * @see bt_adapter_le_stop_advertising()
- * @see bt_adapter_le_advertising_state_changed_cb()
- */
-int bt_adapter_le_start_advertising_new(bt_advertiser_h advertiser, bt_adapter_le_advertising_state_changed_cb cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set advertising mode to control the advertising power and latency.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] mode The mode of advertising
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_start_advertising_new()
- */
-int bt_adapter_le_set_advertising_mode(bt_advertiser_h advertiser, bt_adapter_le_advertising_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set whether the advertising type should be connectable or non-connectable
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] connectable The type of advertising
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_start_advertising_new()
- */
-int bt_adapter_le_set_advertising_connectable(bt_advertiser_h advertiser, bool connectable);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Sets Bluetooth LE scan mode
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] scan_mode The scan mode
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_ENABLED Adapter is not enabled
- * @retval #BT_ERROR_INVALID_PARAM Parameter is invalid
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The state of local bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_le_set_scan_mode(bt_adapter_le_scan_mode_e scan_mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Creates a bond with a remote Bluetooth device, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks A bond can be destroyed by bt_device_destroy_bond().\n
- * The bonding request can be cancelled by bt_device_cancel_bonding().
- *
- * @param[in] remote_address The address of the remote Bluetooth device with which the bond should be created
- *
- * @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_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
- * @post This function invokes bt_device_bond_created_cb().
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_device_bond_created_cb()
- * @see bt_device_cancel_bonding()
- * @see bt_device_destroy_bond()
- * @see bt_device_set_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-int bt_device_create_bond(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Cancels the bonding process.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks Use this function when the remote Bluetooth device is not responding to the
- * bond request or you wish to cancel the bonding request.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The creating a bond must be in progress by bt_device_create_bond().
- *
- * @see bt_device_create_bond()
- * @see bt_device_bond_created_cb()
- * @see bt_device_set_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-int bt_device_cancel_bonding(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Destroys the bond, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The address of the remote Bluetooth device to remove bonding
- *
- * @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_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- * @post This function invokes bt_device_bond_destroyed_cb().
- *
- * @see bt_device_create_bond()
- * @see bt_device_bond_destroyed_cb()
- * @see bt_device_set_bond_destroyed_cb()
- * @see bt_device_unset_bond_destroyed_cb()
- */
-int bt_device_destroy_bond(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Sets an alias for the bonded device.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] alias The alias of the remote Bluetooth device
- *
- * @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_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- *
- * @see bt_device_create_bond()
- */
-int bt_device_set_alias(const char *remote_address, const char *alias);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Sets the authorization of a bonded device, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks Once a device is authorized, you don't need to receive a confirmation.
- *
- * @param[in] remote_address The address of the remote Bluetooth device to authorize
- * @param[in] authorization_state The Bluetooth authorization state
- *
- * @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_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- * @post bt_device_authorization_changed_cb() will be invoked.
- *
- * @see bt_device_create_bond()
- * @see bt_device_authorization_changed_cb()
- * @see bt_device_set_authorization_changed_cb()
- * @see bt_device_unset_authorization_changed_cb()
- */
-int bt_device_set_authorization(const char *remote_address, bt_device_authorization_e authorization_state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Starts the search for services supported by the specified device, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks If creating a bond succeeds, which means bt_device_bond_created_cb() is called with result #BT_ERROR_NONE,
- * then you don't need to run this function.\n
- * The service search takes a couple of seconds to complete normally. \n
- *
- * @param[in] remote_address The address of the remote Bluetooth device whose services need to be checked
- *
- * @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_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_SERVICE_SEARCH_FAILED Service search failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- * @post This function invokes bt_device_service_searched_cb().
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_device_create_bond()
- * @see bt_device_bond_created_cb()
- * @see bt_device_service_searched_cb()
- * @see bt_device_set_service_searched_cb()
- * @see bt_device_unset_service_searched_cb()
- */
-int bt_device_start_service_search(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets the connected profiles.
- * @since_tizen 2.3
- * @param[in] remote_address The address of the remote device
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_device_connected_profile() will be invoked.
- * @see bt_device_connected_profile()
- */
-int bt_device_foreach_connected_profiles(const char *remote_address, bt_device_connected_profile callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets the profile connected status.
- * @since_tizen 2.3
- * @param[in] remote_address The address of the remote device
- * @param[in] bt_profile wish to know bt_profile
- * @param[out] connected_status the connected status
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_device_is_profile_connected(const char *remote_address, bt_profile_e bt_profile,
- bool *connected_status);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Updates a LE connection mode
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] mode The LE connection mode
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_update_le_connection_mode(const char *remote_address, bt_device_le_connection_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the bond creates.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_bond_created_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-int bt_device_set_bond_created_cb(bt_device_bond_created_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_bond_created_cb()
- */
-int bt_device_unset_bond_created_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the bond destroys.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_bond_destroyed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_bond_destroyed_cb()
- * @see bt_device_unset_bond_destroyed_cb()
- */
-int bt_device_set_bond_destroyed_cb(bt_device_bond_destroyed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_bond_destroyed_cb()
- */
-int bt_device_unset_bond_destroyed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the authorization of device changes.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_authorization_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_authorization_changed_cb()
- * @see bt_device_set_authorization_changed_cb()
- * @see bt_device_unset_authorization_changed_cb()
- */
-int bt_device_set_authorization_changed_cb(bt_device_authorization_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_authorization_changed_cb()
- */
-int bt_device_unset_authorization_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the process of service search finishes.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_service_searched_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_service_searched_cb()
- * @see bt_device_unset_service_searched_cb()
- */
-int bt_device_set_service_searched_cb(bt_device_service_searched_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_service_searched_cb()
- */
-int bt_device_unset_service_searched_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the connection state is changed.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_connection_state_changed_cb()
- * @see bt_device_unset_connection_state_changed_cb()
- */
-int bt_device_set_connection_state_changed_cb(bt_device_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function to be invoked when the connection state is changed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_connection_state_changed_cb()
- */
-int bt_device_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Registers a rfcomm server socket with a specific UUID.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks A socket can be destroyed by bt_socket_destroy_rfcomm().
- *
- * @param[in] service_uuid The UUID of service to provide
- * @param[out] socket_fd The file descriptor of socket to listen
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_socket_listen_and_accept_rfcomm()
- * @see bt_socket_destroy_rfcomm()
- */
-int bt_socket_create_rfcomm(const char *service_uuid, int *socket_fd);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Removes the rfcomm server socket which was created using bt_socket_create_rfcomm().
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
- * then bt_socket_connection_state_changed_cb() will be called when this function is finished successfully.
- *
- * @param[in] socket_fd The file descriptor of socket (which was created using bt_socket_create_rfcomm()) to destroy
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm().
- * @post If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
- * then bt_socket_connection_state_changed_cb() will be called.
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_destroy_rfcomm(int socket_fd);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Starts listening on passed rfcomm socket and accepts connection requests.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @details Pop-up is shown automatically when a RFCOMM connection is requested.
- * bt_socket_connection_state_changed_cb() will be called with
- * #BT_SOCKET_CONNECTED if you click "yes" and connection is finished successfully.
- * @param[in] socket_fd The file descriptor of socket on which start to listen
- * @param[in] max_pending_connections The maximum number of pending connections
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm().
- * @post If callback function bt_socket_connection_state_changed_cb() is set,
- * then bt_socket_connection_state_changed_cb() will be called when the remote Bluetooth device is connected.
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_listen_and_accept_rfcomm(int socket_fd, int max_pending_connections);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Connects to a specific RFCOMM based service on a remote Bluetooth device UUID, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks A connection can be disconnected by bt_socket_disconnect_rfcomm().
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] service_uuid The UUID of service provided by the remote Bluetooth device
- *
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- * @post This function invokes bt_socket_connection_state_changed_cb().
- *
- * @see bt_device_create_bond()
- * @see bt_adapter_start_device_discovery()
- * @see bt_device_start_service_search()
- * @see bt_socket_disconnect_rfcomm()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_connect_rfcomm(const char *remote_address, const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Disconnects the RFCOMM connection with the given file descriptor of connected socket.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] socket_fd The file descriptor of socket to close which was received using bt_socket_connection_state_changed_cb().
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The connection must be established.
- *
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_disconnect_rfcomm(int socket_fd);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Sends data to the connected device.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remark The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
- *
- * @param[in] socket_fd The file descriptor of connected socket which was received using bt_socket_connection_state_changed_cb()
- * @param[in] data The data to be sent
- * @param[in] length The length of data to be sent
- *
- * @return the number of bytes written (zero indicates nothing was written).
- * @retval On error, -1 is returned, and errno is set appropriately. See write 2 man page.
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @exception BT_ERROR_PERMISSION_DENIED Permission denied
- * @exception BT_ERROR_AGAIN Resource temporarily unavailable
- *
- * @pre The connection must be established.
- *
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_send_data(int socket_fd, const char *data, int length);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Register a callback function that will be invoked when you receive data.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_socket_data_received_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_socket_data_received_cb()
- * @see bt_socket_set_data_received_cb()
- * @see bt_socket_unset_data_received_cb()
- */
-int bt_socket_set_data_received_cb(bt_socket_data_received_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_socket_data_received_cb()
- * @see bt_socket_set_data_received_cb()
- */
-int bt_socket_unset_data_received_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Register a callback function that will be invoked when a RFCOMM connection is requested.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_socket_connection_requested_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_socket_unset_connection_requested_cb()
- */
-int bt_socket_set_connection_requested_cb(bt_socket_connection_requested_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_socket_set_connection_requested_cb()
- * @see bt_socket_connection_requested_cb()
- */
-int bt_socket_unset_connection_requested_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Register a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_socket_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_set_connection_state_changed_cb(bt_socket_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- */
-int bt_socket_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Initializes the Bluetooth OPP server requested by bt_opp_server_connection_requested_cb().
- * @since_tizen 2.3
- * @details No popup appears when an OPP connection is requested from a remote device.
- * Instead, @a connection_requested_cb() will be called.
- * At that time, you can call either bt_opp_server_accept() or bt_opp_server_reject().
- * @remarks This function must be called to start Bluetooth OPP server. \n
- * You must free all resources of the Bluetooth service by calling bt_opp_server_deinitialize() if Bluetooth OPP service is no longer needed.
- * @param[in] destination The destination path
- * @param[in] connection_requested_cb The callback called when an OPP connection is requested
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_connection_requested_cb()
- * @see bt_opp_server_deinitialize()
- * @see bt_opp_server_accept()
- * @see bt_opp_server_reject()
- */
-int bt_opp_server_initialize_by_connection_request(const char *destination, bt_opp_server_connection_requested_cb connection_requested_cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Deinitializes the Bluetooth OPP server.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_deinitialize()
- */
-int bt_opp_server_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Accepts the push request from the remote device.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks If you initialize OPP server by bt_opp_server_initialize_by_connection_request(), then name is ignored.
- * You can cancel the pushes by bt_opp_server_cancel_transfer() with transfer_id.
- * @param[in] progress_cb The callback called when a file is being transferred
- * @param[in] finished_cb The callback called when a transfer is finished
- * @param[in] name The name to store. This can be NULL if you initialize OPP server by bt_opp_server_initialize_by_connection_request().
- * @param[in] user_data The user data to be passed to the callback function
- * @param[out] transfer_id The ID of transfer
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_reject()
- */
-int bt_opp_server_accept(bt_opp_server_transfer_progress_cb progress_cb,
- bt_opp_server_transfer_finished_cb finished_cb, const char *name,
- void *user_data, int *transfer_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Rejects the push request from the remote device.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_accept()
- */
-int bt_opp_server_reject(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Cancels the transfer.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] transfer_id The ID of transfer
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_accept()
- */
-int bt_opp_server_cancel_transfer(int transfer_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Sets the destination path of file to be pushed.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] destination The destination path of file to be pushed
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_opp_server_set_destination(const char *destination);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Initializes the Bluetooth OPP client.
- * @since_tizen 2.3
- * @remarks This function must be called before Bluetooth OPP client starts. \n
- * You must free all resources of the Bluetooth service by calling bt_opp_client_deinitialize()
- * if Bluetooth OPP service is no longer needed.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_deinitialize()
- */
-int bt_opp_client_initialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Deinitializes the Bluetooth OPP client.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_initialize()
- */
-int bt_opp_client_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Adds file to be pushed.
- * @since_tizen 2.3
- * @param[in] file The path of file to be pushed
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_clear_files()
- * @see bt_opp_client_push_files()
- */
-int bt_opp_client_add_file(const char *file);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Adds file to be pushed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_add_file()
- * @see bt_opp_client_push_files()
- */
-int bt_opp_client_clear_files(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Pushes the file to the remote device, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @details At first, bt_opp_client_push_responded_cb() will be called when OPP server responds to the push request.
- * After connection is established, bt_opp_client_push_progress_cb() will be called repeatedly until a file is transferred completely.
- * If you send several files, then bt_opp_client_push_progress_cb() with another file will be called repeatedly until the file is transferred completely.
- * bt_opp_client_push_finished_cb() will be called when the push request is finished.
- * @param[in] remote_address The remote address
- * @param[in] responded_cb The callback called when OPP server responds to the push request
- * @param[in] progress_cb The callback called when each file is being transferred
- * @param[in] finished_cb The callback called when the push request is finished
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_initialize()
- * @see bt_opp_client_cancel_push
- */
-int bt_opp_client_push_files(const char *remote_address, bt_opp_client_push_responded_cb responded_cb,
- bt_opp_client_push_progress_cb progress_cb, bt_opp_client_push_finished_cb finished_cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Cancels the push request in progress, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre bt_opp_client_push_files() must be called.
- * @post bt_opp_client_push_finished_cb() will be invoked with result #BT_ERROR_CANCELLED,
- * which is a parameter of bt_opp_client_push_files().
- * @see bt_opp_client_initialize()
- * @see bt_opp_client_push_files()
- */
-int bt_opp_client_cancel_push(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Initializes the Bluetooth HID(Human Interface Device) Host.
- * @since_tizen 2.3
- * @remarks This function must be called before Bluetooth HID Host starts. \n
- * You must free all resources of the Bluetooth service by calling bt_hid_host_deinitialize()
- * if Bluetooth HID Host service is no longer needed.
- * @param[in] connection_cb The callback called when the connection state is changed
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_hid_host_deinitialize()
- */
-int bt_hid_host_initialize(bt_hid_host_connection_state_changed_cb connection_cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Deinitializes the Bluetooth HID(Human Interface Device) Host.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth HID service must be initialized with bt_hid_host_initialize().
- * @see bt_hid_host_initialize()
- */
-int bt_hid_host_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Connects the remote device with the HID(Human Interface Device) service, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @pre The Bluetooth HID service must be initialized with bt_hid_host_initialize().
- * @post bt_hid_host_connection_state_changed_cb() will be invoked.
- * @see bt_hid_host_disconnect()
- * @see bt_hid_host_connection_state_changed_cb()
- */
-int bt_hid_host_connect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Disconnects the remote device with the HID(Human Interface Device) service, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected by bt_hid_host_connect().
- * @post bt_hid_host_connection_state_changed_cb() will be invoked.
- * @see bt_hid_host_connect()
- * @see bt_hid_host_connection_state_changed_cb()
- */
-int bt_hid_host_disconnect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Initializes the Bluetooth profiles related with audio.
- * @since_tizen 2.3
- * @remarks This function must be called before Bluetooth profiles related with audio starts. \n
- * You must free all resources of the this service by calling bt_audio_deinitialize()
- * if Bluetooth profiles related with audio service is no longer needed.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_audio_deinitialize()
- */
-int bt_audio_initialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Deinitializes the Bluetooth profiles related with audio.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- */
-int bt_audio_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Connects the remote device with the given audio profile, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @details If you input type as #BT_AUDIO_PROFILE_TYPE_ALL and connection request succeeds, then bt_audio_connection_state_changed_cb() will be called twice
- * when #BT_AUDIO_PROFILE_TYPE_HSP_HFP is connected and #BT_AUDIO_PROFILE_TYPE_A2DP is connected.
- * @param[in] remote_address The remote address
- * @param[in] type The type of audio profile
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
-
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @post bt_audio_connection_state_changed_cb() will be invoked.
- * @see bt_audio_disconnect()
- * @see bt_audio_connection_state_changed_cb()
- */
-int bt_audio_connect(const char *remote_address, bt_audio_profile_type_e type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Disconnects the remote device with the given audio profile, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @details If you input type as #BT_AUDIO_PROFILE_TYPE_ALL and disconnection request succeeds, then bt_audio_connection_state_changed_cb() will be called twice
- * when #BT_AUDIO_PROFILE_TYPE_HSP_HFP is disconnected and #BT_AUDIO_PROFILE_TYPE_A2DP is disconnected.
- * @param[in] remote_address The remote address
- * @param[in] type The type of audio profile
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected by bt_audio_connect().
- * @post bt_audio_connection_state_changed_cb() will be invoked.
- * @see bt_audio_connect()
- * @see bt_audio_connection_state_changed_cb()
- */
-int bt_audio_disconnect(const char *remote_address, bt_audio_profile_type_e type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Registers a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_audio_connection_state_changed_cb()
- */
-int bt_audio_set_connection_state_changed_cb(bt_audio_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_audio_connection_state_changed_cb()
- * @see bt_audio_set_connection_state_changed_cb()
- */
-int bt_audio_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Initializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) target service.
- * @since_tizen 2.4
- * @remarks This function must be called before any other AVRCP target functions are called. \n
- * You must free all resources of the this service by calling bt_avrcp_target_deinitialize()
- * if Bluetooth AVRCP service is no longer needed.
- * @param[in] callback The callback function called when the connection state is changed
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_avrcp_target_deinitialize()
- */
-int bt_avrcp_target_initialize(bt_avrcp_target_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Deinitializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) target service.
- * @since_tizen 2.4
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_avrcp_target_initialize().
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the equalizer state to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] state The state of equalizer
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_equalizer_state(bt_avrcp_equalizer_state_e state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the repeat mode to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The repeat mode
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_repeat_mode(bt_avrcp_repeat_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the shuffle mode to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The repeat mode
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_shuffle_mode(bt_avrcp_shuffle_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the scan mode to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The scan mode
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_scan_mode(bt_avrcp_scan_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the player state to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] state The player state
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_player_state(bt_avrcp_player_state_e state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the current position of song to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] position The current position in milliseconds
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_position(unsigned int position);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the track to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] title The title of track
- * @param[in] artist The artist of track
- * @param[in] album The album of track
- * @param[in] genre The genre of track
- * @param[in] track_num The track number
- * @param[in] total_tracks The number of all tracks
- * @param[in] duration The duration of track in milliseconds
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_track(const char *title, const char *artist, const char *album, const char *genre, unsigned int track_num, unsigned int total_tracks, unsigned int duration);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the equalizer state is changed.
- * @since_tizen 2.4
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_equalizer_state_changed_cb()
- */
-int bt_avrcp_set_equalizer_state_changed_cb(bt_avrcp_equalizer_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the equalizer state is changed.
- * @since_tizen 2.4
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_equalizer_state_changed_cb()
- */
-int bt_avrcp_unset_equalizer_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the repeat mode is changed.
- * @since_tizen 2.4
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_repeat_mode_changed_cb()
- */
-int bt_avrcp_set_repeat_mode_changed_cb(bt_avrcp_repeat_mode_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the repeat mode is changed.
- * @since_tizen 2.4
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_repeat_mode_changed_cb()
- */
-int bt_avrcp_unset_repeat_mode_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the shuffle mode is changed.
- * @since_tizen 2.4
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_shuffle_mode_changed_cb()
- */
-int bt_avrcp_set_shuffle_mode_changed_cb(bt_avrcp_shuffle_mode_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the shuffle mode is changed.
- * @since_tizen 2.4
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_shuffle_mode_changed_cb()
- */
-int bt_avrcp_unset_shuffle_mode_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the scan mode is changed.
- * @since_tizen 2.4
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_scan_mode_changed_cb()
- */
-int bt_avrcp_set_scan_mode_changed_cb(bt_avrcp_scan_mode_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the scan mode is changed.
- * @since_tizen 2.4
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_scan_mode_changed_cb()
- */
-int bt_avrcp_unset_scan_mode_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the song position is changed.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_position_changed_cb()
- */
-int bt_avrcp_set_position_changed_cb(bt_avrcp_position_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the song position is changed.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_position_changed_cb()
- */
-int bt_avrcp_unset_position_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the Play status is changed.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_play_status_changed_cb()
- */
-int bt_avrcp_set_play_status_changed_cb(bt_avrcp_play_status_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the Play status is changed.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_play_status_changed_cb()
- */
-int bt_avrcp_unset_play_status_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the track metadata is changed.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_track_info_changed_cb()
- */
-int bt_avrcp_set_track_info_changed_cb(bt_avrcp_track_info_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the track metadata is changed.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_track_info_changed_cb()
- */
-int bt_avrcp_unset_track_info_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Initializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) controller service.
- * @since_tizen 3.0
- * @remarks This function must be called before any other AVRCP controller functions are called. \n
- * You must free all resources of the this service by calling bt_avrcp_control_deinitialize()
- * if Bluetooth AVRCP service is no longer needed.
- * @param[in] callback The callback function called when the connection state is changed
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_avrcp_control_deinitialize()
- */
-int bt_avrcp_control_initialize(bt_avrcp_control_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Deinitializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) controller service.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
- * @see bt_avrcp_control_initialize()
- */
-int bt_avrcp_control_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Connects the AVRCP (Audio/Video Remote Control Profile) target device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
- * @see bt_avrcp_control_initialize()
- */
-int bt_avrcp_control_connect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Disconnects from the AVRCP (Audio/Video Remote Control Profile) target device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_control_connect()
- */
-int bt_avrcp_control_disconnect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends a command to the target device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] cmd The commands, one of: Play, Pause, Next, Rewind.
- * @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 Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_control_connect()
- */
-int bt_avrcp_control_send_player_command(bt_avrcp_player_command_e cmd);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends the equalizer state change request to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] state The new equalizer state, one of: ON, OFF
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_set_equalizer_state(bt_avrcp_equalizer_state_e state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the the equalizer state of the remote device.
- * @since_tizen 3.0
- * @param[out] state The equalizer state, one of: ON, OFF
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_equalizer_state(bt_avrcp_equalizer_state_e *state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends the repeat change request to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The new repeat mode, one of: OFF, SINGLE, ALL
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_set_repeat_mode(bt_avrcp_repeat_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the repeat state of the remote device.
- * @since_tizen 3.0
- * @param[out] mode The repeat mode, one of: OFF, SINGLE, ALL
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_repeat_mode(bt_avrcp_repeat_mode_e *mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends the shuffle mode change request to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The new shuffle mode, one of: OFF, GROUP, ALL
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_set_shuffle_mode(bt_avrcp_shuffle_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the shuffle mode of the remote device.
- * @since_tizen 3.0
- * @param[out] mode The shuffle mode, one of: OFF, GROUP, ALL
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_shuffle_mode(bt_avrcp_shuffle_mode_e *mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends the scan mode change request to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The new scan mode, one of: OFF, GROUP, ALL
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_set_scan_mode(bt_avrcp_scan_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the scan mode of the remote device.
- * @since_tizen 3.0
- * @param[out] mode The scan mode, one of: OFF, GROUP, ALL
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_scan_mode(bt_avrcp_scan_mode_e *mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the position of the song played by the remote device.
- * @since_tizen 3.0
- * @param[out] position The position, in milliseconds
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_position(unsigned int *position);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the play status of the remote device.
- * @since_tizen 3.0
- * @param[out] status The play status, one of: PLAYING, STOPPED...
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_play_status(bt_avrcp_player_state_e *status);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the metadata of the track played by the remote device.
- * @since_tizen 3.0
- * @remarks The @a track must be released using bt_avrcp_control_free_track_info()
- * @param[out] track The track metadata.
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_track_info(bt_avrcp_metadata_attributes_info_s **track);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Frees the track metadata.
- * @since_tizen 3.0
- * @param[in] track The track metadata.
- * @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_SUPPORTED Not supported
- * @pre track should point to valid metadata address.
- * @see bt_avrcp_control_get_track_info()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_free_track_info(bt_avrcp_metadata_attributes_info_s *track);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Registers an application that acts as the @a Sink role of HDP(Health Device Profile).
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks The @a app_id must be released with free() by you.
- * @param[in] data_type The data type of MDEP. This value is defined in ISO/IEEE 11073-20601 spec.
- * For example, pulse oximeter is 0x1004 and blood pressure monitor is 0x1007.
- * @param[out] app_id The ID of application
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_hdp_unregister_sink_app()
- */
-int bt_hdp_register_sink_app(unsigned short data_type, char **app_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Unregisters the given application that acts as the @a Sink role of HDP(Health Device Profile).
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] app_id The ID of application
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_hdp_register_sink_app()
- */
-int bt_hdp_unregister_sink_app(const char *app_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Connects the remote device which acts as @a Source role, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @param[in] app_id The ID of application
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Sink role of HDP must be registered with bt_hdp_register_sink_app().
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @post bt_hdp_connected_cb() will be invoked.
- * @see bt_hdp_disconnect()
- * @see bt_hdp_set_connection_state_changed_cb()
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-int bt_hdp_connect_to_source(const char *remote_address, const char *app_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Disconnects the remote device, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @param[in] channel The connected data channel
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @post bt_hdp_disconnected_cb() will be invoked.
- * @see bt_hdp_set_connection_state_changed_cb()
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-int bt_hdp_disconnect(const char *remote_address, unsigned int channel);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Sends the data to the remote device.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] channel The connected data channel
- * @param[in] data The data to send
- * @param[in] size The size of data to send (byte)
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_hdp_data_received_cb()
- * @see bt_hdp_set_data_received_cb()
- * @see bt_hdp_unset_data_received_cb()
- */
-int bt_hdp_send_data(unsigned int channel, const char *data, unsigned int size);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Registers a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3
- * @param[in] connected_cb The callback function called when a connection is established
- * @param[in] disconnected_cb The callback function called when a connection is disconnected
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-int bt_hdp_set_connection_state_changed_cb(bt_hdp_connected_cb connected_cb, bt_hdp_disconnected_cb disconnected_cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hdp_set_connection_state_changed_cb()
- */
-int bt_hdp_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Registers a callback function that will be invoked when you receive the data.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hdp_unset_data_received_cb()
- */
-int bt_hdp_set_data_received_cb(bt_hdp_data_received_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Unregisters a callback function that will be invoked when you receive the data.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hdp_set_data_received_cb()
- */
-int bt_hdp_unset_data_received_cb(void);
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_foreach_services or bt_gatt_client_get_service instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the primary services of GATT(Generic Attribute Profile).
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The address of the remote device
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post @a callback will be called if there are primary services.
- * @see bt_gatt_primary_service_cb()
- */
-int bt_gatt_foreach_primary_services(const char *remote_address, bt_gatt_primary_service_cb callback, void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. This function call is not required because characteristic discovery is happened automatically.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Discovers the characteristics in service, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] service The attribute handle of service
- * @param[in] callback The result callback
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post @a callback will be called.
- * @see bt_gatt_characteristics_discovered_cb()
- */
-int bt_gatt_discover_characteristics(bt_gatt_attribute_h service, bt_gatt_characteristics_discovered_cb callback, void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_get_uuid instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the UUID of service.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks @a uuid must be released with free() by you.
- * @param[in] service The attribute handle of service
- * @param[out] uuid The UUID of service
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_gatt_get_service_uuid(bt_gatt_attribute_h service, char **uuid) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_service_foreach_included_services or bt_gatt_service_get_included_service instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the included services in service.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] service The attribute handle of service
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post @a callback will be called if there are included services.
- * @see bt_gatt_included_service_cb()
- */
-int bt_gatt_foreach_included_services(bt_gatt_attribute_h service, bt_gatt_included_service_cb callback, void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_set_characteristic_value_changed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Registers a callback function that will be invoked when a characteristic value is changed.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_gatt_unset_characteristic_changed_cb()
- */
-int bt_gatt_set_characteristic_changed_cb(bt_gatt_characteristic_changed_cb callback, void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_unset_characteristic_value_changed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Unregisters a callback function that will be invoked when a characteristic is changed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_gatt_set_characteristic_changed_cb()
- */
-int bt_gatt_unset_characteristic_changed_cb(void) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_set_characteristic_value_changed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Watches all the characteristic value changes of the service.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] service The attribute handle of service
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_gatt_unset_characteristic_changed_cb()
- */
-int bt_gatt_watch_characteristic_changes(bt_gatt_attribute_h service) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_unset_characteristic_value_changed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Remove watching of all the characteristic value changes of the service.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] service The attribute handle of service
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_gatt_set_characteristic_changed_cb()
- */
-int bt_gatt_unwatch_characteristic_changes(bt_gatt_attribute_h service) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_get_value or bt_gatt_get_uuid after bt_gatt_client_read_value instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the characteristic declaration.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks @a uuid and @a value must be released with free() by you.
- * @param[in] characteristic The attribute handle of characteristic
- * @param[out] uuid The UUID of service
- * @param[out] value The value of characteristic (byte array)
- * @param[out] value_length The length of value
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_set_characteristic_value()
- */
-int bt_gatt_get_characteristic_declaration(bt_gatt_attribute_h characteristic, char **uuid, unsigned char **value, int *value_length) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_set_value and bt_gatt_client_write_value instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Sets the value of characteristic.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] characteristic The attribute handle of characteristic
- * @param[in] value The value of characteristic (byte array)
- * @param[in] value_length The length of value
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_get_characteristic_declaration()
- */
-int bt_gatt_set_characteristic_value(bt_gatt_attribute_h characteristic, const unsigned char *value, int value_length) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_set_value and bt_gatt_client_write_value instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Sets the value of characteristic request.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] characteristic The attribute handle of characteristic
- * @param[in] value The value of characteristic (byte array)
- * @param[in] value_length The length of value
- * @param[in] callback The result callback
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_get_characteristic_declaration()
- */
-int bt_gatt_set_characteristic_value_request(bt_gatt_attribute_h characteristic, const unsigned char *value,
- int value_length, bt_gatt_characteristic_write_cb callback) TIZEN_DEPRECATED_API;
-
-/**
-* @deprecated Deprecated since 2.3.1. GATT handle clone is not allowed. Instead, all handles for client role must be got from GATT client handle.
-* @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
-* @brief Clones the attribute handle.
-* @since_tizen 2.3
-* @remarks @a clone must be released with bt_gatt_destroy_attribute_handle().
-* @param[out] clone The cloned attribute handle
-* @param[in] origin The origin attribute handle
-* @return 0 on success, otherwise negative error value.
-* @retval #BT_ERROR_NONE Successful
-* @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
-* @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
-* @retval #BT_ERROR_NOT_SUPPORTED Not supported
-*
-* @see bt_gatt_destroy_attribute_handle()
-*/
-int bt_gatt_clone_attribute_handle(bt_gatt_attribute_h *clone, bt_gatt_attribute_h origin) TIZEN_DEPRECATED_API;
-
-/**
-* @deprecated Deprecated since 2.3.1. GATT handle clone and destroy are not allowed.
-* @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
-* @brief Destroys the attribute handle.
-* @since_tizen 2.3
-* @param[in] handle The attribute handle
-* @return 0 on success, otherwise negative error value.
-* @retval #BT_ERROR_NONE Successful
-* @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
-* @retval #BT_ERROR_NOT_SUPPORTED Not supported
-*
-* @see bt_gatt_clone_attribute_handle()
-*/
-int bt_gatt_destroy_attribute_handle(bt_gatt_attribute_h handle) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use gatt_client_read_value instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Reads the value of characteristic from remote device.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] char_handle The attribute handle of characteristic
- * @param[in] callback The result callback
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_get_characteristic_declaration()
- */
-int bt_gatt_read_characteristic_value(bt_gatt_attribute_h char_handle,
- bt_gatt_characteristic_read_cb callback) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. This function call is not required because descriptor discovery is happened automatically.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Discovers the characteristic descriptors of a characteristic within its definition, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] characteristic_handle The attribute handle of characteristic
- * @param[in] callback The result callback
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post @a callback will be called.
- * @see bt_gatt_characteristic_descriptor_discovered_cb()
- */
-int bt_gatt_discover_characteristic_descriptor(bt_gatt_attribute_h characteristic_handle,
- bt_gatt_characteristic_descriptor_discovered_cb callback,
- void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the value of a characteristic or descriptor's GATT handle.
- * @since_tizen 2.3.1
- *
- * @remarks @a value must be released using free(). \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_read_value() must be used prior to this function \n
- * in order to get the remote device's current value.
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[out] value The value of @a gatt_handle. It is a byte stream type.
- * @param[out] value_length The length of @a value
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_value(bt_gatt_h gatt_handle, char **value, int *value_length);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the value of a characteristic or descriptor's GATT handle as an integer type.
- * @since_tizen 2.3.1
- *
- * @remarks This function returns a locally saved value in @a gatt_handle. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_read_value() must be used prior to this function \n
- * in order to get the remote device's current value.
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] type The type of a saved value in @a gatt_handle
- * @param[in] offset The offset from where a value will be read from @a gatt_handle as an integer type
- * @param[out] value The integer type's value of @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_int_value(bt_gatt_h gatt_handle, bt_data_type_int_e type,
- int offset, int *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the value of a characteristic or descriptor's GATT handle as a float type.
- * @since_tizen 2.3.1
- *
- * @remarks This function returns a locally saved value in @a gatt_handle. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_read_value() must be used prior to this function \n
- * in order to get the remote device's current value.
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] type The type of a saved value in @a gatt_handle
- * @param[in] offset The offset from where a value will be read from @a gatt_handle as an integer type
- * @param[out] value The float type's value of @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_float_value(bt_gatt_h gatt_handle, bt_data_type_float_e type,
- int offset, float *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Updates the value of a characteristic or descriptor's GATT handle.
- * @since_tizen 2.3.1
- *
- * @remarks This function updates a value of @a gatt_handle locally. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_write_value() can be used after this function \n
- * in order to update the remote device's value. \n
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] value The value to be updated
- * @param[in] value_length The length of @a value
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_set_value(bt_gatt_h gatt_handle, const char *value, int value_length);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Updates the value of a characteristic or descriptor's GATT handle using a integer type's value.
- * @since_tizen 2.3.1
- *
- * @remarks This function updates a value of @a gatt_handle locally. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_write_value() can be used after this function \n
- * in order to update the remote device's value. \n
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] type @a value will be saved in @a gatt_handle as this type
- * @param[in] value The integer type's value to be updated
- * @param[in] offset The offset from where @a value will be saved in @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_set_int_value(bt_gatt_h gatt_handle, bt_data_type_int_e type,
- int value, int offset);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Updates the value of a characteristic or descriptor's GATT handle using a float type's value.
- * @since_tizen 2.3.1
- *
- * @remarks This function updates a value of @a gatt_handle locally. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_write_value() can be used after this function \n
- * in order to update the remote device's value. \n
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] type @a mantissa and @a exponent will be saved in @a gatt_handle as this type
- * @param[in] mantissa The mantissa of float type's value to be updated
- * @param[in] exponent The exponent of float type's value to be updated
- * @param[in] offset The offset from where @a mantissa and @a exponent will be saved in @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_set_float_value(bt_gatt_h gatt_handle, bt_data_type_float_e type,
- int mantissa, int exponent, int offset);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the UUID of a service, characteristic or descriptor's GATT handle.
- * @since_tizen 2.3.1
- *
- * @remarks @a uuid must be released using free(). \n
- * 16-bit UUID or 128-bit UUID is supported. (e.g. 2A19, 00002A19-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] gatt_handle The handle of a service, characteristic or descriptor
- * @param[out] uuid The string of the UUID of @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_uuid(bt_gatt_h gatt_handle, char **uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the type of GATT handle.
- * @since_tizen 2.3.1
- *
- * @param[in] gatt_handle The GATT handle
- * @param[out] gatt_type The type of @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_type(bt_gatt_h gatt_handle, bt_gatt_type_e *gatt_type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the GATT client handle which the specified service belongs to.
- * @since_tizen 2.3.1
- *
- * @remark This function doesn't allocate new memory for GATT client handle.
- * The returned GATT client handle is the same one which was got from bt_gatt_client_create().
- * So if it is destroyed by bt_gatt_client_destroy(), all related GATT handles are freed also.
- *
- * @param[in] service The service's GATT handle
- * @param[out] client The GATT client handle which @a service belongs to
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- */
-int bt_gatt_service_get_client(bt_gatt_h service, bt_gatt_client_h *client);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets a characteristic's GATT handle which has specific UUID.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- * If there are multiple characteristics which have same UUID, only the first matched one will be returned.
- *
- * @param[in] service The service's GATT handle
- * @param[in] uuid The characteristic's GATT handle which has this UUID will be returned if it exists
- * @param[out] characteristic The characteristic's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_service_get_characteristic(bt_gatt_h service, const char *uuid,
- bt_gatt_h *characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Invokes @a callback function on each characteristic that belongs to the specified service.
- * @since_tizen 2.3.1
- *
- * @param[in] service The service's GATT handle
- * @param[in] callback The function to be invoked on each characteristic
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_service_foreach_characteristics(bt_gatt_h service,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets an included service's GATT handle which has specific UUID.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- * If there are multiple included services which have same UUID, only the first matched one will be returned.
- *
- * @param[in] service The service's GATT handle
- * @param[in] uuid The included service's GATT handle which has this UUID will be returned if it exists
- * @param[out] included_service The included service's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_service_get_included_service(bt_gatt_h service, const char *uuid,
- bt_gatt_h *included_service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Invokes @a callback function on each included service that belongs to the specified service.
- * @since_tizen 2.3.1
- *
- * @param[in] service The service's GATT handle
- * @param[in] callback The function to be invoked on each included service
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_service_foreach_included_services(bt_gatt_h service,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the service's GATT handle which the specified characteristic belongs to.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[out] service The service's GATT handle which @a characteristic belongs to
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_characteristic_get_service(bt_gatt_h characteristic, bt_gatt_h *service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the properties which a characteristic's GATT handle has.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[out] properties The properties which a characteristic's GATT handle has
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_property_e
- */
-int bt_gatt_characteristic_get_properties(bt_gatt_h characteristic, int *properties);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the write type of the specified characteristic.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[out] write_type The write type of the specified characteristic
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_write_type_e
- */
-int bt_gatt_characteristic_get_write_type(bt_gatt_h characteristic,
- bt_gatt_write_type_e *write_type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Updates the write type of the specified characteristic.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] write_type The write type to be updated
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_write_value()
- * @see bt_gatt_write_type_e
- */
-int bt_gatt_characteristic_set_write_type(bt_gatt_h characteristic,
- bt_gatt_write_type_e write_type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets a descriptor's GATT handle which has specific UUID.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- * If there are multiple descriptors which have same UUID, only the first matched one will be returned.
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] uuid The descriptor's GATT handle which has this UUID will be returned if it exists
- * @param[out] descriptor The descriptor's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_characteristic_get_descriptor(bt_gatt_h characteristic, const char *uuid,
- bt_gatt_h *descriptor);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Invokes @a callback function on each descriptor that belongs to the specified characteristic.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] callback The function to be invoked on each descriptor
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_characteristic_foreach_descriptors(bt_gatt_h characteristic,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the characteristic's GATT handle which the specified descriptor belongs to.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- *
- * @param[in] descriptor The descriptor's GATT handle
- * @param[out] characteristic The characteristic's GATT handle which @a descriptor belongs to
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_descriptor_get_characteristic(bt_gatt_h descriptor, bt_gatt_h *characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Creates the GATT client handle.
- * @since_tizen 2.3.1
- *
- * @remark The GATT client handle must be freed by bt_gatt_client_destroy() after use
- *
- * @param[in] remote_address The address of the remote device
- * @param[out] client The created GATT client's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_destroy()
- */
-int bt_gatt_client_create(const char *remote_address, bt_gatt_client_h *client);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Destroys the GATT client's handle.
- * @since_tizen 2.3.1
- *
- * @remark All related service, characteristic and descriptor's GATT handles are freed also
- *
- * @param[in] client The GATT client's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- */
-int bt_gatt_client_destroy(bt_gatt_client_h client);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the address of remote device.
- * @since_tizen 2.3.1
- *
- * @param[in] client The created GATT client's handle
- * @param[out] remote_address The address of the remote device which is associated with @a client
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- */
-int bt_gatt_client_get_remote_address(bt_gatt_client_h client,
- char **remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Reads the value of a characteristic or descriptor from the remote device asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
- * @param[in] callback When a read request is completed, this callback function will be called
- * @param[in] user_data The user data to be passed to @a callback function
- * @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_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- * @see bt_gatt_client_request_completed_cb()
- */
-int bt_gatt_client_read_value(bt_gatt_h gatt_handle,
- bt_gatt_client_request_completed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Writes the value of a characteristic or descriptor to the remote device asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
- * @param[in] callback When a write request is completed, this callback function will be called
- * @param[in] user_data The user data to be passed to @a callback function
- * @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_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- * @see bt_gatt_characteristic_set_write_type()
- * @see bt_gatt_set_value()
- * @see bt_gatt_set_int_value()
- * @see bt_gatt_set_float_value()
- * @see bt_gatt_client_request_completed_cb()
- */
-int bt_gatt_client_write_value(bt_gatt_h gatt_handle,
- bt_gatt_client_request_completed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Registers a callback function to be invoked when the characteristic value is changed on the remote device.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] callback The callback to be invoked when the value is changed and it is informed
- * @param[in] user_data The user data to be passed to @a callback function
- * @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_SUPPORTED Not supported
- *
- * @see bt_gatt_client_characteristic_value_changed_cb()
- * @see bt_gatt_client_unset_characteristic_value_change()
- */
-int bt_gatt_client_set_characteristic_value_changed_cb(bt_gatt_h characteristic,
- bt_gatt_client_characteristic_value_changed_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Unregisters a callback function to be invoked when the characteristic value is changed on the remote device.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle, whose value change will not be informed
- * @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_SUPPORTED Not supported
- *
- * @see bt_gatt_client_set_characteristic_value_changed_cb()
- */
-int bt_gatt_client_unset_characteristic_value_changed_cb(bt_gatt_h characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets a service's GATT handle which has specific UUID.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- * If there are multiple services which have same UUID, only the first matched one will be returned.
- *
- * @param[in] client The GATT client's handle
- * @param[in] uuid The service's GATT handle which has this UUID will be returned if it exists
- * @param[out] service The service's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_client_get_service(bt_gatt_client_h client, const char *uuid,
- bt_gatt_h *service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Invokes @a callback function on each service that belongs to the specified GATT client.
- * @since_tizen 2.3.1
- *
- * @param[in] client The GATT client's handle
- * @param[in] callback The function to be invoked on each service
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_client_foreach_services(bt_gatt_client_h client,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Registers a callback function to be invoked when service is changed from a remote device(GATT server).
- * @since_tizen 3.0
- *
- * @param[in] client The GATT client's handle
- * @param[in] callback The callback to be invoked
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_unset_service_changed_cb()
- */
-int bt_gatt_client_set_service_changed_cb(bt_gatt_client_h client,
- bt_gatt_client_service_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Unregisters a callback function
- * @since_tizen 3.0
- *
- * @param[in] client The GATT client's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_set_service_changed_cb()
- */
-int bt_gatt_client_unset_service_changed_cb(bt_gatt_client_h client);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Connect to a specific LE based service on a remote bluetooth device address, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks A connection can be disconnected by bt_gatt_disconnect().
- *
- * @param[in] address The address of the remote Bluetooth device.
- * @param[in] auto_connect The flag of the auto connection.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @pre The remote device must support le connection.
- * @post This function invokes bt_gatt_connection_state_changed_cb().
- *
- * @see bt_initialize()
- * @see bt_gatt_disconnect()
- * @see bt_gatt_set_connection_state_changed_cb()
- * @see bt_gatt_unset_connection_state_changed_cb()
- * @see bt_gatt_connection_state_changed_cb()
- */
-int bt_gatt_connect(const char *address, bool auto_connect);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Disconnect to LE connection with the given remote Bluetooth device address, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] address The address of the remote Bluetooth device
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The connection must be established.
- * @post This function invokes bt_gatt_connection_state_changed_cb().
- *
- * @see bt_initialize()
- * @see bt_gatt_connect()
- * @see bt_gatt_set_connection_state_changed_cb()
- * @see bt_gatt_unset_connection_state_changed_cb()
- * @see bt_gatt_connection_state_changed_cb()
- */
-int bt_gatt_disconnect(const char *address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Registers a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to register.
- * @param[in] user_data The user data to be passed to the callback function.
- *
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_connect()
- * @see bt_gatt_disconnect()
- * @see bt_gatt_unset_connection_state_changed_cb()
- */
-int bt_gatt_set_connection_state_changed_cb(bt_gatt_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3
- *
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_connect()
- * @see bt_gatt_disconnect()
- * @see bt_gatt_connection_state_changed_cb()
- */
-int bt_gatt_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Destroys the GATT handle of service.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The handle of service
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_create()
- */
-int bt_gatt_service_destroy(bt_gatt_h gatt_handle);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Destroys the GATT handle of characteristic.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The handle of characteristic
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_create()
- */
-int bt_gatt_characteristic_destroy(bt_gatt_h gatt_handle);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Destroys the GATT handle of descriptor.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The handle of descriptor
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_descriptor_create()
- */
-int bt_gatt_descriptor_destroy(bt_gatt_h gatt_handle);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Gets the permissions which a characteristic's GATT handle has.
- * @since_tizen 3.0
- *
- * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
- *
- * @param[in] gatt_handle The handle of a characteristic
- * @param[out] permissions The permissions which a characteristic's GATT handle has
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_create()
- * @see bt_gatt_permission_e
- */
-int bt_gatt_characteristic_get_permissions(bt_gatt_h gatt_handle, int *permissions);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Gets the permissions which a descriptor's GATT handle has.
- * @since_tizen 3.0
- *
- * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
- *
- * @param[in] gatt_handle The handle of a descriptor
- * @param[out] permissions The permissions which a descriptor's GATT handle has
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_descriptor_create()
- * @see bt_gatt_permission_e
- */
-int bt_gatt_descriptor_get_permissions(bt_gatt_h gatt_handle, int *permissions);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Creates the GATT service.
- * @since_tizen 3.0
- *
- * @remarks The @a service should be destroyed by using bt_gatt_service_destroy()
- *
- * @param[in] uuid The UUID of the service
- * @param[in] type The type of the service
- * @param[out] service The GATT handle of the created service
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_destroy()
- */
-int bt_gatt_service_create(const char *uuid, bt_gatt_service_type_e type,
- bt_gatt_h *service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Adds a characteristic to a specified service.
- * @since_tizen 3.0
- *
- * @param[in] service The service's GATT handle
- * @param[in] characteristic The characteristic's GATT handle to be added
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_create()
- * @see bt_gatt_characteristic_create()
- */
-int bt_gatt_service_add_characteristic(bt_gatt_h service,
- bt_gatt_h characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Adds a service to a specified service as included service.
- * @since_tizen 3.0
- *
- * @param[in] service The service's GATT handle
- * @param[in] included_service The service's GATT handle to be added as included service
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_create()
- */
-int bt_gatt_service_add_included_service(bt_gatt_h service,
- bt_gatt_h included_service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Gets the GATT server handle to which the specified service belongs.
- * @since_tizen 3.0
- *
- * @remarks The returned Server handle must not be freed by application.
- *
- * @param[in] service The service's GATT handle
- * @param[out] server The GATT server handle to which @a service belongs
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_create()
- * @see bt_gatt_service_create()
- * @see bt_gatt_server_register_service()
- */
-int bt_gatt_service_get_server(bt_gatt_h service, bt_gatt_server_h *server);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Creates the GATT characteristic.
- * @since_tizen 3.0
- *
- * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
- * @remarks The @a properties can be one or more values of #bt_gatt_property_e, combined with bitwise 'or'.
- * @remarks The @a characteristic should be destroyed by using bt_gatt_characteristic_destroy().
- *
- * @param[in] uuid The UUID of the characteristic
- * @param[in] permissions the permissions of the characteristic
- * @param[in] properties The properties of the characteristic
- * @param[in] value The value(byte stream) of the characteristic
- * @param[in] value_length The length of @a value
- * @param[out] characteristic The GATT handle of the created characteristic
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_destroy()
- */
-int bt_gatt_characteristic_create(const char *uuid, int permissions,
- int properties, const char *value, int value_length,
- bt_gatt_h *characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Adds a descriptor to a specified characteristic.
- * @since_tizen 3.0
- *
- * @param[in] characteristic The GATT handle of the characteristic
- * @param[in] descriptor The descriptor's GATT handle to be added
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_create()
- * @see bt_gatt_descriptor_create()
- */
-int bt_gatt_characteristic_add_descriptor(bt_gatt_h characteristic,
- bt_gatt_h descriptor);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Creates the GATT characteristic descriptor.
- * @since_tizen 3.0
- *
- * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
- * @remarks The @a descriptor should be destroyed by using bt_gatt_descriptor_destroy().
- *
- * @param[in] uuid The UUID of the descriptor
- * @param[in] permissions The permissions of the descriptor
- * @param[in] value The value(byte stream) associated with the descriptor
- * @param[in] value_length The length of @a value
- * @param[out] descriptor The GATT handle of the created characteristic descriptor
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_descriptor_destroy()
- */
-int bt_gatt_descriptor_create(const char *uuid, int permissions,
- const char *value, int value_length,
- bt_gatt_h *descriptor);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Initializes the GATT Server.
- * @since_tizen 3.0
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_server_deinitialize()
- */
-int bt_gatt_server_initialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief DeInitializes the GATT server.
- * @since_tizen 3.0
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_server_initialize()
- */
-int bt_gatt_server_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Creates the GATT server's handle.
- * @since_tizen 3.0
- *
- * @remarks The @a server handle should be destroyed by using bt_gatt_server_destroy()
- *
- * @param[out] server The GATT server's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_destroy()
- */
-int bt_gatt_server_create(bt_gatt_server_h *server);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Destroys the GATT server's handle.
- * @since_tizen 3.0
- *
- * @remarks All registered services to GATT server are unregistered
- *
- * @param[in] server The GATT server's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_create()
- */
-int bt_gatt_server_destroy(bt_gatt_server_h server);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers a callback function to be invoked when a read request for a specified characteristic or descriptor is issued from a remote device(GATT client).
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
- * @param[in] callback The callback to be invoked
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_read_value_requested_cb()
- * @see bt_gatt_server_send_response()
- */
-int bt_gatt_server_set_read_value_requested_cb(bt_gatt_h gatt_handle,
- bt_gatt_server_read_value_requested_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers a callback function to be invoked when the remote device enables or disables the Notification/Indication for particular characteristics.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The GATT handle of a characteristic
- * @param[in] callback The callback to be invoked
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_characteristic_notification_state_changed_cb()
- */
-int bt_gatt_server_set_characteristic_notification_state_change_cb(bt_gatt_h gatt_handle,
- bt_gatt_server_characteristic_notification_state_changed_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers a callback function to be invoked when a value of a characteristic or descriptor has been changed by a remote device(GATT client)'s request.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
- * @param[in] callback The callback to be invoked
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_write_value_requested_cb()
- */
-int bt_gatt_server_set_write_value_requested_cb(bt_gatt_h gatt_handle,
- bt_gatt_server_write_value_requested_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers a specified service to the specified GATT server that the local device is hosting.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] server The GATT server that local device is hosting
- * @param[in] service The service, which needs to be registered in @a server
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_create()
- * @see bt_gatt_service_create()
- * @see bt_gatt_server_start()
- * @see bt_gatt_server_unregister_service()
- */
-int bt_gatt_server_register_service(bt_gatt_server_h server, bt_gatt_h service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Unregisters a specified service from the specified GATT server that the local device is hosting.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] server The GATT server that local device is hosting
- * @param[in] service The service, which needs to be unregistered from @a server
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_SERVICE_NOT_FOUND Service not found
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_register_service()
- */
-int bt_gatt_server_unregister_service(bt_gatt_server_h server, bt_gatt_h service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Unregisters all services from the specified GATT server that the local device is hosting.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] server The GATT server that local device is hosting
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_register_service()
- */
-int bt_gatt_server_unregister_all_services(bt_gatt_server_h server);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers the application along with the GATT services of the application it is hosting.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_initialize()
- * @see bt_gatt_server_create()
- * @see bt_gatt_service_create()
- * @see bt_gatt_server_unregister_service()
- */
-int bt_gatt_server_start(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Sends a response to the remote device as a result of a read/write request.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks Until this function is called, a read/write request is not finished.
- *
- * @param[in] request_id The identification of a read/write request
- * @param[in] request_type The request type for read/write
- * @param[in] offset The offset from where a value is read
- * @param[in] resp_status The application error if any occurred or BT_ERROR_NONE for successful.
- * @param[in] value The value to be sent. It will be sent from @a offset. If it is NULL, a requested GATT handle's value will be sent from @a offset.
- * @param[in] value_length Value Length
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_read_value_requested_cb()
- */
-int bt_gatt_server_send_response(int request_id, bt_gatt_att_request_type_e request_type,
- int offset, int resp_status, char *value, int value_length);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Notifies value change of the characteristic to the remote devices which enable a Client Characteristic Configuration Descriptor.
- * @since_tizen 3.0
- *
- * @param[in] characteristic The characteristic which has a changed value
- * @param[in] callback The function to be invoked on each remote device when a sending operation is done
- * @param[in] device_address Remote device address to send notify or indicate and if set to NULL then notify/indicate all is enabled.
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_notification_sent_cb()
- */
-int bt_gatt_server_notify_characteristic_changed_value(bt_gatt_h characteristic,
- bt_gatt_server_notification_sent_cb callback,
- const char *device_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Gets a service's GATT handle which has specific UUID.
- * @since_tizen 3.0
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated server is destroyed by bt_gatt_server_destroy().
- * If there are multiple services which have same UUID, only the first matched one will be returned.
- *
- * @param[in] server The GATT server's handle
- * @param[in] uuid The service's GATT handle which has this UUID will be returned if it exists
- * @param[out] service The service's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_server_get_service(bt_gatt_server_h server, const char *uuid,
- bt_gatt_h *service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Invokes @a callback function on each service that belongs to the specified GATT server.
- * @since_tizen 3.0
- *
- * @param[in] server The GATT server's handle
- * @param[in] callback The function to be invoked on each service
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_server_foreach_services(bt_gatt_server_h server,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @}
- */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_EXTENSION_H__
-#define __TIZEN_NETWORK_BLUETOOTH_EXTENSION_H__
-
-#include "bluetooth_type.h"
-#include "bluetooth_type_extension.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_extension.h
- */
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Opens a SCO(Synchronous Connection Oriented link) to connected remote device, asynchronously.
- * @since_tizen 2.3
- * @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_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @post bt_ag_sco_state_changed_cb() will be invoked.
- * @see bt_ag_close_sco()
- * @see bt_ag_sco_state_changed_cb()
- * @see bt_audio_connect()
- */
-int bt_ag_open_sco(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Closes an opened SCO(Synchronous Connection Oriented link), asynchronously.
- * @since_tizen 2.3
- * @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_NOT_ENABLED Not enabled
- * @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 SCO must be opened with bt_ag_open_sco().
- * @post bt_ag_sco_state_changed_cb() will be invoked.
- * @see bt_ag_open_sco()
- * @see bt_ag_sco_state_changed_cb()
- */
-int bt_ag_close_sco(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Checks whether an opened SCO(Synchronous Connection Oriented link) exists or not.
- * @since_tizen 2.3
- * @param[out] opened The SCO status: (@c true = opened, @c false = not opened)
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_ag_open_sco()
- * @see bt_ag_close_sco()
- */
-int bt_ag_is_sco_opened(bool *opened);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when the SCO(Synchronous Connection Oriented link) state is changed.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_sco_state_changed_cb()
- * @see bt_ag_unset_sco_state_changed_cb()
- */
-int bt_ag_set_sco_state_changed_cb(bt_ag_sco_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when the SCO(Synchronous Connection Oriented link) state is changed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_sco_state_changed_cb()
- * @see bt_ag_set_sco_state_changed_cb()
- */
-int bt_ag_unset_sco_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the state of voice recognition.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] state The state of voice recognition: (@c true = enabled, @c false = disabled)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_ag_notify_voice_recognition_state(bool state);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the speaker gain to the remote device.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @details This function sends a signal to the remote device. This signal has the gain value.
- * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
- * When the speaker gain of remote device is changed to the requested gain, bt_audio_speaker_gain_changed_cb() will be called.
- * @param[in] gain The gain of speaker (0 ~ 15)
- * @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 is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_ag_get_speaker_gain()
- * @see bt_ag_set_speaker_gain_changed_cb()
- * @see bt_ag_unset_speaker_gain_changed_cb()
- */
-int bt_ag_notify_speaker_gain(int gain);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Gets the current speaker gain of the remote device.
- * @since_tizen 2.3
- * @details This function gets the value of speaker gain of the remote device.
- * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
- * @param[out] gain The gain of speaker (0 ~ 15)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_ag_notify_speaker_gain()
- * @see bt_ag_set_speaker_gain_changed_cb()
- * @see bt_ag_unset_speaker_gain_changed_cb()
- */
-int bt_ag_get_speaker_gain(int *gain);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when the speaker gain of the remote device is changed.
- * @since_tizen 2.3
- * @details This function let you know the change of the speaker gain of the remote device.
- * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_unset_speaker_gain_changed_cb()
- */
-int bt_ag_set_speaker_gain_changed_cb(bt_ag_speaker_gain_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when the speaker gain of the remote device is changed.
- * @since_tizen 2.3
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_set_speaker_gain_changed_cb()
- */
-int bt_ag_unset_speaker_gain_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when the microphone gain of the remote device is changed.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_unset_microphone_gain_changed_cb()
- */
-int bt_ag_set_microphone_gain_changed_cb(bt_ag_microphone_gain_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when the microphone gain of the remote device is changed.
- * @since_tizen 2.3
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_set_microphone_gain_changed_cb()
- */
-int bt_ag_unset_microphone_gain_changed_cb(void);
-
-/**
- * @}
- */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_EXTENSION_H__ */
-
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_INTERNAL_H__
-#define __TIZEN_NETWORK_BLUETOOTH_INTERNAL_H__
-
-#include <glib.h>
-#include "bluetooth_type.h"
-#include "bluetooth_type_internal.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_internal.h
- */
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enables the local Bluetooth adapter, asynchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function enables Bluetooth protocol stack and hardware.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_ALREADY_DONE Already enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- * @pre The state of local Bluetooth must be #BT_ADAPTER_DISABLED
- * @post This function invokes bt_adapter_state_changed_cb().
- *
- * @see bt_initialize()
- * @see bt_adapter_get_state()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb()
- * @see bt_adapter_state_changed_cb()
- *
- */
-int bt_adapter_enable(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Disables the local Bluetooth adapter, asynchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function disables Bluetooth protocol stack and hardware.
- *
- * @remarks You should disable Bluetooth adapter, which is helpful for saving power.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED
- * @post This function invokes bt_adapter_state_changed_cb().
- *
- * @see bt_adapter_get_state()
- * @see bt_adapter_state_changed_cb()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb ()
- *
- */
-int bt_adapter_disable(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Recover the local Bluetooth adapter, asynchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function does recovery logic, disables Bluetooth protocol stack and hardware, then enables after a few seconds.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED
- * @post This function invokes bt_adapter_state_changed_cb().
- *
- * @see bt_adapter_get_state()
- * @see bt_adapter_state_changed_cb()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb ()
- *
- */
-int bt_adapter_recover(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief A2DP source/sink role is switched using this API
- * @since_tizen 4.0
- * @param[in] Role for A2DP
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @retval #BT_ERROR_OPERATION_FAILED Internal Error
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_initialize()
- * @see bt_audio_initialize()
- */
-int bt_audio_select_role(bt_audio_role_e role);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Reset the local Bluetooth adapter, synchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function resets Bluetooth protocol and values.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_state_changed_cb() will be invoked if The state of local Bluetooth was #BT_ADAPTER_ENABLED.
- *
- * @see bt_initialize()
- * @see bt_adapter_get_state()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb()
- * @see bt_adapter_state_changed_cb()
- *
- */
-int bt_adapter_reset(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the version of local Bluetooth adapter.
- * @since_tizen 2.3
- * @remarks The @a local_version must be released with free() by you.
- *
- * @param[out] local_version The version of local Bluetooth adapter
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_adapter_get_version(char **local_version);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the information regarding local Bluetooth adapter.
- * @since_tizen 2.3
- * @remarks The @a all parameters must be released with free() by you.
- *
- * @param[out] chipset Chipset name of local Bluetooth adapter
- * @param[out] firmware Firmware info. of local Bluetooth adapter
- * @param[out] stack_version Bluetooth stack version
- * @param[out] profiles The profile list of local Bluetooth adapter
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_adapter_get_local_info(char **chipset, char **firmware, char **stack_version, char **profiles);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the visibility mode.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE will change to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE
- * after the given @a duration goes.
- *
- * @param[in] discoverable_mode The Bluetooth visibility mode to set
- * @param[in] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds).
- * @a duration is used only for #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE mode.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_adapter_visibility_mode_changed_cb() will be invoked if this function returns #BT_ERROR_NONE.
- *
- * @see bt_adapter_get_visibility()
- * @see bt_adapter_visibility_mode_changed_cb()
- * @see bt_adapter_set_visibility_mode_changed_cb()
- * @see bt_adapter_unset_visibility_mode_changed_cb()
- */
-int bt_adapter_set_visibility(bt_adapter_visibility_mode_e discoverable_mode, int duration);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function that will be invoked when remote device requests authentication.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @param[in] callback callback function to be set when a request is received.
- * @param[in] user_data data from application which will be provided in callback.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @see bt_initialize()
- * @see bt_adapter_set_authentication_req_cb()
- */
-int bt_adapter_set_authentication_req_cb(bt_adapter_authentication_req_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters a callback function that will be invoked when remote device requests authentication.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @see bt_initialize()
- * @see bt_adapter_set_authentication_req_cb()
- */
-int bt_adapter_unset_authentication_req_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief API to reply with PIN or PASSKEY with authentication type - TRUE or FALSE.
- * @remarks This function can be called by application when remote device requests PIN or PASSKEY from
- * local adapter.
- * @param[in] passkey The passkey to be provided by application when remote devices requests for it.
- * @param[in] authentication_reply This indicates whether application wants to accept or cancel the on-going pairing
- * @pre This function can only be called when application receieves authentication event (BT_AUTH_PIN_REQUEST)
- * from remote device.
- * @see bt_adapter_set_authentication_req_cb()
- */
-int bt_adapter_passkey_reply(char *passkey, bool authentication_reply);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief API to reply to the PASSKEY confirmation for on-going pairing with remote device.
- * @remarks This function can be called by application, when local adapter wants PASSKEY confirmation from user.
- * @param[in] confirmation_reply This indicates whether application wants to accepts or cancels the on-going pairing
- * confirmation_reply : TRUE will indicate that Application has confirmed the PASSKEY
- * confirmation_reply : FALSE will indicate that Application has failed to confirm the PASSKEY. In this situation
- * the pairing will be failed.
- * @pre This function can only be called when application receives authentication event (BT_AUTH_PASSKEY_CONFIRM_REQUEST)
- * from remote device.
- * @see bt_adapter_set_authentication_req_cb()
- */
-int bt_adapter_passkey_confirmation_reply(bool confirmation_reply);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the connectable state changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_connectable_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_connectable_changed_cb()
- * @see bt_adapter_unset_connectable_changed_cb()
- */
-int bt_adapter_set_connectable_changed_cb(bt_adapter_connectable_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_connectable_changed_cb()
- */
-int bt_adapter_unset_connectable_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the connectable state of local Bluetooth adapter.
- * @since_tizen 2.3
- *
- * @remarks When connectable state is false, no device can connect to this device and visibility mode cannot be changed.
- *
- * @param[out] connectable The connectable state of local Bluetooth adapter
- *
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_set_connectable()
- */
-int bt_adapter_get_connectable(bool *connectable);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the connectable state of local Bluetooth adapter.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks When connectable state is false, no device can connect to this device and visibility mode cannot be changed.
- *
- * @param[in] connectable The connectable state to set
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_adapter_connectable_changed_cb() will be invoked if this function returns #BT_ERROR_NONE.
- *
- * @see bt_adapter_get_connectable()
- * @see bt_adapter_connectable_changed_cb()
- * @see bt_adapter_set_connectable_changed_cb()
- * @see bt_adapter_unset_connectable_changed_cb()
- */
-int bt_adapter_set_connectable(bool connectable);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the manufacturer data of local Bluetooth adapter.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] data The manufacturer specific data of the Bluetooth device.
- * @param[in] len The length of @a data.Maximaum length is 240 bytes.
- *
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_adapter_manufacturer_data_changed_cb() will be invoked
- * if this function returns #BT_ERROR_NONE.
- *
- * @see bt_adapter_manufacturer_data_changed_cb
- * @see bt_adapter_set_manufacturer_data_changed_cb()
- * @see bt_adapter_unset_manufacturer_data_changed_cb()
- */
-int bt_adapter_set_manufacturer_data(char *data, int len);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked
- * when the manufacturer data of Bluetooth adapter changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_manufacturer_data_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_unset_manufacturer_data_changed_cb()
- */
-int bt_adapter_set_manufacturer_data_changed_cb(
- bt_adapter_manufacturer_data_changed_cb callback,
- void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_manufacturer_data_changed_cb()
- */
-int bt_adapter_unset_manufacturer_data_changed_cb(void);
-
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enables the local Bluetooth le adapter, asynchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function enables Bluetooth protocol stack and hardware.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_ALREADY_DONE Already enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- * @post This function invokes bt_adapter_le_state_changed_cb().
- *
- * @see bt_initialize()
- * @see bt_adapter_le_get_state()
- * @see bt_adapter_le_set_state_changed_cb()
- * @see bt_adapter_le_unset_state_changed_cb()
- * @see bt_adapter_le_state_changed_cb()
- *
- */
-int bt_adapter_le_enable(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Disables the local Bluetooth le adapter, asynchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function disables Bluetooth le protocol stack and hardware.
- *
- * @remarks
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_LE_ENABLED
- * @post This function invokes bt_adapter_le_state_changed_cb().
- *
- * @see bt_adapter_le_get_state()
- * @see bt_adapter_le_state_changed_cb()
- * @see bt_adapter_le_set_state_changed_cb()
- * @see bt_adapter_le_unset_state_changed_cb ()
- *
- */
-int bt_adapter_le_disable(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the current state of local Bluetooth adapter.
- * @since_tizen 2.3
- *
- * @param[out] adapter_le_state The current adapter le state
- *
- * @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_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- */
-int bt_adapter_le_get_state(bt_adapter_le_state_e *adapter_le_state);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Registers a callback function to be invoked when the Bluetooth adapter le state changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_le_state_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_le_state_changed_cb()
- * @see bt_adapter_le_unset_state_changed_cb()
- */
-int bt_adapter_le_set_state_changed_cb(bt_adapter_le_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_le_set_state_changed_cb()
- */
-int bt_adapter_le_unset_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief add address to whitelist for accepting scanning request.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks If the adress is in the whitelist then other LE devices are able to
- * search this device. Before calling this API, make sure that the adapter is
- * enabled. There is no callback event for this API.
-
- * @param[in] address The other device's address
- * @param[in] address_type The other device's address type
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_stop_advertising()
- */
-int bt_adapter_le_add_white_list(const char *address, bt_device_address_type_e address_type);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief remove address from the whitelist for not accepting scanning request.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks If the adress is in the whitelist then other LE devices are able to
- * search this device. Before calling this API, make sure that the adapter is
- * enabled. There is no callback event for this API.
- *
- * @param[in] address The other device's address
- * @param[in] address_type The other device's address type
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_stop_advertising()
- */
-int bt_adapter_le_remove_white_list(const char *address, bt_device_address_type_e address_type);
-
-/**
- * @internal
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief clear address from the whitelist for not accepting scanning request.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks If the adress is in the whitelist then other LE devices are able to
- * search this device. Before calling this API, make sure that the adapter is
- * enabled. There is no callback event for this API.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Adapter is not enabled
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_stop_advertising()
- */
-int bt_adapter_le_clear_white_list(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Sets the Privacy feature state of local Bluetooth adapter.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] enable_privacy The privacy feature to set/unset.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The state of local Bluetooth must be #BT_ADAPTER_LE_ENABLED.
- *
- */
-int bt_adapter_le_enable_privacy(bool enable_privacy);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Creates scan filter to find only LE advertisement which has specific data.
- * @since_tizen 2.4
- *
- * @param[out] scan_filter The handle of scan filter
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_destroy_scan_filter()
- */
-int bt_adapter_le_create_scan_filter(bt_scan_filter_h *scan_filter);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Destroys scan filter.
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_create_scan_filter()
- */
-int bt_adapter_le_destroy_scan_filter(bt_scan_filter_h scan_filter);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the device address to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] address The device address to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_device_address(bt_scan_filter_h scan_filter, const char *address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the device name to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] name The device name to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_device_name(bt_scan_filter_h scan_filter, const char *name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service UUID to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service UUID to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_uuid(bt_scan_filter_h scan_filter, const char *uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service uuid and the mask to filter advertisements by partial data
- * @since_tizen 2.4
- *
- * @remarks the length of mask msut be the same with the length of service uuid.
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service UUID to filter advertisements
- * @param[in] mask The mask to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_uuid_with_mask(bt_scan_filter_h scan_filter,
- const char *uuid, const char *mask);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service solicitation UUID to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service solicitation UUID to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_solicitation_uuid(bt_scan_filter_h scan_filter, const char *uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service solicitation uuid and the mask to filter advertisements by partial data
- * @since_tizen 2.4
- *
- * @remarks the length of mask msut be the same with the length of service solicitation uuid.
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service solicitation UUID to filter advertisements
- * @param[in] mask The mask to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_solicitation_uuid_with_mask(bt_scan_filter_h scan_filter,
- const char *uuid, const char *mask);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service data to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service UUID to filter advertisements
- * @param[in] data The service data to filter advertisements
- * @param[in] data_len The length of the service data
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_data(bt_scan_filter_h scan_filter,
- const char *uuid, const char *data, unsigned int data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service data and the mask to filter advertisements by partial data
- * @since_tizen 2.4
- *
- * @remarks the length of mask msut be the same with the length of service data.
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service UUID to filter advertisements
- * @param[in] data The service data to filter advertisements
- * @param[in] data_len The length of the service data
- * @param[in] mask The mask to filter advertisements
- * @param[in] mask_len The length of the mask to be set.
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_data_with_mask(bt_scan_filter_h scan_filter,
- const char *uuid, const char *data, unsigned int data_len, const char *mask, unsigned int mask_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the manufacturer data to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] manufacturer_id The manufacturer ID (0x0000 ~ 0xFFFF)
- * @param[in] data The manufacturer data (byte array)
- * @param[in] data_len The length of manufacturer data
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_manufacturer_data(bt_scan_filter_h scan_filter,
- int manufacturer_id, const char *data, unsigned int data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the manufacturer data and the mask to filter advertisements by partial data
- * @since_tizen 2.4
- *
- * @remarks the length of mask msut be the same with the length of service uuid.
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] manufacturer_id The manufacturer ID (0x0000 ~ 0xFFFF)
- * @param[in] data The manufacturer data (byte array)
- * @param[in] data_len The length of manufacturer data
- * @param[in] mask The mask to filter advertisements
- * @param[in] mask_len The length of the mask to be set.
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_manufacturer_data_with_mask(bt_scan_filter_h scan_filter,
- int manufacturer_id, const char *data, unsigned int data_len, const char *mask, unsigned int mask_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Registers the scan filter to use for scanning
- * @since_tizen 2.4
- *
- * @remarks Several scan filters can be registered. And the specific advertisements, satisfy the one of scan filters, will be found.
- *
- * @param[in] scan_filter The handle of scan filter
- *
- * @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_NOW_IN_PROGRESS Scan is in progress
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_register_scan_filter(bt_scan_filter_h scan_filter);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unregisters the scan filter to be registered
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- *
- * @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_NOW_IN_PROGRESS Scan is in progress
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_unregister_scan_filter(bt_scan_filter_h scan_filter);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unregisters all scan filters to be registered
- * @since_tizen 2.4
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOW_IN_PROGRESS Scan is in progress
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_unregister_all_scan_filters(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set advertising filter policy to use white list
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] filter_policy The filter policy of advertising
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_start_advertising_new()
- */
-int bt_adapter_le_set_advertising_filter_policy(bt_advertiser_h advertiser, bt_adapter_le_advertising_filter_policy_e filter_policy);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets a connection state
- * @since_tizen 2.4
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] link_type The link type to get a connection state
- * @param[out] connected The connection state
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- */
-int bt_device_get_connection_state(const char *remote_address, bt_device_connection_link_type_e link_type, bool *connected);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Creates a bond with a remote Bluetooth device, asynchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks A bond can be destroyed by bt_device_destroy_bond().\n
- * The bonding request can be cancelled by bt_device_cancel_bonding().
- *
- * @param[in] remote_address The address of the remote Bluetooth device with which the bond should be created
- * @param[in] conn_type The connection type(LE or BREDR) to create bond with remote device
- *
- * @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_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
- * @post This function invokes bt_device_bond_created_cb().
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_device_create_bond()
- * @see bt_device_bond_created_cb()
- * @see bt_device_cancel_bonding()
- * @see bt_device_destroy_bond()
- * @see bt_device_set_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-int bt_device_create_bond_by_type(const char *remote_address,
- bt_device_connection_link_type_e conn_type);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Cancels service search process.
- * @since_tizen 2.3
- * @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_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The service search must be in progress by bt_device_start_service_search().
- *
- * @see bt_device_start_service_search()
- * @see bt_device_service_searched_cb()
- * @see bt_device_set_service_searched_cb()
- * @see bt_device_unset_service_searched_cb()
- */
-int bt_device_cancel_service_search(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Sets a profile restricted connection for a device
- * @since_tizen 3.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_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_set_profile_restricted(const char *device_address, bt_restricted_profile_t profile, bool restricted);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets a profile restricted connection for a device
- * @since_tizen 3.0
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_get_profile_restricted(const char *device_address, bt_restricted_profile_t profile, int *restricted);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Request to change ATT MTU value
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] mtu New MTU value to be changed
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_request_att_mtu(const char *remote_address, unsigned int mtu);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets the ATT MTU value set for a connection
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[ot] mtu MTU value set for a connection
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_get_att_mtu(const char *remote_address, unsigned int *mtu);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the ATT MTU is changed.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_unset_att_mtu_changed_cb()
- */
-int bt_device_set_att_mtu_changed_cb(bt_device_att_mtu_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function to be invoked when the ATT MTU is changed.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_att_mtu_changed_cb()
- */
-int bt_device_unset_att_mtu_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Registers a rfcomm server socket with a specific UUID. Activation by dbus is possible when the profile is connected.
- * @since_tizen 2.4
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks A socket can be destroyed by bt_socket_destroy_rfcomm_ex().
- * Application should call this API to receive a connection event when launched again by dbus.
- *
- * @param[in] uuid The UUID of service to provide
- * @param[in] bus_name bus_name of the application which is provided in service file.
- * @param[in] object_path dbus of the application
- * @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_NOW_IN_PROGRESS Already registered
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_socket_listen_and_accept_rfcomm_ex()
- * @see bt_socket_destroy_rfcomm_ex()
- */
-int bt_socket_create_rfcomm_ex(const char *uuid, const char *bus_name, const char *object_path);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Removes the rfcomm server socket which was created using bt_socket_create_rfcomm_ex().
- * @since_tizen 2.4
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @remarks If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
- * then bt_socket_connection_state_changed_cb() will be called when this function is finished successfully.
- *
- * @param[in] uuid The UUID (which was created using bt_socket_create_rfcomm()) to destroy
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm_ex().
- * @post If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
- * then bt_socket_connection_state_changed_cb() will be called.
- * @see bt_socket_create_rfcomm_ex()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_destroy_rfcomm_ex(const char *uuid);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Starts listening on passed rfcomm socket and accepts connection requests. Activation by dbus is possible when the profile is connected.
- * @since_tizen 2.4
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @details Pop-up is shown automatically when a RFCOMM connection is requested.
- * bt_socket_connection_state_changed_cb() will be called with
- * #BT_SOCKET_CONNECTED if you click "yes" and connection is finished successfully.
- * @param[in] uuid The UUID of service to provide
- * @param[in] max_pending_connections The maximum number of pending connections
- * @param[in] bus_name bus_name of the application which is provided in service file.
- * @param[in] object_path dbus of the application
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm_ex().
- * @post If callback function bt_socket_connection_state_changed_cb() is set,
- * then bt_socket_connection_state_changed_cb() will be called when the remote Bluetooth device is connected.
- * @see bt_socket_create_rfcomm_ex()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_listen_and_accept_rfcomm_ex(const char *uuid, int max_pending_connections, const char* bus_name, const char *object_path);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Starts listening on passed rfcomm socket.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @details bt_socket_connection_requested_cb() will be called when a RFCOMM connection is requested.
- *
- * @param[in] socket_fd The file descriptor socket on which start to listen
- * @param[in] max_pending_connections The number of pending connections
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm().
- * @post This function invokes bt_socket_connection_state_changed_cb().
- *
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_set_connection_requested_cb()
- * @see bt_socket_unset_connection_requested_cb()
- * @see bt_socket_connection_requested_cb()
- */
-int bt_socket_listen(int socket_fd, int max_pending_connections);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Accepts a connection request.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] requested_socket_fd The file descriptor of socket on which a connection is requested
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The connection is requested by bt_socket_connection_requested_cb().
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_connection_requested_cb()
- * @see bt_socket_listen()
- * @see bt_socket_reject()
-*/
-int bt_socket_accept(int requested_socket_fd);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Rejects a connection request.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] socket_fd The file descriptor of socket on which a connection is requested
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The connection is requested by bt_socket_connection_requested_cb().
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_connection_requested_cb()
- * @see bt_socket_listen()
- * @see bt_socket_accept()
- */
-int bt_socket_reject(int socket_fd);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Initializes the Bluetooth OPP server requested by bt_opp_server_push_requested_cb().
- * @since_tizen 2.3
- * @details The popup appears when an OPP connection is requested from a remote device.
- * If you accept the request, then connection will be established and bt_opp_server_push_requested_cb() will be called.
- * At that time, you can call either bt_opp_server_accept() or bt_opp_server_reject().
- * @remarks This function must be called to start Bluetooth OPP server. You must free all resources of the Bluetooth service
- * by calling bt_opp_server_deinitialize() if Bluetooth OPP service is no longer needed.
- * @param[in] destination The destination path
- * @param[in] push_requested_cb The callback called when a push is requested
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_push_requested_cb()
- * @see bt_opp_server_deinitialize()
- * @see bt_opp_server_accept()
- * @see bt_opp_server_reject()
- */
-int bt_opp_server_initialize(const char *destination, bt_opp_server_push_requested_cb push_requested_cb, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_MODULE
- * @brief Gets the percentage progress for ongoing transfers.
- * @since_tizen 3.0
- * @exception None
- * @param[in] transfer_type Transfer Type: (@c BLUETOOTH_TRANSFER_INBOUND = receiving , @c BLUETOOTH_TRANSFER_OUTBOUND = sending)
- * @param[in] transfer_id Transfer ID
- * @param[out] progress Percentage Progress
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- */
-int bt_opp_get_transfer_progress(bt_opp_transfer_type_t transfer_type,
- int transfer_id, unsigned char *progress);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the call event to the remote bluetooth device.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @remarks Before notifying #BT_AG_CALL_EVENT_ANSWERED or #BT_AG_CALL_EVENT_DIALING, you should open SCO(Synchronous Connection Oriented link)
- * if Bluetooth Hands-Free need SCO connection.
- * @param[in] event The call event
- * @param[in] call_id The call ID
- * @param[in] phone_number The phone number. You must set this value in case of #BT_AG_CALL_EVENT_DIALING and #BT_AG_CALL_EVENT_INCOMING.
- * In other cases, this value can be NULL.
- * @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_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 Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_ag_notify_call_event(bt_ag_call_event_e event, unsigned int call_id, const char *phone_number);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the call list to the remote bluetooth device.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] list The call list
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_ag_notify_call_list(bt_call_list_h list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the state of voice recognition.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] state The state of voice recognition: (@c true = enabled, @c false = disabled)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_ag_notify_voice_recognition_state(bool state);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when a call handling event happened from Hands-Free.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_call_handling_event_cb()
- * @see bt_ag_unset_call_handling_event_cb()
- */
-int bt_ag_set_call_handling_event_cb(bt_ag_call_handling_event_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when a call handling event happened from Hands-Free.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_call_handling_event_cb()
- * @see bt_ag_set_call_handling_event_cb()
- */
-int bt_ag_unset_call_handling_event_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when a multi call handling event happened from Hands-Free.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_multi_call_handling_event_cb()
- * @see bt_ag_unset_multi_call_handling_event_cb()
- */
-int bt_ag_set_multi_call_handling_event_cb(bt_ag_multi_call_handling_event_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when a multi call handling event happened from Hands-Free.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_multi_call_handling_event_cb()
- * @see bt_ag_set_multi_call_handling_event_cb()
- */
-int bt_ag_unset_multi_call_handling_event_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_dtmf_transmitted_cb()
- * @see bt_ag_unset_dtmf_transmitted_cb()
- */
-int bt_ag_set_dtmf_transmitted_cb(bt_ag_dtmf_transmitted_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_dtmf_transmitted_cb()
- * @see bt_ag_set_dtmf_transmitted_cb()
- */
-int bt_ag_unset_dtmf_transmitted_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Checks whether the remoted device enables NREC(Noise Reduction and Echo Canceling) or not.
- * @since_tizen 2.3
- * @param[out] enabled The NREC status: (@c true = enabled, @c false = not enabled)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_audio_connect()
- */
-int bt_ag_is_nrec_enabled(bool *enabled);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
- * @brief Creates a handle of call list.
- * @since_tizen 2.3
- * @param[out] list The handle of call list
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_call_list_destroy()
- */
-int bt_call_list_create(bt_call_list_h *list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
- * @brief Destroys the handle of call list.
- * @since_tizen 2.3
- * @param[in] list The handle of call list
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_call_list_create()
- */
-int bt_call_list_destroy(bt_call_list_h list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
- * @brief Resets the handle of call list.
- * @since_tizen 2.3
- * @param[in] list The handle of call list
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_call_list_create()
- */
-int bt_call_list_reset(bt_call_list_h list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
- * @brief Adds a call to the handle of call list.
- * @since_tizen 2.3
- * @param[in] list The handle of call list
- * @param[in] call_id The call ID
- * @param[in] state The state of audio gate call
- * @param[in] phone_number The phone number. You must set this value in case of #BT_AG_CALL_EVENT_DIALING and #BT_AG_CALL_EVENT_INCOMING.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_call_list_create()
- */
-int bt_call_list_add(bt_call_list_h list, unsigned int call_id, bt_ag_call_state_e state, const char *phone_number);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Checks whether the remoted device is wbs (Wide Band Speech) mode or not.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[out] wbs_mode The wbs status: (@c true = wide band speech, @c false = narrow band speech)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The remote device is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_audio_connect()
- */
-int bt_ag_is_wbs_mode(bool *wbs_mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Gets the HF(Hands-Free) profile connected status for AG role.
- * @since_tizen 2.4
- * @param[out] connected the connected status: (@c true = connected , @c false = not connected )
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_ag_is_connected(bool *connected);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_A2DP_MODULE
- * @brief Sets copy protection. streaming application that needs to have the copy protection for the streaming data, shall invoke this API.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] status - TRUE/FALSE
- * @return 0 on success, otherwise negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_OPERATION_FAILED on failure
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_a2dp_set_content_protection(bool status);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the specification name from the UUID
- * @since_tizen 2.4
- *
- * @remarks @a name must be released with free() by you.
- *
- * @param[in] uuid The UUID
- * @param[out] name The specification name which defined from www.bluetooth.org
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_get_uuid()
- */
-int bt_gatt_get_uuid_specification_name(const char *uuid, char **name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Updates the permissions which a characteristic or descriptor's GATT handle has.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] permissions The permissions to be updated
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_create()
- * @see bt_gatt_descriptor_create()
- * @see bt_gatt_permission_e
- */
-int bt_gatt_set_permissions(bt_gatt_h gatt_handle, int permissions);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Updates the properties which a characteristic's GATT handle has.
- * @since_tizen 3.0
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] properties The properties to be updated
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_property_e
- */
-int bt_gatt_characteristic_set_properties(bt_gatt_h characteristic, int properties);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Destroys the GATT handle
- * @since_tizen 2.4
- *
- * @param[in] gatt_handle The handle of service, characteristic or descriptor
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_create()
- * @see bt_gatt_characteristic_create()
- * @see bt_gatt_descriptor_create()
- */
-int bt_gatt_destroy(bt_gatt_h gatt_handle);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Registers a callback function that will be invoked when the A2DP Source connection state is changed.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_audio_connection_state_changed_cb()
- */
-int bt_a2dp_source_audio_set_connection_state_changed_cb(bt_audio_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Unregisters a callback function that will be invoked when the A2DP Source connection state is changed.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_audio_connection_state_changed_cb()
- * @see bt_audio_set_connection_state_changed_cb()
- */
-int bt_a2dp_source_audio_unset_connection_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Activates the NAP(Network Access Point).
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED
- * @see bt_nap_deactivate()
- */
-int bt_nap_activate(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Deactivates the NAP(Network Access Point).
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth NAP service must be activated with bt_nap_activate().
- * @see bt_nap_activate()
- */
-int bt_nap_deactivate(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Disconnects the all PANUs(Personal Area Networking User) which are connected to you.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth NAP service must be activated with bt_nap_activate().
- * @see bt_nap_activate()
- */
-int bt_nap_disconnect_all(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Disconnects the specified PANU(Personal Area Networking User) which is connected to you.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth NAP service must be activated with bt_nap_activate().
- * @see bt_nap_activate()
- */
-int bt_nap_disconnect(const char *remote_address);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Registers a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_nap_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_nap_connection_state_changed_cb()
- * @see bt_nap_unset_connection_state_changed_cb()
- */
-int bt_nap_set_connection_state_changed_cb(bt_nap_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_nap_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_nap_connection_state_changed_cb()
- * @see bt_nap_set_connection_state_changed_cb()
- */
-int bt_nap_unset_connection_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Registers a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_nap_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_panu_connection_state_changed_cb()
- * @see bt_panu_unset_connection_state_changed_cb()
- */
-int bt_panu_set_connection_state_changed_cb(bt_panu_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_nap_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_panu_connection_state_changed_cb()
- * @see bt_panu_set_connection_state_changed_cb()
- */
-int bt_panu_unset_connection_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Connects the remote device with the PAN(Personal Area Networking) service, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @param[in] type The type of PAN service
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @post bt_panu_connection_state_changed_cb() will be invoked.
- * @see bt_panu_disconnect()
- * @see bt_panu_connection_state_changed_cb()
- */
-int bt_panu_connect(const char *remote_address, bt_panu_service_type_e type);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Disconnects the remote device with the PAN(Personal Area Networking) service, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected by bt_panu_connect().
- * @post bt_panu_connection_state_changed_cb() will be invoked.
- * @see bt_panu_connect()
- * @see bt_panu_connection_state_changed_cb()
- */
-int bt_panu_disconnect(const char *remote_address);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief update LE connection.
- * @since_tizen 2.3
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @pre The remote device must be connected with bt_gatt_connect().
- */
-int bt_device_le_conn_update(const char *device_address,
- const bt_le_conn_update_s *parameters);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets the is_alias_set property of a bonded device.
- * @since_tizen 3.0
- *
- * @param [in] remote_address The address of remote device
- * @param [out] is_alias_set The is_alias_set property of device
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_adapter_get_bonded_device_is_alias_set(const char *remote_address, gboolean *is_alias_set);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Registers the method for HID Device role
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks This function must be called to register HID UUID
- * then only remote device could be able identify this one as HID device
- *
- * @param[in] callback The callback called when the connection state is changed
- * @param[in] user_data The user data to be passed to the callback function
- * @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_NOW_IN_PROGRESS Already activated
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_hid_device_deactivate()
- */
-int bt_hid_device_activate(bt_hid_device_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Unregisters the method for HID Device role
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks This function must be called to deregister HID UUID
- *
- * @param[in] socket_fd on which uuid need to be deregistered.
- * @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_NOT_IN_PROGRESS Not activated
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_hid_device_activate()
- */
-int bt_hid_device_deactivate(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Initiates HID device Connection with device role, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks This function must be called to Initiate Hid device role connection
- *
- * @param[in] remote_address device address of remote device.
- * @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_NOT_IN_PROGRESS Not activated
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_ALREADY_DONE Already connected
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @see bt_initialize()
- * @see bt_hid_device_activate()
- */
-int bt_hid_device_connect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Disconnects the connection with HID Host device, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address device address of remote device.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_disconnect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Sends the mouse event data.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address device address of remote device.
- * @param[in] mouse_data mouse data that need to be passed to remote device
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The HID connection must be established.
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_send_mouse_event(const char *remote_address,
- const bt_hid_mouse_data_s *mouse_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Sends the keyboard event data.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address device address of remote device.
- * @param[in] key_data key data the need to be passed to remote device
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The HID connection must be established.
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_send_key_event(const char *remote_address,
- const bt_hid_key_data_s *key_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Sets the callback when device gets some data from HID Host.
- * @since_tizen 2.3.1
- *
- * @param[in] callback callback function to be set when data is received.
- * @param[in] user_data data from application which will be provided in callback.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- *
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_set_data_received_cb(bt_hid_device_data_received_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Unsets the callback when device gets some data from HID Host.
- * @since_tizen 2.3.1
- *
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- *
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_unset_data_received_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Responds to the reports from HID Host.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address device address of remote device.
- * @param[in] header_type Header type to be there in response
- * @param[in] param_type Parameter type to be there in response.
- * @param[in] data Data to be present in data payload of response.
- * @param[in] data_len The length of the response data
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The HID connection must be established.
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_reply_to_report(const char *remote_address,
- bt_hid_header_type_e header_type, bt_hid_param_type_e param_type,
- const char *data, unsigned int data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Sends the custom event data.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address device address of remote device.
- * @param[in] report_id reoport id need to be passed to remote device
- * @param[in] data The data need to be passed to remote device
- * @param[in] data_len The length of the data
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The HID connection must be established.
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_send_custom_event(const char *remote_address,
- unsigned char report_id, const char *data, unsigned int data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets Restriction for BT mode(BT allowed or not).
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - BT Allow value.
- * BT_DPM_ERROR = -1, < bluetooth allowance error
- * BT_DPM_BT_ALLOWED, < bluetooth allowance allowed
- * BT_DPM_HANDSFREE_ONLY, < bluetooth allowance handsfree only
- * BT_DPM_BT_RESTRICTED, < bluetooth allowance restricted
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre none.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_allow_bluetooth_mode(bt_dpm_allow_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads Restriction for BT mode(BT allowed or not).
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @param[out] value - BT Allow value.
- * BT_DPM_ERROR = -1, < bluetooth allowance error
- * BT_DPM_BT_ALLOWED, < bluetooth allowance allowed
- * BT_DPM_HANDSFREE_ONLY, < bluetooth allowance handsfree only
- * BT_DPM_BT_RESTRICTED, < bluetooth allowance restricted
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre none.
- * @see bt_dpm_set_allow_bluetooth_mode()
- */
-int bt_dpm_get_allow_bluetooth_mode(bt_dpm_allow_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for device.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_activate_device_restriction(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for device.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_is_device_restriction_active(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for uuid.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_activate_uuid_restriction(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for uuid.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_is_uuid_restriction_active(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Adds the device to blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] device_address - Device address
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_add_devices_to_blacklist(const char *device_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Adds the device to whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] device_address - Device address
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_add_devices_to_whitelist(const char *device_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Adds the uuids to blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] service_uuids - profile or custom service uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_add_uuids_to_blacklist(const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Adds the uuid to whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] service_uuids - profile or custom service uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_add_uuids_to_whitelist(const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Clears the device from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_clear_devices_from_blacklist(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Clears the device from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_clear_devices_from_whitelist(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Clears the uuids from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_clear_uuids_from_blacklist(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Clears the uuids from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_clear_uuids_from_whitelist(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the devices from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] device_list - list of devices
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_devices_from_blacklist(bt_dpm_device_list_s **device_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the devices from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] device_list - list of devices
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_devices_from_whitelist(bt_dpm_device_list_s **device_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the uuids from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] uuid_list - list of uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_uuids_from_blacklist(bt_dpm_uuids_list_s **uuid_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the uuids from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] uuid_list - list of uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_uuids_from_whitelist(bt_dpm_uuids_list_s **uuid_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Removes the devices from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] device_address - Device address
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_remove_device_from_whitelist(const char *device_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Removes the devices from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] device_address - Device address
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_remove_device_from_blacklist(const char *device_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Removes the uuids from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] service_uuids - profile or custom service uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_remove_uuid_from_whitelist(const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Removes the uuids from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] service_uuids - profile or custom service uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_remove_uuid_from_blacklist(const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for outgoing call.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_allow_outgoing_call(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for outgoing call.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_allow_outgoing_call(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for pairing.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_pairing_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for pairing.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_pairing_state(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for profiles.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in]profile - Profile.
- * BT_DPM_POLICY_A2DP_PROFILE_STATE,
- * BT_DPM_POLICY_AVRCP_PROFILE_STATE,
- * BT_DPM_POLICY_BPP_PROFILE_STATE,
- * BT_DPM_POLICY_DUN_PROFILE_STATE,
- * BT_DPM_POLICY_FTP_PROFILE_STATE,
- * BT_DPM_POLICY_HFP_PROFILE_STATE,
- * BT_DPM_POLICY_HSP_PROFILE_STATE,
- * BT_DPM_POLICY_PBAP_PROFILE_STATE,
- * BT_DPM_POLICY_SAP_PROFILE_STATE,
- * BT_DPM_POLICY_SPP_PROFILE_STATE,
- * BT_DPM_PROFILE_NONE
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_profile_state(bt_dpm_profile_e profile, bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for profiles.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in]profile - Profile.
- * BT_DPM_POLICY_A2DP_PROFILE_STATE,
- * BT_DPM_POLICY_AVRCP_PROFILE_STATE,
- * BT_DPM_POLICY_BPP_PROFILE_STATE,
- * BT_DPM_POLICY_DUN_PROFILE_STATE,
- * BT_DPM_POLICY_FTP_PROFILE_STATE,
- * BT_DPM_POLICY_HFP_PROFILE_STATE,
- * BT_DPM_POLICY_HSP_PROFILE_STATE,
- * BT_DPM_POLICY_PBAP_PROFILE_STATE,
- * BT_DPM_POLICY_SAP_PROFILE_STATE,
- * BT_DPM_POLICY_SPP_PROFILE_STATE,
- * BT_DPM_PROFILE_NONE
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_profile_state(bt_dpm_profile_e profile, bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for desktop connectivity.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_desktop_connectivity_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for desktop connectivity.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_desktop_connectivity_state(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for discoverable mode.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_discoverable_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for discoverable mode.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_discoverable_state(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for limited discoverable mode.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-
-int bt_dpm_set_limited_discoverable_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for limited discoverable mode.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_limited_discoverable_state(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for Data transfer.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_data_transfer_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for Data transfer.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_data_transfer_state(bt_dpm_status_e *value);
-
-/**
- * @internal
- * @brief Initialize Bluetooth IPSP service and set the callback
- */
-int bt_ipsp_initialize(bt_ipsp_init_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @brief De-Initialize Bluetooth IPSP service and unset the callback
- */
-int bt_ipsp_deinitialize(void);
-
-/**
- * @internal
- * @brief Connect to a IPSP service over LE to remote device.
- */
-int bt_ipsp_connect(const char *address);
-
-/**
- * @internal
- * @brief Disconnect to a IPSP service over LE to remote device.
- */
-int bt_ipsp_disconnect(const char *address);
-
-/**
- * @internal
- * @brief Set IPSP connection state event change callback.
- */
-int bt_ipsp_set_connection_state_changed_cb(bt_ipsp_connection_state_changed_cb callback,
- void *user_data);
-
-/**
- * @internal
- * @brief Unset IPSP connection state event change callback.
- */
-int bt_ipsp_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Gets the pbap connected status.
- * @since_tizen 3.0
- * @param[in] remote_address The address of the remote device
- * @param[out] connected_status the connected status
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_pbap_client_is_connected(const char *address, bool *connected_status);
-
-/**
- * @internal
- * @brief Register the Proximity Profile.
- */
-int bt_proximity_register(bt_proximity_role_t role, bt_proximity_property_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @brief Unregister the Proximity Profile.
- */
-int bt_proximity_unregister(bt_proximity_role_t role);
-
-/**
- * @internal
- * @brief Set the Proximity Profile property value.
- */
-int bt_proximity_set_property(const char *remote_address, bt_proximity_property_t property, int value);
-
-/**
- * @internal
- * @brief Read the Proximity Profile property value.
- */
-int bt_proximity_get_property(const char *remote_address, bt_proximity_property_t property, int *value);
-
-/**
- * @internal
- * @brief Lists the Proximity Profile property/service supported.
- */
-int bt_proximity_get_supported_services(const char *remote_address, int *supported_services);
-
-/**
- * @internal
- * @brief API to set scan filter for iBeacons reports
- */
-int bt_adapter_le_set_ibeacon_scan_filter(bt_scan_filter_h scan_filter,
- const char *data, unsigned int data_len);
-
-/**
- * @internal
- * @brief API to read iBeacon report from LE scan result information
- */
-int bt_adapter_le_get_scan_result_ibeacon_report(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, bt_adapter_ibeacon_scan_result_info_s **ibeacon_info);
-
-/**
- * @internal
- * @brief API to clear the iBeacon report
- */
-int bt_adapter_le_free_ibeacon_report(bt_adapter_ibeacon_scan_result_info_s *ibeacon_info);
-
-/**
- * @}
- */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_INTERNAL_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_H__
-#define __TIZEN_NETWORK_BLUETOOTH_TYPE_H__
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdbool.h>
-#include <tizen_error.h>
-
- #ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_type.h
- * @brief API to control the Bluetooth adapter, devices and communications.
- * @ingroup CAPI_NETWORK_BLUETOOTH_TYPE_MODULE
- */
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @brief Enumerations of Bluetooth error codes.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful*/
- BT_ERROR_CANCELLED = TIZEN_ERROR_CANCELED, /**< Operation cancelled */
- BT_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
- BT_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
- BT_ERROR_RESOURCE_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Device or resource busy */
- BT_ERROR_TIMED_OUT = TIZEN_ERROR_TIMED_OUT, /**< Timeout error */
- BT_ERROR_NOW_IN_PROGRESS = TIZEN_ERROR_NOW_IN_PROGRESS, /**< Operation now in progress */
- BT_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< BT is Not Supported */
- BT_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */
- BT_ERROR_QUOTA_EXCEEDED = TIZEN_ERROR_QUOTA_EXCEEDED, /**< Quota exceeded */
- BT_ERROR_NO_DATA = TIZEN_ERROR_NO_DATA, /**< No data available */
- BT_ERROR_DEVICE_POLICY_RESTRICTION = TIZEN_ERROR_DEVICE_POLICY_RESTRICTION, /**< Device policy restriction (Since 3.0) */
- BT_ERROR_NOT_INITIALIZED = TIZEN_ERROR_BLUETOOTH|0x0101, /**< Local adapter not initialized */
- BT_ERROR_NOT_ENABLED = TIZEN_ERROR_BLUETOOTH|0x0102, /**< Local adapter not enabled */
- BT_ERROR_ALREADY_DONE = TIZEN_ERROR_BLUETOOTH|0x0103, /**< Operation already done */
- BT_ERROR_OPERATION_FAILED = TIZEN_ERROR_BLUETOOTH|0x0104, /**< Operation failed */
- BT_ERROR_NOT_IN_PROGRESS = TIZEN_ERROR_BLUETOOTH|0x0105, /**< Operation not in progress */
- BT_ERROR_REMOTE_DEVICE_NOT_BONDED = TIZEN_ERROR_BLUETOOTH|0x0106, /**< Remote device not bonded */
- BT_ERROR_AUTH_REJECTED = TIZEN_ERROR_BLUETOOTH|0x0107, /**< Authentication rejected */
- BT_ERROR_AUTH_FAILED = TIZEN_ERROR_BLUETOOTH|0x0108, /**< Authentication failed */
- BT_ERROR_REMOTE_DEVICE_NOT_FOUND = TIZEN_ERROR_BLUETOOTH|0x0109, /**< Remote device not found */
- BT_ERROR_SERVICE_SEARCH_FAILED = TIZEN_ERROR_BLUETOOTH|0x010A, /**< Service search failed */
- BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED = TIZEN_ERROR_BLUETOOTH|0x010B, /**< Remote device is not connected */
- BT_ERROR_AGAIN = TIZEN_ERROR_BLUETOOTH|0x010C, /**< Resource temporarily unavailable */
- BT_ERROR_SERVICE_NOT_FOUND = TIZEN_ERROR_BLUETOOTH|0x010D, /**< Service Not Found */
-} bt_error_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumerations of the Bluetooth adapter state.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_DISABLED = 0x00, /**< Bluetooth adapter is disabled */
- BT_ADAPTER_ENABLED, /**< Bluetooth adapter is enabled */
-} bt_adapter_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumerations of the Bluetooth visibility mode.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE = 0x00, /**< Other devices cannot find your device via discovery */
- BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE, /**< Discoverable mode */
- BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE, /**< Discoverable mode with time limit. After specific period,
- it is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.*/
-} bt_adapter_visibility_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumerations of the discovery state of Bluetooth device.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_DEVICE_DISCOVERY_STARTED, /**< Device discovery is started */
- BT_ADAPTER_DEVICE_DISCOVERY_FINISHED, /**< Device discovery is finished */
- BT_ADAPTER_DEVICE_DISCOVERY_FOUND, /**< The remote Bluetooth device is found */
-} bt_adapter_device_discovery_state_e;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the discovery state of Bluetooth LE device.
- * @since_tizen 2.3
- *
- */
-typedef enum {
- BT_ADAPTER_LE_DEVICE_DISCOVERY_STARTED, /**< LE device discovery is started */
- BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED, /**< LE device discovery is finished */
- BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND, /**< The remote Bluetooth LE device is found */
-} bt_adapter_le_device_discovery_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth advertising state.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_ADVERTISING_STOPPED = 0x00, /**< Bluetooth advertising is stopped */
- BT_ADAPTER_LE_ADVERTISING_STARTED, /**< Bluetooth advertising is started */
-} bt_adapter_le_advertising_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth advertising mode.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_ADAPTER_LE_ADVERTISING_MODE_BALANCED, /**< Balanced advertising mode */
- BT_ADAPTER_LE_ADVERTISING_MODE_LOW_LATENCY, /**< Low latency advertising mode */
- BT_ADAPTER_LE_ADVERTISING_MODE_LOW_ENERGY /**< Low energy advertising mode */
-} bt_adapter_le_advertising_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth advertising filter policy.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_ADVERTISING_FILTER_DEFAULT = 0x00, /**< White list is not in use */
- BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_SCAN_WL = 0x01, /**< Allow the scan
- request that in the White list */
- BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_CONN_WL = 0x02, /**< Allow the connection
- request that in the White list */
- BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_SCAN_CONN_WL = 0x03, /**< Allow the
- scan and connection request that in the White list */
-} bt_adapter_le_advertising_filter_policy_e;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth advertising type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_ADVERTISING_CONNECTABLE = 0x00, /**< Connectable undirected advertising (ADV_IND) */
- BT_ADAPTER_LE_ADVERTISING_CONNECTABLE_DIRECT_HIGH = 0x01, /**< Connectable high duty cycle directed advertising (ADV_DIRECT_IND) */
- BT_ADAPTER_LE_ADVERTISING_SCANNABLE = 0x02, /**< Scannable undirected advertising (ADV_SCAN_IND) */
- BT_ADAPTER_LE_ADVERTISING_NON_CONNECTABLE = 0x03, /**< Non connectable undirected advertising (ADV_NONCOND_IND) */
- BT_ADAPTER_LE_ADVERTISING_CONNECTABLE_DIRECT_LOW = 0x04, /**< Connectable low duty cycle directed advertising (ADV_DIRECT_IND) */
-} bt_adapter_le_advertising_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth LE packet type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_PACKET_ADVERTISING, /**< Advertising packet */
- BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, /**< Scan response packet */
-} bt_adapter_le_packet_type_e;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth LE data type
- * that can be included in LE packets.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_PACKET_DATA_COMP_LIST_16_BIT_SERVICE_CLASS_UUIDS = 0x03, /**< Complete list of 16 bit UUIDs */
- BT_ADAPTER_LE_PACKET_DATA_MANUFACTURER_SPECIFIC_DATA = 0xff, /**< Manufacturer data */
-} bt_adapter_le_packet_data_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth le scan mode.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_ADAPTER_LE_SCAN_MODE_BALANCED, /**< Balanced mode of power consumption and connection latency */
- BT_ADAPTER_LE_SCAN_MODE_LOW_LATENCY, /**< Low connection latency but high power consumption */
- BT_ADAPTER_LE_SCAN_MODE_LOW_ENERGY /**< Low power consumption but high connection latency */
-} bt_adapter_le_scan_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of device disconnect reason.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_DEVICE_DISCONNECT_REASON_UNKNOWN, /**< Disconnected by unknown reason */
- BT_DEVICE_DISCONNECT_REASON_TIMEOUT, /**< Disconnected by timeout */
- BT_DEVICE_DISCONNECT_REASON_LOCAL_HOST, /**< Disconnected by local host */
- BT_DEVICE_DISCONNECT_REASON_REMOTE, /**< Disconnected by remote */
-} bt_device_disconnect_reason_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of connection link type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_DEVICE_CONNECTION_LINK_BREDR, /**< BR/EDR link */
- BT_DEVICE_CONNECTION_LINK_LE, /**< LE link */
- BT_DEVICE_CONNECTION_LINK_DEFAULT = 0xFF, /**< The connection type default */
-} bt_device_connection_link_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of device authorization state.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_DEVICE_AUTHORIZED, /**< The remote Bluetooth device is authorized */
- BT_DEVICE_UNAUTHORIZED, /**< The remote Bluetooth device is unauthorized */
-} bt_device_authorization_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of Bluetooth profile.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_PROFILE_RFCOMM = 0x01, /**< RFCOMM Profile */
- BT_PROFILE_A2DP = 0x02, /**< Advanced Audio Distribution Profile Source role */
- BT_PROFILE_HSP = 0x04, /**< Headset Profile */
- BT_PROFILE_HID = 0x08, /**< Human Interface Device Profile */
- BT_PROFILE_NAP = 0x10, /**< Network Access Point Profile */
- BT_PROFILE_AG = 0x20, /**< Audio Gateway Profile */
- BT_PROFILE_GATT = 0x40, /**< Generic Attribute Profile */
- BT_PROFILE_NAP_SERVER = 0x80, /**< NAP server Profile */
- BT_PROFILE_A2DP_SINK = 0x100, /**< Advanced Audio Distribution Profile Sink role */
-} bt_profile_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of device address type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_DEVICE_PUBLIC_ADDRESS = 0x00, /**< Public address */
- BT_DEVICE_RANDOM_ADDRESS, /**< Random address */
-} bt_device_address_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of service class.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_SC_NONE = 0, /**< No service class */
- BT_SC_RES_SERVICE_MASK = 0x00000001, /**< RES service class */
- BT_SC_SPP_SERVICE_MASK = 0x00000002, /**< SPP service class */
- BT_SC_DUN_SERVICE_MASK = 0x00000004, /**< DUN service class */
- BT_SC_FAX_SERVICE_MASK = 0x00000008, /**< FAX service class */
- BT_SC_LAP_SERVICE_MASK = 0x00000010, /**< LAP service class */
- BT_SC_HSP_SERVICE_MASK = 0x00000020, /**< HSP service class */
- BT_SC_HFP_SERVICE_MASK = 0x00000040, /**< HFP service class */
- BT_SC_OPP_SERVICE_MASK = 0x00000080, /**< OPP service class */
- BT_SC_FTP_SERVICE_MASK = 0x00000100, /**< FTP service class */
- BT_SC_CTP_SERVICE_MASK = 0x00000200, /**< CTP service class */
- BT_SC_ICP_SERVICE_MASK = 0x00000400, /**< ICP service class */
- BT_SC_SYNC_SERVICE_MASK = 0x00000800, /**< SYNC service class */
- BT_SC_BPP_SERVICE_MASK = 0x00001000, /**< BPP service class */
- BT_SC_BIP_SERVICE_MASK = 0x00002000, /**< BIP service class */
- BT_SC_PANU_SERVICE_MASK = 0x00004000, /**< PANU service class */
- BT_SC_NAP_SERVICE_MASK = 0x00008000, /**< NAP service class */
- BT_SC_GN_SERVICE_MASK = 0x00010000, /**< GN service class */
- BT_SC_SAP_SERVICE_MASK = 0x00020000, /**< SAP service class */
- BT_SC_A2DP_SERVICE_MASK = 0x00040000, /**< A2DP service class */
- BT_SC_AVRCP_SERVICE_MASK = 0x00080000, /**< AVRCP service class */
- BT_SC_PBAP_SERVICE_MASK = 0x00100000, /**< PBAP service class */
- BT_SC_HID_SERVICE_MASK = 0x00200000, /**< HID service class */
- BT_SC_A2DP_SOURCE_SERVICE_MASK = 0x00400000, /**< A2DP SOURCE service class */
- BT_SC_ALL_SERVICE_MASK = 0x00FFFFFF, /**< ALL service class */
- BT_SC_MAX /**< MAX service class */
-} bt_service_class_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of major service class.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_MAJOR_SERVICE_CLASS_LIMITED_DISCOVERABLE_MODE = 0x002000, /**< Limited discoverable mode */
- BT_MAJOR_SERVICE_CLASS_POSITIONING = 0x010000, /**< Positioning class */
- BT_MAJOR_SERVICE_CLASS_NETWORKING = 0x020000, /**< Networking class */
- BT_MAJOR_SERVICE_CLASS_RENDERING = 0x040000, /**< Rendering class */
- BT_MAJOR_SERVICE_CLASS_CAPTURING = 0x080000, /**< Capturing class */
- BT_MAJOR_SERVICE_CLASS_OBJECT_TRANSFER = 0x100000, /**< Object transferring class */
- BT_MAJOR_SERVICE_CLASS_AUDIO = 0x200000, /**< Audio class*/
- BT_MAJOR_SERVICE_CLASS_TELEPHONY = 0x400000, /**< Telephony class */
- BT_MAJOR_SERVICE_CLASS_INFORMATION = 0x800000, /**< Information class */
-} bt_major_service_class_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of major device class.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_MAJOR_DEVICE_CLASS_MISC = 0x00, /**< Miscellaneous major device class*/
- BT_MAJOR_DEVICE_CLASS_COMPUTER = 0x01, /**< Computer major device class */
- BT_MAJOR_DEVICE_CLASS_PHONE = 0x02, /**< Phone major device class */
- BT_MAJOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT = 0x03, /**< LAN/Network access point major device class */
- BT_MAJOR_DEVICE_CLASS_AUDIO_VIDEO = 0x04, /**< Audio/Video major device class */
- BT_MAJOR_DEVICE_CLASS_PERIPHERAL = 0x05, /**< Peripheral major device class */
- BT_MAJOR_DEVICE_CLASS_IMAGING = 0x06, /**< Imaging major device class */
- BT_MAJOR_DEVICE_CLASS_WEARABLE = 0x07, /**< Wearable device class */
- BT_MAJOR_DEVICE_CLASS_TOY = 0x08, /**< Toy device class */
- BT_MAJOR_DEVICE_CLASS_HEALTH = 0x09, /**< Health device class */
- BT_MAJOR_DEVICE_CLASS_UNCATEGORIZED = 0x1F, /**< Uncategorized major device class */
-} bt_major_device_class_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of minor device class.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_MINOR_DEVICE_CLASS_COMPUTER_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_DESKTOP_WORKSTATION = 0x04, /**< Desktop workstation minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_SERVER_CLASS = 0x08, /**< Server minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_LAPTOP = 0x0C, /**< Laptop minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_HANDHELD_PC_OR_PDA = 0x10, /**< Handheld PC/PDA minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_PALM_SIZED_PC_OR_PDA = 0x14, /**< Palm sized PC/PDA minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_WEARABLE_COMPUTER = 0x18, /**< Wearable(watch sized) minor device class of computer */
-
- BT_MINOR_DEVICE_CLASS_PHONE_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_CELLULAR = 0x04, /**< Cellular minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_CORDLESS = 0x08, /**< Cordless minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_SMART_PHONE = 0x0C, /**< Smart phone minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_WIRED_MODEM_OR_VOICE_GATEWAY = 0x10, /**< Wired modem or voice gateway minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_COMMON_ISDN_ACCESS = 0x14, /**< Common ISDN minor device class of phone */
-
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_FULLY_AVAILABLE = 0x04, /**< Fully available minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_1_TO_17_PERCENT_UTILIZED = 0x20, /**< 1-17% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_17_TO_33_PERCENT_UTILIZED = 0x40, /**< 17-33% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_33_TO_50_PERCENT_UTILIZED = 0x60, /**< 33-50% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_50_to_67_PERCENT_UTILIZED = 0x80, /**< 50-67% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_67_TO_83_PERCENT_UTILIZED = 0xA0, /**< 67-83% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_83_TO_99_PERCENT_UTILIZED = 0xC0, /**< 83-99% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_NO_SERVICE_AVAILABLE = 0xE0, /**< No service available minor device class of LAN/Network access point */
-
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_WEARABLE_HEADSET = 0x04, /**< Wearable headset minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HANDS_FREE = 0x08, /**< Hands-free minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_MICROPHONE = 0x10, /**< Microphone minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_LOUDSPEAKER = 0x14, /**< Loudspeaker minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HEADPHONES = 0x18, /**< Headphones minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_PORTABLE_AUDIO = 0x1C, /**< Portable audio minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_CAR_AUDIO = 0x20, /**< Car audio minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_SET_TOP_BOX = 0x24, /**< Set-top box minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HIFI_AUDIO_DEVICE = 0x28, /**< Hifi audio minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VCR = 0x2C, /**< VCR minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_CAMERA = 0x30, /**< Video camera minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_CAMCORDER = 0x34, /**< Camcorder minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_MONITOR = 0x38, /**< Video monitor minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_DISPLAY_LOUDSPEAKER = 0x3C, /**< Video display and loudspeaker minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_CONFERENCING = 0x40, /**< Video conferencing minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_GAMING_TOY = 0x48, /**< Gaming/toy minor device class of audio/video */
-
- BT_MINOR_DEVICE_CLASS_PERIPHERA_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_KEY_BOARD = 0x40, /**< Key board minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_POINTING_DEVICE = 0x80, /**< Pointing device minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_COMBO_KEYBOARD_POINTING_DEVICE = 0xC0, /**< Combo keyboard or pointing device minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_JOYSTICK = 0x04, /**< Joystick minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_GAME_PAD = 0x08, /**< Game pad minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_REMOTE_CONTROL = 0x0C, /**< Remote control minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_SENSING_DEVICE = 0x10, /**< Sensing device minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_DIGITIZER_TABLET = 0x14, /**< Digitizer minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_CARD_READER = 0x18, /**< Card reader minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_DIGITAL_PEN = 0x1C, /**< Digital pen minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_HANDHELD_SCANNER = 0x20, /**< Handheld scanner minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_HANDHELD_GESTURAL_INPUT_DEVICE = 0x24, /**< Handheld gestural input device minor device class of peripheral */
-
- BT_MINOR_DEVICE_CLASS_IMAGING_DISPLAY = 0x10, /**< Display minor device class of imaging */
- BT_MINOR_DEVICE_CLASS_IMAGING_CAMERA = 0x20, /**< Camera minor device class of imaging */
- BT_MINOR_DEVICE_CLASS_IMAGING_SCANNER = 0x40, /**< Scanner minor device class of imaging */
- BT_MINOR_DEVICE_CLASS_IMAGING_PRINTER = 0x80, /**< Printer minor device class of imaging */
-
- BT_MINOR_DEVICE_CLASS_WEARABLE_WRIST_WATCH = 0x04, /**< Wrist watch minor device class of wearable */
- BT_MINOR_DEVICE_CLASS_WEARABLE_PAGER = 0x08, /**< Pager minor device class of wearable */
- BT_MINOR_DEVICE_CLASS_WEARABLE_JACKET = 0x0C, /**< Jacket minor device class of wearable */
- BT_MINOR_DEVICE_CLASS_WEARABLE_HELMET = 0x10, /**< Helmet minor device class of wearable */
- BT_MINOR_DEVICE_CLASS_WEARABLE_GLASSES = 0x14, /**< Glasses minor device class of wearable */
-
- BT_MINOR_DEVICE_CLASS_TOY_ROBOT = 0x04, /**< Robot minor device class of toy */
- BT_MINOR_DEVICE_CLASS_TOY_VEHICLE = 0x08, /**< Vehicle minor device class of toy */
- BT_MINOR_DEVICE_CLASS_TOY_DOLL_ACTION = 0x0C, /**< Doll/Action minor device class of toy */
- BT_MINOR_DEVICE_CLASS_TOY_CONTROLLER = 0x10, /**< Controller minor device class of toy */
- BT_MINOR_DEVICE_CLASS_TOY_GAME = 0x14, /**< Game minor device class of toy */
-
- BT_MINOR_DEVICE_CLASS_HEALTH_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_BLOOD_PRESSURE_MONITOR = 0x04, /**< Blood pressure monitor minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_THERMOMETER = 0x08, /**< Thermometer minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_WEIGHING_SCALE = 0x0C, /**< Weighing scale minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_GLUCOSE_METER = 0x10, /**< Glucose minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_PULSE_OXIMETER = 0x14, /**< Pulse oximeter minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_HEART_PULSE_RATE_MONITOR = 0x18, /**< Heart/Pulse rate monitor minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_DATA_DISPLAY = 0x1C, /**< Health data display minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_STEP_COUNTER = 0x20, /**< Step counter minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_BODY_COMPOSITION_ANALYZER = 0x24, /**< Body composition analyzer minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_PEAK_FLOW_MONITOR = 0x28, /**< Peak flow monitor minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_MEDICATION_MONITOR = 0x2C, /**< Medication monitor minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_KNEE_PROSTHESIS = 0x30, /**< Knee prosthesis minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_ANKLE_PROSTHESIS = 0x34, /**< Ankle prosthesis minor device class of health */
-} bt_minor_device_class_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of gap appearance type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_APPEARANCE_TYPE_UNKNOWN = 0x00, /**< Unknown appearance type */
- BT_APPEARANCE_TYPE_GENERIC_PHONE = 0x40, /**< Generic Phone type - Generic category */
- BT_APPEARANCE_TYPE_GENERIC_COMPUTER = 0x80, /**< Generic Computer type - Generic category */
- BT_APPEARANCE_TYPE_GENERIC_WATCH = 0xC0, /**< Generic Watch type - Generic category */
-} bt_appearance_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth device's LE connection mode.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_DEVICE_LE_CONNECTION_MODE_BALANCED, /**< Balanced mode of power consumption and connection latency */
- BT_DEVICE_LE_CONNECTION_MODE_LOW_LATENCY, /**< Low connection latency but high power consumption */
- BT_DEVICE_LE_CONNECTION_MODE_LOW_ENERGY, /**< Low power consumption but high connection latency */
-} bt_device_le_connection_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Enumerations of connected Bluetooth device event role.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_SOCKET_UNKNOWN = 0x00, /**< Unknown role*/
- BT_SOCKET_SERVER , /**< Server role*/
- BT_SOCKET_CLIENT, /**< Client role*/
-} bt_socket_role_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Enumerations of Bluetooth socket connection state.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_SOCKET_CONNECTED, /**< RFCOMM is connected */
- BT_SOCKET_DISCONNECTED, /**< RFCOMM is disconnected */
-} bt_socket_connection_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Enumerations for the types of profiles related with audio
- * @since_tizen 2.3
- */
-typedef enum {
- BT_AUDIO_PROFILE_TYPE_ALL = 0, /**< All supported profiles related with audio */
- BT_AUDIO_PROFILE_TYPE_HSP_HFP, /**< HSP(Headset Profile) and HFP(Hands-Free Profile) */
- BT_AUDIO_PROFILE_TYPE_A2DP, /**< A2DP(Advanced Audio Distribution Profile) */
- BT_AUDIO_PROFILE_TYPE_AG, /**< AG(Audio Gateway) */
- BT_AUDIO_PROFILE_TYPE_A2DP_SINK, /**< A2DP(Advanced Audio Distribution Profile) Sink role */
-} bt_audio_profile_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Enumerations for the call handling event
- * @since_tizen 2.3
- */
-typedef enum {
- BT_AG_CALL_HANDLING_EVENT_ANSWER = 0x00, /**< Request to answer an incoming call */
- BT_AG_CALL_HANDLING_EVENT_RELEASE, /**< Request to release a call */
- BT_AG_CALL_HANDLING_EVENT_REJECT, /**< Request to reject an incoming call */
-} bt_ag_call_handling_event_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Enumerations for the multi call handling event
- * @since_tizen 2.3
- */
-typedef enum {
- BT_AG_MULTI_CALL_HANDLING_EVENT_RELEASE_HELD_CALLS = 0x00, /**< Request to release held calls */
- BT_AG_MULTI_CALL_HANDLING_EVENT_RELEASE_ACTIVE_CALLS, /**< Request to release active calls */
- BT_AG_MULTI_CALL_HANDLING_EVENT_ACTIVATE_HELD_CALL, /**< Request to put active calls into hold state and activate another (held or waiting) call */
- BT_AG_MULTI_CALL_HANDLING_EVENT_MERGE_CALLS, /**< Request to add a held call to the conversation */
- BT_AG_MULTI_CALL_HANDLING_EVENT_EXPLICIT_CALL_TRANSFER, /**< Request to let a user who has two calls to connect these two calls together and release its connections to both other parties */
-} bt_ag_multi_call_handling_event_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the equalizer state
- * @since_tizen 2.4
- */
-typedef enum {
- BT_AVRCP_EQUALIZER_STATE_OFF = 0x01, /**< Equalizer Off */
- BT_AVRCP_EQUALIZER_STATE_ON, /**< Equalizer On */
-} bt_avrcp_equalizer_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the repeat mode
- * @since_tizen 2.4
- */
-typedef enum {
- BT_AVRCP_REPEAT_MODE_OFF = 0x01, /**< Repeat Off */
- BT_AVRCP_REPEAT_MODE_SINGLE_TRACK, /**< Single track repeat */
- BT_AVRCP_REPEAT_MODE_ALL_TRACK, /**< All track repeat */
- BT_AVRCP_REPEAT_MODE_GROUP, /**< Group repeat */
-} bt_avrcp_repeat_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the shuffle mode
- * @since_tizen 2.4
- */
-typedef enum {
- BT_AVRCP_SHUFFLE_MODE_OFF = 0x01, /**< Shuffle Off */
- BT_AVRCP_SHUFFLE_MODE_ALL_TRACK, /**< All tracks shuffle */
- BT_AVRCP_SHUFFLE_MODE_GROUP, /**< Group shuffle */
-} bt_avrcp_shuffle_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the scan mode
- * @since_tizen 2.4
- */
-typedef enum {
- BT_AVRCP_SCAN_MODE_OFF = 0x01, /**< Scan Off */
- BT_AVRCP_SCAN_MODE_ALL_TRACK, /**< All tracks scan */
- BT_AVRCP_SCAN_MODE_GROUP, /**< Group scan */
-} bt_avrcp_scan_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the player state
- * @since_tizen 3.0
- */
-typedef enum {
- BT_AVRCP_PLAYER_STATE_STOPPED = 0x00, /**< Stopped */
- BT_AVRCP_PLAYER_STATE_PLAYING, /**< Playing */
- BT_AVRCP_PLAYER_STATE_PAUSED, /**< Paused */
- BT_AVRCP_PLAYER_STATE_FORWARD_SEEK, /**< Seek Forward */
- BT_AVRCP_PLAYER_STATE_REWIND_SEEK, /**< Seek Rewind */
-} bt_avrcp_player_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumeration for the player control commands
- * @since_tizen 3.0
- */
-typedef enum {
- BT_AVRCP_CONTROL_PLAY = 0x01, /**< Play */
- BT_AVRCP_CONTROL_PAUSE, /**< Pause */
- BT_AVRCP_CONTROL_STOP, /**< Stop */
- BT_AVRCP_CONTROL_NEXT, /**< Next Track*/
- BT_AVRCP_CONTROL_PREVIOUS, /**< Previous track */
- BT_AVRCP_CONTROL_FAST_FORWARD, /**< Fast Forward */
- BT_AVRCP_CONTROL_REWIND /**< Rewind */
-} bt_avrcp_player_command_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Structure of Track metadata information.
- * @since_tizen 3.0
- *
- * @see #bt_class_s
- */
-typedef struct {
- const char *title; /**< Title */
- const char *artist; /**< Artist */
- const char *album; /**< Album name */
- const char *genre; /**< Album Genre */
- unsigned int total_tracks; /**< The total number of tracks */
- unsigned int number; /**< Track number */
- unsigned int duration; /**< Duration */
-} bt_avrcp_metadata_attributes_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 3.0
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_control_deinitialize()
- */
-typedef void (*bt_avrcp_control_connection_state_changed_cb) (bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the Song position mode is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] position Playback position in milliseconds. When position is 0 it means the track is starting and when it's greater than or equal to track's duration the track has ended.
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_position_changed_cb()
- * @see bt_avrcp_unset_position_changed_cb()
- */
-typedef void (*bt_avrcp_position_changed_cb) (unsigned int position, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the Song metadata information is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] track The song metadata information
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_track_info_changed_cb()
- * @see bt_avrcp_unset_track_info_changed_cb()
- */
-typedef void (*bt_avrcp_track_info_changed_cb) (bt_avrcp_metadata_attributes_info_s *track, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the Song Play status mode is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] play_state The song play status
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_play_status_changed_cb()
- * @see bt_avrcp_unset_play_status_changed_cb()
- */
-typedef void (*bt_avrcp_play_status_changed_cb) (bt_avrcp_player_state_e play_state, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Enumerations for the data channel type
- * @since_tizen 2.3
- */
-typedef enum {
- BT_HDP_CHANNEL_TYPE_RELIABLE = 0x01, /**< Reliable Data Channel */
- BT_HDP_CHANNEL_TYPE_STREAMING, /**< Streaming Data Channel */
-} bt_hdp_channel_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the integer type for GATT handle's value.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_DATA_TYPE_SINT8, /**< 8 bit signed int type */
- BT_DATA_TYPE_SINT16, /**< 16 bit signed int type */
- BT_DATA_TYPE_SINT32, /**< 32 bit signed int type */
- BT_DATA_TYPE_UINT8, /**< 8 bit unsigned int type */
- BT_DATA_TYPE_UINT16, /**< 16 bit unsigned int type */
- BT_DATA_TYPE_UINT32 /**< 32 bit unsigned int type */
-} bt_data_type_int_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the float type for GATT handle's value.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_DATA_TYPE_FLOAT, /**< 32 bit float type */
- BT_DATA_TYPE_SFLOAT /**< 16 bit float type */
-} bt_data_type_float_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the write type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_GATT_WRITE_TYPE_WRITE_NO_RESPONSE, /**< Write without response type */
- BT_GATT_WRITE_TYPE_WRITE /**< Write type */
-} bt_gatt_write_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the GATT handle's type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_GATT_TYPE_SERVICE = 0x01, /**< GATT service type */
- BT_GATT_TYPE_CHARACTERISTIC = 0x02, /** GATT characteristic type */
- BT_GATT_TYPE_DESCRIPTOR = 0x03, /** GATT descriptor type */
-} bt_gatt_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the service type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_GATT_SERVICE_TYPE_PRIMARY = 0x01, /**< GATT primary service type */
- BT_GATT_SERVICE_TYPE_SECONDARY = 0x02, /**< GATT secondary service type */
-} bt_gatt_service_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the characteristic's property.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_GATT_PROPERTY_BROADCAST = 0x01, /**< Broadcast property */
- BT_GATT_PROPERTY_READ = 0x02, /**< Read property */
- BT_GATT_PROPERTY_WRITE_WITHOUT_RESPONSE = 0x04, /**< Write without response property */
- BT_GATT_PROPERTY_WRITE = 0x08, /**< Write property */
- BT_GATT_PROPERTY_NOTIFY = 0x10, /**< Notify property */
- BT_GATT_PROPERTY_INDICATE = 0x20, /**< Indicate property */
- BT_GATT_PROPERTY_AUTHENTICATED_SIGNED_WRITES = 0x40, /**< Authenticated signed writes property */
- BT_GATT_PROPERTY_EXTENDED_PROPERTIES = 0x80, /**< Extended properties */
-} bt_gatt_property_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of gatt server's service changing mode.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_GATT_CLIENT_SERVICE_ADDED, /**< Service added */
- BT_GATT_CLIENT_SERVICE_REMOVED, /**< Service removed */
-} bt_gatt_client_service_change_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Enumerations of the attribute's permission.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_GATT_PERMISSION_READ = 0x01, /**< Read permission */
- BT_GATT_PERMISSION_WRITE = 0x02, /**< Write permission */
- BT_GATT_PERMISSION_ENCRYPT_READ = 0x04, /**< Readable permission required encryption */
- BT_GATT_PERMISSION_ENCRYPT_WRITE = 0x08, /**< Writable permission required encryption */
- BT_GATT_PERMISSION_ENCRYPT_AUTHENTICATED_READ = 0x10, /**< Readable permission required encryption and authentication */
- BT_GATT_PERMISSION_ENCRYPT_AUTHENTICATED_WRITE = 0x20, /**< Writable permission required encryption and authentication */
-} bt_gatt_permission_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Enumerations of the remote device request types for attributes
- * @since_tizen 3.0
- */
-typedef enum {
- BT_GATT_REQUEST_TYPE_READ = 0x00, /* Read Requested */
- BT_GATT_REQUEST_TYPE_WRITE = 0x01, /* Write Requested */
-} bt_gatt_att_request_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Enumerations for the types of PAN(Personal Area Networking) service.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_PANU_SERVICE_TYPE_NAP = 0, /**< Network Access Point */
-} bt_panu_service_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief The handle to control Bluetooth LE advertising.
- * @since_tizen 2.3
- */
-typedef void *bt_advertiser_h;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_h instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief The attribute handle of GATT(Generic Attribute Profile).
- * @since_tizen 2.3
- */
-typedef void *bt_gatt_attribute_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief The handle of a service, characteristic or descriptor.
- * @since_tizen 2.3.1
- */
-typedef void *bt_gatt_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief The handle of a GATT client which is associated with a remote device.
- * @since_tizen 2.3.1
- */
-typedef void *bt_gatt_client_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief The handle of a GATT server.
- * @since_tizen 3.0
- */
-typedef void *bt_gatt_server_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief The handle of calls state.
- * @since_tizen 2.3
- */
-typedef void *bt_call_list_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Class structure of device and service.
- * @since_tizen 2.3
- *
- * @see #bt_device_info_s
- * @see #bt_adapter_device_discovery_info_s
- * @see bt_device_bond_created_cb()
- * @see bt_adapter_device_discovery_state_changed_cb()
- */
-typedef struct {
- bt_major_device_class_e major_device_class; /**< Major device class. */
- bt_minor_device_class_e minor_device_class; /**< Minor device class. */
- int major_service_class_mask; /**< Major service class mask.
- This value can be a combination of #bt_major_service_class_e like #BT_MAJOR_SERVICE_CLASS_RENDERING | #BT_MAJOR_SERVICE_CLASS_AUDIO */
-} bt_class_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Structure of device discovery information.
- * @since_tizen 2.3
- *
- * @see #bt_class_s
- * @see bt_adapter_device_discovery_state_changed_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- char *remote_name; /**< The name of remote device */
- bt_class_s bt_class; /**< The Bluetooth classes */
- int rssi; /**< The strength indicator of received signal */
- bool is_bonded; /**< The bonding state */
- char **service_uuid; /**< The UUID list of service */
- int service_count; /**< The number of services */
- bt_appearance_type_e appearance; /**< The Bluetooth appearance */
- int manufacturer_data_len; /**< manufacturer specific data length */
- char *manufacturer_data; /**< manufacturer specific data */
-} bt_adapter_device_discovery_info_s;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Structure of le device discovery information.
- * @since_tizen 2.3
- *
- * @see #bt_class_s
- * @see bt_adapter_le_device_discovery_state_changed_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- int address_type; /**< The address type of remote device */
- int rssi; /**< The strength indicator of received signal */
- int adv_data_len; /**< advertising indication data length */
- char *adv_data; /**< advertising indication data */
- int scan_data_len; /**< scan response data length */
- char *scan_data; /**< scan response data */
-} bt_adapter_le_device_discovery_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Structure of le scan result information.
- * @since_tizen 2.3.1
- *
- * @see bt_adapter_le_start_scan()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- bt_device_address_type_e address_type; /**< The address type of remote device */
- int rssi; /**< The strength indicator of received signal */
- int adv_data_len; /**< advertising indication data length */
- char *adv_data; /**< advertising indication data */
- int scan_data_len; /**< scan response data length */
- char *scan_data; /**< scan response data */
-} bt_adapter_le_device_scan_result_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Structure of le iBeacon scan result information.
- * @since_tizen 3.0
- *
- * @see bt_adapter_le_start_scan()
- */
-typedef struct {
- int company_id; /**< company ID */
- int ibeacon_type; /**< Ibeacon type */
- char *uuid; /**< UUID */
- int major_id; /**< Major ID */
- int minor_id; /**< Minor ID */
- int measured_power; /**< measured Power */
-} bt_adapter_ibeacon_scan_result_info_s;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Structure of advertising parameters.
- * @since_tizen 2.3
- *
- * @see bt_adapter_le_advertising_state_changed_cb()
- * @see bt_adapter_le_start_advertising()
- */
-typedef struct {
- float interval_min; /**< Minimum advertising interval for non-directed advertising.
- A multiple of 0.625ms is only allowed (Time range : 20ms to 10.24sec). */
- float interval_max; /**< Maximum advertising interval for non-directed advertising.
- A multiple of 0.625ms is only allowed (Time range : 20ms to 10.24sec). */
- char filter_policy; /* Advertising filter policy */
- char type; /* Advertising type */
-} bt_adapter_le_advertising_params_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief LE service data structure.
- * @since_tizen 2.3.1
- *
- * @see bt_adapter_le_get_scan_result_service_data()
- */
-typedef struct {
- char *service_uuid; /**< 16 bit UUID of the service data */
- char *service_data; /**< Service data */
- int service_data_len; /**< Service data length */
-} bt_adapter_le_service_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Device information structure used for identifying pear device.
- * @since_tizen 2.3
- *
- * @see #bt_class_s
- * @see bt_device_bond_created_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- char *remote_name; /**< The name of remote device */
- bt_class_s bt_class; /**< The Bluetooth classes */
- char **service_uuid; /**< The UUID list of service */
- int service_count; /**< The number of services */
- bool is_bonded; /**< The bonding state */
- bool is_connected; /**< The connection state */
- bool is_authorized; /**< The authorization state */
- int manufacturer_data_len; /**< manufacturer specific data length */
- char *manufacturer_data; /**< manufacturer specific data */
-} bt_device_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Service Discovery Protocol (SDP) data structure.
- * @since_tizen 2.3
- *
- * @details This protocol is used for discovering available services or pear device,
- * and finding one to connect with.
- *
- * @see bt_device_service_searched_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- char **service_uuid; /**< The UUID list of service */
- int service_count; /**< The number of services. */
-} bt_device_sdp_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Device connection information structure.
- * @since_tizen 2.3
- *
- * @see bt_device_connection_state_changed_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- bt_device_connection_link_type_e link; /**< Link type */
- bt_device_disconnect_reason_e disconn_reason; /**< Disconnection reason */
-} bt_device_connection_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Rfcomm connection data used for exchanging data between Bluetooth devices.
- * @since_tizen 2.3
- *
- * @see bt_socket_connection_state_changed_cb()
- */
-typedef struct {
- int socket_fd; /**< The file descriptor of connected socket */
- int server_fd; /**< The file descriptor of the server socket or -1 for client connection */
- bt_socket_role_e local_role; /**< The local device role in this connection */
- char *remote_address; /**< The remote device address */
- char *service_uuid; /**< The service UUId */
-} bt_socket_connection_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Structure of RFCOMM received data.
- * @since_tizen 2.3
- *
- * @remarks User can use standard linux functions for reading/writing
- * data from/to sockets.
- *
- * @see bt_socket_data_received_cb()
- */
-typedef struct {
- int socket_fd; /**< The socket fd */
- int data_size; /**< The length of the received data */
- char *data; /**< The received data */
-} bt_socket_received_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the Bluetooth adapter state changes.
- * @since_tizen 2.3
- *
- * @param[in] result The result of the adapter state changing
- * @param[in] adapter_state The adapter state to be changed
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb()
- */
-typedef void (*bt_adapter_state_changed_cb)(int result, bt_adapter_state_e adapter_state, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when adapter name changes.
- * @since_tizen 2.3
- *
- * @param[in] device_name The name of the Bluetooth device to be changed
- * @param[in] user_data The user data passed from the callback registration function
- * @pre This function will be invoked when the name of Bluetooth adapter changes
- * if you register this callback using bt_adapter_set_name_changed_cb().
- * @see bt_adapter_set_name()
- * @see bt_adapter_set_name_changed_cb()
- * @see bt_adapter_unset_name_changed_cb()
- */
-typedef void (*bt_adapter_name_changed_cb)(char *device_name, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the visibility mode changes.
- * @since_tizen 2.3
- *
- * @param[in] result The result of the visibility mode changing
- * @param[in] visibility_mode The visibility mode to be changed
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre This function will be invoked when the visibility of Bluetooth adapter changes
- * if you register this callback using bt_adapter_set_visibility_mode_changed_cb().
- *
- * @see bt_adapter_set_visibility_mode_changed_cb()
- * @see bt_adapter_unset_visibility_mode_changed_cb()
- */
-typedef void (*bt_adapter_visibility_mode_changed_cb)
- (int result, bt_adapter_visibility_mode_e visibility_mode, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called every second until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
- * @since_tizen 2.3
- *
- * @remarks This callback function is called only if visibility mode is #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE.
- * @param[in] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds)
- * @param[in] user_data The user data passed from the callback registration function
- * @pre This function will be invoked if you register this callback using bt_adapter_set_visibility_duration_changed_cb().
- * @see bt_adapter_set_visibility_duration_changed_cb()
- * @see bt_adapter_unset_visibility_duration_changed_cb()
- */
-typedef void (*bt_adapter_visibility_duration_changed_cb)(int duration, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the state of device discovery changes.
- * @since_tizen 2.3
- *
- * @remarks If \a discovery_state is #BT_ADAPTER_DEVICE_DISCOVERY_FOUND,
- * then you can get some information, such as remote device address, remote device name, rssi, and bonding state.
- *
- * @param[in] result The result of the device discovery
- * @param[in] discovery_state The discovery state to be changed
- * @param[in] discovery_info The information of the discovered device \n
- * If \a discovery_state is #BT_ADAPTER_DEVICE_DISCOVERY_STARTED or
- * #BT_ADAPTER_DEVICE_DISCOVERY_FINISHED, then \a discovery_info is NULL.
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre Either bt_adapter_start_device_discovery() or bt_adapter_stop_device_discovery() will invoke this function
- * if you register this callback using bt_adapter_set_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_adapter_stop_device_discovery()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- * @see bt_adapter_unset_device_discovery_state_changed_cb()
- *
- */
-typedef void (*bt_adapter_device_discovery_state_changed_cb)
- (int result, bt_adapter_device_discovery_state_e discovery_state, bt_adapter_device_discovery_info_s *discovery_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when you get bonded devices repeatedly.
- * @since_tizen 2.3
- *
- * @param[in] device_info The bonded device information
- * @param[in] user_data The user data passed from the foreach function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_adapter_foreach_bonded_device() will invoke this function.
- *
- * @see bt_adapter_foreach_bonded_device()
- *
- */
-typedef bool (*bt_adapter_bonded_device_cb)(bt_device_info_s *device_info, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Called when the state of LE device discovery changes.
- * @since_tizen 2.3
- *
- * @remarks If \a discovery_state is #BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND,
- * then you can get some information, such as remote LE device address, remote device name, rssi, and bonding state.
- *
- * @param[in] result The result of the LE device discovery
- * @param[in] discovery_state The discovery state to be changed
- * @param[in] discovery_info The information of the discovered LE device \n
- * If \a discovery_state is #BT_ADAPTER_LE_DEVICE_DISCOVERY_STARTED or
- * #BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED, then \a discovery_info is NULL.
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre Either bt_adapter_start_device_discovery() or bt_adapter_stop_device_discovery() will invoke this function
- * if you register this callback using bt_adapter_set_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_le_start_device_discovery()
- * @see bt_adapter_le_stop_device_discovery()
- * @see bt_adapter_le_set_device_discovery_state_changed_cb()
- * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
- *
- */
-typedef void (*bt_adapter_le_device_discovery_state_changed_cb)
- (int result, bt_adapter_le_device_discovery_state_e discovery_state, bt_adapter_le_device_discovery_info_s *discovery_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Called when the LE advertisement has been found.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of the LE scan
- * @param[in] info The information of the found LE advertisement.
- * @param[in] user_data The user data passed from the start function
- *
- * @see bt_adapter_le_start_scan()
- *
- */
-typedef void (*bt_adapter_le_scan_result_cb)(int result,
- bt_adapter_le_device_scan_result_info_s *info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Called when the state of advertiser changes.
- * @since_tizen 2.3
- *
- * @param[out] result The result of the requested state change of advertiser
- * @param[out] advertiser The handle of the state changed advertiser
- * @param[out] adv_state The advertiser state to be changed
- * @param[out] user_data The user data passed from the start function
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_stop_advertising()
- */
-typedef void (*bt_adapter_le_advertising_state_changed_cb)(int result,
- bt_advertiser_h advertiser, bt_adapter_le_advertising_state_e adv_state, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the process of creating bond finishes.
- * @since_tizen 2.3
- *
- * @remarks If the remote user does not respond within 60 seconds, a time out will happen with #BT_ERROR_TIMED_OUT result code.\n
- * If bt_device_cancel_bonding() is called and it returns #BT_ERROR_NONE, then this callback function will be called
- * with #BT_ERROR_CANCELLED result. \n
- * If creating a bond succeeds but service search fails, then this callback will be called with #BT_ERROR_SERVICE_SEARCH_FAILED.
- * In this case, you should try service search again by bt_device_start_service_search() to get the supported service list.
- *
- * @param[in] result The result of the bonding device
- * @param[in] device_info The device information which you creates bond with
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre Either bt_device_create_bond() will invoke this function
- * if you register this callback using bt_device_set_bond_created_cb().
- *
- * @see bt_device_create_bond()
- * @see bt_device_cancel_bonding()
- * @see bt_device_set_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-typedef void (*bt_device_bond_created_cb)(int result, bt_device_info_s *device_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when you get connected profiles repeatedly.
- * @since_tizen 2.3
- *
- * @param[in] profile The connected Bluetooth profile
- * @param[in] user_data The user data passed from the foreach function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_device_foreach_connected_profiles() will invoke this function.
- * @see bt_device_foreach_connected_profiles()
- */
-typedef bool (*bt_device_connected_profile)(bt_profile_e profile, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the bond destroys.
- * @since_tizen 2.3
- *
- * @param[in] result The result that a bond is destroyed
- * @param[in] remote_address The address of the remote Bluetooth device to destroy bond with
- * @param[in] user_data The user data passed from the callback registration function
- * @pre bt_device_destroy_bond() will invoke this function
- * if you register this callback using bt_device_set_bond_destroyed_cb().
- *
- * @see bt_device_destroy_bond()
- * @see bt_device_set_bond_destroyed_cb()
- * @see bt_device_unset_bond_destroyed_cb()
- */
-typedef void (*bt_device_bond_destroyed_cb)(int result, char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the authorization of device changes.
- * @since_tizen 2.3
- *
- * @param[in] authorization The authorization of device
- * @param[in] remote_address The address of the remote Bluetooth device which is (un)authorized
- * @param[in] user_data The user data passed from the callback registration function
- * @pre bt_device_set_authorization() will invoke this function if you register this callback using bt_device_set_authorization_changed_cb().
- *
- * @see bt_device_set_authorization()
- * @see #bt_device_set_authorization_changed_cb()
- * @see #bt_device_unset_authorization_changed_cb()
- */
-typedef void (*bt_device_authorization_changed_cb)
- (bt_device_authorization_e authorization, char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the process of service search finishes.
- * @since_tizen 2.3
- *
- * @remark
- *
- * @param[in] result The result of the service searching
- * @param[in] sdp_info The structure of service lists found on a device
- * @param[in] user_data The user data passed from the callback registration function
- * @pre Either bt_device_start_service_search() will invoke this function
- * if you register this callback using bt_device_set_service_searched_cb().
- *
- * @see bt_device_start_service_search()
- * @see bt_device_set_service_searched_cb()
- * @see bt_device_unset_service_searched_cb()
- *
- */
-typedef void (*bt_device_service_searched_cb)(int result, bt_device_sdp_info_s *sdp_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @param[in] connected The connection status: (@c true = connected, @c false = disconnected)
- * @param[in] conn_info The connection information
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_device_set_connection_state_changed_cb()
- * @see bt_device_unset_connection_state_changed_cb()
- */
-typedef void (*bt_device_connection_state_changed_cb)(bool connected, bt_device_connection_info_s *conn_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Called when you receive data.
- * @since_tizen 2.3
- *
- * @param[in] data The received data from the remote device
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre When the connected remote Bluetooth device invokes bt_socket_send_data(),
- * this function will be invoked if you register this function using bt_socket_set_data_received_cb().
- *
- * @see bt_socket_set_data_received_cb()
- * @see bt_socket_unset_data_received_cb()
- * @see bt_socket_send_data()
- */
-typedef void (*bt_socket_data_received_cb)(bt_socket_received_data_s *data, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Called when the socket connection state changes.
- * @since_tizen 2.3
- *
- * @param[in] result The result of connection state changing
- * @param[in] connection_state The connection state
- * @param[in] connection The connection information which is established or disconnected
- * @param[in] user_data The user data passed from the callback registration function
- * @pre Either bt_socket_connect_rfcomm() will invoke this function.
- * In addition, bt_socket_connection_state_changed_cb() will be invoked when the socket connection state is changed.
- * @see bt_socket_listen_and_accept_rfcomm()
- * @see bt_socket_connect_rfcomm()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-typedef void (*bt_socket_connection_state_changed_cb)
- (int result, bt_socket_connection_state_e connection_state, bt_socket_connection_s *connection, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Called when a RFCOMM connection is requested.
- * @since_tizen 2.3
- *
- * @param[in] socket_fd The file descriptor of socket on which a connection is requested
- * @param[in] remote_address The address of remote device
- * @param[in] user_data The user data passed from the callback registration function
- * @pre If you register this callback function by bt_socket_set_connection_requested_cb(),
- * bt_socket_connection_requested_cb() will be invoked.
- */
-typedef void (*bt_socket_connection_requested_cb) (int socket_fd, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Called when an OPP connection is requested.
- * @since_tizen 2.3
- *
- * @details You must call bt_opp_server_accept_connection() if you want to accept.
- * Otherwise, you must call bt_opp_server_reject_connection().
- * @param[in] remote_address The address of remote device
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_server_accept()
- * @see bt_opp_server_reject()
- */
-typedef void (*bt_opp_server_connection_requested_cb)(const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Called when a file is being transferred.
- * @since_tizen 2.3
- *
- * @param[in] file The path of file to be pushed
- * @param[in] size The file size (bytes)
- * @param[in] percent The progress in percentage (1 ~ 100)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_server_accept()
- * @see bt_opp_server_accept_connection()
- */
-typedef void (*bt_opp_server_transfer_progress_cb) (const char *file, long long size, int percent, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Called when a transfer is finished.
- * @since_tizen 2.3
- *
- * @param[in] error_code The result of push
- * @param[in] file The path of file to be pushed
- * @param[in] size The file size (bytes)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_server_accept()
- * @see bt_opp_server_accept_connection()
- */
-typedef void (*bt_opp_server_transfer_finished_cb) (int result, const char *file, long long size, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Called when OPP server responds to the push request.
- * @since_tizen 2.3
- *
- * @param[in] result The result of OPP server response
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @pre bt_opp_client_push_files() will invoke this function.
- * @see bt_opp_client_push_files()
- */
-typedef void (*bt_opp_client_push_responded_cb)(int result, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Called when each file is being transferred.
- * @since_tizen 2.3
- *
- * @param[in] file The path of file to be pushed
- * @param[in] size The file size (bytes)
- * @param[in] percent The progress in percentage (1 ~ 100). 100 means that a file is transferred completely.
- * @param[in] user_data The user data passed from the callback registration function
- * @pre bt_opp_client_push_files() will invoke this function.
- * @see bt_opp_client_push_files()
- */
-typedef void (*bt_opp_client_push_progress_cb)(const char *file, long long size, int percent, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Called when the push request is finished.
- * @since_tizen 2.3
- *
- * @param[in] result The result of the push request
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_client_push_files()
- */
-typedef void (*bt_opp_client_push_finished_cb)(int result, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @details This callback is called when the connection state is changed.
- * When you call bt_audio_connect() or bt_audio_disconnect(), this callback is also called with error result even though these functions fail.
- * @param[in] result The result of changing the connection state
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] type The type of audio profile except #BT_AUDIO_PROFILE_TYPE_ALL
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_audio_set_connection_state_changed_cb()
- * @see bt_audio_unset_connection_state_changed_cb()
- */
-typedef void (*bt_audio_connection_state_changed_cb) (int result, bool connected, const char *remote_address, bt_audio_profile_type_e type, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when a call handling event happened from Hands-Free.
- * @since_tizen 2.3
- *
- * @param[in] event The call handling event happened from Hands-Free
- * @param[in] call_id The call ID
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_call_handling_event_cb()
- * @see bt_ag_unset_call_handling_event_cb()
- */
-typedef void (*bt_ag_call_handling_event_cb) (bt_ag_call_handling_event_e event, unsigned int call_id, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when a multi call handling event happened from Hands-Free.
- * @since_tizen 2.3
- *
- * @param[in] event The call handling event happened from Hands-Free
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_multi_call_handling_event_cb()
- * @see bt_ag_unset_multi_call_handling_event_cb()
- */
-typedef void (*bt_ag_multi_call_handling_event_cb) (bt_ag_multi_call_handling_event_e event, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
- * @since_tizen 2.3
- *
- * @param[in] dtmf The DTMF transmitted from Hands-Free
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_dtmf_transmitted_cb()
- * @see bt_ag_unset_dtmf_transmitted_cb()
- */
-typedef void (*bt_ag_dtmf_transmitted_cb) (const char *dtmf, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when the speaker gain of the remote device is changed.
- * @since_tizen 2.3
- *
- * @param[in] gain The gain of speaker (0 ~ 15)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_speaker_gain_changed_cb()
- * @see bt_ag_unset_speaker_gain_changed_cb()
- */
-typedef void (*bt_ag_speaker_gain_changed_cb) (int gain, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when the microphone gain of the remote device is changed.
- * @since_tizen 2.3
- *
- * @param[in] gain The gain of microphone (0 ~ 15)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_microphone_gain_changed_cb()
- * @see bt_ag_unset_microphone_gain_changed_cb()
- */
-typedef void (*bt_ag_microphone_gain_changed_cb) (int gain, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_target_deinitialize()
- */
-typedef void (*bt_avrcp_target_connection_state_changed_cb) (bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the equalizer state is changed by the remote control device.
- * @since_tizen 2.3
- *
- * @param[in] equalizer The equalizer state
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_equalizer_state_changed_cb()
- * @see bt_avrcp_unset_equalizer_state_changed_cb()
- */
-typedef void (*bt_avrcp_equalizer_state_changed_cb) (bt_avrcp_equalizer_state_e equalizer, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the repeat mode is changed by the remote control device.
- * @since_tizen 2.3
- *
- * @param[in] repeat The repeat mode
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_repeat_mode_changed_cb()
- * @see bt_avrcp_unset_repeat_mode_changed_cb()
- */
-typedef void (*bt_avrcp_repeat_mode_changed_cb) (bt_avrcp_repeat_mode_e repeat, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the shuffle mode is changed by the remote control device.
- * @since_tizen 2.3
- *
- * @param[in] shuffle The shuffle mode
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_shuffle_mode_changed_cb()
- * @see bt_avrcp_unset_shuffle_mode_changed_cb()
- */
-typedef void (*bt_avrcp_shuffle_mode_changed_cb) (bt_avrcp_shuffle_mode_e shuffle, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the scan mode is changed by the remote control device.
- * @since_tizen 2.3
- *
- * @param[in] shuffle The shuffle mode
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_scan_mode_changed_cb()
- * @see bt_avrcp_unset_scan_mode_changed_cb()
- */
-typedef void (*bt_avrcp_scan_mode_changed_cb) (bt_avrcp_scan_mode_e scan, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @details This callback is called when the connection state is changed.
- * When you call bt_hid_host_connect() or bt_hid_host_disconnect(), this callback is also called with error result even though these functions fail.
- * @param[in] result The result of changing the connection state
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hid_host_connect()
- * @see bt_hid_host_disconnect()
- */
-typedef void (*bt_hid_host_connection_state_changed_cb) (int result, bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Called when the connection is established.
- * @since_tizen 2.3
- *
- * @param[in] result The result of connecting to the remote device
- * @param[in] remote_address The address of connected remote device
- * @param[in] app_id The ID of application
- * @param[in] type The type of HDP(Health Device Profile) channel
- * @param[in] channel The connected data channel
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hdp_disconnected_cb
- * @see bt_hdp_set_connection_state_changed_cb()
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-typedef void (*bt_hdp_connected_cb) (int result, const char *remote_address, const char *app_id,
- bt_hdp_channel_type_e type, unsigned int channel, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Called when the connection is disconnected.
- * @since_tizen 2.3
- *
- * @param[in] result The result of disconnecting from the remote device
- * @param[in] remote_address The address of disconnected remote device
- * @param[in] channel The connected data channel
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hdp_connected_cb
- * @see bt_hdp_set_connection_state_changed_cb()
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-typedef void (*bt_hdp_disconnected_cb) (int result, const char *remote_address, unsigned int channel, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Called when the you receive the data.
- * @since_tizen 2.3
- *
- * @param[in] channel The connected data channel
- * @param[in] data The received data
- * @param[in] size The size of received data (byte)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hdp_set_data_received_cb()
- * @see bt_hdp_unset_data_received_cb()
- */
-typedef void (*bt_hdp_data_received_cb) (unsigned int channel, const char *data, unsigned int size, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_foreach_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when you get the primary services repeatedly.
- * @since_tizen 2.3
- *
- * @param[in] service The attribute handle of service
- * @param[in] user_data The user data passed from the foreach function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_gatt_foreach_primary_services() will invoke this function.
- * @see bt_gatt_foreach_primary_services()
- */
-typedef bool (*bt_gatt_primary_service_cb) (bt_gatt_attribute_h service, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. This is not required because characteristic discovery is happened automatically.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called after the characteristics are discovered by bt_gatt_discover_characteristics().
- * @since_tizen 2.3
- *
- * @remarks If bt_gatt_discover_characteristics() failed, then this callback function is called only once with 0 total and NULL characteristic_handle.
- * @param[in] result The result of discovering
- * @param[in] index The index of characteristics in a service, starts from 0
- * @param[in] total The total number of characteristics in a service
- * @param[in] characteristic The attribute handle of characteristic
- * @param[in] user_data The user data passed from the request function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_gatt_discover_characteristics() will invoke this callback.
- * @see bt_gatt_discover_characteristics()
- */
-typedef bool (*bt_gatt_characteristics_discovered_cb) (int result, int index, int total, bt_gatt_attribute_h characteristic, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_foreach_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when you get the included services repeatedly.
- * @since_tizen 2.3
- *
- * @param[in] service The attribute handle of service
- * @param[in] user_data The user data passed from the foreach function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_gatt_foreach_included_services() will invoke this function.
- * @see bt_gatt_foreach_included_services()
- */
-typedef bool (*bt_gatt_included_service_cb) (bt_gatt_attribute_h service, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_characteristic_value_changed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when a characteristic in service is changed.
- * @since_tizen 2.3
- *
- * @param[in] characteristic The attribute handle of characteristic
- * @param[in] value The value of characteristic (byte array)
- * @param[in] value_length The length of value
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_gatt_set_characteristic_changed_cb()
- * @see bt_gatt_unset_characteristic_changed_cb()
- */
-typedef void (*bt_gatt_characteristic_changed_cb) (bt_gatt_attribute_h characteristic, unsigned char *value, int value_length, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_request_completed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when a characteristic value is written.
- * @since_tizen 2.3
- *
- * @see bt_gatt_set_characteristic_value()
- */
-typedef void (*bt_gatt_characteristic_write_cb) (void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_request_completed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when a characteristic value is read.
- * @since_tizen 2.3
- *
- * @param[in] value The value of characteristic (byte array)
- * @param[in] value_length The length of value
- * @param[in] user_data The user data passed from the foreach function
- * @see bt_gatt_read_characteristic_value()
- */
-typedef void (*bt_gatt_characteristic_read_cb) (unsigned char *value,
- int value_length, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. This is not required because descriptor discovery is happened automatically.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called after the characteristics descriptors are discovered by bt_gatt_discover_characteristic_descriptor().
- * @since_tizen 2.3
- *
- * @param[in] result The result of discovering
- * @param[in] characteristic_format The format of the information data.
- * characteristic_format = 0x01 indicates UUIDs are 16-bits
- * characteristic_format = 0x02 indicates UUIDs are 128-bits
- * @param[in] total The total number of elements in characteristic_descriptor
- * @param[in] characteristic descriptor The attribute handle and the UUID of characteristic descriptor
- * @param[in] user_data The user data passed from the request function
- * @see bt_gatt_discover_characteristic_descriptor()
- */
-typedef void (*bt_gatt_characteristic_descriptor_discovered_cb) (int result,
- unsigned char characteristic_format, int total,
- bt_gatt_attribute_h characteristic_descriptor, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when you get GATT handles repeatedly
- * @since_tizen 2.3.1
- *
- * @param[in] total The total number of GATT handles to be called
- * @param[in] index The index of current GATT handle. It starts from 0.
- * @param[in] gatt_handle The GATT handle
- * @param[in] user_data The user data passed from the foreach function
- *
- * @see bt_gatt_service_foreach_characteristics()
- * @see bt_gatt_service_foreach_included_services()
- * @see bt_gatt_characteristic_foreach_descriptors()
- * @see bt_gatt_client_foreach_services()
- */
-typedef bool (*bt_gatt_foreach_cb) (int total, int index, bt_gatt_h gatt_handle,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when the client request(e.g. read / write) has been completed
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of a request
- * @param[in] request_handle The requesting GATT handle
- * @param[in] user_data The user data passed from the requesting function
- *
- * @see bt_gatt_client_read_value()
- * @see bt_gatt_client_write_value()
- */
-typedef void (*bt_gatt_client_request_completed_cb) (int result,
- bt_gatt_h request_handle, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when a value of a watched characteristic's GATT handle has been changed
- * @since_tizen 2.3.1
- *
- * @remarks After this function is returned, a changed value is automatically
- * applied to @a characteristic. Before that, @a characteristic has an old value.
- *
- * @param[in] characteristic The characteristic's GATT handle of which value change is informed. It has an old value.
- * @param[in] value The new value
- * @param[in] len The length of @a value
- * @param[in] user_data The user data passed from the registering function
- *
- * @see bt_gatt_client_set_characteristic_value_changed_cb()
- */
-typedef void (*bt_gatt_client_characteristic_value_changed_cb) (bt_gatt_h characteristic,
- char *value, int len, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when a service of a remote GATT server has been changed.
- * @since_tizen 3.0
- *
- * @param[in] client The handle of a GATT client which is associated with a remote device.
- * @param[in] change_type The changed type
- * @param[in] service_uuid The changed service uuid
- * @param[in] user_data The user data passed from the registering function
- *
- * @see bt_gatt_client_set_characteristic_value_changed_cb()
- */
-typedef void (*bt_gatt_client_service_changed_cb) (bt_gatt_client_h client,
- bt_gatt_client_service_change_type_e change_type,
- const char* service_uuid, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @details This callback is called when the connection state is changed.
- * When you called bt_gatt_connect() or bt_gatt_disconnect(), this callback is also called with error result even though these functions fail.
- *
- * @param[in] result The result of changing the connection state.
- * @param[in] connected The state to be changed, @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote_address
- * @param[in] user_data The user data passed from the callback registration function.
- *
- * @see bt_gatt_connect()
- * @see bt_gatt_disconnect()
- * @see bt_gatt_set_connection_state_changed_cb()
- * @see bt_gatt_unset_connection_state_changed_cb()
- */
-typedef void (*bt_gatt_connection_state_changed_cb)(int result, bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Called when a value of a characteristic or descriptor's GATT handle has been changed.
- * @since_tizen 3.0
- *
- * @details For finishing the request, call the function #bt_gatt_server_send_response in callback.
- *
- * @remarks After this function is returned, a changed value is automatically
- * applied to @a gatt_handle. Before that, @a gatt_handle has an old value.
- * @remarks The @a remote_address must not be freed by application.
- * @remarks The @a server must not be freed by application.
- * @remarks The @a gatt_handle must not be freed by application.
- * @remarks The @a value must not be freed by application.
- *
- * @param[in] remote_address The address of the remote device which requests a change
- * @param[in] request_id The identification of this request. It will be used to send a response.
- * @param[in] server The GATT server handle
- * @param[in] gatt_handle The characteristic or descriptor's GATT handle which has an old value
- * @param[in] response_needed Indicates whether a response is required by the remote device - @c true if required, @c false if not
- * @param[in] offset The requested offset from where the @a gatt_handle value will be updated
- * @param[in] value The new value
- * @param[in] len The length of @a value
- * @param[in] user_data The user data passed from the registration function
- *
- * @see bt_gatt_server_set_write_value_requested_cb()
- * @see bt_gatt_server_send_response()
- */
-typedef void (*bt_gatt_server_write_value_requested_cb) (const char *remote_address,
- int request_id, bt_gatt_server_h server,
- bt_gatt_h gatt_handle, bool response_needed, int offset,
- const char *value, int len, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Called when the remote device requests to read a value on a GATT server.
- * @since_tizen 3.0
- *
- * @details For finishing the request, call the function #bt_gatt_server_send_response in callback.
- *
- * @remarks The @a remote_address must not be freed by application.
- * @remarks The @a server must not be freed by application.
- * @remarks The @a gatt_handle must not be freed by application.
- *
- * @param[in] remote_address The address of the requesting remote device
- * @param[in] request_id The identification of this request. It will be used to send a response.
- * @param[in] server The GATT server handle
- * @param[in] gatt_handle The characteristic or descriptor's GATT handle to be read
- * @param[in] offset The requested offset from where the GATT handle's value is read
- * @param[in] user_data The user data passed from the registration function
- *
- * @see bt_gatt_server_set_read_value_requested_cb()
- * @see bt_gatt_server_send_response()
- */
-typedef void (*bt_gatt_server_read_value_requested_cb) (const char *remote_address,
- int request_id, bt_gatt_server_h server, bt_gatt_h gatt_handle,
- int offset, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Called when the remote device enables or disables the Notification/Indication for particular characteristics.
- * @since_tizen 3.0
- *
- * @details By using this callback function, server can know notification state.
- *
- * @remarks The @a server must not be freed by application.
- * @remarks The @a gatt_handle must not be freed by application.
- *
- * @param[in] notify Indicates whether the Notification/Indication is enabled or not
- * @param[in] server The GATT server handle
- * @param[in] gatt_handle The characteristic's GATT handle to be read
- * @param[in] user_data The user data passed from the registration function
- *
- * @see bt_gatt_server_set_read_value_requested_cb()
- */
-typedef void (*bt_gatt_server_characteristic_notification_state_changed_cb) (bool notify,
- bt_gatt_server_h server, bt_gatt_h gatt_handle, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Called when the sending notification / indication is done.
- * @since_tizen 3.0
- *
- * @remarks The @a remote_address must not be freed by application.
- * @remarks The @a server must not be freed by application.
- * @remarks The @a characteristic must not be freed by application.
- *
- * @remarks In case of an indication, once a confirmation is received from the remote device this callback will be called. \n
- * This callback will be called several times if there are two or more remote devices which enable a Client Characteristic Configuration Descriptor(CCCD). \n
- * For the last remote device, @a completed will be set as true.
- *
- * @param[in] result The result of a sending operation
- * @param[in] remote_address The address of the remote device
- * @param[in] server The GATT server handle
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] completed If this callback is for the last remote device which enables a CCCD, it will be true. Or it will be false.
- * @param[in] user_data The user data passed from the requesting function
- *
- * @see bt_gatt_server_notify_characteristic_changed_value()
- */
-typedef void (*bt_gatt_server_notification_sent_cb) (int result,
- const char *remote_address, bt_gatt_server_h server,
- bt_gatt_h characteristic, bool completed, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @param[in] connected Indicates whether a client is connected or disconnected
- * @param[in] remote_address The remote address
- * @param[in] interface_name The interface name. For example, bnep0, bnep1.
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_nap_set_connection_state_changed_cb()
- * @see bt_nap_unset_connection_state_changed_cb()
- */
-typedef void (*bt_nap_connection_state_changed_cb) (bool connected, const char *remote_address, const char *interface_name, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @details This callback is called when the connection state is changed.
- * When you call bt_panu_connect() or bt_panu_disconnect(), this callback is also called with error result even though these functions fail.
- * @param[in] result The result of changing the connection state
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] type The type of PAN service
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_nap_set_connection_state_changed_cb()
- * @see bt_nap_unset_connection_state_changed_cb()
- */
-typedef void (*bt_panu_connection_state_changed_cb) (int result, bool connected, const char *remote_address, bt_panu_service_type_e type, void *user_data);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_TYPE_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_EXTENSION_H__
-#define __TIZEN_NETWORK_BLUETOOTH_TYPE_EXTENSION_H__
-
- #ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_type_extension.h
- */
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when the SCO(Synchronous Connection Oriented link) state is changed.
- * @since_tizen 2.3
- *
- * @details This callback is called when the SCO state is changed.
- * When you call bt_ag_open_sco() or bt_ag_close_sco(), this callback is also called with error result even though these functions failed.
- * @param[in] result The result of changing the connection state
- * @param[in] opened The state to be changed: (@c true = opened, @c false = not opened)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_sco_state_changed_cb()
- * @see bt_ag_unset_sco_state_changed_cb()
- * @see bt_ag_open_sco()
- * @see bt_ag_close_sco()
- */
-typedef void (*bt_ag_sco_state_changed_cb) (int result, bool opened, void *user_data);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_TYPE_EXTENSION_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_INTERNAL_H__
-#define __TIZEN_NETWORK_BLUETOOTH_TYPE_INTERNAL_H__
-
- #ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_type_internal.h
- */
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth adapter le state.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_DISABLED = 0x00, /**< Bluetooth le is disabled */
- BT_ADAPTER_LE_ENABLED, /**< Bluetooth le is enabled */
-} bt_adapter_le_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Called when the Bluetooth adapter le state changes.
- * @since_tizen 2.3
- *
- * @param[in] result The result of the adapter state changing
- * @param[in] adapter_le_state The adapter le state to be changed
- * @param[in] user_data The user data passed from the callback registration function
- * @pre Either bt_adapter_le_enable() or bt_adapter_le_disable() will invoke this callback if you register this callback using bt_adapter_le_set_state_changed_cb().
- * @see bt_adapter_le_enable()
- * @see bt_adapter_le_disable()
- * @see bt_adapter_le_set_state_changed_cb()
- * @see bt_adapter_le_unset_state_changed_cb()
- */
-typedef void (*bt_adapter_le_state_changed_cb)(int result, bt_adapter_le_state_e adapter_le_state, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Enumerations for the call state
- * @since_tizen 2.3
- */
-typedef enum {
- BT_AG_CALL_EVENT_IDLE = 0x00, /**< Idle */
- BT_AG_CALL_EVENT_ANSWERED, /**< Answered */
- BT_AG_CALL_EVENT_HELD, /**< Held */
- BT_AG_CALL_EVENT_RETRIEVED, /**< Retrieved */
- BT_AG_CALL_EVENT_DIALING, /**< Dialing */
- BT_AG_CALL_EVENT_ALERTING, /**< Alerting */
- BT_AG_CALL_EVENT_INCOMING, /**< Incoming */
-} bt_ag_call_event_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Enumerations for the call state
- * @since_tizen 2.3
- */
-typedef enum {
- BT_AG_CALL_STATE_IDLE = 0x00, /**< Idle state */
- BT_AG_CALL_STATE_ACTIVE, /**< Active state */
- BT_AG_CALL_STATE_HELD, /**< Held state */
- BT_AG_CALL_STATE_DIALING, /**< Dialing state */
- BT_AG_CALL_STATE_ALERTING, /**< Alerting state */
- BT_AG_CALL_STATE_INCOMING, /**< Incoming state */
- BT_AG_CALL_STATE_WAITING, /**< Waiting for connected indication event after answering an incoming call*/
-} bt_ag_call_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_MODULE
- * @brief Enumerations for the transfer type
- * @since_tizen 3.0
- */
-typedef enum {
- BT_TRANSFER_INBOUND, /**< Inbound Transfer Type */
- BT_TRANSFER_OUTBOUND, /**< Outbound Transfer Type */
-} bt_opp_transfer_type_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Enumerations of the Bluetooth A2DP role.
- * @since_tizen 4.0
- */
-typedef enum {
- BT_A2DP_SOURCE,
- BT_A2DP_SINK,
-} bt_audio_role_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the connectable state changes.
- * @since_tizen 2.3
- *
- * @param[in] result The result of the connectable state changing
- * @param[in] connectable The connectable to be changed
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre This function will be invoked when the connectable state of local Bluetooth adapter changes
- * if you register this callback using bt_adapter_set_connectable_changed_cb().
- *
- * @see bt_adapter_set_connectable()
- * @see bt_adapter_set_connectable_changed_cb()
- * @see bt_adapter_unset_connectable_changed_cb()
- */
-typedef void (*bt_adapter_connectable_changed_cb)
- (int result, bool connectable, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Called when the push is requested.
- * @since_tizen 2.3
- *
- * @details You must call bt_opp_server_accept() if you want to accept.
- * Otherwise, you must call bt_opp_server_reject().
- * @param[in] file The path of file to be pushed
- * @param[in] size The file size (bytes)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_server_initialize()
- */
-typedef void (*bt_opp_server_push_requested_cb)(const char *file, int size, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth adapter le scan type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_PASSIVE_SCAN = 0x00,
- BT_ADAPTER_LE_ACTIVE_SCAN
-} bt_adapter_le_scan_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the manufacturer dat changes.
- * @since_tizen 2.3
- *
- * @param[in] data The manufacurer data of the Bluetooth device to be changed
- * @param[in] len The length of @a data
- * @param[in] user_data The user data passed from the callback registration function
- * @pre This function will be invoked when the manufacturer data of Bluetooth adapter changes
- * if callback is registered using bt_adapter_set_manufacturer_data_changed_cb().
- * @see bt_adapter_set_manufacturer_data()
- * @see bt_adapter_set_manufacturer_data_changed_cb()
- * @see bt_adapter_unset_manufacturer_data_changed_cb()
- */
-typedef void (*bt_adapter_manufacturer_data_changed_cb) (char *data,
- int len, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called repeatedly when you get the devices connected with specific profile.
- * @since_tizen 3.0
- *
- * @param[in] remote_address The address of remote device
- * @param[in] user_data The user data passed from the callback registration function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_adapter_foreach_profile_connected_devices() will invoke this function.
- * @see bt_adapter_foreach_profile_connected_devices()
- */
-typedef bool (*bt_adapter_profile_connected_devices_cb)(const char *remote_address, void *user_data);
-
-/**
-* @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
-* @brief DPM BT allowance state
-* @since_tizen 3.0
-*/
-typedef enum {
- BT_DPM_ERROR = -1, /**< bluetooth allowance error */
- BT_DPM_BT_ALLOWED, /**< bluetooth allowance allowed */
- BT_DPM_HANDSFREE_ONLY, /**< bluetooth allowance handsfree only */
- BT_DPM_BT_RESTRICTED, /**< bluetooth allowance restricted */
-} bt_dpm_allow_e;
-
-/**
-* @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
-* @brief DPM Policy status
-* @since_tizen 3.0
-*/
-typedef enum {
- BT_DPM_STATUS_ERROR = -1,
-
- BT_DPM_ALLOWED = 0, /**< DPM Policy status allowed. */
- BT_DPM_RESTRICTED = 1, /**< DPM Policy status restricted. */
-
- BT_DPM_ENABLE = 1, /**< DPM Policy status enabled. */
- BT_DPM_DISABLE = 0, /**< DPM Policy status disabled. */
-
- BT_DPM_FALSE = 0, /**< DPM Policy status false. */
- BT_DPM_TRUE = 1, /**< DPM Policy status true. */
-} bt_dpm_status_e;
-
-/**
-* @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
-* @brief DPM Profile states
-* @since_tizen 3.0
-*/
-typedef enum {
- BT_DPM_POLICY_A2DP_PROFILE_STATE,
- BT_DPM_POLICY_AVRCP_PROFILE_STATE,
- BT_DPM_POLICY_BPP_PROFILE_STATE,
- BT_DPM_POLICY_DUN_PROFILE_STATE,
- BT_DPM_POLICY_FTP_PROFILE_STATE,
- BT_DPM_POLICY_HFP_PROFILE_STATE,
- BT_DPM_POLICY_HSP_PROFILE_STATE,
- BT_DPM_POLICY_PBAP_PROFILE_STATE,
- BT_DPM_POLICY_SAP_PROFILE_STATE,
- BT_DPM_POLICY_SPP_PROFILE_STATE,
- BT_DPM_PROFILE_NONE,
-} bt_dpm_profile_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief The handle to control Bluetooth LE scan filter
- * @since_tizen 2.4
- */
-typedef void *bt_scan_filter_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Device LE connection update structure.
- * @since_tizen 2.3
- */
-typedef struct {
- unsigned int interval_min; /**< Minimum value for the connection event interval (msec) */
- unsigned int interval_max; /**< Maximum value for the connection event interval (msec) */
- unsigned int latency; /**< Slave latency (msec) */
- unsigned int time_out; /**< Supervision timeout (msec) */
-} bt_le_conn_update_s;
-
-/**
- * Structure to DPM device list
- */
-typedef struct {
- int count;
- char **devices;
-} bt_dpm_device_list_s;
-
-/**
- * Structure to DPM uuid list
- */
-typedef struct {
- int count;
- char **uuids;
-} bt_dpm_uuids_list_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth HID mouse's button.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HID_MOUSE_BUTTON_NONE = 0x00, /**<The mouse's none value*/
- BT_HID_MOUSE_BUTTON_LEFT = 0x01, /**<The mouse's left button value*/
- BT_HID_MOUSE_BUTTON_RIGHT = 0x02, /**<The mouse's right button value*/
- BT_HID_MOUSE_BUTTON_MIDDLE = 0x04 /**<The mouse's middle button value*/
-} bt_hid_mouse_button_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief The structure type containing the HID mouse event information.
- * @since_tizen 3.0
- *
- * @see bt_hid_device_send_mouse_event()
- */
-typedef struct {
- int buttons; /**< The button values, we can combine key's values when we pressed multiple mouse buttons*/
- int axis_x; /**< The location's x value, -128 ~127 */
- int axis_y; /**< The location's y value, -128 ~127 */
- int padding; /**< The padding value, -128 ~127 */
-} bt_hid_mouse_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief The structure type containing the HID keyboard event information.
- * @since_tizen 3.0
- * @details If you want to know more detail values, refer to http://www.usb.org/developers/hidpage/ and see "HID Usage Tables"
- *
- * @see bt_hid_device_send_key_event()
- */
-typedef struct {
- unsigned char modifier; /**< The modifier keys : such as shift, alt */
- unsigned char key[8]; /**< The key value - currently pressed keys : Max 8 at once */
-} bt_hid_key_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth HID header type.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HID_HEADER_HANDSHAKE, /**< The Bluetooth HID header type: Handshake */
- BT_HID_HEADER_HID_CONTROL, /**< The Bluetooth HID header type: HID control */
- BT_HID_HEADER_GET_REPORT, /**< The Bluetooth HID header type: Get report */
- BT_HID_HEADER_SET_REPORT, /**< The Bluetooth HID header type: Set report */
- BT_HID_HEADER_GET_PROTOCOL, /**< The Bluetooth HID header type: Get protocol */
- BT_HID_HEADER_SET_PROTOCOL, /**< The Bluetooth HID header type: Set protocol */
- BT_HID_HEADER_DATA, /**< The Bluetooth HID header type: Data */
- BT_HID_HEADER_UNKNOWN /**< The Bluetooth HID header type: Unknown */
-} bt_hid_header_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth HID parameter type.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HID_PARAM_DATA_RTYPE_INPUT, /**< Parameter type: Input */
- BT_HID_PARAM_DATA_RTYPE_OUTPUT /**< Parameter type: Output */
-} bt_hid_param_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth HID handshake type.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HID_HANDSHAKE_SUCCESSFUL = 0x00, /**< Handshake error code none */
- BT_HID_HANDSHAKE_NOT_READY, /**< Handshake error code Not Ready */
- BT_HID_HANDSHAKE_ERR_INVALID_REPORT_ID, /**< Handshake error code send invalid report id */
- BT_HID_HANDSHAKE_ERR_UNSUPPORTED_REQUEST, /**< Handshake error code request unsupported request */
- BT_HID_HANDSHAKE_ERR_INVALID_PARAMETER, /**< Handshake error code received invalid parameter */
- BT_HID_HANDSHAKE_ERR_UNKNOWN = 0x0e, /**< unknown error */
- BT_HID_HANDSHAKE_ERR_FATAL /**< Fatal error */
-} bt_hid_handshake_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief The structure type containing data received from the HID Host.
- * @since_tizen 3.0
- */
-typedef struct {
- const char *address; /**< The remote device's address */
- bt_hid_header_type_e header_type; /**< The header type */
- bt_hid_param_type_e param_type; /**< The parameter type */
- int data_size; /**< The length of the received data */
- const char *data; /**< The received data */
-} bt_hid_device_received_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Called when the Bluetooth HID Device connection state changes.
- * @details The following error codes can be delivered: \n
- * #BT_ERROR_NONE \n
- * #BT_ERROR_OPERATION_FAILED \n
- * @since_tizen 3.0
- *
- * @param[in] result The result of changing the connection state.
- * @param[in] connected The requested state. @a true means the connection is enabled, @false means the connection is disabled.
- * @param[in] remote_address The remote device's address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hid_device_activate()
- */
-typedef void (*bt_hid_device_connection_state_changed_cb) (int result,
- bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Called when the HID Device receives data from the HID Host.
- * @details The following error codes can be delivered: \n
- * #BT_ERROR_NONE \n
- * #BT_ERROR_OPERATION_FAILED \n
- * @since_tizen 3.0
- *
- * @param[in] data The data received from the HID Host.
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hid_device_set_data_received_cb()
- */
-typedef void (*bt_hid_device_data_received_cb)(const bt_hid_device_received_data_s *data, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Trusted Profile enumeration.
- * @since_tizen 3.0
- *
- * @see bt_device_set_profile_trusted()
- * @see bt_device_get_profile_trusted()
- */
-typedef enum {
- BT_TRUSTED_PROFILE_PBAP = 1,
- BT_TRUSTED_PROFILE_MAP,
- BT_TRUSTED_PROFILE_SAP,
- BT_TRUSTED_PROFILE_ALL = 0xFFFFFFFF,
-} bt_trusted_profile_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Restricted Profile enumeration.
- * @since_tizen 3.0
- *
- * @see bt_device_set_profile_restricted()
- * @see bt_device_get_profile_restricted()
- */
-typedef enum {
- BT_RESTRICTED_PROFILE_HFP_HS = 1,
- BT_RESTRICTED_PROFILE_A2DP,
-} bt_restricted_profile_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumerations of the authentication event types.
- * @since_tizen 3.0
- *
- */
-typedef enum {
- BT_AUTH_KEYBOARD_PASSKEY_DISPLAY = 0, /**< PIN display event to user for entering PIN in keyboard */
- BT_AUTH_PIN_REQUEST, /**< Legacy PIN or PASSKEY request event */
- BT_AUTH_PASSKEY_CONFIRM_REQUEST, /**< PASSKEY confirmation event to match PASSKEY in remote device */
-} bt_authentication_type_info_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
- * @brief Proximity Profile Role
- * @since_tizen 3.0
- */
-typedef enum {
- BT_PROXIMITY_REPORTER, /**< Proximity Profile Reporter role. */
- BT_PROXIMITY_MONITOR, /**< Proximity Profile Monitor role. */
-} bt_proximity_role_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
- * @brief Proximity Profile Role
- * @since_tizen 3.0
- */
-typedef enum {
- BT_PROXIMITY_LINKLOSS_ALERT = 0x01, /**< Proximity profile Link Loss alert property */
- BT_PROXIMITY_IMMEDIATE_ALERT = 0x02, /**< Proximity Profile Immediate alert property */
- BT_PROXIMITY_TX_POWER = 0x04, /**< Proximity Profile Immediate alert property */
-} bt_proximity_property_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when Trusted Profiles is changed.
- * @since_tizen 3.0
- *
- * @param[in] result The result of supported profile callback
- * @param[in] remote_address Address of remote device
- * @param[in] trusted_profiles Trusted profile FLAG
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_device_set_trusted_profile_cb()
- * @see bt_device_unset_trusted_profile_cb()
- */
-typedef void (*bt_device_trusted_profiles_cb)
- (int result, char *remote_address, int trusted_profile, bool supported, bool trusted, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Attribute protocol MTU change information structure.
- * @since_tizen 3.0
- *
- * @see bt_device_att_mtu_changed_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- unsigned int mtu; /** < MTU value */
- unsigned int status; /** < request status*/
-} bt_device_att_mtu_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 3.0
- *
- * @param[in] connected The connection status: (@c true = connected, @c false = disconnected)
- * @param[in] conn_info The connection information
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_device_set_connection_state_changed_cb()
- * @see bt_device_unset_connection_state_changed_cb()
- */
-typedef void (*bt_device_att_mtu_changed_cb)(int result, bt_device_att_mtu_info_s *mtu_info, void *user_data);
-
-/**
- * @internal
- * @ingroup
- * @brief IPSP Init state changed callback
- * @since_tizen 3.0
- */
-typedef void (*bt_ipsp_init_state_changed_cb)
- (int result, bool ipsp_initialized, void *user_data);
-
-/**
- * @internal
- * @ingroup
- * @since_tizen 3.0
-
- * @brief IPSP Connection state changed callback
- */
-typedef void (*bt_ipsp_connection_state_changed_cb)
- (int result, bool connected, const char *remote_address, const char *iface_name, void *user_data);
-
-/**
- * @internal
- * @brief Proximity profile property changed callback
- */
-typedef void (*bt_proximity_property_changed_cb)
- (int result, const char *remote_address, int role, int service_type, int prop_value, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when remote device requests authentication.
- * @since_tizen 3.0
- * @param[in] result
- * @param[in] auth_type
- * typedef enum {
- * BT_AUTH_KEYBOARD_PASSKEY_DISPLAY = 0, : PIN display event to user for entering PIN in keyboard
- * BT_AUTH_PIN_REQUEST, : Legacy PIN or PASSKEY request event
- * BT_AUTH_PASSKEY_CONFIRM_REQUEST, : PASSKEY confirmation event to match PASSKEY in remote device
- * } bt_authentication_type_info_e;
- * @param[in] device_name Name of the remote device
- * @param[in] remote_addr Remote BD address
- * @param[in] pass_key PASSKEY string
- * PASSKEY string is valid only if authentication types are following
- * a/ BT_AUTH_KEYBOARD_PASSKEY_DISPLAY
- * b/ BT_AUTH_PASSKEY_CONFIRM_REQUEST
- * pass_key string will be invalid if authentication event is of type BT_AUTH_PIN_REQUEST
- * as this event indicates that user MUST enter PIN or PASSKEY and perform authentication.
- *
- * Upon receiving BT_AUTH_KEYBOARD_PASSKEY_DISPLAY event, user should enter PASSKEY in keyboard
- * Application can also call bt_device_cancel_bonding() Upon receiving BT_AUTH_KEYBOARD_PASSKEY_DISPLAY
- * event which will fail the on-going pairing with remote device.
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_adapter_set_authentication_req_cb()
- */
-typedef void (*bt_adapter_authentication_req_cb)(int result, bt_authentication_type_info_e auth_type,
- char *device_name, char *remote_addr,
- char *pass_key, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Samsung XSAT Vendor dependent command.
- * @since_tizen 2.3.2
- */
-typedef struct {
- int app_id; /**< The application ID */
- char *message; /**< Command message */
-} bt_hf_vendor_dep_at_cmd_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when a XSAT vendor command is transmitted from Hands-Free.
- * @since_tizen 2.3
- *
- * @param[in] command The XSAT vendor command transmitted from Hands-Free
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_vendor_cmd_cb()
- * @see bt_ag_unset_vendor_cmd_cb()
- */
-typedef void (*bt_ag_vendor_cmd_cb) (char *command, void *user_data);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_TYPE_INTERNAL_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_H__
-#define __TIZEN_NETWORK_BLUETOOTH_H__
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdbool.h>
-#include <tizen_error.h>
-#include <tizen.h>
-
-#include <bluetooth_type.h>
-
-#ifndef TIZEN_DEPRECATED_API
-#define TIZEN_DEPRECATED_API __attribute__((__visibility__("default"), deprecated))
-#endif
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth.h
- * @brief API to control the Bluetooth adapter and devices and communications.
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- */
-
-
-/**
- * @addtogroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @{
- */
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @brief Initializes the Bluetooth API.
- * @since_tizen 2.3
- *
- * @remarks This function must be called before Bluetooth API starts. \n
- * You must free all resources of the Bluetooth service by calling bt_deinitialize() if Bluetooth service is no longer needed.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_deinitialize()
- */
-int bt_initialize(void);
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @brief Releases all resources of the Bluetooth API.
- * @since_tizen 2.3
- *
- * @remarks This function must be called if Bluetooth API is no longer needed.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre Bluetooth API must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- */
-int bt_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @brief Gets the specification name for the given UUID.
- * @since_tizen 3.0
- *
- * @remarks The @a name must be released using free().
- *
- * @param[in] uuid The UUID
- * @param[out] name The specification name defined at www.bluetooth.com
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_get_uuid()
- */
-int bt_get_uuid_name(const char *uuid, char **name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the current state of local Bluetooth adapter.
- * @since_tizen 2.3
- *
- * @param[out] adapter_state The current adapter state
- *
- * @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_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- */
-int bt_adapter_get_state(bt_adapter_state_e *adapter_state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the address of local Bluetooth adapter.
- * @since_tizen 2.3
- *
- * @remarks The @a local_address must be released with free() by you.
- *
- * @param[out] local_address The device address of local Bluetooth adapter
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_adapter_get_name()
- */
-int bt_adapter_get_address(char **local_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the name of local Bluetooth adapter.
- * @since_tizen 2.3
- *
- * @details Use this function to get the friendly name associated with Bluetooth
- * device, retrieved by the remote Bluetooth devices.
- *
- * @remarks The @a local_name must be released with free() by you.
- *
- * @param[out] local_name The local device name
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_set_name()
- */
-int bt_adapter_get_name(char **local_name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the name of local Bluetooth adapter.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] local_name The name of the Bluetooth device. \n
- * The maximum length is 248 characters.
- *
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_adapter_name_changed_cb() will be invoked if this function returns #BT_ERROR_NONE.
- *
- * @see bt_adapter_get_name()
- * @see bt_adapter_name_changed_cb()
- * @see bt_adapter_set_name_changed_cb()
- * @see bt_adapter_unset_name_changed_cb()
- */
-int bt_adapter_set_name(const char *local_name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the visibility mode of local Bluetooth adapter.
- * @since_tizen 2.3
- * @param[out] mode The visibility mode of the Bluetooth device
- * @param[out] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds).
- * @a duration is valid only if @a mode is #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE. This value can be NULL.
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_adapter_get_visibility(bt_adapter_visibility_mode_e *mode, int *duration);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Starts the device discovery, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details If a device is discovered, bt_adapter_device_discovery_state_changed_cb() will be invoked
- * with #BT_ADAPTER_DEVICE_DISCOVERY_FOUND, and then bt_adapter_device_discovery_state_changed_cb()
- * will be called with #BT_ADAPTER_DEVICE_DISCOVERY_FINISHED in case of the completion or cancellation of the discovery.
- *
- * @remarks To connect to peer Bluetooth device, you need to know its Bluetooth address. \n
- * The device discovery can be stopped by bt_adapter_stop_device_discovery().
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_is_discovering()
- * @see bt_adapter_stop_device_discovery()
- * @see bt_adapter_device_discovery_state_changed_cb()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- * @see bt_adapter_unset_device_discovery_state_changed_cb()
- */
-int bt_adapter_start_device_discovery(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Stops the device discovery, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks The device discovery process will take 10 ~ 20 seconds to get all the devices in vicinity.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation is not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The device discovery must be in progress with bt_adapter_start_device_discovery().
- * @post This function invokes bt_adapter_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_is_discovering()
- * @see bt_adapter_start_device_discovery()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- * @see bt_adapter_unset_device_discovery_state_changed_cb()
- * @see bt_adapter_device_discovery_state_changed_cb()
- */
-int bt_adapter_stop_device_discovery(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Checks for the device discovery is in progress or not.
- * @since_tizen 2.3
- *
- * @remarks If Bluetooth discovery is in progress, other operations are not allowed and
- * you have to either stop the discovery operation, or wait for it to be finished,
- * before performing other operations.
-
- * @param[out] is_discovering The discovering status: (@c true = in progress , @c false = not in progress )
- *
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_adapter_stop_device_discovery()
- */
-int bt_adapter_is_discovering(bool *is_discovering);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Get the service mask from the uuid list.
- * @since_tizen 2.3
- *
- * @param[in] uuids The UUID list of the device.
- * @param[in] no_of_service The number of the UUID list count.
- * @param[out] service_mask_list Service mask list converted from the given UUID list.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_service_class_t
- */
-int bt_device_get_service_mask_from_uuid_list(char **uuids,
- int no_of_service,
- bt_service_class_t *service_mask_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Retrieves the device information of all bonded devices.
- * @since_tizen 2.3
- *
- * @param [in] callback The callback function to invoke
- * @param [in] user_data The user data passed from the foreach function
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_bonded_device_cb().
- *
- * @see bt_adapter_bonded_device_cb()
- */
-int bt_adapter_foreach_bonded_device(bt_adapter_bonded_device_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the device information of a bonded device.
- * @since_tizen 2.3
- * @remarks The @a device_info must be released with bt_adapter_free_device_info() by you .
- *
- * @param [in] remote_address The address of remote device
- * @param [out] device_info The bonded device information
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_bonded_device_cb().
- *
- * @see bt_adapter_bonded_device_cb()
- */
-int bt_adapter_get_bonded_device_info(const char *remote_address, bt_device_info_s **device_info);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Frees device info.
- * @since_tizen 2.3
- *
- * @param [in] device_info The bonded device information
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_adapter_get_bonded_device_info()
- */
-int bt_adapter_free_device_info(bt_device_info_s *device_info);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Checks whether the UUID of service is used or not
- * @since_tizen 2.3
- * @param[in] service_uuid The UUID of service
- * @param[out] used Indicates whether the service is used or not
- * @return true on success, otherwise false.
- * @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_NOT_SUPPORTED Not supported
- */
-int bt_adapter_is_service_used(const char *service_uuid, bool *used);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the Bluetooth adapter state changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_state_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_state_changed_cb()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb()
- */
-int bt_adapter_set_state_changed_cb(bt_adapter_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_state_changed_cb()
- */
-int bt_adapter_unset_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the name of Bluetooth adapter changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_name_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_name_changed_cb()
- * @see bt_adapter_unset_name_changed_cb()
- */
-int bt_adapter_set_name_changed_cb(bt_adapter_name_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_name_changed_cb()
- */
-int bt_adapter_unset_name_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the visibility mode changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_visibility_mode_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_visibility_mode_changed_cb()
- * @see bt_adapter_unset_visibility_mode_changed_cb()
- */
-int bt_adapter_set_visibility_mode_changed_cb(bt_adapter_visibility_mode_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_visibility_mode_changed_cb()
- */
-int bt_adapter_unset_visibility_mode_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked every second
- * @since_tizen 2.3
- * until the visibility mode is changed from #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE
- * to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
- * @details When you set visibility mode as #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE,
- * @a callback will be called every second until visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @post bt_adapter_visibility_duration_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_adapter_visibility_duration_changed_cb()
- * @see bt_adapter_unset_visibility_duration_changed_cb()
- */
-int bt_adapter_set_visibility_duration_changed_cb(bt_adapter_visibility_duration_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_adapter_set_visibility_duration_changed_cb()
- */
-int bt_adapter_unset_visibility_duration_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the device discovery state changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_device_discovery_state_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_device_discovery_state_changed_cb()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- * @see bt_adapter_unset_device_discovery_state_changed_cb()
- */
-int bt_adapter_set_device_discovery_state_changed_cb(bt_adapter_device_discovery_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- */
-int bt_adapter_unset_device_discovery_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Get the Hash and Randmoizer value, synchronously.
- * @since_tizen 2.3
- *
- * @param[out] hash The hash value received from the controller
- * @param[out] randomizer The hash value received from the controller
- * @param[out] hash_len The length of the hash value
- * @param[out] randomizer_len The length of the randomizer value
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_get_local_oob_data(unsigned char **hash, unsigned char **randomizer,
- int *hash_len, int *randomizer_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the Hash and Randmoizer value, synchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address Remote device address
- * @param[in] hash The hash value received from the controller
- * @param[in] randomizer The hash value received from the controller
- * @param[in] hash_len The length of the hash value. Allowed value is 16
- * @param[in] randomizer_len The length of the randomizer value. Allowed value is 16
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_set_remote_oob_data(const char *remote_address,
- unsigned char *hash, unsigned char *randomizer,
- int hash_len, int randomizer_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the Hash and Randmoizer value, synchronously.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks The @a hash192, randomizer192, hash256 and randomizer256 must be released using free()
- *
- * @param[out] hash192 The hash value derived from the P-192 public key
- * @param[out] randomizer192 The randomizer value associated with the P-192 public key
- * @param[out] hash192_len The length of @a hash192
- * @param[out] randomizer192_len The length of @a randomizer192
- * @param[out] hash256 The hash value derived from the P-256 public key
- * @param[out] randomizer256 The randomizer value associated with the P-256 public key
- * @param[out] hash256_len The length of @a hash256
- * @param[out] randomizer256_len The length of @a randomizer256
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_get_local_oob_ext_data(unsigned char **hash192, unsigned char **randomizer192,
- int *hash192_len, int *randomizer192_len,
- unsigned char **hash256, unsigned char **randomizer256,
- int *hash256_len, int *randomizer256_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the Hash and Randmoizer value, synchronously.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address Remote device address
- * @param[in] hash192 The P-192 hash value received via OOB from remote device
- * @param[in] randomizer192 The P-192 randomizer value received via OOB from remote device
- * @param[in] hash192_len The length of @a hash192
- * @param[in] randomizer192_len The length of @a randomizer192
- * @param[in] hash256 The P-256 hash value received via OOB from remote device
- * @param[in] randomizer256 The P-256 randomizer value received via OOB from remote device
- * @param[in] hash256_len The length of @a hash256
- * @param[in] randomizer256_len The length of @a randomizer256
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_set_remote_oob_ext_data(const char *remote_address,
- const unsigned char *hash192, const unsigned char *randomizer192,
- int hash192_len, int randomizer192_len,
- const unsigned char *hash256, const unsigned char *randomizer256,
- int hash256_len, int randomizer256_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Deletes the Hash and Randomizer value, synchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address Remote device address
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_remove_remote_oob_data(const char *remote_address);
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Starts the LE device discovery.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details If a LE device is discovered, bt_adapter_le_device_discovery_state_changed_cb()
-* will be invoked with #BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND, and then bt_adapter_le_device_discovery_state_changed_cb()
- * will be called with #BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED in case of the completion or cancellation of the discovery.
- *
- * @remarks To connect to peer Bluetooth device, you need to know its Bluetooth address. \n
- * The device discovery can be stopped by bt_adapter_le_stop_device_discovery().
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_le_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_le_is_discovering()
- * @see bt_adapter_le_device_discovery_state_changed_cb()
- * @see bt_adapter_le_set_device_discovery_state_changed_cb()
- * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
- */
-int bt_adapter_le_start_device_discovery(void) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Stops the LE device discovery, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation is not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The device discovery must be in progress with bt_adapter_le_start_device_discovery().
- * @post This function invokes bt_adapter_le_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_le_is_discovering()
- * @see bt_adapter_le_start_device_discovery()
- * @see bt_adapter_le_set_device_discovery_state_changed_cb()
- * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
- * @see bt_adapter_le_device_discovery_state_changed_cb()
- */
-int bt_adapter_le_stop_device_discovery(void) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Checks for the LE device discovery is in progress or not.
- * @since_tizen 2.3
- *
- * @remarks If Bluetooth LE discovery is in progress, other operations are not allowed and
- * you have to either stop the LE discovery operation, or wait for it to be finished,
- * before performing other operations.
-
- * @param[out] is_discovering The discovering status: (@c true = in progress , @c false = not in progress )
- *
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_le_start_device_discovery()
- * @see bt_adapter_le_stop_device_discovery()
- */
-int bt_adapter_le_is_discovering(bool *is_discovering) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Registers a callback function to be invoked when the LE device discovery state changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_le_device_discovery_state_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_le_device_discovery_state_changed_cb()
- * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
- */
-int bt_adapter_le_set_device_discovery_state_changed_cb(bt_adapter_le_device_discovery_state_changed_cb callback, void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_le_set_device_discovery_state_changed_cb()
- */
-int bt_adapter_le_unset_device_discovery_state_changed_cb(void) TIZEN_DEPRECATED_API;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Starts the LE scan to find LE advertisement.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details If a LE advertisement is found, bt_adapter_le_scan_result_cb() will be invoked.
- *
- * @param[in] cb The callback to report the result of this function
- * @param[in] user_data The user data to be passed when callback is called
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_le_scan_result_cb().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_start_scan(bt_adapter_le_scan_result_cb cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Stops the LE scan.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation is not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The LE scan must be in progress with bt_adapter_le_start_scan().
- *
- * @see bt_adapter_le_start_scan()
- */
-int bt_adapter_le_stop_scan(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the service UUID list from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a uuids must be iterated as count and each pointed data must be released with free().
- * Then uuids must be released with free(). \n
- * 16-bit service UUID or 128-bit service UUID is supported. (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] uuids The list of string of the service uuid
- * @param[out] count The count of the service UUIDs
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_service_uuids(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, char ***uuids, int *count);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the device name from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a name must be released with free() by you.
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] name The device name
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_device_name(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, char **name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the transmission power level from the scan result information
- * @since_tizen 2.3.1
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] power_level The transmission power level in dBm
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_tx_power_level(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, int *power_level);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the service solicitation UUID list from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a uuids must be iterated as count and each pointed data must be released with free().
- * Then uuids must be released with free(). \n
- * 16-bit service solicitation UUID or 128-bit service solicitation UUID is supported.
- * (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] uuids The list of string of the service solicitation uuid
- * @param[out] count The count of the service UUIDs
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_service_solicitation_uuids(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, char ***uuids, int *count);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the service data list from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a data_list must be released with bt_adapter_le_free_service_data_list() by you .
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] data_list The list of the service data
- * @param[out] count The count of the service data list
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_service_data_list(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, bt_adapter_le_service_data_s **data_list, int *count);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Frees service data list.
- * @since_tizen 2.3.1
- *
- * @param[in] data_list The list of the service data
- * @param[in] count The count of the service data list
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_adapter_le_get_scan_result_service_data_list()
- */
-int bt_adapter_le_free_service_data_list(bt_adapter_le_service_data_s *data_list, int count);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the appearance from the scan result information
- * @since_tizen 2.3.1
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] appearance The appearance
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_appearance(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, int *appearance);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the manufacturer data from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a manufacturer_data must be released with free() by you.
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] manufacturer_id The manufacturer ID
- * @param[out] manufacturer_data The manufacturer data (byte array)
- * @param[out] manufacturer_data_len The length of manufacturer data
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_manufacturer_data(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, int *manufacturer_id, char **manufacturer_data, int *manufacturer_data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Create advertiser to advertise device's existence or respond to LE scanning request.
- * @since_tizen 2.3
- *
- * @param[out] advertiser The handle of advertiser
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_destroy_advertiser()
- */
-int bt_adapter_le_create_advertiser(bt_advertiser_h *advertiser);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Destroy advertiser.
- * @since_tizen 2.3
- *
- * @param[out] advertiser The handle of advertiser
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_create_advertiser()
- */
-int bt_adapter_le_destroy_advertiser(bt_advertiser_h advertiser);
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set the data to be advertised or responded to scan request from LE scanning device.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3
- *
- * @remarks In case the data_type is local name or tx power level, you don't need to input data
- * because the data value is written automatically by system.
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] data_type The data type that is included in packet
- * @param[in] data The data to be advertised or be responded to scan request from LE scanning device, no need in case of LOCAL_NAME or TX_POWER_LEVEL
- * @param[in] data_size The size of data to be set.
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_data(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, bt_adapter_le_packet_data_type_e data_type,
- void *data, unsigned int data_size) TIZEN_DEPRECATED_API;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Add a service UUID to advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @remarks 16-bit UUID or 128-bit UUID is supported. (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] uuid The string of the service UUID.
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_service_uuid(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, const char *uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Add a service solicitation UUID to advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @remarks 16-bit service solicitation UUID or 128-bit service solicitation UUID is supported.
- * (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] uuid The string of the service solicitation UUID.
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_service_solicitation_uuid(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, const char *uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Add service data to advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @remarks 16-bit UUID is supported. (e.g. 180F)
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] uuid 16-bit UUID of the service
- * @param[in] service_data The service data
- * @param[in] service_data_len The data length of service data
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_service_data(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, const char *uuid,
- const char *service_data, int service_data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Sets the external appearance of this device to advertise or scan response data.
- * Please refer to the adopted Bluetooth specification for the the appearance.
- * @since_tizen 2.3.1
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] appearance The external appearance of device
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_set_advertising_appearance(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, int appearance);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Add manufacturer specific data to advertise or scan response data.
- * Please refer to the Bluetooth Assigned Numbers provided by the Bluetooth SIG for a list of existing company identifiers.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] manufacturer_id Manufacturer identifier
- * @param[in] manufacturer_data The manufacturer specific data
- * @param[in] manufacturer_data_len The data length of manufacturer data
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_manufacturer_data(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, int manufacturer_id, const char *manufacturer_data, int manufacturer_data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set whether the device name should be included in advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] include_name Whether the device name should be included
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_set_advertising_device_name(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, bool include_name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set whether the transmission power level should be included in advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] include_tx_power Whether the transmission power level should be included
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_set_advertising_tx_power_level(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, bool include_tx_power);
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unset the data to be advertised or responded to scan request from LE scanning device.
- * @since_tizen 2.3
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] data_type The data type to be removed from selected packet
- *
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_add_advertising_data()
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_remove_advertising_data(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, bt_adapter_le_packet_data_type_e data_type) TIZEN_DEPRECATED_API;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Clear all data to be advertised or responded to scan request from LE scanning device.
- * @since_tizen 2.3
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type to be cleared
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_add_advertising_data()
- */
-int bt_adapter_le_clear_advertising_data(bt_advertiser_h advertiser, bt_adapter_le_packet_type_e pkt_type);
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Start advertising with passed advertiser and advertising parameters.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details Once Bluetooth advertising is started, nearby Bluetooth LE(Low Energy) supported
- * devices can know this device's existence. And one of them can make a connection request,
- * if it is allowed.
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] adv_params The parameters of advertising \n
- * If NULL is passed, default values which are defined in driver / controller are used.
- * @param[in] cb The callback to report the result of this function
- * @param[in] user_data The user data to be passed when callback is called
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post This function invokes bt_adapter_le_advertising_state_changed_cb().
- *
- * @see bt_adapter_le_stop_advertising()
- * @see bt_adapter_le_advertising_state_changed_cb()
- */
-int bt_adapter_le_start_advertising(bt_advertiser_h advertiser, bt_adapter_le_advertising_params_s *adv_params,
- bt_adapter_le_advertising_state_changed_cb cb, void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Stops the advertising.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] advertiser The handle of advertiser
- *
- * @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_NOT_IN_PROGRESS Operation is not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The advertising must be going on with bt_adapter_le_start_advertising_new().
- * @post This function invokes bt_adapter_le_advertising_state_changed_cb().
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_advertising_state_changed_cb()
- */
-int bt_adapter_le_stop_advertising(bt_advertiser_h advertiser);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Start advertising with passed advertiser and advertising parameters.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details Once Bluetooth advertising is started, nearby Bluetooth LE(Low Energy) supported
- * devices can know this device's existence. And one of them can make a connection request,
- * if it is allowed.
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] cb The callback to report the result of this function
- * @param[in] user_data The user data to be passed when callback is called
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post This function invokes bt_adapter_le_advertising_state_changed_cb().
- *
- * @see bt_adapter_le_stop_advertising()
- * @see bt_adapter_le_advertising_state_changed_cb()
- */
-int bt_adapter_le_start_advertising_new(bt_advertiser_h advertiser, bt_adapter_le_advertising_state_changed_cb cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set advertising mode to control the advertising power and latency.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] mode The mode of advertising
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_start_advertising_new()
- */
-int bt_adapter_le_set_advertising_mode(bt_advertiser_h advertiser, bt_adapter_le_advertising_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set whether the advertising type should be connectable or non-connectable
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] connectable The type of advertising
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_start_advertising_new()
- */
-int bt_adapter_le_set_advertising_connectable(bt_advertiser_h advertiser, bool connectable);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Sets Bluetooth LE scan mode
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] scan_mode The scan mode
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_ENABLED Adapter is not enabled
- * @retval #BT_ERROR_INVALID_PARAM Parameter is invalid
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The state of local bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_le_set_scan_mode(bt_adapter_le_scan_mode_e scan_mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Creates a bond with a remote Bluetooth device, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks A bond can be destroyed by bt_device_destroy_bond().\n
- * The bonding request can be cancelled by bt_device_cancel_bonding().
- *
- * @param[in] remote_address The address of the remote Bluetooth device with which the bond should be created
- *
- * @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_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
- * @post This function invokes bt_device_bond_created_cb().
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_device_bond_created_cb()
- * @see bt_device_cancel_bonding()
- * @see bt_device_destroy_bond()
- * @see bt_device_set_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-int bt_device_create_bond(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Cancels the bonding process.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks Use this function when the remote Bluetooth device is not responding to the
- * bond request or you wish to cancel the bonding request.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The creating a bond must be in progress by bt_device_create_bond().
- *
- * @see bt_device_create_bond()
- * @see bt_device_bond_created_cb()
- * @see bt_device_set_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-int bt_device_cancel_bonding(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Destroys the bond, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The address of the remote Bluetooth device to remove bonding
- *
- * @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_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- * @post This function invokes bt_device_bond_destroyed_cb().
- *
- * @see bt_device_create_bond()
- * @see bt_device_bond_destroyed_cb()
- * @see bt_device_set_bond_destroyed_cb()
- * @see bt_device_unset_bond_destroyed_cb()
- */
-int bt_device_destroy_bond(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Sets an alias for the bonded device.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] alias The alias of the remote Bluetooth device
- *
- * @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_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- *
- * @see bt_device_create_bond()
- */
-int bt_device_set_alias(const char *remote_address, const char *alias);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Sets the authorization of a bonded device, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks Once a device is authorized, you don't need to receive a confirmation.
- *
- * @param[in] remote_address The address of the remote Bluetooth device to authorize
- * @param[in] authorization_state The Bluetooth authorization state
- *
- * @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_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- * @post bt_device_authorization_changed_cb() will be invoked.
- *
- * @see bt_device_create_bond()
- * @see bt_device_authorization_changed_cb()
- * @see bt_device_set_authorization_changed_cb()
- * @see bt_device_unset_authorization_changed_cb()
- */
-int bt_device_set_authorization(const char *remote_address, bt_device_authorization_e authorization_state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Starts the search for services supported by the specified device, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks If creating a bond succeeds, which means bt_device_bond_created_cb() is called with result #BT_ERROR_NONE,
- * then you don't need to run this function.\n
- * The service search takes a couple of seconds to complete normally. \n
- *
- * @param[in] remote_address The address of the remote Bluetooth device whose services need to be checked
- *
- * @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_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_SERVICE_SEARCH_FAILED Service search failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- * @post This function invokes bt_device_service_searched_cb().
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_device_create_bond()
- * @see bt_device_bond_created_cb()
- * @see bt_device_service_searched_cb()
- * @see bt_device_set_service_searched_cb()
- * @see bt_device_unset_service_searched_cb()
- */
-int bt_device_start_service_search(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets the connected profiles.
- * @since_tizen 2.3
- * @param[in] remote_address The address of the remote device
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_device_connected_profile() will be invoked.
- * @see bt_device_connected_profile()
- */
-int bt_device_foreach_connected_profiles(const char *remote_address, bt_device_connected_profile callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets the profile connected status.
- * @since_tizen 2.3
- * @param[in] remote_address The address of the remote device
- * @param[in] bt_profile wish to know bt_profile
- * @param[out] connected_status the connected status
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_device_is_profile_connected(const char *remote_address, bt_profile_e bt_profile,
- bool *connected_status);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Updates a LE connection mode
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] mode The LE connection mode
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_update_le_connection_mode(const char *remote_address, bt_device_le_connection_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the bond creates.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_bond_created_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-int bt_device_set_bond_created_cb(bt_device_bond_created_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_bond_created_cb()
- */
-int bt_device_unset_bond_created_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the bond destroys.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_bond_destroyed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_bond_destroyed_cb()
- * @see bt_device_unset_bond_destroyed_cb()
- */
-int bt_device_set_bond_destroyed_cb(bt_device_bond_destroyed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_bond_destroyed_cb()
- */
-int bt_device_unset_bond_destroyed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the authorization of device changes.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_authorization_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_authorization_changed_cb()
- * @see bt_device_set_authorization_changed_cb()
- * @see bt_device_unset_authorization_changed_cb()
- */
-int bt_device_set_authorization_changed_cb(bt_device_authorization_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_authorization_changed_cb()
- */
-int bt_device_unset_authorization_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the process of service search finishes.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_service_searched_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_service_searched_cb()
- * @see bt_device_unset_service_searched_cb()
- */
-int bt_device_set_service_searched_cb(bt_device_service_searched_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_service_searched_cb()
- */
-int bt_device_unset_service_searched_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the connection state is changed.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_connection_state_changed_cb()
- * @see bt_device_unset_connection_state_changed_cb()
- */
-int bt_device_set_connection_state_changed_cb(bt_device_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function to be invoked when the connection state is changed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_connection_state_changed_cb()
- */
-int bt_device_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Registers a rfcomm server socket with a specific UUID.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks A socket can be destroyed by bt_socket_destroy_rfcomm().
- *
- * @param[in] service_uuid The UUID of service to provide
- * @param[out] socket_fd The file descriptor of socket to listen
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_socket_listen_and_accept_rfcomm()
- * @see bt_socket_destroy_rfcomm()
- */
-int bt_socket_create_rfcomm(const char *service_uuid, int *socket_fd);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Removes the rfcomm server socket which was created using bt_socket_create_rfcomm().
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
- * then bt_socket_connection_state_changed_cb() will be called when this function is finished successfully.
- *
- * @param[in] socket_fd The file descriptor of socket (which was created using bt_socket_create_rfcomm()) to destroy
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm().
- * @post If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
- * then bt_socket_connection_state_changed_cb() will be called.
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_destroy_rfcomm(int socket_fd);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Starts listening on passed rfcomm socket and accepts connection requests.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @details Pop-up is shown automatically when a RFCOMM connection is requested.
- * bt_socket_connection_state_changed_cb() will be called with
- * #BT_SOCKET_CONNECTED if you click "yes" and connection is finished successfully.
- * @param[in] socket_fd The file descriptor of socket on which start to listen
- * @param[in] max_pending_connections The maximum number of pending connections
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm().
- * @post If callback function bt_socket_connection_state_changed_cb() is set,
- * then bt_socket_connection_state_changed_cb() will be called when the remote Bluetooth device is connected.
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_listen_and_accept_rfcomm(int socket_fd, int max_pending_connections);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Connects to a specific RFCOMM based service on a remote Bluetooth device UUID, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks A connection can be disconnected by bt_socket_disconnect_rfcomm().
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] service_uuid The UUID of service provided by the remote Bluetooth device
- *
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- * @post This function invokes bt_socket_connection_state_changed_cb().
- *
- * @see bt_device_create_bond()
- * @see bt_adapter_start_device_discovery()
- * @see bt_device_start_service_search()
- * @see bt_socket_disconnect_rfcomm()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_connect_rfcomm(const char *remote_address, const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Disconnects the RFCOMM connection with the given file descriptor of connected socket.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] socket_fd The file descriptor of socket to close which was received using bt_socket_connection_state_changed_cb().
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The connection must be established.
- *
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_disconnect_rfcomm(int socket_fd);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Sends data to the connected device.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remark The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
- *
- * @param[in] socket_fd The file descriptor of connected socket which was received using bt_socket_connection_state_changed_cb()
- * @param[in] data The data to be sent
- * @param[in] length The length of data to be sent
- *
- * @return the number of bytes written (zero indicates nothing was written).
- * @retval On error, -1 is returned, and errno is set appropriately. See write 2 man page.
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @exception BT_ERROR_PERMISSION_DENIED Permission denied
- * @exception BT_ERROR_AGAIN Resource temporarily unavailable
- *
- * @pre The connection must be established.
- *
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_send_data(int socket_fd, const char *data, int length);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Register a callback function that will be invoked when you receive data.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_socket_data_received_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_socket_data_received_cb()
- * @see bt_socket_set_data_received_cb()
- * @see bt_socket_unset_data_received_cb()
- */
-int bt_socket_set_data_received_cb(bt_socket_data_received_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_socket_data_received_cb()
- * @see bt_socket_set_data_received_cb()
- */
-int bt_socket_unset_data_received_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Register a callback function that will be invoked when a RFCOMM connection is requested.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_socket_connection_requested_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_socket_unset_connection_requested_cb()
- */
-int bt_socket_set_connection_requested_cb(bt_socket_connection_requested_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_socket_set_connection_requested_cb()
- * @see bt_socket_connection_requested_cb()
- */
-int bt_socket_unset_connection_requested_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Register a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_socket_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_set_connection_state_changed_cb(bt_socket_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- */
-int bt_socket_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Initializes the Bluetooth OPP server requested by bt_opp_server_connection_requested_cb().
- * @since_tizen 2.3
- * @details No popup appears when an OPP connection is requested from a remote device.
- * Instead, @a connection_requested_cb() will be called.
- * At that time, you can call either bt_opp_server_accept() or bt_opp_server_reject().
- * @remarks This function must be called to start Bluetooth OPP server. \n
- * You must free all resources of the Bluetooth service by calling bt_opp_server_deinitialize() if Bluetooth OPP service is no longer needed.
- * @param[in] destination The destination path
- * @param[in] connection_requested_cb The callback called when an OPP connection is requested
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_connection_requested_cb()
- * @see bt_opp_server_deinitialize()
- * @see bt_opp_server_accept()
- * @see bt_opp_server_reject()
- */
-int bt_opp_server_initialize_by_connection_request(const char *destination, bt_opp_server_connection_requested_cb connection_requested_cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Deinitializes the Bluetooth OPP server.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_deinitialize()
- */
-int bt_opp_server_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Accepts the push request from the remote device.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks If you initialize OPP server by bt_opp_server_initialize_by_connection_request(), then name is ignored.
- * You can cancel the pushes by bt_opp_server_cancel_transfer() with transfer_id.
- * @param[in] progress_cb The callback called when a file is being transferred
- * @param[in] finished_cb The callback called when a transfer is finished
- * @param[in] name The name to store. This can be NULL if you initialize OPP server by bt_opp_server_initialize_by_connection_request().
- * @param[in] user_data The user data to be passed to the callback function
- * @param[out] transfer_id The ID of transfer
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_reject()
- */
-int bt_opp_server_accept(bt_opp_server_transfer_progress_cb progress_cb,
- bt_opp_server_transfer_finished_cb finished_cb, const char *name,
- void *user_data, int *transfer_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Rejects the push request from the remote device.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_accept()
- */
-int bt_opp_server_reject(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Cancels the transfer.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] transfer_id The ID of transfer
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_accept()
- */
-int bt_opp_server_cancel_transfer(int transfer_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Sets the destination path of file to be pushed.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] destination The destination path of file to be pushed
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_opp_server_set_destination(const char *destination);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Initializes the Bluetooth OPP client.
- * @since_tizen 2.3
- * @remarks This function must be called before Bluetooth OPP client starts. \n
- * You must free all resources of the Bluetooth service by calling bt_opp_client_deinitialize()
- * if Bluetooth OPP service is no longer needed.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_deinitialize()
- */
-int bt_opp_client_initialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Deinitializes the Bluetooth OPP client.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_initialize()
- */
-int bt_opp_client_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Adds file to be pushed.
- * @since_tizen 2.3
- * @param[in] file The path of file to be pushed
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_clear_files()
- * @see bt_opp_client_push_files()
- */
-int bt_opp_client_add_file(const char *file);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Adds file to be pushed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_add_file()
- * @see bt_opp_client_push_files()
- */
-int bt_opp_client_clear_files(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Pushes the file to the remote device, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @details At first, bt_opp_client_push_responded_cb() will be called when OPP server responds to the push request.
- * After connection is established, bt_opp_client_push_progress_cb() will be called repeatedly until a file is transferred completely.
- * If you send several files, then bt_opp_client_push_progress_cb() with another file will be called repeatedly until the file is transferred completely.
- * bt_opp_client_push_finished_cb() will be called when the push request is finished.
- * @param[in] remote_address The remote address
- * @param[in] responded_cb The callback called when OPP server responds to the push request
- * @param[in] progress_cb The callback called when each file is being transferred
- * @param[in] finished_cb The callback called when the push request is finished
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_initialize()
- * @see bt_opp_client_cancel_push
- */
-int bt_opp_client_push_files(const char *remote_address,
- bt_opp_client_push_responded_cb responded_cb,
- bt_opp_client_push_progress_cb progress_cb,
- bt_opp_client_push_finished_cb finished_cb,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Cancels the push request in progress, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre bt_opp_client_push_files() must be called.
- * @post bt_opp_client_push_finished_cb() will be invoked with result #BT_ERROR_CANCELLED,
- * which is a parameter of bt_opp_client_push_files().
- * @see bt_opp_client_initialize()
- * @see bt_opp_client_push_files()
- */
-int bt_opp_client_cancel_push(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Initializes the Bluetooth HID(Human Interface Device) Host.
- * @since_tizen 2.3
- * @remarks This function must be called before Bluetooth HID Host starts. \n
- * You must free all resources of the Bluetooth service by calling bt_hid_host_deinitialize()
- * if Bluetooth HID Host service is no longer needed.
- * @param[in] connection_cb The callback called when the connection state is changed
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_hid_host_deinitialize()
- */
-int bt_hid_host_initialize(bt_hid_host_connection_state_changed_cb connection_cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Deinitializes the Bluetooth HID(Human Interface Device) Host.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth HID service must be initialized with bt_hid_host_initialize().
- * @see bt_hid_host_initialize()
- */
-int bt_hid_host_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Connects the remote device with the HID(Human Interface Device) service, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @pre The Bluetooth HID service must be initialized with bt_hid_host_initialize().
- * @post bt_hid_host_connection_state_changed_cb() will be invoked.
- * @see bt_hid_host_disconnect()
- * @see bt_hid_host_connection_state_changed_cb()
- */
-int bt_hid_host_connect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Disconnects the remote device with the HID(Human Interface Device) service, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected by bt_hid_host_connect().
- * @post bt_hid_host_connection_state_changed_cb() will be invoked.
- * @see bt_hid_host_connect()
- * @see bt_hid_host_connection_state_changed_cb()
- */
-int bt_hid_host_disconnect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Initializes the Bluetooth profiles related with audio.
- * @since_tizen 2.3
- * @remarks This function must be called before Bluetooth profiles related with audio starts. \n
- * You must free all resources of the this service by calling bt_audio_deinitialize()
- * if Bluetooth profiles related with audio service is no longer needed.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_audio_deinitialize()
- */
-int bt_audio_initialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Deinitializes the Bluetooth profiles related with audio.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- */
-int bt_audio_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Connects the remote device with the given audio profile, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @details If you input type as #BT_AUDIO_PROFILE_TYPE_ALL and connection request succeeds, then bt_audio_connection_state_changed_cb() will be called twice
- * when #BT_AUDIO_PROFILE_TYPE_HSP_HFP is connected and #BT_AUDIO_PROFILE_TYPE_A2DP is connected.
- * @param[in] remote_address The remote address
- * @param[in] type The type of audio profile
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
-
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @post bt_audio_connection_state_changed_cb() will be invoked.
- * @see bt_audio_disconnect()
- * @see bt_audio_connection_state_changed_cb()
- */
-int bt_audio_connect(const char *remote_address, bt_audio_profile_type_e type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Disconnects the remote device with the given audio profile, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @details If you input type as #BT_AUDIO_PROFILE_TYPE_ALL and disconnection request succeeds, then bt_audio_connection_state_changed_cb() will be called twice
- * when #BT_AUDIO_PROFILE_TYPE_HSP_HFP is disconnected and #BT_AUDIO_PROFILE_TYPE_A2DP is disconnected.
- * @param[in] remote_address The remote address
- * @param[in] type The type of audio profile
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected by bt_audio_connect().
- * @post bt_audio_connection_state_changed_cb() will be invoked.
- * @see bt_audio_connect()
- * @see bt_audio_connection_state_changed_cb()
- */
-int bt_audio_disconnect(const char *remote_address, bt_audio_profile_type_e type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Registers a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_audio_connection_state_changed_cb()
- */
-int bt_audio_set_connection_state_changed_cb(bt_audio_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_audio_connection_state_changed_cb()
- * @see bt_audio_set_connection_state_changed_cb()
- */
-int bt_audio_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Initializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) target service.
- * @since_tizen 2.4
- * @remarks This function must be called before any other AVRCP target functions are called. \n
- * You must free all resources of the this service by calling bt_avrcp_target_deinitialize()
- * if Bluetooth AVRCP service is no longer needed.
- * @param[in] callback The callback function called when the connection state is changed
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_avrcp_target_deinitialize()
- */
-int bt_avrcp_target_initialize(bt_avrcp_target_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Deinitializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) target service.
- * @since_tizen 2.4
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_avrcp_target_initialize().
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the equalizer state to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] state The state of equalizer
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_equalizer_state(bt_avrcp_equalizer_state_e state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the repeat mode to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The repeat mode
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_repeat_mode(bt_avrcp_repeat_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the shuffle mode to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The repeat mode
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_shuffle_mode(bt_avrcp_shuffle_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the scan mode to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The scan mode
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_scan_mode(bt_avrcp_scan_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the player state to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] state The player state
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_player_state(bt_avrcp_player_state_e state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the current position of song to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] position The current position in milliseconds
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_position(unsigned int position);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the track to the remote device.
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] title The title of track
- * @param[in] artist The artist of track
- * @param[in] album The album of track
- * @param[in] genre The genre of track
- * @param[in] track_num The track number
- * @param[in] total_tracks The number of all tracks
- * @param[in] duration The duration of track in milliseconds
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_track(const char *title, const char *artist, const char *album, const char *genre, unsigned int track_num, unsigned int total_tracks, unsigned int duration);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the equalizer state is changed by the remote control device.
- * @since_tizen 2.4
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_equalizer_state_changed_cb()
- */
-int bt_avrcp_set_equalizer_state_changed_cb(bt_avrcp_equalizer_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the equalizer state is changed by the remote control device.
- * @since_tizen 2.4
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_equalizer_state_changed_cb()
- */
-int bt_avrcp_unset_equalizer_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the repeat mode is changed by the remote control device.
- * @since_tizen 2.4
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_repeat_mode_changed_cb()
- */
-int bt_avrcp_set_repeat_mode_changed_cb(bt_avrcp_repeat_mode_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the repeat mode is changed by the remote control device.
- * @since_tizen 2.4
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_repeat_mode_changed_cb()
- */
-int bt_avrcp_unset_repeat_mode_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the shuffle mode is changed by the remote control device.
- * @since_tizen 2.4
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_shuffle_mode_changed_cb()
- */
-int bt_avrcp_set_shuffle_mode_changed_cb(bt_avrcp_shuffle_mode_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the shuffle mode is changed by the remote control device.
- * @since_tizen 2.4
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_shuffle_mode_changed_cb()
- */
-int bt_avrcp_unset_shuffle_mode_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the scan mode is changed by the remote control device.
- * @since_tizen 2.4
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_scan_mode_changed_cb()
- */
-int bt_avrcp_set_scan_mode_changed_cb(bt_avrcp_scan_mode_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the scan mode is changed by the remote control device.
- * @since_tizen 2.4
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_scan_mode_changed_cb()
- */
-int bt_avrcp_unset_scan_mode_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the song position is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_position_changed_cb()
- */
-int bt_avrcp_set_position_changed_cb(bt_avrcp_position_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the song position is changed by the remote target device.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_position_changed_cb()
- */
-int bt_avrcp_unset_position_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the Play status is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_play_status_changed_cb()
- */
-int bt_avrcp_set_play_status_changed_cb(bt_avrcp_play_status_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the Play status is changed by the remote target device.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @see bt_initialize()
- * @see bt_avrcp_unset_play_status_changed_cb()
- */
-int bt_avrcp_unset_play_status_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the track metadata is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_track_info_changed_cb()
- */
-int bt_avrcp_set_track_info_changed_cb(bt_avrcp_track_info_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the track metadata is changed by the remote target device.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_track_info_changed_cb()
- */
-int bt_avrcp_unset_track_info_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Initializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) controller service.
- * @since_tizen 3.0
- * @remarks This function must be called before any other AVRCP controller functions are called. \n
- * You must free all resources of the this service by calling bt_avrcp_control_deinitialize()
- * if Bluetooth AVRCP service is no longer needed.
- * @param[in] callback The callback function called when the connection state is changed
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_avrcp_control_deinitialize()
- */
-int bt_avrcp_control_initialize(bt_avrcp_control_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Deinitializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) controller service.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
- * @see bt_avrcp_control_initialize()
- */
-int bt_avrcp_control_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Connects the AVRCP (Audio/Video Remote Control Profile) target device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
- * @see bt_avrcp_control_initialize()
- */
-int bt_avrcp_control_connect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Disconnects from the AVRCP (Audio/Video Remote Control Profile) target device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_control_connect()
- */
-int bt_avrcp_control_disconnect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends a command to the target device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] cmd The commands, one of: Play, Pause, Next, Rewind.
- * @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 Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_control_connect()
- */
-int bt_avrcp_control_send_player_command(bt_avrcp_player_command_e cmd);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends the equalizer state change request to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] state The new equalizer state, one of: ON, OFF
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_set_equalizer_state(bt_avrcp_equalizer_state_e state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the the equalizer state of the remote device.
- * @since_tizen 3.0
- * @param[out] state The equalizer state, one of: ON, OFF
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_equalizer_state(bt_avrcp_equalizer_state_e *state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends the repeat change request to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The new repeat mode, one of: OFF, SINGLE, ALL
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_set_repeat_mode(bt_avrcp_repeat_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the repeat state of the remote device.
- * @since_tizen 3.0
- * @param[out] mode The repeat mode, one of: OFF, SINGLE, ALL
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_repeat_mode(bt_avrcp_repeat_mode_e *mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends the shuffle mode change request to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The new shuffle mode, one of: OFF, GROUP, ALL
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_set_shuffle_mode(bt_avrcp_shuffle_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the shuffle modee of the remote device.
- * @since_tizen 3.0
- * @param[out] mode The shuffle mode, one of: OFF, GROUP, ALL
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_shuffle_mode(bt_avrcp_shuffle_mode_e *mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends the scan mode change request to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The new scan mode, one of: OFF, GROUP, ALL
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_set_scan_mode(bt_avrcp_scan_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the scan mode of the remote device.
- * @since_tizen 3.0
- * @param[out] mode The scan mode, one of: OFF, GROUP, ALL
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_scan_mode(bt_avrcp_scan_mode_e *mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the position of the song played by the remote device.
- * @since_tizen 3.0
- * @param[out] mode The position, in milliseconds
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_position(unsigned int *position);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the play status of the remote device.
- * @since_tizen 3.0
- * @param[out] status The play status, one of: PLAYING, STOPPED...
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_play_status(bt_avrcp_player_state_e *status);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the metadata of the track played by the remote device.
- * @since_tizen 3.0
- * @remarks The @a track must be released using bt_avrcp_control_free_track_info()
- * @param[out] track The track metadata.
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_track_info(bt_avrcp_metadata_attributes_info_s **track);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Frees the track metadata.
- * @since_tizen 3.0
- * @param[in] track The track metadata.
- * @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_SUPPORTED Not supported
- * @pre track should point to valid metadata address.
- * @see bt_avrcp_control_get_track_info()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_free_track_info(bt_avrcp_metadata_attributes_info_s *track);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Registers an application that acts as the @a Sink role of HDP(Health Device Profile).
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks The @a app_id must be released with free() by you.
- * @param[in] data_type The data type of MDEP. This value is defined in ISO/IEEE 11073-20601 spec.
- * For example, pulse oximeter is 0x1004 and blood pressure monitor is 0x1007.
- * @param[out] app_id The ID of application
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_hdp_unregister_sink_app()
- */
-int bt_hdp_register_sink_app(unsigned short data_type, char **app_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Unregisters the given application that acts as the @a Sink role of HDP(Health Device Profile).
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] app_id The ID of application
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_hdp_register_sink_app()
- */
-int bt_hdp_unregister_sink_app(const char *app_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Connects the remote device which acts as @a Source role, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @param[in] app_id The ID of application
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Sink role of HDP must be registered with bt_hdp_register_sink_app().
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @post bt_hdp_connected_cb() will be invoked.
- * @see bt_hdp_disconnect()
- * @see bt_hdp_set_connection_state_changed_cb()
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-int bt_hdp_connect_to_source(const char *remote_address, const char *app_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Disconnects the remote device, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @param[in] channel The connected data channel
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @post bt_hdp_disconnected_cb() will be invoked.
- * @see bt_hdp_set_connection_state_changed_cb()
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-int bt_hdp_disconnect(const char *remote_address, unsigned int channel);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Sends the data to the remote device.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] channel The connected data channel
- * @param[in] data The data to send
- * @param[in] size The size of data to send (byte)
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_hdp_data_received_cb()
- * @see bt_hdp_set_data_received_cb()
- * @see bt_hdp_unset_data_received_cb()
- */
-int bt_hdp_send_data(unsigned int channel, const char *data, unsigned int size);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Registers a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3
- * @param[in] connected_cb The callback function called when a connection is established
- * @param[in] disconnected_cb The callback function called when a connection is disconnected
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-int bt_hdp_set_connection_state_changed_cb(bt_hdp_connected_cb connected_cb, bt_hdp_disconnected_cb disconnected_cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hdp_set_connection_state_changed_cb()
- */
-int bt_hdp_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Registers a callback function that will be invoked when you receive the data.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hdp_unset_data_received_cb()
- */
-int bt_hdp_set_data_received_cb(bt_hdp_data_received_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Unregisters a callback function that will be invoked when you receive the data.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hdp_set_data_received_cb()
- */
-int bt_hdp_unset_data_received_cb(void);
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_foreach_services or bt_gatt_client_get_service instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the primary services of GATT(Generic Attribute Profile).
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The address of the remote device
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post @a callback will be called if there are primary services.
- * @see bt_gatt_primary_service_cb()
- */
-int bt_gatt_foreach_primary_services(const char *remote_address, bt_gatt_primary_service_cb callback, void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. This function call is not required because characteristic discovery is happened automatically.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Discovers the characteristics in service, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] service The attribute handle of service
- * @param[in] callback The result callback
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post @a callback will be called.
- * @see bt_gatt_characteristics_discovered_cb()
- */
-int bt_gatt_discover_characteristics(bt_gatt_attribute_h service, bt_gatt_characteristics_discovered_cb callback, void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_get_uuid instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the UUID of service.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks @a uuid must be released with free() by you.
- * @param[in] service The attribute handle of service
- * @param[out] uuid The UUID of service
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_gatt_get_service_uuid(bt_gatt_attribute_h service, char **uuid) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_service_foreach_included_services or bt_gatt_service_get_included_service instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the included services in service.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] service The attribute handle of service
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post @a callback will be called if there are included services.
- * @see bt_gatt_included_service_cb()
- */
-int bt_gatt_foreach_included_services(bt_gatt_attribute_h service, bt_gatt_included_service_cb callback, void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_set_characteristic_value_changed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Registers a callback function that will be invoked when a characteristic value is changed.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_gatt_unset_characteristic_changed_cb()
- */
-int bt_gatt_set_characteristic_changed_cb(bt_gatt_characteristic_changed_cb callback, void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_unset_characteristic_value_changed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Unregisters a callback function that will be invoked when a characteristic is changed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_gatt_set_characteristic_changed_cb()
- */
-int bt_gatt_unset_characteristic_changed_cb(void) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_set_characteristic_value_changed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Watches all the characteristic value changes of the service.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] service The attribute handle of service
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_gatt_unset_characteristic_changed_cb()
- */
-int bt_gatt_watch_characteristic_changes(bt_gatt_attribute_h service) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_unset_characteristic_value_changed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Remove watching of all the characteristic value changes of the service.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] service The attribute handle of service
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_gatt_set_characteristic_changed_cb()
- */
-int bt_gatt_unwatch_characteristic_changes(bt_gatt_attribute_h service) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_get_value or bt_gatt_get_uuid after bt_gatt_client_read_value instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the characteristic declaration.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks @a uuid and @a value must be released with free() by you.
- * @param[in] characteristic The attribute handle of characteristic
- * @param[out] uuid The UUID of service
- * @param[out] value The value of characteristic (byte array)
- * @param[out] value_length The length of value
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_set_characteristic_value()
- */
-int bt_gatt_get_characteristic_declaration(bt_gatt_attribute_h characteristic, char **uuid, unsigned char **value, int *value_length) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_set_value and bt_gatt_client_write_value instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Sets the value of characteristic.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] characteristic The attribute handle of characteristic
- * @param[in] value The value of characteristic (byte array)
- * @param[in] value_length The length of value
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_get_characteristic_declaration()
- */
-int bt_gatt_set_characteristic_value(bt_gatt_attribute_h characteristic, const unsigned char *value, int value_length) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_set_value and bt_gatt_client_write_value instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Sets the value of characteristic request.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] characteristic The attribute handle of characteristic
- * @param[in] value The value of characteristic (byte array)
- * @param[in] value_length The length of value
- * @param[in] callback The result callback
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_get_characteristic_declaration()
- */
-int bt_gatt_set_characteristic_value_request(bt_gatt_attribute_h characteristic, const unsigned char *value,
- int value_length, bt_gatt_characteristic_write_cb callback) TIZEN_DEPRECATED_API;
-
-/**
-* @deprecated Deprecated since 2.3.1. GATT handle clone is not allowed. Instead, all handles for client role must be got from GATT client handle.
-* @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
-* @brief Clones the attribute handle.
-* @since_tizen 2.3
-* @remarks @a clone must be released with bt_gatt_destroy_attribute_handle().
-* @param[out] clone The cloned attribute handle
-* @param[in] origin The origin attribute handle
-* @return 0 on success, otherwise negative error value.
-* @retval #BT_ERROR_NONE Successful
-* @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
-* @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
-* @retval #BT_ERROR_NOT_SUPPORTED Not supported
-*
-* @see bt_gatt_destroy_attribute_handle()
-*/
-int bt_gatt_clone_attribute_handle(bt_gatt_attribute_h *clone,
- bt_gatt_attribute_h origin) TIZEN_DEPRECATED_API;
-
-/**
-* @deprecated Deprecated since 2.3.1. GATT handle clone and destroy are not allowed.
-* @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
-* @brief Destroys the attribute handle.
-* @since_tizen 2.3
-* @param[in] handle The attribute handle
-* @return 0 on success, otherwise negative error value.
-* @retval #BT_ERROR_NONE Successful
-* @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
-* @retval #BT_ERROR_NOT_SUPPORTED Not supported
-*
-* @see bt_gatt_clone_attribute_handle()
-*/
-int bt_gatt_destroy_attribute_handle(bt_gatt_attribute_h handle) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use gatt_client_read_value instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Reads the value of characteristic from remote device.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] char_handle The attribute handle of characteristic
- * @param[in] callback The result callback
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_get_characteristic_declaration()
- */
-int bt_gatt_read_characteristic_value(bt_gatt_attribute_h char_handle,
- bt_gatt_characteristic_read_cb callback) TIZEN_DEPRECATED_API;
-
-/**
- * @deprecated Deprecated since 2.3.1. This function call is not required because descriptor discovery is happened automatically.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Discovers the characteristic descriptors of a characteristic within its definition, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] characteristic_handle The attribute handle of characteristic
- * @param[in] callback The result callback
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post @a callback will be called.
- * @see bt_gatt_characteristic_descriptor_discovered_cb()
- */
-int bt_gatt_discover_characteristic_descriptor(bt_gatt_attribute_h characteristic_handle,
- bt_gatt_characteristic_descriptor_discovered_cb callback,
- void *user_data) TIZEN_DEPRECATED_API;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the value of a characteristic or descriptor's GATT handle.
- * @since_tizen 2.3.1
- *
- * @remarks @a value must be released using free(). \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_read_value() must be used prior to this function \n
- * in order to get the remote device's current value.
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[out] value The value of @a gatt_handle. It is a byte stream type.
- * @param[out] value_length The length of @a value
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_value(bt_gatt_h gatt_handle, char **value, int *value_length);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the value of a characteristic or descriptor's GATT handle as an integer type.
- * @since_tizen 2.3.1
- *
- * @remarks This function returns a locally saved value in @a gatt_handle. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_read_value() must be used prior to this function \n
- * in order to get the remote device's current value.
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] type The type of a saved value in @a gatt_handle
- * @param[in] offset The offset from where a value will be read from @a gatt_handle as an integer type
- * @param[out] value The integer type's value of @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_int_value(bt_gatt_h gatt_handle, bt_data_type_int_e type,
- int offset, int *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the value of a characteristic or descriptor's GATT handle as a float type.
- * @since_tizen 2.3.1
- *
- * @remarks This function returns a locally saved value in @a gatt_handle. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_read_value() must be used prior to this function \n
- * in order to get the remote device's current value.
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] type The type of a saved value in @a gatt_handle
- * @param[in] offset The offset from where a value will be read from @a gatt_handle as an integer type
- * @param[out] value The float type's value of @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_float_value(bt_gatt_h gatt_handle, bt_data_type_float_e type,
- int offset, float *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Updates the value of a characteristic or descriptor's GATT handle.
- * @since_tizen 2.3.1
- *
- * @remarks This function updates a value of @a gatt_handle locally. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_write_value() can be used after this function \n
- * in order to update the remote device's value. \n
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] value The value to be updated
- * @param[in] value_length The length of @a value
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_set_value(bt_gatt_h gatt_handle, const char *value, int value_length);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Updates the value of a characteristic or descriptor's GATT handle using a integer type's value.
- * @since_tizen 2.3.1
- *
- * @remarks This function updates a value of @a gatt_handle locally. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_write_value() can be used after this function \n
- * in order to update the remote device's value. \n
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] type @a value will be saved in @a gatt_handle as this type
- * @param[in] value The integer type's value to be updated
- * @param[in] offset The offset from where @a value will be saved in @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_set_int_value(bt_gatt_h gatt_handle, bt_data_type_int_e type,
- int value, int offset);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Updates the value of a characteristic or descriptor's GATT handle using a float type's value.
- * @since_tizen 2.3.1
- *
- * @remarks This function updates a value of @a gatt_handle locally. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_write_value() can be used after this function \n
- * in order to update the remote device's value. \n
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] type @a mantissa and @a exponent will be saved in @a gatt_handle as this type
- * @param[in] mantissa The mantissa of float type's value to be updated
- * @param[in] exponent The exponent of float type's value to be updated
- * @param[in] offset The offset from where @a mantissa and @a exponent will be saved in @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_set_float_value(bt_gatt_h gatt_handle, bt_data_type_float_e type,
- int mantissa, int exponent, int offset);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the UUID of a service, characteristic or descriptor's GATT handle.
- * @since_tizen 2.3.1
- *
- * @remarks @a uuid must be released using free(). \n
- * 16-bit UUID or 128-bit UUID is supported. (e.g. 2A19, 00002A19-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] gatt_handle The handle of a service, characteristic or descriptor
- * @param[out] uuid The string of the UUID of @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_uuid(bt_gatt_h gatt_handle, char **uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the type of GATT handle.
- * @since_tizen 2.3.1
- *
- * @param[in] gatt_handle The GATT handle
- * @param[out] gatt_type The type of @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_type(bt_gatt_h gatt_handle, bt_gatt_type_e *gatt_type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the GATT client handle which the specified service belongs to.
- * @since_tizen 2.3.1
- *
- * @remark This function doesn't allocate new memory for GATT client handle.
- * The returned GATT client handle is the same one which was got from bt_gatt_client_create().
- * So if it is destroyed by bt_gatt_client_destroy(), all related GATT handles are freed also.
- *
- * @param[in] service The service's GATT handle
- * @param[out] client The GATT client handle which @a service belongs to
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- */
-int bt_gatt_service_get_client(bt_gatt_h service, bt_gatt_client_h *client);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets a characteristic's GATT handle which has specific UUID.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- * If there are multiple characteristics which have same UUID, only the first matched one will be returned.
- *
- * @param[in] service The service's GATT handle
- * @param[in] uuid The characteristic's GATT handle which has this UUID will be returned if it exists
- * @param[out] characteristic The characteristic's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_service_get_characteristic(bt_gatt_h service, const char *uuid,
- bt_gatt_h *characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Invokes @a callback function on each characteristic that belongs to the specified service.
- * @since_tizen 2.3.1
- *
- * @param[in] service The service's GATT handle
- * @param[in] callback The function to be invoked on each characteristic
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_service_foreach_characteristics(bt_gatt_h service,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets an included service's GATT handle which has specific UUID.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- * If there are multiple included services which have same UUID, only the first matched one will be returned.
- *
- * @param[in] service The service's GATT handle
- * @param[in] uuid The included service's GATT handle which has this UUID will be returned if it exists
- * @param[out] included_service The included service's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_service_get_included_service(bt_gatt_h service, const char *uuid,
- bt_gatt_h *included_service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Invokes @a callback function on each included service that belongs to the specified service.
- * @since_tizen 2.3.1
- *
- * @param[in] service The service's GATT handle
- * @param[in] callback The function to be invoked on each included service
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_service_foreach_included_services(bt_gatt_h service,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the service's GATT handle which the specified characteristic belongs to.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[out] service The service's GATT handle which @a characteristic belongs to
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_characteristic_get_service(bt_gatt_h characteristic, bt_gatt_h *service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the properties which a characteristic's GATT handle has.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[out] properties The properties which a characteristic's GATT handle has
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_property_e
- */
-int bt_gatt_characteristic_get_properties(bt_gatt_h characteristic, int *properties);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the write type of the specified characteristic.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[out] write_type The write type of the specified characteristic
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_write_type_e
- */
-int bt_gatt_characteristic_get_write_type(bt_gatt_h characteristic,
- bt_gatt_write_type_e *write_type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Updates the write type of the specified characteristic.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] write_type The write type to be updated
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_write_value()
- * @see bt_gatt_write_type_e
- */
-int bt_gatt_characteristic_set_write_type(bt_gatt_h characteristic,
- bt_gatt_write_type_e write_type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets a descriptor's GATT handle which has specific UUID.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- * If there are multiple descriptors which have same UUID, only the first matched one will be returned.
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] uuid The descriptor's GATT handle which has this UUID will be returned if it exists
- * @param[out] descriptor The descriptor's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_characteristic_get_descriptor(bt_gatt_h characteristic, const char *uuid,
- bt_gatt_h *descriptor);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Invokes @a callback function on each descriptor that belongs to the specified characteristic.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] callback The function to be invoked on each descriptor
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_characteristic_foreach_descriptors(bt_gatt_h characteristic,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the characteristic's GATT handle which the specified descriptor belongs to.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- *
- * @param[in] descriptor The descriptor's GATT handle
- * @param[out] characteristic The characteristic's GATT handle which @a descriptor belongs to
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_descriptor_get_characteristic(bt_gatt_h descriptor, bt_gatt_h *characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Creates the GATT client handle.
- * @since_tizen 2.3.1
- *
- * @remark The GATT client handle must be freed by bt_gatt_client_destroy() after use
- *
- * @param[in] remote_address The address of the remote device
- * @param[out] client The created GATT client's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_destroy()
- */
-int bt_gatt_client_create(const char *remote_address, bt_gatt_client_h *client);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Destroys the GATT client's handle.
- * @since_tizen 2.3.1
- *
- * @remark All related service, characteristic and descriptor's GATT handles are freed also
- *
- * @param[in] client The GATT client's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- */
-int bt_gatt_client_destroy(bt_gatt_client_h client);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the address of remote device.
- * @since_tizen 2.3.1
- *
- * @param[in] client The created GATT client's handle
- * @param[out] remote_address The address of the remote device which is associated with @a client
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- */
-int bt_gatt_client_get_remote_address(bt_gatt_client_h client,
- char **remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Reads the value of a characteristic or descriptor from the remote device asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
- * @param[in] callback When a read request is completed, this callback function will be called
- * @param[in] user_data The user data to be passed to @a callback function
- * @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_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- * @see bt_gatt_client_request_completed_cb()
- */
-int bt_gatt_client_read_value(bt_gatt_h gatt_handle,
- bt_gatt_client_request_completed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Writes the value of a characteristic or descriptor to the remote device asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
- * @param[in] callback When a write request is completed, this callback function will be called
- * @param[in] user_data The user data to be passed to @a callback function
- * @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_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- * @see bt_gatt_characteristic_set_write_type()
- * @see bt_gatt_set_value()
- * @see bt_gatt_set_int_value()
- * @see bt_gatt_set_float_value()
- * @see bt_gatt_client_request_completed_cb()
- */
-int bt_gatt_client_write_value(bt_gatt_h gatt_handle,
- bt_gatt_client_request_completed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Registers a callback function to be invoked when the characteristic value is changed on the remote device.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] callback The callback to be invoked when the value is changed and it is informed
- * @param[in] user_data The user data to be passed to @a callback function
- * @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_SUPPORTED Not supported
- *
- * @see bt_gatt_client_characteristic_value_changed_cb()
- * @see bt_gatt_client_unset_characteristic_value_change()
- */
-int bt_gatt_client_set_characteristic_value_changed_cb(bt_gatt_h characteristic,
- bt_gatt_client_characteristic_value_changed_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Unregisters a callback function to be invoked when the characteristic value is changed on the remote device.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle, whose value change will not be informed
- * @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_SUPPORTED Not supported
- *
- * @see bt_gatt_client_set_characteristic_value_changed_cb()
- */
-int bt_gatt_client_unset_characteristic_value_changed_cb(bt_gatt_h characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets a service's GATT handle which has specific UUID.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- * If there are multiple services which have same UUID, only the first matched one will be returned.
- *
- * @param[in] client The GATT client's handle
- * @param[in] uuid The service's GATT handle which has this UUID will be returned if it exists
- * @param[out] service The service's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_client_get_service(bt_gatt_client_h client, const char *uuid,
- bt_gatt_h *service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Invokes @a callback function on each service that belongs to the specified GATT client.
- * @since_tizen 2.3.1
- *
- * @param[in] client The GATT client's handle
- * @param[in] callback The function to be invoked on each service
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_client_foreach_services(bt_gatt_client_h client,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Registers a callback function to be invoked when service is changed from a remote device(GATT server).
- * @since_tizen 3.0
- *
- * @param[in] client The GATT client's handle
- * @param[in] callback The callback to be invoked
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_unset_service_changed_cb()
- */
-int bt_gatt_client_set_service_changed_cb(bt_gatt_client_h client,
- bt_gatt_client_service_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Unregisters a callback function
- * @since_tizen 3.0
- *
- * @param[in] client The GATT client's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_set_service_changed_cb()
- */
-int bt_gatt_client_unset_service_changed_cb(bt_gatt_client_h client);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Connect to a specific LE based service on a remote bluetooth device address, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks A connection can be disconnected by bt_gatt_disconnect().
- *
- * @param[in] address The address of the remote Bluetooth device.
- * @param[in] auto_connect The flag of the auto connection.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @pre The remote device must support le connection.
- * @post This function invokes bt_gatt_connection_state_changed_cb().
- *
- * @see bt_initialize()
- * @see bt_gatt_disconnect()
- * @see bt_gatt_set_connection_state_changed_cb()
- * @see bt_gatt_unset_connection_state_changed_cb()
- * @see bt_gatt_connection_state_changed_cb()
- */
-int bt_gatt_connect(const char *address, bool auto_connect);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Disconnect to LE connection with the given remote Bluetooth device address, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] address The address of the remote Bluetooth device
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The connection must be established.
- * @post This function invokes bt_gatt_connection_state_changed_cb().
- *
- * @see bt_initialize()
- * @see bt_gatt_connect()
- * @see bt_gatt_set_connection_state_changed_cb()
- * @see bt_gatt_unset_connection_state_changed_cb()
- * @see bt_gatt_connection_state_changed_cb()
- */
-int bt_gatt_disconnect(const char *address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Registers a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to register.
- * @param[in] user_data The user data to be passed to the callback function.
- *
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_connect()
- * @see bt_gatt_disconnect()
- * @see bt_gatt_unset_connection_state_changed_cb()
- */
-int bt_gatt_set_connection_state_changed_cb(bt_gatt_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3
- *
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_connect()
- * @see bt_gatt_disconnect()
- * @see bt_gatt_connection_state_changed_cb()
- */
-int bt_gatt_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Destroys the GATT handle of service.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The handle of service
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_create()
- */
-int bt_gatt_service_destroy(bt_gatt_h gatt_handle);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Destroys the GATT handle of characteristic.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The handle of characteristic
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_create()
- */
-int bt_gatt_characteristic_destroy(bt_gatt_h gatt_handle);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Destroys the GATT handle of descriptor.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The handle of descriptor
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_descriptor_create()
- */
-int bt_gatt_descriptor_destroy(bt_gatt_h gatt_handle);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Gets the permissions which a characteristic's GATT handle has.
- * @since_tizen 3.0
- *
- * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
- *
- * @param[in] gatt_handle The handle of a characteristic
- * @param[out] permissions The permissions which a characteristic's GATT handle has
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_create()
- * @see bt_gatt_permission_e
- */
-int bt_gatt_characteristic_get_permissions(bt_gatt_h gatt_handle, int *permissions);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Gets the permissions which a descriptor's GATT handle has.
- * @since_tizen 3.0
- *
- * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
- *
- * @param[in] gatt_handle The handle of a descriptor
- * @param[out] permissions The permissions which a descriptor's GATT handle has
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_descriptor_create()
- * @see bt_gatt_permission_e
- */
-int bt_gatt_descriptor_get_permissions(bt_gatt_h gatt_handle, int *permissions);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Creates the GATT service.
- * @since_tizen 3.0
- *
- * @remarks The @a service should be destroyed by using bt_gatt_service_destroy()
- *
- * @param[in] uuid The UUID of the service
- * @param[in] type The type of the service
- * @param[out] service The GATT handle of the created service
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_destroy()
- */
-int bt_gatt_service_create(const char *uuid, bt_gatt_service_type_e type,
- bt_gatt_h *service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Adds a characteristic to a specified service.
- * @since_tizen 3.0
- *
- * @param[in] service The service's GATT handle
- * @param[in] characteristic The characteristic's GATT handle to be added
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_create()
- * @see bt_gatt_characteristic_create()
- */
-int bt_gatt_service_add_characteristic(bt_gatt_h service,
- bt_gatt_h characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Adds a service to a specified service as included service.
- * @since_tizen 3.0
- *
- * @param[in] service The service's GATT handle
- * @param[in] included_service The service's GATT handle to be added as included service
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_create()
- */
-int bt_gatt_service_add_included_service(bt_gatt_h service,
- bt_gatt_h included_service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Gets the GATT server handle to which the specified service belongs.
- * @since_tizen 3.0
- *
- * @remarks The returned Server handle must not be freed by application.
- *
- * @param[in] service The service's GATT handle
- * @param[out] server The GATT server handle to which @a service belongs
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_create()
- * @see bt_gatt_service_create()
- * @see bt_gatt_server_register_service()
- */
-int bt_gatt_service_get_server(bt_gatt_h service, bt_gatt_server_h *server);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Creates the GATT characteristic.
- * @since_tizen 3.0
- *
- * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
- * @remarks The @a properties can be one or more values of #bt_gatt_property_e, combined with bitwise 'or'.
- * @remarks The @a characteristic should be destroyed by using bt_gatt_characteristic_destroy().
- *
- * @param[in] uuid The UUID of the characteristic
- * @param[in] permissions the permissions of the characteristic
- * @param[in] properties The properties of the characteristic
- * @param[in] value The value(byte stream) of the characteristic
- * @param[in] value_length The length of @a value
- * @param[out] characteristic The GATT handle of the created characteristic
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_destroy()
- */
-int bt_gatt_characteristic_create(const char *uuid, int permissions,
- int properties, const char *value, int value_length,
- bt_gatt_h *characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Adds a descriptor to a specified characteristic.
- * @since_tizen 3.0
- *
- * @param[in] characteristic The GATT handle of the characteristic
- * @param[in] descriptor The descriptor's GATT handle to be added
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_create()
- * @see bt_gatt_descriptor_create()
- */
-int bt_gatt_characteristic_add_descriptor(bt_gatt_h characteristic,
- bt_gatt_h descriptor);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Creates the GATT characteristic descriptor.
- * @since_tizen 3.0
- *
- * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
- * @remarks The @a descriptor should be destroyed by using bt_gatt_descriptor_destroy()
- *
- * @param[in] uuid The UUID of the descriptor
- * @param[in] permissions The permissions of the descriptor
- * @param[in] value The value(byte stream) associated with the descriptor
- * @param[in] value_length The length of @a value
- * @param[out] descriptor The GATT handle of the created characteristic descriptor
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_descriptor_destroy()
- */
-int bt_gatt_descriptor_create(const char *uuid, int permissions,
- const char *value, int value_length,
- bt_gatt_h *descriptor);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Initializes the GATT Server.
- * @since_tizen 3.0
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_server_deinitialize()
- */
-int bt_gatt_server_initialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief DeInitializes the GATT server.
- * @since_tizen 3.0
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_server_initialize()
- */
-int bt_gatt_server_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Creates the GATT server's handle.
- * @since_tizen 3.0
- *
- * @param[out] server The GATT server's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_destroy()
- */
-int bt_gatt_server_create(bt_gatt_server_h *server);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Destroys the GATT server's handle.
- * @since_tizen 3.0
- *
- * @remarks All registered services to GATT server are unregistered
- *
- * @param[in] server The GATT server's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_create()
- */
-int bt_gatt_server_destroy(bt_gatt_server_h server);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers a callback function to be invoked when a read request for a specified characteristic or descriptor is issued from a remote device(GATT client).
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
- * @param[in] callback The callback to be invoked
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_read_value_requested_cb()
- * @see bt_gatt_server_send_response()
- */
-int bt_gatt_server_set_read_value_requested_cb(bt_gatt_h gatt_handle,
- bt_gatt_server_read_value_requested_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers a callback function to be invoked when the remote device enables or disables the Notification/Indication for particular characteristics.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The GATT handle of a characteristic
- * @param[in] callback The callback to be invoked
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_characteristic_notification_state_changed_cb()
- */
-int bt_gatt_server_set_characteristic_notification_state_change_cb(bt_gatt_h gatt_handle,
- bt_gatt_server_characteristic_notification_state_changed_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers a callback function to be invoked when a value of a characteristic or descriptor has been changed by a remote device(GATT client)'s request.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
- * @param[in] callback The callback to be invoked
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_write_value_requested_cb()
- */
-int bt_gatt_server_set_write_value_requested_cb(bt_gatt_h gatt_handle,
- bt_gatt_server_write_value_requested_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers a specified service to the specified GATT server that the local device is hosting.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] server The GATT server that local device is hosting
- * @param[in] service The service, which needs to be registered in @a server
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_create()
- * @see bt_gatt_service_create()
- * @see bt_gatt_server_start()
- * @see bt_gatt_server_unregister_service()
- */
-int bt_gatt_server_register_service(bt_gatt_server_h server, bt_gatt_h service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Unregisters a specified service from the specified GATT server that the local device is hosting.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] server The GATT server that local device is hosting
- * @param[in] service The service, which needs to be unregistered from @a server
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_SERVICE_NOT_FOUND Service not found
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_register_service()
- */
-int bt_gatt_server_unregister_service(bt_gatt_server_h server, bt_gatt_h service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Unregisters all services from the specified GATT server that the local device is hosting.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] server The GATT server that local device is hosting
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_register_service()
- */
-int bt_gatt_server_unregister_all_services(bt_gatt_server_h server);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers the application along with the GATT services of the application it is hosting.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_initialize()
- * @see bt_gatt_server_create()
- * @see bt_gatt_service_create()
- * @see bt_gatt_server_unregister_service()
- */
-int bt_gatt_server_start(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Sends a response to the remote device as a result of a read/write request.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks Until this function is called, a read/write request is not finished.
- *
- * @param[in] request_id The identification of a read/write request
- * @param[in] request_type The request type for read/write
- * @param[in] offset The offset from where a value is read
- * @param[in] resp_status The application error if any occurred or BT_ERROR_NONE for successful.
- * @param[in] value The value to be sent. It will be sent from @a offset. If it is NULL, a requested GATT handle's value will be sent from @a offset.
- * @param[in] value_length Value Length
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_read_value_requested_cb()
- */
-int bt_gatt_server_send_response(int request_id, bt_gatt_att_request_type_e request_type,
- int offset, int resp_status, char *value, int value_length);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Notifies value change of the characteristic to the remote devices which enable a Client Characteristic Configuration Descriptor.
- * @since_tizen 3.0
- *
- * @param[in] characteristic The characteristic which has a changed value
- * @param[in] callback The function to be invoked on each remote device when a sending operation is done
- * @param[in] device_address Remote device address to send notify or indicate and if set to NULL then notify/indicate all is enabled.
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_notification_sent_cb()
- */
-int bt_gatt_server_notify_characteristic_changed_value(bt_gatt_h characteristic,
- bt_gatt_server_notification_sent_cb callback,
- const char *device_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Gets a service's GATT handle which has specific UUID.
- * @since_tizen 3.0
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated server is destroyed by bt_gatt_server_destroy().
- * If there are multiple services which have same UUID, only the first matched one will be returned.
- *
- * @param[in] server The GATT server's handle
- * @param[in] uuid The service's GATT handle which has this UUID will be returned if it exists
- * @param[out] service The service's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_server_get_service(bt_gatt_server_h server, const char *uuid,
- bt_gatt_h *service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Invokes @a callback function on each service that belongs to the specified GATT server.
- * @since_tizen 3.0
- *
- * @param[in] server The GATT server's handle
- * @param[in] callback The function to be invoked on each service
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_server_foreach_services(bt_gatt_server_h server,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @}
- */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_EXTENSION_H__
-#define __TIZEN_NETWORK_BLUETOOTH_EXTENSION_H__
-
-#include "bluetooth_type.h"
-#include "bluetooth_type_extension.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_extension.h
- */
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Opens a SCO(Synchronous Connection Oriented link) to connected remote device, asynchronously.
- * @since_tizen 2.3
- * @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_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @post bt_ag_sco_state_changed_cb() will be invoked.
- * @see bt_ag_close_sco()
- * @see bt_ag_sco_state_changed_cb()
- * @see bt_audio_connect()
- */
-int bt_ag_open_sco(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Closes an opened SCO(Synchronous Connection Oriented link), asynchronously.
- * @since_tizen 2.3
- * @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_NOT_ENABLED Not enabled
- * @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 SCO must be opened with bt_ag_open_sco().
- * @post bt_ag_sco_state_changed_cb() will be invoked.
- * @see bt_ag_open_sco()
- * @see bt_ag_sco_state_changed_cb()
- */
-int bt_ag_close_sco(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Checks whether an opened SCO(Synchronous Connection Oriented link) exists or not.
- * @since_tizen 2.3
- * @param[out] opened The SCO status: (@c true = opened, @c false = not opened)
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_ag_open_sco()
- * @see bt_ag_close_sco()
- */
-int bt_ag_is_sco_opened(bool *opened);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when the SCO(Synchronous Connection Oriented link) state is changed.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_sco_state_changed_cb()
- * @see bt_ag_unset_sco_state_changed_cb()
- */
-int bt_ag_set_sco_state_changed_cb(bt_ag_sco_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when the SCO(Synchronous Connection Oriented link) state is changed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_sco_state_changed_cb()
- * @see bt_ag_set_sco_state_changed_cb()
- */
-int bt_ag_unset_sco_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the state of voice recognition.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] state The state of voice recognition: (@c true = enabled, @c false = disabled)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_ag_notify_voice_recognition_state(bool state);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the speaker gain to the remote device.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @details This function sends a signal to the remote device. This signal has the gain value.
- * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
- * When the speaker gain of remote device is changed to the requested gain, bt_audio_speaker_gain_changed_cb() will be called.
- * @param[in] gain The gain of speaker (0 ~ 15)
- * @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 is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_ag_get_speaker_gain()
- * @see bt_ag_set_speaker_gain_changed_cb()
- * @see bt_ag_unset_speaker_gain_changed_cb()
- */
-int bt_ag_notify_speaker_gain(int gain);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Gets the current speaker gain of the remote device.
- * @since_tizen 2.3
- * @details This function gets the value of speaker gain of the remote device.
- * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
- * @param[out] gain The gain of speaker (0 ~ 15)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_ag_notify_speaker_gain()
- * @see bt_ag_set_speaker_gain_changed_cb()
- * @see bt_ag_unset_speaker_gain_changed_cb()
- */
-int bt_ag_get_speaker_gain(int *gain);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when the speaker gain of the remote device is changed.
- * @since_tizen 2.3
- * @details This function let you know the change of the speaker gain of the remote device.
- * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_unset_speaker_gain_changed_cb()
- */
-int bt_ag_set_speaker_gain_changed_cb(bt_ag_speaker_gain_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when the speaker gain of the remote device is changed.
- * @since_tizen 2.3
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_set_speaker_gain_changed_cb()
- */
-int bt_ag_unset_speaker_gain_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when the microphone gain of the remote device is changed.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_unset_microphone_gain_changed_cb()
- */
-int bt_ag_set_microphone_gain_changed_cb(bt_ag_microphone_gain_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when the microphone gain of the remote device is changed.
- * @since_tizen 2.3
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_set_microphone_gain_changed_cb()
- */
-int bt_ag_unset_microphone_gain_changed_cb(void);
-
-/**
- * @}
- */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_EXTENSION_H__ */
-
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_INTERNAL_H__
-#define __TIZEN_NETWORK_BLUETOOTH_INTERNAL_H__
-
-#include <glib.h>
-#include "bluetooth_type.h"
-#include "bluetooth_type_internal.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_internal.h
- */
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enables the local Bluetooth adapter, asynchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function enables Bluetooth protocol stack and hardware.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_ALREADY_DONE Already enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- * @pre The state of local Bluetooth must be #BT_ADAPTER_DISABLED
- * @post This function invokes bt_adapter_state_changed_cb().
- *
- * @see bt_initialize()
- * @see bt_adapter_get_state()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb()
- * @see bt_adapter_state_changed_cb()
- *
- */
-int bt_adapter_enable(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Disables the local Bluetooth adapter, asynchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function disables Bluetooth protocol stack and hardware.
- *
- * @remarks You should disable Bluetooth adapter, which is helpful for saving power.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED
- * @post This function invokes bt_adapter_state_changed_cb().
- *
- * @see bt_adapter_get_state()
- * @see bt_adapter_state_changed_cb()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb ()
- *
- */
-int bt_adapter_disable(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Recover the local Bluetooth adapter, asynchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function does recovery logic, disables Bluetooth protocol stack and hardware, then enables after a few seconds.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED
- * @post This function invokes bt_adapter_state_changed_cb().
- *
- * @see bt_adapter_get_state()
- * @see bt_adapter_state_changed_cb()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb ()
- *
- */
-int bt_adapter_recover(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief A2DP source/sink role is switched using this API
- * @since_tizen 4.0
- * @param[in] Role for A2DP
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @retval #BT_ERROR_OPERATION_FAILED Internal Error
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_initialize()
- * @see bt_audio_initialize()
- */
-int bt_audio_select_role(bt_audio_role_e role);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Reset the local Bluetooth adapter, synchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function resets Bluetooth protocol and values.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_state_changed_cb() will be invoked if The state of local Bluetooth was #BT_ADAPTER_ENABLED.
- *
- * @see bt_initialize()
- * @see bt_adapter_get_state()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb()
- * @see bt_adapter_state_changed_cb()
- *
- */
-int bt_adapter_reset(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the version of local Bluetooth adapter.
- * @since_tizen 2.3
- * @remarks The @a local_version must be released with free() by you.
- *
- * @param[out] local_version The version of local Bluetooth adapter
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_adapter_get_version(char **local_version);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the information regarding local Bluetooth adapter.
- * @since_tizen 2.3
- * @remarks The @a all parameters must be released with free() by you.
- *
- * @param[out] chipset Chipset name of local Bluetooth adapter
- * @param[out] firmware Firmware info. of local Bluetooth adapter
- * @param[out] stack_version Bluetooth stack version
- * @param[out] profiles The profile list of local Bluetooth adapter
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_adapter_get_local_info(char **chipset, char **firmware, char **stack_version, char **profiles);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the visibility mode.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE will change to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE
- * after the given @a duration goes.
- *
- * @param[in] discoverable_mode The Bluetooth visibility mode to set
- * @param[in] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds).
- * @a duration is used only for #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE mode.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_adapter_visibility_mode_changed_cb() will be invoked if this function returns #BT_ERROR_NONE.
- *
- * @see bt_adapter_get_visibility()
- * @see bt_adapter_visibility_mode_changed_cb()
- * @see bt_adapter_set_visibility_mode_changed_cb()
- * @see bt_adapter_unset_visibility_mode_changed_cb()
- */
-int bt_adapter_set_visibility(bt_adapter_visibility_mode_e discoverable_mode, int duration);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function that will be invoked when remote device requests authentication.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @param[in] callback callback function to be set when a request is received.
- * @param[in] user_data data from application which will be provided in callback.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @see bt_initialize()
- * @see bt_adapter_set_authentication_req_cb()
- */
-int bt_adapter_set_authentication_req_cb(bt_adapter_authentication_req_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters a callback function that will be invoked when remote device requests authentication.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @see bt_initialize()
- * @see bt_adapter_set_authentication_req_cb()
- */
-int bt_adapter_unset_authentication_req_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief API to reply with PIN or PASSKEY with authentication type - TRUE or FALSE.
- * @remarks This function can be called by application when remote device requests PIN or PASSKEY from
- * local adapter.
- * @param[in] passkey The passkey to be provided by application when remote devices requests for it.
- * @param[in] authentication_reply This indicates whether application wants to accept or cancel the on-going pairing
- * @pre This function can only be called when application receieves authentication event (BT_AUTH_PIN_REQUEST)
- * from remote device.
- * @see bt_adapter_set_authentication_req_cb()
- */
-int bt_adapter_passkey_reply(char *passkey, bool authentication_reply);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief API to reply to the PASSKEY confirmation for on-going pairing with remote device.
- * @remarks This function can be called by application, when local adapter wants PASSKEY confirmation from user.
- * @param[in] confirmation_reply This indicates whether application wants to accepts or cancels the on-going pairing
- * confirmation_reply : TRUE will indicate that Application has confirmed the PASSKEY
- * confirmation_reply : FALSE will indicate that Application has failed to confirm the PASSKEY. In this situation
- * the pairing will be failed.
- * @pre This function can only be called when application receives authentication event (BT_AUTH_PASSKEY_CONFIRM_REQUEST)
- * from remote device.
- * @see bt_adapter_set_authentication_req_cb()
- */
-int bt_adapter_passkey_confirmation_reply(bool confirmation_reply);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the connectable state changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_connectable_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_connectable_changed_cb()
- * @see bt_adapter_unset_connectable_changed_cb()
- */
-int bt_adapter_set_connectable_changed_cb(bt_adapter_connectable_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_connectable_changed_cb()
- */
-int bt_adapter_unset_connectable_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the connectable state of local Bluetooth adapter.
- * @since_tizen 2.3
- *
- * @remarks When connectable state is false, no device can connect to this device and visibility mode cannot be changed.
- *
- * @param[out] connectable The connectable state of local Bluetooth adapter
- *
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_set_connectable()
- */
-int bt_adapter_get_connectable(bool *connectable);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the connectable state of local Bluetooth adapter.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks When connectable state is false, no device can connect to this device and visibility mode cannot be changed.
- *
- * @param[in] connectable The connectable state to set
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_adapter_connectable_changed_cb() will be invoked if this function returns #BT_ERROR_NONE.
- *
- * @see bt_adapter_get_connectable()
- * @see bt_adapter_connectable_changed_cb()
- * @see bt_adapter_set_connectable_changed_cb()
- * @see bt_adapter_unset_connectable_changed_cb()
- */
-int bt_adapter_set_connectable(bool connectable);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the manufacturer data of local Bluetooth adapter.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] data The manufacturer specific data of the Bluetooth device.
- * @param[in] len The length of @a data.Maximaum length is 240 bytes.
- *
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_adapter_manufacturer_data_changed_cb() will be invoked
- * if this function returns #BT_ERROR_NONE.
- *
- * @see bt_adapter_manufacturer_data_changed_cb
- * @see bt_adapter_set_manufacturer_data_changed_cb()
- * @see bt_adapter_unset_manufacturer_data_changed_cb()
- */
-int bt_adapter_set_manufacturer_data(char *data, int len);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked
- * when the manufacturer data of Bluetooth adapter changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_manufacturer_data_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_unset_manufacturer_data_changed_cb()
- */
-int bt_adapter_set_manufacturer_data_changed_cb(
- bt_adapter_manufacturer_data_changed_cb callback,
- void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_manufacturer_data_changed_cb()
- */
-int bt_adapter_unset_manufacturer_data_changed_cb(void);
-
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enables the local Bluetooth le adapter, asynchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function enables Bluetooth protocol stack and hardware.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_ALREADY_DONE Already enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- * @post This function invokes bt_adapter_le_state_changed_cb().
- *
- * @see bt_initialize()
- * @see bt_adapter_le_get_state()
- * @see bt_adapter_le_set_state_changed_cb()
- * @see bt_adapter_le_unset_state_changed_cb()
- * @see bt_adapter_le_state_changed_cb()
- *
- */
-int bt_adapter_le_enable(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Disables the local Bluetooth le adapter, asynchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function disables Bluetooth le protocol stack and hardware.
- *
- * @remarks
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_LE_ENABLED
- * @post This function invokes bt_adapter_le_state_changed_cb().
- *
- * @see bt_adapter_le_get_state()
- * @see bt_adapter_le_state_changed_cb()
- * @see bt_adapter_le_set_state_changed_cb()
- * @see bt_adapter_le_unset_state_changed_cb ()
- *
- */
-int bt_adapter_le_disable(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the current state of local Bluetooth adapter.
- * @since_tizen 2.3
- *
- * @param[out] adapter_le_state The current adapter le state
- *
- * @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_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- */
-int bt_adapter_le_get_state(bt_adapter_le_state_e *adapter_le_state);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Registers a callback function to be invoked when the Bluetooth adapter le state changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_le_state_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_le_state_changed_cb()
- * @see bt_adapter_le_unset_state_changed_cb()
- */
-int bt_adapter_le_set_state_changed_cb(bt_adapter_le_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_le_set_state_changed_cb()
- */
-int bt_adapter_le_unset_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief add address to whitelist for accepting scanning request.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks If the adress is in the whitelist then other LE devices are able to
- * search this device. Before calling this API, make sure that the adapter is
- * enabled. There is no callback event for this API.
-
- * @param[in] address The other device's address
- * @param[in] address_type The other device's address type
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_stop_advertising()
- */
-int bt_adapter_le_add_white_list(const char *address, bt_device_address_type_e address_type);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief remove address from the whitelist for not accepting scanning request.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks If the adress is in the whitelist then other LE devices are able to
- * search this device. Before calling this API, make sure that the adapter is
- * enabled. There is no callback event for this API.
- *
- * @param[in] address The other device's address
- * @param[in] address_type The other device's address type
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_stop_advertising()
- */
-int bt_adapter_le_remove_white_list(const char *address, bt_device_address_type_e address_type);
-
-/**
- * @internal
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief clear address from the whitelist for not accepting scanning request.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks If the adress is in the whitelist then other LE devices are able to
- * search this device. Before calling this API, make sure that the adapter is
- * enabled. There is no callback event for this API.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Adapter is not enabled
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_stop_advertising()
- */
-int bt_adapter_le_clear_white_list(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Sets the Privacy feature state of local Bluetooth adapter.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] enable_privacy The privacy feature to set/unset.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The state of local Bluetooth must be #BT_ADAPTER_LE_ENABLED.
- *
- */
-int bt_adapter_le_enable_privacy(bool enable_privacy);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Creates scan filter to find only LE advertisement which has specific data.
- * @since_tizen 2.4
- *
- * @param[out] scan_filter The handle of scan filter
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_destroy_scan_filter()
- */
-int bt_adapter_le_create_scan_filter(bt_scan_filter_h *scan_filter);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Destroys scan filter.
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_create_scan_filter()
- */
-int bt_adapter_le_destroy_scan_filter(bt_scan_filter_h scan_filter);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the device address to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] address The device address to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_device_address(bt_scan_filter_h scan_filter, const char *address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the device name to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] name The device name to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_device_name(bt_scan_filter_h scan_filter, const char *name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service UUID to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service UUID to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_uuid(bt_scan_filter_h scan_filter, const char *uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service uuid and the mask to filter advertisements by partial data
- * @since_tizen 2.4
- *
- * @remarks the length of mask msut be the same with the length of service uuid.
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service UUID to filter advertisements
- * @param[in] mask The mask to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_uuid_with_mask(bt_scan_filter_h scan_filter,
- const char *uuid, const char *mask);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service solicitation UUID to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service solicitation UUID to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_solicitation_uuid(bt_scan_filter_h scan_filter, const char *uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service solicitation uuid and the mask to filter advertisements by partial data
- * @since_tizen 2.4
- *
- * @remarks the length of mask msut be the same with the length of service solicitation uuid.
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service solicitation UUID to filter advertisements
- * @param[in] mask The mask to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_solicitation_uuid_with_mask(bt_scan_filter_h scan_filter,
- const char *uuid, const char *mask);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service data to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service UUID to filter advertisements
- * @param[in] data The service data to filter advertisements
- * @param[in] data_len The length of the service data
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_data(bt_scan_filter_h scan_filter,
- const char *uuid, const char *data, unsigned int data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service data and the mask to filter advertisements by partial data
- * @since_tizen 2.4
- *
- * @remarks the length of mask msut be the same with the length of service data.
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service UUID to filter advertisements
- * @param[in] data The service data to filter advertisements
- * @param[in] data_len The length of the service data
- * @param[in] mask The mask to filter advertisements
- * @param[in] mask_len The length of the mask to be set.
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_data_with_mask(bt_scan_filter_h scan_filter,
- const char *uuid, const char *data, unsigned int data_len, const char *mask, unsigned int mask_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the manufacturer data to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] manufacturer_id The manufacturer ID (0x0000 ~ 0xFFFF)
- * @param[in] data The manufacturer data (byte array)
- * @param[in] data_len The length of manufacturer data
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_manufacturer_data(bt_scan_filter_h scan_filter,
- int manufacturer_id, const char *data, unsigned int data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the manufacturer data and the mask to filter advertisements by partial data
- * @since_tizen 2.4
- *
- * @remarks the length of mask msut be the same with the length of service uuid.
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] manufacturer_id The manufacturer ID (0x0000 ~ 0xFFFF)
- * @param[in] data The manufacturer data (byte array)
- * @param[in] data_len The length of manufacturer data
- * @param[in] mask The mask to filter advertisements
- * @param[in] mask_len The length of the mask to be set.
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_manufacturer_data_with_mask(bt_scan_filter_h scan_filter,
- int manufacturer_id, const char *data, unsigned int data_len, const char *mask, unsigned int mask_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Registers the scan filter to use for scanning
- * @since_tizen 2.4
- *
- * @remarks Several scan filters can be registered. And the specific advertisements, satisfy the one of scan filters, will be found.
- *
- * @param[in] scan_filter The handle of scan filter
- *
- * @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_NOW_IN_PROGRESS Scan is in progress
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_register_scan_filter(bt_scan_filter_h scan_filter);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unregisters the scan filter to be registered
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- *
- * @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_NOW_IN_PROGRESS Scan is in progress
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_unregister_scan_filter(bt_scan_filter_h scan_filter);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unregisters all scan filters to be registered
- * @since_tizen 2.4
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOW_IN_PROGRESS Scan is in progress
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_unregister_all_scan_filters(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set advertising filter policy to use white list
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] filter_policy The filter policy of advertising
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_start_advertising_new()
- */
-int bt_adapter_le_set_advertising_filter_policy(bt_advertiser_h advertiser, bt_adapter_le_advertising_filter_policy_e filter_policy);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets a connection state
- * @since_tizen 2.4
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] link_type The link type to get a connection state
- * @param[out] connected The connection state
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- */
-int bt_device_get_connection_state(const char *remote_address, bt_device_connection_link_type_e link_type, bool *connected);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Creates a bond with a remote Bluetooth device, asynchronously.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks A bond can be destroyed by bt_device_destroy_bond().\n
- * The bonding request can be cancelled by bt_device_cancel_bonding().
- *
- * @param[in] remote_address The address of the remote Bluetooth device with which the bond should be created
- * @param[in] conn_type The connection type(LE or BREDR) to create bond with remote device
- *
- * @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_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
- * @post This function invokes bt_device_bond_created_cb().
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_device_create_bond()
- * @see bt_device_bond_created_cb()
- * @see bt_device_cancel_bonding()
- * @see bt_device_destroy_bond()
- * @see bt_device_set_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-int bt_device_create_bond_by_type(const char *remote_address,
- bt_device_connection_link_type_e conn_type);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Cancels service search process.
- * @since_tizen 2.3
- * @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_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The service search must be in progress by bt_device_start_service_search().
- *
- * @see bt_device_start_service_search()
- * @see bt_device_service_searched_cb()
- * @see bt_device_set_service_searched_cb()
- * @see bt_device_unset_service_searched_cb()
- */
-int bt_device_cancel_service_search(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Sets a profile restricted connection for a device
- * @since_tizen 3.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_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_set_profile_restricted(const char *device_address, bt_restricted_profile_t profile, bool restricted);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets a profile restricted connection for a device
- * @since_tizen 3.0
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_get_profile_restricted(const char *device_address, bt_restricted_profile_t profile, int *restricted);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Request to change ATT MTU value
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] mtu New MTU value to be changed
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_request_att_mtu(const char *remote_address, unsigned int mtu);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets the ATT MTU value set for a connection
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[ot] mtu MTU value set for a connection
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_get_att_mtu(const char *remote_address, unsigned int *mtu);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the ATT MTU is changed.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_unset_att_mtu_changed_cb()
- */
-int bt_device_set_att_mtu_changed_cb(bt_device_att_mtu_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function to be invoked when the ATT MTU is changed.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_att_mtu_changed_cb()
- */
-int bt_device_unset_att_mtu_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Registers a rfcomm server socket with a specific UUID. Activation by dbus is possible when the profile is connected.
- * @since_tizen 2.4
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks A socket can be destroyed by bt_socket_destroy_rfcomm_ex().
- * Application should call this API to receive a connection event when launched again by dbus.
- *
- * @param[in] uuid The UUID of service to provide
- * @param[in] bus_name bus_name of the application which is provided in service file.
- * @param[in] object_path dbus of the application
- * @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_NOW_IN_PROGRESS Already registered
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_socket_listen_and_accept_rfcomm_ex()
- * @see bt_socket_destroy_rfcomm_ex()
- */
-int bt_socket_create_rfcomm_ex(const char *uuid, const char *bus_name, const char *object_path);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Removes the rfcomm server socket which was created using bt_socket_create_rfcomm_ex().
- * @since_tizen 2.4
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @remarks If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
- * then bt_socket_connection_state_changed_cb() will be called when this function is finished successfully.
- *
- * @param[in] uuid The UUID (which was created using bt_socket_create_rfcomm()) to destroy
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm_ex().
- * @post If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
- * then bt_socket_connection_state_changed_cb() will be called.
- * @see bt_socket_create_rfcomm_ex()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_destroy_rfcomm_ex(const char *uuid);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Starts listening on passed rfcomm socket and accepts connection requests. Activation by dbus is possible when the profile is connected.
- * @since_tizen 2.4
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @details Pop-up is shown automatically when a RFCOMM connection is requested.
- * bt_socket_connection_state_changed_cb() will be called with
- * #BT_SOCKET_CONNECTED if you click "yes" and connection is finished successfully.
- * @param[in] uuid The UUID of service to provide
- * @param[in] max_pending_connections The maximum number of pending connections
- * @param[in] bus_name bus_name of the application which is provided in service file.
- * @param[in] object_path dbus of the application
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm_ex().
- * @post If callback function bt_socket_connection_state_changed_cb() is set,
- * then bt_socket_connection_state_changed_cb() will be called when the remote Bluetooth device is connected.
- * @see bt_socket_create_rfcomm_ex()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_listen_and_accept_rfcomm_ex(const char *uuid, int max_pending_connections, const char* bus_name, const char *object_path);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Starts listening on passed rfcomm socket.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @details bt_socket_connection_requested_cb() will be called when a RFCOMM connection is requested.
- *
- * @param[in] socket_fd The file descriptor socket on which start to listen
- * @param[in] max_pending_connections The number of pending connections
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm().
- * @post This function invokes bt_socket_connection_state_changed_cb().
- *
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_set_connection_requested_cb()
- * @see bt_socket_unset_connection_requested_cb()
- * @see bt_socket_connection_requested_cb()
- */
-int bt_socket_listen(int socket_fd, int max_pending_connections);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Accepts a connection request.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] requested_socket_fd The file descriptor of socket on which a connection is requested
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The connection is requested by bt_socket_connection_requested_cb().
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_connection_requested_cb()
- * @see bt_socket_listen()
- * @see bt_socket_reject()
-*/
-int bt_socket_accept(int requested_socket_fd);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Rejects a connection request.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] socket_fd The file descriptor of socket on which a connection is requested
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The connection is requested by bt_socket_connection_requested_cb().
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_connection_requested_cb()
- * @see bt_socket_listen()
- * @see bt_socket_accept()
- */
-int bt_socket_reject(int socket_fd);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Initializes the Bluetooth OPP server requested by bt_opp_server_push_requested_cb().
- * @since_tizen 2.3
- * @details The popup appears when an OPP connection is requested from a remote device.
- * If you accept the request, then connection will be established and bt_opp_server_push_requested_cb() will be called.
- * At that time, you can call either bt_opp_server_accept() or bt_opp_server_reject().
- * @remarks This function must be called to start Bluetooth OPP server. You must free all resources of the Bluetooth service
- * by calling bt_opp_server_deinitialize() if Bluetooth OPP service is no longer needed.
- * @param[in] destination The destination path
- * @param[in] push_requested_cb The callback called when a push is requested
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_push_requested_cb()
- * @see bt_opp_server_deinitialize()
- * @see bt_opp_server_accept()
- * @see bt_opp_server_reject()
- */
-int bt_opp_server_initialize(const char *destination, bt_opp_server_push_requested_cb push_requested_cb, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_MODULE
- * @brief Gets the percentage progress for ongoing transfers.
- * @since_tizen 3.0
- * @exception None
- * @param[in] transfer_type Transfer Type: (@c BLUETOOTH_TRANSFER_INBOUND = receiving , @c BLUETOOTH_TRANSFER_OUTBOUND = sending)
- * @param[in] transfer_id Transfer ID
- * @param[out] progress Percentage Progress
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- */
-int bt_opp_get_transfer_progress(bt_opp_transfer_type_t transfer_type,
- int transfer_id, unsigned char *progress);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the call event to the remote bluetooth device.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @remarks Before notifying #BT_AG_CALL_EVENT_ANSWERED or #BT_AG_CALL_EVENT_DIALING, you should open SCO(Synchronous Connection Oriented link)
- * if Bluetooth Hands-Free need SCO connection.
- * @param[in] event The call event
- * @param[in] call_id The call ID
- * @param[in] phone_number The phone number. You must set this value in case of #BT_AG_CALL_EVENT_DIALING and #BT_AG_CALL_EVENT_INCOMING.
- * In other cases, this value can be NULL.
- * @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_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 Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_ag_notify_call_event(bt_ag_call_event_e event, unsigned int call_id, const char *phone_number);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the call list to the remote bluetooth device.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] list The call list
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_ag_notify_call_list(bt_call_list_h list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the state of voice recognition.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] state The state of voice recognition: (@c true = enabled, @c false = disabled)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_ag_notify_voice_recognition_state(bool state);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when a call handling event happened from Hands-Free.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_call_handling_event_cb()
- * @see bt_ag_unset_call_handling_event_cb()
- */
-int bt_ag_set_call_handling_event_cb(bt_ag_call_handling_event_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when a call handling event happened from Hands-Free.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_call_handling_event_cb()
- * @see bt_ag_set_call_handling_event_cb()
- */
-int bt_ag_unset_call_handling_event_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when a multi call handling event happened from Hands-Free.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_multi_call_handling_event_cb()
- * @see bt_ag_unset_multi_call_handling_event_cb()
- */
-int bt_ag_set_multi_call_handling_event_cb(bt_ag_multi_call_handling_event_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when a multi call handling event happened from Hands-Free.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_multi_call_handling_event_cb()
- * @see bt_ag_set_multi_call_handling_event_cb()
- */
-int bt_ag_unset_multi_call_handling_event_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_dtmf_transmitted_cb()
- * @see bt_ag_unset_dtmf_transmitted_cb()
- */
-int bt_ag_set_dtmf_transmitted_cb(bt_ag_dtmf_transmitted_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_dtmf_transmitted_cb()
- * @see bt_ag_set_dtmf_transmitted_cb()
- */
-int bt_ag_unset_dtmf_transmitted_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Checks whether the remoted device enables NREC(Noise Reduction and Echo Canceling) or not.
- * @since_tizen 2.3
- * @param[out] enabled The NREC status: (@c true = enabled, @c false = not enabled)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_audio_connect()
- */
-int bt_ag_is_nrec_enabled(bool *enabled);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
- * @brief Creates a handle of call list.
- * @since_tizen 2.3
- * @param[out] list The handle of call list
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_call_list_destroy()
- */
-int bt_call_list_create(bt_call_list_h *list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
- * @brief Destroys the handle of call list.
- * @since_tizen 2.3
- * @param[in] list The handle of call list
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_call_list_create()
- */
-int bt_call_list_destroy(bt_call_list_h list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
- * @brief Resets the handle of call list.
- * @since_tizen 2.3
- * @param[in] list The handle of call list
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_call_list_create()
- */
-int bt_call_list_reset(bt_call_list_h list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
- * @brief Adds a call to the handle of call list.
- * @since_tizen 2.3
- * @param[in] list The handle of call list
- * @param[in] call_id The call ID
- * @param[in] state The state of audio gate call
- * @param[in] phone_number The phone number. You must set this value in case of #BT_AG_CALL_EVENT_DIALING and #BT_AG_CALL_EVENT_INCOMING.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_call_list_create()
- */
-int bt_call_list_add(bt_call_list_h list, unsigned int call_id, bt_ag_call_state_e state, const char *phone_number);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Checks whether the remoted device is wbs (Wide Band Speech) mode or not.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[out] wbs_mode The wbs status: (@c true = wide band speech, @c false = narrow band speech)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The remote device is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_audio_connect()
- */
-int bt_ag_is_wbs_mode(bool *wbs_mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Gets the HF(Hands-Free) profile connected status for AG role.
- * @since_tizen 2.4
- * @param[out] connected the connected status: (@c true = connected , @c false = not connected )
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_ag_is_connected(bool *connected);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_A2DP_MODULE
- * @brief Sets copy protection. streaming application that needs to have the copy protection for the streaming data, shall invoke this API.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] status - TRUE/FALSE
- * @return 0 on success, otherwise negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_OPERATION_FAILED on failure
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_a2dp_set_content_protection(bool status);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the specification name from the UUID
- * @since_tizen 2.4
- *
- * @remarks @a name must be released with free() by you.
- *
- * @param[in] uuid The UUID
- * @param[out] name The specification name which defined from www.bluetooth.org
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_get_uuid()
- */
-int bt_gatt_get_uuid_specification_name(const char *uuid, char **name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Updates the permissions which a characteristic or descriptor's GATT handle has.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] permissions The permissions to be updated
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_create()
- * @see bt_gatt_descriptor_create()
- * @see bt_gatt_permission_e
- */
-int bt_gatt_set_permissions(bt_gatt_h gatt_handle, int permissions);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Updates the properties which a characteristic's GATT handle has.
- * @since_tizen 3.0
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] properties The properties to be updated
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_property_e
- */
-int bt_gatt_characteristic_set_properties(bt_gatt_h characteristic, int properties);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Destroys the GATT handle
- * @since_tizen 2.4
- *
- * @param[in] gatt_handle The handle of service, characteristic or descriptor
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_create()
- * @see bt_gatt_characteristic_create()
- * @see bt_gatt_descriptor_create()
- */
-int bt_gatt_destroy(bt_gatt_h gatt_handle);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Registers a callback function that will be invoked when the A2DP Source connection state is changed.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_audio_connection_state_changed_cb()
- */
-int bt_a2dp_source_audio_set_connection_state_changed_cb(bt_audio_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Unregisters a callback function that will be invoked when the A2DP Source connection state is changed.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_audio_connection_state_changed_cb()
- * @see bt_audio_set_connection_state_changed_cb()
- */
-int bt_a2dp_source_audio_unset_connection_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Activates the NAP(Network Access Point).
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED
- * @see bt_nap_deactivate()
- */
-int bt_nap_activate(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Deactivates the NAP(Network Access Point).
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth NAP service must be activated with bt_nap_activate().
- * @see bt_nap_activate()
- */
-int bt_nap_deactivate(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Disconnects the all PANUs(Personal Area Networking User) which are connected to you.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth NAP service must be activated with bt_nap_activate().
- * @see bt_nap_activate()
- */
-int bt_nap_disconnect_all(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Disconnects the specified PANU(Personal Area Networking User) which is connected to you.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth NAP service must be activated with bt_nap_activate().
- * @see bt_nap_activate()
- */
-int bt_nap_disconnect(const char *remote_address);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Registers a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_nap_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_nap_connection_state_changed_cb()
- * @see bt_nap_unset_connection_state_changed_cb()
- */
-int bt_nap_set_connection_state_changed_cb(bt_nap_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_nap_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_nap_connection_state_changed_cb()
- * @see bt_nap_set_connection_state_changed_cb()
- */
-int bt_nap_unset_connection_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Registers a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_nap_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_panu_connection_state_changed_cb()
- * @see bt_panu_unset_connection_state_changed_cb()
- */
-int bt_panu_set_connection_state_changed_cb(bt_panu_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_nap_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_panu_connection_state_changed_cb()
- * @see bt_panu_set_connection_state_changed_cb()
- */
-int bt_panu_unset_connection_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Connects the remote device with the PAN(Personal Area Networking) service, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @param[in] type The type of PAN service
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @post bt_panu_connection_state_changed_cb() will be invoked.
- * @see bt_panu_disconnect()
- * @see bt_panu_connection_state_changed_cb()
- */
-int bt_panu_connect(const char *remote_address, bt_panu_service_type_e type);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Disconnects the remote device with the PAN(Personal Area Networking) service, asynchronously.
- * @since_tizen 2.3
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected by bt_panu_connect().
- * @post bt_panu_connection_state_changed_cb() will be invoked.
- * @see bt_panu_connect()
- * @see bt_panu_connection_state_changed_cb()
- */
-int bt_panu_disconnect(const char *remote_address);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief update LE connection.
- * @since_tizen 2.3
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @pre The remote device must be connected with bt_gatt_connect().
- */
-int bt_device_le_conn_update(const char *device_address,
- const bt_le_conn_update_s *parameters);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets the is_alias_set property of a bonded device.
- * @since_tizen 3.0
- *
- * @param [in] remote_address The address of remote device
- * @param [out] is_alias_set The is_alias_set property of device
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_adapter_get_bonded_device_is_alias_set(const char *remote_address, gboolean *is_alias_set);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Registers the method for HID Device role
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks This function must be called to register HID UUID
- * then only remote device could be able identify this one as HID device
- *
- * @param[in] callback The callback called when the connection state is changed
- * @param[in] user_data The user data to be passed to the callback function
- * @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_NOW_IN_PROGRESS Already activated
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_hid_device_deactivate()
- */
-int bt_hid_device_activate(bt_hid_device_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Unregisters the method for HID Device role
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks This function must be called to deregister HID UUID
- *
- * @param[in] socket_fd on which uuid need to be deregistered.
- * @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_NOT_IN_PROGRESS Not activated
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_hid_device_activate()
- */
-int bt_hid_device_deactivate(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Initiates HID device Connection with device role, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks This function must be called to Initiate Hid device role connection
- *
- * @param[in] remote_address device address of remote device.
- * @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_NOT_IN_PROGRESS Not activated
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_ALREADY_DONE Already connected
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @see bt_initialize()
- * @see bt_hid_device_activate()
- */
-int bt_hid_device_connect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Disconnects the connection with HID Host device, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address device address of remote device.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_disconnect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Sends the mouse event data.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address device address of remote device.
- * @param[in] mouse_data mouse data that need to be passed to remote device
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The HID connection must be established.
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_send_mouse_event(const char *remote_address,
- const bt_hid_mouse_data_s *mouse_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Sends the keyboard event data.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address device address of remote device.
- * @param[in] key_data key data the need to be passed to remote device
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The HID connection must be established.
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_send_key_event(const char *remote_address,
- const bt_hid_key_data_s *key_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Sets the callback when device gets some data from HID Host.
- * @since_tizen 2.3.1
- *
- * @param[in] callback callback function to be set when data is received.
- * @param[in] user_data data from application which will be provided in callback.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- *
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_set_data_received_cb(bt_hid_device_data_received_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Unsets the callback when device gets some data from HID Host.
- * @since_tizen 2.3.1
- *
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- *
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_unset_data_received_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Responds to the reports from HID Host.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address device address of remote device.
- * @param[in] header_type Header type to be there in response
- * @param[in] param_type Parameter type to be there in response.
- * @param[in] data Data to be present in data payload of response.
- * @param[in] data_len The length of the response data
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The HID connection must be established.
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_reply_to_report(const char *remote_address,
- bt_hid_header_type_e header_type, bt_hid_param_type_e param_type,
- const char *data, unsigned int data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Sends the custom event data.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address device address of remote device.
- * @param[in] report_id reoport id need to be passed to remote device
- * @param[in] data The data need to be passed to remote device
- * @param[in] data_len The length of the data
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The HID connection must be established.
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_send_custom_event(const char *remote_address,
- unsigned char report_id, const char *data, unsigned int data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets Restriction for BT mode(BT allowed or not).
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - BT Allow value.
- * BT_DPM_ERROR = -1, < bluetooth allowance error
- * BT_DPM_BT_ALLOWED, < bluetooth allowance allowed
- * BT_DPM_HANDSFREE_ONLY, < bluetooth allowance handsfree only
- * BT_DPM_BT_RESTRICTED, < bluetooth allowance restricted
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre none.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_allow_bluetooth_mode(bt_dpm_allow_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads Restriction for BT mode(BT allowed or not).
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @param[out] value - BT Allow value.
- * BT_DPM_ERROR = -1, < bluetooth allowance error
- * BT_DPM_BT_ALLOWED, < bluetooth allowance allowed
- * BT_DPM_HANDSFREE_ONLY, < bluetooth allowance handsfree only
- * BT_DPM_BT_RESTRICTED, < bluetooth allowance restricted
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre none.
- * @see bt_dpm_set_allow_bluetooth_mode()
- */
-int bt_dpm_get_allow_bluetooth_mode(bt_dpm_allow_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for device.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_activate_device_restriction(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for device.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_is_device_restriction_active(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for uuid.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_activate_uuid_restriction(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for uuid.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_is_uuid_restriction_active(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Adds the device to blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] device_address - Device address
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_add_devices_to_blacklist(const char *device_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Adds the device to whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] device_address - Device address
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_add_devices_to_whitelist(const char *device_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Adds the uuids to blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] service_uuids - profile or custom service uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_add_uuids_to_blacklist(const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Adds the uuid to whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] service_uuids - profile or custom service uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_add_uuids_to_whitelist(const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Clears the device from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_clear_devices_from_blacklist(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Clears the device from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_clear_devices_from_whitelist(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Clears the uuids from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_clear_uuids_from_blacklist(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Clears the uuids from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_clear_uuids_from_whitelist(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the devices from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] device_list - list of devices
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_devices_from_blacklist(bt_dpm_device_list_s **device_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the devices from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] device_list - list of devices
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_devices_from_whitelist(bt_dpm_device_list_s **device_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the uuids from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] uuid_list - list of uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_uuids_from_blacklist(bt_dpm_uuids_list_s **uuid_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the uuids from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] uuid_list - list of uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_uuids_from_whitelist(bt_dpm_uuids_list_s **uuid_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Removes the devices from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] device_address - Device address
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_remove_device_from_whitelist(const char *device_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Removes the devices from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] device_address - Device address
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_remove_device_from_blacklist(const char *device_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Removes the uuids from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] service_uuids - profile or custom service uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_remove_uuid_from_whitelist(const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Removes the uuids from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] service_uuids - profile or custom service uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_remove_uuid_from_blacklist(const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for outgoing call.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_allow_outgoing_call(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for outgoing call.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_allow_outgoing_call(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for pairing.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_pairing_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for pairing.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_pairing_state(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for profiles.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in]profile - Profile.
- * BT_DPM_POLICY_A2DP_PROFILE_STATE,
- * BT_DPM_POLICY_AVRCP_PROFILE_STATE,
- * BT_DPM_POLICY_BPP_PROFILE_STATE,
- * BT_DPM_POLICY_DUN_PROFILE_STATE,
- * BT_DPM_POLICY_FTP_PROFILE_STATE,
- * BT_DPM_POLICY_HFP_PROFILE_STATE,
- * BT_DPM_POLICY_HSP_PROFILE_STATE,
- * BT_DPM_POLICY_PBAP_PROFILE_STATE,
- * BT_DPM_POLICY_SAP_PROFILE_STATE,
- * BT_DPM_POLICY_SPP_PROFILE_STATE,
- * BT_DPM_PROFILE_NONE
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_profile_state(bt_dpm_profile_e profile, bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for profiles.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in]profile - Profile.
- * BT_DPM_POLICY_A2DP_PROFILE_STATE,
- * BT_DPM_POLICY_AVRCP_PROFILE_STATE,
- * BT_DPM_POLICY_BPP_PROFILE_STATE,
- * BT_DPM_POLICY_DUN_PROFILE_STATE,
- * BT_DPM_POLICY_FTP_PROFILE_STATE,
- * BT_DPM_POLICY_HFP_PROFILE_STATE,
- * BT_DPM_POLICY_HSP_PROFILE_STATE,
- * BT_DPM_POLICY_PBAP_PROFILE_STATE,
- * BT_DPM_POLICY_SAP_PROFILE_STATE,
- * BT_DPM_POLICY_SPP_PROFILE_STATE,
- * BT_DPM_PROFILE_NONE
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_profile_state(bt_dpm_profile_e profile, bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for desktop connectivity.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_desktop_connectivity_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for desktop connectivity.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_desktop_connectivity_state(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for discoverable mode.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_discoverable_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for discoverable mode.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_discoverable_state(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for limited discoverable mode.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-
-int bt_dpm_set_limited_discoverable_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for limited discoverable mode.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_limited_discoverable_state(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for Data transfer.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_data_transfer_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for Data transfer.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_data_transfer_state(bt_dpm_status_e *value);
-
-/**
- * @internal
- * @brief Initialize Bluetooth IPSP service and set the callback
- */
-int bt_ipsp_initialize(bt_ipsp_init_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @brief De-Initialize Bluetooth IPSP service and unset the callback
- */
-int bt_ipsp_deinitialize(void);
-
-/**
- * @internal
- * @brief Connect to a IPSP service over LE to remote device.
- */
-int bt_ipsp_connect(const char *address);
-
-/**
- * @internal
- * @brief Disconnect to a IPSP service over LE to remote device.
- */
-int bt_ipsp_disconnect(const char *address);
-
-/**
- * @internal
- * @brief Set IPSP connection state event change callback.
- */
-int bt_ipsp_set_connection_state_changed_cb(bt_ipsp_connection_state_changed_cb callback,
- void *user_data);
-
-/**
- * @internal
- * @brief Unset IPSP connection state event change callback.
- */
-int bt_ipsp_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Gets the pbap connected status.
- * @since_tizen 3.0
- * @param[in] remote_address The address of the remote device
- * @param[out] connected_status the connected status
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_pbap_client_is_connected(const char *address, bool *connected_status);
-
-/**
- * @internal
- * @brief Register the Proximity Profile.
- */
-int bt_proximity_register(bt_proximity_role_t role, bt_proximity_property_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @brief Unregister the Proximity Profile.
- */
-int bt_proximity_unregister(bt_proximity_role_t role);
-
-/**
- * @internal
- * @brief Set the Proximity Profile property value.
- */
-int bt_proximity_set_property(const char *remote_address, bt_proximity_property_t property, int value);
-
-/**
- * @internal
- * @brief Read the Proximity Profile property value.
- */
-int bt_proximity_get_property(const char *remote_address, bt_proximity_property_t property, int *value);
-
-/**
- * @internal
- * @brief Lists the Proximity Profile property/service supported.
- */
-int bt_proximity_get_supported_services(const char *remote_address, int *supported_services);
-
-/**
- * @internal
- * @brief API to set scan filter for iBeacons reports
- */
-int bt_adapter_le_set_ibeacon_scan_filter(bt_scan_filter_h scan_filter,
- const char *data, unsigned int data_len);
-
-/**
- * @internal
- * @brief API to read iBeacon report from LE scan result information
- */
-int bt_adapter_le_get_scan_result_ibeacon_report(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, bt_adapter_ibeacon_scan_result_info_s **ibeacon_info);
-
-/**
- * @internal
- * @brief API to clear the iBeacon report
- */
-int bt_adapter_le_free_ibeacon_report(bt_adapter_ibeacon_scan_result_info_s *ibeacon_info);
-
-/**
- * @}
- */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_INTERNAL_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_H__
-#define __TIZEN_NETWORK_BLUETOOTH_TYPE_H__
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdbool.h>
-#include <tizen_error.h>
-
- #ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_type.h
- * @brief API to control the Bluetooth adapter, devices and communications.
- * @ingroup CAPI_NETWORK_BLUETOOTH_TYPE_MODULE
- */
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @brief Enumerations of Bluetooth error codes.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful*/
- BT_ERROR_CANCELLED = TIZEN_ERROR_CANCELED, /**< Operation cancelled */
- BT_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
- BT_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
- BT_ERROR_RESOURCE_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Device or resource busy */
- BT_ERROR_TIMED_OUT = TIZEN_ERROR_TIMED_OUT, /**< Timeout error */
- BT_ERROR_NOW_IN_PROGRESS = TIZEN_ERROR_NOW_IN_PROGRESS, /**< Operation now in progress */
- BT_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< BT is Not Supported */
- BT_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */
- BT_ERROR_QUOTA_EXCEEDED = TIZEN_ERROR_QUOTA_EXCEEDED, /**< Quota exceeded */
- BT_ERROR_NO_DATA = TIZEN_ERROR_NO_DATA, /**< No data available */
- BT_ERROR_DEVICE_POLICY_RESTRICTION = TIZEN_ERROR_DEVICE_POLICY_RESTRICTION, /**< Device policy restriction (Since 3.0) */
- BT_ERROR_NOT_INITIALIZED = TIZEN_ERROR_BLUETOOTH|0x0101, /**< Local adapter not initialized */
- BT_ERROR_NOT_ENABLED = TIZEN_ERROR_BLUETOOTH|0x0102, /**< Local adapter not enabled */
- BT_ERROR_ALREADY_DONE = TIZEN_ERROR_BLUETOOTH|0x0103, /**< Operation already done */
- BT_ERROR_OPERATION_FAILED = TIZEN_ERROR_BLUETOOTH|0x0104, /**< Operation failed */
- BT_ERROR_NOT_IN_PROGRESS = TIZEN_ERROR_BLUETOOTH|0x0105, /**< Operation not in progress */
- BT_ERROR_REMOTE_DEVICE_NOT_BONDED = TIZEN_ERROR_BLUETOOTH|0x0106, /**< Remote device not bonded */
- BT_ERROR_AUTH_REJECTED = TIZEN_ERROR_BLUETOOTH|0x0107, /**< Authentication rejected */
- BT_ERROR_AUTH_FAILED = TIZEN_ERROR_BLUETOOTH|0x0108, /**< Authentication failed */
- BT_ERROR_REMOTE_DEVICE_NOT_FOUND = TIZEN_ERROR_BLUETOOTH|0x0109, /**< Remote device not found */
- BT_ERROR_SERVICE_SEARCH_FAILED = TIZEN_ERROR_BLUETOOTH|0x010A, /**< Service search failed */
- BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED = TIZEN_ERROR_BLUETOOTH|0x010B, /**< Remote device is not connected */
- BT_ERROR_AGAIN = TIZEN_ERROR_BLUETOOTH|0x010C, /**< Resource temporarily unavailable */
- BT_ERROR_SERVICE_NOT_FOUND = TIZEN_ERROR_BLUETOOTH|0x010D, /**< Service Not Found */
-} bt_error_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumerations of the Bluetooth adapter state.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_DISABLED = 0x00, /**< Bluetooth adapter is disabled */
- BT_ADAPTER_ENABLED, /**< Bluetooth adapter is enabled */
-} bt_adapter_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumerations of the Bluetooth visibility mode.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE = 0x00, /**< Other devices cannot find your device via discovery */
- BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE, /**< Discoverable mode */
- BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE, /**< Discoverable mode with time limit. After specific period,
- it is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.*/
-} bt_adapter_visibility_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumerations of the discovery state of Bluetooth device.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_DEVICE_DISCOVERY_STARTED, /**< Device discovery is started */
- BT_ADAPTER_DEVICE_DISCOVERY_FINISHED, /**< Device discovery is finished */
- BT_ADAPTER_DEVICE_DISCOVERY_FOUND, /**< The remote Bluetooth device is found */
-} bt_adapter_device_discovery_state_e;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the discovery state of Bluetooth LE device.
- * @since_tizen 2.3
- *
- */
-typedef enum {
- BT_ADAPTER_LE_DEVICE_DISCOVERY_STARTED, /**< LE device discovery is started */
- BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED, /**< LE device discovery is finished */
- BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND, /**< The remote Bluetooth LE device is found */
-} bt_adapter_le_device_discovery_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth advertising state.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_ADVERTISING_STOPPED = 0x00, /**< Bluetooth advertising is stopped */
- BT_ADAPTER_LE_ADVERTISING_STARTED, /**< Bluetooth advertising is started */
-} bt_adapter_le_advertising_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth advertising mode.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_ADAPTER_LE_ADVERTISING_MODE_BALANCED, /**< Balanced advertising mode */
- BT_ADAPTER_LE_ADVERTISING_MODE_LOW_LATENCY, /**< Low latency advertising mode */
- BT_ADAPTER_LE_ADVERTISING_MODE_LOW_ENERGY /**< Low energy advertising mode */
-} bt_adapter_le_advertising_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth advertising filter policy.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_ADVERTISING_FILTER_DEFAULT = 0x00, /**< White list is not in use */
- BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_SCAN_WL = 0x01, /**< Allow the scan
- request that in the White list */
- BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_CONN_WL = 0x02, /**< Allow the connection
- request that in the White list */
- BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_SCAN_CONN_WL = 0x03, /**< Allow the
- scan and connection request that in the White list */
-} bt_adapter_le_advertising_filter_policy_e;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth advertising type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_ADVERTISING_CONNECTABLE = 0x00, /**< Connectable undirected advertising (ADV_IND) */
- BT_ADAPTER_LE_ADVERTISING_CONNECTABLE_DIRECT_HIGH = 0x01, /**< Connectable high duty cycle directed advertising (ADV_DIRECT_IND) */
- BT_ADAPTER_LE_ADVERTISING_SCANNABLE = 0x02, /**< Scannable undirected advertising (ADV_SCAN_IND) */
- BT_ADAPTER_LE_ADVERTISING_NON_CONNECTABLE = 0x03, /**< Non connectable undirected advertising (ADV_NONCOND_IND) */
- BT_ADAPTER_LE_ADVERTISING_CONNECTABLE_DIRECT_LOW = 0x04, /**< Connectable low duty cycle directed advertising (ADV_DIRECT_IND) */
-} bt_adapter_le_advertising_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth LE packet type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_PACKET_ADVERTISING, /**< Advertising packet */
- BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, /**< Scan response packet */
-} bt_adapter_le_packet_type_e;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth LE data type
- * that can be included in LE packets.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_PACKET_DATA_COMP_LIST_16_BIT_SERVICE_CLASS_UUIDS = 0x03, /**< Complete list of 16 bit UUIDs */
- BT_ADAPTER_LE_PACKET_DATA_MANUFACTURER_SPECIFIC_DATA = 0xff, /**< Manufacturer data */
-} bt_adapter_le_packet_data_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth le scan mode.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_ADAPTER_LE_SCAN_MODE_BALANCED, /**< Balanced mode of power consumption and connection latency */
- BT_ADAPTER_LE_SCAN_MODE_LOW_LATENCY, /**< Low connection latency but high power consumption */
- BT_ADAPTER_LE_SCAN_MODE_LOW_ENERGY /**< Low power consumption but high connection latency */
-} bt_adapter_le_scan_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of device disconnect reason.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_DEVICE_DISCONNECT_REASON_UNKNOWN, /**< Disconnected by unknown reason */
- BT_DEVICE_DISCONNECT_REASON_TIMEOUT, /**< Disconnected by timeout */
- BT_DEVICE_DISCONNECT_REASON_LOCAL_HOST, /**< Disconnected by local host */
- BT_DEVICE_DISCONNECT_REASON_REMOTE, /**< Disconnected by remote */
-} bt_device_disconnect_reason_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of connection link type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_DEVICE_CONNECTION_LINK_BREDR, /**< BR/EDR link */
- BT_DEVICE_CONNECTION_LINK_LE, /**< LE link */
- BT_DEVICE_CONNECTION_LINK_DEFAULT = 0xFF, /**< The connection type default */
-} bt_device_connection_link_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of device authorization state.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_DEVICE_AUTHORIZED, /**< The remote Bluetooth device is authorized */
- BT_DEVICE_UNAUTHORIZED, /**< The remote Bluetooth device is unauthorized */
-} bt_device_authorization_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of Bluetooth profile.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_PROFILE_RFCOMM = 0x01, /**< RFCOMM Profile */
- BT_PROFILE_A2DP = 0x02, /**< Advanced Audio Distribution Profile Source role */
- BT_PROFILE_HSP = 0x04, /**< Headset Profile */
- BT_PROFILE_HID = 0x08, /**< Human Interface Device Profile */
- BT_PROFILE_NAP = 0x10, /**< Network Access Point Profile */
- BT_PROFILE_AG = 0x20, /**< Audio Gateway Profile */
- BT_PROFILE_GATT = 0x40, /**< Generic Attribute Profile */
- BT_PROFILE_NAP_SERVER = 0x80, /**< NAP server Profile */
- BT_PROFILE_A2DP_SINK = 0x100, /**< Advanced Audio Distribution Profile Sink role */
-} bt_profile_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of device address type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_DEVICE_PUBLIC_ADDRESS = 0x00, /**< Public address */
- BT_DEVICE_RANDOM_ADDRESS, /**< Random address */
-} bt_device_address_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of service class.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_SC_NONE = 0, /**< No service class */
- BT_SC_RES_SERVICE_MASK = 0x00000001, /**< RES service class */
- BT_SC_SPP_SERVICE_MASK = 0x00000002, /**< SPP service class */
- BT_SC_DUN_SERVICE_MASK = 0x00000004, /**< DUN service class */
- BT_SC_FAX_SERVICE_MASK = 0x00000008, /**< FAX service class */
- BT_SC_LAP_SERVICE_MASK = 0x00000010, /**< LAP service class */
- BT_SC_HSP_SERVICE_MASK = 0x00000020, /**< HSP service class */
- BT_SC_HFP_SERVICE_MASK = 0x00000040, /**< HFP service class */
- BT_SC_OPP_SERVICE_MASK = 0x00000080, /**< OPP service class */
- BT_SC_FTP_SERVICE_MASK = 0x00000100, /**< FTP service class */
- BT_SC_CTP_SERVICE_MASK = 0x00000200, /**< CTP service class */
- BT_SC_ICP_SERVICE_MASK = 0x00000400, /**< ICP service class */
- BT_SC_SYNC_SERVICE_MASK = 0x00000800, /**< SYNC service class */
- BT_SC_BPP_SERVICE_MASK = 0x00001000, /**< BPP service class */
- BT_SC_BIP_SERVICE_MASK = 0x00002000, /**< BIP service class */
- BT_SC_PANU_SERVICE_MASK = 0x00004000, /**< PANU service class */
- BT_SC_NAP_SERVICE_MASK = 0x00008000, /**< NAP service class */
- BT_SC_GN_SERVICE_MASK = 0x00010000, /**< GN service class */
- BT_SC_SAP_SERVICE_MASK = 0x00020000, /**< SAP service class */
- BT_SC_A2DP_SERVICE_MASK = 0x00040000, /**< A2DP service class */
- BT_SC_AVRCP_SERVICE_MASK = 0x00080000, /**< AVRCP service class */
- BT_SC_PBAP_SERVICE_MASK = 0x00100000, /**< PBAP service class */
- BT_SC_HID_SERVICE_MASK = 0x00200000, /**< HID service class */
- BT_SC_A2DP_SOURCE_SERVICE_MASK = 0x00400000, /**< A2DP SOURCE service class */
- BT_SC_ALL_SERVICE_MASK = 0x00FFFFFF, /**< ALL service class */
- BT_SC_MAX /**< MAX service class */
-} bt_service_class_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of major service class.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_MAJOR_SERVICE_CLASS_LIMITED_DISCOVERABLE_MODE = 0x002000, /**< Limited discoverable mode */
- BT_MAJOR_SERVICE_CLASS_POSITIONING = 0x010000, /**< Positioning class */
- BT_MAJOR_SERVICE_CLASS_NETWORKING = 0x020000, /**< Networking class */
- BT_MAJOR_SERVICE_CLASS_RENDERING = 0x040000, /**< Rendering class */
- BT_MAJOR_SERVICE_CLASS_CAPTURING = 0x080000, /**< Capturing class */
- BT_MAJOR_SERVICE_CLASS_OBJECT_TRANSFER = 0x100000, /**< Object transferring class */
- BT_MAJOR_SERVICE_CLASS_AUDIO = 0x200000, /**< Audio class*/
- BT_MAJOR_SERVICE_CLASS_TELEPHONY = 0x400000, /**< Telephony class */
- BT_MAJOR_SERVICE_CLASS_INFORMATION = 0x800000, /**< Information class */
-} bt_major_service_class_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of major device class.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_MAJOR_DEVICE_CLASS_MISC = 0x00, /**< Miscellaneous major device class*/
- BT_MAJOR_DEVICE_CLASS_COMPUTER = 0x01, /**< Computer major device class */
- BT_MAJOR_DEVICE_CLASS_PHONE = 0x02, /**< Phone major device class */
- BT_MAJOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT = 0x03, /**< LAN/Network access point major device class */
- BT_MAJOR_DEVICE_CLASS_AUDIO_VIDEO = 0x04, /**< Audio/Video major device class */
- BT_MAJOR_DEVICE_CLASS_PERIPHERAL = 0x05, /**< Peripheral major device class */
- BT_MAJOR_DEVICE_CLASS_IMAGING = 0x06, /**< Imaging major device class */
- BT_MAJOR_DEVICE_CLASS_WEARABLE = 0x07, /**< Wearable device class */
- BT_MAJOR_DEVICE_CLASS_TOY = 0x08, /**< Toy device class */
- BT_MAJOR_DEVICE_CLASS_HEALTH = 0x09, /**< Health device class */
- BT_MAJOR_DEVICE_CLASS_UNCATEGORIZED = 0x1F, /**< Uncategorized major device class */
-} bt_major_device_class_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of minor device class.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_MINOR_DEVICE_CLASS_COMPUTER_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_DESKTOP_WORKSTATION = 0x04, /**< Desktop workstation minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_SERVER_CLASS = 0x08, /**< Server minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_LAPTOP = 0x0C, /**< Laptop minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_HANDHELD_PC_OR_PDA = 0x10, /**< Handheld PC/PDA minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_PALM_SIZED_PC_OR_PDA = 0x14, /**< Palm sized PC/PDA minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_WEARABLE_COMPUTER = 0x18, /**< Wearable(watch sized) minor device class of computer */
-
- BT_MINOR_DEVICE_CLASS_PHONE_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_CELLULAR = 0x04, /**< Cellular minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_CORDLESS = 0x08, /**< Cordless minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_SMART_PHONE = 0x0C, /**< Smart phone minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_WIRED_MODEM_OR_VOICE_GATEWAY = 0x10, /**< Wired modem or voice gateway minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_COMMON_ISDN_ACCESS = 0x14, /**< Common ISDN minor device class of phone */
-
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_FULLY_AVAILABLE = 0x04, /**< Fully available minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_1_TO_17_PERCENT_UTILIZED = 0x20, /**< 1-17% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_17_TO_33_PERCENT_UTILIZED = 0x40, /**< 17-33% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_33_TO_50_PERCENT_UTILIZED = 0x60, /**< 33-50% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_50_to_67_PERCENT_UTILIZED = 0x80, /**< 50-67% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_67_TO_83_PERCENT_UTILIZED = 0xA0, /**< 67-83% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_83_TO_99_PERCENT_UTILIZED = 0xC0, /**< 83-99% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_NO_SERVICE_AVAILABLE = 0xE0, /**< No service available minor device class of LAN/Network access point */
-
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_WEARABLE_HEADSET = 0x04, /**< Wearable headset minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HANDS_FREE = 0x08, /**< Hands-free minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_MICROPHONE = 0x10, /**< Microphone minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_LOUDSPEAKER = 0x14, /**< Loudspeaker minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HEADPHONES = 0x18, /**< Headphones minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_PORTABLE_AUDIO = 0x1C, /**< Portable audio minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_CAR_AUDIO = 0x20, /**< Car audio minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_SET_TOP_BOX = 0x24, /**< Set-top box minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HIFI_AUDIO_DEVICE = 0x28, /**< Hifi audio minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VCR = 0x2C, /**< VCR minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_CAMERA = 0x30, /**< Video camera minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_CAMCORDER = 0x34, /**< Camcorder minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_MONITOR = 0x38, /**< Video monitor minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_DISPLAY_LOUDSPEAKER = 0x3C, /**< Video display and loudspeaker minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_CONFERENCING = 0x40, /**< Video conferencing minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_GAMING_TOY = 0x48, /**< Gaming/toy minor device class of audio/video */
-
- BT_MINOR_DEVICE_CLASS_PERIPHERA_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_KEY_BOARD = 0x40, /**< Key board minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_POINTING_DEVICE = 0x80, /**< Pointing device minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_COMBO_KEYBOARD_POINTING_DEVICE = 0xC0, /**< Combo keyboard or pointing device minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_JOYSTICK = 0x04, /**< Joystick minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_GAME_PAD = 0x08, /**< Game pad minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_REMOTE_CONTROL = 0x0C, /**< Remote control minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_SENSING_DEVICE = 0x10, /**< Sensing device minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_DIGITIZER_TABLET = 0x14, /**< Digitizer minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_CARD_READER = 0x18, /**< Card reader minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_DIGITAL_PEN = 0x1C, /**< Digital pen minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_HANDHELD_SCANNER = 0x20, /**< Handheld scanner minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_HANDHELD_GESTURAL_INPUT_DEVICE = 0x24, /**< Handheld gestural input device minor device class of peripheral */
-
- BT_MINOR_DEVICE_CLASS_IMAGING_DISPLAY = 0x10, /**< Display minor device class of imaging */
- BT_MINOR_DEVICE_CLASS_IMAGING_CAMERA = 0x20, /**< Camera minor device class of imaging */
- BT_MINOR_DEVICE_CLASS_IMAGING_SCANNER = 0x40, /**< Scanner minor device class of imaging */
- BT_MINOR_DEVICE_CLASS_IMAGING_PRINTER = 0x80, /**< Printer minor device class of imaging */
-
- BT_MINOR_DEVICE_CLASS_WEARABLE_WRIST_WATCH = 0x04, /**< Wrist watch minor device class of wearable */
- BT_MINOR_DEVICE_CLASS_WEARABLE_PAGER = 0x08, /**< Pager minor device class of wearable */
- BT_MINOR_DEVICE_CLASS_WEARABLE_JACKET = 0x0C, /**< Jacket minor device class of wearable */
- BT_MINOR_DEVICE_CLASS_WEARABLE_HELMET = 0x10, /**< Helmet minor device class of wearable */
- BT_MINOR_DEVICE_CLASS_WEARABLE_GLASSES = 0x14, /**< Glasses minor device class of wearable */
-
- BT_MINOR_DEVICE_CLASS_TOY_ROBOT = 0x04, /**< Robot minor device class of toy */
- BT_MINOR_DEVICE_CLASS_TOY_VEHICLE = 0x08, /**< Vehicle minor device class of toy */
- BT_MINOR_DEVICE_CLASS_TOY_DOLL_ACTION = 0x0C, /**< Doll/Action minor device class of toy */
- BT_MINOR_DEVICE_CLASS_TOY_CONTROLLER = 0x10, /**< Controller minor device class of toy */
- BT_MINOR_DEVICE_CLASS_TOY_GAME = 0x14, /**< Game minor device class of toy */
-
- BT_MINOR_DEVICE_CLASS_HEALTH_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_BLOOD_PRESSURE_MONITOR = 0x04, /**< Blood pressure monitor minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_THERMOMETER = 0x08, /**< Thermometer minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_WEIGHING_SCALE = 0x0C, /**< Weighing scale minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_GLUCOSE_METER = 0x10, /**< Glucose minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_PULSE_OXIMETER = 0x14, /**< Pulse oximeter minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_HEART_PULSE_RATE_MONITOR = 0x18, /**< Heart/Pulse rate monitor minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_DATA_DISPLAY = 0x1C, /**< Health data display minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_STEP_COUNTER = 0x20, /**< Step counter minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_BODY_COMPOSITION_ANALYZER = 0x24, /**< Body composition analyzer minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_PEAK_FLOW_MONITOR = 0x28, /**< Peak flow monitor minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_MEDICATION_MONITOR = 0x2C, /**< Medication monitor minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_KNEE_PROSTHESIS = 0x30, /**< Knee prosthesis minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_ANKLE_PROSTHESIS = 0x34, /**< Ankle prosthesis minor device class of health */
-} bt_minor_device_class_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of gap appearance type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_APPEARANCE_TYPE_UNKNOWN = 0x00, /**< Unknown appearance type */
- BT_APPEARANCE_TYPE_GENERIC_PHONE = 0x40, /**< Generic Phone type - Generic category */
- BT_APPEARANCE_TYPE_GENERIC_COMPUTER = 0x80, /**< Generic Computer type - Generic category */
- BT_APPEARANCE_TYPE_GENERIC_WATCH = 0xC0, /**< Generic Watch type - Generic category */
-} bt_appearance_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth device's LE connection mode.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_DEVICE_LE_CONNECTION_MODE_BALANCED, /**< Balanced mode of power consumption and connection latency */
- BT_DEVICE_LE_CONNECTION_MODE_LOW_LATENCY, /**< Low connection latency but high power consumption */
- BT_DEVICE_LE_CONNECTION_MODE_LOW_ENERGY, /**< Low power consumption but high connection latency */
-} bt_device_le_connection_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Enumerations of connected Bluetooth device event role.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_SOCKET_UNKNOWN = 0x00, /**< Unknown role*/
- BT_SOCKET_SERVER , /**< Server role*/
- BT_SOCKET_CLIENT, /**< Client role*/
-} bt_socket_role_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Enumerations of Bluetooth socket connection state.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_SOCKET_CONNECTED, /**< RFCOMM is connected */
- BT_SOCKET_DISCONNECTED, /**< RFCOMM is disconnected */
-} bt_socket_connection_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Enumerations for the types of profiles related with audio
- * @since_tizen 2.3
- */
-typedef enum {
- BT_AUDIO_PROFILE_TYPE_ALL = 0, /**< All supported profiles related with audio */
- BT_AUDIO_PROFILE_TYPE_HSP_HFP, /**< HSP(Headset Profile) and HFP(Hands-Free Profile) */
- BT_AUDIO_PROFILE_TYPE_A2DP, /**< A2DP(Advanced Audio Distribution Profile) */
- BT_AUDIO_PROFILE_TYPE_AG, /**< AG(Audio Gateway) */
- BT_AUDIO_PROFILE_TYPE_A2DP_SINK, /**< A2DP(Advanced Audio Distribution Profile) Sink role */
-} bt_audio_profile_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Enumerations for the call handling event
- * @since_tizen 2.3
- */
-typedef enum {
- BT_AG_CALL_HANDLING_EVENT_ANSWER = 0x00, /**< Request to answer an incoming call */
- BT_AG_CALL_HANDLING_EVENT_RELEASE, /**< Request to release a call */
- BT_AG_CALL_HANDLING_EVENT_REJECT, /**< Request to reject an incoming call */
-} bt_ag_call_handling_event_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Enumerations for the multi call handling event
- * @since_tizen 2.3
- */
-typedef enum {
- BT_AG_MULTI_CALL_HANDLING_EVENT_RELEASE_HELD_CALLS = 0x00, /**< Request to release held calls */
- BT_AG_MULTI_CALL_HANDLING_EVENT_RELEASE_ACTIVE_CALLS, /**< Request to release active calls */
- BT_AG_MULTI_CALL_HANDLING_EVENT_ACTIVATE_HELD_CALL, /**< Request to put active calls into hold state and activate another (held or waiting) call */
- BT_AG_MULTI_CALL_HANDLING_EVENT_MERGE_CALLS, /**< Request to add a held call to the conversation */
- BT_AG_MULTI_CALL_HANDLING_EVENT_EXPLICIT_CALL_TRANSFER, /**< Request to let a user who has two calls to connect these two calls together and release its connections to both other parties */
-} bt_ag_multi_call_handling_event_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the equalizer state
- * @since_tizen 2.4
- */
-typedef enum {
- BT_AVRCP_EQUALIZER_STATE_OFF = 0x01, /**< Equalizer Off */
- BT_AVRCP_EQUALIZER_STATE_ON, /**< Equalizer On */
-} bt_avrcp_equalizer_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the repeat mode
- * @since_tizen 2.4
- */
-typedef enum {
- BT_AVRCP_REPEAT_MODE_OFF = 0x01, /**< Repeat Off */
- BT_AVRCP_REPEAT_MODE_SINGLE_TRACK, /**< Single track repeat */
- BT_AVRCP_REPEAT_MODE_ALL_TRACK, /**< All track repeat */
- BT_AVRCP_REPEAT_MODE_GROUP, /**< Group repeat */
-} bt_avrcp_repeat_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the shuffle mode
- * @since_tizen 2.4
- */
-typedef enum {
- BT_AVRCP_SHUFFLE_MODE_OFF = 0x01, /**< Shuffle Off */
- BT_AVRCP_SHUFFLE_MODE_ALL_TRACK, /**< All tracks shuffle */
- BT_AVRCP_SHUFFLE_MODE_GROUP, /**< Group shuffle */
-} bt_avrcp_shuffle_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the scan mode
- * @since_tizen 2.4
- */
-typedef enum {
- BT_AVRCP_SCAN_MODE_OFF = 0x01, /**< Scan Off */
- BT_AVRCP_SCAN_MODE_ALL_TRACK, /**< All tracks scan */
- BT_AVRCP_SCAN_MODE_GROUP, /**< Group scan */
-} bt_avrcp_scan_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the player state
- * @since_tizen 3.0
- */
-typedef enum {
- BT_AVRCP_PLAYER_STATE_STOPPED = 0x00, /**< Stopped */
- BT_AVRCP_PLAYER_STATE_PLAYING, /**< Playing */
- BT_AVRCP_PLAYER_STATE_PAUSED, /**< Paused */
- BT_AVRCP_PLAYER_STATE_FORWARD_SEEK, /**< Seek Forward */
- BT_AVRCP_PLAYER_STATE_REWIND_SEEK, /**< Seek Rewind */
-} bt_avrcp_player_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumeration for the player control commands
- * @since_tizen 3.0
- */
-typedef enum {
- BT_AVRCP_CONTROL_PLAY = 0x01, /**< Play */
- BT_AVRCP_CONTROL_PAUSE, /**< Pause */
- BT_AVRCP_CONTROL_STOP, /**< Stop */
- BT_AVRCP_CONTROL_NEXT, /**< Next Track*/
- BT_AVRCP_CONTROL_PREVIOUS, /**< Previous track */
- BT_AVRCP_CONTROL_FAST_FORWARD, /**< Fast Forward */
- BT_AVRCP_CONTROL_REWIND /**< Rewind */
-} bt_avrcp_player_command_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Structure of Track metadata information.
- * @since_tizen 3.0
- *
- * @see #bt_class_s
- */
-typedef struct {
- const char *title; /**< Title */
- const char *artist; /**< Artist */
- const char *album; /**< Album name */
- const char *genre; /**< Album Genre */
- unsigned int total_tracks; /**< The total number of tracks */
- unsigned int number; /**< Track number */
- unsigned int duration; /**< Duration */
-} bt_avrcp_metadata_attributes_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 3.0
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_control_deinitialize()
- */
-typedef void (*bt_avrcp_control_connection_state_changed_cb) (bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the Song position mode is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] position Playback position in milliseconds. When position is 0 it means the track is starting and when it's greater than or equal to track's duration the track has ended.
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_position_changed_cb()
- * @see bt_avrcp_unset_position_changed_cb()
- */
-typedef void (*bt_avrcp_position_changed_cb) (unsigned int position, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the Song metadata information is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] track The song metadata information
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_track_info_changed_cb()
- * @see bt_avrcp_unset_track_info_changed_cb()
- */
-typedef void (*bt_avrcp_track_info_changed_cb) (bt_avrcp_metadata_attributes_info_s *track, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the Song Play status mode is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] play_state The song play status
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_play_status_changed_cb()
- * @see bt_avrcp_unset_play_status_changed_cb()
- */
-typedef void (*bt_avrcp_play_status_changed_cb) (bt_avrcp_player_state_e play_state, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Enumerations for the data channel type
- * @since_tizen 2.3
- */
-typedef enum {
- BT_HDP_CHANNEL_TYPE_RELIABLE = 0x01, /**< Reliable Data Channel */
- BT_HDP_CHANNEL_TYPE_STREAMING, /**< Streaming Data Channel */
-} bt_hdp_channel_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the integer type for GATT handle's value.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_DATA_TYPE_SINT8, /**< 8 bit signed int type */
- BT_DATA_TYPE_SINT16, /**< 16 bit signed int type */
- BT_DATA_TYPE_SINT32, /**< 32 bit signed int type */
- BT_DATA_TYPE_UINT8, /**< 8 bit unsigned int type */
- BT_DATA_TYPE_UINT16, /**< 16 bit unsigned int type */
- BT_DATA_TYPE_UINT32 /**< 32 bit unsigned int type */
-} bt_data_type_int_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the float type for GATT handle's value.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_DATA_TYPE_FLOAT, /**< 32 bit float type */
- BT_DATA_TYPE_SFLOAT /**< 16 bit float type */
-} bt_data_type_float_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the write type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_GATT_WRITE_TYPE_WRITE_NO_RESPONSE, /**< Write without response type */
- BT_GATT_WRITE_TYPE_WRITE /**< Write type */
-} bt_gatt_write_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the GATT handle's type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_GATT_TYPE_SERVICE = 0x01, /**< GATT service type */
- BT_GATT_TYPE_CHARACTERISTIC = 0x02, /** GATT characteristic type */
- BT_GATT_TYPE_DESCRIPTOR = 0x03, /** GATT descriptor type */
-} bt_gatt_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the service type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_GATT_SERVICE_TYPE_PRIMARY = 0x01, /**< GATT primary service type */
- BT_GATT_SERVICE_TYPE_SECONDARY = 0x02, /**< GATT secondary service type */
-} bt_gatt_service_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the characteristic's property.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_GATT_PROPERTY_BROADCAST = 0x01, /**< Broadcast property */
- BT_GATT_PROPERTY_READ = 0x02, /**< Read property */
- BT_GATT_PROPERTY_WRITE_WITHOUT_RESPONSE = 0x04, /**< Write without response property */
- BT_GATT_PROPERTY_WRITE = 0x08, /**< Write property */
- BT_GATT_PROPERTY_NOTIFY = 0x10, /**< Notify property */
- BT_GATT_PROPERTY_INDICATE = 0x20, /**< Indicate property */
- BT_GATT_PROPERTY_AUTHENTICATED_SIGNED_WRITES = 0x40, /**< Authenticated signed writes property */
- BT_GATT_PROPERTY_EXTENDED_PROPERTIES = 0x80, /**< Extended properties */
-} bt_gatt_property_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of gatt server's service changing mode.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_GATT_CLIENT_SERVICE_ADDED, /**< Service added */
- BT_GATT_CLIENT_SERVICE_REMOVED, /**< Service removed */
-} bt_gatt_client_service_change_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Enumerations of the attribute's permission.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_GATT_PERMISSION_READ = 0x01, /**< Readable permission */
- BT_GATT_PERMISSION_WRITE = 0x02, /**< Writable permission */
- BT_GATT_PERMISSION_ENCRYPT_READ = 0x04, /**< Readable permission required encryption */
- BT_GATT_PERMISSION_ENCRYPT_WRITE = 0x08, /**< Writable permission required encryption */
- BT_GATT_PERMISSION_ENCRYPT_AUTHENTICATED_READ = 0x10, /**< Readable permission required encryption and authentication */
- BT_GATT_PERMISSION_ENCRYPT_AUTHENTICATED_WRITE = 0x20, /**< Writable permission required encryption and authentication */
-} bt_gatt_permission_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Enumerations of the remote device request types for attributes
- * @since_tizen 3.0
- */
-typedef enum {
- BT_GATT_REQUEST_TYPE_READ = 0x00, /* Read Requested */
- BT_GATT_REQUEST_TYPE_WRITE = 0x01, /* Write Requested */
-} bt_gatt_att_request_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Enumerations for the types of PAN(Personal Area Networking) service.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_PANU_SERVICE_TYPE_NAP = 0, /**< Network Access Point */
-} bt_panu_service_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief The handle to control Bluetooth LE advertising.
- * @since_tizen 2.3
- */
-typedef void *bt_advertiser_h;
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_h instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief The attribute handle of GATT(Generic Attribute Profile).
- * @since_tizen 2.3
- */
-typedef void *bt_gatt_attribute_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief The handle of a service, characteristic or descriptor.
- * @since_tizen 2.3.1
- */
-typedef void *bt_gatt_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief The handle of a GATT client which is associated with a remote device.
- * @since_tizen 2.3.1
- */
-typedef void *bt_gatt_client_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief The handle of a GATT server.
- * @since_tizen 3.0
- */
-typedef void *bt_gatt_server_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief The handle of calls state.
- * @since_tizen 2.3
- */
-typedef void *bt_call_list_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Class structure of device and service.
- * @since_tizen 2.3
- *
- * @see #bt_device_info_s
- * @see #bt_adapter_device_discovery_info_s
- * @see bt_device_bond_created_cb()
- * @see bt_adapter_device_discovery_state_changed_cb()
- */
-typedef struct {
- bt_major_device_class_e major_device_class; /**< Major device class. */
- bt_minor_device_class_e minor_device_class; /**< Minor device class. */
- int major_service_class_mask; /**< Major service class mask.
- This value can be a combination of #bt_major_service_class_e like #BT_MAJOR_SERVICE_CLASS_RENDERING | #BT_MAJOR_SERVICE_CLASS_AUDIO */
-} bt_class_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Structure of device discovery information.
- * @since_tizen 2.3
- *
- * @see #bt_class_s
- * @see bt_adapter_device_discovery_state_changed_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- char *remote_name; /**< The name of remote device */
- bt_class_s bt_class; /**< The Bluetooth classes */
- int rssi; /**< The strength indicator of received signal */
- bool is_bonded; /**< The bonding state */
- char **service_uuid; /**< The UUID list of service */
- int service_count; /**< The number of services */
- bt_appearance_type_e appearance; /**< The Bluetooth appearance */
- int manufacturer_data_len; /**< manufacturer specific data length */
- char *manufacturer_data; /**< manufacturer specific data */
-} bt_adapter_device_discovery_info_s;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Structure of le device discovery information.
- * @since_tizen 2.3
- *
- * @see #bt_class_s
- * @see bt_adapter_le_device_discovery_state_changed_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- int address_type; /**< The address type of remote device */
- int rssi; /**< The strength indicator of received signal */
- int adv_data_len; /**< advertising indication data length */
- char *adv_data; /**< advertising indication data */
- int scan_data_len; /**< scan response data length */
- char *scan_data; /**< scan response data */
-} bt_adapter_le_device_discovery_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Structure of le scan result information.
- * @since_tizen 2.3.1
- *
- * @see bt_adapter_le_start_scan()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- bt_device_address_type_e address_type; /**< The address type of remote device */
- int rssi; /**< The strength indicator of received signal */
- int adv_data_len; /**< advertising indication data length */
- char *adv_data; /**< advertising indication data */
- int scan_data_len; /**< scan response data length */
- char *scan_data; /**< scan response data */
-} bt_adapter_le_device_scan_result_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Structure of le iBeacon scan result information.
- * @since_tizen 3.0
- *
- * @see bt_adapter_le_start_scan()
- */
-typedef struct {
- int company_id; /**< company ID */
- int ibeacon_type; /**< Ibeacon type */
- char *uuid; /**< UUID */
- int major_id; /**< Major ID */
- int minor_id; /**< Minor ID */
- int measured_power; /**< measured Power */
-} bt_adapter_ibeacon_scan_result_info_s;
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Structure of advertising parameters.
- * @since_tizen 2.3
- *
- * @see bt_adapter_le_advertising_state_changed_cb()
- * @see bt_adapter_le_start_advertising()
- */
-typedef struct {
- float interval_min; /**< Minimum advertising interval for non-directed advertising.
- A multiple of 0.625ms is only allowed (Time range : 20ms to 10.24sec). */
- float interval_max; /**< Maximum advertising interval for non-directed advertising.
- A multiple of 0.625ms is only allowed (Time range : 20ms to 10.24sec). */
- char filter_policy; /* Advertising filter policy */
- char type; /* Advertising type */
-} bt_adapter_le_advertising_params_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief LE service data structure.
- * @since_tizen 2.3.1
- *
- * @see bt_adapter_le_get_scan_result_service_data()
- */
-typedef struct {
- char *service_uuid; /**< 16 bit UUID of the service data */
- char *service_data; /**< Service data */
- int service_data_len; /**< Service data length */
-} bt_adapter_le_service_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Device information structure used for identifying pear device.
- * @since_tizen 2.3
- *
- * @see #bt_class_s
- * @see bt_device_bond_created_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- char *remote_name; /**< The name of remote device */
- bt_class_s bt_class; /**< The Bluetooth classes */
- char **service_uuid; /**< The UUID list of service */
- int service_count; /**< The number of services */
- bool is_bonded; /**< The bonding state */
- bool is_connected; /**< The connection state */
- bool is_authorized; /**< The authorization state */
- int manufacturer_data_len; /**< manufacturer specific data length */
- char *manufacturer_data; /**< manufacturer specific data */
-} bt_device_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Service Discovery Protocol (SDP) data structure.
- * @since_tizen 2.3
- *
- * @details This protocol is used for discovering available services or pear device,
- * and finding one to connect with.
- *
- * @see bt_device_service_searched_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- char **service_uuid; /**< The UUID list of service */
- int service_count; /**< The number of services. */
-} bt_device_sdp_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Device connection information structure.
- * @since_tizen 2.3
- *
- * @see bt_device_connection_state_changed_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- bt_device_connection_link_type_e link; /**< Link type */
- bt_device_disconnect_reason_e disconn_reason; /**< Disconnection reason */
-} bt_device_connection_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Rfcomm connection data used for exchanging data between Bluetooth devices.
- * @since_tizen 2.3
- *
- * @see bt_socket_connection_state_changed_cb()
- */
-typedef struct {
- int socket_fd; /**< The file descriptor of connected socket */
- int server_fd; /**< The file descriptor of the server socket or -1 for client connection */
- bt_socket_role_e local_role; /**< The local device role in this connection */
- char *remote_address; /**< The remote device address */
- char *service_uuid; /**< The service UUId */
-} bt_socket_connection_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Structure of RFCOMM received data.
- * @since_tizen 2.3
- *
- * @remarks User can use standard linux functions for reading/writing
- * data from/to sockets.
- *
- * @see bt_socket_data_received_cb()
- */
-typedef struct {
- int socket_fd; /**< The socket fd */
- int data_size; /**< The length of the received data */
- char *data; /**< The received data */
-} bt_socket_received_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the Bluetooth adapter state changes.
- * @since_tizen 2.3
- *
- * @param[in] result The result of the adapter state changing
- * @param[in] adapter_state The adapter state to be changed
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb()
- */
-typedef void (*bt_adapter_state_changed_cb)(int result, bt_adapter_state_e adapter_state, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when adapter name changes.
- * @since_tizen 2.3
- *
- * @param[in] device_name The name of the Bluetooth device to be changed
- * @param[in] user_data The user data passed from the callback registration function
- * @pre This function will be invoked when the name of Bluetooth adapter changes
- * if you register this callback using bt_adapter_set_name_changed_cb().
- * @see bt_adapter_set_name()
- * @see bt_adapter_set_name_changed_cb()
- * @see bt_adapter_unset_name_changed_cb()
- */
-typedef void (*bt_adapter_name_changed_cb)(char *device_name, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the visibility mode changes.
- * @since_tizen 2.3
- *
- * @param[in] result The result of the visibility mode changing
- * @param[in] visibility_mode The visibility mode to be changed
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre This function will be invoked when the visibility of Bluetooth adapter changes
- * if you register this callback using bt_adapter_set_visibility_mode_changed_cb().
- *
- * @see bt_adapter_set_visibility_mode_changed_cb()
- * @see bt_adapter_unset_visibility_mode_changed_cb()
- */
-typedef void (*bt_adapter_visibility_mode_changed_cb)
- (int result, bt_adapter_visibility_mode_e visibility_mode, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called every second until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
- * @since_tizen 2.3
- *
- * @remarks This callback function is called only if visibility mode is #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE.
- * @param[in] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds)
- * @param[in] user_data The user data passed from the callback registration function
- * @pre This function will be invoked if you register this callback using bt_adapter_set_visibility_duration_changed_cb().
- * @see bt_adapter_set_visibility_duration_changed_cb()
- * @see bt_adapter_unset_visibility_duration_changed_cb()
- */
-typedef void (*bt_adapter_visibility_duration_changed_cb)(int duration, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the state of device discovery changes.
- * @since_tizen 2.3
- *
- * @remarks If \a discovery_state is #BT_ADAPTER_DEVICE_DISCOVERY_FOUND,
- * then you can get some information, such as remote device address, remote device name, rssi, and bonding state.
- *
- * @param[in] result The result of the device discovery
- * @param[in] discovery_state The discovery state to be changed
- * @param[in] discovery_info The information of the discovered device \n
- * If \a discovery_state is #BT_ADAPTER_DEVICE_DISCOVERY_STARTED or
- * #BT_ADAPTER_DEVICE_DISCOVERY_FINISHED, then \a discovery_info is NULL.
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre Either bt_adapter_start_device_discovery() or bt_adapter_stop_device_discovery() will invoke this function
- * if you register this callback using bt_adapter_set_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_adapter_stop_device_discovery()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- * @see bt_adapter_unset_device_discovery_state_changed_cb()
- *
- */
-typedef void (*bt_adapter_device_discovery_state_changed_cb)
- (int result, bt_adapter_device_discovery_state_e discovery_state, bt_adapter_device_discovery_info_s *discovery_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when you get bonded devices repeatedly.
- * @since_tizen 2.3
- *
- * @param[in] device_info The bonded device information
- * @param[in] user_data The user data passed from the foreach function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_adapter_foreach_bonded_device() will invoke this function.
- *
- * @see bt_adapter_foreach_bonded_device()
- *
- */
-typedef bool (*bt_adapter_bonded_device_cb)(bt_device_info_s *device_info, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Called when the state of LE device discovery changes.
- * @since_tizen 2.3
- *
- * @remarks If \a discovery_state is #BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND,
- * then you can get some information, such as remote LE device address, remote device name, rssi, and bonding state.
- *
- * @param[in] result The result of the LE device discovery
- * @param[in] discovery_state The discovery state to be changed
- * @param[in] discovery_info The information of the discovered LE device \n
- * If \a discovery_state is #BT_ADAPTER_LE_DEVICE_DISCOVERY_STARTED or
- * #BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED, then \a discovery_info is NULL.
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre Either bt_adapter_start_device_discovery() or bt_adapter_stop_device_discovery() will invoke this function
- * if you register this callback using bt_adapter_set_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_le_start_device_discovery()
- * @see bt_adapter_le_stop_device_discovery()
- * @see bt_adapter_le_set_device_discovery_state_changed_cb()
- * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
- *
- */
-typedef void (*bt_adapter_le_device_discovery_state_changed_cb)
- (int result, bt_adapter_le_device_discovery_state_e discovery_state, bt_adapter_le_device_discovery_info_s *discovery_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Called when the LE advertisement has been found.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of the LE scan
- * @param[in] info The information of the found LE advertisement.
- * @param[in] user_data The user data passed from the start function
- *
- * @see bt_adapter_le_start_scan()
- *
- */
-typedef void (*bt_adapter_le_scan_result_cb)(int result,
- bt_adapter_le_device_scan_result_info_s *info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Called when the state of advertiser changes.
- * @since_tizen 2.3
- *
- * @param[out] result The result of the requested state change of advertiser
- * @param[out] advertiser The handle of the state changed advertiser
- * @param[out] adv_state The advertiser state to be changed
- * @param[out] user_data The user data passed from the start function
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_stop_advertising()
- */
-typedef void (*bt_adapter_le_advertising_state_changed_cb)(int result,
- bt_advertiser_h advertiser, bt_adapter_le_advertising_state_e adv_state, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the process of creating bond finishes.
- * @since_tizen 2.3
- *
- * @remarks If the remote user does not respond within 60 seconds, a time out will happen with #BT_ERROR_TIMED_OUT result code.\n
- * If bt_device_cancel_bonding() is called and it returns #BT_ERROR_NONE, then this callback function will be called
- * with #BT_ERROR_CANCELLED result. \n
- * If creating a bond succeeds but service search fails, then this callback will be called with #BT_ERROR_SERVICE_SEARCH_FAILED.
- * In this case, you should try service search again by bt_device_start_service_search() to get the supported service list.
- *
- * @param[in] result The result of the bonding device
- * @param[in] device_info The device information which you creates bond with
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre Either bt_device_create_bond() will invoke this function
- * if you register this callback using bt_device_set_bond_created_cb().
- *
- * @see bt_device_create_bond()
- * @see bt_device_cancel_bonding()
- * @see bt_device_set_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-typedef void (*bt_device_bond_created_cb)(int result, bt_device_info_s *device_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when you get connected profiles repeatedly.
- * @since_tizen 2.3
- *
- * @param[in] profile The connected Bluetooth profile
- * @param[in] user_data The user data passed from the foreach function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_device_foreach_connected_profiles() will invoke this function.
- * @see bt_device_foreach_connected_profiles()
- */
-typedef bool (*bt_device_connected_profile)(bt_profile_e profile, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the bond destroys.
- * @since_tizen 2.3
- *
- * @param[in] result The result that a bond is destroyed
- * @param[in] remote_address The address of the remote Bluetooth device to destroy bond with
- * @param[in] user_data The user data passed from the callback registration function
- * @pre bt_device_destroy_bond() will invoke this function
- * if you register this callback using bt_device_set_bond_destroyed_cb().
- *
- * @see bt_device_destroy_bond()
- * @see bt_device_set_bond_destroyed_cb()
- * @see bt_device_unset_bond_destroyed_cb()
- */
-typedef void (*bt_device_bond_destroyed_cb)(int result, char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the authorization of device changes.
- * @since_tizen 2.3
- *
- * @param[in] authorization The authorization of device
- * @param[in] remote_address The address of the remote Bluetooth device which is (un)authorized
- * @param[in] user_data The user data passed from the callback registration function
- * @pre bt_device_set_authorization() will invoke this function if you register this callback using bt_device_set_authorization_changed_cb().
- *
- * @see bt_device_set_authorization()
- * @see #bt_device_set_authorization_changed_cb()
- * @see #bt_device_unset_authorization_changed_cb()
- */
-typedef void (*bt_device_authorization_changed_cb)
- (bt_device_authorization_e authorization, char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the process of service search finishes.
- * @since_tizen 2.3
- *
- * @remark
- *
- * @param[in] result The result of the service searching
- * @param[in] sdp_info The structure of service lists found on a device
- * @param[in] user_data The user data passed from the callback registration function
- * @pre Either bt_device_start_service_search() will invoke this function
- * if you register this callback using bt_device_set_service_searched_cb().
- *
- * @see bt_device_start_service_search()
- * @see bt_device_set_service_searched_cb()
- * @see bt_device_unset_service_searched_cb()
- *
- */
-typedef void (*bt_device_service_searched_cb)(int result, bt_device_sdp_info_s *sdp_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @param[in] connected The connection status: (@c true = connected, @c false = disconnected)
- * @param[in] conn_info The connection information
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_device_set_connection_state_changed_cb()
- * @see bt_device_unset_connection_state_changed_cb()
- */
-typedef void (*bt_device_connection_state_changed_cb)(bool connected, bt_device_connection_info_s *conn_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Called when you receive data.
- * @since_tizen 2.3
- *
- * @param[in] data The received data from the remote device
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre When the connected remote Bluetooth device invokes bt_socket_send_data(),
- * this function will be invoked if you register this function using bt_socket_set_data_received_cb().
- *
- * @see bt_socket_set_data_received_cb()
- * @see bt_socket_unset_data_received_cb()
- * @see bt_socket_send_data()
- */
-typedef void (*bt_socket_data_received_cb)(bt_socket_received_data_s *data, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Called when the socket connection state changes.
- * @since_tizen 2.3
- *
- * @param[in] result The result of connection state changing
- * @param[in] connection_state The connection state
- * @param[in] connection The connection information which is established or disconnected
- * @param[in] user_data The user data passed from the callback registration function
- * @pre Either bt_socket_connect_rfcomm() will invoke this function.
- * In addition, bt_socket_connection_state_changed_cb() will be invoked when the socket connection state is changed.
- * @see bt_socket_listen_and_accept_rfcomm()
- * @see bt_socket_connect_rfcomm()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-typedef void (*bt_socket_connection_state_changed_cb)
- (int result, bt_socket_connection_state_e connection_state, bt_socket_connection_s *connection, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Called when a RFCOMM connection is requested.
- * @since_tizen 2.3
- *
- * @param[in] socket_fd The file descriptor of socket on which a connection is requested
- * @param[in] remote_address The address of remote device
- * @param[in] user_data The user data passed from the callback registration function
- * @pre If you register this callback function by bt_socket_set_connection_requested_cb(),
- * bt_socket_connection_requested_cb() will be invoked.
- */
-typedef void (*bt_socket_connection_requested_cb) (int socket_fd, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Called when an OPP connection is requested.
- * @since_tizen 2.3
- *
- * @details You must call bt_opp_server_accept_connection() if you want to accept.
- * Otherwise, you must call bt_opp_server_reject_connection().
- * @param[in] remote_address The address of remote device
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_server_accept()
- * @see bt_opp_server_reject()
- */
-typedef void (*bt_opp_server_connection_requested_cb)(const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Called when a file is being transferred.
- * @since_tizen 2.3
- *
- * @param[in] file The path of file to be pushed
- * @param[in] size The file size (bytes)
- * @param[in] percent The progress in percentage (1 ~ 100)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_server_accept()
- * @see bt_opp_server_accept_connection()
- */
-typedef void (*bt_opp_server_transfer_progress_cb) (const char *file, long long size, int percent, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Called when a transfer is finished.
- * @since_tizen 2.3
- *
- * @param[in] error_code The result of push
- * @param[in] file The path of file to be pushed
- * @param[in] size The file size (bytes)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_server_accept()
- * @see bt_opp_server_accept_connection()
- */
-typedef void (*bt_opp_server_transfer_finished_cb) (int result, const char *file, long long size, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Called when OPP server responds to the push request.
- * @since_tizen 2.3
- *
- * @param[in] result The result of OPP server response
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @pre bt_opp_client_push_files() will invoke this function.
- * @see bt_opp_client_push_files()
- */
-typedef void (*bt_opp_client_push_responded_cb)(int result, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Called when each file is being transferred.
- * @since_tizen 2.3
- *
- * @param[in] file The path of file to be pushed
- * @param[in] size The file size (bytes)
- * @param[in] percent The progress in percentage (1 ~ 100). 100 means that a file is transferred completely.
- * @param[in] user_data The user data passed from the callback registration function
- * @pre bt_opp_client_push_files() will invoke this function.
- * @see bt_opp_client_push_files()
- */
-typedef void (*bt_opp_client_push_progress_cb)(const char *file, long long size, int percent, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Called when the push request is finished.
- * @since_tizen 2.3
- *
- * @param[in] result The result of the push request
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_client_push_files()
- */
-typedef void (*bt_opp_client_push_finished_cb)(int result, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @details This callback is called when the connection state is changed.
- * When you call bt_audio_connect() or bt_audio_disconnect(), this callback is also called with error result even though these functions fail.
- * @param[in] result The result of changing the connection state
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] type The type of audio profile except #BT_AUDIO_PROFILE_TYPE_ALL
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_audio_set_connection_state_changed_cb()
- * @see bt_audio_unset_connection_state_changed_cb()
- */
-typedef void (*bt_audio_connection_state_changed_cb) (int result, bool connected, const char *remote_address, bt_audio_profile_type_e type, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when a call handling event happened from Hands-Free.
- * @since_tizen 2.3
- *
- * @param[in] event The call handling event happened from Hands-Free
- * @param[in] call_id The call ID
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_call_handling_event_cb()
- * @see bt_ag_unset_call_handling_event_cb()
- */
-typedef void (*bt_ag_call_handling_event_cb) (bt_ag_call_handling_event_e event, unsigned int call_id, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when a multi call handling event happened from Hands-Free.
- * @since_tizen 2.3
- *
- * @param[in] event The call handling event happened from Hands-Free
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_multi_call_handling_event_cb()
- * @see bt_ag_unset_multi_call_handling_event_cb()
- */
-typedef void (*bt_ag_multi_call_handling_event_cb) (bt_ag_multi_call_handling_event_e event, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
- * @since_tizen 2.3
- *
- * @param[in] dtmf The DTMF transmitted from Hands-Free
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_dtmf_transmitted_cb()
- * @see bt_ag_unset_dtmf_transmitted_cb()
- */
-typedef void (*bt_ag_dtmf_transmitted_cb) (const char *dtmf, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when the speaker gain of the remote device is changed.
- * @since_tizen 2.3
- *
- * @param[in] gain The gain of speaker (0 ~ 15)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_speaker_gain_changed_cb()
- * @see bt_ag_unset_speaker_gain_changed_cb()
- */
-typedef void (*bt_ag_speaker_gain_changed_cb) (int gain, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when the microphone gain of the remote device is changed.
- * @since_tizen 2.3
- *
- * @param[in] gain The gain of microphone (0 ~ 15)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_microphone_gain_changed_cb()
- * @see bt_ag_unset_microphone_gain_changed_cb()
- */
-typedef void (*bt_ag_microphone_gain_changed_cb) (int gain, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_target_deinitialize()
- */
-typedef void (*bt_avrcp_target_connection_state_changed_cb) (bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the equalizer state is changed by the remote control device.
- * @since_tizen 2.3
- *
- * @param[in] equalizer The equalizer state
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_equalizer_state_changed_cb()
- * @see bt_avrcp_unset_equalizer_state_changed_cb()
- */
-typedef void (*bt_avrcp_equalizer_state_changed_cb) (bt_avrcp_equalizer_state_e equalizer, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the repeat mode is changed by the remote control device.
- * @since_tizen 2.3
- *
- * @param[in] repeat The repeat mode
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_repeat_mode_changed_cb()
- * @see bt_avrcp_unset_repeat_mode_changed_cb()
- */
-typedef void (*bt_avrcp_repeat_mode_changed_cb) (bt_avrcp_repeat_mode_e repeat, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the shuffle mode is changed by the remote control device.
- * @since_tizen 2.3
- *
- * @param[in] shuffle The shuffle mode
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_shuffle_mode_changed_cb()
- * @see bt_avrcp_unset_shuffle_mode_changed_cb()
- */
-typedef void (*bt_avrcp_shuffle_mode_changed_cb) (bt_avrcp_shuffle_mode_e shuffle, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the scan mode is changed by the remote control device.
- * @since_tizen 2.3
- *
- * @param[in] shuffle The shuffle mode
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_scan_mode_changed_cb()
- * @see bt_avrcp_unset_scan_mode_changed_cb()
- */
-typedef void (*bt_avrcp_scan_mode_changed_cb) (bt_avrcp_scan_mode_e scan, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @details This callback is called when the connection state is changed.
- * When you call bt_hid_host_connect() or bt_hid_host_disconnect(), this callback is also called with error result even though these functions fail.
- * @param[in] result The result of changing the connection state
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hid_host_connect()
- * @see bt_hid_host_disconnect()
- */
-typedef void (*bt_hid_host_connection_state_changed_cb) (int result, bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Called when the connection is established.
- * @since_tizen 2.3
- *
- * @param[in] result The result of connecting to the remote device
- * @param[in] remote_address The address of connected remote device
- * @param[in] app_id The ID of application
- * @param[in] type The type of HDP(Health Device Profile) channel
- * @param[in] channel The connected data channel
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hdp_disconnected_cb
- * @see bt_hdp_set_connection_state_changed_cb()
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-typedef void (*bt_hdp_connected_cb) (int result, const char *remote_address, const char *app_id,
- bt_hdp_channel_type_e type, unsigned int channel, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Called when the connection is disconnected.
- * @since_tizen 2.3
- *
- * @param[in] result The result of disconnecting from the remote device
- * @param[in] remote_address The address of disconnected remote device
- * @param[in] channel The connected data channel
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hdp_connected_cb
- * @see bt_hdp_set_connection_state_changed_cb()
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-typedef void (*bt_hdp_disconnected_cb) (int result, const char *remote_address, unsigned int channel, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Called when the you receive the data.
- * @since_tizen 2.3
- *
- * @param[in] channel The connected data channel
- * @param[in] data The received data
- * @param[in] size The size of received data (byte)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hdp_set_data_received_cb()
- * @see bt_hdp_unset_data_received_cb()
- */
-typedef void (*bt_hdp_data_received_cb) (unsigned int channel, const char *data, unsigned int size, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_foreach_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when you get the primary services repeatedly.
- * @since_tizen 2.3
- *
- * @param[in] service The attribute handle of service
- * @param[in] user_data The user data passed from the foreach function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_gatt_foreach_primary_services() will invoke this function.
- * @see bt_gatt_foreach_primary_services()
- */
-typedef bool (*bt_gatt_primary_service_cb) (bt_gatt_attribute_h service, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. This is not required because characteristic discovery is happened automatically.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called after the characteristics are discovered by bt_gatt_discover_characteristics().
- * @since_tizen 2.3
- *
- * @remarks If bt_gatt_discover_characteristics() failed, then this callback function is called only once with 0 total and NULL characteristic_handle.
- * @param[in] result The result of discovering
- * @param[in] index The index of characteristics in a service, starts from 0
- * @param[in] total The total number of characteristics in a service
- * @param[in] characteristic The attribute handle of characteristic
- * @param[in] user_data The user data passed from the request function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_gatt_discover_characteristics() will invoke this callback.
- * @see bt_gatt_discover_characteristics()
- */
-typedef bool (*bt_gatt_characteristics_discovered_cb) (int result, int index, int total, bt_gatt_attribute_h characteristic, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_foreach_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when you get the included services repeatedly.
- * @since_tizen 2.3
- *
- * @param[in] service The attribute handle of service
- * @param[in] user_data The user data passed from the foreach function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_gatt_foreach_included_services() will invoke this function.
- * @see bt_gatt_foreach_included_services()
- */
-typedef bool (*bt_gatt_included_service_cb) (bt_gatt_attribute_h service, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_characteristic_value_changed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when a characteristic in service is changed.
- * @since_tizen 2.3
- *
- * @param[in] characteristic The attribute handle of characteristic
- * @param[in] value The value of characteristic (byte array)
- * @param[in] value_length The length of value
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_gatt_set_characteristic_changed_cb()
- * @see bt_gatt_unset_characteristic_changed_cb()
- */
-typedef void (*bt_gatt_characteristic_changed_cb) (bt_gatt_attribute_h characteristic, unsigned char *value, int value_length, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_request_completed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when a characteristic value is written.
- * @since_tizen 2.3
- *
- * @see bt_gatt_set_characteristic_value()
- */
-typedef void (*bt_gatt_characteristic_write_cb) (void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. Use bt_gatt_client_request_completed_cb instead.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when a characteristic value is read.
- * @since_tizen 2.3
- *
- * @param[in] value The value of characteristic (byte array)
- * @param[in] value_length The length of value
- * @param[in] user_data The user data passed from the foreach function
- * @see bt_gatt_read_characteristic_value()
- */
-typedef void (*bt_gatt_characteristic_read_cb) (unsigned char *value,
- int value_length, void *user_data);
-
-/**
- * @deprecated Deprecated since 2.3.1. This is not required because descriptor discovery is happened automatically.
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called after the characteristics descriptors are discovered by bt_gatt_discover_characteristic_descriptor().
- * @since_tizen 2.3
- *
- * @param[in] result The result of discovering
- * @param[in] characteristic_format The format of the information data.
- * characteristic_format = 0x01 indicates UUIDs are 16-bits
- * characteristic_format = 0x02 indicates UUIDs are 128-bits
- * @param[in] total The total number of elements in characteristic_descriptor
- * @param[in] characteristic descriptor The attribute handle and the UUID of characteristic descriptor
- * @param[in] user_data The user data passed from the request function
- * @see bt_gatt_discover_characteristic_descriptor()
- */
-typedef void (*bt_gatt_characteristic_descriptor_discovered_cb) (int result,
- unsigned char characteristic_format, int total,
- bt_gatt_attribute_h characteristic_descriptor, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when you get GATT handles repeatedly
- * @since_tizen 2.3.1
- *
- * @param[in] total The total number of GATT handles to be called
- * @param[in] index The index of current GATT handle. It starts from 0.
- * @param[in] gatt_handle The GATT handle
- * @param[in] user_data The user data passed from the foreach function
- *
- * @see bt_gatt_service_foreach_characteristics()
- * @see bt_gatt_service_foreach_included_services()
- * @see bt_gatt_characteristic_foreach_descriptors()
- * @see bt_gatt_client_foreach_services()
- */
-typedef bool (*bt_gatt_foreach_cb) (int total, int index, bt_gatt_h gatt_handle,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when the client request(e.g. read / write) has been completed
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of a request
- * @param[in] request_handle The requesting GATT handle
- * @param[in] user_data The user data passed from the requesting function
- *
- * @see bt_gatt_client_read_value()
- * @see bt_gatt_client_write_value()
- */
-typedef void (*bt_gatt_client_request_completed_cb) (int result,
- bt_gatt_h request_handle, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when a value of a watched characteristic's GATT handle has been changed
- * @since_tizen 2.3.1
- *
- * @remarks After this function is returned, a changed value is automatically
- * applied to @a characteristic. Before that, @a characteristic has an old value.
- *
- * @param[in] characteristic The characteristic's GATT handle of which value change is informed. It has an old value.
- * @param[in] value The new value
- * @param[in] len The length of @a value
- * @param[in] user_data The user data passed from the registering function
- *
- * @see bt_gatt_client_set_characteristic_value_changed_cb()
- */
-typedef void (*bt_gatt_client_characteristic_value_changed_cb) (bt_gatt_h characteristic,
- char *value, int len, void *user_data);
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when a service of a remote GATT server has been changed.
- * @since_tizen 3.0
- *
- * @param[in] client The handle of a GATT client which is associated with a remote device.
- * @param[in] change_type The changed type
- * @param[in] service_uuid The changed service uuid
- * @param[in] user_data The user data passed from the registering function
- *
- * @see bt_gatt_client_set_characteristic_value_changed_cb()
- */
-typedef void (*bt_gatt_client_service_changed_cb) (bt_gatt_client_h client,
- bt_gatt_client_service_change_type_e change_type,
- const char* service_uuid, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @details This callback is called when the connection state is changed.
- * When you called bt_gatt_connect() or bt_gatt_disconnect(), this callback is also called with error result even though these functions fail.
- *
- * @param[in] result The result of changing the connection state.
- * @param[in] connected The state to be changed, @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote_address
- * @param[in] user_data The user data passed from the callback registration function.
- *
- * @see bt_gatt_connect()
- * @see bt_gatt_disconnect()
- * @see bt_gatt_set_connection_state_changed_cb()
- * @see bt_gatt_unset_connection_state_changed_cb()
- */
-typedef void (*bt_gatt_connection_state_changed_cb)(int result, bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Called when a value of a characteristic or descriptor's GATT handle has been changed.
- * @since_tizen 3.0
- *
- * @details For finishing the request, call the function #bt_gatt_server_send_response in callback.
- *
- * @remarks After this function is returned, a changed value is automatically
- * applied to @a gatt_handle. Before that, @a gatt_handle has an old value.
- * @remarks The @a remote_address must not be freed by application.
- * @remarks The @a server must not be freed by application.
- * @remarks The @a gatt_handle must not be freed by application.
- * @remarks The @a value must not be freed by application.
- *
- * @param[in] remote_address The address of the remote device which requests a change
- * @param[in] request_id The identification of this request. It will be used to send a response.
- * @param[in] server The GATT server handle
- * @param[in] gatt_handle The characteristic or descriptor's GATT handle which has an old value
- * @param[in] response_needed Indicates whether a response is required by the remote device - @c true if required, @c false if not
- * @param[in] offset The requested offset from where the @a gatt_handle value will be updated
- * @param[in] value The new value
- * @param[in] len The length of @a value
- * @param[in] user_data The user data passed from the registration function
- *
- * @see bt_gatt_server_set_write_value_requested_cb()
- * @see bt_gatt_server_send_response()
- */
-typedef void (*bt_gatt_server_write_value_requested_cb) (const char *remote_address,
- int request_id, bt_gatt_server_h server,
- bt_gatt_h gatt_handle, bool response_needed, int offset,
- const char *value, int len, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Called when the remote device requests to read a value on a GATT server.
- * @since_tizen 3.0
- *
- * @details For finishing the request, call the function #bt_gatt_server_send_response in callback.
- *
- * @remarks The @a remote_address must not be freed by application.
- * @remarks The @a server must not be freed by application.
- * @remarks The @a gatt_handle must not be freed by application.
- *
- * @param[in] remote_address The address of the requesting remote device
- * @param[in] request_id The identification of this request. It will be used to send a response.
- * @param[in] server The GATT server handle
- * @param[in] gatt_handle The characteristic or descriptor's GATT handle to be read
- * @param[in] offset The requested offset from where the GATT handle's value is read
- * @param[in] user_data The user data passed from the registration function
- *
- * @see bt_gatt_server_set_read_value_requested_cb()
- * @see bt_gatt_server_send_response()
- */
-typedef void (*bt_gatt_server_read_value_requested_cb) (const char *remote_address,
- int request_id, bt_gatt_server_h server, bt_gatt_h gatt_handle,
- int offset, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Called when the remote device enables or disables the Notification/Indication for particular characteristics.
- * @since_tizen 3.0
- *
- * @details By using this callback function, server can know notification state.
- *
- * @remarks The @a server must not be freed by application.
- * @remarks The @a gatt_handle must not be freed by application.
- *
- * @param[in] notify Indicates whether the Notification/Indication is enabled or not
- * @param[in] server The GATT server handle
- * @param[in] gatt_handle The characteristic's GATT handle to be read
- * @param[in] user_data The user data passed from the registration function
- *
- * @see bt_gatt_server_set_read_value_requested_cb()
- */
-typedef void (*bt_gatt_server_characteristic_notification_state_changed_cb) (bool notify,
- bt_gatt_server_h server, bt_gatt_h gatt_handle, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Called when the sending notification / indication is done.
- * @since_tizen 3.0
- *
- * @remarks The @a remote_address must not be freed by application.
- * @remarks The @a server must not be freed by application.
- * @remarks The @a characteristic must not be freed by application.
- *
- * @remarks In case of an indication, once a confirmation is received from the remote device this callback will be called. \n
- * This callback will be called several times if there are two or more remote devices which enable a Client Characteristic Configuration Descriptor(CCCD). \n
- * For the last remote device, @a completed will be set as true.
- *
- * @param[in] result The result of a sending operation
- * @param[in] remote_address The address of the remote device
- * @param[in] server The GATT server handle
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] completed If this callback is for the last remote device which enables a CCCD, it will be true. Or it will be false.
- * @param[in] user_data The user data passed from the requesting function
- *
- * @see bt_gatt_server_notify_characteristic_changed_value()
- */
-typedef void (*bt_gatt_server_notification_sent_cb) (int result,
- const char *remote_address, bt_gatt_server_h server,
- bt_gatt_h characteristic, bool completed, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @param[in] connected Indicates whether a client is connected or disconnected
- * @param[in] remote_address The remote address
- * @param[in] interface_name The interface name. For example, bnep0, bnep1.
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_nap_set_connection_state_changed_cb()
- * @see bt_nap_unset_connection_state_changed_cb()
- */
-typedef void (*bt_nap_connection_state_changed_cb) (bool connected, const char *remote_address, const char *interface_name, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3
- *
- * @details This callback is called when the connection state is changed.
- * When you call bt_panu_connect() or bt_panu_disconnect(), this callback is also called with error result even though these functions fail.
- * @param[in] result The result of changing the connection state
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] type The type of PAN service
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_nap_set_connection_state_changed_cb()
- * @see bt_nap_unset_connection_state_changed_cb()
- */
-typedef void (*bt_panu_connection_state_changed_cb) (int result, bool connected, const char *remote_address, bt_panu_service_type_e type, void *user_data);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_TYPE_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_EXTENSION_H__
-#define __TIZEN_NETWORK_BLUETOOTH_TYPE_EXTENSION_H__
-
- #ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_type_extension.h
- */
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when the SCO(Synchronous Connection Oriented link) state is changed.
- * @since_tizen 2.3
- *
- * @details This callback is called when the SCO state is changed.
- * When you call bt_ag_open_sco() or bt_ag_close_sco(), this callback is also called with error result even though these functions failed.
- * @param[in] result The result of changing the connection state
- * @param[in] opened The state to be changed: (@c true = opened, @c false = not opened)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_sco_state_changed_cb()
- * @see bt_ag_unset_sco_state_changed_cb()
- * @see bt_ag_open_sco()
- * @see bt_ag_close_sco()
- */
-typedef void (*bt_ag_sco_state_changed_cb) (int result, bool opened, void *user_data);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_TYPE_EXTENSION_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_INTERNAL_H__
-#define __TIZEN_NETWORK_BLUETOOTH_TYPE_INTERNAL_H__
-
- #ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_type_internal.h
- */
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth adapter le state.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_DISABLED = 0x00, /**< Bluetooth le is disabled */
- BT_ADAPTER_LE_ENABLED, /**< Bluetooth le is enabled */
-} bt_adapter_le_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Called when the Bluetooth adapter le state changes.
- * @since_tizen 2.3
- *
- * @param[in] result The result of the adapter state changing
- * @param[in] adapter_le_state The adapter le state to be changed
- * @param[in] user_data The user data passed from the callback registration function
- * @pre Either bt_adapter_le_enable() or bt_adapter_le_disable() will invoke this callback if you register this callback using bt_adapter_le_set_state_changed_cb().
- * @see bt_adapter_le_enable()
- * @see bt_adapter_le_disable()
- * @see bt_adapter_le_set_state_changed_cb()
- * @see bt_adapter_le_unset_state_changed_cb()
- */
-typedef void (*bt_adapter_le_state_changed_cb)(int result, bt_adapter_le_state_e adapter_le_state, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Enumerations for the call state
- * @since_tizen 2.3
- */
-typedef enum {
- BT_AG_CALL_EVENT_IDLE = 0x00, /**< Idle */
- BT_AG_CALL_EVENT_ANSWERED, /**< Answered */
- BT_AG_CALL_EVENT_HELD, /**< Held */
- BT_AG_CALL_EVENT_RETRIEVED, /**< Retrieved */
- BT_AG_CALL_EVENT_DIALING, /**< Dialing */
- BT_AG_CALL_EVENT_ALERTING, /**< Alerting */
- BT_AG_CALL_EVENT_INCOMING, /**< Incoming */
-} bt_ag_call_event_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Enumerations for the call state
- * @since_tizen 2.3
- */
-typedef enum {
- BT_AG_CALL_STATE_IDLE = 0x00, /**< Idle state */
- BT_AG_CALL_STATE_ACTIVE, /**< Active state */
- BT_AG_CALL_STATE_HELD, /**< Held state */
- BT_AG_CALL_STATE_DIALING, /**< Dialing state */
- BT_AG_CALL_STATE_ALERTING, /**< Alerting state */
- BT_AG_CALL_STATE_INCOMING, /**< Incoming state */
- BT_AG_CALL_STATE_WAITING, /**< Waiting for connected indication event after answering an incoming call*/
-} bt_ag_call_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_MODULE
- * @brief Enumerations for the transfer type
- * @since_tizen 3.0
- */
-typedef enum {
- BT_TRANSFER_INBOUND, /**< Inbound Transfer Type */
- BT_TRANSFER_OUTBOUND, /**< Outbound Transfer Type */
-} bt_opp_transfer_type_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Enumerations of the Bluetooth A2DP role.
- * @since_tizen 4.0
- */
-typedef enum {
- BT_A2DP_SOURCE,
- BT_A2DP_SINK,
-} bt_audio_role_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the connectable state changes.
- * @since_tizen 2.3
- *
- * @param[in] result The result of the connectable state changing
- * @param[in] connectable The connectable to be changed
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre This function will be invoked when the connectable state of local Bluetooth adapter changes
- * if you register this callback using bt_adapter_set_connectable_changed_cb().
- *
- * @see bt_adapter_set_connectable()
- * @see bt_adapter_set_connectable_changed_cb()
- * @see bt_adapter_unset_connectable_changed_cb()
- */
-typedef void (*bt_adapter_connectable_changed_cb)
- (int result, bool connectable, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Called when the push is requested.
- * @since_tizen 2.3
- *
- * @details You must call bt_opp_server_accept() if you want to accept.
- * Otherwise, you must call bt_opp_server_reject().
- * @param[in] file The path of file to be pushed
- * @param[in] size The file size (bytes)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_server_initialize()
- */
-typedef void (*bt_opp_server_push_requested_cb)(const char *file, int size, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth adapter le scan type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_PASSIVE_SCAN = 0x00,
- BT_ADAPTER_LE_ACTIVE_SCAN
-} bt_adapter_le_scan_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the manufacturer dat changes.
- * @since_tizen 2.3
- *
- * @param[in] data The manufacurer data of the Bluetooth device to be changed
- * @param[in] len The length of @a data
- * @param[in] user_data The user data passed from the callback registration function
- * @pre This function will be invoked when the manufacturer data of Bluetooth adapter changes
- * if callback is registered using bt_adapter_set_manufacturer_data_changed_cb().
- * @see bt_adapter_set_manufacturer_data()
- * @see bt_adapter_set_manufacturer_data_changed_cb()
- * @see bt_adapter_unset_manufacturer_data_changed_cb()
- */
-typedef void (*bt_adapter_manufacturer_data_changed_cb) (char *data,
- int len, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called repeatedly when you get the devices connected with specific profile.
- * @since_tizen 3.0
- *
- * @param[in] remote_address The address of remote device
- * @param[in] user_data The user data passed from the callback registration function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_adapter_foreach_profile_connected_devices() will invoke this function.
- * @see bt_adapter_foreach_profile_connected_devices()
- */
-typedef bool (*bt_adapter_profile_connected_devices_cb)(const char *remote_address, void *user_data);
-
-/**
-* @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
-* @brief DPM BT allowance state
-* @since_tizen 3.0
-*/
-typedef enum {
- BT_DPM_ERROR = -1, /**< bluetooth allowance error */
- BT_DPM_BT_ALLOWED, /**< bluetooth allowance allowed */
- BT_DPM_HANDSFREE_ONLY, /**< bluetooth allowance handsfree only */
- BT_DPM_BT_RESTRICTED, /**< bluetooth allowance restricted */
-} bt_dpm_allow_e;
-
-/**
-* @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
-* @brief DPM Policy status
-* @since_tizen 3.0
-*/
-typedef enum {
- BT_DPM_STATUS_ERROR = -1,
-
- BT_DPM_ALLOWED = 0, /**< DPM Policy status allowed. */
- BT_DPM_RESTRICTED = 1, /**< DPM Policy status restricted. */
-
- BT_DPM_ENABLE = 1, /**< DPM Policy status enabled. */
- BT_DPM_DISABLE = 0, /**< DPM Policy status disabled. */
-
- BT_DPM_FALSE = 0, /**< DPM Policy status false. */
- BT_DPM_TRUE = 1, /**< DPM Policy status true. */
-} bt_dpm_status_e;
-
-/**
-* @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
-* @brief DPM Profile states
-* @since_tizen 3.0
-*/
-typedef enum {
- BT_DPM_POLICY_A2DP_PROFILE_STATE,
- BT_DPM_POLICY_AVRCP_PROFILE_STATE,
- BT_DPM_POLICY_BPP_PROFILE_STATE,
- BT_DPM_POLICY_DUN_PROFILE_STATE,
- BT_DPM_POLICY_FTP_PROFILE_STATE,
- BT_DPM_POLICY_HFP_PROFILE_STATE,
- BT_DPM_POLICY_HSP_PROFILE_STATE,
- BT_DPM_POLICY_PBAP_PROFILE_STATE,
- BT_DPM_POLICY_SAP_PROFILE_STATE,
- BT_DPM_POLICY_SPP_PROFILE_STATE,
- BT_DPM_PROFILE_NONE,
-} bt_dpm_profile_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief The handle to control Bluetooth LE scan filter
- * @since_tizen 2.4
- */
-typedef void *bt_scan_filter_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Device LE connection update structure.
- * @since_tizen 2.3
- */
-typedef struct {
- unsigned int interval_min; /**< Minimum value for the connection event interval (msec) */
- unsigned int interval_max; /**< Maximum value for the connection event interval (msec) */
- unsigned int latency; /**< Slave latency (msec) */
- unsigned int time_out; /**< Supervision timeout (msec) */
-} bt_le_conn_update_s;
-
-/**
- * Structure to DPM device list
- */
-typedef struct {
- int count;
- char **devices;
-} bt_dpm_device_list_s;
-
-/**
- * Structure to DPM uuid list
- */
-typedef struct {
- int count;
- char **uuids;
-} bt_dpm_uuids_list_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth HID mouse's button.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HID_MOUSE_BUTTON_NONE = 0x00, /**<The mouse's none value*/
- BT_HID_MOUSE_BUTTON_LEFT = 0x01, /**<The mouse's left button value*/
- BT_HID_MOUSE_BUTTON_RIGHT = 0x02, /**<The mouse's right button value*/
- BT_HID_MOUSE_BUTTON_MIDDLE = 0x04 /**<The mouse's middle button value*/
-} bt_hid_mouse_button_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief The structure type containing the HID mouse event information.
- * @since_tizen 3.0
- *
- * @see bt_hid_device_send_mouse_event()
- */
-typedef struct {
- int buttons; /**< The button values, we can combine key's values when we pressed multiple mouse buttons*/
- int axis_x; /**< The location's x value, -128 ~127 */
- int axis_y; /**< The location's y value, -128 ~127 */
- int padding; /**< The padding value, -128 ~127 */
-} bt_hid_mouse_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief The structure type containing the HID keyboard event information.
- * @since_tizen 3.0
- * @details If you want to know more detail values, refer to http://www.usb.org/developers/hidpage/ and see "HID Usage Tables"
- *
- * @see bt_hid_device_send_key_event()
- */
-typedef struct {
- unsigned char modifier; /**< The modifier keys : such as shift, alt */
- unsigned char key[8]; /**< The key value - currently pressed keys : Max 8 at once */
-} bt_hid_key_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth HID header type.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HID_HEADER_HANDSHAKE, /**< The Bluetooth HID header type: Handshake */
- BT_HID_HEADER_HID_CONTROL, /**< The Bluetooth HID header type: HID control */
- BT_HID_HEADER_GET_REPORT, /**< The Bluetooth HID header type: Get report */
- BT_HID_HEADER_SET_REPORT, /**< The Bluetooth HID header type: Set report */
- BT_HID_HEADER_GET_PROTOCOL, /**< The Bluetooth HID header type: Get protocol */
- BT_HID_HEADER_SET_PROTOCOL, /**< The Bluetooth HID header type: Set protocol */
- BT_HID_HEADER_DATA, /**< The Bluetooth HID header type: Data */
- BT_HID_HEADER_UNKNOWN /**< The Bluetooth HID header type: Unknown */
-} bt_hid_header_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth HID parameter type.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HID_PARAM_DATA_RTYPE_INPUT, /**< Parameter type: Input */
- BT_HID_PARAM_DATA_RTYPE_OUTPUT /**< Parameter type: Output */
-} bt_hid_param_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth HID handshake type.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HID_HANDSHAKE_SUCCESSFUL = 0x00, /**< Handshake error code none */
- BT_HID_HANDSHAKE_NOT_READY, /**< Handshake error code Not Ready */
- BT_HID_HANDSHAKE_ERR_INVALID_REPORT_ID, /**< Handshake error code send invalid report id */
- BT_HID_HANDSHAKE_ERR_UNSUPPORTED_REQUEST, /**< Handshake error code request unsupported request */
- BT_HID_HANDSHAKE_ERR_INVALID_PARAMETER, /**< Handshake error code received invalid parameter */
- BT_HID_HANDSHAKE_ERR_UNKNOWN = 0x0e, /**< unknown error */
- BT_HID_HANDSHAKE_ERR_FATAL /**< Fatal error */
-} bt_hid_handshake_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief The structure type containing data received from the HID Host.
- * @since_tizen 3.0
- */
-typedef struct {
- const char *address; /**< The remote device's address */
- bt_hid_header_type_e header_type; /**< The header type */
- bt_hid_param_type_e param_type; /**< The parameter type */
- int data_size; /**< The length of the received data */
- const char *data; /**< The received data */
-} bt_hid_device_received_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Called when the Bluetooth HID Device connection state changes.
- * @details The following error codes can be delivered: \n
- * #BT_ERROR_NONE \n
- * #BT_ERROR_OPERATION_FAILED \n
- * @since_tizen 3.0
- *
- * @param[in] result The result of changing the connection state.
- * @param[in] connected The requested state. @a true means the connection is enabled, @false means the connection is disabled.
- * @param[in] remote_address The remote device's address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hid_device_activate()
- */
-typedef void (*bt_hid_device_connection_state_changed_cb) (int result,
- bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Called when the HID Device receives data from the HID Host.
- * @details The following error codes can be delivered: \n
- * #BT_ERROR_NONE \n
- * #BT_ERROR_OPERATION_FAILED \n
- * @since_tizen 3.0
- *
- * @param[in] data The data received from the HID Host.
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hid_device_set_data_received_cb()
- */
-typedef void (*bt_hid_device_data_received_cb)(const bt_hid_device_received_data_s *data, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Trusted Profile enumeration.
- * @since_tizen 3.0
- *
- * @see bt_device_set_profile_trusted()
- * @see bt_device_get_profile_trusted()
- */
-typedef enum {
- BT_TRUSTED_PROFILE_PBAP = 1,
- BT_TRUSTED_PROFILE_MAP,
- BT_TRUSTED_PROFILE_SAP,
- BT_TRUSTED_PROFILE_ALL = 0xFFFFFFFF,
-} bt_trusted_profile_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Restricted Profile enumeration.
- * @since_tizen 3.0
- *
- * @see bt_device_set_profile_restricted()
- * @see bt_device_get_profile_restricted()
- */
-typedef enum {
- BT_RESTRICTED_PROFILE_HFP_HS = 1,
- BT_RESTRICTED_PROFILE_A2DP,
-} bt_restricted_profile_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumerations of the authentication event types.
- * @since_tizen 3.0
- *
- */
-typedef enum {
- BT_AUTH_KEYBOARD_PASSKEY_DISPLAY = 0, /**< PIN display event to user for entering PIN in keyboard */
- BT_AUTH_PIN_REQUEST, /**< Legacy PIN or PASSKEY request event */
- BT_AUTH_PASSKEY_CONFIRM_REQUEST, /**< PASSKEY confirmation event to match PASSKEY in remote device */
-} bt_authentication_type_info_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
- * @brief Proximity Profile Role
- * @since_tizen 3.0
- */
-typedef enum {
- BT_PROXIMITY_REPORTER, /**< Proximity Profile Reporter role. */
- BT_PROXIMITY_MONITOR, /**< Proximity Profile Monitor role. */
-} bt_proximity_role_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
- * @brief Proximity Profile Role
- * @since_tizen 3.0
- */
-typedef enum {
- BT_PROXIMITY_LINKLOSS_ALERT = 0x01, /**< Proximity profile Link Loss alert property */
- BT_PROXIMITY_IMMEDIATE_ALERT = 0x02, /**< Proximity Profile Immediate alert property */
- BT_PROXIMITY_TX_POWER = 0x04, /**< Proximity Profile Immediate alert property */
-} bt_proximity_property_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when Trusted Profiles is changed.
- * @since_tizen 3.0
- *
- * @param[in] result The result of supported profile callback
- * @param[in] remote_address Address of remote device
- * @param[in] trusted_profiles Trusted profile FLAG
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_device_set_trusted_profile_cb()
- * @see bt_device_unset_trusted_profile_cb()
- */
-typedef void (*bt_device_trusted_profiles_cb)
- (int result, char *remote_address, int trusted_profile, bool supported, bool trusted, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Attribute protocol MTU change information structure.
- * @since_tizen 3.0
- *
- * @see bt_device_att_mtu_changed_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- unsigned int mtu; /** < MTU value */
- unsigned int status; /** < request status*/
-} bt_device_att_mtu_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 3.0
- *
- * @param[in] connected The connection status: (@c true = connected, @c false = disconnected)
- * @param[in] conn_info The connection information
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_device_set_connection_state_changed_cb()
- * @see bt_device_unset_connection_state_changed_cb()
- */
-typedef void (*bt_device_att_mtu_changed_cb)(int result, bt_device_att_mtu_info_s *mtu_info, void *user_data);
-
-/**
- * @internal
- * @ingroup
- * @brief IPSP Init state changed callback
- * @since_tizen 3.0
- */
-typedef void (*bt_ipsp_init_state_changed_cb)
- (int result, bool ipsp_initialized, void *user_data);
-
-/**
- * @internal
- * @ingroup
- * @since_tizen 3.0
-
- * @brief IPSP Connection state changed callback
- */
-typedef void (*bt_ipsp_connection_state_changed_cb)
- (int result, bool connected, const char *remote_address, const char *iface_name, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when remote device requests authentication.
- * @since_tizen 3.0
- * @param[in] result
- * @param[in] auth_type
- * typedef enum {
- * BT_AUTH_KEYBOARD_PASSKEY_DISPLAY = 0, : PIN display event to user for entering PIN in keyboard
- * BT_AUTH_PIN_REQUEST, : Legacy PIN or PASSKEY request event
- * BT_AUTH_PASSKEY_CONFIRM_REQUEST, : PASSKEY confirmation event to match PASSKEY in remote device
- * } bt_authentication_type_info_e;
- * @param[in] device_name Name of the remote device
- * @param[in] remote_addr Remote BD address
- * @param[in] pass_key PASSKEY string
- * PASSKEY string is valid only if authentication types are following
- * a/ BT_AUTH_KEYBOARD_PASSKEY_DISPLAY
- * b/ BT_AUTH_PASSKEY_CONFIRM_REQUEST
- * pass_key string will be invalid if authentication event is of type BT_AUTH_PIN_REQUEST
- * as this event indicates that user MUST enter PIN or PASSKEY and perform authentication.
- *
- * Upon receiving BT_AUTH_KEYBOARD_PASSKEY_DISPLAY event, user should enter PASSKEY in keyboard
- * Application can also call bt_device_cancel_bonding() Upon receiving BT_AUTH_KEYBOARD_PASSKEY_DISPLAY
- * event which will fail the on-going pairing with remote device.
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_adapter_set_authentication_req_cb()
- */
-typedef void (*bt_adapter_authentication_req_cb)(int result, bt_authentication_type_info_e auth_type,
- char *device_name, char *remote_addr,
- char *pass_key, void *user_data);
-
-/**
- * @brief Proximity profile property changed callback
- */
-typedef void (*bt_proximity_property_changed_cb)
- (int result, const char *remote_address, int role, int service_type, int prop_value, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Samsung XSAT Vendor dependent command.
- * @since_tizen 2.3.2
- */
-typedef struct {
- int app_id; /**< The application ID */
- char *message; /**< Command message */
-} bt_hf_vendor_dep_at_cmd_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when a XSAT vendor command is transmitted from Hands-Free.
- * @since_tizen 2.3
- *
- * @param[in] command The XSAT vendor command transmitted from Hands-Free
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_vendor_cmd_cb()
- * @see bt_ag_unset_vendor_cmd_cb()
- */
-typedef void (*bt_ag_vendor_cmd_cb) (char *command, void *user_data);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_TYPE_INTERNAL_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_H__
-#define __TIZEN_NETWORK_BLUETOOTH_H__
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdbool.h>
-#include <tizen_error.h>
-#include <tizen.h>
-
-#include <bluetooth_type.h>
-
-#ifndef TIZEN_DEPRECATED_API
-#define TIZEN_DEPRECATED_API __attribute__((__visibility__("default"), deprecated))
-#endif
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth.h
- * @brief API to control the Bluetooth adapter and devices and communications.
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- */
-
-
-/**
- * @addtogroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @{
- */
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @brief Initializes the Bluetooth API.
- * @since_tizen 2.3.1
- *
- * @remarks This function must be called before Bluetooth API starts. \n
- * You must free all resources of the Bluetooth service by calling bt_deinitialize() if Bluetooth service is no longer needed.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_deinitialize()
- */
-int bt_initialize(void);
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @brief Releases all resources of the Bluetooth API.
- * @since_tizen 2.3.1
- *
- * @remarks This function must be called if Bluetooth API is no longer needed.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre Bluetooth API must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- */
-int bt_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @brief Gets the specification name for the given UUID.
- * @since_tizen 3.0
- *
- * @remarks The @a name must be released using free().
- *
- * @param[in] uuid The UUID
- * @param[out] name The specification name defined at www.bluetooth.com
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_get_uuid()
- */
-int bt_get_uuid_name(const char *uuid, char **name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the current state of local Bluetooth adapter.
- * @since_tizen 2.3.1
- *
- * @param[out] adapter_state The current adapter state
- *
- * @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_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- */
-int bt_adapter_get_state(bt_adapter_state_e *adapter_state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the address of local Bluetooth adapter.
- * @since_tizen 2.3.1
- *
- * @remarks The @a local_address must be released with free() by you.
- *
- * @param[out] local_address The device address of local Bluetooth adapter
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_adapter_get_name()
- */
-int bt_adapter_get_address(char **local_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the name of local Bluetooth adapter.
- * @since_tizen 2.3.1
- *
- * @details Use this function to get the friendly name associated with Bluetooth
- * device, retrieved by the remote Bluetooth devices.
- *
- * @remarks The @a local_name must be released with free() by you.
- *
- * @param[out] local_name The local device name
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_set_name()
- */
-int bt_adapter_get_name(char **local_name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the name of local Bluetooth adapter.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] local_name The name of the Bluetooth device. \n
- * The maximum length is 248 characters.
- *
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_adapter_name_changed_cb() will be invoked if this function returns #BT_ERROR_NONE.
- *
- * @see bt_adapter_get_name()
- * @see bt_adapter_name_changed_cb()
- * @see bt_adapter_set_name_changed_cb()
- * @see bt_adapter_unset_name_changed_cb()
- */
-int bt_adapter_set_name(const char *local_name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the visibility mode of local Bluetooth adapter.
- * @since_tizen 2.3.1
- * @param[out] mode The visibility mode of the Bluetooth device
- * @param[out] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds).
- * @a duration is valid only if @a mode is #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE. This value can be NULL.
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_adapter_get_visibility(bt_adapter_visibility_mode_e *mode, int *duration);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Starts the device discovery, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details If a device is discovered, bt_adapter_device_discovery_state_changed_cb() will be invoked
- * with #BT_ADAPTER_DEVICE_DISCOVERY_FOUND, and then bt_adapter_device_discovery_state_changed_cb()
- * will be called with #BT_ADAPTER_DEVICE_DISCOVERY_FINISHED in case of the completion or cancellation of the discovery.
- *
- * @remarks To connect to peer Bluetooth device, you need to know its Bluetooth address. \n
- * The device discovery can be stopped by bt_adapter_stop_device_discovery().
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_is_discovering()
- * @see bt_adapter_stop_device_discovery()
- * @see bt_adapter_device_discovery_state_changed_cb()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- * @see bt_adapter_unset_device_discovery_state_changed_cb()
- */
-int bt_adapter_start_device_discovery(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Stops the device discovery, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks The device discovery process will take 10 ~ 20 seconds to get all the devices in vicinity.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation is not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The device discovery must be in progress with bt_adapter_start_device_discovery().
- * @post This function invokes bt_adapter_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_is_discovering()
- * @see bt_adapter_start_device_discovery()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- * @see bt_adapter_unset_device_discovery_state_changed_cb()
- * @see bt_adapter_device_discovery_state_changed_cb()
- */
-int bt_adapter_stop_device_discovery(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Checks for the device discovery is in progress or not.
- * @since_tizen 2.3.1
- *
- * @remarks If Bluetooth discovery is in progress, other operations are not allowed and
- * you have to either stop the discovery operation, or wait for it to be finished,
- * before performing other operations.
-
- * @param[out] is_discovering The discovering status: (@c true = in progress , @c false = not in progress )
- *
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_adapter_stop_device_discovery()
- */
-int bt_adapter_is_discovering(bool *is_discovering);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Get the service mask from the uuid list.
- * @since_tizen 2.3.1
- *
- * @param[in] uuids The UUID list of the device.
- * @param[in] no_of_service The number of the UUID list count.
- * @param[out] service_mask_list Service mask list converted from the given UUID list.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_service_class_t
- */
-int bt_device_get_service_mask_from_uuid_list(char **uuids,
- int no_of_service,
- bt_service_class_t *service_mask_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Retrieves the device information of all bonded devices.
- * @since_tizen 2.3.1
- *
- * @param [in] callback The callback function to invoke
- * @param [in] user_data The user data passed from the foreach function
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_bonded_device_cb().
- *
- * @see bt_adapter_bonded_device_cb()
- */
-int bt_adapter_foreach_bonded_device(bt_adapter_bonded_device_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the device information of a bonded device.
- * @since_tizen 2.3.1
- * @remarks The @a device_info must be released with bt_adapter_free_device_info() by you .
- *
- * @param [in] remote_address The address of remote device
- * @param [out] device_info The bonded device information
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_bonded_device_cb().
- *
- * @see bt_adapter_bonded_device_cb()
- */
-int bt_adapter_get_bonded_device_info(const char *remote_address, bt_device_info_s **device_info);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Frees device info.
- * @since_tizen 2.3.1
- *
- * @param [in] device_info The bonded device information
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_adapter_get_bonded_device_info()
- */
-int bt_adapter_free_device_info(bt_device_info_s *device_info);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Checks whether the UUID of service is used or not
- * @since_tizen 2.3.1
- * @param[in] service_uuid The UUID of service
- * @param[out] used Indicates whether the service is used or not
- * @return true on success, otherwise false.
- * @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_NOT_SUPPORTED Not supported
- */
-int bt_adapter_is_service_used(const char *service_uuid, bool *used);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the Bluetooth adapter state changes.
- * @since_tizen 2.3.1
- *
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_state_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_state_changed_cb()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb()
- */
-int bt_adapter_set_state_changed_cb(bt_adapter_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_state_changed_cb()
- */
-int bt_adapter_unset_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the name of Bluetooth adapter changes.
- * @since_tizen 2.3.1
- *
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_name_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_name_changed_cb()
- * @see bt_adapter_unset_name_changed_cb()
- */
-int bt_adapter_set_name_changed_cb(bt_adapter_name_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_name_changed_cb()
- */
-int bt_adapter_unset_name_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the visibility mode changes.
- * @since_tizen 2.3.1
- *
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_visibility_mode_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_visibility_mode_changed_cb()
- * @see bt_adapter_unset_visibility_mode_changed_cb()
- */
-int bt_adapter_set_visibility_mode_changed_cb(bt_adapter_visibility_mode_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_visibility_mode_changed_cb()
- */
-int bt_adapter_unset_visibility_mode_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked every second
- * @since_tizen 2.3.1
- * until the visibility mode is changed from #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE
- * to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
- * @details When you set visibility mode as #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE,
- * @a callback will be called every second until visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @post bt_adapter_visibility_duration_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_adapter_visibility_duration_changed_cb()
- * @see bt_adapter_unset_visibility_duration_changed_cb()
- */
-int bt_adapter_set_visibility_duration_changed_cb(bt_adapter_visibility_duration_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_adapter_set_visibility_duration_changed_cb()
- */
-int bt_adapter_unset_visibility_duration_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the device discovery state changes.
- * @since_tizen 2.3.1
- *
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_device_discovery_state_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_device_discovery_state_changed_cb()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- * @see bt_adapter_unset_device_discovery_state_changed_cb()
- */
-int bt_adapter_set_device_discovery_state_changed_cb(bt_adapter_device_discovery_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- */
-int bt_adapter_unset_device_discovery_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Get the Hash and Randmoizer value, synchronously.
- * @since_tizen 2.3.1
- *
- * @param[out] hash The hash value received from the controller
- * @param[out] randomizer The hash value received from the controller
- * @param[out] hash_len The length of the hash value
- * @param[out] randomizer_len The length of the randomizer value
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_get_local_oob_data(unsigned char **hash, unsigned char **randomizer,
- int *hash_len, int *randomizer_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the Hash and Randmoizer value, synchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address Remote device address
- * @param[in] hash The hash value received from the controller
- * @param[in] randomizer The hash value received from the controller
- * @param[in] hash_len The length of the hash value. Allowed value is 16
- * @param[in] randomizer_len The length of the randomizer value. Allowed value is 16
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_set_remote_oob_data(const char *remote_address,
- unsigned char *hash, unsigned char *randomizer,
- int hash_len, int randomizer_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the Hash and Randmoizer value, synchronously.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks The @a hash192, randomizer192, hash256 and randomizer256 must be released using free()
- *
- * @param[out] hash192 The hash value derived from the P-192 public key
- * @param[out] randomizer192 The randomizer value associated with the P-192 public key
- * @param[out] hash192_len The length of @a hash192
- * @param[out] randomizer192_len The length of @a randomizer192
- * @param[out] hash256 The hash value derived from the P-256 public key
- * @param[out] randomizer256 The randomizer value associated with the P-256 public key
- * @param[out] hash256_len The length of @a hash256
- * @param[out] randomizer256_len The length of @a randomizer256
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_get_local_oob_ext_data(unsigned char **hash192, unsigned char **randomizer192,
- int *hash192_len, int *randomizer192_len,
- unsigned char **hash256, unsigned char **randomizer256,
- int *hash256_len, int *randomizer256_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the Hash and Randmoizer value, synchronously.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address Remote device address
- * @param[in] hash192 The P-192 hash value received via OOB from remote device
- * @param[in] randomizer192 The P-192 randomizer value received via OOB from remote device
- * @param[in] hash192_len The length of @a hash192
- * @param[in] randomizer192_len The length of @a randomizer192
- * @param[in] hash256 The P-256 hash value received via OOB from remote device
- * @param[in] randomizer256 The P-256 randomizer value received via OOB from remote device
- * @param[in] hash256_len The length of @a hash256
- * @param[in] randomizer256_len The length of @a randomizer256
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_set_remote_oob_ext_data(const char *remote_address,
- const unsigned char *hash192, const unsigned char *randomizer192,
- int hash192_len, int randomizer192_len,
- const unsigned char *hash256, const unsigned char *randomizer256,
- int hash256_len, int randomizer256_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Deletes the Hash and Randomizer value, synchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address Remote device address
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_remove_remote_oob_data(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Starts the LE scan to find LE advertisement.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details If a LE advertisement is found, bt_adapter_le_scan_result_cb() will be invoked.
- *
- * @param[in] cb The callback to report the result of this function
- * @param[in] user_data The user data to be passed when callback is called
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post This function invokes bt_adapter_le_scan_result_cb().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_start_scan(bt_adapter_le_scan_result_cb cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Stops the LE scan.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation is not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The LE scan must be in progress with bt_adapter_le_start_scan().
- *
- * @see bt_adapter_le_start_scan()
- */
-int bt_adapter_le_stop_scan(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the service UUID list from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a uuids must be iterated as count and each pointed data must be released with free().
- * Then uuids must be released with free(). \n
- * 16-bit service UUID or 128-bit service UUID is supported. (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] uuids The list of string of the service uuid
- * @param[out] count The count of the service UUIDs
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_service_uuids(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, char ***uuids, int *count);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the device name from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a name must be released with free() by you.
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] name The device name
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_device_name(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, char **name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the transmission power level from the scan result information
- * @since_tizen 2.3.1
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] power_level The transmission power level in dBm
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_tx_power_level(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, int *power_level);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the service solicitation UUID list from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a uuids must be iterated as count and each pointed data must be released with free().
- * Then uuids must be released with free(). \n
- * 16-bit service solicitation UUID or 128-bit service solicitation UUID is supported.
- * (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] uuids The list of string of the service solicitation uuid
- * @param[out] count The count of the service UUIDs
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_service_solicitation_uuids(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, char ***uuids, int *count);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the service data list from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a data_list must be released with bt_adapter_le_free_service_data_list() by you .
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] data_list The list of the service data
- * @param[out] count The count of the service data list
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_service_data_list(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, bt_adapter_le_service_data_s **data_list, int *count);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Frees service data list.
- * @since_tizen 2.3.1
- *
- * @param[in] data_list The list of the service data
- * @param[in] count The count of the service data list
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_adapter_le_get_scan_result_service_data_list()
- */
-int bt_adapter_le_free_service_data_list(bt_adapter_le_service_data_s *data_list, int count);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the appearance from the scan result information
- * @since_tizen 2.3.1
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] appearance The appearance
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_appearance(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, int *appearance);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the manufacturer data from the scan result information
- * @since_tizen 2.3.1
- *
- * @remarks The @a manufacturer_data must be released with free() by you.
- *
- * @param[in] info The scan result information
- * @param[in] pkt_type The packet type
- * @param[out] manufacturer_id The manufacturer ID
- * @param[out] manufacturer_data The manufacturer data (byte array)
- * @param[out] manufacturer_data_len The length of manufacturer data
- *
- * @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_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_scan_result_cb()
- */
-int bt_adapter_le_get_scan_result_manufacturer_data(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, int *manufacturer_id, char **manufacturer_data, int *manufacturer_data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Create advertiser to advertise device's existence or respond to LE scanning request.
- * @since_tizen 2.3.1
- *
- * @param[out] advertiser The handle of advertiser
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_destroy_advertiser()
- */
-int bt_adapter_le_create_advertiser(bt_advertiser_h *advertiser);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Destroy advertiser.
- * @since_tizen 2.3.1
- *
- * @param[out] advertiser The handle of advertiser
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_create_advertiser()
- */
-int bt_adapter_le_destroy_advertiser(bt_advertiser_h advertiser);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Add a service UUID to advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @remarks 16-bit UUID or 128-bit UUID is supported. (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] uuid The string of the service UUID.
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_service_uuid(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, const char *uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Add a service solicitation UUID to advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @remarks 16-bit service solicitation UUID or 128-bit service solicitation UUID is supported.
- * (e.g. 180F, 0000180F-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] uuid The string of the service solicitation UUID.
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_service_solicitation_uuid(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, const char *uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Add service data to advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @remarks 16-bit UUID is supported. (e.g. 180F)
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] uuid 16-bit UUID of the service
- * @param[in] service_data The service data
- * @param[in] service_data_len The data length of service data
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_service_data(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, const char *uuid,
- const char *service_data, int service_data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Sets the external appearance of this device to advertise or scan response data.
- * Please refer to the adopted Bluetooth specification for the the appearance.
- * @since_tizen 2.3.1
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] appearance The external appearance of device
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_set_advertising_appearance(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, int appearance);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Add manufacturer specific data to advertise or scan response data.
- * Please refer to the Bluetooth Assigned Numbers provided by the Bluetooth SIG for a list of existing company identifiers.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] manufacturer_id Manufacturer identifier
- * @param[in] manufacturer_data The manufacturer specific data
- * @param[in] manufacturer_data_len The data length of manufacturer data
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_add_advertising_manufacturer_data(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, int manufacturer_id, const char *manufacturer_data, int manufacturer_data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set whether the device name should be included in advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] include_name Whether the device name should be included
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_set_advertising_device_name(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, bool include_name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set whether the transmission power level should be included in advertise or scan response data.
- * The maximum advertised or responded data size is 31 bytes
- * including data type and system wide data.
- * @since_tizen 2.3.1
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type
- * @param[in] include_tx_power Whether the transmission power level should be included
- *
- * @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_QUOTA_EXCEEDED Quota exceeded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_clear_advertising_data()
- */
-int bt_adapter_le_set_advertising_tx_power_level(bt_advertiser_h advertiser,
- bt_adapter_le_packet_type_e pkt_type, bool include_tx_power);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Clear all data to be advertised or responded to scan request from LE scanning device.
- * @since_tizen 2.3.1
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] pkt_type The packet type to be cleared
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- */
-int bt_adapter_le_clear_advertising_data(bt_advertiser_h advertiser, bt_adapter_le_packet_type_e pkt_type);
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Stops the advertising.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] advertiser The handle of advertiser
- *
- * @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_NOT_IN_PROGRESS Operation is not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The advertising must be going on with bt_adapter_le_start_advertising_new().
- * @post This function invokes bt_adapter_le_advertising_state_changed_cb().
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_advertising_state_changed_cb()
- */
-int bt_adapter_le_stop_advertising(bt_advertiser_h advertiser);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Start advertising with passed advertiser and advertising parameters.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @details Once Bluetooth advertising is started, nearby Bluetooth LE(Low Energy) supported
- * devices can know this device's existence. And one of them can make a connection request,
- * if it is allowed.
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] cb The callback to report the result of this function
- * @param[in] user_data The user data to be passed when callback is called
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post This function invokes bt_adapter_le_advertising_state_changed_cb().
- *
- * @see bt_adapter_le_stop_advertising()
- * @see bt_adapter_le_advertising_state_changed_cb()
- */
-int bt_adapter_le_start_advertising_new(bt_advertiser_h advertiser, bt_adapter_le_advertising_state_changed_cb cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set advertising mode to control the advertising power and latency.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] mode The mode of advertising
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_start_advertising_new()
- */
-int bt_adapter_le_set_advertising_mode(bt_advertiser_h advertiser, bt_adapter_le_advertising_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set whether the advertising type should be connectable or non-connectable
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] connectable The type of advertising
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_start_advertising_new()
- */
-int bt_adapter_le_set_advertising_connectable(bt_advertiser_h advertiser, bool connectable);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Sets Bluetooth LE scan mode
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] scan_mode The scan mode
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_ENABLED Adapter is not enabled
- * @retval #BT_ERROR_INVALID_PARAM Parameter is invalid
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The state of local bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- */
-int bt_adapter_le_set_scan_mode(bt_adapter_le_scan_mode_e scan_mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Creates a bond with a remote Bluetooth device, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks A bond can be destroyed by bt_device_destroy_bond().\n
- * The bonding request can be cancelled by bt_device_cancel_bonding().
- *
- * @param[in] remote_address The address of the remote Bluetooth device with which the bond should be created
- *
- * @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_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
- * @post This function invokes bt_device_bond_created_cb().
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_device_bond_created_cb()
- * @see bt_device_cancel_bonding()
- * @see bt_device_destroy_bond()
- * @see bt_device_set_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-int bt_device_create_bond(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Cancels the bonding process.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks Use this function when the remote Bluetooth device is not responding to the
- * bond request or you wish to cancel the bonding request.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The creating a bond must be in progress by bt_device_create_bond().
- *
- * @see bt_device_create_bond()
- * @see bt_device_bond_created_cb()
- * @see bt_device_set_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-int bt_device_cancel_bonding(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Destroys the bond, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The address of the remote Bluetooth device to remove bonding
- *
- * @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_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- * @post This function invokes bt_device_bond_destroyed_cb().
- *
- * @see bt_device_create_bond()
- * @see bt_device_bond_destroyed_cb()
- * @see bt_device_set_bond_destroyed_cb()
- * @see bt_device_unset_bond_destroyed_cb()
- */
-int bt_device_destroy_bond(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Sets an alias for the bonded device.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] alias The alias of the remote Bluetooth device
- *
- * @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_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- *
- * @see bt_device_create_bond()
- */
-int bt_device_set_alias(const char *remote_address, const char *alias);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Sets the authorization of a bonded device, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks Once a device is authorized, you don't need to receive a confirmation.
- *
- * @param[in] remote_address The address of the remote Bluetooth device to authorize
- * @param[in] authorization_state The Bluetooth authorization state
- *
- * @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_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- * @post bt_device_authorization_changed_cb() will be invoked.
- *
- * @see bt_device_create_bond()
- * @see bt_device_authorization_changed_cb()
- * @see bt_device_set_authorization_changed_cb()
- * @see bt_device_unset_authorization_changed_cb()
- */
-int bt_device_set_authorization(const char *remote_address, bt_device_authorization_e authorization_state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Starts the search for services supported by the specified device, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks If creating a bond succeeds, which means bt_device_bond_created_cb() is called with result #BT_ERROR_NONE,
- * then you don't need to run this function.\n
- * The service search takes a couple of seconds to complete normally. \n
- *
- * @param[in] remote_address The address of the remote Bluetooth device whose services need to be checked
- *
- * @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_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_SERVICE_SEARCH_FAILED Service search failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- * @post This function invokes bt_device_service_searched_cb().
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_device_create_bond()
- * @see bt_device_bond_created_cb()
- * @see bt_device_service_searched_cb()
- * @see bt_device_set_service_searched_cb()
- * @see bt_device_unset_service_searched_cb()
- */
-int bt_device_start_service_search(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets the connected profiles.
- * @since_tizen 2.3.1
- * @param[in] remote_address The address of the remote device
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_device_connected_profile() will be invoked.
- * @see bt_device_connected_profile()
- */
-int bt_device_foreach_connected_profiles(const char *remote_address, bt_device_connected_profile callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets the profile connected status.
- * @since_tizen 2.3.1
- * @param[in] remote_address The address of the remote device
- * @param[in] bt_profile wish to know bt_profile
- * @param[out] connected_status the connected status
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_device_is_profile_connected(const char *remote_address, bt_profile_e bt_profile,
- bool *connected_status);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Updates a LE connection mode
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] mode The LE connection mode
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_update_le_connection_mode(const char *remote_address, bt_device_le_connection_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the bond creates.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_bond_created_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-int bt_device_set_bond_created_cb(bt_device_bond_created_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_bond_created_cb()
- */
-int bt_device_unset_bond_created_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the bond destroys.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_bond_destroyed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_bond_destroyed_cb()
- * @see bt_device_unset_bond_destroyed_cb()
- */
-int bt_device_set_bond_destroyed_cb(bt_device_bond_destroyed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_bond_destroyed_cb()
- */
-int bt_device_unset_bond_destroyed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the authorization of device changes.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_authorization_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_authorization_changed_cb()
- * @see bt_device_set_authorization_changed_cb()
- * @see bt_device_unset_authorization_changed_cb()
- */
-int bt_device_set_authorization_changed_cb(bt_device_authorization_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_authorization_changed_cb()
- */
-int bt_device_unset_authorization_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the process of service search finishes.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_service_searched_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_service_searched_cb()
- * @see bt_device_unset_service_searched_cb()
- */
-int bt_device_set_service_searched_cb(bt_device_service_searched_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_service_searched_cb()
- */
-int bt_device_unset_service_searched_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the connection state is changed.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_connection_state_changed_cb()
- * @see bt_device_unset_connection_state_changed_cb()
- */
-int bt_device_set_connection_state_changed_cb(bt_device_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function to be invoked when the connection state is changed.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_connection_state_changed_cb()
- */
-int bt_device_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Registers a rfcomm server socket with a specific UUID.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks A socket can be destroyed by bt_socket_destroy_rfcomm().
- *
- * @param[in] service_uuid The UUID of service to provide
- * @param[out] socket_fd The file descriptor of socket to listen
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_socket_listen_and_accept_rfcomm()
- * @see bt_socket_destroy_rfcomm()
- */
-int bt_socket_create_rfcomm(const char *service_uuid, int *socket_fd);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Removes the rfcomm server socket which was created using bt_socket_create_rfcomm().
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
- * then bt_socket_connection_state_changed_cb() will be called when this function is finished successfully.
- *
- * @param[in] socket_fd The file descriptor of socket (which was created using bt_socket_create_rfcomm()) to destroy
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm().
- * @post If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
- * then bt_socket_connection_state_changed_cb() will be called.
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_destroy_rfcomm(int socket_fd);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Starts listening on passed rfcomm socket and accepts connection requests.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @details Pop-up is shown automatically when a RFCOMM connection is requested.
- * bt_socket_connection_state_changed_cb() will be called with
- * #BT_SOCKET_CONNECTED if you click "yes" and connection is finished successfully.
- * @param[in] socket_fd The file descriptor of socket on which start to listen
- * @param[in] max_pending_connections The maximum number of pending connections
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm().
- * @post If callback function bt_socket_connection_state_changed_cb() is set,
- * then bt_socket_connection_state_changed_cb() will be called when the remote Bluetooth device is connected.
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_listen_and_accept_rfcomm(int socket_fd, int max_pending_connections);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Connects to a specific RFCOMM based service on a remote Bluetooth device UUID, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks A connection can be disconnected by bt_socket_disconnect_rfcomm().
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] service_uuid The UUID of service provided by the remote Bluetooth device
- *
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
- * @pre The bond with the remote device must be created with bt_device_create_bond().
- * @post This function invokes bt_socket_connection_state_changed_cb().
- *
- * @see bt_device_create_bond()
- * @see bt_adapter_start_device_discovery()
- * @see bt_device_start_service_search()
- * @see bt_socket_disconnect_rfcomm()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_connect_rfcomm(const char *remote_address, const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Disconnects the RFCOMM connection with the given file descriptor of connected socket.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] socket_fd The file descriptor of socket to close which was received using bt_socket_connection_state_changed_cb().
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The connection must be established.
- *
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_disconnect_rfcomm(int socket_fd);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Sends data to the connected device.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remark The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
- *
- * @param[in] socket_fd The file descriptor of connected socket which was received using bt_socket_connection_state_changed_cb()
- * @param[in] data The data to be sent
- * @param[in] length The length of data to be sent
- *
- * @return the number of bytes written (zero indicates nothing was written).
- * @retval On error, -1 is returned, and errno is set appropriately. See write 2 man page.
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @exception BT_ERROR_PERMISSION_DENIED Permission denied
- * @exception BT_ERROR_AGAIN Resource temporarily unavailable
- *
- * @pre The connection must be established.
- *
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_send_data(int socket_fd, const char *data, int length);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Register a callback function that will be invoked when you receive data.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_socket_data_received_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_socket_data_received_cb()
- * @see bt_socket_set_data_received_cb()
- * @see bt_socket_unset_data_received_cb()
- */
-int bt_socket_set_data_received_cb(bt_socket_data_received_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_socket_data_received_cb()
- * @see bt_socket_set_data_received_cb()
- */
-int bt_socket_unset_data_received_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Register a callback function that will be invoked when a RFCOMM connection is requested.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_socket_connection_requested_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_socket_unset_connection_requested_cb()
- */
-int bt_socket_set_connection_requested_cb(bt_socket_connection_requested_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_socket_set_connection_requested_cb()
- * @see bt_socket_connection_requested_cb()
- */
-int bt_socket_unset_connection_requested_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Register a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_socket_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_set_connection_state_changed_cb(bt_socket_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- */
-int bt_socket_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Initializes the Bluetooth OPP server requested by bt_opp_server_connection_requested_cb().
- * @since_tizen 2.3.1
- * @details No popup appears when an OPP connection is requested from a remote device.
- * Instead, @a connection_requested_cb() will be called.
- * At that time, you can call either bt_opp_server_accept() or bt_opp_server_reject().
- * @remarks This function must be called to start Bluetooth OPP server. \n
- * You must free all resources of the Bluetooth service by calling bt_opp_server_deinitialize() if Bluetooth OPP service is no longer needed.
- * @param[in] destination The destination path
- * @param[in] connection_requested_cb The callback called when an OPP connection is requested
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_connection_requested_cb()
- * @see bt_opp_server_deinitialize()
- * @see bt_opp_server_accept()
- * @see bt_opp_server_reject()
- */
-int bt_opp_server_initialize_by_connection_request(const char *destination, bt_opp_server_connection_requested_cb connection_requested_cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Deinitializes the Bluetooth OPP server.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_deinitialize()
- */
-int bt_opp_server_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Accepts the push request from the remote device.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks If you initialize OPP server by bt_opp_server_initialize_by_connection_request(), then name is ignored.
- * You can cancel the pushes by bt_opp_server_cancel_transfer() with transfer_id.
- * @param[in] progress_cb The callback called when a file is being transferred
- * @param[in] finished_cb The callback called when a transfer is finished
- * @param[in] name The name to store. This can be NULL if you initialize OPP server by bt_opp_server_initialize_by_connection_request().
- * @param[in] user_data The user data to be passed to the callback function
- * @param[out] transfer_id The ID of transfer
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_reject()
- */
-int bt_opp_server_accept(bt_opp_server_transfer_progress_cb progress_cb, bt_opp_server_transfer_finished_cb finished_cb, const char *name,
- void *user_data, int *transfer_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Rejects the push request from the remote device.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_accept()
- */
-int bt_opp_server_reject(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Cancels the transfer.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] transfer_id The ID of transfer
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_accept()
- */
-int bt_opp_server_cancel_transfer(int transfer_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Sets the destination path of file to be pushed.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] destination The destination path of file to be pushed
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_opp_server_set_destination(const char *destination);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Initializes the Bluetooth OPP client.
- * @since_tizen 2.3.1
- * @remarks This function must be called before Bluetooth OPP client starts. \n
- * You must free all resources of the Bluetooth service by calling bt_opp_client_deinitialize()
- * if Bluetooth OPP service is no longer needed.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_deinitialize()
- */
-int bt_opp_client_initialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Deinitializes the Bluetooth OPP client.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_initialize()
- */
-int bt_opp_client_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Adds file to be pushed.
- * @since_tizen 2.3.1
- * @param[in] file The path of file to be pushed
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_clear_files()
- * @see bt_opp_client_push_files()
- */
-int bt_opp_client_add_file(const char *file);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Adds file to be pushed.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_add_file()
- * @see bt_opp_client_push_files()
- */
-int bt_opp_client_clear_files(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Pushes the file to the remote device, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @details At first, bt_opp_client_push_responded_cb() will be called when OPP server responds to the push request.
- * After connection is established, bt_opp_client_push_progress_cb() will be called repeatedly until a file is transferred completely.
- * If you send several files, then bt_opp_client_push_progress_cb() with another file will be called repeatedly until the file is transferred completely.
- * bt_opp_client_push_finished_cb() will be called when the push request is finished.
- * @param[in] remote_address The remote address
- * @param[in] responded_cb The callback called when OPP server responds to the push request
- * @param[in] progress_cb The callback called when each file is being transferred
- * @param[in] finished_cb The callback called when the push request is finished
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_client_initialize()
- * @see bt_opp_client_cancel_push
- */
-int bt_opp_client_push_files(const char *remote_address, bt_opp_client_push_responded_cb responded_cb,
- bt_opp_client_push_progress_cb progress_cb, bt_opp_client_push_finished_cb finished_cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Cancels the push request in progress, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre bt_opp_client_push_files() must be called.
- * @post bt_opp_client_push_finished_cb() will be invoked with result #BT_ERROR_CANCELLED,
- * which is a parameter of bt_opp_client_push_files().
- * @see bt_opp_client_initialize()
- * @see bt_opp_client_push_files()
- */
-int bt_opp_client_cancel_push(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_HOST_MODULE
- * @brief Initializes the Bluetooth HID(Human Interface Device) Host.
- * @since_tizen 2.3.1
- * @remarks This function must be called before Bluetooth HID Host starts. \n
- * You must free all resources of the Bluetooth service by calling bt_hid_host_deinitialize()
- * if Bluetooth HID Host service is no longer needed.
- * @param[in] connection_cb The callback called when the connection state is changed
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_hid_host_deinitialize()
- */
-int bt_hid_host_initialize(bt_hid_host_connection_state_changed_cb connection_cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_HOST_MODULE
- * @brief Deinitializes the Bluetooth HID(Human Interface Device) Host.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth HID service must be initialized with bt_hid_host_initialize().
- * @see bt_hid_host_initialize()
- */
-int bt_hid_host_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_HOST_MODULE
- * @brief Connects the remote device with the HID(Human Interface Device) service, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @pre The Bluetooth HID service must be initialized with bt_hid_host_initialize().
- * @post bt_hid_host_connection_state_changed_cb() will be invoked.
- * @see bt_hid_host_disconnect()
- * @see bt_hid_host_connection_state_changed_cb()
- */
-int bt_hid_host_connect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_HOST_MODULE
- * @brief Disconnects the remote device with the HID(Human Interface Device) service, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected by bt_hid_host_connect().
- * @post bt_hid_host_connection_state_changed_cb() will be invoked.
- * @see bt_hid_host_connect()
- * @see bt_hid_host_connection_state_changed_cb()
- */
-int bt_hid_host_disconnect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Activates the Bluetooth HID Device role.
- * @since_tizen 3.0
- * @privlevel pubilc
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks This function must be called to register HID UUID.
- * Only then a remote device is able to identify this one as a HID device.
- *
- * @param[in] callback The callback called when the connection state is changed
- * @param[in] user_data The user data to be passed to the callback function
- * @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_NOW_IN_PROGRESS Already activated
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_hid_device_deactivate()
- */
-int bt_hid_device_activate(bt_hid_device_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Deactivates the Bluetooth HID Device role.
- * @since_tizen 3.0
- * @privlevel pubilc
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks This function must be called to deregister the HID UUID.
- *
- * @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_NOT_IN_PROGRESS Not activated
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_hid_device_activate()
- */
-int bt_hid_device_deactivate(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Initiates the HID device connection with the Device role, asynchronously.
- * @since_tizen 3.0
- * @privlevel pubilc
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks This function must be called to Initiate the HID device role connection.
- *
- * @param[in] remote_address The remote device's address.
-
- * @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_NOT_IN_PROGRESS Not activated
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_ALREADY_DONE Already connected
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @see bt_initialize()
- * @see bt_hid_device_activate()
- */
-int bt_hid_device_connect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Disconnects from the HID Host device, asynchronously.
- * @since_tizen 3.0
- * @privlevel pubilc
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The remote device's address.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_disconnect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Sends the mouse event data to the remote device.
- * @since_tizen 3.0
- * @privlevel pubilc
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The remote device's address.
- * @param[in] mouse_data The mouse data to be passed to the remote device.
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The HID connection must be established.
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_send_mouse_event(const char *remote_address,
- const bt_hid_mouse_data_s *mouse_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Sends the keyboard event data to the remote device.
- * @since_tizen 3.0
- * @privlevel pubilc
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The remote device's address.
- * @param[in] key_data The key data to be passed to the remote device
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The HID connection must be established.
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_send_key_event(const char *remote_address,
- const bt_hid_key_data_s *key_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Sets the callback called when the device receives data from the HID Host.
- * @since_tizen 3.0
- *
- * @param[in] callback The callback function to be set when data is received.
- * @param[in] user_data The user data to be passed to the callback.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_set_data_received_cb(bt_hid_device_data_received_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Unsets the data received callback.
- * @since_tizen 3.0
- *
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_unset_data_received_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Responds to reports from the HID Host.
- * @since_tizen 3.0
- * @privlevel pubilc
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] remote_address The remote device's address.
- * @param[in] header_type The response header type
- * @param[in] param_type The response parameter type
- * @param[in] data The response data
- * @param[in] data_len The length of the response data
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The HID connection must be established.
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_reply_to_report(const char *remote_address,
- bt_hid_header_type_e header_type,
- bt_hid_param_type_e param_type,
- const char *data, unsigned int data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Initializes the Bluetooth profiles related with audio.
- * @since_tizen 2.3.1
- * @remarks This function must be called before Bluetooth profiles related with audio starts. \n
- * You must free all resources of the this service by calling bt_audio_deinitialize()
- * if Bluetooth profiles related with audio service is no longer needed.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_audio_deinitialize()
- */
-int bt_audio_initialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Deinitializes the Bluetooth profiles related with audio.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- */
-int bt_audio_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Connects the remote device with the given audio profile, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @details If you input type as #BT_AUDIO_PROFILE_TYPE_ALL and connection request succeeds, then bt_audio_connection_state_changed_cb() will be called twice
- * when #BT_AUDIO_PROFILE_TYPE_HSP_HFP is connected and #BT_AUDIO_PROFILE_TYPE_A2DP is connected.
- * @param[in] remote_address The remote address
- * @param[in] type The type of audio profile
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
-
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @post bt_audio_connection_state_changed_cb() will be invoked.
- * @see bt_audio_disconnect()
- * @see bt_audio_connection_state_changed_cb()
- */
-int bt_audio_connect(const char *remote_address, bt_audio_profile_type_e type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Disconnects the remote device with the given audio profile, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @details If you input type as #BT_AUDIO_PROFILE_TYPE_ALL and disconnection request succeeds, then bt_audio_connection_state_changed_cb() will be called twice
- * when #BT_AUDIO_PROFILE_TYPE_HSP_HFP is disconnected and #BT_AUDIO_PROFILE_TYPE_A2DP is disconnected.
- * @param[in] remote_address The remote address
- * @param[in] type The type of audio profile
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected by bt_audio_connect().
- * @post bt_audio_connection_state_changed_cb() will be invoked.
- * @see bt_audio_connect()
- * @see bt_audio_connection_state_changed_cb()
- */
-int bt_audio_disconnect(const char *remote_address, bt_audio_profile_type_e type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Registers a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_audio_connection_state_changed_cb()
- */
-int bt_audio_set_connection_state_changed_cb(bt_audio_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_audio_connection_state_changed_cb()
- * @see bt_audio_set_connection_state_changed_cb()
- */
-int bt_audio_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Initializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) target service.
- * @since_tizen 3.0
- * @remarks This function must be called before any other AVRCP target functions are called. \n
- * You must free all resources of the this service by calling bt_avrcp_target_deinitialize()
- * if Bluetooth AVRCP service is no longer needed.
- * @param[in] callback The callback function called when the connection state is changed
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_avrcp_target_deinitialize()
- */
-int bt_avrcp_target_initialize(bt_avrcp_target_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Deinitializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) target service.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_avrcp_target_initialize().
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the equalizer state to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] state The state of equalizer
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_equalizer_state(bt_avrcp_equalizer_state_e state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the repeat mode to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The repeat mode
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_repeat_mode(bt_avrcp_repeat_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the shuffle mode to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The repeat mode
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_shuffle_mode(bt_avrcp_shuffle_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the scan mode to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The scan mode
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_scan_mode(bt_avrcp_scan_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the player state to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] state The player state
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_player_state(bt_avrcp_player_state_e state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the current position of song to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] position The current position in milliseconds
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_position(unsigned int position);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_TARGET_MODULE
- * @brief Notifies the track to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] title The title of track
- * @param[in] artist The artist of track
- * @param[in] album The album of track
- * @param[in] genre The genre of track
- * @param[in] track_num The track number
- * @param[in] total_tracks The number of all tracks
- * @param[in] duration The duration of track in milliseconds
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_target_notify_track(const char *title, const char *artist, const char *album, const char *genre, unsigned int track_num, unsigned int total_tracks, unsigned int duration);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the equalizer state is changed by the remote control device.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_equalizer_state_changed_cb()
- */
-int bt_avrcp_set_equalizer_state_changed_cb(bt_avrcp_equalizer_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the equalizer state is changed by the remote control device.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_equalizer_state_changed_cb()
- */
-int bt_avrcp_unset_equalizer_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the repeat mode is changed by the remote control device.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_repeat_mode_changed_cb()
- */
-int bt_avrcp_set_repeat_mode_changed_cb(bt_avrcp_repeat_mode_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the repeat mode is changed by the remote control device.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_repeat_mode_changed_cb()
- */
-int bt_avrcp_unset_repeat_mode_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the shuffle mode is changed by the remote control device.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_shuffle_mode_changed_cb()
- */
-int bt_avrcp_set_shuffle_mode_changed_cb(bt_avrcp_shuffle_mode_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the shuffle mode is changed by the remote control device.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_shuffle_mode_changed_cb()
- */
-int bt_avrcp_unset_shuffle_mode_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the scan mode is changed by the remote control device.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_scan_mode_changed_cb()
- */
-int bt_avrcp_set_scan_mode_changed_cb(bt_avrcp_scan_mode_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the scan mode is changed by the remote control device.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_scan_mode_changed_cb()
- */
-int bt_avrcp_unset_scan_mode_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the song position is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_position_changed_cb()
- */
-int bt_avrcp_set_position_changed_cb(bt_avrcp_position_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the song position is changed by the remote target device.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_position_changed_cb()
- */
-int bt_avrcp_unset_position_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the Play status is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_play_status_changed_cb()
- */
-int bt_avrcp_set_play_status_changed_cb(bt_avrcp_play_status_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the Play status is changed by the remote target device.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_play_status_changed_cb()
- */
-int bt_avrcp_unset_play_status_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Registers a callback function that will be invoked when the track metadata is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_unset_track_info_changed_cb()
- */
-int bt_avrcp_set_track_info_changed_cb(bt_avrcp_track_info_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Unregisters a callback function that will be invoked when the track metadata is changed by the remote target device.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The AVRCP service must be initialized with bt_avrcp_target_initialize() or bt_avrcp_control_initialize().
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_set_track_info_changed_cb()
- */
-int bt_avrcp_unset_track_info_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Initializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) controller service.
- * @since_tizen 3.0
- * @remarks This function must be called before any other AVRCP controller functions are called. \n
- * You must free all resources of the this service by calling bt_avrcp_control_deinitialize()
- * if Bluetooth AVRCP service is no longer needed.
- * @param[in] callback The callback function called when the connection state is changed
- * @param[in] user_data The user data to be passed to the callback function
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_avrcp_control_deinitialize()
- */
-int bt_avrcp_control_initialize(bt_avrcp_control_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Deinitializes the Bluetooth AVRCP (Audio/Video Remote Control Profile) controller service.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
- * @see bt_avrcp_control_initialize()
- */
-int bt_avrcp_control_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Connects the AVRCP (Audio/Video Remote Control Profile) target device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
- * @see bt_avrcp_control_initialize()
- */
-int bt_avrcp_control_connect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Disconnects from the AVRCP (Audio/Video Remote Control Profile) target device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_control_connect()
- */
-int bt_avrcp_control_disconnect(const char *remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends a command to the target device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] cmd The commands, one of: Play, Pause, Next, Rewind.
- * @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 Bluetooth audio service must be initialized with bt_avrcp_control_initialize().
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_control_connect()
- */
-int bt_avrcp_control_send_player_command(bt_avrcp_player_command_e cmd);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends the equalizer state change request to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] state The new equalizer state, one of: ON, OFF
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_set_equalizer_state(bt_avrcp_equalizer_state_e state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the the equalizer state of the remote device.
- * @since_tizen 3.0
- * @param[out] state The equalizer state, one of: ON, OFF
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_equalizer_state(bt_avrcp_equalizer_state_e *state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends the repeat change request to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] Mode The new repeat mode, one of: OFF, SINGLE, ALL
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_set_repeat_mode(bt_avrcp_repeat_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the repeat state of the remote device.
- * @since_tizen 3.0
- * @param[out] mode The repeat mode, one of: OFF, SINGLE, ALL
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_repeat_mode(bt_avrcp_repeat_mode_e *mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends the shuffle mode change request to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The new shuffle mode, one of: OFF, GROUP, ALL
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_set_shuffle_mode(bt_avrcp_shuffle_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the shuffle mode of the remote device.
- * @since_tizen 3.0
- * @param[out] mode The shuffle mode, one of: OFF, GROUP, ALL
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_shuffle_mode(bt_avrcp_shuffle_mode_e *mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Sends the scan mode change request to the remote device.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] mode The new scan mode, one of: OFF, GROUP, ALL
- * @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_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_set_scan_mode(bt_avrcp_scan_mode_e mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the scan mode of the remote device.
- * @since_tizen 3.0
- * @param[out] mode The scan mode, one of: OFF, GROUP, ALL
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_scan_mode(bt_avrcp_scan_mode_e *mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the position of the song played by the remote device.
- * @since_tizen 3.0
- * @param[out] position The position, in milliseconds
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_position(unsigned int *position);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the play status of the remote device.
- * @since_tizen 3.0
- * @param[out] status The play status, one of: PLAYING, STOPPED...
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_play_status(bt_avrcp_player_state_e *status);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Gets the metadata of the track played by the remote device.
- * @since_tizen 3.0
- * @remarks The @a track must be released using bt_avrcp_control_free_track_info()
- * @param[out] track The track metadata.
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_avrcp_target_connection_state_changed_cb()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_get_track_info(bt_avrcp_metadata_attributes_info_s **track);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_CONTROL_MODULE
- * @brief Frees the track metadata.
- * @since_tizen 3.0
- * @param[in] track The track metadata.
- * @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_SUPPORTED Not supported
- * @pre track should point to valid metadata address.
- * @see bt_avrcp_control_get_track_info()
- * @see bt_avrcp_target_initialize()
- */
-int bt_avrcp_control_free_track_info(bt_avrcp_metadata_attributes_info_s *track);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Registers an application that acts as the @a Sink role of HDP(Health Device Profile).
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @remarks The @a app_id must be released with free() by you.
- * @param[in] data_type The data type of MDEP. This value is defined in ISO/IEEE 11073-20601 spec.
- * For example, pulse oximeter is 0x1004 and blood pressure monitor is 0x1007.
- * @param[out] app_id The ID of application
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_hdp_unregister_sink_app()
- */
-int bt_hdp_register_sink_app(unsigned short data_type, char **app_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Unregisters the given application that acts as the @a Sink role of HDP(Health Device Profile).
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] app_id The ID of application
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_hdp_register_sink_app()
- */
-int bt_hdp_unregister_sink_app(const char *app_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Connects the remote device which acts as @a Source role, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @param[in] app_id The ID of application
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Sink role of HDP must be registered with bt_hdp_register_sink_app().
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @post bt_hdp_connected_cb() will be invoked.
- * @see bt_hdp_disconnect()
- * @see bt_hdp_set_connection_state_changed_cb()
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-int bt_hdp_connect_to_source(const char *remote_address, const char *app_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Disconnects the remote device, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @param[in] channel The connected data channel
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @post bt_hdp_disconnected_cb() will be invoked.
- * @see bt_hdp_set_connection_state_changed_cb()
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-int bt_hdp_disconnect(const char *remote_address, unsigned int channel);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Sends the data to the remote device.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] channel The connected data channel
- * @param[in] data The data to send
- * @param[in] size The size of data to send (byte)
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected.
- * @see bt_hdp_data_received_cb()
- * @see bt_hdp_set_data_received_cb()
- * @see bt_hdp_unset_data_received_cb()
- */
-int bt_hdp_send_data(unsigned int channel, const char *data, unsigned int size);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Registers a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3.1
- * @param[in] connected_cb The callback function called when a connection is established
- * @param[in] disconnected_cb The callback function called when a connection is disconnected
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-int bt_hdp_set_connection_state_changed_cb(bt_hdp_connected_cb connected_cb, bt_hdp_disconnected_cb disconnected_cb, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hdp_set_connection_state_changed_cb()
- */
-int bt_hdp_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Registers a callback function that will be invoked when you receive the data.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hdp_unset_data_received_cb()
- */
-int bt_hdp_set_data_received_cb(bt_hdp_data_received_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Unregisters a callback function that will be invoked when you receive the data.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hdp_set_data_received_cb()
- */
-int bt_hdp_unset_data_received_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the value of a characteristic or descriptor's GATT handle.
- * @since_tizen 2.3.1
- *
- * @remarks @a value must be released using free(). \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_read_value() must be used prior to this function \n
- * in order to get the remote device's current value.
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[out] value The value of @a gatt_handle. It is a byte stream type.
- * @param[out] value_length The length of @a value
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_value(bt_gatt_h gatt_handle, char **value, int *value_length);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the value of a characteristic or descriptor's GATT handle as an integer type.
- * @since_tizen 2.3.1
- *
- * @remarks This function returns a locally saved value in @a gatt_handle. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_read_value() must be used prior to this function \n
- * in order to get the remote device's current value.
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] type The type of a saved value in @a gatt_handle
- * @param[in] offset The offset from where a value will be read from @a gatt_handle as an integer type
- * @param[out] value The integer type's value of @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_int_value(bt_gatt_h gatt_handle, bt_data_type_int_e type,
- int offset, int *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the value of a characteristic or descriptor's GATT handle as a float type.
- * @since_tizen 2.3.1
- *
- * @remarks This function returns a locally saved value in @a gatt_handle. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_read_value() must be used prior to this function \n
- * in order to get the remote device's current value.
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] type The type of a saved value in @a gatt_handle
- * @param[in] offset The offset from where a value will be read from @a gatt_handle as an integer type
- * @param[out] value The float type's value of @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_float_value(bt_gatt_h gatt_handle, bt_data_type_float_e type,
- int offset, float *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Updates the value of a characteristic or descriptor's GATT handle.
- * @since_tizen 2.3.1
- *
- * @remarks This function updates a value of @a gatt_handle locally. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_write_value() can be used after this function \n
- * in order to update the remote device's value. \n
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] value The value to be updated
- * @param[in] value_length The length of @a value
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_set_value(bt_gatt_h gatt_handle, const char *value, int value_length);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Updates the value of a characteristic or descriptor's GATT handle using a integer type's value.
- * @since_tizen 2.3.1
- *
- * @remarks This function updates a value of @a gatt_handle locally. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_write_value() can be used after this function \n
- * in order to update the remote device's value. \n
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] type @a value will be saved in @a gatt_handle as this type
- * @param[in] value The integer type's value to be updated
- * @param[in] offset The offset from where @a value will be saved in @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_set_int_value(bt_gatt_h gatt_handle, bt_data_type_int_e type,
- int value, int offset);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Updates the value of a characteristic or descriptor's GATT handle using a float type's value.
- * @since_tizen 2.3.1
- *
- * @remarks This function updates a value of @a gatt_handle locally. \n
- * When @a gatt_handle is associated with bt_gatt_client_h, bt_gatt_client_write_value() can be used after this function \n
- * in order to update the remote device's value. \n
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] type @a mantissa and @a exponent will be saved in @a gatt_handle as this type
- * @param[in] mantissa The mantissa of float type's value to be updated
- * @param[in] exponent The exponent of float type's value to be updated
- * @param[in] offset The offset from where @a mantissa and @a exponent will be saved in @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_set_float_value(bt_gatt_h gatt_handle, bt_data_type_float_e type,
- int mantissa, int exponent, int offset);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the UUID of a service, characteristic or descriptor's GATT handle.
- * @since_tizen 2.3.1
- *
- * @remarks @a uuid must be released using free(). \n
- * 16-bit UUID or 128-bit UUID is supported. (e.g. 2A19, 00002A19-0000-1000-8000-00805F9B34FB)
- *
- * @param[in] gatt_handle The handle of a service, characteristic or descriptor
- * @param[out] uuid The string of the UUID of @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_uuid(bt_gatt_h gatt_handle, char **uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the type of GATT handle.
- * @since_tizen 2.3.1
- *
- * @param[in] gatt_handle The GATT handle
- * @param[out] gatt_type The type of @a gatt_handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_get_type(bt_gatt_h gatt_handle, bt_gatt_type_e *gatt_type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the GATT client handle which the specified service belongs to.
- * @since_tizen 2.3.1
- *
- * @remark This function doesn't allocate new memory for GATT client handle.
- * The returned GATT client handle is the same one which was got from bt_gatt_client_create().
- * So if it is destroyed by bt_gatt_client_destroy(), all related GATT handles are freed also.
- *
- * @param[in] service The service's GATT handle
- * @param[out] client The GATT client handle which @a service belongs to
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- */
-int bt_gatt_service_get_client(bt_gatt_h service, bt_gatt_client_h *client);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets a characteristic's GATT handle which has specific UUID.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- * If there are multiple characteristics which have same UUID, only the first matched one will be returned.
- *
- * @param[in] service The service's GATT handle
- * @param[in] uuid The characteristic's GATT handle which has this UUID will be returned if it exists
- * @param[out] characteristic The characteristic's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_service_get_characteristic(bt_gatt_h service, const char *uuid,
- bt_gatt_h *characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Invokes @a callback function on each characteristic that belongs to the specified service.
- * @since_tizen 2.3.1
- *
- * @param[in] service The service's GATT handle
- * @param[in] callback The function to be invoked on each characteristic
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_service_foreach_characteristics(bt_gatt_h service,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets an included service's GATT handle which has specific UUID.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- * If there are multiple included services which have same UUID, only the first matched one will be returned.
- *
- * @param[in] service The service's GATT handle
- * @param[in] uuid The included service's GATT handle which has this UUID will be returned if it exists
- * @param[out] included_service The included service's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_service_get_included_service(bt_gatt_h service, const char *uuid,
- bt_gatt_h *included_service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Invokes @a callback function on each included service that belongs to the specified service.
- * @since_tizen 2.3.1
- *
- * @param[in] service The service's GATT handle
- * @param[in] callback The function to be invoked on each included service
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_service_foreach_included_services(bt_gatt_h service,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the service's GATT handle which the specified characteristic belongs to.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[out] service The service's GATT handle which @a characteristic belongs to
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_characteristic_get_service(bt_gatt_h characteristic, bt_gatt_h *service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the properties which a characteristic's GATT handle has.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[out] properties The properties which a characteristic's GATT handle has
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_property_e
- */
-int bt_gatt_characteristic_get_properties(bt_gatt_h characteristic, int *properties);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the write type of the specified characteristic.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[out] write_type The write type of the specified characteristic
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_write_type_e
- */
-int bt_gatt_characteristic_get_write_type(bt_gatt_h characteristic,
- bt_gatt_write_type_e *write_type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Updates the write type of the specified characteristic.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] write_type The write type to be updated
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_write_value()
- * @see bt_gatt_write_type_e
- */
-int bt_gatt_characteristic_set_write_type(bt_gatt_h characteristic,
- bt_gatt_write_type_e write_type);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets a descriptor's GATT handle which has specific UUID.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- * If there are multiple descriptors which have same UUID, only the first matched one will be returned.
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] uuid The descriptor's GATT handle which has this UUID will be returned if it exists
- * @param[out] descriptor The descriptor's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_characteristic_get_descriptor(bt_gatt_h characteristic, const char *uuid,
- bt_gatt_h *descriptor);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Invokes @a callback function on each descriptor that belongs to the specified characteristic.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] callback The function to be invoked on each descriptor
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_characteristic_foreach_descriptors(bt_gatt_h characteristic,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the characteristic's GATT handle which the specified descriptor belongs to.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- *
- * @param[in] descriptor The descriptor's GATT handle
- * @param[out] characteristic The characteristic's GATT handle which @a descriptor belongs to
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_descriptor_get_characteristic(bt_gatt_h descriptor, bt_gatt_h *characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Creates the GATT client handle.
- * @since_tizen 2.3.1
- *
- * @remark The GATT client handle must be freed by bt_gatt_client_destroy() after use
- *
- * @param[in] remote_address The address of the remote device
- * @param[out] client The created GATT client's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_destroy()
- */
-int bt_gatt_client_create(const char *remote_address, bt_gatt_client_h *client);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Destroys the GATT client's handle.
- * @since_tizen 2.3.1
- *
- * @remark All related service, characteristic and descriptor's GATT handles are freed also
- *
- * @param[in] client The GATT client's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- */
-int bt_gatt_client_destroy(bt_gatt_client_h client);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the address of remote device.
- * @since_tizen 2.3.1
- *
- * @param[in] client The created GATT client's handle
- * @param[out] remote_address The address of the remote device which is associated with @a client
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- */
-int bt_gatt_client_get_remote_address(bt_gatt_client_h client,
- char **remote_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Reads the value of a characteristic or descriptor from the remote device asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
- * @param[in] callback When a read request is completed, this callback function will be called
- * @param[in] user_data The user data to be passed to @a callback function
- * @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_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- * @see bt_gatt_client_request_completed_cb()
- */
-int bt_gatt_client_read_value(bt_gatt_h gatt_handle,
- bt_gatt_client_request_completed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Writes the value of a characteristic or descriptor to the remote device asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
- * @param[in] callback When a write request is completed, this callback function will be called
- * @param[in] user_data The user data to be passed to @a callback function
- * @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_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_create()
- * @see bt_gatt_characteristic_set_write_type()
- * @see bt_gatt_set_value()
- * @see bt_gatt_set_int_value()
- * @see bt_gatt_set_float_value()
- * @see bt_gatt_client_request_completed_cb()
- */
-int bt_gatt_client_write_value(bt_gatt_h gatt_handle,
- bt_gatt_client_request_completed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Registers a callback function to be invoked when the characteristic value is changed on the remote device.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] callback The callback to be invoked when the value is changed and it is informed
- * @param[in] user_data The user data to be passed to @a callback function
- * @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_SUPPORTED Not supported
- *
- * @see bt_gatt_client_characteristic_value_changed_cb()
- * @see bt_gatt_client_unset_characteristic_value_change()
- */
-int bt_gatt_client_set_characteristic_value_changed_cb(bt_gatt_h characteristic,
- bt_gatt_client_characteristic_value_changed_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Unregisters a callback function to be invoked when the characteristic value is changed on the remote device.
- * @since_tizen 2.3.1
- *
- * @param[in] characteristic The characteristic's GATT handle, whose value change will not be informed
- * @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_SUPPORTED Not supported
- *
- * @see bt_gatt_client_set_characteristic_value_changed_cb()
- */
-int bt_gatt_client_unset_characteristic_value_changed_cb(bt_gatt_h characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets a service's GATT handle which has specific UUID.
- * @since_tizen 2.3.1
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated client is destroyed by bt_gatt_client_destroy().
- * If there are multiple services which have same UUID, only the first matched one will be returned.
- *
- * @param[in] client The GATT client's handle
- * @param[in] uuid The service's GATT handle which has this UUID will be returned if it exists
- * @param[out] service The service's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_client_get_service(bt_gatt_client_h client, const char *uuid,
- bt_gatt_h *service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Invokes @a callback function on each service that belongs to the specified GATT client.
- * @since_tizen 2.3.1
- *
- * @param[in] client The GATT client's handle
- * @param[in] callback The function to be invoked on each service
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_client_foreach_services(bt_gatt_client_h client,
- bt_gatt_foreach_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Registers a callback function to be invoked when service is changed from a remote device(GATT server).
- * @since_tizen 3.0
- *
- * @param[in] client The GATT client's handle
- * @param[in] callback The callback to be invoked
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_unset_service_changed_cb()
- */
-int bt_gatt_client_set_service_changed_cb(bt_gatt_client_h client,
- bt_gatt_client_service_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Unregisters a callback function
- * @since_tizen 3.0
- *
- * @param[in] client The GATT client's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_client_set_service_changed_cb()
- */
-int bt_gatt_client_unset_service_changed_cb(bt_gatt_client_h client);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Connect to a specific LE based service on a remote bluetooth device address, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks A connection can be disconnected by bt_gatt_disconnect().
- *
- * @param[in] address The address of the remote Bluetooth device.
- * @param[in] auto_connect The flag of the auto connection.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @pre The remote device must support le connection.
- * @post This function invokes bt_gatt_connection_state_changed_cb().
- *
- * @see bt_initialize()
- * @see bt_gatt_disconnect()
- * @see bt_gatt_set_connection_state_changed_cb()
- * @see bt_gatt_unset_connection_state_changed_cb()
- * @see bt_gatt_connection_state_changed_cb()
- */
-int bt_gatt_connect(const char *address, bool auto_connect);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Disconnect to LE connection with the given remote Bluetooth device address, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] address The address of the remote Bluetooth device
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The connection must be established.
- * @post This function invokes bt_gatt_connection_state_changed_cb().
- *
- * @see bt_initialize()
- * @see bt_gatt_connect()
- * @see bt_gatt_set_connection_state_changed_cb()
- * @see bt_gatt_unset_connection_state_changed_cb()
- * @see bt_gatt_connection_state_changed_cb()
- */
-int bt_gatt_disconnect(const char *address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Registers a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3.1
- *
- * @param[in] callback The callback function to register.
- * @param[in] user_data The user data to be passed to the callback function.
- *
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_connect()
- * @see bt_gatt_disconnect()
- * @see bt_gatt_unset_connection_state_changed_cb()
- */
-int bt_gatt_set_connection_state_changed_cb(bt_gatt_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state is changed.
- * @since_tizen 2.3.1
- *
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_connect()
- * @see bt_gatt_disconnect()
- * @see bt_gatt_connection_state_changed_cb()
- */
-int bt_gatt_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Destroys the GATT handle of service.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The handle of service
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_create()
- */
-int bt_gatt_service_destroy(bt_gatt_h gatt_handle);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Destroys the GATT handle of characteristic.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The handle of characteristic
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_create()
- */
-int bt_gatt_characteristic_destroy(bt_gatt_h gatt_handle);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Destroys the GATT handle of descriptor.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The handle of descriptor
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_descriptor_create()
- */
-int bt_gatt_descriptor_destroy(bt_gatt_h gatt_handle);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Gets the permissions which a characteristic's GATT handle has.
- * @since_tizen 3.0
- *
- * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
- *
- * @param[in] gatt_handle The handle of a characteristic
- * @param[out] permissions The permissions which a characteristic's GATT handle has
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_create()
- * @see bt_gatt_permission_e
- */
-int bt_gatt_characteristic_get_permissions(bt_gatt_h gatt_handle, int *permissions);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Gets the permissions which a descriptor's GATT handle has.
- * @since_tizen 3.0
- *
- * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
- *
- * @param[in] gatt_handle The handle of a descriptor
- * @param[out] permissions The permissions which a descriptor's GATT handle has
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_descriptor_create()
- * @see bt_gatt_permission_e
- */
-int bt_gatt_descriptor_get_permissions(bt_gatt_h gatt_handle, int *permissions);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Creates the GATT service.
- * @since_tizen 3.0
- *
- * @remarks The @a service should be destroyed by using bt_gatt_service_destroy()
- *
- * @param[in] uuid The UUID of the service
- * @param[in] type The type of the service
- * @param[out] service The GATT handle of the created service
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_destroy()
- */
-int bt_gatt_service_create(const char *uuid, bt_gatt_service_type_e type,
- bt_gatt_h *service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Adds a characteristic to a specified service.
- * @since_tizen 3.0
- *
- * @param[in] service The service's GATT handle
- * @param[in] characteristic The characteristic's GATT handle to be added
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_create()
- * @see bt_gatt_characteristic_create()
- */
-int bt_gatt_service_add_characteristic(bt_gatt_h service,
- bt_gatt_h characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Adds a service to a specified service as included service.
- * @since_tizen 3.0
- *
- * @param[in] service The service's GATT handle
- * @param[in] included_service The service's GATT handle to be added as included service
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_create()
- */
-int bt_gatt_service_add_included_service(bt_gatt_h service,
- bt_gatt_h included_service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Gets the GATT server handle to which the specified service belongs.
- * @since_tizen 3.0
- *
- * @remarks The returned Server handle must not be freed by application.
- *
- * @param[in] service The service's GATT handle
- * @param[out] server The GATT server handle to which @a service belongs
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_create()
- * @see bt_gatt_service_create()
- * @see bt_gatt_server_register_service()
- */
-int bt_gatt_service_get_server(bt_gatt_h service, bt_gatt_server_h *server);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Creates the GATT characteristic.
- * @since_tizen 3.0
- *
- * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
- * @remarks The @a properties can be one or more values of #bt_gatt_property_e, combined with bitwise 'or'.
- * @remarks The @a characteristic should be destroyed by using bt_gatt_characteristic_destroy().
- *
- * @param[in] uuid The UUID of the characteristic
- * @param[in] permissions the permissions of the characteristic
- * @param[in] properties The properties of the characteristic
- * @param[in] value The value(byte stream) of the characteristic
- * @param[in] value_length The length of @a value
- * @param[out] characteristic The GATT handle of the created characteristic
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_destroy()
- */
-int bt_gatt_characteristic_create(const char *uuid, int permissions,
- int properties, const char *value, int value_length,
- bt_gatt_h *characteristic);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Adds a descriptor to a specified characteristic.
- * @since_tizen 3.0
- *
- * @param[in] characteristic The GATT handle of the characteristic
- * @param[in] descriptor The descriptor's GATT handle to be added
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_create()
- * @see bt_gatt_descriptor_create()
- */
-int bt_gatt_characteristic_add_descriptor(bt_gatt_h characteristic,
- bt_gatt_h descriptor);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Creates the GATT characteristic descriptor.
- * @since_tizen 3.0
- *
- * @remarks The @a permissions can be one or more values of #bt_gatt_permission_e, combined with bitwise 'or'.
- * @remarks The @a descriptor should be destroyed by using bt_gatt_descriptor_destroy().
- *
- * @param[in] uuid The UUID of the descriptor
- * @param[in] permissions The permissions of the descriptor
- * @param[in] value The value(byte stream) associated with the descriptor
- * @param[in] value_length The length of @a value
- * @param[out] descriptor The GATT handle of the created characteristic descriptor
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_descriptor_destroy()
- */
-int bt_gatt_descriptor_create(const char *uuid, int permissions,
- const char *value, int value_length,
- bt_gatt_h *descriptor);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Initializes the GATT Server.
- * @since_tizen 3.0
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_server_deinitialize()
- */
-int bt_gatt_server_initialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief DeInitializes the GATT server.
- * @since_tizen 3.0
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @see bt_gatt_server_initialize()
- */
-int bt_gatt_server_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Creates the GATT server's handle.
- * @since_tizen 3.0
- *
- * @param[out] server The GATT server's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_destroy()
- */
-int bt_gatt_server_create(bt_gatt_server_h *server);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Destroys the GATT server's handle.
- * @since_tizen 3.0
- *
- * @remarks All registered services to GATT server are unregistered
- *
- * @param[in] server The GATT server's handle
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_create()
- */
-int bt_gatt_server_destroy(bt_gatt_server_h server);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers a callback function to be invoked when a read request for a specified characteristic or descriptor is issued from a remote device(GATT client).
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
- * @param[in] callback The callback to be invoked
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_read_value_requested_cb()
- * @see bt_gatt_server_send_response()
- */
-int bt_gatt_server_set_read_value_requested_cb(bt_gatt_h gatt_handle,
- bt_gatt_server_read_value_requested_cb callback,
- void *user_data);
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers a callback function to be invoked when the remote device enables or disables the Notification/Indication for particular characteristics.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The GATT handle of a characteristic
- * @param[in] callback The callback to be invoked
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_characteristic_notification_state_changed_cb()
- */
-int bt_gatt_server_set_characteristic_notification_state_change_cb(bt_gatt_h gatt_handle,
- bt_gatt_server_characteristic_notification_state_changed_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers a callback function to be invoked when a value of a characteristic or descriptor has been changed by a remote device(GATT client)'s request.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The GATT handle of a characteristic or descriptor
- * @param[in] callback The callback to be invoked
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_write_value_requested_cb()
- */
-int bt_gatt_server_set_write_value_requested_cb(bt_gatt_h gatt_handle,
- bt_gatt_server_write_value_requested_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers a specified service to the specified GATT server that the local device is hosting.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] server The GATT server that local device is hosting
- * @param[in] service The service, which needs to be registered in @a server
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_create()
- * @see bt_gatt_service_create()
- * @see bt_gatt_server_start()
- * @see bt_gatt_server_unregister_service()
- */
-int bt_gatt_server_register_service(bt_gatt_server_h server, bt_gatt_h service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Unregisters a specified service from the specified GATT server that the local device is hosting.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] server The GATT server that local device is hosting
- * @param[in] service The service, which needs to be unregistered from @a server
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_SERVICE_NOT_FOUND Service not found
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_register_service()
- */
-int bt_gatt_server_unregister_service(bt_gatt_server_h server, bt_gatt_h service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Unregisters all services from the specified GATT server that the local device is hosting.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] server The GATT server that local device is hosting
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_register_service()
- */
-int bt_gatt_server_unregister_all_services(bt_gatt_server_h server);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Registers the application along with the GATT services of the application it is hosting.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_initialize()
- * @see bt_gatt_server_create()
- * @see bt_gatt_service_create()
- * @see bt_gatt_server_unregister_service()
- */
-int bt_gatt_server_start(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Sends a response to the remote device as a result of a read/write request.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @remarks Until this function is called, a read/write request is not finished.
- *
- * @param[in] request_id The identification of a read/write request
- * @param[in] request_type The request type for read/write
- * @param[in] offset The offset from where a value is read
- * @param[in] resp_status The application error if any occurred or BT_ERROR_NONE for successful.
- * @param[in] value The value to be sent. It will be sent from @a offset. If it is NULL, a requested GATT handle's value will be sent from @a offset.
- * @param[in] value_length Value Length
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_read_value_requested_cb()
- */
-int bt_gatt_server_send_response(int request_id, bt_gatt_att_request_type_e request_type,
- int offset, int resp_status, char *value, int value_length);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Notifies value change of the characteristic to the remote devices which enable a Client Characteristic Configuration Descriptor.
- * @since_tizen 3.0
- *
- * @param[in] characteristic The characteristic which has a changed value
- * @param[in] callback The function to be invoked on each remote device when a sending operation is done
- * @param[in] device_address Remote device address to send notify or indicate and if set to NULL then notify/indicate all is enabled.
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_server_notification_sent_cb()
- */
-int bt_gatt_server_notify_characteristic_changed_value(bt_gatt_h characteristic,
- bt_gatt_server_notification_sent_cb callback,
- const char *device_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Gets a service's GATT handle which has specific UUID.
- * @since_tizen 3.0
- *
- * @remark The returned GATT handle must not be freed by application.
- * It will be freed when an associated server is destroyed by bt_gatt_server_destroy().
- * If there are multiple services which have same UUID, only the first matched one will be returned.
- *
- * @param[in] server The GATT server's handle
- * @param[in] uuid The service's GATT handle which has this UUID will be returned if it exists
- * @param[out] service The service's GATT handle which has @a uuid if it exists
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NO_DATA No data available
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_gatt_server_get_service(bt_gatt_server_h server, const char *uuid,
- bt_gatt_h *service);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Invokes @a callback function on each service that belongs to the specified GATT server.
- * @since_tizen 3.0
- *
- * @param[in] server The GATT server's handle
- * @param[in] callback The function to be invoked on each service
- * @param[in] user_data The user data to be passed to @a callback function
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_foreach_cb()
- */
-int bt_gatt_server_foreach_services(bt_gatt_server_h server,
- bt_gatt_foreach_cb callback, void *user_data);
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Initializes the Bluetooth PBAP Client.
- * @details This initialization is necessary to call other PBAP client APIs.
- * @since_tizen 3.0
- *
- * @remarks This function must be called to initialize Bluetooth PBAP client. You must free all resources of the Bluetooth service
- * by calling bt_pbap_client_deinitialize() if Bluetooth PBAP Client is no longer needed.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_pbap_client_deinitialize()
- * @see bt_pbap_client_connect()
- * @see bt_pbap_client_disconnect()
- * @see bt_pbap_client_get_phone_book_size()
- * @see bt_pbap_client_get_phone_book()
- * @see bt_pbap_client_get_list()
- * @see bt_pbap_client_pull_vcard()
- * @see bt_pbap_client_search_phone_book()
- */
-int bt_pbap_client_initialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Deinitializes the Bluetooth PBAP Client.
- * @details This deinitialization must be done to free resources when the PBAP client is not longer needed.
- * @since_tizen 3.0
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
- * The PBAP client must be initialized with bt_pbap_client_initialize().
- * @see bt_pbap_client_deinitialize()
- * @see bt_pbap_client_connect()
- * @see bt_pbap_client_disconnect()
- * @see bt_pbap_client_get_phone_book_size()
- * @see bt_pbap_client_get_phone_book()
- * @see bt_pbap_client_get_list()
- * @see bt_pbap_client_pull_vcard()
- * @see bt_pbap_client_search_phone_book()
- */
-int bt_pbap_client_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Registers a callback function that will be invoked when the connection state is changed.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
- * @see bt_pbap_client_initialize()
- */
-int bt_pbap_client_set_connection_state_changed_cb(bt_pbap_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state is changed.
- * @since_tizen 3.0
- * @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_SUPPORTED Not supported
- *
- * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
- * @see bt_pbap_client_initialize()
- */
-int bt_pbap_client_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Connects to PBAP server, asynchronously.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege http://tizen.org/privilege/bluetooth
- *
- * @param[in] address The other device's address
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
- * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @post bt_pbap_connection_state_changed_cb() will be invoked.
- * @see bt_pbap_client_disconnect()
- * @see bt_pbap_client_set_connection_state_changed_cb()
- */
-int bt_pbap_client_connect(const char *address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Disconnects from PBAP server, asynchronously.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege http://tizen.org/privilege/bluetooth
- *
- * @param[in] address The other device's address
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
- * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
- * @pre PBAP connection must be created with bt_pbap_client_connect().
- * @post bt_pbap_connection_state_changed_cb() will be invoked.
- * @see bt_pbap_client_connect()
- * @see bt_pbap_client_set_connection_state_changed_cb()
- */
-int bt_pbap_client_disconnect(const char *address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Gets size of phone book from PBAP server, asynchronously.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege http://tizen.org/privilege/bluetooth
- *
- * @param[in] address The other device's address
- * @param[in] source Source of the phone book (Phone/SIM)
- * @param[in] folder_type Type of folder
- * @param[in] callback The callback function called when PBAP phone book size is returned.
- * @param[in] user_data Data to be passed to the PBAP phone book size callback.
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
- * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
- * @pre PBAP connection must be created with bt_pbap_client_connect().
- *
- * @see bt_pbap_client_connect()
- */
-int bt_pbap_client_get_phone_book_size(const char *address,
- bt_pbap_address_book_source_e source,
- bt_pbap_folder_type_e folder_type,
- bt_pbap_phone_book_size_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Gets all contacts and call logs as vCard from PBAP server, asynchronously.
- * @details The received phone book file will be saved in the platform downloads folder.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege http://tizen.org/privilege/bluetooth
- * http://tizen.org/privilege/mediastorage
- *
- * @param[in] address The other device's address
- * @param[in] source Source of phone book (Phone/SIM)
- * @param[in] folder_type Type of folder
- * @param[in] format The vCard format
- * @param[in] order Specifies which field shall be used to sort vCards.
- * @param[in] offset The number of vCards to be excluded, counting from the beginning
- * @param[in] max_list_count The maximum number of vCards to be fetched
- * @param[in] fields vCard fields to be fetched; one or more #bt_pbap_field_e values combined with bitwise 'or'
- * @param[in] callback The callback function called when PBAP phone book is Pulled.
- * @param[in] user_data Data to be passed to the PBAP phone book pulling callback.
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
- * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
- * @pre PBAP connection must be created with bt_pbap_client_connect().
- *
- * @see bt_pbap_client_connect()
- */
-int bt_pbap_client_get_phone_book(const char *address,
- bt_pbap_address_book_source_e source,
- bt_pbap_folder_type_e folder_type,
- bt_pbap_vcard_format_e format,
- bt_pbap_sort_order_e order,
- unsigned short offset,
- unsigned short max_list_count,
- unsigned int fields,
- bt_pbap_phone_book_received_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Gets contact and call log information from the PBAP server, asynchronously.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege http://tizen.org/privilege/bluetooth
- *
- * @param[in] address The other device's address
- * @param[in] source Source of phone book (Phone/SIM)
- * @param[in] folder_type Type of folder
- * @param[in] order Specifies which field shall be used to sort vCards.
- * @param[in] offset vCards to be excluded from beginning.
- * @param[in] max_list_count Maximum number of vCards to be fetched
- * @param[in] callback The callback function called when PBAP List is returned.
- * @param[in] user_data Data to be passed to the PBAP phone book pulling callback.
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
- * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
- * @pre PBAP connection must be created with bt_pbap_client_connect().
- *
- * @see bt_pbap_client_connect()
- */
-int bt_pbap_client_get_list(const char *address,
- bt_pbap_address_book_source_e source,
- bt_pbap_folder_type_e folder_type,
- bt_pbap_sort_order_e order,
- unsigned short offset,
- unsigned short max_list_count,
- bt_pbap_list_vcards_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Gets the selected contact using the index parameter as vCard from PBAP server, asynchronously.
- * @details The received phone book file will be saved in the platform downloads folder.
- * The @a index value should be equal to the value of the @a index field in the #bt_pbap_vcard_info_s structure,
- * which can be obtained with bt_pbap_client_get_list() or bt_pbap_client_search_phone_book().
- * @since_tizen 3.0
- * @privlevel public
- * @privilege http://tizen.org/privilege/bluetooth
- * http://tizen.org/privilege/mediastorage
- *
- * @param[in] address The other device's address
- * @param[in] source Source of phone book (Phone/SIM)
- * @param[in] folder_type Type of folder
- * @param[in] index The handle index of vCard to be fetched
- * @param[in] format Format of vCard
- * @param[in] fields vCard fields to be fetched; one or more #bt_pbap_field_e values combined with bitwise 'or'
- * @param[in] callback The callback function called when PBAP phone book is Pulled.
- * @param[in] user_data Data to be passed to the PBAP phone book Pulling callback.
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
- * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
- * @pre PBAP connection must be created with bt_pbap_client_connect().
- * @pre The vCard information (#bt_pbap_vcard_info_s) must be obtained with bt_pbap_client_get_list() or bt_pbap_client_search_phone_book().
- * @see bt_pbap_client_connect()
- * @see bt_pbap_client_get_list()
- * @see bt_pbap_client_search_phone_book()
- */
-int bt_pbap_client_pull_vcard(const char *address,
- bt_pbap_address_book_source_e source,
- bt_pbap_folder_type_e folder_type,
- int index,
- bt_pbap_vcard_format_e format,
- unsigned int fields,
- bt_pbap_phone_book_received_cb callback,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Finds and fetches the contact and call log information from the PBAP server, asynchronously.
- * @since_tizen 3.0
- * @privlevel public
- * @privilege http://tizen.org/privilege/bluetooth
- *
- * @param[in] address The other device's address
- * @param[in] source Source of phone book (Phone/SIM)
- * @param[in] folder_type Type of folder
- * @param[in] search_attribute field to be search
- * @param[in] search_value pattern to be searched for
- * @param[in] order Specifies which field shall be used to sort vCards.
- * @param[in] offset vCards to be excluded from beginning.
- * @param[in] max_list_count Maximum number of vCards to be fetched
- * @param[in] callback The callback function called when PBAP List is returned.
- * @param[in] user_data Data to be passed to the PBAP phone book pulling callback.
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of the local Bluetooth adapter must be #BT_ADAPTER_ENABLED.
- * @pre The PBAP client must be initialized with bt_pbap_client_initialize().
- * @pre PBAP connection must be created with bt_pbap_client_connect().
- *
- * @see bt_pbap_client_connect()
- */
-int bt_pbap_client_search_phone_book(const char *address,
- bt_pbap_address_book_source_e source,
- bt_pbap_folder_type_e folder_type,
- bt_pbap_search_field_e search_attribute,
- const char *search_value,
- bt_pbap_sort_order_e order,
- unsigned short offset,
- unsigned short max_list_count,
- bt_pbap_list_vcards_cb callback,
- void *user_data);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_EXTENSION_H__
-#define __TIZEN_NETWORK_BLUETOOTH_EXTENSION_H__
-
-#include "bluetooth_type.h"
-#include "bluetooth_type_extension.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_extension.h
- */
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Opens a SCO(Synchronous Connection Oriented link) to connected remote device, asynchronously.
- * @since_tizen 2.3
- * @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_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @post bt_ag_sco_state_changed_cb() will be invoked.
- * @see bt_ag_close_sco()
- * @see bt_ag_sco_state_changed_cb()
- * @see bt_audio_connect()
- */
-int bt_ag_open_sco(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Closes an opened SCO(Synchronous Connection Oriented link), asynchronously.
- * @since_tizen 2.3
- * @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_NOT_ENABLED Not enabled
- * @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 SCO must be opened with bt_ag_open_sco().
- * @post bt_ag_sco_state_changed_cb() will be invoked.
- * @see bt_ag_open_sco()
- * @see bt_ag_sco_state_changed_cb()
- */
-int bt_ag_close_sco(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Checks whether an opened SCO(Synchronous Connection Oriented link) exists or not.
- * @since_tizen 2.3
- * @param[out] opened The SCO status: (@c true = opened, @c false = not opened)
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_ag_open_sco()
- * @see bt_ag_close_sco()
- */
-int bt_ag_is_sco_opened(bool *opened);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when the SCO(Synchronous Connection Oriented link) state is changed.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_sco_state_changed_cb()
- * @see bt_ag_unset_sco_state_changed_cb()
- */
-int bt_ag_set_sco_state_changed_cb(bt_ag_sco_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when the SCO(Synchronous Connection Oriented link) state is changed.
- * @since_tizen 2.3
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_sco_state_changed_cb()
- * @see bt_ag_set_sco_state_changed_cb()
- */
-int bt_ag_unset_sco_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the state of voice recognition.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] state The state of voice recognition: (@c true = enabled, @c false = disabled)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_ag_notify_voice_recognition_state(bool state);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the speaker gain to the remote device.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @details This function sends a signal to the remote device. This signal has the gain value.
- * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
- * When the speaker gain of remote device is changed to the requested gain, bt_audio_speaker_gain_changed_cb() will be called.
- * @param[in] gain The gain of speaker (0 ~ 15)
- * @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 is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_ag_get_speaker_gain()
- * @see bt_ag_set_speaker_gain_changed_cb()
- * @see bt_ag_unset_speaker_gain_changed_cb()
- */
-int bt_ag_notify_speaker_gain(int gain);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Gets the current speaker gain of the remote device.
- * @since_tizen 2.3
- * @details This function gets the value of speaker gain of the remote device.
- * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
- * @param[out] gain The gain of speaker (0 ~ 15)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_ag_notify_speaker_gain()
- * @see bt_ag_set_speaker_gain_changed_cb()
- * @see bt_ag_unset_speaker_gain_changed_cb()
- */
-int bt_ag_get_speaker_gain(int *gain);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when the speaker gain of the remote device is changed.
- * @since_tizen 2.3
- * @details This function let you know the change of the speaker gain of the remote device.
- * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_unset_speaker_gain_changed_cb()
- */
-int bt_ag_set_speaker_gain_changed_cb(bt_ag_speaker_gain_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when the speaker gain of the remote device is changed.
- * @since_tizen 2.3
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_set_speaker_gain_changed_cb()
- */
-int bt_ag_unset_speaker_gain_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when the microphone gain of the remote device is changed.
- * @since_tizen 2.3
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_unset_microphone_gain_changed_cb()
- */
-int bt_ag_set_microphone_gain_changed_cb(bt_ag_microphone_gain_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when the microphone gain of the remote device is changed.
- * @since_tizen 2.3
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_set_microphone_gain_changed_cb()
- */
-int bt_ag_unset_microphone_gain_changed_cb(void);
-
-/**
- * @}
- */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_EXTENSION_H__ */
-
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_INTERNAL_H__
-#define __TIZEN_NETWORK_BLUETOOTH_INTERNAL_H__
-
-#include <glib.h>
-#include "bluetooth_type.h"
-#include "bluetooth_type_internal.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_internal.h
- */
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enables the local Bluetooth adapter, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function enables Bluetooth protocol stack and hardware.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_ALREADY_DONE Already enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- * @pre The state of local Bluetooth must be #BT_ADAPTER_DISABLED
- * @post This function invokes bt_adapter_state_changed_cb().
- *
- * @see bt_initialize()
- * @see bt_adapter_get_state()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb()
- * @see bt_adapter_state_changed_cb()
- *
- */
-int bt_adapter_enable(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Disables the local Bluetooth adapter, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function disables Bluetooth protocol stack and hardware.
- *
- * @remarks You should disable Bluetooth adapter, which is helpful for saving power.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED
- * @post This function invokes bt_adapter_state_changed_cb().
- *
- * @see bt_adapter_get_state()
- * @see bt_adapter_state_changed_cb()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb ()
- *
- */
-int bt_adapter_disable(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Recover the local Bluetooth adapter, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function does recovery logic, disables Bluetooth protocol stack and hardware, then enables after a few seconds.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED
- * @post This function invokes bt_adapter_state_changed_cb().
- *
- * @see bt_adapter_get_state()
- * @see bt_adapter_state_changed_cb()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb ()
- *
- */
-int bt_adapter_recover(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief A2DP source/sink role is switched using this API
- * @since_tizen 4.0
- * @param[in] Role for A2DP
- * @return @c 0 on success,
- * otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @retval #BT_ERROR_OPERATION_FAILED Internal Error
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_initialize()
- * @see bt_audio_initialize()
- */
-int bt_audio_select_role(bt_audio_role_e role);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Reset the local Bluetooth adapter, synchronously.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function resets Bluetooth protocol and values.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_state_changed_cb() will be invoked if The state of local Bluetooth was #BT_ADAPTER_ENABLED.
- *
- * @see bt_initialize()
- * @see bt_adapter_get_state()
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb()
- * @see bt_adapter_state_changed_cb()
- *
- */
-int bt_adapter_reset(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the version of local Bluetooth adapter.
- * @since_tizen 2.3.1
- * @remarks The @a local_version must be released with free() by you.
- *
- * @param[out] local_version The version of local Bluetooth adapter
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_adapter_get_version(char **local_version);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the information regarding local Bluetooth adapter.
- * @since_tizen 2.3.1
- * @remarks The @a all parameters must be released with free() by you.
- *
- * @param[out] chipset Chipset name of local Bluetooth adapter
- * @param[out] firmware Firmware info. of local Bluetooth adapter
- * @param[out] stack_version Bluetooth stack version
- * @param[out] profiles The profile list of local Bluetooth adapter
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_adapter_get_local_info(char **chipset, char **firmware, char **stack_version, char **profiles);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the visibility mode.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE will change to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE
- * after the given @a duration goes.
- *
- * @param[in] discoverable_mode The Bluetooth visibility mode to set
- * @param[in] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds).
- * @a duration is used only for #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE mode.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_adapter_visibility_mode_changed_cb() will be invoked if this function returns #BT_ERROR_NONE.
- *
- * @see bt_adapter_get_visibility()
- * @see bt_adapter_visibility_mode_changed_cb()
- * @see bt_adapter_set_visibility_mode_changed_cb()
- * @see bt_adapter_unset_visibility_mode_changed_cb()
- */
-int bt_adapter_set_visibility(bt_adapter_visibility_mode_e discoverable_mode, int duration);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function that will be invoked when remote device requests authentication.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @param[in] callback callback function to be set when a request is received.
- * @param[in] user_data data from application which will be provided in callback.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @see bt_initialize()
- * @see bt_adapter_set_authentication_req_cb()
- */
-int bt_adapter_set_authentication_req_cb(bt_adapter_authentication_req_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters a callback function that will be invoked when remote device requests authentication.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @see bt_initialize()
- * @see bt_adapter_set_authentication_req_cb()
- */
-int bt_adapter_unset_authentication_req_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief API to reply with PIN or PASSKEY with authentication type - TRUE or FALSE.
- * @remarks This function can be called by application when remote device requests PIN or PASSKEY from
- * local adapter.
- * @param[in] passkey The passkey to be provided by application when remote devices requests for it.
- * @param[in] authentication_reply This indicates whether application wants to accept or cancel the on-going pairing
- * @pre This function can only be called when application receieves authentication event (BT_AUTH_PIN_REQUEST)
- * from remote device.
- * @see bt_adapter_set_authentication_req_cb()
- */
-int bt_adapter_passkey_reply(char *passkey, bool authentication_reply);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief API to reply to the PASSKEY confirmation for on-going pairing with remote device.
- * @remarks This function can be called by application, when local adapter wants PASSKEY confirmation from user.
- * @param[in] confirmation_reply This indicates whether application wants to accepts or cancels the on-going pairing
- * confirmation_reply : TRUE will indicate that Application has confirmed the PASSKEY
- * confirmation_reply : FALSE will indicate that Application has failed to confirm the PASSKEY. In this situation
- * the pairing will be failed.
- * @pre This function can only be called when application receives authentication event (BT_AUTH_PASSKEY_CONFIRM_REQUEST)
- * from remote device.
- * @see bt_adapter_set_authentication_req_cb()
- */
-int bt_adapter_passkey_confirmation_reply(bool confirmation_reply);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked when the connectable state changes.
- * @since_tizen 2.3.1
- *
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_connectable_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_connectable_changed_cb()
- * @see bt_adapter_unset_connectable_changed_cb()
- */
-int bt_adapter_set_connectable_changed_cb(bt_adapter_connectable_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_connectable_changed_cb()
- */
-int bt_adapter_unset_connectable_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Gets the connectable state of local Bluetooth adapter.
- * @since_tizen 2.3.1
- *
- * @remarks When connectable state is false, no device can connect to this device and visibility mode cannot be changed.
- *
- * @param[out] connectable The connectable state of local Bluetooth adapter
- *
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_set_connectable()
- */
-int bt_adapter_get_connectable(bool *connectable);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the connectable state of local Bluetooth adapter.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks When connectable state is false, no device can connect to this device and visibility mode cannot be changed.
- *
- * @param[in] connectable The connectable state to set
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_adapter_connectable_changed_cb() will be invoked if this function returns #BT_ERROR_NONE.
- *
- * @see bt_adapter_get_connectable()
- * @see bt_adapter_connectable_changed_cb()
- * @see bt_adapter_set_connectable_changed_cb()
- * @see bt_adapter_unset_connectable_changed_cb()
- */
-int bt_adapter_set_connectable(bool connectable);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Sets the manufacturer data of local Bluetooth adapter.
- * @since_tizen 2.3
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] data The manufacturer specific data of the Bluetooth device.
- * @param[in] len The length of @a data.Maximaum length is 240 bytes.
- *
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @post bt_adapter_manufacturer_data_changed_cb() will be invoked
- * if this function returns #BT_ERROR_NONE.
- *
- * @see bt_adapter_manufacturer_data_changed_cb
- * @see bt_adapter_set_manufacturer_data_changed_cb()
- * @see bt_adapter_unset_manufacturer_data_changed_cb()
- */
-int bt_adapter_set_manufacturer_data(char *data, int len);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Registers a callback function to be invoked
- * when the manufacturer data of Bluetooth adapter changes.
- * @since_tizen 2.3
- *
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_manufacturer_data_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_unset_manufacturer_data_changed_cb()
- */
-int bt_adapter_set_manufacturer_data_changed_cb(
- bt_adapter_manufacturer_data_changed_cb callback,
- void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_set_manufacturer_data_changed_cb()
- */
-int bt_adapter_unset_manufacturer_data_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enables the local Bluetooth le adapter, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function enables Bluetooth protocol stack and hardware.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_ALREADY_DONE Already enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- * @post This function invokes bt_adapter_le_state_changed_cb().
- *
- * @see bt_initialize()
- * @see bt_adapter_le_get_state()
- * @see bt_adapter_le_set_state_changed_cb()
- * @see bt_adapter_le_unset_state_changed_cb()
- * @see bt_adapter_le_state_changed_cb()
- *
- */
-int bt_adapter_le_enable(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Disables the local Bluetooth le adapter, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @details This function disables Bluetooth le protocol stack and hardware.
- *
- * @remarks
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOW_IN_PROGRESS Operation now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_LE_ENABLED
- * @post This function invokes bt_adapter_le_state_changed_cb().
- *
- * @see bt_adapter_le_get_state()
- * @see bt_adapter_le_state_changed_cb()
- * @see bt_adapter_le_set_state_changed_cb()
- * @see bt_adapter_le_unset_state_changed_cb ()
- *
- */
-int bt_adapter_le_disable(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Gets the current state of local Bluetooth adapter.
- * @since_tizen 2.3.1
- *
- * @param[out] adapter_le_state The current adapter le state
- *
- * @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_SUPPORTED Not supported
- *
- * @pre Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- */
-int bt_adapter_le_get_state(bt_adapter_le_state_e *adapter_le_state);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Registers a callback function to be invoked when the Bluetooth adapter le state changes.
- * @since_tizen 2.3.1
- *
- * @param[in] callback The callback function to invoke
- * @param[in] user_data The user data to be passed to the callback function
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_adapter_le_state_changed_cb() will be invoked.
- *
- * @see bt_initialize()
- * @see bt_adapter_le_state_changed_cb()
- * @see bt_adapter_le_unset_state_changed_cb()
- */
-int bt_adapter_le_set_state_changed_cb(bt_adapter_le_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unregisters the callback function.
- * @since_tizen 2.3.1
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_initialize()
- * @see bt_adapter_le_set_state_changed_cb()
- */
-int bt_adapter_le_unset_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief add address to whitelist for accepting scanning request.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks If the adress is in the whitelist then other LE devices are able to
- * search this device. Before calling this API, make sure that the adapter is
- * enabled. There is no callback event for this API.
-
- * @param[in] address The other device's address
- * @param[in] address_type The other device's address type
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_stop_advertising()
- */
-int bt_adapter_le_add_white_list(const char *address, bt_device_address_type_e address_type);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief remove address from the whitelist for not accepting scanning request.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks If the adress is in the whitelist then other LE devices are able to
- * search this device. Before calling this API, make sure that the adapter is
- * enabled. There is no callback event for this API.
- *
- * @param[in] address The other device's address
- * @param[in] address_type The other device's address type
- *
- * @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 Adapter is not enabled
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_stop_advertising()
- */
-int bt_adapter_le_remove_white_list(const char *address, bt_device_address_type_e address_type);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Sets the Privacy feature state of local Bluetooth adapter.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] enable_privacy The privacy feature to set/unset.
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The state of local Bluetooth must be #BT_ADAPTER_LE_ENABLED.
- *
- */
-int bt_adapter_le_enable_privacy(bool enable_privacy);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Creates scan filter to find only LE advertisement which has specific data.
- * @since_tizen 2.4
- *
- * @param[out] scan_filter The handle of scan filter
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_destroy_scan_filter()
- */
-int bt_adapter_le_create_scan_filter(bt_scan_filter_h *scan_filter);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Destroys scan filter.
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_create_scan_filter()
- */
-int bt_adapter_le_destroy_scan_filter(bt_scan_filter_h scan_filter);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the device address to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] address The device address to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_device_address(bt_scan_filter_h scan_filter, const char *address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the device name to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] name The device name to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_device_name(bt_scan_filter_h scan_filter, const char *name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service UUID to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service UUID to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_uuid(bt_scan_filter_h scan_filter, const char *uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service uuid and the mask to filter advertisements by partial data
- * @since_tizen 2.4
- *
- * @remarks the length of mask msut be the same with the length of service uuid.
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service UUID to filter advertisements
- * @param[in] mask The mask to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_uuid_with_mask(bt_scan_filter_h scan_filter,
- const char *uuid, const char *mask);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service solicitation UUID to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service solicitation UUID to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_solicitation_uuid(bt_scan_filter_h scan_filter, const char *uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service solicitation uuid and the mask to filter advertisements by partial data
- * @since_tizen 2.4
- *
- * @remarks the length of mask msut be the same with the length of service solicitation uuid.
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service solicitation UUID to filter advertisements
- * @param[in] mask The mask to filter advertisements
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_solicitation_uuid_with_mask(bt_scan_filter_h scan_filter,
- const char *uuid, const char *mask);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service data to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service UUID to filter advertisements
- * @param[in] data The service data to filter advertisements
- * @param[in] data_len The length of the service data
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_data(bt_scan_filter_h scan_filter,
- const char *uuid, const char *data, unsigned int data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the service data and the mask to filter advertisements by partial data
- * @since_tizen 2.4
- *
- * @remarks the length of mask msut be the same with the length of service data.
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] uuid The service UUID to filter advertisements
- * @param[in] data The service data to filter advertisements
- * @param[in] data_len The length of the service data
- * @param[in] mask The mask to filter advertisements
- * @param[in] mask_len The length of the mask to be set.
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_service_data_with_mask(bt_scan_filter_h scan_filter,
- const char *uuid, const char *data, unsigned int data_len, const char *mask, unsigned int mask_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the manufacturer data to filter advertisements
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] manufacturer_id The manufacturer ID (0x0000 ~ 0xFFFF)
- * @param[in] data The manufacturer data (byte array)
- * @param[in] data_len The length of manufacturer data
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_manufacturer_data(bt_scan_filter_h scan_filter,
- int manufacturer_id, const char *data, unsigned int data_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Adds the manufacturer data and the mask to filter advertisements by partial data
- * @since_tizen 2.4
- *
- * @remarks the length of mask msut be the same with the length of service uuid.
- *
- * @param[in] scan_filter The handle of scan filter
- * @param[in] manufacturer_id The manufacturer ID (0x0000 ~ 0xFFFF)
- * @param[in] data The manufacturer data (byte array)
- * @param[in] data_len The length of manufacturer data
- * @param[in] mask The mask to filter advertisements
- * @param[in] mask_len The length of the mask to be set.
- *
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_scan_filter_set_manufacturer_data_with_mask(bt_scan_filter_h scan_filter,
- int manufacturer_id, const char *data, unsigned int data_len, const char *mask, unsigned int mask_len);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Registers the scan filter to use for scanning
- * @since_tizen 2.4
- *
- * @remarks Several scan filters can be registered. And the specific advertisements, satisfy the one of scan filters, will be found.
- *
- * @param[in] scan_filter The handle of scan filter
- *
- * @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_NOW_IN_PROGRESS Scan is in progress
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_register_scan_filter(bt_scan_filter_h scan_filter);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unregisters the scan filter to be registered
- * @since_tizen 2.4
- *
- * @param[in] scan_filter The handle of scan filter
- *
- * @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_NOW_IN_PROGRESS Scan is in progress
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_unregister_scan_filter(bt_scan_filter_h scan_filter);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Unregisters all scan filters to be registered
- * @since_tizen 2.4
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOW_IN_PROGRESS Scan is in progress
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- */
-int bt_adapter_le_unregister_all_scan_filters(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Set advertising filter policy to use white list
- * @since_tizen 2.4
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- *
- * @param[in] advertiser The handle of advertiser
- * @param[in] filter_policy The filter policy of advertising
- *
- * @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_NOW_IN_PROGRESS Operation is now in progress
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- *
- * @see bt_adapter_le_start_advertising_new()
- */
-int bt_adapter_le_set_advertising_filter_policy(bt_advertiser_h advertiser, bt_adapter_le_advertising_filter_policy_e filter_policy);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Creates a bond with a remote Bluetooth device, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks A bond can be destroyed by bt_device_destroy_bond().\n
- * The bonding request can be cancelled by bt_device_cancel_bonding().
- *
- * @param[in] remote_address The address of the remote Bluetooth device with which the bond should be created
- * @param[in] conn_type The connection type(LE or BREDR) to create bond with remote device
- *
- * @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_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- * @pre The remote device must be discoverable with bt_adapter_start_device_discovery().
- * @post This function invokes bt_device_bond_created_cb().
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_device_create_bond()
- * @see bt_device_bond_created_cb()
- * @see bt_device_cancel_bonding()
- * @see bt_device_destroy_bond()
- * @see bt_device_set_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-int bt_device_create_bond_by_type(const char *remote_address,
- bt_device_connection_link_type_e conn_type);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Cancels service search process.
- * @since_tizen 2.3.1
- * @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_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The service search must be in progress by bt_device_start_service_search().
- *
- * @see bt_device_start_service_search()
- * @see bt_device_service_searched_cb()
- * @see bt_device_set_service_searched_cb()
- * @see bt_device_unset_service_searched_cb()
- */
-int bt_device_cancel_service_search(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets a connection state
- * @since_tizen 2.4
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] link_type The link type to get a connection state
- * @param[out] connected The connection state
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- */
-int bt_device_get_connection_state(const char *remote_address, bt_device_connection_link_type_e link_type, bool *connected);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Sets a profile restricted connection for a device
- * @since_tizen 3.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_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_set_profile_restricted(const char *device_address, bt_restricted_profile_t profile, bool restricted);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets a profile restricted connection for a device
- * @since_tizen 3.0
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_NOT_IN_PROGRESS Operation not in progress
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_get_profile_restricted(const char *device_address, bt_restricted_profile_t profile, int *restricted);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Request to change ATT MTU value
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[in] mtu New MTU value to be changed
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_request_att_mtu(const char *remote_address, unsigned int mtu);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets the ATT MTU value set for a connection
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address The address of the remote Bluetooth device
- * @param[ot] mtu MTU value set for a connection
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_device_get_att_mtu(const char *remote_address, unsigned int *mtu);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Registers a callback function to be invoked when the ATT MTU is changed.
- * @since_tizen 3.0
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_device_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_device_unset_att_mtu_changed_cb()
- */
-int bt_device_set_att_mtu_changed_cb(bt_device_att_mtu_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Unregisters the callback function to be invoked when the ATT MTU is changed.
- * @since_tizen 3.0
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_initialize()
- * @see bt_device_set_att_mtu_changed_cb()
- */
-int bt_device_unset_att_mtu_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Registers a rfcomm server socket with a specific UUID. Activation by dbus is possible when the profile is connected.
- * @since_tizen 2.4
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @remarks A socket can be destroyed by bt_socket_destroy_rfcomm_ex().
- * Application should call this API to receive a connection event when launched again by dbus.
- *
- * @param[in] uuid The UUID of service to provide
- * @param[in] bus_name bus_name of the application which is provided in service file.
- * @param[in] object_path dbus of the application
- * @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_NOW_IN_PROGRESS Already registered
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- *
- * @see bt_socket_listen_and_accept_rfcomm_ex()
- * @see bt_socket_destroy_rfcomm_ex()
- */
-int bt_socket_create_rfcomm_ex(const char *uuid, const char *bus_name, const char *object_path);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Removes the rfcomm server socket which was created using bt_socket_create_rfcomm_ex().
- * @since_tizen 2.4
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @remarks If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
- * then bt_socket_connection_state_changed_cb() will be called when this function is finished successfully.
- *
- * @param[in] uuid The UUID (which was created using bt_socket_create_rfcomm()) to destroy
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm_ex().
- * @post If callback function bt_socket_connection_state_changed_cb() is set and the remote Bluetooth device is connected,
- * then bt_socket_connection_state_changed_cb() will be called.
- * @see bt_socket_create_rfcomm_ex()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_destroy_rfcomm_ex(const char *uuid);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Starts listening on passed rfcomm socket and accepts connection requests. Activation by dbus is possible when the profile is connected.
- * @since_tizen 2.4
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @details Pop-up is shown automatically when a RFCOMM connection is requested.
- * bt_socket_connection_state_changed_cb() will be called with
- * #BT_SOCKET_CONNECTED if you click "yes" and connection is finished successfully.
- * @param[in] uuid The UUID of service to provide
- * @param[in] max_pending_connections The maximum number of pending connections
- * @param[in] bus_name bus_name of the application which is provided in service file.
- * @param[in] object_path dbus of the application
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm_ex().
- * @post If callback function bt_socket_connection_state_changed_cb() is set,
- * then bt_socket_connection_state_changed_cb() will be called when the remote Bluetooth device is connected.
- * @see bt_socket_create_rfcomm_ex()
- * @see bt_socket_connection_state_changed_cb()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-int bt_socket_listen_and_accept_rfcomm_ex(const char *uuid, int max_pending_connections, const char* bus_name, const char *object_path);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Starts listening on passed rfcomm socket.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @details bt_socket_connection_requested_cb() will be called when a RFCOMM connection is requested.
- *
- * @param[in] socket_fd The file descriptor socket on which start to listen
- * @param[in] max_pending_connections The number of pending connections
- *
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The socket must be created with bt_socket_create_rfcomm().
- * @post This function invokes bt_socket_connection_state_changed_cb().
- *
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_set_connection_requested_cb()
- * @see bt_socket_unset_connection_requested_cb()
- * @see bt_socket_connection_requested_cb()
- */
-int bt_socket_listen(int socket_fd, int max_pending_connections);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Accepts a connection request.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] requested_socket_fd The file descriptor of socket on which a connection is requested
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The connection is requested by bt_socket_connection_requested_cb().
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_connection_requested_cb()
- * @see bt_socket_listen()
- * @see bt_socket_reject()
-*/
-int bt_socket_accept(int requested_socket_fd);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Rejects a connection request.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] socket_fd The file descriptor of socket on which a connection is requested
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The connection is requested by bt_socket_connection_requested_cb().
- * @see bt_socket_create_rfcomm()
- * @see bt_socket_connection_requested_cb()
- * @see bt_socket_listen()
- * @see bt_socket_accept()
- */
-int bt_socket_reject(int socket_fd);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Initializes the Bluetooth OPP server requested by bt_opp_server_push_requested_cb().
- * @since_tizen 2.3.1
- * @details The popup appears when an OPP connection is requested from a remote device.
- * If you accept the request, then connection will be established and bt_opp_server_push_requested_cb() will be called.
- * At that time, you can call either bt_opp_server_accept() or bt_opp_server_reject().
- * @remarks This function must be called to start Bluetooth OPP server. You must free all resources of the Bluetooth service
- * by calling bt_opp_server_deinitialize() if Bluetooth OPP service is no longer needed.
- * @param[in] destination The destination path
- * @param[in] push_requested_cb The callback called when a push is requested
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_RESOURCE_BUSY Device or resource busy
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_opp_server_push_requested_cb()
- * @see bt_opp_server_deinitialize()
- * @see bt_opp_server_accept()
- * @see bt_opp_server_reject()
- */
-int bt_opp_server_initialize(const char *destination, bt_opp_server_push_requested_cb push_requested_cb, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_MODULE
- * @brief Gets the percentage progress for ongoing transfers.
- * @since_tizen 3.0
- * @exception None
- * @param[in] transfer_type Transfer Type: (@c BLUETOOTH_TRANSFER_INBOUND = receiving , @c BLUETOOTH_TRANSFER_OUTBOUND = sending)
- * @param[in] transfer_id Transfer ID
- * @param[out] progress Percentage Progress
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- */
-int bt_opp_get_transfer_progress(bt_opp_transfer_type_t transfer_type,
- int transfer_id, unsigned char *progress);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the call event to the remote bluetooth device.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @remarks Before notifying #BT_AG_CALL_EVENT_ANSWERED or #BT_AG_CALL_EVENT_DIALING, you should open SCO(Synchronous Connection Oriented link)
- * if Bluetooth Hands-Free need SCO connection.
- * @param[in] event The call event
- * @param[in] call_id The call ID
- * @param[in] phone_number The phone number. You must set this value in case of #BT_AG_CALL_EVENT_DIALING and #BT_AG_CALL_EVENT_INCOMING.
- * In other cases, this value can be NULL.
- * @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_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 Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_ag_notify_call_event(bt_ag_call_event_e event, unsigned int call_id, const char *phone_number);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the call list to the remote bluetooth device.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] list The call list
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_ag_notify_call_list(bt_call_list_h list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Notifies the state of voice recognition.
- * @since_tizen 2.3.1
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- * @param[in] state The state of voice recognition: (@c true = enabled, @c false = disabled)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_ag_notify_voice_recognition_state(bool state);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when a call handling event happened from Hands-Free.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_call_handling_event_cb()
- * @see bt_ag_unset_call_handling_event_cb()
- */
-int bt_ag_set_call_handling_event_cb(bt_ag_call_handling_event_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when a call handling event happened from Hands-Free.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_call_handling_event_cb()
- * @see bt_ag_set_call_handling_event_cb()
- */
-int bt_ag_unset_call_handling_event_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when a multi call handling event happened from Hands-Free.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_multi_call_handling_event_cb()
- * @see bt_ag_unset_multi_call_handling_event_cb()
- */
-int bt_ag_set_multi_call_handling_event_cb(bt_ag_multi_call_handling_event_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when a multi call handling event happened from Hands-Free.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_multi_call_handling_event_cb()
- * @see bt_ag_set_multi_call_handling_event_cb()
- */
-int bt_ag_unset_multi_call_handling_event_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Registers a callback function that will be invoked when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_dtmf_transmitted_cb()
- * @see bt_ag_unset_dtmf_transmitted_cb()
- */
-int bt_ag_set_dtmf_transmitted_cb(bt_ag_dtmf_transmitted_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Unregisters a callback function that will be invoked when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_dtmf_transmitted_cb()
- * @see bt_ag_set_dtmf_transmitted_cb()
- */
-int bt_ag_unset_dtmf_transmitted_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Checks whether the remoted device enables NREC(Noise Reduction and Echo Canceling) or not.
- * @since_tizen 2.3.1
- * @param[out] enabled The NREC status: (@c true = enabled, @c false = not enabled)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_audio_connect()
- */
-int bt_ag_is_nrec_enabled(bool *enabled);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
- * @brief Creates a handle of call list.
- * @since_tizen 2.3.1
- * @param[out] list The handle of call list
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_call_list_destroy()
- */
-int bt_call_list_create(bt_call_list_h *list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
- * @brief Destroys the handle of call list.
- * @since_tizen 2.3.1
- * @param[in] list The handle of call list
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_call_list_create()
- */
-int bt_call_list_destroy(bt_call_list_h list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
- * @brief Resets the handle of call list.
- * @since_tizen 2.3.1
- * @param[in] list The handle of call list
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_call_list_create()
- */
-int bt_call_list_reset(bt_call_list_h list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_CALL_MODULE
- * @brief Adds a call to the handle of call list.
- * @since_tizen 2.3.1
- * @param[in] list The handle of call list
- * @param[in] call_id The call ID
- * @param[in] state The state of audio gate call
- * @param[in] phone_number The phone number. You must set this value in case of #BT_AG_CALL_EVENT_DIALING and #BT_AG_CALL_EVENT_INCOMING.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_call_list_create()
- */
-int bt_call_list_add(bt_call_list_h list, unsigned int call_id, bt_ag_call_state_e state, const char *phone_number);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Checks whether the remoted device is wbs (Wide Band Speech) mode or not.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[out] wbs_mode The wbs status: (@c true = wide band speech, @c false = narrow band speech)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The remote device is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_audio_connect()
- */
-int bt_ag_is_wbs_mode(bool *wbs_mode);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Gets the HF(Hands-Free) profile connected status for AG role.
- * @since_tizen 2.4
- * @param[out] connected the connected status: (@c true = connected , @c false = not connected )
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_ag_is_connected(bool *connected);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Registers a callback function that will be invoked when the SCO(Synchronous Connection Oriented link) state is changed.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_sco_state_changed_cb()
- * @see bt_ag_unset_sco_state_changed_cb()
- */
-int bt_hf_set_sco_state_changed_cb(bt_hf_sco_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Unregisters a callback function that will be invoked when the SCO(Synchronous Connection Oriented link) state is changed.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_sco_state_changed_cb()
- * @see bt_ag_set_sco_state_changed_cb()
- */
-int bt_hf_unset_sco_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Registers a callback function that will be invoked when a call handling event happened from Hands-Free.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_call_handling_event_cb()
- * @see bt_ag_unset_call_handling_event_cb()
- */
-int bt_hf_set_call_handling_event_cb(bt_hf_call_handling_event_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Unregisters a callback function that will be invoked when a call handling event happened from Hands-Free.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_call_handling_event_cb()
- * @see bt_ag_set_call_handling_event_cb()
- */
-int bt_hf_unset_call_handling_event_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Registers a callback function that will be invoked when a multi call handling event happened from Hands-Free.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_multi_call_handling_event_cb()
- * @see bt_ag_unset_multi_call_handling_event_cb()
- */
-int bt_hf_set_multi_call_handling_event_cb(bt_hf_multi_call_handling_event_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Unregisters a callback function that will be invoked when a multi call handling event happened from Hands-Free.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_ag_multi_call_handling_event_cb()
- * @see bt_ag_set_multi_call_handling_event_cb()
- */
-int bt_hf_unset_multi_call_handling_event_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Initializes the Bluetooth HF profile related with audio.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @remarks This function must be called before Bluetooth profiles related with audio starts.
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @see bt_hf_deinitialize()
- */
-int bt_hf_initialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Deinitializes the Bluetooth HF profile related with audio.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- */
-int bt_hf_deinitialize(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Notifies the call event to the remote bluetooth device.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @privlevel platform
- * @privilege http://tizen.org/privilege/bluetooth.admin
- * @remarks Before notifying #BT_HF_CALL_EVENT_ANSWERED or #BT_HF_CALL_EVENT_DIALING, you should open SCO(Synchronous Connection Oriented link)
- * if Bluetooth Hands-Free need SCO connection.
- * @param[in] event The call event
- * @param[in] call_id The call ID
- * @param[in] phone_number The phone number. You must set this value in case of #BT_HF_CALL_EVENT_DIALING and #BT_HF_CALL_EVENT_INCOMING.
- * In other cases, this value can be NULL.
- * @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_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 Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_hf_notify_call_event(bt_hf_call_event_e event, char *phone_number);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Notifies the speaker gain to the remote device.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @privlevel platform
- * @privilege http://tizen.org/privilege/bluetooth.admin
- * @details This function sends a signal to the remote device. This signal has the gain value.
- * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
- * When the speaker gain of remote device is changed to the requested gain, bt_audio_speaker_gain_changed_cb() will be called.
- * @param[in] gain The gain of speaker (0 ~ 15)
- * @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 is connected by bt_audio_connect() with #BT_AUDIO_PROFILE_TYPE_HSP_HFP service.
- * @see bt_hf_get_speaker_gain()
- * @see bt_hf_set_speaker_gain_changed_cb()
- * @see bt_hf_unset_speaker_gain_changed_cb()
- */
-int bt_hf_notify_speaker_gain(int gain);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Registers a callback function that will be invoked when the speaker gain of the remote device is changed.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @details This function let you know the change of the speaker gain of the remote device.
- * @a gain is represented on a scale from 0 to 15. This value is absolute value relating to a particular volume level.
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_hf_unset_speaker_gain_changed_cb()
- */
-int bt_hf_set_speaker_gain_changed_cb(bt_hf_speaker_gain_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Unregisters a callback function that will be invoked when the speaker gain of the remote device is changed.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @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_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_hf_set_speaker_gain_changed_cb()
- */
-int bt_hf_unset_speaker_gain_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Notifies the state of voice recognition.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @privlevel platform
- * @privilege http://tizen.org/privilege/bluetooth.admin
- * @param[in] state The state of voice recognition: (@c true = enabled, @c false = disabled)
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_hf_notify_voice_recognition_state(bool state);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Registers a callback function that will be invoked when a call status event happened from Hands-Free.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_hf_unset_call_status_updated_event_cb()
- */
-int bt_hf_set_call_status_updated_event_cb(bt_hf_call_status_updated_event_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Unregisters a callback function that will be invoked when a call status event happened from Hands-Free.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_hf_set_call_status_updated_event_cb()
- */
-int bt_hf_unset_call_status_updated_event_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Closes an opened SCO(Synchronous Connection Oriented link), synchronously.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- */
-int bt_hf_close_sco(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Sends the DTMF(Dual Tone Multi Frequency).
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @privlevel platform
- * @privilege http://tizen.org/privilege/bluetooth.admin
- * @param[in] dtmf The DTMF to send
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_hf_send_dtmf(char *dtmf);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Gets the HF(Hands-Free) profile connected status for HF role.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @param[out] connected the connected status: (@c true = connected , @c false = not connected )
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_hf_is_connected(bool *connected);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Checks whether an opened SCO(Synchronous Connection Oriented link) exists or not.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- *
- * @param[out] opened The SCO status: (@c true = opened, @c false = not opened)
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_hf_is_sco_opened(bool *opened);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Gets the codec ID.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @remarks The @a codec_id must be released with free() by you.
- *
- * @param[out] codec_id The codec ID
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_audio_connect()
- */
-int bt_hf_get_codec_id(unsigned int *codec_id);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Gets the call status information list.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- * @remarks The @a call_list must be released with bt_hf_free_call_status_info_list() by you.
- * @remarks call_info_list has elements which consist of bt_hf_call_status_info_s
- *
- * @param[out] call_list The call status information list
- * @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_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio device must be connected with bt_audio_connect().
- * @see bt_hf_call_status_info_s
- * @see bt_audio_connect()
- */
-int bt_hf_get_call_status_info_list(GSList **call_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Frees the call status information list.
- * @since_tizen @if MOBILE @elseif WEARABLE 2.3.1 @endif
- *
- * @param[in] call_list The call status information list
- * @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_SUPPORTED Not supported
- *
- * @see bt_hf_get_call_status_info_list()
- */
-int bt_hf_free_call_status_info_list(GSList *call_list);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Gets the specification name from the UUID
- * @since_tizen 2.4
- *
- * @remarks @a name must be released with free() by you.
- *
- * @param[in] uuid The UUID
- * @param[out] name The specification name which defined from www.bluetooth.org
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_get_uuid()
- */
-int bt_gatt_get_uuid_specification_name(const char *uuid, char **name);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Updates the permissions which a characteristic or descriptor's GATT handle has.
- * @since_tizen 3.0
- *
- * @param[in] gatt_handle The handle of a characteristic or descriptor
- * @param[in] permissions The permissions to be updated
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_characteristic_create()
- * @see bt_gatt_descriptor_create()
- * @see bt_gatt_permission_e
- */
-int bt_gatt_set_permissions(bt_gatt_h gatt_handle, int permissions);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Updates the properties which a characteristic's GATT handle has.
- * @since_tizen 3.0
- *
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] properties The properties to be updated
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_property_e
- */
-int bt_gatt_characteristic_set_properties(bt_gatt_h characteristic, int properties);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Destroys the GATT handle
- * @since_tizen 2.4
- *
- * @param[in] gatt_handle The handle of service, characteristic or descriptor
- * @return 0 on success, otherwise a negative error value
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @see bt_gatt_service_create()
- * @see bt_gatt_characteristic_create()
- * @see bt_gatt_descriptor_create()
- */
-int bt_gatt_destroy(bt_gatt_h gatt_handle);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Registers a callback function that will be invoked when the A2DP Source connection state is changed.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_audio_connection_state_changed_cb()
- */
-int bt_a2dp_source_audio_set_connection_state_changed_cb(bt_audio_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Unregisters a callback function that will be invoked when the A2DP Source connection state is changed.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth audio service must be initialized with bt_audio_initialize().
- * @see bt_audio_initialize()
- * @see bt_audio_connection_state_changed_cb()
- * @see bt_audio_set_connection_state_changed_cb()
- */
-int bt_a2dp_source_audio_unset_connection_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Activates the NAP(Network Access Point).
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED
- * @see bt_nap_deactivate()
- */
-int bt_nap_activate(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Deactivates the NAP(Network Access Point).
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_ALREADY_DONE Operation is already done
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth NAP service must be activated with bt_nap_activate().
- * @see bt_nap_activate()
- */
-int bt_nap_deactivate(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Disconnects the all PANUs(Personal Area Networking User) which are connected to you.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth NAP service must be activated with bt_nap_activate().
- * @see bt_nap_activate()
- */
-int bt_nap_disconnect_all(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Disconnects the specified PANU(Personal Area Networking User) which is connected to you.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth NAP service must be activated with bt_nap_activate().
- * @see bt_nap_activate()
- */
-int bt_nap_disconnect(const char *remote_address);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Registers a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_nap_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_nap_connection_state_changed_cb()
- * @see bt_nap_unset_connection_state_changed_cb()
- */
-int bt_nap_set_connection_state_changed_cb(bt_nap_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_nap_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_nap_connection_state_changed_cb()
- * @see bt_nap_set_connection_state_changed_cb()
- */
-int bt_nap_unset_connection_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Registers a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3.1
- * @param[in] callback The callback function to register
- * @param[in] user_data The user data to be passed to the callback function
- * @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_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_nap_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_panu_connection_state_changed_cb()
- * @see bt_panu_unset_connection_state_changed_cb()
- */
-int bt_panu_set_connection_state_changed_cb(bt_panu_connection_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Unregisters a callback function that will be invoked when the connection state changes.
- * @since_tizen 2.3.1
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized with bt_initialize().
- * @post bt_nap_connection_state_changed_cb() will be invoked.
- * @see bt_initialize()
- * @see bt_panu_connection_state_changed_cb()
- * @see bt_panu_set_connection_state_changed_cb()
- */
-int bt_panu_unset_connection_state_changed_cb(void);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Connects the remote device with the PAN(Personal Area Networking) service, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @param[in] type The type of PAN service
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The local device must be bonded with the remote device by bt_device_create_bond().
- * @post bt_panu_connection_state_changed_cb() will be invoked.
- * @see bt_panu_disconnect()
- * @see bt_panu_connection_state_changed_cb()
- */
-int bt_panu_connect(const char *remote_address, bt_panu_service_type_e type);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Disconnects the remote device with the PAN(Personal Area Networking) service, asynchronously.
- * @since_tizen 2.3.1
- * @privlevel public
- * @privilege %http://tizen.org/privilege/bluetooth
- * @param[in] remote_address The remote address
- * @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_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected
- * @retval #BT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The remote device must be connected by bt_panu_connect().
- * @post bt_panu_connection_state_changed_cb() will be invoked.
- * @see bt_panu_connect()
- * @see bt_panu_connection_state_changed_cb()
- */
-int bt_panu_disconnect(const char *remote_address);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief update LE connection.
- * @since_tizen 2.3.1
- * @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_PERMISSION_DENIED Permission denied
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The Bluetooth service must be initialized by bt_initialize().
- * @pre The remote device must be connected with bt_gatt_connect().
- */
-int bt_device_le_conn_update(const char *device_address,
- const bt_le_conn_update_s *parameters);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Gets the is_alias_set property of a bonded device.
- * @since_tizen 3.0
- *
- * @param [in] remote_address The address of remote device
- * @param [out] is_alias_set The is_alias_set property of device
- *
- * @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_OUT_OF_MEMORY Out of memory
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_adapter_get_bonded_device_is_alias_set(const char *remote_address, gboolean *is_alias_set);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets Restriction for BT mode(BT allowed or not).
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - BT Allow value.
- * BT_DPM_ERROR = -1, < bluetooth allowance error
- * BT_DPM_BT_ALLOWED, < bluetooth allowance allowed
- * BT_DPM_HANDSFREE_ONLY, < bluetooth allowance handsfree only
- * BT_DPM_BT_RESTRICTED, < bluetooth allowance restricted
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre none.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_allow_bluetooth_mode(bt_dpm_allow_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads Restriction for BT mode(BT allowed or not).
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @param[out] value - BT Allow value.
- * BT_DPM_ERROR = -1, < bluetooth allowance error
- * BT_DPM_BT_ALLOWED, < bluetooth allowance allowed
- * BT_DPM_HANDSFREE_ONLY, < bluetooth allowance handsfree only
- * BT_DPM_BT_RESTRICTED, < bluetooth allowance restricted
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre none.
- * @see bt_dpm_set_allow_bluetooth_mode()
- */
-int bt_dpm_get_allow_bluetooth_mode(bt_dpm_allow_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for device.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_activate_device_restriction(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for device.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_is_device_restriction_active(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for uuid.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_activate_uuid_restriction(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for uuid.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_is_uuid_restriction_active(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Adds the device to blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] device_address - Device address
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_add_devices_to_blacklist(const char *device_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Adds the device to whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] device_address - Device address
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_add_devices_to_whitelist(const char *device_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Adds the uuids to blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] service_uuids - profile or custom service uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_add_uuids_to_blacklist(const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Adds the uuid to whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] service_uuids - profile or custom service uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_add_uuids_to_whitelist(const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Clears the device from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_clear_devices_from_blacklist(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Clears the device from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_clear_devices_from_whitelist(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Clears the uuids from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_clear_uuids_from_blacklist(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Clears the uuids from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] none
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_clear_uuids_from_whitelist(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the devices from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] device_list - list of devices
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_devices_from_blacklist(bt_dpm_device_list_s **device_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the devices from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] device_list - list of devices
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_devices_from_whitelist(bt_dpm_device_list_s **device_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the uuids from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] uuid_list - list of uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_uuids_from_blacklist(bt_dpm_uuids_list_s **uuid_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the uuids from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] uuid_list - list of uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_uuids_from_whitelist(bt_dpm_uuids_list_s **uuid_list);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Removes the devices from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] device_address - Device address
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_remove_device_from_whitelist(const char *device_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Removes the devices from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] device_address - Device address
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_remove_device_from_blacklist(const char *device_address);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Removes the uuids from whitelist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] service_uuids - profile or custom service uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_remove_uuid_from_whitelist(const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Removes the uuids from blacklist.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] service_uuids - profile or custom service uuids
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_remove_uuid_from_blacklist(const char *service_uuid);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for outgoing call.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_allow_outgoing_call(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for outgoing call.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_allow_outgoing_call(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for pairing.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_pairing_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for pairing.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_pairing_state(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for profiles.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in]profile - Profile.
- * BT_DPM_POLICY_A2DP_PROFILE_STATE,
- * BT_DPM_POLICY_AVRCP_PROFILE_STATE,
- * BT_DPM_POLICY_BPP_PROFILE_STATE,
- * BT_DPM_POLICY_DUN_PROFILE_STATE,
- * BT_DPM_POLICY_FTP_PROFILE_STATE,
- * BT_DPM_POLICY_HFP_PROFILE_STATE,
- * BT_DPM_POLICY_HSP_PROFILE_STATE,
- * BT_DPM_POLICY_PBAP_PROFILE_STATE,
- * BT_DPM_POLICY_SAP_PROFILE_STATE,
- * BT_DPM_POLICY_SPP_PROFILE_STATE,
- * BT_DPM_PROFILE_NONE
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_profile_state(bt_dpm_profile_e profile, bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for profiles.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in]profile - Profile.
- * BT_DPM_POLICY_A2DP_PROFILE_STATE,
- * BT_DPM_POLICY_AVRCP_PROFILE_STATE,
- * BT_DPM_POLICY_BPP_PROFILE_STATE,
- * BT_DPM_POLICY_DUN_PROFILE_STATE,
- * BT_DPM_POLICY_FTP_PROFILE_STATE,
- * BT_DPM_POLICY_HFP_PROFILE_STATE,
- * BT_DPM_POLICY_HSP_PROFILE_STATE,
- * BT_DPM_POLICY_PBAP_PROFILE_STATE,
- * BT_DPM_POLICY_SAP_PROFILE_STATE,
- * BT_DPM_POLICY_SPP_PROFILE_STATE,
- * BT_DPM_PROFILE_NONE
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_profile_state(bt_dpm_profile_e profile, bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for desktop connectivity.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_desktop_connectivity_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for desktop connectivity.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_desktop_connectivity_state(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for discoverable mode.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_discoverable_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for discoverable mode.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_discoverable_state(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for limited discoverable mode.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-
-int bt_dpm_set_limited_discoverable_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for limited discoverable mode.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_limited_discoverable_state(bt_dpm_status_e *value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Sets the Restriction for Data transfer.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_set_data_transfer_state(bt_dpm_status_e value);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
- * @brief Reads the Restriction for Data transfer.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[out] value - State value.
- * BT_DPM_ALLOWED = 0, < DPM Policy status allowed.
- * BT_DPM_RESTRICTED = 1, < DPM Policy status restricted.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER invalid paramter
- * @retval #BT_ERROR_NOT_SUPPORTED Not suported
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_OPERATION_FAILED operation failed
- *
- * @pre bt_dpm_set_allow_bluetooth_mode must be allowed.
- * @see bt_dpm_get_allow_bluetooth_mode()
- */
-int bt_dpm_get_data_transfer_state(bt_dpm_status_e *value);
-
-/**
- * @internal
- * @brief Initialize Bluetooth IPSP service and set the callback
- */
-int bt_ipsp_initialize(bt_ipsp_init_state_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @brief De-Initialize Bluetooth IPSP service and unset the callback
- */
-int bt_ipsp_deinitialize(void);
-
-/**
- * @internal
- * @brief Connect to a IPSP service over LE to remote device.
- */
-int bt_ipsp_connect(const char *address);
-
-/**
- * @internal
- * @brief Disconnect to a IPSP service over LE to remote device.
- */
-int bt_ipsp_disconnect(const char *address);
-
-/**
- * @internal
- * @brief Set IPSP connection state event change callback.
- */
-int bt_ipsp_set_connection_state_changed_cb(bt_ipsp_connection_state_changed_cb callback,
- void *user_data);
-
-/**
- * @internal
- * @brief Unset IPSP connection state event change callback.
- */
-int bt_ipsp_unset_connection_state_changed_cb(void);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Gets the pbap connected status.
- * @since_tizen 3.0
- * @param[in] remote_address The address of the remote device
- * @param[out] connected_status the connected status
- * @return 0 on success, otherwise a negative error value.
- * @retval #BT_ERROR_NONE Successful
- * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
- * @retval #BT_ERROR_NOT_ENABLED Not enabled
- * @retval #BT_ERROR_REMOTE_DEVICE_NOT_BONDED Remote device not bonded
- * @retval #BT_ERROR_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_NOT_SUPPORTED Not supported
- *
- * @pre The state of local Bluetooth must be #BT_ADAPTER_ENABLED.
- */
-int bt_pbap_client_is_connected(const char *address, bool *connected_status);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
- * @brief Sends the custom event data.
- * @since_tizen 3.0
- * @privlevel platform
- * @privilege %http://tizen.org/privilege/bluetooth.admin
- *
- * @param[in] remote_address device address of remote device.
- * @param[in] report_id reoport id need to be passed to remote device
- * @param[in] data The data need to be passed to remote device
- * @param[in] data_len The length of the data
- * @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_OPERATION_FAILED Operation failed
- * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
- *
- * @pre The HID connection must be established.
- * @see bt_hid_device_connection_state_changed_cb()
- */
-int bt_hid_device_send_custom_event(const char *remote_address,
- unsigned char report_id, const char *data, unsigned int data_len);
-
-/**
- * @internal
- * @brief Register the Proximity Profile.
- */
-int bt_proximity_register(bt_proximity_role_t role, bt_proximity_property_changed_cb callback, void *user_data);
-
-/**
- * @internal
- * @brief Unregister the Proximity Profile.
- */
-int bt_proximity_unregister(bt_proximity_role_t role);
-
-/**
- * @internal
- * @brief Set the Proximity Profile property value.
- */
-int bt_proximity_set_property(const char *remote_address, bt_proximity_property_t property, int value);
-
-/**
- * @internal
- * @brief Read the Proximity Profile property value.
- */
-int bt_proximity_get_property(const char *remote_address, bt_proximity_property_t property, int *value);
-
-/**
- * @internal
- * @brief Lists the Proximity Profile property/service supported.
- */
-int bt_proximity_get_supported_services(const char *remote_address, int *supported_services);
-
-/**
- * @internal
- * @brief API to set scan filter for iBeacons reports
- */
-int bt_adapter_le_set_ibeacon_scan_filter(bt_scan_filter_h scan_filter,
- const char *data, unsigned int data_len);
-
-/**
- * @internal
- * @brief API to read iBeacon report from LE scan result information
- */
-int bt_adapter_le_get_scan_result_ibeacon_report(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, bt_adapter_ibeacon_scan_result_info_s **ibeacon_info);
-
-/**
- * @internal
- * @brief API to clear the iBeacon report
- */
-int bt_adapter_le_free_ibeacon_report(bt_adapter_ibeacon_scan_result_info_s *ibeacon_info);
-
-/**
- * @}
- */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_INTERNAL_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_H__
-#define __TIZEN_NETWORK_BLUETOOTH_TYPE_H__
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdbool.h>
-#include <tizen_error.h>
-
- #ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_type.h
- * @brief API to control the Bluetooth adapter, devices and communications.
- * @ingroup CAPI_NETWORK_BLUETOOTH_TYPE_MODULE
- */
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Enumeration of PBAP fields.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_PBAP_FIELD_ALL = (0xFFFFFFFFU), /**< All field */
- BT_PBAP_FIELD_VERSION = (1U << 0), /**< vCard Version */
- BT_PBAP_FIELD_FN = (1U << 1), /**< Formatted Name */
- BT_PBAP_FIELD_N = (1U << 2), /**< Structured Presentation of Name */
- BT_PBAP_FIELD_PHOTO = (1U << 3), /**< Associated Image or Photo */
- BT_PBAP_FIELD_BDAY = (1U << 4), /**< Birthday */
- BT_PBAP_FIELD_ADR = (1U << 5), /**< Delivery Address */
- BT_PBAP_FIELD_LABEL = (1U << 6), /**< Delivery */
- BT_PBAP_FIELD_TEL = (1U << 7), /**< Telephone Number */
- BT_PBAP_FIELD_EMAIL = (1U << 8), /**< Electronic Mail Address */
- BT_PBAP_FIELD_MAILER = (1U << 9), /**< Electronic Mail */
- BT_PBAP_FIELD_TZ = (1U << 10), /**< Time Zone */
- BT_PBAP_FIELD_GEO = (1U << 11), /**< Geographic Position */
- BT_PBAP_FIELD_TITLE = (1U << 12), /**< Job */
- BT_PBAP_FIELD_ROLE = (1U << 13), /**< Role within the Organization */
- BT_PBAP_FIELD_LOGO = (1U << 14), /**< Organization Logo */
- BT_PBAP_FIELD_AGENT = (1U << 15), /**< vCard of Person Representing */
- BT_PBAP_FIELD_ORG = (1U << 16), /**< Name of Organization */
- BT_PBAP_FIELD_NOTE = (1U << 17), /**< Comments */
- BT_PBAP_FIELD_REV = (1U << 18), /**< Revision */
- BT_PBAP_FIELD_SOUND = (1U << 19), /**< Pronunciation of Name */
- BT_PBAP_FIELD_URL = (1U << 20), /**< Uniform Resource Locator */
- BT_PBAP_FIELD_UID = (1U << 21), /**< Unique ID */
- BT_PBAP_FIELD_KEY = (1U << 22), /**< Public Encryption Key */
- BT_PBAP_FIELD_NICKNAME = (1U << 23), /**< Nickname */
- BT_PBAP_FIELD_CATEGORIES = (1U << 24), /**< Categories */
- BT_PBAP_FIELD_PROID = (1U << 25), /**< Product ID */
- BT_PBAP_FIELD_CLASS = (1U << 26), /**< Class information */
- BT_PBAP_FIELD_SORT_STRING = (1U << 27), /**< String used for sorting operations */
- BT_PBAP_FIELD_X_IRMC_CALL_DATETIME = (1U << 28), /**< Time stamp */
-} bt_pbap_field_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
- * @brief Enumerations of Bluetooth error codes.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful*/
- BT_ERROR_CANCELLED = TIZEN_ERROR_CANCELED, /**< Operation cancelled */
- BT_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
- BT_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
- BT_ERROR_RESOURCE_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Device or resource busy */
- BT_ERROR_TIMED_OUT = TIZEN_ERROR_TIMED_OUT, /**< Timeout error */
- BT_ERROR_NOW_IN_PROGRESS = TIZEN_ERROR_NOW_IN_PROGRESS, /**< Operation now in progress */
- BT_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< BT is Not Supported */
- BT_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */
- BT_ERROR_QUOTA_EXCEEDED = TIZEN_ERROR_QUOTA_EXCEEDED, /**< Quota exceeded */
- BT_ERROR_NO_DATA = TIZEN_ERROR_NO_DATA, /**< No data available */
- BT_ERROR_DEVICE_POLICY_RESTRICTION = TIZEN_ERROR_DEVICE_POLICY_RESTRICTION, /**< Device policy restriction (Since 3.0) */
- BT_ERROR_NOT_INITIALIZED = TIZEN_ERROR_BLUETOOTH|0x0101, /**< Local adapter not initialized */
- BT_ERROR_NOT_ENABLED = TIZEN_ERROR_BLUETOOTH|0x0102, /**< Local adapter not enabled */
- BT_ERROR_ALREADY_DONE = TIZEN_ERROR_BLUETOOTH|0x0103, /**< Operation already done */
- BT_ERROR_OPERATION_FAILED = TIZEN_ERROR_BLUETOOTH|0x0104, /**< Operation failed */
- BT_ERROR_NOT_IN_PROGRESS = TIZEN_ERROR_BLUETOOTH|0x0105, /**< Operation not in progress */
- BT_ERROR_REMOTE_DEVICE_NOT_BONDED = TIZEN_ERROR_BLUETOOTH|0x0106, /**< Remote device not bonded */
- BT_ERROR_AUTH_REJECTED = TIZEN_ERROR_BLUETOOTH|0x0107, /**< Authentication rejected */
- BT_ERROR_AUTH_FAILED = TIZEN_ERROR_BLUETOOTH|0x0108, /**< Authentication failed */
- BT_ERROR_REMOTE_DEVICE_NOT_FOUND = TIZEN_ERROR_BLUETOOTH|0x0109, /**< Remote device not found */
- BT_ERROR_SERVICE_SEARCH_FAILED = TIZEN_ERROR_BLUETOOTH|0x010A, /**< Service search failed */
- BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED = TIZEN_ERROR_BLUETOOTH|0x010B, /**< Remote device is not connected */
- BT_ERROR_AGAIN = TIZEN_ERROR_BLUETOOTH|0x010C, /**< Resource temporarily unavailable */
- BT_ERROR_SERVICE_NOT_FOUND = TIZEN_ERROR_BLUETOOTH|0x010D, /**< Service Not Found */
-} bt_error_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumerations of the Bluetooth adapter state.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_ADAPTER_DISABLED = 0x00, /**< Bluetooth adapter is disabled */
- BT_ADAPTER_ENABLED, /**< Bluetooth adapter is enabled */
-} bt_adapter_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumerations of the Bluetooth visibility mode.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE = 0x00, /**< Other devices cannot find your device via discovery */
- BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE, /**< Discoverable mode */
- BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE, /**< Discoverable mode with time limit. After specific period,
- it is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.*/
-} bt_adapter_visibility_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumerations of the discovery state of Bluetooth device.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_ADAPTER_DEVICE_DISCOVERY_STARTED, /**< Device discovery is started */
- BT_ADAPTER_DEVICE_DISCOVERY_FINISHED, /**< Device discovery is finished */
- BT_ADAPTER_DEVICE_DISCOVERY_FOUND, /**< The remote Bluetooth device is found */
-} bt_adapter_device_discovery_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth advertising state.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_ADAPTER_LE_ADVERTISING_STOPPED = 0x00, /**< Bluetooth advertising is stopped */
- BT_ADAPTER_LE_ADVERTISING_STARTED, /**< Bluetooth advertising is started */
-} bt_adapter_le_advertising_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth advertising mode.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_ADAPTER_LE_ADVERTISING_MODE_BALANCED, /**< Balanced advertising mode */
- BT_ADAPTER_LE_ADVERTISING_MODE_LOW_LATENCY, /**< Low latency advertising mode */
- BT_ADAPTER_LE_ADVERTISING_MODE_LOW_ENERGY /**< Low energy advertising mode */
-} bt_adapter_le_advertising_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth advertising filter policy.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_ADAPTER_LE_ADVERTISING_FILTER_DEFAULT = 0x00, /**< White list is not in use */
- BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_SCAN_WL = 0x01, /**< Allow the scan
- request that in the White list */
- BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_CONN_WL = 0x02, /**< Allow the connection
- request that in the White list */
- BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_SCAN_CONN_WL = 0x03, /**< Allow the
- scan and connection request that in the White list */
-} bt_adapter_le_advertising_filter_policy_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth LE packet type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_ADAPTER_LE_PACKET_ADVERTISING, /**< Advertising packet */
- BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, /**< Scan response packet */
-} bt_adapter_le_packet_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth le scan mode.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_ADAPTER_LE_SCAN_MODE_BALANCED, /**< Balanced mode of power consumption and connection latency */
- BT_ADAPTER_LE_SCAN_MODE_LOW_LATENCY, /**< Low connection latency but high power consumption */
- BT_ADAPTER_LE_SCAN_MODE_LOW_ENERGY /**< Low power consumption but high connection latency */
-} bt_adapter_le_scan_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of device disconnect reason.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_DEVICE_DISCONNECT_REASON_UNKNOWN, /**< Disconnected by unknown reason */
- BT_DEVICE_DISCONNECT_REASON_TIMEOUT, /**< Disconnected by timeout */
- BT_DEVICE_DISCONNECT_REASON_LOCAL_HOST, /**< Disconnected by local host */
- BT_DEVICE_DISCONNECT_REASON_REMOTE, /**< Disconnected by remote */
-} bt_device_disconnect_reason_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of connection link type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_DEVICE_CONNECTION_LINK_BREDR, /**< BR/EDR link */
- BT_DEVICE_CONNECTION_LINK_LE, /**< LE link */
- BT_DEVICE_CONNECTION_LINK_DEFAULT = 0xFF, /**< The connection type default */
-} bt_device_connection_link_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of device authorization state.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_DEVICE_AUTHORIZED, /**< The remote Bluetooth device is authorized */
- BT_DEVICE_UNAUTHORIZED, /**< The remote Bluetooth device is unauthorized */
-} bt_device_authorization_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of Bluetooth profile.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_PROFILE_RFCOMM = 0x01, /**< RFCOMM Profile */
- BT_PROFILE_A2DP = 0x02, /**< Advanced Audio Distribution Profile */
- BT_PROFILE_HSP = 0x04, /**< Headset Profile */
- BT_PROFILE_HID = 0x08, /**< Human Interface Device Profile */
- BT_PROFILE_NAP = 0x10, /**< Network Access Point Profile */
- BT_PROFILE_AG = 0x20, /**< Audio Gateway Profile */
- BT_PROFILE_GATT = 0x40, /**< Generic Attribute Profile */
- BT_PROFILE_NAP_SERVER = 0x80, /**< NAP server Profile */
- BT_PROFILE_A2DP_SINK = 0x100, /**< Advanced Audio Distribution Profile Sink role */
-} bt_profile_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of device address type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_DEVICE_PUBLIC_ADDRESS = 0x00, /**< Public address */
- BT_DEVICE_RANDOM_ADDRESS, /**< Random address */
-} bt_device_address_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of service class.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_SC_NONE = 0, /**< No service class */
- BT_SC_RES_SERVICE_MASK = 0x00000001, /**< RES service class */
- BT_SC_SPP_SERVICE_MASK = 0x00000002, /**< SPP service class */
- BT_SC_DUN_SERVICE_MASK = 0x00000004, /**< DUN service class */
- BT_SC_FAX_SERVICE_MASK = 0x00000008, /**< FAX service class */
- BT_SC_LAP_SERVICE_MASK = 0x00000010, /**< LAP service class */
- BT_SC_HSP_SERVICE_MASK = 0x00000020, /**< HSP service class */
- BT_SC_HFP_SERVICE_MASK = 0x00000040, /**< HFP service class */
- BT_SC_OPP_SERVICE_MASK = 0x00000080, /**< OPP service class */
- BT_SC_FTP_SERVICE_MASK = 0x00000100, /**< FTP service class */
- BT_SC_CTP_SERVICE_MASK = 0x00000200, /**< CTP service class */
- BT_SC_ICP_SERVICE_MASK = 0x00000400, /**< ICP service class */
- BT_SC_SYNC_SERVICE_MASK = 0x00000800, /**< SYNC service class */
- BT_SC_BPP_SERVICE_MASK = 0x00001000, /**< BPP service class */
- BT_SC_BIP_SERVICE_MASK = 0x00002000, /**< BIP service class */
- BT_SC_PANU_SERVICE_MASK = 0x00004000, /**< PANU service class */
- BT_SC_NAP_SERVICE_MASK = 0x00008000, /**< NAP service class */
- BT_SC_GN_SERVICE_MASK = 0x00010000, /**< GN service class */
- BT_SC_SAP_SERVICE_MASK = 0x00020000, /**< SAP service class */
- BT_SC_A2DP_SERVICE_MASK = 0x00040000, /**< A2DP service class */
- BT_SC_AVRCP_SERVICE_MASK = 0x00080000, /**< AVRCP service class */
- BT_SC_PBAP_SERVICE_MASK = 0x00100000, /**< PBAP service class */
- BT_SC_HID_SERVICE_MASK = 0x00200000, /**< HID service class */
- BT_SC_A2DP_SOURCE_SERVICE_MASK = 0x00400000, /**< A2DP SOURCE service class */
- BT_SC_ALL_SERVICE_MASK = 0x00FFFFFF, /**< ALL service class */
- BT_SC_MAX /**< MAX service class */
-} bt_service_class_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of major service class.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_MAJOR_SERVICE_CLASS_LIMITED_DISCOVERABLE_MODE = 0x002000, /**< Limited discoverable mode */
- BT_MAJOR_SERVICE_CLASS_POSITIONING = 0x010000, /**< Positioning class */
- BT_MAJOR_SERVICE_CLASS_NETWORKING = 0x020000, /**< Networking class */
- BT_MAJOR_SERVICE_CLASS_RENDERING = 0x040000, /**< Rendering class */
- BT_MAJOR_SERVICE_CLASS_CAPTURING = 0x080000, /**< Capturing class */
- BT_MAJOR_SERVICE_CLASS_OBJECT_TRANSFER = 0x100000, /**< Object transferring class */
- BT_MAJOR_SERVICE_CLASS_AUDIO = 0x200000, /**< Audio class*/
- BT_MAJOR_SERVICE_CLASS_TELEPHONY = 0x400000, /**< Telephony class */
- BT_MAJOR_SERVICE_CLASS_INFORMATION = 0x800000, /**< Information class */
-} bt_major_service_class_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of major device class.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_MAJOR_DEVICE_CLASS_MISC = 0x00, /**< Miscellaneous major device class*/
- BT_MAJOR_DEVICE_CLASS_COMPUTER = 0x01, /**< Computer major device class */
- BT_MAJOR_DEVICE_CLASS_PHONE = 0x02, /**< Phone major device class */
- BT_MAJOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT = 0x03, /**< LAN/Network access point major device class */
- BT_MAJOR_DEVICE_CLASS_AUDIO_VIDEO = 0x04, /**< Audio/Video major device class */
- BT_MAJOR_DEVICE_CLASS_PERIPHERAL = 0x05, /**< Peripheral major device class */
- BT_MAJOR_DEVICE_CLASS_IMAGING = 0x06, /**< Imaging major device class */
- BT_MAJOR_DEVICE_CLASS_WEARABLE = 0x07, /**< Wearable device class */
- BT_MAJOR_DEVICE_CLASS_TOY = 0x08, /**< Toy device class */
- BT_MAJOR_DEVICE_CLASS_HEALTH = 0x09, /**< Health device class */
- BT_MAJOR_DEVICE_CLASS_UNCATEGORIZED = 0x1F, /**< Uncategorized major device class */
-} bt_major_device_class_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of minor device class.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_MINOR_DEVICE_CLASS_COMPUTER_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_DESKTOP_WORKSTATION = 0x04, /**< Desktop workstation minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_SERVER_CLASS = 0x08, /**< Server minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_LAPTOP = 0x0C, /**< Laptop minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_HANDHELD_PC_OR_PDA = 0x10, /**< Handheld PC/PDA minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_PALM_SIZED_PC_OR_PDA = 0x14, /**< Palm sized PC/PDA minor device class of computer */
- BT_MINOR_DEVICE_CLASS_COMPUTER_WEARABLE_COMPUTER = 0x18, /**< Wearable(watch sized) minor device class of computer */
-
- BT_MINOR_DEVICE_CLASS_PHONE_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_CELLULAR = 0x04, /**< Cellular minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_CORDLESS = 0x08, /**< Cordless minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_SMART_PHONE = 0x0C, /**< Smart phone minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_WIRED_MODEM_OR_VOICE_GATEWAY = 0x10, /**< Wired modem or voice gateway minor device class of phone */
- BT_MINOR_DEVICE_CLASS_PHONE_COMMON_ISDN_ACCESS = 0x14, /**< Common ISDN minor device class of phone */
-
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_FULLY_AVAILABLE = 0x04, /**< Fully available minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_1_TO_17_PERCENT_UTILIZED = 0x20, /**< 1-17% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_17_TO_33_PERCENT_UTILIZED = 0x40, /**< 17-33% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_33_TO_50_PERCENT_UTILIZED = 0x60, /**< 33-50% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_50_to_67_PERCENT_UTILIZED = 0x80, /**< 50-67% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_67_TO_83_PERCENT_UTILIZED = 0xA0, /**< 67-83% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_83_TO_99_PERCENT_UTILIZED = 0xC0, /**< 83-99% utilized minor device class of LAN/Network access point */
- BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_NO_SERVICE_AVAILABLE = 0xE0, /**< No service available minor device class of LAN/Network access point */
-
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_WEARABLE_HEADSET = 0x04, /**< Wearable headset minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HANDS_FREE = 0x08, /**< Hands-free minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_MICROPHONE = 0x10, /**< Microphone minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_LOUDSPEAKER = 0x14, /**< Loudspeaker minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HEADPHONES = 0x18, /**< Headphones minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_PORTABLE_AUDIO = 0x1C, /**< Portable audio minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_CAR_AUDIO = 0x20, /**< Car audio minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_SET_TOP_BOX = 0x24, /**< Set-top box minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HIFI_AUDIO_DEVICE = 0x28, /**< Hifi audio minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VCR = 0x2C, /**< VCR minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_CAMERA = 0x30, /**< Video camera minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_CAMCORDER = 0x34, /**< Camcorder minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_MONITOR = 0x38, /**< Video monitor minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_DISPLAY_LOUDSPEAKER = 0x3C, /**< Video display and loudspeaker minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_CONFERENCING = 0x40, /**< Video conferencing minor device class of audio/video */
- BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_GAMING_TOY = 0x48, /**< Gaming/toy minor device class of audio/video */
-
- BT_MINOR_DEVICE_CLASS_PERIPHERA_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_KEY_BOARD = 0x40, /**< Key board minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_POINTING_DEVICE = 0x80, /**< Pointing device minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_COMBO_KEYBOARD_POINTING_DEVICE = 0xC0, /**< Combo keyboard or pointing device minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_JOYSTICK = 0x04, /**< Joystick minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_GAME_PAD = 0x08, /**< Game pad minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_REMOTE_CONTROL = 0x0C, /**< Remote control minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_SENSING_DEVICE = 0x10, /**< Sensing device minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_DIGITIZER_TABLET = 0x14, /**< Digitizer minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_CARD_READER = 0x18, /**< Card reader minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_DIGITAL_PEN = 0x1C, /**< Digital pen minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_HANDHELD_SCANNER = 0x20, /**< Handheld scanner minor device class of peripheral */
- BT_MINOR_DEVICE_CLASS_PERIPHERAL_HANDHELD_GESTURAL_INPUT_DEVICE = 0x24, /**< Handheld gestural input device minor device class of peripheral */
-
- BT_MINOR_DEVICE_CLASS_IMAGING_DISPLAY = 0x10, /**< Display minor device class of imaging */
- BT_MINOR_DEVICE_CLASS_IMAGING_CAMERA = 0x20, /**< Camera minor device class of imaging */
- BT_MINOR_DEVICE_CLASS_IMAGING_SCANNER = 0x40, /**< Scanner minor device class of imaging */
- BT_MINOR_DEVICE_CLASS_IMAGING_PRINTER = 0x80, /**< Printer minor device class of imaging */
-
- BT_MINOR_DEVICE_CLASS_WEARABLE_WRIST_WATCH = 0x04, /**< Wrist watch minor device class of wearable */
- BT_MINOR_DEVICE_CLASS_WEARABLE_PAGER = 0x08, /**< Pager minor device class of wearable */
- BT_MINOR_DEVICE_CLASS_WEARABLE_JACKET = 0x0C, /**< Jacket minor device class of wearable */
- BT_MINOR_DEVICE_CLASS_WEARABLE_HELMET = 0x10, /**< Helmet minor device class of wearable */
- BT_MINOR_DEVICE_CLASS_WEARABLE_GLASSES = 0x14, /**< Glasses minor device class of wearable */
-
- BT_MINOR_DEVICE_CLASS_TOY_ROBOT = 0x04, /**< Robot minor device class of toy */
- BT_MINOR_DEVICE_CLASS_TOY_VEHICLE = 0x08, /**< Vehicle minor device class of toy */
- BT_MINOR_DEVICE_CLASS_TOY_DOLL_ACTION = 0x0C, /**< Doll/Action minor device class of toy */
- BT_MINOR_DEVICE_CLASS_TOY_CONTROLLER = 0x10, /**< Controller minor device class of toy */
- BT_MINOR_DEVICE_CLASS_TOY_GAME = 0x14, /**< Game minor device class of toy */
-
- BT_MINOR_DEVICE_CLASS_HEALTH_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_BLOOD_PRESSURE_MONITOR = 0x04, /**< Blood pressure monitor minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_THERMOMETER = 0x08, /**< Thermometer minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_WEIGHING_SCALE = 0x0C, /**< Weighing scale minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_GLUCOSE_METER = 0x10, /**< Glucose minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_PULSE_OXIMETER = 0x14, /**< Pulse oximeter minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_HEART_PULSE_RATE_MONITOR = 0x18, /**< Heart/Pulse rate monitor minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_DATA_DISPLAY = 0x1C, /**< Health data display minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_STEP_COUNTER = 0x20, /**< Step counter minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_BODY_COMPOSITION_ANALYZER = 0x24, /**< Body composition analyzer minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_PEAK_FLOW_MONITOR = 0x28, /**< Peak flow monitor minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_MEDICATION_MONITOR = 0x2C, /**< Medication monitor minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_KNEE_PROSTHESIS = 0x30, /**< Knee prosthesis minor device class of health */
- BT_MINOR_DEVICE_CLASS_HEALTH_ANKLE_PROSTHESIS = 0x34, /**< Ankle prosthesis minor device class of health */
-} bt_minor_device_class_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of gap appearance type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_APPEARANCE_TYPE_UNKNOWN = 0x00, /**< Unknown appearance type */
- BT_APPEARANCE_TYPE_GENERIC_PHONE = 0x40, /**< Generic Phone type - Generic category */
- BT_APPEARANCE_TYPE_GENERIC_COMPUTER = 0x80, /**< Generic Computer type - Generic category */
- BT_APPEARANCE_TYPE_GENERIC_WATCH = 0xC0, /**< Generic Watch type - Generic category */
-} bt_appearance_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth device's LE connection mode.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_DEVICE_LE_CONNECTION_MODE_BALANCED, /**< Balanced mode of power consumption and connection latency */
- BT_DEVICE_LE_CONNECTION_MODE_LOW_LATENCY, /**< Low connection latency but high power consumption */
- BT_DEVICE_LE_CONNECTION_MODE_LOW_ENERGY, /**< Low power consumption but high connection latency */
-} bt_device_le_connection_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Enumerations of connected Bluetooth device event role.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_SOCKET_UNKNOWN = 0x00, /**< Unknown role*/
- BT_SOCKET_SERVER , /**< Server role*/
- BT_SOCKET_CLIENT, /**< Client role*/
-} bt_socket_role_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Enumerations of Bluetooth socket connection state.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_SOCKET_CONNECTED, /**< RFCOMM is connected */
- BT_SOCKET_DISCONNECTED, /**< RFCOMM is disconnected */
-} bt_socket_connection_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Enumerations for the types of profiles related with audio
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_AUDIO_PROFILE_TYPE_ALL = 0, /**< All supported profiles related with audio */
- BT_AUDIO_PROFILE_TYPE_HSP_HFP, /**< HSP(Headset Profile) and HFP(Hands-Free Profile) */
- BT_AUDIO_PROFILE_TYPE_A2DP, /**< A2DP(Advanced Audio Distribution Profile) */
- BT_AUDIO_PROFILE_TYPE_AG, /**< AG(Audio Gateway) */
- BT_AUDIO_PROFILE_TYPE_A2DP_SINK, /**< A2DP(Advanced Audio Distribution Profile) Sink role */
-} bt_audio_profile_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Enumerations for the call handling event
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_AG_CALL_HANDLING_EVENT_ANSWER = 0x00, /**< Request to answer an incoming call */
- BT_AG_CALL_HANDLING_EVENT_RELEASE, /**< Request to release a call */
- BT_AG_CALL_HANDLING_EVENT_REJECT, /**< Request to reject an incoming call */
-} bt_ag_call_handling_event_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Enumerations for the multi call handling event
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_AG_MULTI_CALL_HANDLING_EVENT_RELEASE_HELD_CALLS = 0x00, /**< Request to release held calls */
- BT_AG_MULTI_CALL_HANDLING_EVENT_RELEASE_ACTIVE_CALLS, /**< Request to release active calls */
- BT_AG_MULTI_CALL_HANDLING_EVENT_ACTIVATE_HELD_CALL, /**< Request to put active calls into hold state and activate another (held or waiting) call */
- BT_AG_MULTI_CALL_HANDLING_EVENT_MERGE_CALLS, /**< Request to add a held call to the conversation */
- BT_AG_MULTI_CALL_HANDLING_EVENT_EXPLICIT_CALL_TRANSFER, /**< Request to let a user who has two calls to connect these two calls together and release its connections to both other parties */
-} bt_ag_multi_call_handling_event_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the equalizer state
- * @since_tizen 3.0
- */
-typedef enum {
- BT_AVRCP_EQUALIZER_STATE_OFF = 0x01, /**< Equalizer Off */
- BT_AVRCP_EQUALIZER_STATE_ON, /**< Equalizer On */
-} bt_avrcp_equalizer_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the repeat mode
- * @since_tizen 3.0
- */
-typedef enum {
- BT_AVRCP_REPEAT_MODE_OFF = 0x01, /**< Repeat Off */
- BT_AVRCP_REPEAT_MODE_SINGLE_TRACK, /**< Single track repeat */
- BT_AVRCP_REPEAT_MODE_ALL_TRACK, /**< All track repeat */
- BT_AVRCP_REPEAT_MODE_GROUP, /**< Group repeat */
-} bt_avrcp_repeat_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the shuffle mode
- * @since_tizen 3.0
- */
-typedef enum {
- BT_AVRCP_SHUFFLE_MODE_OFF = 0x01, /**< Shuffle Off */
- BT_AVRCP_SHUFFLE_MODE_ALL_TRACK, /**< All tracks shuffle */
- BT_AVRCP_SHUFFLE_MODE_GROUP, /**< Group shuffle */
-} bt_avrcp_shuffle_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the scan mode
- * @since_tizen 3.0
- */
-typedef enum {
- BT_AVRCP_SCAN_MODE_OFF = 0x01, /**< Scan Off */
- BT_AVRCP_SCAN_MODE_ALL_TRACK, /**< All tracks scan */
- BT_AVRCP_SCAN_MODE_GROUP, /**< Group scan */
-} bt_avrcp_scan_mode_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumerations for the player state
- * @since_tizen 3.0
- */
-typedef enum {
- BT_AVRCP_PLAYER_STATE_STOPPED = 0x00, /**< Stopped */
- BT_AVRCP_PLAYER_STATE_PLAYING, /**< Playing */
- BT_AVRCP_PLAYER_STATE_PAUSED, /**< Paused */
- BT_AVRCP_PLAYER_STATE_FORWARD_SEEK, /**< Seek Forward */
- BT_AVRCP_PLAYER_STATE_REWIND_SEEK, /**< Seek Rewind */
-} bt_avrcp_player_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Enumeration for the player control commands
- * @since_tizen 3.0
- */
-typedef enum {
- BT_AVRCP_CONTROL_PLAY = 0x01, /**< Play */
- BT_AVRCP_CONTROL_PAUSE, /**< Pause */
- BT_AVRCP_CONTROL_STOP, /**< Stop */
- BT_AVRCP_CONTROL_NEXT, /**< Next Track*/
- BT_AVRCP_CONTROL_PREVIOUS, /**< Previous track */
- BT_AVRCP_CONTROL_FAST_FORWARD, /**< Fast Forward */
- BT_AVRCP_CONTROL_REWIND /**< Rewind */
-} bt_avrcp_player_command_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Structure of Track metadata information.
- * @since_tizen 3.0
- *
- * @see #bt_class_s
- */
-typedef struct {
- const char *title; /**< Title */
- const char *artist; /**< Artist */
- const char *album; /**< Album name */
- const char *genre; /**< Album Genre */
- unsigned int total_tracks; /**< The total number of tracks */
- unsigned int number; /**< Track number */
- unsigned int duration; /**< Duration */
-} bt_avrcp_metadata_attributes_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 3.0
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_control_initialize()
- * @see bt_avrcp_control_deinitialize()
- */
-typedef void (*bt_avrcp_control_connection_state_changed_cb) (bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the Song position mode is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] position Playback position in milliseconds. When position is 0 it means the track is starting and when it's greater than or equal to track's duration the track has ended.
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_position_changed_cb()
- * @see bt_avrcp_unset_position_changed_cb()
- */
-typedef void (*bt_avrcp_position_changed_cb) (unsigned int position, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the Song metadata information is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] track The song metadata information
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_track_info_changed_cb()
- * @see bt_avrcp_unset_track_info_changed_cb()
- */
-typedef void (*bt_avrcp_track_info_changed_cb) (bt_avrcp_metadata_attributes_info_s *track, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the Song Play status mode is changed by the remote target device.
- * @since_tizen 3.0
- * @param[in] play_state The song play status
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_play_status_changed_cb()
- * @see bt_avrcp_unset_play_status_changed_cb()
- */
-typedef void (*bt_avrcp_play_status_changed_cb) (bt_avrcp_player_state_e play_state, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Enumerations for the data channel type
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_HDP_CHANNEL_TYPE_RELIABLE = 0x01, /**< Reliable Data Channel */
- BT_HDP_CHANNEL_TYPE_STREAMING, /**< Streaming Data Channel */
-} bt_hdp_channel_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the integer type for GATT handle's value.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_DATA_TYPE_SINT8, /**< 8 bit signed int type */
- BT_DATA_TYPE_SINT16, /**< 16 bit signed int type */
- BT_DATA_TYPE_SINT32, /**< 32 bit signed int type */
- BT_DATA_TYPE_UINT8, /**< 8 bit unsigned int type */
- BT_DATA_TYPE_UINT16, /**< 16 bit unsigned int type */
- BT_DATA_TYPE_UINT32 /**< 32 bit unsigned int type */
-} bt_data_type_int_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the float type for GATT handle's value.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_DATA_TYPE_FLOAT, /**< 32 bit float type */
- BT_DATA_TYPE_SFLOAT /**< 16 bit float type */
-} bt_data_type_float_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the write type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_GATT_WRITE_TYPE_WRITE_NO_RESPONSE, /**< Write without response type */
- BT_GATT_WRITE_TYPE_WRITE /**< Write type */
-} bt_gatt_write_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the GATT handle's type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_GATT_TYPE_SERVICE = 0x01, /**< GATT service type */
- BT_GATT_TYPE_CHARACTERISTIC = 0x02, /** GATT characteristic type */
- BT_GATT_TYPE_DESCRIPTOR = 0x03, /** GATT descriptor type */
-} bt_gatt_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the service type.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_GATT_SERVICE_TYPE_PRIMARY = 0x01, /**< GATT primary service type */
- BT_GATT_SERVICE_TYPE_SECONDARY = 0x02, /**< GATT secondary service type */
-} bt_gatt_service_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of the characteristic's property.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_GATT_PROPERTY_BROADCAST = 0x01, /**< Broadcast property */
- BT_GATT_PROPERTY_READ = 0x02, /**< Read property */
- BT_GATT_PROPERTY_WRITE_WITHOUT_RESPONSE = 0x04, /**< Write without response property */
- BT_GATT_PROPERTY_WRITE = 0x08, /**< Write property */
- BT_GATT_PROPERTY_NOTIFY = 0x10, /**< Notify property */
- BT_GATT_PROPERTY_INDICATE = 0x20, /**< Indicate property */
- BT_GATT_PROPERTY_AUTHENTICATED_SIGNED_WRITES = 0x40, /**< Authenticated signed writes property */
- BT_GATT_PROPERTY_EXTENDED_PROPERTIES = 0x80, /**< Extended properties */
-} bt_gatt_property_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Enumerations of gatt server's service changing mode.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_GATT_CLIENT_SERVICE_ADDED, /**< Service added */
- BT_GATT_CLIENT_SERVICE_REMOVED, /**< Service removed */
-} bt_gatt_client_service_change_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Enumerations of the attribute's permission.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_GATT_PERMISSION_READ = 0x01, /**< Readable permission */
- BT_GATT_PERMISSION_WRITE = 0x02, /**< Writable permission */
- BT_GATT_PERMISSION_ENCRYPT_READ = 0x04, /**< Readable permission required encryption */
- BT_GATT_PERMISSION_ENCRYPT_WRITE = 0x08, /**< Writable permission required encryption */
- BT_GATT_PERMISSION_ENCRYPT_AUTHENTICATED_READ = 0x10, /**< Readable permission required encryption and authentication */
- BT_GATT_PERMISSION_ENCRYPT_AUTHENTICATED_WRITE = 0x20, /**< Writable permission required encryption and authentication */
-} bt_gatt_permission_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Enumerations of the remote device request types for attributes
- * @since_tizen 3.0
- */
-typedef enum {
- BT_GATT_REQUEST_TYPE_READ = 0x00, /* Read Requested */
- BT_GATT_REQUEST_TYPE_WRITE = 0x01, /* Write Requested */
-} bt_gatt_att_request_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Enumerations for the types of PAN(Personal Area Networking) service.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_PANU_SERVICE_TYPE_NAP = 0, /**< Network Access Point */
-} bt_panu_service_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Enumeration of address book location for PBAP.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_PBAP_SOURCE_DEVICE = 0x00, /**< Request for Addressbook from remote device */
- BT_PBAP_SOURCE_SIM , /**< Request for address book from SIM */
-} bt_pbap_address_book_source_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Enumeration of folder type.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_PBAP_FOLDER_PHONE_BOOK = 0x00, /**< Request for address book */
- BT_PBAP_FOLDER_INCOMING , /**< Request for incoming calls */
- BT_PBAP_FOLDER_OUTGOING , /**< Request for outgoing calls */
- BT_PBAP_FOLDER_MISSED , /**< Request for missed calls */
- BT_PBAP_FOLDER_COMBINED , /**< Request for combined calls */
-} bt_pbap_folder_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Enumeration of phone book search fields.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_PBAP_SEARCH_NAME = 0x00, /**< Request for search by name (default) */
- BT_PBAP_SEARCH_NUMBER, /**< Request for search by phone number */
- BT_PBAP_SEARCH_SOUND, /**< Request for search by sound */
-} bt_pbap_search_field_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Enumeration of vCard Formats.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_PBAP_VCARD_FORMAT_VCARD21 = 0x00, /**< vCard format 2.1 (default) */
- BT_PBAP_VCARD_FORMAT_VCARD30, /**< vCard format 3.0 */
-} bt_pbap_vcard_format_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Enumeration of sorting orders.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_PBAP_ORDER_INDEXED = 0x00, /**< Filter order indexed (default) */
- BT_PBAP_ORDER_ALPHANUMERIC, /**< Filter order alphanumeric */
- BT_PBAP_ORDER_PHONETIC, /**< Filter order phonetic */
-} bt_pbap_sort_order_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief The handle to control Bluetooth LE advertising.
- * @since_tizen 2.3.1
- */
-typedef void *bt_advertiser_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief The handle of a service, characteristic or descriptor.
- * @since_tizen 2.3.1
- */
-typedef void *bt_gatt_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief The handle of a GATT client which is associated with a remote device.
- * @since_tizen 2.3.1
- */
-typedef void *bt_gatt_client_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief The handle of a GATT server.
- * @since_tizen 3.0
- */
-typedef void *bt_gatt_server_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief The handle of calls state.
- * @since_tizen 2.3.1
- */
-typedef void *bt_call_list_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Class structure of device and service.
- * @since_tizen 2.3.1
- *
- * @see #bt_device_info_s
- * @see #bt_adapter_device_discovery_info_s
- * @see bt_device_bond_created_cb()
- * @see bt_adapter_device_discovery_state_changed_cb()
- */
-typedef struct {
- bt_major_device_class_e major_device_class; /**< Major device class. */
- bt_minor_device_class_e minor_device_class; /**< Minor device class. */
- int major_service_class_mask; /**< Major service class mask.
- This value can be a combination of #bt_major_service_class_e like #BT_MAJOR_SERVICE_CLASS_RENDERING | #BT_MAJOR_SERVICE_CLASS_AUDIO */
-} bt_class_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Structure of device discovery information.
- * @since_tizen 2.3.1
- *
- * @see #bt_class_s
- * @see bt_adapter_device_discovery_state_changed_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- char *remote_name; /**< The name of remote device */
- bt_class_s bt_class; /**< The Bluetooth classes */
- int rssi; /**< The strength indicator of received signal */
- bool is_bonded; /**< The bonding state */
- char **service_uuid; /**< The UUID list of service */
- int service_count; /**< The number of services */
- bt_appearance_type_e appearance; /**< The Bluetooth appearance */
- int manufacturer_data_len; /**< manufacturer specific data length */
- char *manufacturer_data; /**< manufacturer specific data */
-} bt_adapter_device_discovery_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Structure of le scan result information.
- * @since_tizen 2.3.1
- *
- * @see bt_adapter_le_start_scan()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- bt_device_address_type_e address_type; /**< The address type of remote device */
- int rssi; /**< The strength indicator of received signal */
- int adv_data_len; /**< advertising indication data length */
- char *adv_data; /**< advertising indication data */
- int scan_data_len; /**< scan response data length */
- char *scan_data; /**< scan response data */
-} bt_adapter_le_device_scan_result_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Structure of le iBeacon scan result information.
- * @since_tizen 3.0
- *
- * @see bt_adapter_le_start_scan()
- */
-typedef struct {
- int company_id; /**< company ID */
- int ibeacon_type; /**< Ibeacon type */
- char *uuid; /**< UUID */
- int major_id; /**< Major ID */
- int minor_id; /**< Minor ID */
- int measured_power; /**< measured Power */
-} bt_adapter_ibeacon_scan_result_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief LE service data structure.
- * @since_tizen 2.3.1
- *
- * @see bt_adapter_le_get_scan_result_service_data()
- */
-typedef struct {
- char *service_uuid; /**< 16 bit UUID of the service data */
- char *service_data; /**< Service data */
- int service_data_len; /**< Service data length */
-} bt_adapter_le_service_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Device information structure used for identifying pear device.
- * @since_tizen 2.3.1
- *
- * @see #bt_class_s
- * @see bt_device_bond_created_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- char *remote_name; /**< The name of remote device */
- bt_class_s bt_class; /**< The Bluetooth classes */
- char **service_uuid; /**< The UUID list of service */
- int service_count; /**< The number of services */
- bool is_bonded; /**< The bonding state */
- bool is_connected; /**< The connection state */
- bool is_authorized; /**< The authorization state */
- int manufacturer_data_len; /**< manufacturer specific data length */
- char *manufacturer_data; /**< manufacturer specific data */
-} bt_device_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Service Discovery Protocol (SDP) data structure.
- * @since_tizen 2.3.1
- *
- * @details This protocol is used for discovering available services or pear device,
- * and finding one to connect with.
- *
- * @see bt_device_service_searched_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- char **service_uuid; /**< The UUID list of service */
- int service_count; /**< The number of services. */
-} bt_device_sdp_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Device connection information structure.
- * @since_tizen 2.3.1
- *
- * @see bt_device_connection_state_changed_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- bt_device_connection_link_type_e link; /**< Link type */
- bt_device_disconnect_reason_e disconn_reason; /**< Disconnection reason */
-} bt_device_connection_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Rfcomm connection data used for exchanging data between Bluetooth devices.
- * @since_tizen 2.3.1
- *
- * @see bt_socket_connection_state_changed_cb()
- */
-typedef struct {
- int socket_fd; /**< The file descriptor of connected socket */
- int server_fd; /**< The file descriptor of the server socket or -1 for client connection */
- bt_socket_role_e local_role; /**< The local device role in this connection */
- char *remote_address; /**< The remote device address */
- char *service_uuid; /**< The service UUId */
-} bt_socket_connection_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Structure of RFCOMM received data.
- * @since_tizen 2.3.1
- *
- * @remarks User can use standard linux functions for reading/writing
- * data from/to sockets.
- *
- * @see bt_socket_data_received_cb()
- */
-typedef struct {
- int socket_fd; /**< The socket fd */
- int data_size; /**< The length of the received data */
- char *data; /**< The received data */
-} bt_socket_received_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the Bluetooth adapter state changes.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of the adapter state changing
- * @param[in] adapter_state The adapter state to be changed
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_adapter_set_state_changed_cb()
- * @see bt_adapter_unset_state_changed_cb()
- */
-typedef void (*bt_adapter_state_changed_cb)(int result, bt_adapter_state_e adapter_state, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when adapter name changes.
- * @since_tizen 2.3.1
- *
- * @param[in] device_name The name of the Bluetooth device to be changed
- * @param[in] user_data The user data passed from the callback registration function
- * @pre This function will be invoked when the name of Bluetooth adapter changes
- * if you register this callback using bt_adapter_set_name_changed_cb().
- * @see bt_adapter_set_name()
- * @see bt_adapter_set_name_changed_cb()
- * @see bt_adapter_unset_name_changed_cb()
- */
-typedef void (*bt_adapter_name_changed_cb)(char *device_name, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the visibility mode changes.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of the visibility mode changing
- * @param[in] visibility_mode The visibility mode to be changed
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre This function will be invoked when the visibility of Bluetooth adapter changes
- * if you register this callback using bt_adapter_set_visibility_mode_changed_cb().
- *
- * @see bt_adapter_set_visibility_mode_changed_cb()
- * @see bt_adapter_unset_visibility_mode_changed_cb()
- */
-typedef void (*bt_adapter_visibility_mode_changed_cb)
- (int result, bt_adapter_visibility_mode_e visibility_mode, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called every second until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
- * @since_tizen 2.3.1
- *
- * @remarks This callback function is called only if visibility mode is #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE.
- * @param[in] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds)
- * @param[in] user_data The user data passed from the callback registration function
- * @pre This function will be invoked if you register this callback using bt_adapter_set_visibility_duration_changed_cb().
- * @see bt_adapter_set_visibility_duration_changed_cb()
- * @see bt_adapter_unset_visibility_duration_changed_cb()
- */
-typedef void (*bt_adapter_visibility_duration_changed_cb)(int duration, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the state of device discovery changes.
- * @since_tizen 2.3.1
- *
- * @remarks If \a discovery_state is #BT_ADAPTER_DEVICE_DISCOVERY_FOUND,
- * then you can get some information, such as remote device address, remote device name, rssi, and bonding state.
- *
- * @param[in] result The result of the device discovery
- * @param[in] discovery_state The discovery state to be changed
- * @param[in] discovery_info The information of the discovered device \n
- * If \a discovery_state is #BT_ADAPTER_DEVICE_DISCOVERY_STARTED or
- * #BT_ADAPTER_DEVICE_DISCOVERY_FINISHED, then \a discovery_info is NULL.
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre Either bt_adapter_start_device_discovery() or bt_adapter_stop_device_discovery() will invoke this function
- * if you register this callback using bt_adapter_set_device_discovery_state_changed_cb().
- *
- * @see bt_adapter_start_device_discovery()
- * @see bt_adapter_stop_device_discovery()
- * @see bt_adapter_set_device_discovery_state_changed_cb()
- * @see bt_adapter_unset_device_discovery_state_changed_cb()
- *
- */
-typedef void (*bt_adapter_device_discovery_state_changed_cb)
- (int result, bt_adapter_device_discovery_state_e discovery_state, bt_adapter_device_discovery_info_s *discovery_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when you get bonded devices repeatedly.
- * @since_tizen 2.3.1
- *
- * @param[in] device_info The bonded device information
- * @param[in] user_data The user data passed from the foreach function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_adapter_foreach_bonded_device() will invoke this function.
- *
- * @see bt_adapter_foreach_bonded_device()
- *
- */
-typedef bool (*bt_adapter_bonded_device_cb)(bt_device_info_s *device_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Called when the LE advertisement has been found.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of the LE scan
- * @param[in] info The information of the found LE advertisement.
- * @param[in] user_data The user data passed from the start function
- *
- * @see bt_adapter_le_start_scan()
- *
- */
-typedef void (*bt_adapter_le_scan_result_cb)(int result,
- bt_adapter_le_device_scan_result_info_s *info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Called when the state of advertiser changes.
- * @since_tizen 2.3.1
- *
- * @param[out] result The result of the requested state change of advertiser
- * @param[out] advertiser The handle of the state changed advertiser
- * @param[out] adv_state The advertiser state to be changed
- * @param[out] user_data The user data passed from the start function
- *
- * @see bt_adapter_le_start_advertising_new()
- * @see bt_adapter_le_stop_advertising()
- */
-typedef void (*bt_adapter_le_advertising_state_changed_cb)(int result,
- bt_advertiser_h advertiser, bt_adapter_le_advertising_state_e adv_state, void *user_data);
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the process of creating bond finishes.
- * @since_tizen 2.3.1
- *
- * @remarks If the remote user does not respond within 60 seconds, a time out will happen with #BT_ERROR_TIMED_OUT result code.\n
- * If bt_device_cancel_bonding() is called and it returns #BT_ERROR_NONE, then this callback function will be called
- * with #BT_ERROR_CANCELLED result. \n
- * If creating a bond succeeds but service search fails, then this callback will be called with #BT_ERROR_SERVICE_SEARCH_FAILED.
- * In this case, you should try service search again by bt_device_start_service_search() to get the supported service list.
- *
- * @param[in] result The result of the bonding device
- * @param[in] device_info The device information which you creates bond with
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre Either bt_device_create_bond() will invoke this function
- * if you register this callback using bt_device_set_bond_created_cb().
- *
- * @see bt_device_create_bond()
- * @see bt_device_cancel_bonding()
- * @see bt_device_set_bond_created_cb()
- * @see bt_device_unset_bond_created_cb()
- */
-typedef void (*bt_device_bond_created_cb)(int result, bt_device_info_s *device_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when you get connected profiles repeatedly.
- * @since_tizen 2.3.1
- *
- * @param[in] profile The connected Bluetooth profile
- * @param[in] user_data The user data passed from the foreach function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_device_foreach_connected_profiles() will invoke this function.
- * @see bt_device_foreach_connected_profiles()
- */
-typedef bool (*bt_device_connected_profile)(bt_profile_e profile, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the bond destroys.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result that a bond is destroyed
- * @param[in] remote_address The address of the remote Bluetooth device to destroy bond with
- * @param[in] user_data The user data passed from the callback registration function
- * @pre bt_device_destroy_bond() will invoke this function
- * if you register this callback using bt_device_set_bond_destroyed_cb().
- *
- * @see bt_device_destroy_bond()
- * @see bt_device_set_bond_destroyed_cb()
- * @see bt_device_unset_bond_destroyed_cb()
- */
-typedef void (*bt_device_bond_destroyed_cb)(int result, char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the authorization of device changes.
- * @since_tizen 2.3.1
- *
- * @param[in] authorization The authorization of device
- * @param[in] remote_address The address of the remote Bluetooth device which is (un)authorized
- * @param[in] user_data The user data passed from the callback registration function
- * @pre bt_device_set_authorization() will invoke this function if you register this callback using bt_device_set_authorization_changed_cb().
- *
- * @see bt_device_set_authorization()
- * @see #bt_device_set_authorization_changed_cb()
- * @see #bt_device_unset_authorization_changed_cb()
- */
-typedef void (*bt_device_authorization_changed_cb)
- (bt_device_authorization_e authorization, char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the process of service search finishes.
- * @since_tizen 2.3.1
- *
- * @remark
- *
- * @param[in] result The result of the service searching
- * @param[in] sdp_info The structure of service lists found on a device
- * @param[in] user_data The user data passed from the callback registration function
- * @pre Either bt_device_start_service_search() will invoke this function
- * if you register this callback using bt_device_set_service_searched_cb().
- *
- * @see bt_device_start_service_search()
- * @see bt_device_set_service_searched_cb()
- * @see bt_device_unset_service_searched_cb()
- *
- */
-typedef void (*bt_device_service_searched_cb)(int result, bt_device_sdp_info_s *sdp_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3.1
- *
- * @param[in] connected The connection status: (@c true = connected, @c false = disconnected)
- * @param[in] conn_info The connection information
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_device_set_connection_state_changed_cb()
- * @see bt_device_unset_connection_state_changed_cb()
- */
-typedef void (*bt_device_connection_state_changed_cb)(bool connected, bt_device_connection_info_s *conn_info, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Called when you receive data.
- * @since_tizen 2.3.1
- *
- * @param[in] data The received data from the remote device
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre When the connected remote Bluetooth device invokes bt_socket_send_data(),
- * this function will be invoked if you register this function using bt_socket_set_data_received_cb().
- *
- * @see bt_socket_set_data_received_cb()
- * @see bt_socket_unset_data_received_cb()
- * @see bt_socket_send_data()
- */
-typedef void (*bt_socket_data_received_cb)(bt_socket_received_data_s *data, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Called when the socket connection state changes.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of connection state changing
- * @param[in] connection_state The connection state
- * @param[in] connection The connection information which is established or disconnected
- * @param[in] user_data The user data passed from the callback registration function
- * @pre Either bt_socket_connect_rfcomm() will invoke this function.
- * In addition, bt_socket_connection_state_changed_cb() will be invoked when the socket connection state is changed.
- * @see bt_socket_listen_and_accept_rfcomm()
- * @see bt_socket_connect_rfcomm()
- * @see bt_socket_set_connection_state_changed_cb()
- * @see bt_socket_unset_connection_state_changed_cb()
- */
-typedef void (*bt_socket_connection_state_changed_cb)
- (int result, bt_socket_connection_state_e connection_state, bt_socket_connection_s *connection, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
- * @brief Called when a RFCOMM connection is requested.
- * @since_tizen 2.3.1
- *
- * @param[in] socket_fd The file descriptor of socket on which a connection is requested
- * @param[in] remote_address The address of remote device
- * @param[in] user_data The user data passed from the callback registration function
- * @pre If you register this callback function by bt_socket_set_connection_requested_cb(),
- * bt_socket_connection_requested_cb() will be invoked.
- */
-typedef void (*bt_socket_connection_requested_cb) (int socket_fd, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Called when an OPP connection is requested.
- * @since_tizen 2.3.1
- *
- * @details You must call bt_opp_server_accept_connection() if you want to accept.
- * Otherwise, you must call bt_opp_server_reject_connection().
- * @param[in] remote_address The address of remote device
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_server_accept()
- * @see bt_opp_server_reject()
- */
-typedef void (*bt_opp_server_connection_requested_cb)(const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Called when a file is being transferred.
- * @since_tizen 2.3.1
- *
- * @param[in] file The path of file to be pushed
- * @param[in] size The file size (bytes)
- * @param[in] percent The progress in percentage (1 ~ 100)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_server_accept()
- * @see bt_opp_server_accept_connection()
- */
-typedef void (*bt_opp_server_transfer_progress_cb) (const char *file, long long size, int percent, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Called when a transfer is finished.
- * @since_tizen 2.3.1
- *
- * @param[in] error_code The result of push
- * @param[in] file The path of file to be pushed
- * @param[in] size The file size (bytes)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_server_accept()
- * @see bt_opp_server_accept_connection()
- */
-typedef void (*bt_opp_server_transfer_finished_cb) (int result, const char *file, long long size, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Called when OPP server responds to the push request.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of OPP server response
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @pre bt_opp_client_push_files() will invoke this function.
- * @see bt_opp_client_push_files()
- */
-typedef void (*bt_opp_client_push_responded_cb)(int result, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Called when each file is being transferred.
- * @since_tizen 2.3.1
- *
- * @param[in] file The path of file to be pushed
- * @param[in] size The file size (bytes)
- * @param[in] percent The progress in percentage (1 ~ 100). 100 means that a file is transferred completely.
- * @param[in] user_data The user data passed from the callback registration function
- * @pre bt_opp_client_push_files() will invoke this function.
- * @see bt_opp_client_push_files()
- */
-typedef void (*bt_opp_client_push_progress_cb)(const char *file, long long size, int percent, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
- * @brief Called when the push request is finished.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of the push request
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_client_push_files()
- */
-typedef void (*bt_opp_client_push_finished_cb)(int result, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3.1
- *
- * @details This callback is called when the connection state is changed.
- * When you call bt_audio_connect() or bt_audio_disconnect(), this callback is also called with error result even though these functions fail.
- * @param[in] result The result of changing the connection state
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] type The type of audio profile except #BT_AUDIO_PROFILE_TYPE_ALL
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_audio_set_connection_state_changed_cb()
- * @see bt_audio_unset_connection_state_changed_cb()
- */
-typedef void (*bt_audio_connection_state_changed_cb) (int result, bool connected, const char *remote_address, bt_audio_profile_type_e type, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when a call handling event happened from Hands-Free.
- * @since_tizen 2.3.1
- *
- * @param[in] event The call handling event happened from Hands-Free
- * @param[in] call_id The call ID
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_call_handling_event_cb()
- * @see bt_ag_unset_call_handling_event_cb()
- */
-typedef void (*bt_ag_call_handling_event_cb) (bt_ag_call_handling_event_e event, unsigned int call_id, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when a multi call handling event happened from Hands-Free.
- * @since_tizen 2.3.1
- *
- * @param[in] event The call handling event happened from Hands-Free
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_multi_call_handling_event_cb()
- * @see bt_ag_unset_multi_call_handling_event_cb()
- */
-typedef void (*bt_ag_multi_call_handling_event_cb) (bt_ag_multi_call_handling_event_e event, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
- * @since_tizen 2.3.1
- *
- * @param[in] dtmf The DTMF transmitted from Hands-Free
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_dtmf_transmitted_cb()
- * @see bt_ag_unset_dtmf_transmitted_cb()
- */
-typedef void (*bt_ag_dtmf_transmitted_cb) (const char *dtmf, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when the speaker gain of the remote device is changed.
- * @since_tizen 2.3.1
- *
- * @param[in] gain The gain of speaker (0 ~ 15)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_speaker_gain_changed_cb()
- * @see bt_ag_unset_speaker_gain_changed_cb()
- */
-typedef void (*bt_ag_speaker_gain_changed_cb) (int gain, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when the microphone gain of the remote device is changed.
- * @since_tizen 2.3.1
- *
- * @param[in] gain The gain of microphone (0 ~ 15)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_microphone_gain_changed_cb()
- * @see bt_ag_unset_microphone_gain_changed_cb()
- */
-typedef void (*bt_ag_microphone_gain_changed_cb) (int gain, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3.1
- *
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_target_initialize()
- * @see bt_avrcp_target_deinitialize()
- */
-typedef void (*bt_avrcp_target_connection_state_changed_cb) (bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the equalizer state is changed by the remote control device.
- * @since_tizen 2.3.1
- *
- * @param[in] equalizer The equalizer state
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_equalizer_state_changed_cb()
- * @see bt_avrcp_unset_equalizer_state_changed_cb()
- */
-typedef void (*bt_avrcp_equalizer_state_changed_cb) (bt_avrcp_equalizer_state_e equalizer, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the repeat mode is changed by the remote control device.
- * @since_tizen 2.3.1
- *
- * @param[in] repeat The repeat mode
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_repeat_mode_changed_cb()
- * @see bt_avrcp_unset_repeat_mode_changed_cb()
- */
-typedef void (*bt_avrcp_repeat_mode_changed_cb) (bt_avrcp_repeat_mode_e repeat, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the shuffle mode is changed by the remote control device.
- * @since_tizen 2.3.1
- *
- * @param[in] shuffle The shuffle mode
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_shuffle_mode_changed_cb()
- * @see bt_avrcp_unset_shuffle_mode_changed_cb()
- */
-typedef void (*bt_avrcp_shuffle_mode_changed_cb) (bt_avrcp_shuffle_mode_e shuffle, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
- * @brief Called when the scan mode is changed by the remote control device.
- * @since_tizen 2.3.1
- *
- * @param[in] shuffle The shuffle mode
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_avrcp_set_scan_mode_changed_cb()
- * @see bt_avrcp_unset_scan_mode_changed_cb()
- */
-typedef void (*bt_avrcp_scan_mode_changed_cb) (bt_avrcp_scan_mode_e scan, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_HOST_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3.1
- *
- * @details This callback is called when the connection state is changed.
- * When you call bt_hid_host_connect() or bt_hid_host_disconnect(), this callback is also called with error result even though these functions fail.
- * @param[in] result The result of changing the connection state
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hid_host_connect()
- * @see bt_hid_host_disconnect()
- */
-typedef void (*bt_hid_host_connection_state_changed_cb) (int result, bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Called when the connection is established.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of connecting to the remote device
- * @param[in] remote_address The address of connected remote device
- * @param[in] app_id The ID of application
- * @param[in] type The type of HDP(Health Device Profile) channel
- * @param[in] channel The connected data channel
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hdp_disconnected_cb
- * @see bt_hdp_set_connection_state_changed_cb()
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-typedef void (*bt_hdp_connected_cb) (int result, const char *remote_address, const char *app_id,
- bt_hdp_channel_type_e type, unsigned int channel, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Called when the connection is disconnected.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of disconnecting from the remote device
- * @param[in] remote_address The address of disconnected remote device
- * @param[in] channel The connected data channel
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hdp_connected_cb
- * @see bt_hdp_set_connection_state_changed_cb()
- * @see bt_hdp_unset_connection_state_changed_cb()
- */
-typedef void (*bt_hdp_disconnected_cb) (int result, const char *remote_address, unsigned int channel, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
- * @brief Called when the you receive the data.
- * @since_tizen 2.3.1
- *
- * @param[in] channel The connected data channel
- * @param[in] data The received data
- * @param[in] size The size of received data (byte)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hdp_set_data_received_cb()
- * @see bt_hdp_unset_data_received_cb()
- */
-typedef void (*bt_hdp_data_received_cb) (unsigned int channel, const char *data, unsigned int size, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when you get GATT handles repeatedly
- * @since_tizen 2.3.1
- *
- * @param[in] total The total number of GATT handles to be called
- * @param[in] index The index of current GATT handle. It starts from 0.
- * @param[in] gatt_handle The GATT handle
- * @param[in] user_data The user data passed from the foreach function
- *
- * @see bt_gatt_service_foreach_characteristics()
- * @see bt_gatt_service_foreach_included_services()
- * @see bt_gatt_characteristic_foreach_descriptors()
- * @see bt_gatt_client_foreach_services()
- */
-typedef bool (*bt_gatt_foreach_cb) (int total, int index, bt_gatt_h gatt_handle,
- void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when the client request(e.g. read / write) has been completed
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of a request
- * @param[in] request_handle The requesting GATT handle
- * @param[in] user_data The user data passed from the requesting function
- *
- * @see bt_gatt_client_read_value()
- * @see bt_gatt_client_write_value()
- */
-typedef void (*bt_gatt_client_request_completed_cb) (int result,
- bt_gatt_h request_handle, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when a value of a watched characteristic's GATT handle has been changed
- * @since_tizen 2.3.1
- *
- * @remarks After this function is returned, a changed value is automatically
- * applied to @a characteristic. Before that, @a characteristic has an old value.
- *
- * @param[in] characteristic The characteristic's GATT handle of which value change is informed. It has an old value.
- * @param[in] value The new value
- * @param[in] len The length of @a value
- * @param[in] user_data The user data passed from the registering function
- *
- * @see bt_gatt_client_set_characteristic_value_changed_cb()
- */
-typedef void (*bt_gatt_client_characteristic_value_changed_cb) (bt_gatt_h characteristic,
- char *value, int len, void *user_data);
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when a service of a remote GATT server has been changed.
- * @since_tizen 3.0
- *
- * @param[in] client The handle of a GATT client which is associated with a remote device.
- * @param[in] change_type The changed type
- * @param[in] service_uuid The changed service uuid
- * @param[in] user_data The user data passed from the registering function
- *
- * @see bt_gatt_client_set_characteristic_value_changed_cb()
- */
-typedef void (*bt_gatt_client_service_changed_cb) (bt_gatt_client_h client,
- bt_gatt_client_service_change_type_e change_type,
- const char* service_uuid, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3.1
- *
- * @details This callback is called when the connection state is changed.
- * When you called bt_gatt_connect() or bt_gatt_disconnect(), this callback is also called with error result even though these functions fail.
- *
- * @param[in] result The result of changing the connection state.
- * @param[in] connected The state to be changed, @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote_address
- * @param[in] user_data The user data passed from the callback registration function.
- *
- * @see bt_gatt_connect()
- * @see bt_gatt_disconnect()
- * @see bt_gatt_set_connection_state_changed_cb()
- * @see bt_gatt_unset_connection_state_changed_cb()
- */
-typedef void (*bt_gatt_connection_state_changed_cb)(int result, bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Called when a value of a characteristic or descriptor's GATT handle has been changed.
- * @since_tizen 3.0
- *
- * @details For finishing the request, call the function #bt_gatt_server_send_response in callback.
- *
- * @remarks After this function is returned, a changed value is automatically
- * applied to @a gatt_handle. Before that, @a gatt_handle has an old value.
- * @remarks The @a remote_address must not be freed by application.
- * @remarks The @a server must not be freed by application.
- * @remarks The @a gatt_handle must not be freed by application.
- * @remarks The @a value must not be freed by application.
- *
- * @param[in] remote_address The address of the remote device which requests a change
- * @param[in] request_id The identification of this request. It will be used to send a response.
- * @param[in] server The GATT server handle
- * @param[in] gatt_handle The characteristic or descriptor's GATT handle which has an old value
- * @param[in] response_needed Indicates whether a response is required by the remote device - @c true if required, @c false if not
- * @param[in] offset The requested offset from where the @a gatt_handle value will be updated
- * @param[in] value The new value
- * @param[in] len The length of @a value
- * @param[in] user_data The user data passed from the registration function
- *
- * @see bt_gatt_server_set_write_value_requested_cb()
- * @see bt_gatt_server_send_response()
- */
-typedef void (*bt_gatt_server_write_value_requested_cb) (const char *remote_address,
- int request_id, bt_gatt_server_h server,
- bt_gatt_h gatt_handle, bool response_needed, int offset,
- const char *value, int len, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Called when the remote device requests to read a value on a GATT server.
- * @since_tizen 3.0
- *
- * @details For finishing the request, call the function #bt_gatt_server_send_response in callback.
- *
- * @remarks The @a remote_address must not be freed by application.
- * @remarks The @a server must not be freed by application.
- * @remarks The @a gatt_handle must not be freed by application.
- *
- * @param[in] remote_address The address of the requesting remote device
- * @param[in] request_id The identification of this request. It will be used to send a response.
- * @param[in] server The GATT server handle
- * @param[in] gatt_handle The characteristic or descriptor's GATT handle to be read
- * @param[in] offset The requested offset from where the GATT handle's value is read
- * @param[in] user_data The user data passed from the registration function
- *
- * @see bt_gatt_server_set_read_value_requested_cb()
- * @see bt_gatt_server_send_response()
- */
-typedef void (*bt_gatt_server_read_value_requested_cb) (const char *remote_address,
- int request_id, bt_gatt_server_h server, bt_gatt_h gatt_handle,
- int offset, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Called when the remote device enables or disables the Notification/Indication for particular characteristics.
- * @since_tizen 3.0
- *
- * @details By using this callback function, server can know notification state.
- *
- * @remarks The @a server must not be freed by application.
- * @remarks The @a gatt_handle must not be freed by application.
- *
- * @param[in] notify Indicates whether the Notification/Indication is enabled or not
- * @param[in] server The GATT server handle
- * @param[in] gatt_handle The characteristic's GATT handle to be read
- * @param[in] user_data The user data passed from the registration function
- *
- * @see bt_gatt_server_set_read_value_requested_cb()
- */
-typedef void (*bt_gatt_server_characteristic_notification_state_changed_cb) (bool notify,
- bt_gatt_server_h server, bt_gatt_h gatt_handle, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_SERVER_MODULE
- * @brief Called when the sending notification / indication is done.
- * @since_tizen 3.0
- *
- * @remarks The @a remote_address must not be freed by application.
- * @remarks The @a server must not be freed by application.
- * @remarks The @a characteristic must not be freed by application.
- *
- * @remarks In case of an indication, once a confirmation is received from the remote device this callback will be called. \n
- * This callback will be called several times if there are two or more remote devices which enable a Client Characteristic Configuration Descriptor(CCCD). \n
- * For the last remote device, @a completed will be set as true.
- *
- * @param[in] result The result of a sending operation
- * @param[in] remote_address The address of the remote device
- * @param[in] server The GATT server handle
- * @param[in] characteristic The characteristic's GATT handle
- * @param[in] completed If this callback is for the last remote device which enables a CCCD, it will be true. Or it will be false.
- * @param[in] user_data The user data passed from the requesting function
- *
- * @see bt_gatt_server_notify_characteristic_changed_value()
- */
-typedef void (*bt_gatt_server_notification_sent_cb) (int result,
- const char *remote_address, bt_gatt_server_h server,
- bt_gatt_h characteristic, bool completed, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3.1
- *
- * @param[in] connected Indicates whether a client is connected or disconnected
- * @param[in] remote_address The remote address
- * @param[in] interface_name The interface name. For example, bnep0, bnep1.
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_nap_set_connection_state_changed_cb()
- * @see bt_nap_unset_connection_state_changed_cb()
- */
-typedef void (*bt_nap_connection_state_changed_cb) (bool connected, const char *remote_address, const char *interface_name, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 2.3.1
- *
- * @details This callback is called when the connection state is changed.
- * When you call bt_panu_connect() or bt_panu_disconnect(), this callback is also called with error result even though these functions fail.
- * @param[in] result The result of changing the connection state
- * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
- * @param[in] remote_address The remote address
- * @param[in] type The type of PAN service
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_nap_set_connection_state_changed_cb()
- * @see bt_nap_unset_connection_state_changed_cb()
- */
-typedef void (*bt_panu_connection_state_changed_cb) (int result, bool connected, const char *remote_address, bt_panu_service_type_e type, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth HID mouse's button.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HID_MOUSE_BUTTON_NONE = 0x00, /**<The mouse's none value*/
- BT_HID_MOUSE_BUTTON_LEFT = 0x01, /**<The mouse's left button value*/
- BT_HID_MOUSE_BUTTON_RIGHT = 0x02, /**<The mouse's right button value*/
- BT_HID_MOUSE_BUTTON_MIDDLE = 0x04 /**<The mouse's middle button value*/
-} bt_hid_mouse_button_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief The structure type containing the HID mouse event information.
- * @since_tizen 3.0
- *
- * @see bt_hid_device_send_mouse_event()
- */
-typedef struct {
- int buttons; /**< The button values, we can combine key's values when we pressed multiple mouse buttons*/
- int axis_x; /**< The location's x value, -128 ~127 */
- int axis_y; /**< The location's y value, -128 ~127 */
- int padding; /**< The padding value, -128 ~127 */
-} bt_hid_mouse_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief The structure type containing the HID keyboard event information.
- * @since_tizen 3.0
- * @details If you want to know more detail values, refer to http://www.usb.org/developers/hidpage/ and see "HID Usage Tables"
- *
- * @see bt_hid_device_send_key_event()
- */
-typedef struct {
- unsigned char modifier; /**< The modifier keys : such as shift, alt */
- unsigned char key[8]; /**< The key value - currently pressed keys : Max 8 at once */
-} bt_hid_key_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth HID header type.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HID_HEADER_HANDSHAKE, /**< The Bluetooth HID header type: Handshake */
- BT_HID_HEADER_HID_CONTROL, /**< The Bluetooth HID header type: HID control */
- BT_HID_HEADER_GET_REPORT, /**< The Bluetooth HID header type: Get report */
- BT_HID_HEADER_SET_REPORT, /**< The Bluetooth HID header type: Set report */
- BT_HID_HEADER_GET_PROTOCOL, /**< The Bluetooth HID header type: Get protocol */
- BT_HID_HEADER_SET_PROTOCOL, /**< The Bluetooth HID header type: Set protocol */
- BT_HID_HEADER_DATA, /**< The Bluetooth HID header type: Data */
- BT_HID_HEADER_UNKNOWN /**< The Bluetooth HID header type: Unknown */
-} bt_hid_header_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth HID parameter type.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HID_PARAM_DATA_RTYPE_INPUT, /**< Parameter type: Input */
- BT_HID_PARAM_DATA_RTYPE_OUTPUT /**< Parameter type: Output */
-} bt_hid_param_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Enumerations of the Bluetooth HID handshake type.
- * @since_tizen 3.0
- */
-typedef enum {
- BT_HID_HANDSHAKE_SUCCESSFUL = 0x00, /**< Handshake error code none */
- BT_HID_HANDSHAKE_NOT_READY, /**< Handshake error code Not Ready */
- BT_HID_HANDSHAKE_ERR_INVALID_REPORT_ID, /**< Handshake error code send invalid report id */
- BT_HID_HANDSHAKE_ERR_UNSUPPORTED_REQUEST, /**< Handshake error code request unsupported request */
- BT_HID_HANDSHAKE_ERR_INVALID_PARAMETER, /**< Handshake error code received invalid parameter */
- BT_HID_HANDSHAKE_ERR_UNKNOWN = 0x0e, /**< unknown error */
- BT_HID_HANDSHAKE_ERR_FATAL /**< Fatal error */
-} bt_hid_handshake_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief The structure type containing data received from the HID Host.
- * @since_tizen 3.0
- */
-typedef struct {
- const char *address; /**< The remote device's address */
- bt_hid_header_type_e header_type; /**< The header type */
- bt_hid_param_type_e param_type; /**< The parameter type */
- int data_size; /**< The length of the received data */
- const char *data; /**< The received data */
-} bt_hid_device_received_data_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Called when the Bluetooth HID Device connection state changes.
- * @details The following error codes can be delivered: \n
- * #BT_ERROR_NONE \n
- * #BT_ERROR_OPERATION_FAILED \n
- * @since_tizen 3.0
- *
- * @param[in] result The result of changing the connection state.
- * @param[in] connected The requested state. @a true means the connection is enabled, @false means the connection is disabled.
- * @param[in] remote_address The remote device's address
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hid_device_activate()
- */
-typedef void (*bt_hid_device_connection_state_changed_cb) (int result,
- bool connected, const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_HID_DEVICE_MODULE
- * @brief Called when the HID Device receives data from the HID Host.
- * @details The following error codes can be delivered: \n
- * #BT_ERROR_NONE \n
- * #BT_ERROR_OPERATION_FAILED \n
- * @since_tizen 3.0
- *
- * @param[in] data The data received from the HID Host.
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hid_device_set_data_received_cb()
- */
-typedef void (*bt_hid_device_data_received_cb)(const bt_hid_device_received_data_s *data, void *user_data);
-/* HID device related type */
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief The structure type containing vCard information.
- * @since_tizen 3.0
- *
- * @see bt_pbap_client_pull_vcard()
- */
-typedef struct {
- int index; /**< The vcard index, used as a parameter for bt_pbap_client_pull_vcard() */
- const char *contact_name; /**< The contact name of the vCard */
-} bt_pbap_vcard_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Called when PBAP is Connected or Disconnected.
- * @details The following error codes can be delivered: \n
- * #BT_ERROR_NONE \n
- * #BT_ERROR_OPERATION_FAILED \n
- * @since_tizen 3.0
- *
- * @param[in] result The result of connecting to or disconnecting from the remote device
- * @param[in] connected The PBAP connection status (@c true = connected, @c false = disconnected)
- * @param[in] remote_address The remote device address (@a remote_address is valid only inside this function. To use outside the callback, make a copy. @a remote_address should not be freed.)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_pbap_client_connect()
- * @see bt_pbap_client_disconnect()
- */
-typedef void (*bt_pbap_connection_state_changed_cb)(int result, bool connected,
- const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Called when PBAP Phonebook size calculation completes.
- * @details The following error codes can be delivered: \n
- * #BT_ERROR_NONE \n
- * #BT_ERROR_OPERATION_FAILED \n
- * @since_tizen 3.0
- *
- * @param[in] result The result of getting the phone book size
- * @param[in] remote_address The remote device address (@a remote_address is valid only inside this function. To use outside the callback, make a copy. @a remote_address should not be freed.)
- * @param[in] size Size of Phonebook
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_pbap_client_get_phone_book_size()
- * @see bt_pbap_client_connect()
- * @see bt_pbap_client_disconnect()
- */
-typedef void (*bt_pbap_phone_book_size_cb)(int result, const char *remote_address,
- int size, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Called when PBAP Phonebook Pull completes.
- * @details The received phone book file will be saved in the platform downloads folder. \n
- * The following error codes can be delivered: \n
- * #BT_ERROR_NONE \n
- * #BT_ERROR_OPERATION_FAILED \n
- * @since_tizen 3.0
- *
- * @param[in] result The result of getting the phone book
- * @param[in] remote_address The remote device address (@a remote_address is valid only inside this function. To use outside the callback, make a copy. @a remote_address should not be freed.)
- * @param[in] vcf_file The absolute path of the file in which the vCards are saved (@a vcf_file is valid only inside this function. To use outside the callback, make a copy. @a vcf_file should not be freed.)
- * @param[in] successful true if the operation was successful, false if not
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_pbap_client_get_phone_book()
- * @see bt_pbap_client_connect()
- * @see bt_pbap_client_disconnect()
- */
-typedef void (*bt_pbap_phone_book_received_cb)(int result, const char *remote_address,
- const char *vcf_file, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PBAP_MODULE
- * @brief Called when PBAP List vCards completes.
- * @details The following error codes can be delivered: \n
- * #BT_ERROR_NONE \n
- * #BT_ERROR_OPERATION_FAILED \n
- * @since_tizen 3.0
- *
- * @param[in] result The result of getting the vcard list
- * @param[in] remote_address The remote device address (@a remote_address is valid only inside this function. To use outside the callback, make a copy. @a remote_address should not be freed.)
- * @param[in] vcard_info List of vcard information (@a vcard_info is valid only inside this function. To use outside the callback, make a copy. @a vcard_info should not be freed.)
- * @param[in] count Number of contacts in the list
- * @param[in] successful true if the operation was successful, false if not
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_pbap_client_get_list()
- * @see bt_pbap_client_connect()
- * @see bt_pbap_client_disconnect()
- */
-typedef void (*bt_pbap_list_vcards_cb)(int result, const char *remote_address,
- const bt_pbap_vcard_info_s *vcard_info, int count, void *user_data);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_TYPE_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_EXTENSION_H__
-#define __TIZEN_NETWORK_BLUETOOTH_TYPE_EXTENSION_H__
-
- #ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_type_extension.h
- */
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when the SCO(Synchronous Connection Oriented link) state is changed.
- * @since_tizen 2.3.1
- *
- * @details This callback is called when the SCO state is changed.
- * When you call bt_ag_open_sco() or bt_ag_close_sco(), this callback is also called with error result even though these functions failed.
- * @param[in] result The result of changing the connection state
- * @param[in] opened The state to be changed: (@c true = opened, @c false = not opened)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_sco_state_changed_cb()
- * @see bt_ag_unset_sco_state_changed_cb()
- * @see bt_ag_open_sco()
- * @see bt_ag_close_sco()
- */
-typedef void (*bt_ag_sco_state_changed_cb) (int result, bool opened, void *user_data);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_TYPE_EXTENSION_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_INTERNAL_H__
-#define __TIZEN_NETWORK_BLUETOOTH_TYPE_INTERNAL_H__
-
-#include <glib.h>
-
- #ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/**
- * @file bluetooth_type_internal.h
- */
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth adapter le state.
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_ADAPTER_LE_DISABLED = 0x00, /**< Bluetooth le is disabled */
- BT_ADAPTER_LE_ENABLED, /**< Bluetooth le is enabled */
-} bt_adapter_le_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Called when the Bluetooth adapter le state changes.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of the adapter state changing
- * @param[in] adapter_le_state The adapter le state to be changed
- * @param[in] user_data The user data passed from the callback registration function
- * @pre Either bt_adapter_le_enable() or bt_adapter_le_disable() will invoke this callback if you register this callback using bt_adapter_le_set_state_changed_cb().
- * @see bt_adapter_le_enable()
- * @see bt_adapter_le_disable()
- * @see bt_adapter_le_set_state_changed_cb()
- * @see bt_adapter_le_unset_state_changed_cb()
- */
-typedef void (*bt_adapter_le_state_changed_cb)(int result, bt_adapter_le_state_e adapter_le_state, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Enumerations for the call state
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_AG_CALL_EVENT_IDLE = 0x00, /**< Idle */
- BT_AG_CALL_EVENT_ANSWERED, /**< Answered */
- BT_AG_CALL_EVENT_HELD, /**< Held */
- BT_AG_CALL_EVENT_RETRIEVED, /**< Retrieved */
- BT_AG_CALL_EVENT_DIALING, /**< Dialing */
- BT_AG_CALL_EVENT_ALERTING, /**< Alerting */
- BT_AG_CALL_EVENT_INCOMING, /**< Incoming */
-} bt_ag_call_event_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Enumerations for the call state
- * @since_tizen 2.3.1
- */
-typedef enum {
- BT_AG_CALL_STATE_IDLE = 0x00, /**< Idle state */
- BT_AG_CALL_STATE_ACTIVE, /**< Active state */
- BT_AG_CALL_STATE_HELD, /**< Held state */
- BT_AG_CALL_STATE_DIALING, /**< Dialing state */
- BT_AG_CALL_STATE_ALERTING, /**< Alerting state */
- BT_AG_CALL_STATE_INCOMING, /**< Incoming state */
- BT_AG_CALL_STATE_WAITING, /**< Waiting for connected indication event after answering an incoming call*/
-} bt_ag_call_state_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_MODULE
- * @brief Enumerations for the transfer type
- * @since_tizen 3.0
- */
-typedef enum {
- BT_TRANSFER_INBOUND, /**< Inbound Transfer Type */
- BT_TRANSFER_OUTBOUND, /**< Outbound Transfer Type */
-} bt_opp_transfer_type_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
- * @brief Enumerations of the Bluetooth A2DP role.
- * @since_tizen 4.0
- */
-typedef enum {
- BT_A2DP_SOURCE,
- BT_A2DP_SINK,
-} bt_audio_role_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the connectable state changes.
- * @since_tizen 2.3.1
- *
- * @param[in] result The result of the connectable state changing
- * @param[in] connectable The connectable to be changed
- * @param[in] user_data The user data passed from the callback registration function
- *
- * @pre This function will be invoked when the connectable state of local Bluetooth adapter changes
- * if you register this callback using bt_adapter_set_connectable_changed_cb().
- *
- * @see bt_adapter_set_connectable()
- * @see bt_adapter_set_connectable_changed_cb()
- * @see bt_adapter_unset_connectable_changed_cb()
- */
-typedef void (*bt_adapter_connectable_changed_cb)
- (int result, bool connectable, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
- * @brief Called when the push is requested.
- * @since_tizen 2.3.1
- *
- * @details You must call bt_opp_server_accept() if you want to accept.
- * Otherwise, you must call bt_opp_server_reject().
- * @param[in] file The path of file to be pushed
- * @param[in] size The file size (bytes)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_opp_server_initialize()
- */
-typedef void (*bt_opp_server_push_requested_cb)(const char *file, int size, void *user_data);
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief Enumerations of the Bluetooth adapter le scan type.
- * @since_tizen 2.3
- */
-typedef enum {
- BT_ADAPTER_LE_PASSIVE_SCAN = 0x00,
- BT_ADAPTER_LE_ACTIVE_SCAN
-} bt_adapter_le_scan_type_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Enumerations for the call handling event
- * @since_tizen 2.3
- */
-typedef enum {
- BT_HF_CALL_HANDLING_EVENT_ANSWER = 0x00, /**< Request to answer an incoming call */
- BT_HF_CALL_HANDLING_EVENT_RELEASE, /**< Request to release a call */
- BT_HF_CALL_HANDLING_EVENT_REJECT, /**< Request to reject an incoming call */
- BT_HF_CALL_HANDLING_EVENT_RING, /**< Request of ringing call */
- BT_HF_CALL_HANDLING_EVENT_CALL_STARTED, /**< Request of Call started */
- BT_HF_CALL_HANDLING_EVENT_CALL_ENDED, /**< Request of Call Ended */
- BT_HF_CALL_HANDLING_EVENT_VOICE_RECOGNITION_ENABLED, /**< Request of voice recognition enabled */
- BT_HF_CALL_HANDLING_EVENT_VOICE_RECOGNITION_DISABLED, /**< Request of voice recognition disabled */
- BT_HF_CALL_HANDLING_EVENT_VENDOR_DEP_CMD, /**< Request of Vendor command */
- BT_HF_CALL_HANDLING_EVENT_WAITING, /**< Request to waiting a call */
- BT_HF_CALL_HANDLING_EVENT_HELD, /**< Request to hold a call */
- BT_HF_CALL_HANDLING_EVENT_UNHELD, /**< Request to unhold calls */
- BT_HF_CALL_HANDLING_EVENT_SWAPPED, /**< Request to swap calls */
-} bt_hf_call_handling_event_e;
-
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Enumerations for the multi call handling event
- * @since_tizen 2.3
- */
-typedef enum {
- BT_HF_MULTI_CALL_HANDLING_EVENT_RELEASE_HELD_CALLS = 0x00, /**< Request to release held calls */
- BT_HF_MULTI_CALL_HANDLING_EVENT_RELEASE_ACTIVE_CALLS, /**< Request to release active calls */
- BT_HF_MULTI_CALL_HANDLING_EVENT_ACTIVATE_HELD_CALL, /**< Request to put active calls into hold state and activate another (held or waiting) call */
- BT_HF_MULTI_CALL_HANDLING_EVENT_MERGE_CALLS, /**< Request to add a held call to the conversation */
- BT_HF_MULTI_CALL_HANDLING_EVENT_EXPLICIT_CALL_TRANSFER, /**< Request to let a user who has two calls to connect these two calls together and release its connections to both other parties */
-} bt_hf_multi_call_handling_event_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Enumerations for the call state
- * @since_tizen 2.3
- */
-typedef enum {
- BT_HF_CALL_EVENT_IDLE = 0x00, /**< Idle */
- BT_HF_CALL_EVENT_ANSWER, /**< Answered */
- BT_HF_CALL_EVENT_HOLD, /**< Held */
- BT_HF_CALL_EVENT_RETRIEVE, /**< Retrieved */
- BT_HF_CALL_EVENT_DIAL, /**< Dialing */
- BT_HF_CALL_EVENT_ALERT, /**< Alerting */
- BT_HF_CALL_EVENT_INCOMING, /**< Incoming */
- BT_HF_CALL_EVENT_REDIAL, /**< Redialling */
- BT_HF_CALL_EVENT_RELEASE_ALL_NONACTIVE_CALLS, /**< Release all nonactive calls */
- BT_HF_CALL_EVENT_ACCEPT_AND_RELEASE, /**< Accept and Release */
- BT_HF_CALL_EVENT_ACCEPT_AND_HOLD, /**< Accept and Hold */
- BT_HF_CALL_EVENT_ADD_TO_CONVERSATION, /**< Add to the conversation */
-} bt_hf_call_event_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief HF Call status information.
- * @since_tizen 2.3
- */
-typedef struct {
- char *number; /**< Phone Number */
- int direction; /**< Direction :Incoming(1), Outgoing(0) */
- int status; /**< Call Status :Active(0), Held(1), Waiting(5), Dailing(2) */
- int multi_party; /**< Multiparty/conf call: Yes(1), No(0) */
- int index; /**< Call index/ID */
-} bt_hf_call_status_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when the manufacturer dat changes.
- * @since_tizen 2.3
- *
- * @param[in] data The manufacurer data of the Bluetooth device to be changed
- * @param[in] len The length of @a data
- * @param[in] user_data The user data passed from the callback registration function
- * @pre This function will be invoked when the manufacturer data of Bluetooth adapter changes
- * if callback is registered using bt_adapter_set_manufacturer_data_changed_cb().
- * @see bt_adapter_set_manufacturer_data()
- * @see bt_adapter_set_manufacturer_data_changed_cb()
- * @see bt_adapter_unset_manufacturer_data_changed_cb()
- */
-typedef void (*bt_adapter_manufacturer_data_changed_cb) (char *data,
- int len, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called repeatedly when you get the devices connected with specific profile.
- * @since_tizen 3.0
- *
- * @param[in] remote_address The address of remote device
- * @param[in] user_data The user data passed from the callback registration function
- * @return @c true to continue with the next iteration of the loop,
- * \n @c false to break out of the loop.
- * @pre bt_adapter_foreach_profile_connected_devices() will invoke this function.
- * @see bt_adapter_foreach_profile_connected_devices()
- */
-typedef bool (*bt_adapter_profile_connected_devices_cb)(const char *remote_address, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Called when the SCO(Synchronous Connection Oriented link) state is changed.
- * @since_tizen 2.3
- *
- * @details This callback is called when the SCO state is changed.
- * When you call bt_ag_open_sco() or bt_ag_close_sco(), this callback is also called with error result even though these functions failed.
- * @param[in] result The result of changing the connection state
- * @param[in] opened The state to be changed: (@c true = opened, @c false = not opened)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_sco_state_changed_cb()
- * @see bt_ag_unset_sco_state_changed_cb()
- * @see bt_ag_open_sco()
- * @see bt_ag_close_sco()
- */
-typedef void (*bt_hf_sco_state_changed_cb) (int result, bool opened, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Called when a call handling event happened from Hands-Free.
- * @since_tizen 2.3
- *
- * @param[in] event The call handling event happened from Hands-Free
- * @param[in] call_id The call ID
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_call_handling_event_cb()
- * @see bt_ag_unset_call_handling_event_cb()
- */
-typedef void (*bt_hf_call_handling_event_cb) (bt_hf_call_handling_event_e event, char *phone_number, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Called when a multi call handling event happened from Hands-Free.
- * @since_tizen 2.3
- *
- * @param[in] event The call handling event happened from Hands-Free
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_multi_call_handling_event_cb()
- * @see bt_ag_unset_multi_call_handling_event_cb()
- */
-typedef void (*bt_hf_multi_call_handling_event_cb) (bt_hf_multi_call_handling_event_e event, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Called when the speaker gain of the remote device is changed.
- * @since_tizen 2.3
- *
- * @param[in] gain The gain of speaker (0 ~ 15)
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hf_set_speaker_gain_changed_cb()
- * @see bt_hf_unset_speaker_gain_changed_cb()
- */
-typedef void (*bt_hf_speaker_gain_changed_cb) (int gain, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Called when a call status updated event happened from Hands-Free.
- * @since_tizen 2.3
- * @remarks call_info_list has elements which consist of bt_hf_call_status_info_s
- * @remarks The @a call_info_list must be released with bt_hf_free_call_status_info_list() by you.
- *
- * @param[in] event The call handling event happened from Hands-Free
- * @param[in] call_id The call ID
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_hf_call_status_info_s
- * @see bt_hf_set_call_status_updated_event_cb()
- * @see bt_hf_unset_call_status_updated_event_cb()
- */
-typedef void (*bt_hf_call_status_updated_event_cb) (GSList *call_info_list, void *user_data);
-
-/**
-* @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
-* @brief DPM BT allowance state
-* @since_tizen 3.0
-*/
-typedef enum {
- BT_DPM_ERROR = -1, /**< bluetooth allowance error */
- BT_DPM_BT_ALLOWED, /**< bluetooth allowance allowed */
- BT_DPM_HANDSFREE_ONLY, /**< bluetooth allowance handsfree only */
- BT_DPM_BT_RESTRICTED, /**< bluetooth allowance restricted */
-} bt_dpm_allow_e;
-
-/**
-* @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
-* @brief DPM Policy status
-* @since_tizen 3.0
-*/
-typedef enum {
- BT_DPM_STATUS_ERROR = -1,
-
- BT_DPM_ALLOWED = 0, /**< DPM Policy status allowed. */
- BT_DPM_RESTRICTED = 1, /**< DPM Policy status restricted. */
-
- BT_DPM_ENABLE = 1, /**< DPM Policy status enabled. */
- BT_DPM_DISABLE = 0, /**< DPM Policy status disabled. */
-
- BT_DPM_FALSE = 0, /**< DPM Policy status false. */
- BT_DPM_TRUE = 1, /**< DPM Policy status true. */
-} bt_dpm_status_e;
-
-/**
-* @ingroup CAPI_NETWORK_BLUETOOTH_DPM_MODULE
-* @brief DPM Profile states
-* @since_tizen 3.0
-*/
-typedef enum {
- BT_DPM_POLICY_A2DP_PROFILE_STATE,
- BT_DPM_POLICY_AVRCP_PROFILE_STATE,
- BT_DPM_POLICY_BPP_PROFILE_STATE,
- BT_DPM_POLICY_DUN_PROFILE_STATE,
- BT_DPM_POLICY_FTP_PROFILE_STATE,
- BT_DPM_POLICY_HFP_PROFILE_STATE,
- BT_DPM_POLICY_HSP_PROFILE_STATE,
- BT_DPM_POLICY_PBAP_PROFILE_STATE,
- BT_DPM_POLICY_SAP_PROFILE_STATE,
- BT_DPM_POLICY_SPP_PROFILE_STATE,
- BT_DPM_PROFILE_NONE,
-} bt_dpm_profile_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
- * @brief The handle to control Bluetooth LE scan filter
- * @since_tizen 2.4
- */
-typedef void *bt_scan_filter_h;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Device LE connection update structure.
- * @since_tizen 2.3.1
- */
-typedef struct {
- unsigned int interval_min; /**< Minimum value for the connection event interval (msec) */
- unsigned int interval_max; /**< Maximum value for the connection event interval (msec) */
- unsigned int latency; /**< Slave latency (msec) */
- unsigned int time_out; /**< Supervision timeout (msec) */
-} bt_le_conn_update_s;
-
-/**
- * Structure to DPM device list
- */
-typedef struct {
- int count;
- char **devices;
-} bt_dpm_device_list_s;
-
-/**
- * Structure to DPM uuid list
- */
-typedef struct {
- int count;
- char **uuids;
-} bt_dpm_uuids_list_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Trusted Profile enumeration.
- * @since_tizen 3.0
- *
- * @see bt_device_set_profile_trusted()
- * @see bt_device_get_profile_trusted()
- */
-typedef enum {
- BT_TRUSTED_PROFILE_PBAP = 1,
- BT_TRUSTED_PROFILE_MAP,
- BT_TRUSTED_PROFILE_SAP,
- BT_TRUSTED_PROFILE_ALL = 0xFFFFFFFF,
-} bt_trusted_profile_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Restricted Profile enumeration.
- * @since_tizen 3.0
- *
- * @see bt_device_set_profile_restricted()
- * @see bt_device_get_profile_restricted()
- */
-typedef enum {
- BT_RESTRICTED_PROFILE_HFP_HS = 1,
- BT_RESTRICTED_PROFILE_A2DP,
-} bt_restricted_profile_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Enumerations of the authentication event types.
- * @since_tizen 3.0
- *
- */
-typedef enum {
- BT_AUTH_KEYBOARD_PASSKEY_DISPLAY = 0, /**< PIN display event to user for entering PIN in keyboard */
- BT_AUTH_PIN_REQUEST, /**< Legacy PIN or PASSKEY request event */
- BT_AUTH_PASSKEY_CONFIRM_REQUEST, /**< PASSKEY confirmation event to match PASSKEY in remote device */
-} bt_authentication_type_info_e;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
- * @brief Proximity Profile Role
- * @since_tizen 3.0
- */
-typedef enum {
- BT_PROXIMITY_REPORTER, /**< Proximity Profile Reporter role. */
- BT_PROXIMITY_MONITOR, /**< Proximity Profile Monitor role. */
-} bt_proximity_role_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_PROXIMITY_MODULE
- * @brief Proximity Profile Role
- * @since_tizen 3.0
- */
-typedef enum {
- BT_PROXIMITY_LINKLOSS_ALERT = 0x01, /**< Proximity profile Link Loss alert property */
- BT_PROXIMITY_IMMEDIATE_ALERT = 0x02, /**< Proximity Profile Immediate alert property */
- BT_PROXIMITY_TX_POWER = 0x04, /**< Proximity Profile Immediate alert property */
-} bt_proximity_property_t;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when Trusted Profiles is changed.
- * @since_tizen 3.0
- *
- * @param[in] result The result of supported profile callback
- * @param[in] remote_address Address of remote device
- * @param[in] trusted_profiles Trusted profile FLAG
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_device_set_trusted_profile_cb()
- * @see bt_device_unset_trusted_profile_cb()
- */
-typedef void (*bt_device_trusted_profiles_cb)
- (int result, char *remote_address, int trusted_profile, bool supported, bool trusted, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Attribute protocol MTU change information structure.
- * @since_tizen 3.0
- *
- * @see bt_device_att_mtu_changed_cb()
- */
-typedef struct {
- char *remote_address; /**< The address of remote device */
- unsigned int mtu; /** < MTU value */
- unsigned int status; /** < request status*/
-} bt_device_att_mtu_info_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
- * @brief Called when the connection state is changed.
- * @since_tizen 3.0
- *
- * @param[in] connected The connection status: (@c true = connected, @c false = disconnected)
- * @param[in] conn_info The connection information
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_device_set_connection_state_changed_cb()
- * @see bt_device_unset_connection_state_changed_cb()
- */
-typedef void (*bt_device_att_mtu_changed_cb)(int result, bt_device_att_mtu_info_s *mtu_info, void *user_data);
-
-/**
- * @internal
- * @brief IPSP Init state changed callback
- */
-typedef void (*bt_ipsp_init_state_changed_cb)
- (int result, bool ipsp_initialized, void *user_data);
-
-/**
- * @internal
- * @brief IPSP Connection state changed callback
- */
-typedef void (*bt_ipsp_connection_state_changed_cb)
- (int result, bool connected, const char *remote_address, const char *iface_name, void *user_data);
-
-/**
- * @internal
- * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
- * @brief Called when remote device requests authentication.
- * @since_tizen 3.0
- * @param[in] result
- * @param[in] auth_type
- * typedef enum {
- * BT_AUTH_KEYBOARD_PASSKEY_DISPLAY = 0, : PIN display event to user for entering PIN in keyboard
- * BT_AUTH_PIN_REQUEST, : Legacy PIN or PASSKEY request event
- * BT_AUTH_PASSKEY_CONFIRM_REQUEST, : PASSKEY confirmation event to match PASSKEY in remote device
- * } bt_authentication_type_info_e;
- * @param[in] device_name Name of the remote device
- * @param[in] remote_addr Remote BD address
- * @param[in] pass_key PASSKEY string
- * PASSKEY string is valid only if authentication types are following
- * a/ BT_AUTH_KEYBOARD_PASSKEY_DISPLAY
- * b/ BT_AUTH_PASSKEY_CONFIRM_REQUEST
- * pass_key string will be invalid if authentication event is of type BT_AUTH_PIN_REQUEST
- * as this event indicates that user MUST enter PIN or PASSKEY and perform authentication.
- *
- * Upon receiving BT_AUTH_KEYBOARD_PASSKEY_DISPLAY event, user should enter PASSKEY in keyboard
- * Application can also call bt_device_cancel_bonding() Upon receiving BT_AUTH_KEYBOARD_PASSKEY_DISPLAY
- * event which will fail the on-going pairing with remote device.
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_adapter_set_authentication_req_cb()
- */
-typedef void (*bt_adapter_authentication_req_cb)(int result, bt_authentication_type_info_e auth_type,
- char *device_name, char *remote_addr,
- char *pass_key, void *user_data);
-
-/**
- * @brief Proximity profile property changed callback
- */
-typedef void (*bt_proximity_property_changed_cb)
- (int result, const char *remote_address, int role, int service_type, int prop_value, void *user_data);
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_HF_MODULE
- * @brief Samsung XSAT Vendor dependent command.
- * @since_tizen 2.3.2
- */
-typedef struct {
- int app_id; /**< The application ID */
- char *message; /**< Command message */
-} bt_hf_vendor_dep_at_cmd_s;
-
-/**
- * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
- * @brief Called when a XSAT vendor command is transmitted from Hands-Free.
- * @since_tizen 2.3
- *
- * @param[in] command The XSAT vendor command transmitted from Hands-Free
- * @param[in] user_data The user data passed from the callback registration function
- * @see bt_ag_set_vendor_cmd_cb()
- * @see bt_ag_unset_vendor_cmd_cb()
- */
-typedef void (*bt_ag_vendor_cmd_cb) (char *command, void *user_data);
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __TIZEN_NETWORK_BLUETOOTH_TYPE_INTERNAL_H__ */
Name: capi-network-bluetooth
Summary: Network Bluetooth Framework
-Version: 0.3.2
+Version: 0.3.4
Release: 1
Group: Connectivity/API
License: Apache-2.0
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(vconf)
-%if "%{?profile}" == "tv"
BuildRequires: pkgconfig(db-util)
-%endif
BuildRequires: pkgconfig(bluetooth-api)
-BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-appfw-app-control)
BuildRequires: pkgconfig(capi-base-common)
BuildRequires: pkgconfig(capi-system-info)
BuildRequires: cmake
%build
-%if "%{?profile}" == "wearable"
-export CFLAGS="$CFLAGS -DTIZEN_PROFILE_WEARABLE"
-export CXXFLAGS="$CXXFLAGS -DTIZEN_PROFILE_WEARABLE"
-export FFLAGS="$FFLAGS -DTIZEN_PROFILE_WEARABLE"
-%endif
-
-%if "%{?profile}" == "mobile"
-export CFLAGS="$CFLAGS -DTIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT"
-export CXXFLAGS="$CXXFLAGS -DTIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT"
-export FFLAGS="$FFLAGS -DTIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT"
-%endif
-
-%if "%{?profile}" == "ivi"
-export CFLAGS="$CFLAGS -DTIZEN_PROFILE_IVI"
-export CXXFLAGS="$CXXFLAGS -DTIZEN_PROFILE_IVI"
-export FFLAGS="$FFLAGS -DTIZEN_PROFILE_IVI"
-%endif
-
-export CFLAGS="$CFLAGS -DTIZEN_FEATURE_AUDIO_HF_DISABLE -DTIZEN_FEATURE_IPSP_SUPPORT"
-export CXXFLAGS="$CXXFLAGS -DTIZEN_FEATURE_AUDIO_HF_DISABLE -DTIZEN_FEATURE_IPSP_SUPPORT"
-export FFLAGS="$FFLAGS -DTIZEN_FEATURE_AUDIO_HF_DISABLE -DTIZEN_FEATURE_IPSP_SUPPORT"
+export CFLAGS="$CFLAGS -DTIZEN_FEATURE_AUDIO_HF_DISABLE -DTIZEN_FEATURE_OTP_SUPPORT"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_FEATURE_AUDIO_HF_DISABLE -DTIZEN_FEATURE_OTP_SUPPORT"
+export FFLAGS="$FFLAGS -DTIZEN_FEATURE_AUDIO_HF_DISABLE -DTIZEN_FEATURE_OTP_SUPPORT"
%ifarch aarch64
echo arch64
export FFLAGS+=" -DARCH64"
%endif
-%cmake \
-%if "%{?profile}" == "wearable"
- -DTIZEN_PROFILE_WEARABLE=YES \
-%else
-%if "%{?profile}" == "tv"
- -DTIZEN_PROFILE_TV=YES \
-%else
-%if "%{?profile}" == "mobile"
- -DTIZEN_PROFILE_WEARABLE=NO \
- -DTIZEN_PROFILE_MOBILE=YES \
-%else
-%if "%{?profile}" == "ivi"
- -DTIZEN_PROFILE_WEARABLE=NO \
- -DTIZEN_PROFILE_IVI=YES \
-%endif
-%endif
-%endif
-%endif
+%cmake
MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
%cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
%install
rm -rf %{buildroot}
%make_install
-install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/capi-network-bluetooth
-install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/capi-network-bluetooth-devel
-
%post -p /sbin/ldconfig
%files
%manifest %{name}.manifest
-#%license LICENSE.APLv2 LICENSE
+%license LICENSE
%{_libdir}/libcapi-network-bluetooth.so.*
-%{_datadir}/license/capi-network-bluetooth
-%{_datadir}/license/capi-network-bluetooth-devel
%files test
%manifest %{name}.manifest
-%if "%{?profile}" != "tv"
%{_bindir}/bt_unit_test
-%endif
#%{_bindir}/bt_onoff
#/etc/smack/accesses.d/capi-network-bluetooth-test.efl
%{_libdir}/pkgconfig/capi-network-bluetooth.pc
%{_libdir}/libcapi-network-bluetooth.so
-#%{_datadir}/license/capi-network-bluetooth-devel
-
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_LE); \
}
+static bt_scan_filter_h pxp_linkloss_alert_filter;
+static bt_scan_filter_h pxp_immediate_alert_filter;
+static bt_scan_filter_h pxp_signal_loss_filter;
+
static GSList *advertiser_list = NULL;
/* LCOV_EXCL_START */
error_code = _bt_get_error_code(bluetooth_get_local_address(&loc_address));
if (error_code != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), /* LCOV_EXCL_LINE */
error_code); /* LCOV_EXCL_LINE */
return error_code; /* LCOV_EXCL_LINE */
}
error_code = _bt_convert_address_to_string(address, &loc_address);
if (error_code != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), /* LCOV_EXCL_LINE */
error_code); /* LCOV_EXCL_LINE */
return error_code; /* LCOV_EXCL_LINE */
}
ret = _bt_get_error_code(bluetooth_get_local_name(&loc_name));
if (ret != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret),
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), /* LCOV_EXCL_LINE */
ret); /* LCOV_EXCL_LINE */
return ret; /* LCOV_EXCL_LINE */
}
*name = strdup(loc_name.name);
if (*name == NULL) {
- BT_ERR("OUT_OF_MEMORY(0x%08x)",
+ BT_ERR("OUT_OF_MEMORY(0x%08x)", /* LCOV_EXCL_LINE */
BT_ERROR_OUT_OF_MEMORY); /* LCOV_EXCL_LINE */
return BT_ERROR_OUT_OF_MEMORY;
}
ret = _bt_get_error_code(bluetooth_set_local_name(&loc_name));
if (ret != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret),
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), /* LCOV_EXCL_LINE */
ret); /* LCOV_EXCL_LINE */
} /* LCOV_EXCL_LINE */
int bt_adapter_set_connectable_changed_cb(bt_adapter_connectable_changed_cb callback,
void *user_data)
{
- int ret = BT_ERROR_NONE;
-
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
_bt_set_cb(BT_EVENT_CONNECTABLE_CHANGED_EVENT, callback, user_data);
- if (ret != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret),
- ret); /* LCOV_EXCL_LINE */
- } /* LCOV_EXCL_LINE */
-
- return ret;
+ return BT_ERROR_NONE;
}
int bt_adapter_unset_connectable_changed_cb(void)
dev_list = g_ptr_array_new();
if (dev_list == NULL) {
- BT_ERR("OUT_OF_MEMORY(0x%08x)",
+ BT_ERR("OUT_OF_MEMORY(0x%08x)", /* LCOV_EXCL_LINE */
BT_ERROR_OUT_OF_MEMORY); /* LCOV_EXCL_LINE */
return BT_ERROR_OUT_OF_MEMORY;
}
ret = _bt_get_error_code(bluetooth_get_bonded_device_list(&dev_list));
if (ret != BT_ERROR_NONE) {
- BT_ERR("%s(0x%08x) : Failed to get bonded device list",
+ BT_ERR("%s(0x%08x) : Failed to get bonded device list", /* LCOV_EXCL_LINE */
_bt_convert_error_to_string(ret), ret); /* LCOV_EXCL_LINE */
return ret;
}
ret = _bt_get_bt_device_info_s(&dev_info,
(bluetooth_device_info_t *)ptr);
if (ret != BT_ERROR_NONE) {
- BT_ERR("%s(0x%08x) : Failed to get device info",
+ BT_ERR("%s(0x%08x) : Failed to get device info", /* LCOV_EXCL_LINE */
_bt_convert_error_to_string(ret),
ret); /* LCOV_EXCL_LINE */
break;
}
_bt_free_bt_device_info_s(dev_info); /* LCOV_EXCL_LINE */
} else {
- BT_ERR("OPERATION_FAILED(0x%08x)",
+ BT_ERR("OPERATION_FAILED(0x%08x)", /* LCOV_EXCL_LINE */
BT_ERROR_OPERATION_FAILED); /* LCOV_EXCL_LINE */
ret = BT_ERROR_OPERATION_FAILED;
break;
&is_used));
*used = is_used ? true : false; /* LCOV_EXCL_LINE */
}
+ /* TODO: MAP? see above */
if (ret != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
BT_ERR("%s(0x%08x) : Failed to run function",
return ret;
}
+/* LCOV_EXCL_START */
int bt_adapter_foreach_profile_connected_devices(const char *profile_uuid,
bt_adapter_profile_connected_devices_cb callback, void *user_data)
{
g_ptr_array_free(addr_list, TRUE);
return ret;
-}
+} /* LCOV_EXCL_STOP */
int bt_adapter_set_state_changed_cb(bt_adapter_state_changed_cb callback,
void *user_data)
{
BT_DBG("");
- int ret = BT_ERROR_NONE;
-
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
+
_bt_set_cb(BT_EVENT_STATE_CHANGED, callback, user_data);
- if (ret != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret),
- ret); /* LCOV_EXCL_LINE */
- } /* LCOV_EXCL_LINE */
- return ret;
+ return BT_ERROR_NONE;
}
/* LCOV_EXCL_START */
int bt_adapter_set_name_changed_cb(bt_adapter_name_changed_cb callback,
void *user_data)
{
- int ret = BT_ERROR_NONE;
-
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
+
_bt_set_cb(BT_EVENT_NAME_CHANGED, callback, user_data);
- if (ret != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret),
- ret); /* LCOV_EXCL_LINE */
- } /* LCOV_EXCL_LINE */
- return ret;
+ return BT_ERROR_NONE;
}
int bt_adapter_set_visibility_mode_changed_cb(bt_adapter_visibility_mode_changed_cb callback,
void *user_data)
{
- int ret = BT_ERROR_NONE;
-
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
+
_bt_set_cb(BT_EVENT_VISIBILITY_MODE_CHANGED, callback, user_data);
- if (ret != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret),
- ret); /* LCOV_EXCL_LINE */
- } /* LCOV_EXCL_LINE */
- return ret;
+ return BT_ERROR_NONE;
}
int bt_adapter_set_device_discovery_state_changed_cb(bt_adapter_device_discovery_state_changed_cb callback,
void *user_data)
{
- int ret = BT_ERROR_NONE;
-
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
- _bt_set_cb(BT_EVENT_DEVICE_DISCOVERY_STATE_CHANGED,
- callback, user_data);
- if (ret != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret),
- ret); /* LCOV_EXCL_LINE */
- } /* LCOV_EXCL_LINE */
- return ret;
+ _bt_set_cb(BT_EVENT_DEVICE_DISCOVERY_STATE_CHANGED, callback, user_data);
+
+ return BT_ERROR_NONE;
}
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
int bt_adapter_le_set_device_discovery_state_changed_cb(bt_adapter_le_device_discovery_state_changed_cb callback,
void *user_data)
{
callback, user_data);
return BT_ERROR_NONE;
}
-#endif
int bt_adapter_unset_state_changed_cb(void)
{
int bt_adapter_set_visibility_duration_changed_cb(bt_adapter_visibility_duration_changed_cb callback,
void *user_data)
{
- int ret = BT_ERROR_NONE;
-
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
+
_bt_set_cb(BT_EVENT_VISIBILITY_DURATION_CHANGED, callback, user_data);
- if (ret != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret),
- ret); /* LCOV_EXCL_LINE */
- } /* LCOV_EXCL_LINE */
- return ret;
+ return BT_ERROR_NONE;
}
int bt_adapter_unset_visibility_duration_changed_cb(void)
return BT_ERROR_NONE;
}
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
int bt_adapter_le_unset_device_discovery_state_changed_cb(void)
{
BT_INFO("DEPRECATION WARNING: bt_adapter_le_unset_device_discovery_state_changed_cb() is deprecated and will be removed from next release.");
_bt_le_adapter_deinit();
return BT_ERROR_NONE;
}
-#endif
int bt_adapter_start_device_discovery(void)
{
}
}
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
int bt_adapter_le_start_device_discovery(void)
{
int error_code = BT_ERROR_NONE;
return ret; /* LCOV_EXCL_LINE */
}
}
-#endif
int bt_adapter_get_local_oob_data(unsigned char **hash,
unsigned char **randomizer,
}
ret = _bt_get_error_code(bluetooth_oob_add_remote_data(&addr_hex,
+ BLUETOOTH_BDADDR_BREDR,
&oob_data)); /* LCOV_EXCL_STOP */
if (BT_ERROR_NONE != ret) { /* LCOV_EXCL_LINE */
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret),
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(remote_address);
+ /* LCOV_EXCL_START */
if ((!hash192 || !randomizer192) && (!hash256 || !randomizer256))
return BT_ERROR_INVALID_PARAMETER;
oob_data.randomizer256_len = len;
}
- ret = _bt_get_error_code(bluetooth_oob_add_remote_data(&addr_hex, &oob_data));
+ ret = _bt_get_error_code(bluetooth_oob_add_remote_data(&addr_hex,
+ BLUETOOTH_BDADDR_BREDR, &oob_data));
+ if (BT_ERROR_NONE != ret)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ return ret;
+}
+
+int bt_adapter_le_set_remote_oob_ext_data(const char *remote_address,
+ bt_device_address_type_e address_type,
+ const unsigned char *hash256, const unsigned char *randomizer256,
+ int hash256_len, int randomizer256_len)
+{
+ int ret = BT_ERROR_NONE;
+ bluetooth_device_address_t addr_hex = { {0,} };
+ bt_oob_data_t oob_data = { {0},};
+ bluetooth_bdaddr_type_e addr_type = BLUETOOTH_BDADDR_LE_PUBLIC;
+ int len;
+
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(remote_address);
+
+ if (!hash256 || !randomizer256)
+ return BT_ERROR_INVALID_PARAMETER;
+
+ _bt_convert_address_to_hex(&addr_hex, remote_address);
+
+ if (hash256 && randomizer256) {
+ len = hash256_len < BLUETOOTH_OOB_DATA_LENGTH ?
+ hash256_len : BLUETOOTH_OOB_DATA_LENGTH;
+ memcpy(oob_data.hash256, hash256, len);
+ oob_data.hash256_len = len;
+
+ len = randomizer256_len < BLUETOOTH_OOB_DATA_LENGTH ?
+ randomizer256_len : BLUETOOTH_OOB_DATA_LENGTH;
+ memcpy(oob_data.randomizer256, randomizer256, len);
+ oob_data.randomizer256_len = len;
+ }
+
+ addr_type = (address_type == BT_DEVICE_PUBLIC_ADDRESS) ?
+ BLUETOOTH_BDADDR_LE_PUBLIC : BLUETOOTH_BDADDR_LE_RANDOM;
+
+ ret = _bt_get_error_code(bluetooth_oob_add_remote_data(&addr_hex,
+ addr_type, &oob_data));
if (BT_ERROR_NONE != ret)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
return ret;
}
+/* LCOV_EXCL_START */
int bt_adapter_remove_remote_oob_data(const char *remote_address)
{
bt_adapter_manufacturer_data_changed_cb callback,
void *user_data)
{
- int ret = BT_ERROR_NONE;
-
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
+
_bt_set_cb(BT_EVENT_MANUFACTURER_DATA_CHANGED,
callback, user_data);
- if (ret != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret),
- ret); /* LCOV_EXCL_LINE */
- } /* LCOV_EXCL_LINE */
- return ret;
+ return BT_ERROR_NONE;
}
int bt_adapter_unset_manufacturer_data_changed_cb(void)
} /* LCOV_EXCL_LINE */
return ret;
}
-/* LCOV_EXCL_STOP */
int bt_adapter_le_set_customized_scan_mode(float scan_interval, float scan_window)
{
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
return ret;
-}
+} /* LCOV_EXCL_STOP */
int bt_adapter_le_create_advertiser(bt_advertiser_h *advertiser)
{
BT_CHECK_INPUT_PARAMETER(advertiser);
__adv = (bt_advertiser_s *)g_malloc0(sizeof(bt_advertiser_s));
- if (__adv == NULL) {
- BT_ERR("OUT_OF_MEMORY(0x%08x)",
- BT_ERROR_OUT_OF_MEMORY); /* LCOV_EXCL_LINE */
- return BT_ERROR_OUT_OF_MEMORY; /* LCOV_EXCL_LINE */
- }
__adv->handle = GPOINTER_TO_INT(__adv);
*advertiser = (bt_advertiser_h)__adv;
unsigned short val;
char *stop;
data = g_malloc0(sizeof(char) *2);
- if (data == NULL)
- return BT_ERROR_OUT_OF_MEMORY; /* LCOV_EXCL_LINE */
val = strtol(string, &stop, 16);
val = htons(val);
return BT_ERROR_INVALID_PARAMETER; /* LCOV_EXCL_LINE */
}
- int ret;
+ char str_ptr[37] = { 0 };
+ char *ptr[7];
+ char *next_ptr;
+ char *stop;
+ int idx = 0;
+
unsigned int val0, val4;
unsigned short val1, val2, val3, val5;
data = g_malloc0(sizeof(char) *16);
- /* Fix : NULL_RETURNS */
- if (data == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
- ret = sscanf(string, "%08x-%04hx-%04hx-%04hx-%08x%04hx",
- &val0, &val1, &val2, &val3, &val4, &val5);
- if (ret != 6) {
- g_free(data);
- return BT_ERROR_OPERATION_FAILED;
+ /* UUID format : %08x-%04hx-%04hx-%04hx-%08x%04hx */
+ strncpy(str_ptr, string, 36);
+
+ ptr[idx++] = strtok_r(str_ptr, "-", &next_ptr);
+ while ((ptr[idx++] = strtok_r(NULL, "-", &next_ptr)) != NULL) {
+ BT_INFO("ptr : %s", ptr[idx - 1]);
+ if (idx == 5)
+ break;
}
+ /* ptr[4] contain "08x" and "04hx" */
+ ptr[5] = g_malloc0(sizeof(char) * 8);
+ ptr[6] = g_malloc0(sizeof(char) * 4);
+ strncpy(ptr[5], ptr[4], 8);
+ strncpy(ptr[6], ptr[4] + 8, 4);
+
+ val0 = strtol(ptr[0], &stop, 16);
+ val1 = strtol(ptr[1], &stop, 16);
+ val2 = strtol(ptr[2], &stop, 16);
+ val3 = strtol(ptr[3], &stop, 16);
+ val4 = strtol(ptr[5], &stop, 16);
+ val5 = strtol(ptr[6], &stop, 16);
+
val0 = htonl(val0);
val1 = htons(val1);
val2 = htons(val2);
val4 = htonl(val4);
val5 = htons(val5);
+ BT_INFO("%x, %x, %x, %x, %x, %x", val0, val1, val2, val3, val4, val5);
+
memcpy(data, &val0, 4);
memcpy(data + 4, &val1, 2);
memcpy(data + 6, &val2, 2);
*uuid = data;
*bit = 128;
+
+ g_free(ptr[5]);
+ g_free(ptr[6]);
} else {
BT_ERR("Invalid UUID"); /* LCOV_EXCL_LINE */
return BT_ERROR_INVALID_PARAMETER; /* LCOV_EXCL_LINE */
/* Convert to little endian */
swp = g_malloc0(data_len);
- /* Fix : NULL_RETURNS */
- if (swp == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
for (i = 0, j = data_len - 1; i < data_len; i++, j--)
swp[i] = data[j];
}
new_adv = g_malloc0(adv_len + new_data_len);
- if (!new_adv)
- return BT_ERROR_OUT_OF_MEMORY;
for (i = 0; i < adv_len; i++) {
len = adv_data[i];
g_free(uuid_ptr);
adv_data = g_malloc0(sizeof(char) *(service_data_len + 2));
- if (!adv_data) {
- g_free(converted_uuid); /* LCOV_EXCL_LINE */
- return BT_ERROR_OUT_OF_MEMORY;
- }
memcpy(adv_data, converted_uuid, 2);
memcpy(adv_data + 2, service_data, service_data_len);
}
adv_data = g_malloc0(sizeof(char) *(manufacturer_data_len + 2));
- if (!adv_data)
- return BT_ERROR_OUT_OF_MEMORY;
adv_data[0] = manufacturer_id & 0xffffffff;
adv_data[1] = (manufacturer_id & 0xff00) >> 8;
return ret;
}
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
int bt_adapter_le_start_advertising(bt_advertiser_h advertiser,
bt_adapter_le_advertising_params_s *adv_params,
bt_adapter_le_advertising_state_changed_cb cb,
return ret;
}
-#endif
int bt_adapter_le_stop_advertising(bt_advertiser_h advertiser)
{
return BT_ERROR_NO_DATA;
*uuids = g_malloc0(sizeof(char *) *uuid_count);
- /* Fix : NULL_RETURNS */
- if (*uuids == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
*count = uuid_count;
if (uuid_size != 0) {
for (i = 0; i < (field_len - 1); i += uuid_size) {
if (uuid_size == 2) {
- (*uuids)[uuid_index] = g_malloc0(sizeof(char) *4 + 1);
- /* Fix : NULL_RETURNS */
- if ((*uuids)[uuid_index] == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
+ (*uuids)[uuid_index] = g_malloc0(sizeof(char) * 4 + 1);
snprintf((*uuids)[uuid_index], 5,
"%2.2X%2.2X",
remain_data[i+3],
remain_data[i+2]);
} else {
- (*uuids)[uuid_index] = g_malloc0(sizeof(char) *36 + 1);
- /* Fix : NULL_RETURNS */
- if ((*uuids)[uuid_index] == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
+ (*uuids)[uuid_index] = g_malloc0(sizeof(char) * 36 + 1);
snprintf((*uuids)[uuid_index], 37, "%2.2X%2.2X%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X%2.2X%2.2X%2.2X%2.2X",
remain_data[i+17], remain_data[i+16], remain_data[i+15], remain_data[i+14],
remain_data[i+13], remain_data[i+12], remain_data[i+11], remain_data[i+10], remain_data[i+9], remain_data[i+8],
if (adv_data[1] == BT_ADAPTER_LE_ADVERTISING_DATA_LOCAL_NAME ||
adv_data[1] == BT_ADAPTER_LE_ADVERTISING_DATA_SHORT_LOCAL_NAME) {
*name = g_malloc0(sizeof(char) *field_len);
- /* Fix : NULL_RETURNS */
- if (*name == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
memcpy(*name, &adv_data[2], field_len - 1);
return BT_ERROR_NONE;
if (uuid_count == 0)
return BT_ERROR_NO_DATA;
- *uuids = g_malloc0(sizeof(char *) *uuid_count);
- /* Fix : NULL_RETURNS */
- if (*uuids == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
+ *uuids = g_malloc0(sizeof(char *) * uuid_count);
*count = uuid_count;
remain_data = adv_data;
if (uuid_size != 0) {
for (i = 0; i < (field_len - 1); i += uuid_size) {
if (uuid_size == 2) {
- (*uuids)[uuid_index] = g_malloc0(sizeof(char) *4 + 1);
- /* Fix : NULL_RETURNS */
- if ((*uuids)[uuid_index] == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
+ (*uuids)[uuid_index] = g_malloc0(sizeof(char) * 4 + 1);
snprintf((*uuids)[uuid_index], 5,
"%2.2X%2.2X", remain_data[i+3],
remain_data[i+2]);
} else {
- (*uuids)[uuid_index] = g_malloc0(sizeof(char) *36 + 1);
- /* Fix : NULL_RETURNS */
- if ((*uuids)[uuid_index] == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
+ (*uuids)[uuid_index] = g_malloc0(sizeof(char) * 36 + 1);
snprintf((*uuids)[uuid_index], 37, "%2.2X%2.2X%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X%2.2X%2.2X%2.2X%2.2X",
remain_data[i+17], remain_data[i+16], remain_data[i+15], remain_data[i+14],
remain_data[i+13], remain_data[i+12], remain_data[i+11], remain_data[i+10], remain_data[i+9], remain_data[i+8],
if (data_count == 0)
return BT_ERROR_NO_DATA;
- *data_list = g_malloc0(sizeof(bt_adapter_le_service_data_s) *data_count);
- /* Fix : NULL_RETURNS */
- if (*data_list == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
+ *data_list = g_malloc0(sizeof(bt_adapter_le_service_data_s) * data_count);
*count = data_count;
remain_data = adv_data;
return BT_ERROR_NO_DATA; /* LCOV_EXCL_STOP */
}
-int bt_adapter_le_free_ibeacon_report(bt_adapter_ibeacon_scan_result_info_s *ibeacon_info)
+int bt_adapter_le_free_ibeacon_report(bt_adapter_le_ibeacon_scan_result_info_s *ibeacon_info)
{
BT_CHECK_LE_SUPPORT();
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(ibeacon_info); /* LCOV_EXCL_START */
- if (ibeacon_info->uuid)
- g_free(ibeacon_info->uuid);
+ g_free(ibeacon_info->uuid);
g_free(ibeacon_info);
}
int bt_adapter_le_get_scan_result_ibeacon_report(const bt_adapter_le_device_scan_result_info_s *info,
- bt_adapter_le_packet_type_e pkt_type, bt_adapter_ibeacon_scan_result_info_s **ibeacon_info)
+ bt_adapter_le_packet_type_e pkt_type, bt_adapter_le_ibeacon_scan_result_info_s **ibeacon_info)
{
int manufacturer_id;
char *manufacturer_data;
if (manufacturer_id != COMPANY_ID_APPLE)
return BT_ERROR_NO_DATA;
- *ibeacon_info = g_malloc0(sizeof(bt_adapter_ibeacon_scan_result_info_s));
- if (*ibeacon_info == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
+ *ibeacon_info = g_malloc0(sizeof(bt_adapter_le_ibeacon_scan_result_info_s));
(*ibeacon_info)->company_id = manufacturer_id;
(*ibeacon_info)->ibeacon_type = manufacturer_data[1] << 8;
(*ibeacon_info)->ibeacon_type += manufacturer_data[0];
- (*ibeacon_info)->uuid = g_malloc0(sizeof(char) *36 + 1);
- if ((*ibeacon_info)->uuid == NULL) {
- g_free(*ibeacon_info);
- return BT_ERROR_OUT_OF_MEMORY;
- }
+ (*ibeacon_info)->uuid = g_malloc0(sizeof(char) * 36 + 1);
snprintf((*ibeacon_info)->uuid, 37, "%2.2X%2.2X%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X-%2.2X%2.2X%2.2X%2.2X%2.2X%2.2X",
manufacturer_data[17], manufacturer_data[16], manufacturer_data[15], manufacturer_data[14],
/* LCOV_EXCL_START */
-int bt_adapter_le_create_scan_filter(bt_scan_filter_h *scan_filter)
+int bt_adapter_le_scan_filter_create(bt_scan_filter_h *scan_filter)
{
bt_le_scan_filter_s *__filter = NULL;
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(scan_filter);
- if (bluetooth_is_scan_filter_supported() == FALSE) {
- BT_ERR("BT_ERROR_NOT_SUPPORTED(0x%08x)", BT_ERROR_NOT_SUPPORTED);
- return BT_ERROR_NOT_SUPPORTED;
- }
-
__filter = (bt_le_scan_filter_s *)g_malloc0(sizeof(bt_le_scan_filter_s));
- if (__filter == NULL) {
- BT_ERR("OUT_OF_MEMORY(0x%08x)",
- BT_ERROR_OUT_OF_MEMORY); /* LCOV_EXCL_LINE */
- return BT_ERROR_OUT_OF_MEMORY;
- }
__filter->manufacturer_id = -1;
*scan_filter = (bt_scan_filter_h)__filter;
return BT_ERROR_NONE;
}
-int bt_adapter_le_destroy_scan_filter(bt_scan_filter_h scan_filter)
+int bt_adapter_le_scan_filter_destroy(bt_scan_filter_h scan_filter)
{
bt_le_scan_filter_s *__filter = (bt_le_scan_filter_s *)scan_filter;
return BT_ERROR_NONE;
}
-int bt_adapter_le_register_scan_filter(bt_scan_filter_h scan_filter)
+int bt_adapter_le_scan_filter_register(bt_scan_filter_h scan_filter)
{
int error_code = BT_ERROR_NONE;
bt_le_scan_filter_s *__filter = (bt_le_scan_filter_s *)scan_filter;
return error_code;
}
-int bt_adapter_le_unregister_scan_filter(bt_scan_filter_h scan_filter)
+int bt_adapter_le_scan_filter_unregister(bt_scan_filter_h scan_filter)
{
int error_code = BT_ERROR_NONE;
bt_le_scan_filter_s *__filter = (bt_le_scan_filter_s *)scan_filter;
return error_code;
}
-int bt_adapter_le_unregister_all_scan_filters(void)
+int bt_adapter_le_scan_filter_unregister_all(void)
{
int error_code = BT_ERROR_NONE;
BT_CHECK_LE_SUPPORT();
BT_CHECK_INIT_STATUS();
- if (bluetooth_is_scan_filter_supported() == FALSE) {
- BT_ERR("BT_ERROR_NOT_SUPPORTED(0x%08x)", BT_ERROR_NOT_SUPPORTED);
- return BT_ERROR_NOT_SUPPORTED;
- }
-
if (bluetooth_is_le_scanning() == TRUE) {
BT_ERR("NOW_IN_PROGRESS(0x%08x)",
BT_ERROR_NOW_IN_PROGRESS); /* LCOV_EXCL_LINE */
return BT_ERROR_NONE;
}
-int bt_adapter_le_set_ibeacon_scan_filter(bt_scan_filter_h scan_filter,
- const char *data,
- unsigned int data_len)
+int bt_adapter_le_scan_filter_set_ibeacon(bt_scan_filter_h scan_filter)
{
bt_le_scan_filter_s *__filter = (bt_le_scan_filter_s *)scan_filter;
int ibeacon_manufacturer_id = COMPANY_ID_APPLE;
BT_INFO("");
- if (data_len > 27) {
- BT_ERR("INVALID_PARAMETER(0x%08x)",
- BT_ERROR_INVALID_PARAMETER); /* LCOV_EXCL_LINE */
- bt_adapter_le_destroy_scan_filter(scan_filter);
- return BT_ERROR_INVALID_PARAMETER;
- }
g_free(__filter->manufacturer_data);
g_free(__filter->manufacturer_data_mask);
__filter->manufacturer_id = ibeacon_manufacturer_id;
- if (data != NULL) {
- __filter->manufacturer_data = g_memdup(data, data_len);
- __filter->manufacturer_data_len = data_len;
- } else {
- __filter->manufacturer_data = NULL;
- __filter->manufacturer_data_len = 0;
- }
+ __filter->manufacturer_data = NULL;
+ __filter->manufacturer_data_len = 0;
__filter->manufacturer_data_mask = NULL;
return BT_ERROR_NONE;
}
+int bt_adapter_le_scan_filter_set_proximity_uuid(bt_scan_filter_h scan_filter)
+{
+ int ret;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(scan_filter);
+
+ /* register Linkloss alert scan filter */
+ ret = bt_adapter_le_scan_filter_create(&pxp_linkloss_alert_filter);
+ if (ret == BT_ERROR_NONE) {
+
+ ret = bt_adapter_le_scan_filter_set_service_uuid(pxp_linkloss_alert_filter, PXP_LINK_LOSS_SVC_UUID);
+ if (ret == BT_ERROR_NONE)
+ ret = bt_adapter_le_scan_filter_register(pxp_linkloss_alert_filter);
+ if (ret != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ ret = bt_adapter_le_scan_filter_destroy(pxp_linkloss_alert_filter);
+ if (ret != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ pxp_linkloss_alert_filter = NULL;
+ }
+ } else {
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ /* register Immediate alert scan filter */
+ ret = bt_adapter_le_scan_filter_create(&pxp_immediate_alert_filter);
+ if (ret == BT_ERROR_NONE) {
+
+ ret = bt_adapter_le_scan_filter_set_service_uuid(pxp_immediate_alert_filter, PXP_IMMEDIATE_ALERT_SVC_UUID);
+ if (ret == BT_ERROR_NONE)
+ ret = bt_adapter_le_scan_filter_register(pxp_immediate_alert_filter);
+ if (ret != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ ret = bt_adapter_le_scan_filter_destroy(pxp_immediate_alert_filter);
+ if (ret != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ pxp_immediate_alert_filter = NULL;
+ }
+ } else {
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ /* register Signal loss scan filter */
+ ret = bt_adapter_le_scan_filter_create(&pxp_signal_loss_filter);
+ if (ret == BT_ERROR_NONE) {
+
+ ret = bt_adapter_le_scan_filter_set_service_uuid(pxp_signal_loss_filter, PXP_TX_POWER_SVC_UUID);
+ if (ret == BT_ERROR_NONE)
+ ret = bt_adapter_le_scan_filter_register(pxp_signal_loss_filter);
+ if (ret != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ ret = bt_adapter_le_scan_filter_destroy(pxp_signal_loss_filter);
+ if (ret != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ pxp_signal_loss_filter = NULL;
+ }
+ } else {
+ return BT_ERROR_OPERATION_FAILED;
+ }
+ return ret;
+}
+
+int bt_adapter_le_scan_filter_unset_proximity_uuid(bt_scan_filter_h scan_filter)
+{
+ int ret = BT_ERROR_NONE;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(scan_filter);
+
+ /* unregister Linkloss alert scan filter */
+ if (pxp_linkloss_alert_filter) {
+
+ ret = bt_adapter_le_scan_filter_unregister(pxp_linkloss_alert_filter);
+ if (ret != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ ret = bt_adapter_le_scan_filter_destroy(pxp_linkloss_alert_filter);
+ if (ret != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ pxp_linkloss_alert_filter = NULL;
+ }
+
+ /* unregister Immediate alert scan filter */
+ if (pxp_immediate_alert_filter) {
+
+ ret = bt_adapter_le_scan_filter_unregister(pxp_immediate_alert_filter);
+ if (ret != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ ret = bt_adapter_le_scan_filter_destroy(pxp_immediate_alert_filter);
+ if (ret != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ pxp_immediate_alert_filter = NULL;
+ }
+
+ /* unregister Signal loss scan filter */
+ if (pxp_signal_loss_filter) {
+
+ ret = bt_adapter_le_scan_filter_unregister(pxp_signal_loss_filter);
+ if (ret != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ ret = bt_adapter_le_scan_filter_destroy(pxp_signal_loss_filter);
+ if (ret != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ pxp_signal_loss_filter = NULL;
+ }
+
+ return ret;
+}
/* LCOV_EXCL_STOP */
+int bt_adapter_le_scan_filter_set_type(bt_scan_filter_h scan_filter,
+ bt_adapter_le_scan_filter_type_e mode)
+{
+ if (mode == BT_ADAPTER_LE_SCAN_FILTER_TYPE_IBEACON)
+ return bt_adapter_le_scan_filter_set_ibeacon(scan_filter);
+ else if (mode == BT_ADAPTER_LE_SCAN_FILTER_TYPE_PROXIMITY_UUID) /* LCOV_EXCL_LINE */
+ return bt_adapter_le_scan_filter_set_proximity_uuid(scan_filter); /* LCOV_EXCL_LINE */
+ else
+ return BT_ERROR_INVALID_PARAMETER;
+}
+
int bt_adapter_passkey_reply(char *passkey, bool authentication_reply)
{
BT_CHECK_INIT_STATUS();
- BT_CHECK_INPUT_PARAMETER(passkey);
- int error_code = BT_ERROR_NONE;
- error_code = _bt_get_error_code(bluetooth_passkey_reply(passkey, authentication_reply));
- if (error_code != BT_ERROR_NONE)
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ BT_CHECK_INPUT_PARAMETER(passkey); /* LCOV_EXCL_LINE */
+ int error_code = BT_ERROR_NONE; /* LCOV_EXCL_LINE */
+ error_code = _bt_get_error_code(bluetooth_passkey_reply(passkey, authentication_reply)); /* LCOV_EXCL_LINE */
+ if (error_code != BT_ERROR_NONE) /* LCOV_EXCL_LINE */
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code); /* LCOV_EXCL_LINE */
return error_code;
}
{
BT_CHECK_INIT_STATUS();
- int error_code = BT_ERROR_NONE;
- error_code = _bt_get_error_code(bluetooth_passkey_confirmation_reply(confirmation_reply));
- if (error_code != BT_ERROR_NONE)
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ int error_code = BT_ERROR_NONE; /* LCOV_EXCL_LINE */
+ error_code = _bt_get_error_code(bluetooth_passkey_confirmation_reply(confirmation_reply)); /* LCOV_EXCL_LINE */
+ if (error_code != BT_ERROR_NONE) /* LCOV_EXCL_LINE */
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code); /* LCOV_EXCL_LINE */
return error_code;
}
-/* LCOV_EXCL_STOP */
} call_list_s;
static bool is_audio_a2dp_initialized = false;
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
static bool is_audio_hf_initialized = false;
-#endif
static bool is_audio_ag_initialized = false;
#define BT_CHECK_AUDIO_SUPPORT() \
else
is_audio_a2dp_initialized = true;
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
- error = bluetooth_hf_init(_bt_hf_event_proxy, NULL);
- error = _bt_get_error_code(error);
- if (BT_ERROR_NONE != error)
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error);
- else
- is_audio_hf_initialized = true;
-#endif
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
+ error = bluetooth_hf_init(_bt_hf_event_proxy, NULL); /* LCOV_EXCL_LINE */
+ error = _bt_get_error_code(error); /* LCOV_EXCL_LINE */
+ if (BT_ERROR_NONE != error) /* LCOV_EXCL_LINE */
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error); /* LCOV_EXCL_LINE */
+ else /* LCOV_EXCL_LINE */
+ is_audio_hf_initialized = true; /* LCOV_EXCL_LINE */
+ }
#ifndef TIZEN_FEATURE_HFP_DISABLE /* B2_3G */
error = bluetooth_telephony_init((void *)_bt_telephony_event_proxy, NULL);
/* There is no success case for 3 profiles */
if (!is_audio_a2dp_initialized &&
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
- !is_audio_hf_initialized &&
-#endif
- !is_audio_ag_initialized) {
+ (!TIZEN_PROFILE_WEARABLE_IVI || !is_audio_hf_initialized) && /* LCOV_EXCL_LINE */
+ !is_audio_ag_initialized) { /* LCOV_EXCL_LINE */
return BT_ERROR_OPERATION_FAILED;
}
is_audio_a2dp_initialized = false;
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
- error = bluetooth_hf_deinit();
- error = _bt_get_error_code(error);
- if (BT_ERROR_NONE != error)
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error);
+ if (TIZEN_PROFILE_WEARABLE_IVI) { /* LCOV_EXCL_START */
+ error = bluetooth_hf_deinit();
+ error = _bt_get_error_code(error);
+ if (BT_ERROR_NONE != error)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error);
- is_audio_hf_initialized = false;
-#endif
+ is_audio_hf_initialized = false; /* LCOV_EXCL_STOP */
+ }
#ifndef TIZEN_FEATURE_HFP_DISABLE /* B2_3G */
error = bluetooth_telephony_deinit();
case BT_AUDIO_PROFILE_TYPE_A2DP:
error = bluetooth_av_connect(&addr_hex);
break;
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
- case BT_AUDIO_PROFILE_TYPE_AG:
- error = bluetooth_hf_connect(&addr_hex);
- break;
-#endif
case BT_AUDIO_PROFILE_TYPE_A2DP_SINK:
error = bluetooth_av_source_connect(&addr_hex);
break;
+ case BT_AUDIO_PROFILE_TYPE_AG:
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
+ error = bluetooth_hf_connect(&addr_hex);
+ break;
+ } /* else: goto default */
case BT_AUDIO_PROFILE_TYPE_ALL:
default:
error = bluetooth_audio_connect(&addr_hex);
case BT_AUDIO_PROFILE_TYPE_A2DP:
error = bluetooth_av_disconnect(&addr_hex);
break;
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
- case BT_AUDIO_PROFILE_TYPE_AG:
- error = bluetooth_hf_disconnect(&addr_hex);
- break;
-#endif
case BT_AUDIO_PROFILE_TYPE_A2DP_SINK:
error = bluetooth_av_source_disconnect(&addr_hex);
break;
+ case BT_AUDIO_PROFILE_TYPE_AG:
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
+ error = bluetooth_hf_disconnect(&addr_hex);
+ break;
+ } /* else goto default */
case BT_AUDIO_PROFILE_TYPE_ALL:
default:
error = bluetooth_audio_disconnect(&addr_hex);
return error;
}
-/* LCOV_EXCL_STOP */
int bt_ag_notify_vendor_cmd(const char *command)
{
if (error != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error);
return error;
-}
+} /* LCOV_EXCL_STOP */
int bt_ag_notify_voice_recognition_state(bool state)
{
return BT_ERROR_NONE;
}
+int bt_ag_set_vendor_cmd_cb(bt_ag_vendor_cmd_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_VENDOR_CMD, callback, user_data);
+ return BT_ERROR_NONE;
+}
+
+int bt_ag_unset_vendor_cmd_cb(void)
+{
+ BT_CHECK_HFP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_AG_INIT_STATUS();
+ if (_bt_check_cb(BT_EVENT_AG_VENDOR_CMD) == true)
+ _bt_unset_cb(BT_EVENT_AG_VENDOR_CMD);
+ return BT_ERROR_NONE;
+}
+
int bt_ag_set_dtmf_transmitted_cb(bt_ag_dtmf_transmitted_cb callback,
void *user_data)
{
return error;
}
+int bt_ag_switch_headset(const char *remote_addr)
+{
+ int error;
+
+ BT_CHECK_HFP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_AG_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(remote_addr);
+
+ char *addr = g_strdup(remote_addr);
+ BT_INFO("Remote address = %s", addr);
+
+ error = bluetooth_telephony_set_active_headset(addr);
+ error = _bt_get_error_code(error);
+
+ if (error != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error);
+
+ g_free(addr);
+
+ return error;
+}
+
int bt_call_list_create(bt_call_list_h *list)
{
call_list_s *handle;
return BT_ERROR_ALREADY_DONE;
}
handle = g_malloc0(sizeof(call_list_s));
- if (handle == NULL) {
- BT_ERR("BT_ERROR_OUT_OF_MEMORY(0x%08x)", BT_ERROR_OUT_OF_MEMORY);
- return BT_ERROR_OUT_OF_MEMORY;
- }
*list = handle;
return BT_ERROR_NONE;
break;
handle->list = g_list_remove(handle->list, call_status);
- if (NULL != call_status->phone_number)
- g_free(call_status->phone_number);
+ g_free(call_status->phone_number);
g_free(call_status);
} while (1);
handle = (call_list_s *)list;
call_status = g_malloc0(sizeof(bt_telephony_call_status_info_t));
- /* Fix : NULL_RETURNS */
- if (call_status == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
call_status->call_id = call_id;
call_status->call_status = state;
if (phone_number)
}
return error;
}
-/* LCOV_EXCL_STOP */
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
int bt_hf_initialize(void)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
int error;
- BT_CHECK_INIT_STATUS();
error = bluetooth_hf_init(_bt_hf_event_proxy, NULL);
error = _bt_get_error_code(error);
if (BT_ERROR_NONE != error) {
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error);
return error;
}
+
+ is_audio_hf_initialized = true;
+
return error;
}
int bt_hf_deinitialize(void)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
int error;
- BT_CHECK_INIT_STATUS();
error = bluetooth_hf_deinit();
error = _bt_get_error_code(error);
- if (BT_ERROR_NONE != error) {
+ if (BT_ERROR_NONE != error)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error);
- return error;
- }
- return error;
+
+ is_audio_hf_initialized = false;
+
+ return BT_ERROR_NONE;
}
int bt_hf_notify_call_event(bt_hf_call_event_e event, char *phone_number)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
int error = BT_ERROR_NONE;
int bt_hf_notify_speaker_gain(int gain)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
int error;
int bt_hf_set_speaker_gain_changed_cb(bt_hf_speaker_gain_changed_cb callback, void *user_data)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
_bt_set_cb(BT_EVENT_HF_SPEAKER_GAIN_CHANGE, callback, user_data);
int bt_hf_unset_speaker_gain_changed_cb(void)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
if (_bt_check_cb(BT_EVENT_HF_SPEAKER_GAIN_CHANGE) == true)
_bt_unset_cb(BT_EVENT_HF_SPEAKER_GAIN_CHANGE);
int bt_hf_notify_voice_recognition_state(bool state)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
int error;
return error;
}
-int bt_hf_set_call_status_updated_event_cb(bt_hf_call_status_updated_event_cb callback, void *user_data)
+int bt_hf_set_vendor_dep_cmd_event_cb(bt_hf_vendor_dep_cmd_event_cb callback, void *user_data)
{
BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(callback);
+
+ _bt_set_cb(BT_EVENT_HF_VENDOR_DEP_CMD_EVENT, callback, user_data);
+ return BT_ERROR_NONE;
+}
+
+int bt_hf_unset_vendor_dep_cmd_event_cb(void)
+{
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
+
+ if (_bt_check_cb(BT_EVENT_HF_VENDOR_DEP_CMD_EVENT) == true)
+ _bt_unset_cb(BT_EVENT_HF_VENDOR_DEP_CMD_EVENT);
+ return BT_ERROR_NONE;
+}
+
+int bt_hf_notify_vendor_cmd(int appid, char *msg)
+{
+ int error;
+
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
+
+ error = bluetooth_hf_send_xsat_cmd(appid, msg);
+ error = _bt_get_error_code(error);
+ if (error != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error);
+
+ return error;
+}
+
+int bt_hf_set_call_status_updated_event_cb(bt_hf_call_status_updated_event_cb callback, void *user_data)
+{
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
_bt_set_cb(BT_EVENT_HF_CALL_STATUS_UPDATED_EVENT, callback, user_data);
int bt_hf_unset_call_status_updated_event_cb(void)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
if (_bt_check_cb(BT_EVENT_HF_CALL_STATUS_UPDATED_EVENT) == true)
_bt_unset_cb(BT_EVENT_HF_CALL_STATUS_UPDATED_EVENT);
int bt_hf_close_sco(void)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
int error;
int bt_hf_send_dtmf(char *dtmf)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
int error;
int bt_hf_is_connected(bool *connected)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(connected);
int error;
int bt_hf_is_sco_opened(bool *opened)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(opened);
int error;
int bt_hf_get_codec_id(unsigned int *codec_id)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(codec_id);
int error;
int bt_hf_get_call_status_info_list(GSList **call_list)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(call_list);
int error;
int bt_hf_is_inband_ringtone_supported(bool *supported)
{
-#ifdef TIZEN_BT_HFP_HF_ENABLE
- int error;
- gboolean is_supported = FALSE;
-
BT_CHECK_HF_SUPPORT();
BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(supported);
+ int error;
+ gboolean is_supported = FALSE;
+
error = bluetooth_hf_is_ibr_supported(&is_supported);
error = _bt_get_error_code(error);
if (error != BT_ERROR_NONE)
*supported = FALSE;
return error;
-#else
- BT_ERR("NOT_SUPPORTED(0x%08x)", BT_ERROR_NOT_SUPPORTED);
- return BT_ERROR_NOT_SUPPORTED;
-#endif
}
static void __bt_hf_free_call_status_info(void *data)
int bt_hf_free_call_status_info_list(GSList *call_list)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(call_list);
g_slist_free_full(call_list, __bt_hf_free_call_status_info);
int bt_hf_set_sco_state_changed_cb(bt_hf_sco_state_changed_cb callback,
void *user_data)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
_bt_set_cb(BT_EVENT_HF_SCO_CONNECTION_STATUS, callback, user_data);
return BT_ERROR_NONE;
int bt_hf_unset_sco_state_changed_cb(void)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
if (_bt_check_cb(BT_EVENT_HF_SCO_CONNECTION_STATUS) == true)
_bt_unset_cb(BT_EVENT_HF_SCO_CONNECTION_STATUS);
int bt_hf_set_call_handling_event_cb(bt_hf_call_handling_event_cb callback,
void *user_data)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
_bt_set_cb(BT_EVENT_HF_CALL_HANDLING_EVENT, callback, user_data);
int bt_hf_unset_call_handling_event_cb(void)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
if (_bt_check_cb(BT_EVENT_HF_CALL_HANDLING_EVENT) == true)
_bt_unset_cb(BT_EVENT_HF_CALL_HANDLING_EVENT);
bt_hf_multi_call_handling_event_cb callback,
void *user_data)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
_bt_set_cb(BT_EVENT_HF_MULTI_CALL_HANDLING_EVENT, callback, user_data);
int bt_hf_unset_multi_call_handling_event_cb(void)
{
- BT_CHECK_INIT_STATUS();
BT_CHECK_HF_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
if (_bt_check_cb(BT_EVENT_HF_MULTI_CALL_HANDLING_EVENT) == true)
_bt_unset_cb(BT_EVENT_HF_MULTI_CALL_HANDLING_EVENT);
{
BT_CHECK_HF_SUPPORT();
BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
_bt_set_cb(BT_EVENT_HF_REMOTE_CALL_EVENT, callback, user_data);
return BT_ERROR_NONE;
{
BT_CHECK_HF_SUPPORT();
BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
if (_bt_check_cb(BT_EVENT_HF_REMOTE_CALL_EVENT) == true)
_bt_unset_cb(BT_EVENT_HF_REMOTE_CALL_EVENT);
return BT_ERROR_NONE;
{
BT_CHECK_HF_SUPPORT();
BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(callback);
_bt_set_cb(BT_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED, callback, user_data);
return BT_ERROR_NONE;
{
BT_CHECK_HF_SUPPORT();
BT_CHECK_INIT_STATUS();
+ BT_CHECK_HF_INIT_STATUS();
if (_bt_check_cb(BT_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED) == true)
_bt_unset_cb(BT_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED);
return BT_ERROR_NONE;
}
-#endif
+/* LCOV_EXCL_STOP */
return BT_ERROR_NOT_INITIALIZED; \
}
+/* LCOV_EXCL_START */
int __bt_check_avrcp_control_init_status(void)
{
- if (is_avrcp_control_initialized != true) {
+ if (is_avrcp_control_initialized != true) { /* LCOV_EXCL_LINE */
BT_ERR("NOT_INITIALIZED(0x%08x)", BT_ERROR_NOT_INITIALIZED); /* LCOV_EXCL_LINE */
return BT_ERROR_NOT_INITIALIZED; /* LCOV_EXCL_LINE */
}
return BT_ERROR_NONE;
}
+/* LCOV_EXCL_STOP */
/*The below API is just to conver the error from Audio API's to CAPI error codes,
* this is temporary change and changes to proper error code will be done in
return BT_ERROR_NONE;
}
+/* LCOV_EXCL_START */
int bt_avrcp_target_connect(const char *remote_address)
{
int error;
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error), error);
return error;
-}
+} /* LCOV_EXCL_STOP */
int bt_avrcp_target_deinitialize(void)
{
return error;
}
+int bt_avrcp_control_set_absolute_volume(unsigned int value)
+{
+ int error;
+
+ BT_CHECK_AVRCP_CONTROL_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_AVRCP_CONTROL_INIT_STATUS();
+ error = bluetooth_media_transport_set_property(VOLUME, value);
+ 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_set_equalizer_state(bt_avrcp_equalizer_state_e state)
{
int error;
} else {
tr_info = (bt_avrcp_metadata_attributes_info_s *)g_malloc0(
sizeof(bt_avrcp_metadata_attributes_info_s));
- if (tr_info) {
- tr_info->title = metadata.title;
- tr_info->artist = metadata.artist;
- tr_info->album = metadata.album;
- tr_info->genre = metadata.genre;
- tr_info->total_tracks = metadata.total_tracks;
- tr_info->number = metadata.number;
- tr_info->duration = metadata.duration;
- *track = tr_info;
- }
+
+ tr_info->title = metadata.title;
+ tr_info->artist = metadata.artist;
+ tr_info->album = metadata.album;
+ tr_info->genre = metadata.genre;
+ tr_info->total_tracks = metadata.total_tracks;
+ tr_info->number = metadata.number;
+ tr_info->duration = metadata.duration;
+ *track = tr_info;
}
return error;
}
#include <stdio.h>
#include <stdbool.h>
#include <bluetooth-api.h>
+#include <system_info.h>
#include "bluetooth.h"
#include "bluetooth_internal.h"
static int __bt_get_bt_adapter_le_device_scan_info_s(bt_adapter_le_device_scan_result_info_s **scan_info, bluetooth_le_device_info_t *source_info);
static void __bt_free_bt_adapter_le_device_scan_info_s(bt_adapter_le_device_scan_result_info_s *scan_info);
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
+/* TDS Forward declarations */
+static void __bt_free_tds_scan_result_info_s(bt_tds_transport_block_list_s *discovery_info);
+
static int __bt_get_bt_adapter_le_device_discovery_info_s(bt_adapter_le_device_discovery_info_s **le_discovery_info, bluetooth_le_device_info_t *source_info);
static void __bt_free_bt_adapter_le_device_discovery_info_s(bt_adapter_le_device_discovery_info_s *discovery_info);
-#endif
-static int __bt_gatt_client_update_characteristics(bt_gatt_handle_info_t char_handles, bt_gatt_service_s *service);
-static int __bt_gatt_client_update_descriptors(bt_gatt_handle_info_t desc_handles, bt_gatt_characteristic_s *characteristic);
/*
* Public Functions
BT_CHECK_INPUT_PARAMETER(uuid);
BT_CHECK_INPUT_PARAMETER(name);
- int i;
- int offset = 0;
- int uuid_len = 4;
- static struct {
- const char *uuid;
- const char *specification_name;
- } bt_uuid_name[] = {
- /* BT Classic Services */
- {"1101", "Serial Port Service"},
- {"1102", "LAN Access Using PPP Service"},
- {"1103", "Dialup Netwworking Service"},
- {"1104", "IrMCSync Service"},
- {"1105", "OBEX Object Push Service"},
- {"1106", "OBEX File Transfer Service"},
- {"1107", "IrMC Sync Command Service"},
- {"1108", "Headset Service"},
- {"1109", "Cordless Telephony Service"},
- {"110A", "Audio Source Service"},
- {"110B", "Audio Sink Service"},
- {"110C", "AV Remote Control Target Service"},
- {"110D", "Advanced Audio Distribution Profile"},
- {"110E", "AV Remote Control Service"},
- {"110F", "Video Conferencing Service"},
- {"1110", "Intercom Service"},
- {"1111", "Fax Service"},
- {"1112", "Headset Audio Gateway Service"},
- {"1113", "WAP Service"},
- {"1114", "WAP Client Service"},
- {"1115", "PANU Service"},
- {"1116", "NAP Service"},
- {"1117", "GN Service"},
- {"1118", "Direct Printing Service"},
- {"1119", "Reference Printing Service"},
- {"111A", "Basic Imaging Profile"},
- {"111B", "Imaging Responder Service"},
- {"111C", "Imaging Automatic Archive Service"},
- {"111D", "Imaging Reference Objects Service"},
- {"111E", "Handsfree Service"},
- {"111F", "Handsfree Audio Gateway Service"},
- {"1120", "Direct Printing Reference Objects Service"},
- {"1121", "Reflected UI Service"},
- {"1122", "Basic Printing Profile"},
- {"1123", "Printing Status Service"},
- {"1124", "Human Interface Device Service"},
- {"1125", "Hardcopy Cable Replacement Profile"},
- {"1126", "HCR Print Service"},
- {"1127", "HCR Scan Service"},
- {"112D", "SIM Access Service"},
- {"112E", "Phonebook Access PCE Service"},
- {"112F", "Phonebook Access PSE Service"},
- {"1130", "Phonebook Access Profile"},
- {"1132", "Message Access Server Service"},
- {"1133", "Message Notification Server Service"},
- {"1134", "Message Access Profile"},
- {"1200", "PnP Information Service"},
- {"1201", "Generic Networking Service"},
- {"1202", "Generic File Transfer Service"},
- {"1203", "Generic Audio Service"},
- {"1204", "Generic Telephony Service"},
- {"1205", "UPnP Service"},
- {"1206", "UPnP Ip Service"},
- {"1400", "Health Device Profile"},
-
- /* GATT Services */
- {"1800", "Generic Access"},
- {"1801", "Generic Attribute"},
- {"1802", "Immediate Alert"},
- {"1803", "Link Loss"},
- {"1804", "Tx Power"},
- {"1805", "Current Time Service"},
- {"1806", "Reference Time Update Service"},
- {"1807", "Next DST Change Service"},
- {"1808", "Glucose"},
- {"1809", "Health Thermometer"},
- {"180A", "Device Information"},
- {"180D", "Heart Rate"},
- {"180F", "Battery Service"},
- {"1810", "Blood Pressure"},
- {"1811", "Alert Notification Service"},
- {"1812", "Human Interface Device"},
-
- /* GATT Declarations */
- {"2800", "Primary Service Declaration"},
- {"2801", "Secondary Service Declaration"},
- {"2802", "Include Declaration"},
- {"2803", "Characteristic Declaration"},
-
- /* GATT Descriptors */
- {"2900", "Characteristic Extended Properties"},
- {"2901", "Characteristic User Description"},
- {"2902", "Client Characteristic Configuration"},
- {"2903", "Server Characteristic Configuration"},
- {"2904", "Characteristic Format"},
- {"2905", "Characteristic Aggregate Formate"},
- {"2906", "Valid Range"},
- {"2907", "External Report Reference"},
- {"2908", "Report Reference"},
-
- /* GATT Characteristics */
- {"2A00", "Device Name"},
- {"2A01", "Appearance"},
- {"2A02", "Peripheral Privacy Flag"},
- {"2A03", "Reconnection Address"},
- {"2A04", "Peripheral Preferred Connection Parameters"},
- {"2A05", "Service Changed"},
- {"2A06", "Alert Level"},
- {"2A07", "Tx Power Level"},
- {"2A08", "Date Time"},
- {"2A09", "Day of Week"},
- {"2A0A", "Day Date Time"},
- {"2A19", "Battery Level"},
- {"2A1E", "Intermediate Temperature"},
- {"2A23", "System ID"},
- {"2A24", "Model Number String"},
- {"2A25", "Serial Number String"},
- {"2A26", "Firmware Revision String"},
- {"2A27", "Hardware Revision String"},
- {"2A28", "Software Revision String"},
- {"2A29", "Manufacturer Name String"},
- {"2A2A", "IEEE 11073-20601 Regulatory Certification Data List"},
- {"2A2B", "Current Time"},
- {"2A37", "Heart Rate Measurement"},
- {"2A38", "Body Sensor Location"},
- {"2A3F", "Alert Status"},
- {"2A46", "New Alert"},
- {"2A4A", "HID Information"},
- {"2A4C", "HID Control Point"},
- {"2A50", "PnP ID"},
-
- /* Custom uuids */
- {"7905F431-B5CE-4E99-A40F-4B1E122D00D0", "Apple Notification Center Service"},
- {"9FBF120D-6301-42D9-8C58-25E699A21DBD", "Notifications Source"},
- {"69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9", "Control Point"},
- {"22EAC6E9-24D6-4BB5-BE44-B36ACE7C7BFB", "Data Source"},
- {"89D3502B-0F36-433A-8EF4-C502AD55F8DC", "Apple Media Service"},
- {"9B3C81D8-57B1-4A8A-B8DF-0E56F7CA51C2", "Remote Command"},
- {"2F7CABCE-808D-411F-9A0C-BB92BA96C102", "Entity Update"},
- {"C6B2F38C-23AB-46D8-A6AB-A3A870BBD5D7", "Entity Attribute"},
- {"9A3F68E0-86CE-11E5-A309-0002A5D5C51B", "Samsung Gear Manager Service"},
- {"c2f2cc0f-c085-4dd4-be5a-aca3074bbc72", "Control Point"},
- {"cece518b-28d7-4171-92d5-76a1e249a3b9", "Notifications Source"},
- {NULL, NULL}
- };
-
- if (strlen(uuid) == 36) {
- if (!g_ascii_strncasecmp(uuid + 9, "0000-1000-8000-00805F9B34FB", 27))
- offset = 4;
- else {
- offset = 0;
- uuid_len = 36;
- }
- } else if (strlen(uuid) >= 8)
- offset = 4;
-
- for (i = 0; bt_uuid_name[i].uuid; i++) {
- if (!g_ascii_strncasecmp(uuid + offset, bt_uuid_name[i].uuid, uuid_len)) {
- *name = g_strdup(bt_uuid_name[i].specification_name);
- return BT_ERROR_NONE;
- }
- }
-
- *name = g_strdup("Unknown");
- return BT_ERROR_NONE;
+ return _bt_get_error_code(bluetooth_get_uuid_name(uuid, name));
}
/*
return BT_ERROR_AUTH_REJECTED;
case BLUETOOTH_ERROR_DEVICE_POLICY_RESTRICTION:
return BT_ERROR_DEVICE_POLICY_RESTRICTION;
+/* Because BLUETOOTH_ERROR_NO_DATA is not defined in Tizen 3.0's bluetooth-api.h,
+ the build error is occured. We will include all patchsets for this in Tizen 4.0.
+ In tizen 3.0, we comment out this code for fixing build error. */
+#if 0
+ case BLUETOOTH_ERROR_NO_DATA:
+ return BT_ERROR_NO_DATA;
+#endif
case BLUETOOTH_ERROR_PARING_FAILED:
case BLUETOOTH_ERROR_MAX_CONNECTION:
case BLUETOOTH_ERROR_REGISTRATION_FAILED:
(*dest_dev)->manufacturer_data_len = source_dev->manufacturer_data.data_len;
if (source_dev->manufacturer_data.data_len > 0) {
(*dest_dev)->manufacturer_data = (char *)malloc(source_dev->manufacturer_data.data_len);
- memcpy((*dest_dev)->manufacturer_data, source_dev->manufacturer_data.data, source_dev->manufacturer_data.data_len);
+ if ((*dest_dev)->manufacturer_data)
+ memcpy((*dest_dev)->manufacturer_data, source_dev->manufacturer_data.data,
+ source_dev->manufacturer_data.data_len);
+ else
+ return BT_ERROR_OUT_OF_MEMORY;
} else {
(*dest_dev)->manufacturer_data = (char *)malloc(1);
- (*dest_dev)->manufacturer_data[0] = 0;
+ if ((*dest_dev)->manufacturer_data)
+ (*dest_dev)->manufacturer_data[0] = 0;
+ else
+ return BT_ERROR_OUT_OF_MEMORY;
}
return BT_ERROR_NONE;
free(device_info);
device_info = NULL;
}
+
+int _bt_get_ad_data_by_type(char *in_data, int in_len,
+ char in_type, char **data, int *data_len)
+{
+ if (in_data == NULL || data == NULL || data_len == NULL)
+ return BLUETOOTH_ERROR_INTERNAL;
+
+ if (in_len < 0)
+ return BLUETOOTH_ERROR_INTERNAL;
+
+ int i;
+ int len = 0;
+ int type = 0;
+
+ for (i = 0; i < in_len; i++) {
+ len = in_data[i];
+ if (len <= 0 || i + 1 >= in_len) {
+ BT_ERR("Invalid advertising data");
+ return BLUETOOTH_ERROR_INTERNAL;
+ }
+
+ type = in_data[i + 1];
+ if (type == in_type) {
+ i = i + 2;
+ len--;
+ break;
+ }
+
+ i += len;
+ len = 0;
+ }
+
+ if (i + len > in_len) {
+ BT_ERR("Invalid advertising data");
+ return BLUETOOTH_ERROR_INTERNAL;
+ } else if (len == 0) {
+ BT_DBG("AD Type 0x%02x data is not set", in_type);
+ *data = NULL;
+ *data_len = 0;
+ return BLUETOOTH_ERROR_NONE;
+ }
+
+ *data = g_memdup(&in_data[i], len);
+ if (*data == NULL)
+ return BLUETOOTH_ERROR_OUT_OF_MEMORY;
+ *data_len = len;
+
+ return BLUETOOTH_ERROR_NONE;
+}
/* LCOV_EXCL_STOP */
int _bt_convert_address_to_string(char **addr_str, bluetooth_device_address_t *addr_hex)
void _bt_convert_address_to_hex(bluetooth_device_address_t *addr_hex, const char *addr_str)
{
- int i = 0;
- unsigned int addr[BLUETOOTH_ADDRESS_LENGTH] = { 0, };
+ char *ptr1, *ptr2, *ptr3, *ptr4, *ptr5;
if (addr_str == NULL || addr_str[0] == '\0')
- return; /* LCOV_EXCL_LINE */
-
- i = sscanf(addr_str, "%X:%X:%X:%X:%X:%X", &addr[0], &addr[1], &addr[2], &addr[3], &addr[4], &addr[5]);
- if (i != BLUETOOTH_ADDRESS_LENGTH)
- BT_ERR("Invalid format string - [%s]", addr_str); /* LCOV_EXCL_LINE */
+ return;
- for (i = 0; i < BLUETOOTH_ADDRESS_LENGTH; i++)
- addr_hex->addr[i] = (unsigned char)addr[i];
+ addr_hex->addr[0] = strtol(addr_str, &ptr5, 16);
+ addr_hex->addr[1] = strtol(ptr5 + 1, &ptr4, 16);
+ addr_hex->addr[2] = strtol(ptr4 + 1, &ptr3, 16);
+ addr_hex->addr[3] = strtol(ptr3 + 1, &ptr2, 16);
+ addr_hex->addr[4] = strtol(ptr2 + 1, &ptr1, 16);
+ addr_hex->addr[5] = strtol(ptr1 + 1, NULL, 16);
}
char *_bt_convert_error_to_string(int error)
case BT_ERROR_NOT_SUPPORTED:
return "NOT_SUPPORTD"; /* LCOV_EXCL_LINE */
case BT_ERROR_NO_DATA:
- return "NO_DATA";
+ return "NO_DATA"; /* LCOV_EXCL_LINE */
case BT_ERROR_QUOTA_EXCEEDED:
- return "QUOTA EXCEEDED";
+ return "QUOTA EXCEEDED"; /* LCOV_EXCL_LINE */
case BT_ERROR_AGAIN:
- return "AGAIN";
+ return "AGAIN"; /* LCOV_EXCL_LINE */
case BT_ERROR_DEVICE_POLICY_RESTRICTION:
- return "DEVICE_POLICY_RESTRICTION";
+ return "DEVICE_POLICY_RESTRICTION"; /* LCOV_EXCL_LINE */
default:
return "UNKNOWN"; /* LCOV_EXCL_LINE */
}
break;
case 8: /* UUID 32bits */
- uuid128 = g_strdup_printf("%s-0000-1000-8000-00805f9b34fb", uuid);
- break;
+ uuid128 = g_strdup_printf("%s-0000-1000-8000-00805f9b34fb", uuid); /* LCOV_EXCL_LINE */
+ break; /* LCOV_EXCL_LINE */
case 36: /* UUID 128bits */
- uuid128 = strdup(uuid);
- break;
+ uuid128 = strdup(uuid); /* LCOV_EXCL_LINE */
+ break; /* LCOV_EXCL_LINE */
default:
return NULL;
*dest = (bt_device_sdp_info_s *)g_malloc0(sizeof(bt_device_sdp_info_s));
- /* Fix : NULL_RETURNS */
- if (*dest == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
-
if (_bt_convert_address_to_string(&((*dest)->remote_address), &(source->device_addr)) != BT_ERROR_NONE) {
__bt_free_bt_device_sdp_info_s(*dest);
return BT_ERROR_OUT_OF_MEMORY;
sdp_info = NULL;
}
-static int __bt_get_bt_device_att_mtu_info_s(bt_device_att_mtu_info_s **dest, bluetooth_le_att_mtu_info_t *source)
+static int __bt_get_bt_gatt_client_att_mtu_info_s(bt_gatt_client_att_mtu_info_s **dest, bluetooth_le_att_mtu_info_t *source)
{
- *dest = (bt_device_att_mtu_info_s *)g_malloc0(sizeof(bt_device_att_mtu_info_s));
- if (*dest == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
+ *dest = (bt_gatt_client_att_mtu_info_s *)g_malloc0(sizeof(bt_gatt_client_att_mtu_info_s));
if (_bt_convert_address_to_string(&((*dest)->remote_address), &(source->device_address)) != BT_ERROR_NONE) {
g_free(*dest);
{
*dest = (bt_device_connection_info_s *)g_malloc0(sizeof(bt_device_connection_info_s));
- /* Fix : NULL_RETURNS */
- if (*dest == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
-
if (_bt_convert_address_to_string(&((*dest)->remote_address), &(source->device_addr)) != BT_ERROR_NONE) {
__bt_free_bt_device_connection_info_s(*dest);
return BT_ERROR_OUT_OF_MEMORY;
break;
}
- (*dest)->disconn_reason = source->disc_reason;
+ switch (source->disc_reason) {
+/* After ACR for BT_DEVICE_DISCONNECT_REASON_AUTH_FAILED, will enable this code */
+#if 0
+ case (int)BLUETOOTH_ERROR_AUTH_FAILURE:
+ (*dest)->disconn_reason = BT_DEVICE_DISCONNECT_REASON_AUTH_FAILED;
+ break;
+#endif
+ case (int)BLUETOOTH_ERROR_CONNECTION_TIMEOUT:
+ (*dest)->disconn_reason = BT_DEVICE_DISCONNECT_REASON_TIMEOUT;
+ break;
+ case (int)BLUETOOTH_ERROR_REMOTE_USER_TERM:
+ case (int)BLUETOOTH_ERROR_REMOTE_LOW_RESOURCES:
+ case (int)BLUETOOTH_ERROR_REMOTE_POWER_OFF:
+ (*dest)->disconn_reason = BT_DEVICE_DISCONNECT_REASON_REMOTE;
+ break;
+ case (int)BLUETOOTH_ERROR_LOCAL_HOST_TERM:
+ (*dest)->disconn_reason = BT_DEVICE_DISCONNECT_REASON_LOCAL_HOST;
+ break;
+ default:
+ (*dest)->disconn_reason = BT_DEVICE_DISCONNECT_REASON_UNKNOWN;
+ break;
+ }
return BT_ERROR_NONE;
}
-#ifdef GATT_DIRECT
static bt_gatt_server_read_value_requested_cb __bt_gatt_attribute_get_read_cb(
bt_gatt_h service, bt_gatt_h attribute, bt_gatt_h *gatt_handle, void **user_data)
{
for (l2 = serv->services; l2 != NULL; l2 = l2->next) {
bt_gatt_service_s *svc = l2->data;
+ if (!svc)
+ return NULL;
+
if (g_strcmp0(svc->path, svc_path) == 0) {
for (l3 = svc->characteristics; l3 != NULL; l3 = l3->next) {
bt_gatt_characteristic_s *chr = l3->data;
}
return NULL;
}
-#else
-/* Search for handle */
-static bt_gatt_server_read_value_requested_cb __bt_gatt_attribute_get_read_cb(int att_handle, bt_gatt_server_h *server,
- bt_gatt_h *gatt_handle, void **user_data)
-{
- const GSList *gatt_server_list = NULL;
- const GSList *l1, *l2, *l3, *l4;
-
- gatt_server_list = _bt_gatt_get_server_list();
-
- for (l1 = gatt_server_list; l1 != NULL; l1 = l1->next) {
- bt_gatt_server_s *serv = l1->data;
-
- if (!serv)
- return NULL;
-
- for (l2 = serv->services; l2 != NULL; l2 = l2->next) {
- bt_gatt_service_s *svc = l2->data;
- for (l3 = svc->characteristics; l3 != NULL; l3 = l3->next) {
- bt_gatt_characteristic_s *chr = l3->data;
-
- if (chr) {
- if (chr->handle == att_handle) {
- if (chr->read_requested_cb) {
- BT_INFO("GATT Server: Handle search match found! Its a characteristic: UUID [%s]", chr->uuid);
- *user_data = chr->read_requested_user_data;
- *gatt_handle = chr;
- *server = serv;
- return chr->read_requested_cb;
- } else
- return NULL;
- } else {
- for (l4 = chr->descriptors; l4 != NULL; l4 = l4->next) {
- bt_gatt_descriptor_s *desc = l4->data;
-
- if (desc && desc->handle == att_handle) {
- if (desc->read_requested_cb) {
- *user_data = desc->read_requested_user_data;
- *gatt_handle = desc;
- *server = serv;
- BT_INFO("GATT Server: Handle search match found! Its a Desc UUID [%s]", desc->uuid);
- return desc->read_requested_cb;
- } else
- return NULL;
- }
- }
- }
- }
- }
- }
- }
- return NULL;
-}
-#endif
-#ifdef GATT_DIRECT
static bt_gatt_server_write_value_requested_cb __bt_gatt_attribute_get_value_change_cb(
bt_gatt_h service, bt_gatt_h attribute, bt_gatt_h *gatt_handle, void **user_data)
{
for (l2 = serv->services; l2 != NULL; l2 = l2->next) {
bt_gatt_service_s *svc = l2->data;
+ if (!svc)
+ return NULL;
+
if (g_strcmp0(svc->path, svc_path) == 0) {
for (l3 = svc->characteristics; l3 != NULL; l3 = l3->next) {
bt_gatt_characteristic_s *chr = l3->data;
}
return NULL;
}
-#else
-static bt_gatt_server_write_value_requested_cb __bt_gatt_attribute_get_value_change_cb(int att_handle, bt_gatt_h *server,
- bt_gatt_h *gatt_handle, void **user_data)
-{
- const GSList *gatt_server_list = NULL;
- const GSList *l1, *l2, *l3, *l4;
-
- gatt_server_list = _bt_gatt_get_server_list();
-
- for (l1 = gatt_server_list; l1 != NULL; l1 = l1->next) {
- bt_gatt_server_s *serv = l1->data;
-
- if (!serv)
- return NULL;
- for (l2 = serv->services; l2 != NULL; l2 = l2->next) {
- bt_gatt_service_s *svc = l2->data;
- for (l3 = svc->characteristics; l3 != NULL; l3 = l3->next) {
- bt_gatt_characteristic_s *chr = l3->data;
-
- if (chr) {
- if (chr->handle == att_handle) {
- if (chr->write_value_requested_cb) {
- BT_INFO("GATT Server: Handle search match found! Its a characteristic: UUID [%s]", chr->uuid);
- *user_data = chr->write_value_requested_user_data;
- *gatt_handle = chr;
- *server = svc;
- return chr->write_value_requested_cb;
- } else
- return NULL;
- } else {
- for (l4 = chr->descriptors; l4 != NULL; l4 = l4->next) {
- bt_gatt_descriptor_s *desc = l4->data;
-
- if (desc && desc->handle == att_handle) {
- if (desc->write_value_requested_cb) {
- *user_data = desc->write_value_requested_user_data;
- *gatt_handle = desc;
- *server = svc;
- BT_INFO("GATT Server: Handle search match found! Its a Desc UUID [%s]", desc->uuid);
- return desc->write_value_requested_cb;
- } else
- return NULL;
- }
- }
- }
- }
- }
- }
- }
- return NULL;
-}
-#endif
-
-#ifdef GATT_DIRECT
static bt_gatt_server_characteristic_notification_state_changed_cb
__bt_gatt_attribute_get_notification_change_cb(
bt_gatt_h service, bt_gatt_h attribute, bt_gatt_h *gatt_handle, void **user_data)
}
return NULL;
}
-#else
-static bt_gatt_server_characteristic_notification_state_changed_cb
- __bt_gatt_attribute_get_notification_change_cb(
- bt_gatt_server_h *server, int handle, bt_gatt_h *char_handle, void **user_data)
-{
- const GSList *gatt_server_list = NULL;
- const GSList *l1, *l2, *l3;
-
- gatt_server_list = _bt_gatt_get_server_list();
- for (l1 = gatt_server_list; l1 != NULL; l1 = l1->next) {
- bt_gatt_server_s *serv = l1->data;
-
- if (!serv)
- return NULL;
-
- for (l2 = serv->services; l2 != NULL; l2 = l2->next) {
- bt_gatt_service_s *svc = l2->data;
-
- for (l3 = svc->characteristics; l3 != NULL; l3 = l3->next) {
- bt_gatt_characteristic_s *chr = l3->data;
-
- if (chr && chr->handle == handle) {
- if (chr->notified_cb) {
- *user_data = chr->notified_user_data;
- *char_handle = (bt_gatt_h*) chr;
- *server = serv;
- return chr->notification_changed_cb;
- } else
- return NULL;
- }
- }
- }
- }
- return NULL;
-}
-
-
-#endif
-
-#ifdef GATT_DIRECT
static bt_gatt_server_notification_sent_cb __bt_gatt_attribute_get_notification_completed_cb(
bt_gatt_h service, bt_gatt_h attribute, void **user_data)
{
}
return NULL;
}
-#else
-static bt_gatt_server_notification_sent_cb __bt_gatt_attribute_get_notification_completed_cb(
- bt_gatt_server_h *server, int handle, bt_gatt_h *char_handle, void **user_data)
-{
- const GSList *gatt_server_list = NULL;
- const GSList *l1, *l2, *l3;
-
- gatt_server_list = _bt_gatt_get_server_list();
-
- for (l1 = gatt_server_list; l1 != NULL; l1 = l1->next) {
- bt_gatt_server_s *serv = l1->data;
-
- if (!serv)
- return NULL;
-
- for (l2 = serv->services; l2 != NULL; l2 = l2->next) {
- bt_gatt_service_s *svc = l2->data;
-
- for (l3 = svc->characteristics; l3 != NULL; l3 = l3->next) {
- bt_gatt_characteristic_s *chr = l3->data;
-
- if (chr && chr->handle == handle) {
- if (chr->notified_cb) {
- *user_data = chr->notified_user_data;
- *char_handle = (bt_gatt_h*) chr;
- *server = serv;
- return chr->notified_cb;
- } else
- return NULL;
- }
- }
- }
- }
- return NULL;
-}
-#endif
static void __bt_free_bt_device_connection_info_s(bt_device_connection_info_s *conn_info)
{
__bt_event_proxy(event, &new_param, user_data);
}
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
void _bt_hf_event_proxy(int event, bt_hf_event_param_t *param, void *user_data)
{
bluetooth_event_param_t new_param;
new_param.user_data = NULL;
__bt_event_proxy(event, &new_param, user_data);
}
-#endif
void _bt_telephony_event_proxy(int event, telephony_event_param_t *param, void *user_data)
{
new_param.user_data = param->user_data;
__bt_event_proxy(event, &new_param, user_data);
}
-
-#ifndef GATT_DIRECT
-void _bt_gatt_server_event_proxy(int event, gatt_server_event_param_t *param, void *user_data)
-{
- bluetooth_event_param_t new_param;
- new_param.event = param->event;
- new_param.param_data = param->param_data;
- new_param.result = param->result;
- new_param.user_data = NULL;
- __bt_event_proxy(event, &new_param, user_data);
-}
-#endif
-
/* LCOV_EXCL_STOP */
static bool __bt_need_to_handle(int event)
case BLUETOOTH_EVENT_ADVERTISING_STARTED:
case BLUETOOTH_EVENT_ADVERTISING_STOPPED:
case BLUETOOTH_EVENT_GATT_CONNECTED:
+ case BLUETOOTH_EVENT_GATT_DISCONNECTED:
case BLUETOOTH_EVENT_GATT_SERVER_VALUE_CHANGED:
case BLUETOOTH_EVENT_GATT_SERVER_NOTIFICATION_STATE_CHANGED:
case BLUETOOTH_EVENT_GATT_SERVER_READ_REQUESTED:
case BLUETOOTH_EVENT_GATT_SERVER_NOTIFICATION_COMPLETED:
case BLUETOOTH_EVENT_GATT_CLIENT_SERVICE_CHANGED:
+ case BLUETOOTH_EVENT_GATT_ATT_MTU_CHANGED:
+ case BLUETOOTH_EVENT_TDS_TRANSPORT_DATA_RECEIVED:
+ case BLUETOOTH_EVENT_TDS_ACTIVATION_RESULT:
+ case BLUETOOTH_EVENT_TDS_CONTROL_POINT_ENABLED:
+ case BLUETOOTH_EVENT_TDS_ACTIVATION_INDICATION:
+ case BLUETOOTH_EVENT_OTP_READ_CHAR_VAL:
+ case BLUETOOTH_EVENT_OTP_NOTIFICATION_ENABLED:
+ case BLUETOOTH_EVENT_OTP_WRITE_CHAR_VAL:
+ case BLUETOOTH_EVENT_OTP_INDICATION:
+ case BLUETOOTH_EVENT_OTC_STATE_CHANGED:
+ case BLUETOOTH_EVENT_GATT_READ_CHAR:
+ case BLUETOOTH_EVENT_GATT_WRITE_CHAR:
+ case BLUETOOTH_EVENT_GATT_READ_DESC:
+ case BLUETOOTH_EVENT_GATT_WRITE_DESC:
return true;
default:
break;
bluetooth_device_address_t *bd_addr = NULL;
telephony_event_callid_t *call_data = NULL;
char *device_addr = NULL;
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
char *phone_number = NULL;
-#endif
int error_code = BT_ERROR_NONE;
int event_index = -1;
bluetooth_network_device_info_t *dev_info = NULL;
bt_le_data_length_params_t *data_length_info = NULL;
bt_ipsp_connection_info_t *bt_ipsp_iface_info = NULL;
bt_pxp_property_changed_params_t *bt_pxp_property_info = NULL;
+ bluetooth_tds_activation_req_t *tds_act_req_info = NULL;
if (!__bt_need_to_handle(event))
return;
auth_information = (bluetooth_authentication_request_info_t *)(param->param_data);
_bt_convert_address_to_string(&device_addr, &auth_information->device_address);
- BT_DBG("BUETOOTH_EVENT_PIN_REQUEST: name = %s address = %s", auth_information->device_name.name,
+ BT_DBG("BUETOOTH_EVENT_PIN_REQUEST: name = %s address = %s", auth_information->device_name,
device_addr);
((bt_adapter_authentication_req_cb)bt_event_slot_container[event_index].callback)
auth_information = (bluetooth_authentication_request_info_t *)(param->param_data);
_bt_convert_address_to_string(&device_addr, &auth_information->device_address);
- BT_DBG("BLUETOOTH_EVENT_PASSKEY_REQUEST: name = %s address = %s", auth_information->device_name.name,
+ BT_DBG("BLUETOOTH_EVENT_PASSKEY_REQUEST: name = %s address = %s", auth_information->device_name,
device_addr);
((bt_adapter_authentication_req_cb)bt_event_slot_container[event_index].callback)
else
error_code = _bt_get_error_code(param->result);
+ memset(&rfcomm_connection, 0x00, sizeof(bt_socket_connection_s));
connection_ind = (bluetooth_rfcomm_connection_t *)(param->param_data);
if (connection_ind) {
case BLUETOOTH_EVENT_RFCOMM_DISCONNECTED:
BT_INFO("bt_socket_connection_state_changed_cb() will be called with BT_SOCKET_DISCONNECTED");
+ memset(&rfcomm_connection, 0x00, sizeof(bt_socket_connection_s));
disconnection_ind = (bluetooth_rfcomm_disconnection_t *)(param->param_data);
if (disconnection_ind) {
/* This event don't be used in CAPI */
break;
+ case BLUETOOTH_EVENT_MAP_CONNECTED:
+ BT_INFO("bt_map_client_??????????_cb() will be called");
+ bd_addr = (bluetooth_device_address_t *)(param->param_data);
+ _bt_convert_address_to_string(&device_addr, bd_addr);
+
+ /* TODO: MAP, see above */
+
+ if (device_addr != NULL)
+ free(device_addr);
+ break;
+
+ case BLUETOOTH_EVENT_MAP_DISCONNECTED:
+ BT_INFO("bt_map_client_??????????_cb() will be called");
+ bd_addr = (bluetooth_device_address_t *)(param->param_data);
+ _bt_convert_address_to_string(&device_addr, bd_addr);
+
+ /* TODO: MAP, see above */
+
+ if (device_addr != NULL)
+ free(device_addr);
+ break;
+ case BLUETOOTH_EVENT_MAP_LIST_FOLDERS_COMPLETE:
+ BT_INFO("BLUETOOTH_EVENT_MAP_LIST_FOLDERS_COMPLETE event");
+ //do not need to release memory, it is managed by bluetooth-frwk
+ bt_map_client_folders_s* folders_struct = (bt_map_client_folders_s*) param->param_data;
+ ((bt_map_client_list_folders_cb)bt_event_slot_container[event_index].callback)
+ (param->result, folders_struct->names, folders_struct->size,
+ bt_event_slot_container[event_index].user_data);
+
+ if (device_addr != NULL)
+ free(device_addr);
+ break;
+
+ case BLUETOOTH_EVENT_MAP_LIST_FILTER_FIELD_COMPLETE:
+ {
+ BT_INFO(" BLUETOOTH_EVENT_MAP_LIST_FILTER_FIELD_COMPLETE event");
+ bt_map_list_filter_fields_info_t* fields_info = (bt_map_list_filter_fields_info_t*)(param->param_data);
+
+ ((bt_map_client_list_filter_fields_cb)bt_event_slot_container[event_index].callback)
+ (param->result, fields_info->fields, fields_info->size,
+ bt_event_slot_container[event_index].user_data);
+
+ if (device_addr != NULL)
+ free(device_addr);
+ }
+ break;
+
+ case BLUETOOTH_EVENT_MAP_LIST_MESSAGES_COMPLETE:
+ BT_INFO("BLUETOOTH_EVENT_MAP_LIST_MESSAGES_COMPLETE event");
+ bt_map_client_message_items_s* messages_struct = (bt_map_client_message_items_s*) param->param_data;
+ ((bt_map_client_list_messages_cb)bt_event_slot_container[event_index].callback)(
+ param->result,
+ (bt_map_client_message_item_s*)(messages_struct->message_items),
+ messages_struct->size,
+ bt_event_slot_container[event_index].user_data);
+ if (device_addr != NULL)
+ free(device_addr);
+ break;
+
+ case BLUETOOTH_EVENT_MAP_GET_MESSAGE_COMPLETE:
+ BT_INFO("BLUETOOTH_EVENT_MAP_GET_MESSAGE_COMPLETE event");
+
+ bt_get_message_callback_data *data = bt_event_slot_container[event_index].user_data;
+ char *target_file = (char*) data->target_file;
+ void *user_data = data->user_data;
+ g_free(data);
+
+ bt_map_client_message_s *res = g_malloc0(sizeof(bt_map_client_message_s));
+ res->file_path = target_file;
+
+ ((bt_map_client_get_message_cb)bt_event_slot_container[event_index].callback)(
+ param->result, res, user_data);
+ g_free(res);
+ break;
+
+ case BLUETOOTH_EVENT_MAP_PUSH_MESSAGE_COMPLETE:
+ BT_INFO("BLUETOOTH_EVENT_MAP_PUSH_MESSAGE_COMPLETE event");
+
+ ((bt_map_client_push_message_cb)bt_event_slot_container[event_index].callback)(
+ param->result,
+ bt_event_slot_container[event_index].user_data);
+ break;
+
case BLUETOOTH_EVENT_NETWORK_SERVER_CONNECTED:
BT_INFO("BLUETOOTH_EVENT_NETWORK_SERVER_CONNECTED");
dev_info = (bluetooth_network_device_info_t *)(param->param_data);
case BLUETOOTH_EVENT_GATT_CONNECTED: {
bt_gatt_client_s *client_s;
bt_gatt_connection_state_changed_cb cb = NULL;
+ bool is_pxp_initialized = FALSE;
BT_INFO("BLUETOOTH_EVENT_GATT_CONNECTED");
_bt_convert_address_to_string(&device_addr,
(bluetooth_device_address_t *)(param->param_data));
client_s = (bt_gatt_client_s *)_bt_gatt_get_client(device_addr);
- if (client_s && !client_s->services_discovered) {
- if (_bt_gatt_client_update_services(client_s) != BT_ERROR_NONE)
- BT_ERR("_bt_gatt_client_update_services failed");
- else
- client_s->services_discovered = true;
- }
- if (client_s)
+ if (client_s) {
client_s->connected = true;
+ _bt_gatt_client_update_services(client_s);
+ }
if (event_index >= 0)
cb = bt_event_slot_container[event_index].callback;
if (cb)
cb(_bt_get_error_code(param->result), TRUE, device_addr,
bt_event_slot_container[event_index].user_data);
+
+ /* The below check is for calling the callback for proximity profile reporter/Monitor role */
+ _bt_check_proximity_is_initialized(&is_pxp_initialized);
+ if (is_pxp_initialized)
+ _bt_proximity_connection_set_state_changed(param->result, device_addr, TRUE);
+
+ /* TDS Seeker */
+ _bt_tds_update_seeker_connection_state_changed(param->result, device_addr, TRUE);
+
+ /* OTP Client */
+ _bt_otp_client_connection_state_changed(param->result, device_addr, TRUE);
+
g_free(device_addr);
device_addr = NULL;
break;
case BLUETOOTH_EVENT_GATT_DISCONNECTED: {
bt_gatt_client_s *client_s;
bt_gatt_connection_state_changed_cb cb = NULL;
+ bool is_pxp_initialized = FALSE;
BT_INFO("BLUETOOTH_EVENT_GATT_DISCONNECTED");
_bt_convert_address_to_string(&device_addr,
(bluetooth_device_address_t *)(param->param_data));
if (cb)
cb(_bt_get_error_code(param->result), FALSE, device_addr,
bt_event_slot_container[event_index].user_data);
+ /* The below check is for calling the callback for proximity profile reporter/Monitor role */
+ _bt_check_proximity_is_initialized(&is_pxp_initialized);
+ if (is_pxp_initialized)
+ _bt_proximity_connection_set_state_changed(param->result, device_addr, FALSE);
+
+ /* TDS Seeker */
+ _bt_tds_update_seeker_connection_state_changed(param->result, device_addr, FALSE);
+
+ /* OTP Client */
+ _bt_otp_client_connection_state_changed(param->result, device_addr, FALSE);
+
g_free(device_addr);
device_addr = NULL;
break;
}
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
- case BLUETOOTH_EVENT_GATT_SVC_CHAR_DISCOVERED: {
+ case BLUETOOTH_EVENT_GATT_SVC_CHAR_DISCOVERED:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
BT_INFO("BLUETOOTH_EVENT_GATT_SVC_CHAR_DISCOVERED");
if (_bt_gatt_is_legacy_client_mode()) {
bt_gatt_discovered_char_t *svc_char = param->param_data;
_bt_unset_cb(BT_EVENT_GATT_CLIENT_CHARACTERISTIC_DISCOVERED_LEGACY);
}
break;
+ } else {
+ break; /* goto default */
}
-#endif
case BLUETOOTH_EVENT_GATT_CHAR_VAL_CHANGED:
- BT_INFO("BLUETOOTH_EVENT_GATT_CHAR_VAL_CHANGED");
char_val = (bt_gatt_char_value_t *)(param->param_data);
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
- if (_bt_gatt_is_legacy_client_mode()) {
- bt_gatt_char_value_t *char_val = param->param_data;
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT && _bt_gatt_is_legacy_client_mode()) {
+ if (_bt_gatt_is_legacy_client_mode()) {
+ bt_gatt_char_value_t *char_val = param->param_data;
- if (char_val == NULL)
- return;
- ((bt_gatt_characteristic_changed_cb)bt_event_slot_container[event_index].callback)
- (char_val->char_handle, char_val->char_value, char_val->val_len,
- bt_event_slot_container[event_index].user_data);
- break;
+ if (char_val == NULL)
+ return;
+ ((bt_gatt_characteristic_changed_cb)bt_event_slot_container[event_index].callback)
+ (char_val->char_handle, char_val->char_value, char_val->val_len,
+ bt_event_slot_container[event_index].user_data);
+ break;
+ }
}
-#endif
if (char_val == NULL)
return;
bt_event_slot_container[event_index].user_data);
break;
- case BLUETOOTH_EVENT_GATT_READ_CHAR: {
- int ret;
- bt_gatt_client_request_completed_cb cb = bt_event_slot_container[event_index].callback;
- bt_gatt_client_cb_data_s *cb_data = bt_event_slot_container[event_index].user_data;
-
+ case BLUETOOTH_EVENT_GATT_READ_CHAR:
BT_INFO("BLUETOOTH_EVENT_GATT_READ_CHAR");
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
- if (_bt_gatt_is_legacy_client_mode()) {
- bt_gatt_char_value_t *char_val = param->param_data;
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT && _bt_gatt_is_legacy_client_mode()) {
+ if (_bt_gatt_is_legacy_client_mode()) {
+ bt_gatt_char_value_t *char_val = param->param_data;
- ((bt_gatt_characteristic_read_cb)bt_event_slot_container[event_index].callback)
- (char_val->char_value, char_val->val_len,
- bt_event_slot_container[event_index].user_data);
- _bt_unset_cb(BT_EVENT_GATT_CLIENT_READ_CHARACTERISTIC_LEGACY);
- break;
- }
-#endif
- _bt_unset_cb(BT_EVENT_GATT_CLIENT_READ_CHARACTERISTIC);
- ret = _bt_get_error_code(param->result);
- if (ret == BT_ERROR_NONE) {
- char_val = (bt_gatt_char_value_t *)(param->param_data);
- bt_gatt_set_value(cb_data->gatt_handle,
- (char *)char_val->char_value, (int)char_val->val_len);
+ ((bt_gatt_characteristic_read_cb)bt_event_slot_container[event_index].callback)
+ (char_val->char_value, char_val->val_len,
+ bt_event_slot_container[event_index].user_data);
+ _bt_unset_cb(BT_EVENT_GATT_CLIENT_READ_CHARACTERISTIC_LEGACY);
+ break;
+ }
}
- cb(ret, cb_data->gatt_handle, cb_data->user_data);
- g_free(cb_data);
-
+ _handle_gatt_client_read_completed_event(param->result,
+ param->param_data);
break;
- }
- case BLUETOOTH_EVENT_GATT_WRITE_CHAR: {
- int ret;
- bt_gatt_client_request_completed_cb cb = bt_event_slot_container[event_index].callback;
- bt_gatt_client_cb_data_s *cb_data = bt_event_slot_container[event_index].user_data;
-
- BT_INFO("BLUETOOTH_EVENT_GATT_WRITE_CHAR");
-
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
- if (_bt_gatt_is_legacy_client_mode()) {
- ((bt_gatt_characteristic_write_cb)bt_event_slot_container[event_index].callback)
- (bt_event_slot_container[event_index].user_data);
+ case BLUETOOTH_EVENT_GATT_WRITE_CHAR:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT && _bt_gatt_is_legacy_client_mode()) {
+ if (_bt_gatt_is_legacy_client_mode()) {
+ ((bt_gatt_characteristic_write_cb)bt_event_slot_container[event_index].callback)
+ (bt_event_slot_container[event_index].user_data);
- _bt_unset_cb(BT_EVENT_GATT_CLIENT_WRITE_CHARACTERISTIC_LEGACY);
- break;
+ _bt_unset_cb(BT_EVENT_GATT_CLIENT_WRITE_CHARACTERISTIC_LEGACY);
+ break;
+ }
}
-#endif
- _bt_unset_cb(BT_EVENT_GATT_CLIENT_WRITE_CHARACTERISTIC);
-
- /* Send actual ATT error code to Application
- * if param->result is not BLUETOOTH_ERROR_INTERNAL.
- */
- if (param->result == BLUETOOTH_ERROR_INTERNAL)
- ret = _bt_get_error_code(param->result);
- else
- ret = param->result;
-
- if (ret != BT_ERROR_NONE)
- BT_ERR("BLUETOOTH_EVENT_GATT_WRITE_CHAR - ret [%d]", ret);
-
- cb(ret, cb_data->gatt_handle, cb_data->user_data);
- g_free(cb_data);
+ _handle_gatt_client_write_completed_event(param->result,
+ param->param_data);
break;
- }
- case BLUETOOTH_EVENT_GATT_READ_DESC: {
- int ret;
- bt_gatt_client_request_completed_cb cb = bt_event_slot_container[event_index].callback;
- bt_gatt_client_cb_data_s *cb_data = bt_event_slot_container[event_index].user_data;
- bt_gatt_char_property_t *desc_val = NULL;
-
+ case BLUETOOTH_EVENT_GATT_READ_DESC:
BT_INFO("BLUETOOTH_EVENT_GATT_READ_DESC");
-
- _bt_unset_cb(BT_EVENT_GATT_CLIENT_READ_DESCRIPTOR);
- ret = _bt_get_error_code(param->result);
- if (ret == BT_ERROR_NONE) {
- desc_val = (bt_gatt_char_property_t *)(param->param_data);
- bt_gatt_set_value(cb_data->gatt_handle,
- desc_val->description, (int)desc_val->val_len);
- }
- cb(ret, cb_data->gatt_handle, cb_data->user_data);
- g_free(cb_data);
-
+ _handle_gatt_client_read_completed_event(param->result,
+ param->param_data);
break;
- }
- case BLUETOOTH_EVENT_GATT_WRITE_DESC: {
- int ret;
- bt_gatt_client_request_completed_cb cb = bt_event_slot_container[event_index].callback;
- bt_gatt_client_cb_data_s *cb_data = bt_event_slot_container[event_index].user_data;
-
+ case BLUETOOTH_EVENT_GATT_WRITE_DESC:
BT_INFO("BLUETOOTH_EVENT_GATT_WRITE_DESC");
-
- _bt_unset_cb(BT_EVENT_GATT_CLIENT_WRITE_DESCRIPTOR);
- ret = _bt_get_error_code(param->result);
- cb(ret, cb_data->gatt_handle, cb_data->user_data);
- g_free(cb_data);
-
+ _handle_gatt_client_write_completed_event(param->result,
+ param->param_data);
break;
- }
case BLUETOOTH_EVENT_GATT_SERVER_READ_REQUESTED: {
-#ifdef GATT_DIRECT
bt_gatt_read_req_t *read_req = param->param_data;
bt_gatt_server_read_value_requested_cb cb;
void *user_data = NULL;
if (cb == NULL) {
bluetooth_gatt_send_response(read_req->req_id,
BLUETOOTH_GATT_ATT_REQUEST_TYPE_READ,
- BLUETOOTH_ERROR_INTERNAL, 0, NULL, 0);
+ BLUETOOTH_ATT_ERROR_INTERNAL, 0, NULL, 0);
return;
}
cb(read_req->address, read_req->req_id, read_req->service_handle,
gatt_handle, read_req->offset,
user_data);
-#else
- BT_INFO("BLUETOOTH_EVENT_GATT_SERVER_READ_REQUESTED");
- bluetooth_gatt_server_read_requested_info_t *read_req = (bluetooth_gatt_server_read_requested_info_t *)(param->param_data);
-
- bt_gatt_server_read_value_requested_cb cb_read;
- void *user_data_read = NULL;
- bt_gatt_h gatt_handle = NULL;
- bt_gatt_server_h serv = NULL;
- cb_read = __bt_gatt_attribute_get_read_cb(read_req->attribute_handle,
- &serv, &gatt_handle, &user_data_read);
-
- /* Copy data */
- _bt_convert_address_to_string(&device_addr, &read_req->device_address);
-
- BT_INFO("GATT Server Read Req: Addr [%s]", device_addr);
- BT_INFO("GATT Server Read Req: Att handle[%d]", read_req->attribute_handle);
- BT_INFO("GATT Server Read Req: Conn ID [%d]", read_req->connection_id);
- BT_INFO("GATT Server Read Req: Trans ID [%d]", read_req->request_id);
- BT_INFO("GATT Server Read Req: Offset [%d]", read_req->offset);
- BT_INFO("GATT Server Read Req: Is Long [%d]", read_req->is_long);
-
- if (cb_read == NULL) {
- BT_INFO("GATT Server: App has not set the Read requested callback..for the current handle");
- bt_gatt_server_send_response(read_req->request_id, BT_GATT_REQUEST_TYPE_READ, 0, BLUETOOTH_ERROR_INTERNAL, NULL, 0);
- BT_INFO("GATT Server: Internal response sent for Read Request");
- return;
- }
-
- cb_read(device_addr, read_req->request_id, serv, gatt_handle, read_req->offset, user_data_read);
-
- if (device_addr != NULL)
- free(device_addr);
-#endif
break;
}
case BLUETOOTH_EVENT_GATT_SERVER_VALUE_CHANGED: {
-#ifdef GATT_DIRECT
bt_gatt_value_change_t *value_change = param->param_data;
bt_gatt_server_write_value_requested_cb cb;
void *user_data = NULL;
if (cb == NULL) {
if (value_change->response_needed == FALSE)
return;
+
bluetooth_gatt_send_response(value_change->req_id,
BLUETOOTH_GATT_ATT_REQUEST_TYPE_WRITE,
- BLUETOOTH_ERROR_INTERNAL, 0, NULL, 0);
+ BLUETOOTH_ATT_ERROR_INTERNAL, 0, NULL, 0);
return;
}
cb(value_change->address, value_change->req_id, value_change->service_handle,
- gatt_handle, value_change->offset, value_change->response_needed,
+ gatt_handle, (bool)value_change->response_needed, value_change->offset,
(char *)value_change->att_value, value_change->val_len, user_data);
-#else
- BT_INFO("BLUETOOTH_EVENT_GATT_SERVER_WRITE_REQUESTED");
- bluetooth_gatt_server_write_requested_info_t *write_req = (bluetooth_gatt_server_write_requested_info_t *)(param->param_data);
- char *val = g_malloc0(write_req->length);
- memcpy(val, write_req->data.data, write_req->length);
-
- bt_gatt_server_write_value_requested_cb cb_wr;
- void *user_data_write = NULL;
- bt_gatt_h gatt_handle = NULL;
- bt_gatt_h server = NULL;
- cb_wr = __bt_gatt_attribute_get_value_change_cb(write_req->attribute_handle,
- &server, &gatt_handle, &user_data_write);
- /* Copy data */
- _bt_convert_address_to_string(&device_addr, &write_req->device_address);
-
- BT_INFO("GATT Server Write Req: Address [%s]", device_addr);
- BT_INFO("GATT Server Write Req: Att handle [%d]", write_req->attribute_handle);
- BT_INFO("GATT Server Write Req: Conn ID [%d]", write_req->connection_id);
- BT_INFO("GATT Server Write Req: Trans ID [%d]", write_req->request_id);
- BT_INFO("GATT Server Write Req: Offset [%d]", write_req->offset);
- BT_INFO("GATT Server Write Req: Length [%d]", write_req->length);
- BT_INFO("GATT Server Write Req: Need Resp [%d]", write_req->need_resp);
-
- if (cb_wr == NULL) {
- BT_INFO("GATT Server: App has not set the Write requested callback..for the current handle");
- if (write_req->need_resp) {
- BT_INFO("GATT Server: Send Response to Remote GATT client");
- bt_gatt_server_send_response(write_req->request_id, BT_GATT_REQUEST_TYPE_WRITE, 0, BLUETOOTH_ERROR_INTERNAL, NULL, 0);
- BT_INFO("GATT Server: Internal response sent for Write Request");
- }
- return;
- }
-
- cb_wr(device_addr, write_req->request_id, server, gatt_handle,
- write_req->need_resp, write_req->offset,
- val, write_req->length, user_data_write);
-
- /* Free Data */
- if (val != NULL) {
- g_free(val);
- }
-
- if (device_addr != NULL)
- free(device_addr);
-#endif
break;
}
case BLUETOOTH_EVENT_GATT_SERVER_NOTIFICATION_STATE_CHANGED: {
-#ifdef GATT_DIRECT
bt_gatt_char_notify_change_t *value_change = param->param_data;
bt_gatt_server_characteristic_notification_state_changed_cb cb;
void *user_data = NULL;
cb(value_change->att_notify, value_change->service_handle,
gatt_handle, user_data);
-#else
- BT_INFO("BLUETOOTH_EVENT_GATT_SERVER_NOTIFICATION_STATE_CHANGED");
- bluetooth_gatt_server_notification_changed_t *notif_info = (bluetooth_gatt_server_notification_changed_t*)(param->param_data);
- bt_gatt_server_characteristic_notification_state_changed_cb cb;
-
- bt_gatt_server_h server_handle = NULL;
- bt_gatt_h char_handle = NULL;
-
- void *user_data_cfm = NULL;
-
- cb = __bt_gatt_attribute_get_notification_change_cb(&server_handle,
- notif_info->handle, &char_handle, &user_data_cfm);
-
- if (cb == NULL)
- return;
-
- cb(notif_info->notification, server_handle, char_handle, user_data_cfm);
-#endif
break;
}
case BLUETOOTH_EVENT_GATT_SERVER_NOTIFICATION_COMPLETED: {
-#ifdef GATT_DIRECT
bt_gatt_indicate_confirm_t *confrim_status = param->param_data;
bt_gatt_server_notification_sent_cb cb;
void *user_data = NULL;
cb(_bt_get_error_code(param->result), confrim_status->address,
confrim_status->service_handle,
confrim_status->att_handle, confrim_status->complete, user_data);
-#else
- BT_INFO("BLUETOOTH_EVENT_GATT_SERVER_NOTIFICATION_COMPLETED");
- bluetooth_gatt_server_indicate_confirmed_info_t *cfm_info = (bluetooth_gatt_server_indicate_confirmed_info_t*)(param->param_data);
- bt_gatt_server_notification_sent_cb cb;
-
- bt_gatt_server_h server_handle = NULL;
- bt_gatt_h char_handle = NULL;
-
- void *user_data_cfm = NULL;
- cb = __bt_gatt_attribute_get_notification_completed_cb(&server_handle,
- cfm_info->handle, &char_handle, &user_data_cfm);
-
- if (cb == NULL)
- return;
-
- /* Copy data */
- _bt_convert_address_to_string(&device_addr, &cfm_info->device_address);
-
- cb(_bt_get_error_code(param->result), device_addr,
- server_handle, char_handle, cfm_info->completed, user_data_cfm);
- /* Free Data */
- if (device_addr != NULL)
- free(device_addr);
-
-#endif
break;
}
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
- case BLUETOOTH_EVENT_GATT_SVC_CHAR_DESC_DISCOVERED: {
+ case BLUETOOTH_EVENT_GATT_SVC_CHAR_DESC_DISCOVERED:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
BT_INFO("BLUETOOTH_EVENT_GATT_SVC_CHAR_DESC_DISCOVERED");
if (_bt_gatt_is_legacy_client_mode()) {
bt_gatt_char_property_t *char_desc = param->param_data;
_bt_unset_cb(BT_EVENT_GATT_CLIENT_CHARACTERISTIC_DESCRIPTOR_DISCOVERED_LEGACY);
}
break;
+ } else {
+ break; /* goto default */
}
-#endif
case BLUETOOTH_EVENT_GATT_SERVER_CHARACTERISTIC_VALUE_CHANGED: {
const GSList *server_list = NULL;
BT_INFO("BLUETOOTH_EVENT_GATT_SERVER_CHARACTERISTIC_VALUE_CHANGED");
for (char_list = svc->characteristics; char_list; char_list = g_slist_next(char_list)) {
bt_gatt_characteristic_s *chr = (bt_gatt_characteristic_s *)char_list->data;
- if (chr->path && strcmp(char_val->char_handle, chr->path) == 0) {
+
+ if (chr && g_strcmp0(char_val->char_handle, chr->path) == 0) {
g_free(chr->value);
chr->value = NULL;
if (char_val->val_len > 0)
/* TODO : Fix build error temporary */
if (chr->write_value_requested_cb)
chr->write_value_requested_cb(NULL, 0, (bt_gatt_server_h)serv, (bt_gatt_h)chr,
- 0, TRUE, (char*)char_val->char_value, char_val->val_len,
+ TRUE, 0, (char *)char_val->char_value, char_val->val_len,
chr->write_value_requested_user_data);
}
}
}
break;
}
-/* LCOV_EXCL_STOP */
case BLUETOOTH_EVENT_GATT_CLIENT_SERVICE_CHANGED: {
bt_gatt_service_change_t *service_change =
(bt_gatt_service_change_t *)(param->param_data);
_bt_convert_address_to_string(&device_addr,
&service_change->device_addr);
+ /* Check if TDS Service removed */
+ _bt_tds_check_service_changed(device_addr, service_change);
+
+ /* Check if OTS Service removed */
+ _bt_otp_check_service_changed(device_addr, service_change);
+
client = _bt_gatt_get_client(device_addr);
g_free(device_addr);
device_addr = NULL;
}
break;
}
+/* LCOV_EXCL_STOP */
case BLUETOOTH_EVENT_ADVERTISING_STARTED:
BT_INFO("BLUETOOTH_EVENT_ADVERTISING_STARTED");
adv_handle = (int *)(param->param_data);
break;
case BLUETOOTH_EVENT_ADVERTISING_STOPPED:
- BT_INFO("BLUETOOTH_EVENT_ADVERTISING_STOPPED");
+ BT_INFO("BLUETOOTH_EVENT_ADVERTISING_STOPPED"); /* LCOV_EXCL_START */
adv_handle = (int *)(param->param_data);
if (bt_event_slot_container[event_index].callback != NULL) {
}
_bt_adapter_le_invoke_advertising_state_cb(*adv_handle,
- _bt_get_error_code(param->result), BT_ADAPTER_LE_ADVERTISING_STOPPED);
+ _bt_get_error_code(param->result), BT_ADAPTER_LE_ADVERTISING_STOPPED); /* LCOV_EXCL_STOP */
break;
case BLUETOOTH_EVENT_MANUFACTURER_DATA_CHANGED: /* LCOV_EXCL_START */
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_GATT_ATT_MTU_CHANGED: {
- bt_device_att_mtu_info_s *mtu_info = NULL;
+ bt_gatt_client_att_mtu_info_s *mtu_info = NULL;
+ bt_gatt_client_s *client = NULL;
BT_INFO("BLUETOOTH_EVENT_GATT_ATT_MTU_CHANGED");
- __bt_get_bt_device_att_mtu_info_s(&mtu_info, (bluetooth_le_att_mtu_info_t *)(param->param_data));
- ((bt_device_att_mtu_changed_cb)bt_event_slot_container[event_index].callback)
- (_bt_get_error_code(param->result), mtu_info, bt_event_slot_container[event_index].user_data);
+ __bt_get_bt_gatt_client_att_mtu_info_s(&mtu_info, (bluetooth_le_att_mtu_info_t *)(param->param_data));
+
+ client = _bt_gatt_get_client(mtu_info->remote_address);
+
+ if (client && client->connected && client->att_mtu_changed_cb)
+ client->att_mtu_changed_cb(client,
+ (const bt_gatt_client_att_mtu_info_s *)mtu_info,
+ client->att_mtu_changed_user_data);
+
+ if (bt_event_slot_container[event_index].callback)
+ ((bt_device_att_mtu_changed_cb)bt_event_slot_container[event_index].callback)
+ (_bt_get_error_code(param->result), (bt_device_att_mtu_info_s *)mtu_info,
+ bt_event_slot_container[event_index].user_data);
+
+ g_free(mtu_info);
+
break;
}
case BLUETOOTH_EVENT_LE_DATA_LENGTH_CHANGED:
bt_event_slot_container[event_index].user_data);
if (device_addr != NULL)
- free(device_addr); /* LCOV_EXCL_STOP */
+ free(device_addr);
break;
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
- case BLUETOOTH_PBAP_CONNECTED: {
+ case BLUETOOTH_PBAP_CONNECTED:
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
bt_pbap_connection_state_changed_cb cb = bt_event_slot_container[event_index].callback;
void *user_data = bt_event_slot_container[event_index].user_data;
bt_pbap_connected_t *connected = (bt_pbap_connected_t *)param->param_data;
free(device_addr);
break;
+ } else {
+ break; /* goto default; */
}
- case BLUETOOTH_PBAP_DISCONNECTED: {
+ case BLUETOOTH_PBAP_DISCONNECTED:
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
bt_pbap_connection_state_changed_cb cb = bt_event_slot_container[event_index].callback;
void *user_data = bt_event_slot_container[event_index].user_data;
bt_pbap_connected_t *connected = (bt_pbap_connected_t *)param->param_data;
free(device_addr);
break;
+ } else {
+ break; /* goto default; */
}
- case BLUETOOTH_PBAP_PHONEBOOK_SIZE: {
+ case BLUETOOTH_PBAP_PHONEBOOK_SIZE:
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
bt_pbap_phone_book_size_cb cb = bt_event_slot_container[event_index].callback;
void *user_data = bt_event_slot_container[event_index].user_data;
bt_pbap_phonebook_size_t *pb_size = (bt_pbap_phonebook_size_t *)param->param_data;
free(device_addr);
break;
+ } else {
+ break; /* goto default; */
}
- case BLUETOOTH_PBAP_PHONEBOOK_PULL: {
+ case BLUETOOTH_PBAP_PHONEBOOK_PULL:
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
bt_pbap_phone_book_received_cb cb = bt_event_slot_container[event_index].callback;
void *user_data = bt_event_slot_container[event_index].user_data;
bt_pbap_phonebook_pull_t *pb_pull = (bt_pbap_phonebook_pull_t *)(param->param_data);
free(device_addr);
break;
+ } else {
+ break; /* goto default; */
}
- case BLUETOOTH_PBAP_VCARD_LIST: {
+ case BLUETOOTH_PBAP_VCARD_LIST:
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
int i;
bt_pbap_list_vcards_cb cb = bt_event_slot_container[event_index].callback;
void *user_data = bt_event_slot_container[event_index].user_data;
g_free((char *)vcard_info[i].contact_name);
free(vcard_info);
}
-
break;
+ } else {
+ break; /* goto default; */
}
- case BLUETOOTH_PBAP_VCARD_PULL: {
+ case BLUETOOTH_PBAP_VCARD_PULL:
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
bt_pbap_phone_book_received_cb cb = bt_event_slot_container[event_index].callback;
void *user_data = bt_event_slot_container[event_index].user_data;
bt_pbap_vcard_pull_t *vc_pull = (bt_pbap_vcard_pull_t *)(param->param_data);
free(device_addr);
break;
+ } else {
+ break; /* goto default; */
}
- case BLUETOOTH_PBAP_PHONEBOOK_SEARCH: {
+ case BLUETOOTH_PBAP_PHONEBOOK_SEARCH:
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
bt_pbap_list_vcards_cb cb = bt_event_slot_container[event_index].callback;
void *user_data = bt_event_slot_container[event_index].user_data;
bt_pbap_phonebook_search_list_t *vc_list = (bt_pbap_phonebook_search_list_t *)(param->param_data);
if (device_addr != NULL)
free(device_addr);
- if (vcard_info != NULL)
- free(vcard_info);
+ g_free(vcard_info);
break;
+ } else {
+ break; /* goto default; */
}
case BLUETOOTH_EVENT_HF_CONNECTED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CONNECTED");
device_addr = (char *)(param->param_data);
((bt_audio_connection_state_changed_cb)bt_event_slot_container[event_index].callback)
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_DISCONNECTED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_DISCONNECTED");
device_addr = (char *)(param->param_data);
((bt_audio_connection_state_changed_cb)bt_event_slot_container[event_index].callback)
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_AUDIO_CONNECTED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_AUDIO_CONNECTED");
device_addr = (char *)(param->param_data);
((bt_hf_sco_state_changed_cb)bt_event_slot_container[event_index].callback)
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_AUDIO_DISCONNECTED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_AUDIO_DISCONNECTED");
device_addr = (char *)(param->param_data);
((bt_hf_sco_state_changed_cb)bt_event_slot_container[event_index].callback)
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_RING_INDICATOR:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_RING_INDICATOR");
phone_number = (char *)(param->param_data);
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_CALL_TERMINATED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CALL_TERMINATED");
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_CALL_EVENT_CALL_TERMINATED, NULL,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_CALL_FAILED_TO_DIAL:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CALL_FAILED_TO_DIAL");
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_CALL_EVENT_FAILED_TO_DIALING, NULL,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_CALL_IDLE:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CALL_IDLE");
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_CALL_EVENT_IDLE, NULL,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_CALLSETUP_INCOMING:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CALLSETUP_INCOMING");
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_CALL_EVENT_INCOMING, NULL,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_CALLSETUP_DIALING:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CALLSETUP_DIALING");
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_CALL_EVENT_DIALING, NULL,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_CALLSETUP_ALERTING:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CALLSETUP_ALERTING");
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_CALL_EVENT_ALERTING, NULL,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_CALL_STARTED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CALL_STARTED");
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_CALL_EVENT_CALL_STARTED, NULL,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_CALL_ENDED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CALL_ENDED");
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_CALL_EVENT_CALL_ENDED, NULL,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_ENABLED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_ENABLED");
((bt_hf_remote_device_state_changed_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_DEVICE_STATE_VOICE_RECOGNITON, TRUE,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_DISABLED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_DISABLED");
((bt_hf_remote_device_state_changed_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_DEVICE_STATE_VOICE_RECOGNITON, FALSE,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_CALL_WAITING:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CALL_WAITING");
phone_number = (char *)(param->param_data);
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_CALL_ON_HOLD:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CALL_ON_HOLD");
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_CALL_EVENT_HELD, NULL,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_CALL_UNHOLD:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CALL_UNHOLD");
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_CALL_EVENT_UNHELD, NULL,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_CALL_SWAPPED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_CALL_SWAPPED");
((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
(BT_HF_REMOTE_CALL_EVENT_SWAPPED, NULL,
bt_event_slot_container[event_index].user_data);
break;
case BLUETOOTH_EVENT_HF_VENDOR_DEP_CMD:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) break;
BT_INFO("BLUETOOTH_EVENT_HF_VENDOR_DEP_CMD");
bluetooth_vendor_dep_at_cmd_t *cmd = (bluetooth_vendor_dep_at_cmd_t *)(param->param_data);
bt_hf_vendor_dep_at_cmd_s command = {0, };
((bt_hf_vendor_dep_cmd_event_cb)bt_event_slot_container[event_index].callback)
(command, bt_event_slot_container[event_index].user_data);
break;
- case BLUETOOTH_EVENT_HF_VOLUME_SPEAKER: {
+ case BLUETOOTH_EVENT_HF_VOLUME_SPEAKER:
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
BT_INFO("BLUETOOTH_EVENT_HF_VOLUME_SPEAKER");
int *spk_gain = (int *)(param->param_data);
((bt_hf_speaker_gain_changed_cb)bt_event_slot_container[event_index].callback)
(*spk_gain, bt_event_slot_container[event_index].user_data);
break;
+ } else {
+ break; /* goto default; */
}
- case BLUETOOTH_EVENT_HF_CALL_STATUS: {
+ case BLUETOOTH_EVENT_HF_CALL_STATUS:
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
BT_INFO("BLUETOOTH_EVENT_HF_CALL_STATUS");
bt_hf_call_list_s *handle = (bt_hf_call_list_s *)(param->param_data);
GList *l = NULL;
((bt_hf_call_status_updated_event_cb)bt_event_slot_container[event_index].callback)
(call_list, bt_event_slot_container[event_index].user_data);
break;
+ } else {
+ break; /* goto default; */
}
- case BLUETOOTH_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED: {
+ case BLUETOOTH_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED:
+ if (TIZEN_PROFILE_WEARABLE_IVI) {
bluetooth_hf_ciev_device_event_t *device_event = (bluetooth_hf_ciev_device_event_t *)(param->param_data);
BT_INFO("BLUETOOTH_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED (status %d)(value %d)",
((bt_hf_remote_device_state_e) device_event->event, device_event->value,
bt_event_slot_container[event_index].user_data);
break;
+ } else {
+ break; /* goto default; */
}
-#endif
case BLUETOOTH_EVENT_IPSP_INIT_STATE_CHANGED: {
BT_DBG("BLUETOOTH_EVENT_IPSP_INIT_STATE_CHANGED"); /* LCOV_EXCL_LINE */
((bt_ipsp_init_state_changed_cb)bt_event_slot_container[event_index].callback) /* LCOV_EXCL_LINE */
bt_pxp_property_info = (bt_pxp_property_changed_params_t *)(param->param_data);
_bt_convert_address_to_string(&device_addr, &bt_pxp_property_info->device_address);
- ((bt_proximity_property_changed_cb)bt_event_slot_container[event_index].callback) /* LCOV_EXCL_LINE */
+ ((bt_proximity_reporter_property_changed_cb)bt_event_slot_container[event_index].callback) /* LCOV_EXCL_LINE */
(_bt_get_error_code(param->result), device_addr,
- bt_pxp_property_info->role, bt_pxp_property_info->service_type,
+ bt_pxp_property_info->service_type,
bt_pxp_property_info->alert_lvl, bt_event_slot_container[event_index].user_data);
if (device_addr != NULL)
- free(device_addr); /* LCOV_EXCL_STOP */
+ free(device_addr);
+ break;
+ }
+ case BLUETOOTH_EVENT_TDS_ACTIVATION_REQUESTED: {
+ BT_DBG("BLUETOOTH_EVENT_TDS_ACTIVATION_REQUESTED"); /* LCOV_EXCL_LINE */
+ tds_act_req_info = (bluetooth_tds_activation_req_t *)(param->param_data);
+ _bt_convert_address_to_string(&device_addr, &tds_act_req_info->rem_addr);
+
+ ((bt_tds_activation_requested_cb)bt_event_slot_container[event_index].callback) /* LCOV_EXCL_LINE */
+ (device_addr, tds_act_req_info->transport, tds_act_req_info->tds_data.data,
+ tds_act_req_info->tds_data.length, bt_event_slot_container[event_index].user_data);
+
+ if (device_addr != NULL)
+ free(device_addr);
+ break;
+ }
+ case BLUETOOTH_EVENT_TDS_TRANSPORT_DATA_RECEIVED: {
+ BT_DBG("BLUETOOTH_EVENT_TDS_TRANSPORT_DATA_RECEIVED"); /* LCOV_EXCL_LINE */
+ bluetooth_tds_transport_data_info_t *info = NULL;
+ bluetooth_device_address_t *addr = NULL;
+
+ if (_bt_get_error_code(param->result) == BT_ERROR_NONE) {
+ info = (bluetooth_tds_transport_data_info_t *)(param->param_data);
+ _bt_convert_address_to_string(&device_addr, &info->device_address);
+ _bt_tds_send_complete_transport_data(_bt_get_error_code(param->result), device_addr,
+ info->data, info->data_length);
+ } else {
+ BT_ERR("TDS Complete data Read request failed!!!");
+ addr = (bluetooth_device_address_t *)(param->param_data);
+ _bt_convert_address_to_string(&device_addr, addr);
+ _bt_tds_send_complete_transport_data(_bt_get_error_code(param->result), device_addr,
+ NULL, 0);
+ }
+ BT_DBG("TDS Complete data blocks received: Remote provider address [%s]", device_addr);
+ if (device_addr != NULL)
+ free(device_addr);
+ break;
+ }
+ case BLUETOOTH_EVENT_TDS_ACTIVATION_RESULT: {
+ BT_DBG("BLUETOOTH_EVENT_TDS_ACTIVATION_RESULT"); /* LCOV_EXCL_LINE */
+ _bt_convert_address_to_string(&device_addr,
+ (bluetooth_device_address_t *)(param->param_data));
+
+ _bt_tds_control_point_activation_result_update(_bt_get_error_code(param->result), device_addr);
+
+ if (device_addr != NULL)
+ free(device_addr);
+ break;
+ }
+ case BLUETOOTH_EVENT_TDS_CONTROL_POINT_ENABLED: {
+ BT_DBG("BLUETOOTH_EVENT_TDS_CONTROL_POINT_ENABLED"); /* LCOV_EXCL_LINE */
+ _bt_convert_address_to_string(&device_addr,
+ (bluetooth_device_address_t *)(param->param_data));
+
+ _bt_tds_control_point_enabled_update(_bt_get_error_code(param->result), device_addr);
+
+ if (device_addr != NULL)
+ free(device_addr);
+ break;
+ } case BLUETOOTH_EVENT_TDS_ACTIVATION_INDICATION: {
+ BT_DBG("BLUETOOTH_EVENT_TDS_ACTIVATION_INDICATION"); /* LCOV_EXCL_LINE */
+ bluetooth_tds_indication_res_t *tds_act_ind_res = NULL;
+ tds_act_ind_res = (bluetooth_tds_indication_res_t *)(param->param_data);
+
+ _bt_convert_address_to_string(&device_addr, &tds_act_ind_res->rem_addr);
+
+ BT_ERR("Address [%s]", device_addr);
+ _bt_tds_control_point_indication_response_update(device_addr, tds_act_ind_res);
+
+ if (device_addr != NULL)
+ free(device_addr);
+ break;
+ }
+ case BLUETOOTH_EVENT_OTP_SERVER_STATE_CHANGED: {
+ bt_otp_server_state_changed_cb cb = bt_event_slot_container[event_index].callback;
+ bool *status = (bool *)(param->param_data);
+
+ BT_INFO("BLUETOOTH_EVENT_OTP_SERVER_STATE_CHANGED [%s]", *status ? "enabled" : "disabled");
+
+ cb(_bt_get_error_code(param->result), *status ? true : false);
+ break;
+ }
+ case BLUETOOTH_EVENT_OTP_READ_CHAR_VAL: {
+ BT_DBG("BLUETOOTH_EVENT_OTP_READ_CHAR_VAL"); /* LCOV_EXCL_LINE */
+ bluetooth_otp_resp_info_t *info = NULL;
+ char *handle = NULL;
+
+ if (param->result == BT_ATT_ERROR_NONE) {
+ info = (bluetooth_otp_resp_info_t *)(param->param_data);
+ BT_ERR("Read Success Handle [%s]", info->handle);
+ _bt_otp_client_read_value_response(param->result,
+ info->handle, info->data, info->data_length);
+ } else {
+ handle = (char *)(param->param_data);
+ BT_ERR("Read Fail Handle [%s]", handle);
+ _bt_otp_client_read_value_response(param->result,
+ handle, NULL, 0);
+ }
+ break;
+ }
+ case BLUETOOTH_EVENT_OTP_WRITE_CHAR_VAL: {
+ BT_DBG("BLUETOOTH_EVENT_OTP_WRITE_CHAR_VAL"); /* LCOV_EXCL_LINE */
+ char *handle = (char *)(param->param_data);
+ BT_ERR("Handle [%s]", handle);
+ _bt_otp_client_write_value_response(param->result, handle);
+ break;
+ }
+ case BLUETOOTH_EVENT_OTP_NOTIFICATION_ENABLED: {
+ BT_DBG("BLUETOOTH_EVENT_OTP_NOTIFICATION_ENABLED"); /* LCOV_EXCL_LINE */
+ char *handle = (char *)(param->param_data);
+ BT_DBG("Handle [%s]", handle);
+ _bt_otp_client_notification_enabled(_bt_get_error_code(param->result), handle);
+ break;
+ } case BLUETOOTH_EVENT_OTP_INDICATION: {
+ BT_DBG("BLUETOOTH_EVENT_OTP_INDICATION"); /* LCOV_EXCL_LINE */
+ bluetooth_otp_resp_info_t *otp_ind_info = NULL;
+ otp_ind_info = (bluetooth_otp_resp_info_t *)(param->param_data);
+ BT_DBG("Handle [%s]", otp_ind_info->handle);
+ _bt_otp_client_indication(_bt_get_error_code(param->result), otp_ind_info);
+ break;
+ } case BLUETOOTH_EVENT_OTC_STATE_CHANGED: {
+ BT_DBG("BLUETOOTH_EVENT_OTC_STATE_CHANGED"); /* LCOV_EXCL_LINE */
+ bluetooth_otc_info_t *otc_info = NULL;
+ otc_info = (bluetooth_otc_info_t *)(param->param_data);
+
+ BT_ERR("Address [%s]", otc_info->address);
+ _bt_otc_connection_state_changed(_bt_get_error_code(param->result), otc_info);
break;
}
default:
+ BT_INFO("Unknown function");
break;
}
}
+/* LCOV_EXCL_STOP */
static void __bt_le_event_proxy(int event, bluetooth_event_param_t *param, void *user_data)
{
bt_adapter_le_device_scan_result_info_s *scan_info = NULL;
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
bt_adapter_le_device_discovery_info_s *discovery_info = NULL;
-#endif
int event_index = -1;
event_index = __bt_get_cb_index(event);
(_bt_get_error_code(param->result), BT_ADAPTER_LE_DISABLED, bt_event_slot_container[event_index].user_data);
break;
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
case BLUETOOTH_EVENT_LE_DISCOVERY_STARTED:
- BT_INFO("BLUETOOTH_EVENT_LE_DISCOVERY_STARTED"); /* LCOV_EXCL_LINE */
- ((bt_adapter_le_device_discovery_state_changed_cb) bt_event_slot_container[event_index].callback) /* LCOV_EXCL_LINE */
- (_bt_get_error_code(param->result), BT_ADAPTER_LE_DEVICE_DISCOVERY_STARTED, NULL, bt_event_slot_container[event_index].user_data);
- break;
+ if (!TIZEN_PROFILE_WEARABLE_IVI) {
+ BT_INFO("BLUETOOTH_EVENT_LE_DISCOVERY_STARTED"); /* LCOV_EXCL_LINE */
+ ((bt_adapter_le_device_discovery_state_changed_cb) bt_event_slot_container[event_index].callback) /* LCOV_EXCL_LINE */
+ (_bt_get_error_code(param->result), BT_ADAPTER_LE_DEVICE_DISCOVERY_STARTED, NULL, bt_event_slot_container[event_index].user_data);
+ break;
+ } else {
+ break; /* goto default */
+ }
case BLUETOOTH_EVENT_LE_DISCOVERY_FINISHED:
- BT_INFO("BLUETOOTH_EVENT_LE_DISCOVERY_FINISHED"); /* LCOV_EXCL_LINE */
- ((bt_adapter_le_device_discovery_state_changed_cb)bt_event_slot_container[event_index].callback) /* LCOV_EXCL_LINE */
- (_bt_get_error_code(param->result), BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED, NULL, bt_event_slot_container[event_index].user_data);
- break;
-#endif
-
- case BLUETOOTH_EVENT_REMOTE_LE_DEVICE_FOUND:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) {
+ BT_INFO("BLUETOOTH_EVENT_LE_DISCOVERY_FINISHED"); /* LCOV_EXCL_LINE */
+ ((bt_adapter_le_device_discovery_state_changed_cb)bt_event_slot_container[event_index].callback) /* LCOV_EXCL_LINE */
+ (_bt_get_error_code(param->result), BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED, NULL, bt_event_slot_container[event_index].user_data);
+ break;
+ } else {
+ break; /* goto default */
+ }
+ case BLUETOOTH_EVENT_REMOTE_LE_DEVICE_FOUND: /* LCOV_EXCL_START */
BT_INFO("BLUETOOTH_EVENT_REMOTE_LE_DEVICE_FOUND");
event_index = BT_EVENT_LE_SCAN_RESULT_UPDATED;
if (bt_event_slot_container[event_index].callback != NULL) {
if (__bt_get_bt_adapter_le_device_scan_info_s(&scan_info, (bluetooth_le_device_info_t *)(param->param_data)) == BT_ERROR_NONE) {
((bt_adapter_le_scan_result_cb)bt_event_slot_container[event_index].callback)
(_bt_get_error_code(param->result), scan_info, bt_event_slot_container[event_index].user_data);
- __bt_free_bt_adapter_le_device_scan_info_s(scan_info);
} else {
((bt_adapter_le_scan_result_cb)bt_event_slot_container[event_index].callback)
(_bt_get_error_code(param->result), NULL, bt_event_slot_container[event_index].user_data);
}
}
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
- event_index = BT_EVENT_LE_DEVICE_DISCOVERY_STATE_CHANGED;
- if (bt_event_slot_container[event_index].callback != NULL) {
- if (__bt_get_bt_adapter_le_device_discovery_info_s(&discovery_info, (bluetooth_le_device_info_t *)(param->param_data)) == BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
- ((bt_adapter_le_device_discovery_state_changed_cb)bt_event_slot_container[event_index].callback) /* LCOV_EXCL_LINE */
- (_bt_get_error_code(param->result), BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND, discovery_info, bt_event_slot_container[event_index].user_data);
- __bt_free_bt_adapter_le_device_discovery_info_s(discovery_info); /* LCOV_EXCL_LINE */
- } else {
- ((bt_adapter_le_device_discovery_state_changed_cb)bt_event_slot_container[event_index].callback) /* LCOV_EXCL_LINE */
- (_bt_get_error_code(param->result), BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND, NULL, bt_event_slot_container[event_index].user_data);
+ if (!TIZEN_PROFILE_WEARABLE_IVI) {
+ event_index = BT_EVENT_LE_DEVICE_DISCOVERY_STATE_CHANGED;
+ if (bt_event_slot_container[event_index].callback != NULL) {
+ if (__bt_get_bt_adapter_le_device_discovery_info_s(&discovery_info, (bluetooth_le_device_info_t *)(param->param_data)) == BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
+ ((bt_adapter_le_device_discovery_state_changed_cb)bt_event_slot_container[event_index].callback) /* LCOV_EXCL_LINE */
+ (_bt_get_error_code(param->result), BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND, discovery_info, bt_event_slot_container[event_index].user_data);
+ __bt_free_bt_adapter_le_device_discovery_info_s(discovery_info); /* LCOV_EXCL_LINE */
+ } else {
+ ((bt_adapter_le_device_discovery_state_changed_cb)bt_event_slot_container[event_index].callback) /* LCOV_EXCL_LINE */
+ (_bt_get_error_code(param->result), BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND, NULL, bt_event_slot_container[event_index].user_data);
+ }
+ }
+ }
+ /* TDS Provider Search: Uses Scan Info */
+ if (bt_event_slot_container[BT_EVENT_TDS_PROVIDER_FOUND_RESULT].callback != NULL) {
+ char *data = NULL;
+ int data_len = 0;
+ if (!scan_info) {
+ /* Get Scan Info */
+ if (__bt_get_bt_adapter_le_device_scan_info_s(&scan_info,
+ (bluetooth_le_device_info_t *)(param->param_data)) != BT_ERROR_NONE) { /* LCOV_EXCL_LINE */
+ break;
+ }
+ }
+ _bt_get_ad_data_by_type((char*)scan_info->adv_data, scan_info->adv_data_len,
+ BT_ADAPTER_LE_ADVERTISING_DATA_TRANSPORT_DISCOVERY,
+ &data, &data_len);
+ if (data != NULL) {
+ BT_DBG("TDS Service available Data length[%d]", data_len);
+ bt_tds_transport_block_list_s *info = g_malloc0(sizeof(bt_tds_transport_block_list_s));
+
+ if (_bt_tds_parse_transport_blocks(&info, data, data_len) == BT_ERROR_NONE) {
+ ((bt_tds_provider_scan_result_cb)bt_event_slot_container[BT_EVENT_TDS_PROVIDER_FOUND_RESULT].callback) /* LCOV_EXCL_LINE */
+ (_bt_get_error_code(param->result),
+ scan_info->remote_address, info,
+ scan_info,
+ bt_event_slot_container[BT_EVENT_TDS_PROVIDER_FOUND_RESULT].user_data);
+ }
+ __bt_free_tds_scan_result_info_s(info);
+
+ g_free(data);
}
}
-#endif
- break;
+ if (scan_info)
+ __bt_free_bt_adapter_le_device_scan_info_s(scan_info);
+ break;
default:
break;
}
}
+/* LCOV_EXCL_STOP */
/* LCOV_EXCL_START */
static int __bt_get_bt_adapter_device_discovery_info_s(bt_adapter_device_discovery_info_s **discovery_info, bluetooth_device_info_t *source_info)
if ((*discovery_info)->service_uuid[i] != NULL)
__bt_convert_lower_to_upper((*discovery_info)->service_uuid[i]);
- BT_INFO("UUID: %s", (*discovery_info)->service_uuid[i]);
}
}
} else
free(discovery_info);
discovery_info = NULL;
}
-/* LCOV_EXCL_STOP */
+
static int __bt_get_bt_adapter_le_device_scan_info_s(
bt_adapter_le_device_scan_result_info_s **scan_info,
bluetooth_le_device_info_t *source_info)
scan_info = NULL;
}
-/* LCOV_EXCL_START */
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
+static void __bt_free_tds_scan_result_info_s(bt_tds_transport_block_list_s *discovery_info)
+{
+ int k;
+
+ if (discovery_info == NULL)
+ return;
+
+ for (k = 0; k < discovery_info->num_transport_block; k++) {
+ g_free(discovery_info->data[k]->data);
+ g_free(discovery_info->data[k]);
+ }
+
+ g_free(discovery_info);
+ discovery_info = NULL;
+
+}
+
static int __bt_get_bt_adapter_le_device_discovery_info_s(
bt_adapter_le_device_discovery_info_s **le_discovery_info,
bluetooth_le_device_info_t *source_info)
discovery_info = NULL;
}
-#endif
-
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
static int __bt_get_gatt_client_cb_index(int event)
{
switch (event) {
return -1;
}
-#endif
/* LCOV_EXCL_STOP */
static int __bt_get_cb_index(int event)
{
return BT_EVENT_OPP_CLIENT_PUSH_PROGRESS;
case BLUETOOTH_EVENT_OPC_DISCONNECTED:
return BT_EVENT_OPP_CLIENT_PUSH_FINISHED;
+ case BLUETOOTH_EVENT_MAP_LIST_FOLDERS_COMPLETE:
+ return BT_EVENT_MAP_CLIENT_LIST_FOLDERS;
+ case BLUETOOTH_EVENT_MAP_LIST_FILTER_FIELD_COMPLETE:
+ return BT_EVENT_MAP_CLIENT_LIST_FILTER_FIELDS;
+ case BLUETOOTH_EVENT_MAP_LIST_MESSAGES_COMPLETE:
+ return BT_EVENT_MAP_CLIENT_LIST_MESSAGES;
+ case BLUETOOTH_EVENT_MAP_GET_MESSAGE_COMPLETE:
+ return BT_EVENT_MAP_CLIENT_GET_MESSAGE;
+ case BLUETOOTH_EVENT_MAP_PUSH_MESSAGE_COMPLETE:
+ return BT_EVENT_MAP_CLIENT_PUSH_MESSAGE;
case BLUETOOTH_EVENT_NETWORK_SERVER_CONNECTED:
case BLUETOOTH_EVENT_NETWORK_SERVER_DISCONNECTED:
return BT_EVENT_NAP_CONNECTION_STATE_CHANGED;
return BT_EVENT_HID_DEVICE_CONNECTION_STATUS;
case BLUETOOTH_HID_DEVICE_DATA_RECEIVED:
return BT_EVENT_HID_DEVICE_DATA_RECEIVED;
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
case BLUETOOTH_EVENT_GATT_SVC_CHAR_DISCOVERED:
+ if (!TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT)
+ return -1; /* default */
return BT_EVENT_GATT_CLIENT_CHARACTERISTIC_DISCOVERED_LEGACY;
case BLUETOOTH_EVENT_GATT_SVC_CHAR_DESC_DISCOVERED:
+ if (!TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT)
+ return -1; /* default */
return BT_EVENT_GATT_CLIENT_CHARACTERISTIC_DESCRIPTOR_DISCOVERED_LEGACY;
case BLUETOOTH_EVENT_GATT_CHAR_VAL_CHANGED:
- case BLUETOOTH_EVENT_GATT_READ_CHAR:
- case BLUETOOTH_EVENT_GATT_WRITE_CHAR:
- return __bt_get_gatt_client_cb_index(event);
-#else
- case BLUETOOTH_EVENT_GATT_CHAR_VAL_CHANGED:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT)
+ return __bt_get_gatt_client_cb_index(event);
return BT_EVENT_GATT_CLIENT_VALUE_CHANGED;
case BLUETOOTH_EVENT_GATT_READ_CHAR:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT)
+ return __bt_get_gatt_client_cb_index(event);
return BT_EVENT_GATT_CLIENT_READ_CHARACTERISTIC;
case BLUETOOTH_EVENT_GATT_WRITE_CHAR:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT)
+ return __bt_get_gatt_client_cb_index(event);
return BT_EVENT_GATT_CLIENT_WRITE_CHARACTERISTIC;
-#endif
case BLUETOOTH_EVENT_GATT_READ_DESC:
return BT_EVENT_GATT_CLIENT_READ_DESCRIPTOR;
case BLUETOOTH_EVENT_GATT_WRITE_DESC:
return BT_EVENT_SUPPORTED_TRUSTED_PROFILE_EVENT;
case BLUETOOTH_EVENT_LE_DATA_LENGTH_CHANGED:
return BT_EVENT_LE_DATA_LENGTH_CHANGED; /* LCOV_EXCL_LINE */
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
case BLUETOOTH_PBAP_CONNECTED:
case BLUETOOTH_PBAP_DISCONNECTED:
- return BT_EVENT_PBAP_CONNECTION_STATUS;
+ if (!TIZEN_PROFILE_WEARABLE_IVI) /* LCOV_EXCL_LINE */
+ return -1;
+ return BT_EVENT_PBAP_CONNECTION_STATUS; /* LCOV_EXCL_LINE */
case BLUETOOTH_PBAP_PHONEBOOK_SIZE:
- return BT_EVENT_PBAP_PHONEBOOK_SIZE;
+ if (!TIZEN_PROFILE_WEARABLE_IVI) /* LCOV_EXCL_LINE */
+ return -1;
+ return BT_EVENT_PBAP_PHONEBOOK_SIZE; /* LCOV_EXCL_LINE */
case BLUETOOTH_PBAP_PHONEBOOK_PULL:
- return BT_EVENT_PBAP_PHONEBOOK_PULL;
+ if (!TIZEN_PROFILE_WEARABLE_IVI) /* LCOV_EXCL_LINE */
+ return -1;
+ return BT_EVENT_PBAP_PHONEBOOK_PULL; /* LCOV_EXCL_LINE */
case BLUETOOTH_PBAP_VCARD_LIST:
- return BT_EVENT_PBAP_VCARD_LIST;
+ if (!TIZEN_PROFILE_WEARABLE_IVI) /* LCOV_EXCL_LINE */
+ return -1;
+ return BT_EVENT_PBAP_VCARD_LIST; /* LCOV_EXCL_LINE */
case BLUETOOTH_PBAP_VCARD_PULL:
- return BT_EVENT_PBAP_VCARD_PULL;
+ if (!TIZEN_PROFILE_WEARABLE_IVI) /* LCOV_EXCL_LINE */
+ return -1;
+ return BT_EVENT_PBAP_VCARD_PULL; /* LCOV_EXCL_LINE */
case BLUETOOTH_PBAP_PHONEBOOK_SEARCH:
+ if (!TIZEN_PROFILE_WEARABLE_IVI) /* LCOV_EXCL_START */
+ return -1;
return BT_EVENT_PBAP_PHONEBOOK_SEARCH;
case BLUETOOTH_EVENT_HF_CONNECTED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ return -1;
return BT_EVENT_AUDIO_CONNECTION_STATUS;
case BLUETOOTH_EVENT_HF_DISCONNECTED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ return -1;
return BT_EVENT_AUDIO_CONNECTION_STATUS;
case BLUETOOTH_EVENT_HF_AUDIO_CONNECTED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ return -1;
return BT_EVENT_HF_SCO_CONNECTION_STATUS;
case BLUETOOTH_EVENT_HF_AUDIO_DISCONNECTED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ return -1;
return BT_EVENT_HF_SCO_CONNECTION_STATUS;
case BLUETOOTH_EVENT_HF_RING_INDICATOR:
case BLUETOOTH_EVENT_HF_CALL_TERMINATED:
case BLUETOOTH_EVENT_HF_CALLSETUP_INCOMING:
case BLUETOOTH_EVENT_HF_CALLSETUP_DIALING:
case BLUETOOTH_EVENT_HF_CALLSETUP_ALERTING:
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ return -1;
return BT_EVENT_HF_REMOTE_CALL_EVENT;
case BLUETOOTH_EVENT_HF_VENDOR_DEP_CMD:
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ return -1;
return BT_EVENT_HF_VENDOR_DEP_CMD_EVENT;
case BLUETOOTH_EVENT_HF_VOLUME_SPEAKER:
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ return -1;
return BT_EVENT_HF_SPEAKER_GAIN_CHANGE;
case BLUETOOTH_EVENT_HF_CALL_STATUS:
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ return -1;
return BT_EVENT_HF_CALL_STATUS_UPDATED_EVENT;
case BLUETOOTH_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED:
case BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_ENABLED:
case BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_DISABLED:
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ return -1;
return BT_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED;
-#endif
case BLUETOOTH_EVENT_IPSP_INIT_STATE_CHANGED:
return BT_EVENT_IPSP_INIT_STATE_CHANGED;
case BLUETOOTH_EVENT_PXP_PROPERTY_CHANGED:
- return BT_EVENT_PROXIMITY_PROPERTY_CHANGED;
+ return BT_EVENT_PROXIMITY_REPORTER_PROPERTY_CHANGED;
+ case BLUETOOTH_EVENT_TDS_ACTIVATION_REQUESTED:
+ return BT_EVENT_TDS_ACTIVATION_REQUESTED;
+ case BLUETOOTH_EVENT_OTP_SERVER_STATE_CHANGED:
+ return BT_EVENT_OTP_SERVER_STATE_CHANGED;
default:
- return -1;
+ return -1; /* LCOV_EXCL_STOP */
}
}
/* LCOV_EXCL_START */
origin[i] = toupper(origin[i]);
}
}
-
-static void bt_gatt_client_handle_destroy(bt_gatt_h gatt_handle)
-{
- bt_gatt_common_s *handle = (bt_gatt_common_s *)gatt_handle;
-
- if (handle) {
- if (handle->type == BT_GATT_TYPE_SERVICE)
- bt_gatt_service_destroy(gatt_handle);
- else if (handle->type == BT_GATT_TYPE_CHARACTERISTIC)
- bt_gatt_characteristic_destroy(gatt_handle);
- else if (handle->type == BT_GATT_TYPE_DESCRIPTOR)
- bt_gatt_descriptor_destroy(gatt_handle);
- else
- BT_ERR("Type is invalid(type:%d)", handle->type);
- }
-}
-
-int _bt_gatt_client_update_all(bt_gatt_client_h client)
-{
- bt_gatt_client_s *client_s = client;
- bluetooth_device_address_t addr_hex = { {0, } };
- bt_gatt_handle_info_t *prim_svc = NULL;
- int ret;
- int i;
- int j;
- GSList *svc_list = NULL;
-
- prim_svc = g_new0(bt_gatt_handle_info_t, 1);
-
- _bt_convert_address_to_hex(&addr_hex, client_s->remote_address);
- ret = bluetooth_gatt_get_primary_services(&addr_hex, prim_svc);
- ret = _bt_get_error_code(ret);
- if (ret != BT_ERROR_NONE) {
- BT_ERR("bluetooth_gatt_get_primary_services is failed");
- return ret;
- }
-
- if (prim_svc->count == 0)
- goto done;
-
- for (i = 0; i < prim_svc->count; i++) {
- bt_gatt_service_s *svc = NULL;
- bt_gatt_service_property_t property;
-
- if (prim_svc->handle[i] == NULL)
- continue;
- BT_DBG("handle: %s", prim_svc->handle[i]);
-
- memset(&property, 0x00, sizeof(property));
-
- ret = bluetooth_gatt_get_service_property(
- prim_svc->handle[i], &property);
- ret = _bt_get_error_code(ret);
- if (ret != BT_ERROR_NONE) {
- BT_ERR("bluetooth_gatt_get_service_property is failed");
- continue;
- }
-
- /* Add primary service */
- ret = bt_gatt_service_create(property.uuid,
- BT_GATT_SERVICE_TYPE_PRIMARY,
- (bt_gatt_h *)&svc);
- if (ret != BT_ERROR_NONE) {
- BT_ERR("bt_gatt_service_create is failed");
- continue;
- }
-
- svc->role = BT_GATT_ROLE_CLIENT;
- svc->parent = (void *)client_s;
- svc->path = g_strdup(prim_svc->handle[i]);
-
- svc_list = g_slist_append(svc_list, svc);
-
- if (property.include_handles.count != 0 && property.include_handles.handle) {
- GSList *include_list = NULL;
- /* Add included services */
- for (j = 0; j < property.include_handles.count; j++) {
- bt_gatt_service_s *sec_svc = NULL;
- bt_gatt_service_property_t sec_property;
-
- if (property.include_handles.handle[j] == NULL)
- continue;
-
- memset(&sec_property, 0x00, sizeof(sec_property));
-
- ret = bluetooth_gatt_get_service_property(
- property.include_handles.handle[j],
- &sec_property);
- ret = _bt_get_error_code(ret);
- if (ret != BT_ERROR_NONE)
- continue;
-
- ret = bt_gatt_service_create(sec_property.uuid,
- BT_GATT_SERVICE_TYPE_SECONDARY,
- (bt_gatt_h *)&sec_svc);
- if (ret != BT_ERROR_NONE)
- continue;
-
- sec_svc->role = BT_GATT_ROLE_CLIENT;
- sec_svc->parent = (void *)svc;
- sec_svc->is_included_service = true;
- sec_svc->path = g_strdup(property.include_handles.handle[j]);
-
- include_list = g_slist_append(include_list, sec_svc);
- bluetooth_gatt_free_service_property(&sec_property);
- }
-
- g_slist_free_full(svc->included_services,
- bt_gatt_client_handle_destroy);
- svc->included_services = include_list;
- }
- if (property.char_handle.count != 0 && property.char_handle.handle) {
-
- /* Add characteristics */
- __bt_gatt_client_update_characteristics(property.char_handle, svc);
- }
- bluetooth_gatt_free_service_property(&property);
- }
- g_strfreev(prim_svc->handle);
-
- g_free(prim_svc);
-
- if (svc_list == NULL)
- return BT_ERROR_OPERATION_FAILED;
-
-done:
- g_slist_free_full(client_s->services,
- bt_gatt_client_handle_destroy);
-
- client_s->services = svc_list;
-
- return BT_ERROR_NONE;
-}
-
-static int __bt_gatt_client_update_characteristics(bt_gatt_handle_info_t char_handles,
- bt_gatt_service_s *service)
-{
- GSList *chr_list = NULL;
- int i;
-
- for (i = 0; i < char_handles.count; i++) {
- bt_gatt_characteristic_s *chr = NULL;
- bt_gatt_char_property_t char_property;
- int ret;
-
- memset(&char_property, 0x00, sizeof(char_property));
- ret = bluetooth_gatt_get_characteristics_property(
- char_handles.handle[i], &char_property);
- ret = _bt_get_error_code(ret);
- if (ret != BT_ERROR_NONE) {
- BT_ERR("bluetooth_gatt_get_characteristics_property is failed");
- goto next;
- }
-
- ret = bt_gatt_characteristic_create(char_property.uuid, 0,
- char_property.permission, (char *)char_property.val,
- (int)char_property.val_len, (bt_gatt_h *)&chr);
- if (ret != BT_ERROR_NONE) {
- BT_ERR("bt_gatt_characteristic_create is failed");
- goto next;
- }
-
- if (char_property.permission & BT_GATT_PROPERTY_WRITE_WITHOUT_RESPONSE)
- chr->write_type = BT_GATT_WRITE_TYPE_WRITE_NO_RESPONSE;
- else if (char_property.permission & BT_GATT_PROPERTY_WRITE)
- chr->write_type = BT_GATT_WRITE_TYPE_WRITE;
-
- chr->path = g_strdup(char_handles.handle[i]);
- BT_DBG("path : %s", chr->path);
- chr->parent = (void *)service;
- chr->role = BT_GATT_ROLE_CLIENT;
-
- if (char_property.char_desc_handle.count != 0 && char_property.char_desc_handle.handle) {
-
- /* Add characteristics descriptor */
- __bt_gatt_client_update_descriptors(char_property.char_desc_handle, chr);
- }
-
- chr_list = g_slist_append(chr_list, chr);
-next:
- bluetooth_gatt_free_char_property(&char_property);
- }
-
- g_slist_free_full(service->characteristics,
- bt_gatt_client_handle_destroy);
- service->characteristics = chr_list;
- return BT_ERROR_NONE;
-}
-
-static int __bt_gatt_client_update_descriptors(bt_gatt_handle_info_t desc_handles,
- bt_gatt_characteristic_s *characteristic)
-
-{
- GSList *desc_list = NULL;
- int i;
-
- /* Add characteristics descriptor */
-
- for (i = 0; i < desc_handles.count; i++) {
- bt_gatt_descriptor_s *desc = NULL;
- bt_gatt_char_descriptor_property_t desc_property;
- int ret;
-
- memset(&desc_property, 0x00, sizeof(desc_property));
- ret = bluetooth_gatt_get_char_descriptor_property(
- desc_handles.handle[i], &desc_property);
- ret = _bt_get_error_code(ret);
- if (ret != BT_ERROR_NONE) {
- BT_ERR("bluetooth_gatt_get_char_descriptor_property is failed");
- goto next;
- }
-
- ret = bt_gatt_descriptor_create(desc_property.uuid, 0,
- (char *)desc_property.val, (int)desc_property.val_len,
- (bt_gatt_h *)&desc);
-
- if (ret != BT_ERROR_NONE) {
- BT_ERR("bt_gatt_characteristic_create is failed");
- goto next;
- }
- desc->path = g_strdup(desc_handles.handle[i]);
- BT_DBG("path : %s", desc->path);
- desc->parent = (void *)characteristic;
- desc->role = BT_GATT_ROLE_CLIENT;
- desc_list = g_slist_append(desc_list, desc);
-
-next:
- bluetooth_gatt_free_desc_property(&desc_property);
- }
-
- g_slist_free_full(characteristic->descriptors,
- bt_gatt_client_handle_destroy);
- characteristic->descriptors = desc_list;
- return BT_ERROR_NONE;
-}
/* LCOV_EXCL_STOP */
tizen_profile_t profile = _PROFILE_UNKNOWN;
return BT_ERROR_NONE;
}
+/* LCOV_EXCL_START */
int bt_device_unset_rssi_alert_cb(void)
{
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
_bt_unset_cb(BT_EVENT_RSSI_ALERT_EVENT);
return BT_ERROR_NONE;
-}
+} /* LCOV_EXCL_STOP */
int bt_device_unset_att_mtu_changed_cb(void)
{
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- _bt_unset_cb(BT_EVENT_DEVICE_CONNECTION_STATUS);
+ _bt_unset_cb(BT_EVENT_GATT_ATT_MTU_CHANGE_STATUS);
return BT_ERROR_NONE;
}
+/* LCOV_EXCL_START */
int bt_device_enable_rssi_monitor(const char *remote_address,
bt_device_connection_link_type_e link_type,
int low_threshold, int in_range_threshold,
}
-/* LCOV_EXCL_START */
int bt_device_le_conn_update(const char *device_address,
const bt_le_conn_update_s *parameters)
{
service_mask |= BT_SC_OPP_SERVICE_MASK;
break;
+ case BLUETOOTH_OBEX_MESSAGE_ACCESS_SERVICE_UUID:
+ service_mask |= BT_SC_MAP_SERVICE_MASK;
+ break;
+
case BLUETOOTH_OBEX_FILE_TRANSFER_UUID:
service_mask |= BT_SC_FTP_SERVICE_MASK;
break;
}
*mtu = mtu_value;
- BT_INFO("Got MTU: Remote address [%s] MTU Size [%u]", remote_address, mtu_value);
+
return ret;
}
-int bt_device_get_ida(const char *remote_rpa, char **id_address)
+int bt_device_get_id_address(const char *remote_rpa, char **id_address)
{
bluetooth_device_address_t id_addr = { {0} };
bluetooth_device_address_t addr_hex = { {0,} };
BT_CHECK_INPUT_PARAMETER(device_address);
_bt_convert_address_to_hex(&addr_hex, device_address);
- error_code = _bt_get_error_code(bluetooth_set_profile_restricted(&addr_hex,
- profile, restricted));
+ error_code = _bt_get_error_code(bluetooth_set_profile_trusted(&addr_hex,
+ profile, !restricted));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
bt_restricted_profile_t profile, int *restricted)
{
bluetooth_device_address_t addr_hex = { {0,} };
- int profile_restricted;
+ int profile_trusted;
int error_code = BT_ERROR_NONE;
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(device_address);
_bt_convert_address_to_hex(&addr_hex, device_address);
- error_code = _bt_get_error_code(bluetooth_get_profile_restricted(&addr_hex,
- profile, &profile_restricted));
+ error_code = _bt_get_error_code(bluetooth_get_profile_trusted(&addr_hex,
+ profile, &profile_trusted));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
if (restricted)
- *restricted = profile_restricted;
+ *restricted = !profile_trusted;
return error_code;
}
#include "bluetooth_private.h"
/* LCOV_EXCL_START */
-static int _bt_dpm_get_error_code(int origin_error)
-{
- switch (origin_error) {
- case BLUETOOTH_DPM_RESULT_SUCCESS:
- return BT_ERROR_NONE;
- case BLUETOOTH_DPM_RESULT_INVALID_PARAM:
- return BT_ERROR_INVALID_PARAMETER;
- case BLUETOOTH_DPM_RESULT_NOT_SUPPORTED:
- return BT_ERROR_NOT_SUPPORTED;
- case BLUETOOTH_DPM_RESULT_SERVICE_NOT_ENABLED:
- return BT_ERROR_NOT_ENABLED;
- case BLUETOOTH_DPM_RESULT_FAIL:
- case BLUETOOTH_DPM_RESULT_ACCESS_DENIED:
- default:
- return BT_ERROR_OPERATION_FAILED;
- }
-
-}
-
int bt_dpm_set_allow_bluetooth_mode(bt_dpm_allow_e value)
{
int error_code = BT_ERROR_NONE;
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_set_allow_mode(dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_set_allow_mode(dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_get_allow_mode(&dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_get_allow_mode(&dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
*value = dpm_value;
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_activate_device_restriction(dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_activate_device_restriction(dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_is_device_restriction_active(&dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_is_device_restriction_active(&dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
*value = dpm_value;
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_activate_uuid_restriction(dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_activate_uuid_restriction(dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_is_uuid_restriction_active(&dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_is_uuid_restriction_active(&dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
*value = dpm_value;
BT_CHECK_INPUT_PARAMETER(device_address);
_bt_convert_address_to_hex(&addr_hex, device_address);
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_add_devices_to_blacklist(&addr_hex));
+ error_code = _bt_get_error_code(bluetooth_dpm_add_devices_to_blacklist(&addr_hex));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_INPUT_PARAMETER(device_address);
_bt_convert_address_to_hex(&addr_hex, device_address);
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_add_devices_to_whitelist(&addr_hex));
+ error_code = _bt_get_error_code(bluetooth_dpm_add_devices_to_whitelist(&addr_hex));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_add_uuids_to_blacklist(service_uuid));
+ error_code = _bt_get_error_code(bluetooth_dpm_add_uuids_to_blacklist(service_uuid));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_add_uuids_to_whitelist(service_uuid));
+ error_code = _bt_get_error_code(bluetooth_dpm_add_uuids_to_whitelist(service_uuid));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_clear_devices_from_blacklist());
+ error_code = _bt_get_error_code(bluetooth_dpm_clear_devices_from_blacklist());
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_clear_devices_from_whitelist());
+ error_code = _bt_get_error_code(bluetooth_dpm_clear_devices_from_whitelist());
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_clear_uuids_from_blacklist());
+ error_code = _bt_get_error_code(bluetooth_dpm_clear_uuids_from_blacklist());
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_clear_uuids_from_whitelist());
+ error_code = _bt_get_error_code(bluetooth_dpm_clear_uuids_from_whitelist());
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_get_devices_from_blacklist(&dev_list));
+ error_code = _bt_get_error_code(bluetooth_dpm_get_devices_from_blacklist(&dev_list));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_get_devices_from_whitelist(&dev_list));
+ error_code = _bt_get_error_code(bluetooth_dpm_get_devices_from_whitelist(&dev_list));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_get_uuids_from_blacklist(&uuids));
+ error_code = _bt_get_error_code(bluetooth_dpm_get_uuids_from_blacklist(&uuids));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_get_uuids_from_whitelist(&uuids));
+ error_code = _bt_get_error_code(bluetooth_dpm_get_uuids_from_whitelist(&uuids));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_INPUT_PARAMETER(device_address);
_bt_convert_address_to_hex(&addr_hex, device_address);
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_remove_device_from_whitelist(&addr_hex));
+ error_code = _bt_get_error_code(bluetooth_dpm_remove_device_from_whitelist(&addr_hex));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_INPUT_PARAMETER(device_address);
_bt_convert_address_to_hex(&addr_hex, device_address);
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_remove_device_from_blacklist(&addr_hex));
+ error_code = _bt_get_error_code(bluetooth_dpm_remove_device_from_blacklist(&addr_hex));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_remove_uuid_from_whitelist(service_uuid));
+ error_code = _bt_get_error_code(bluetooth_dpm_remove_uuid_from_whitelist(service_uuid));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_remove_uuid_from_blacklist(service_uuid));
+ error_code = _bt_get_error_code(bluetooth_dpm_remove_uuid_from_blacklist(service_uuid));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_set_allow_outgoing_call(dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_set_allow_outgoing_call(dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_get_allow_outgoing_call(&dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_get_allow_outgoing_call(&dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
*value = dpm_value;
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_set_pairing_state(dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_set_pairing_state(dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_get_pairing_state(&dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_get_pairing_state(&dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
*value = dpm_value;
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_set_profile_state(dpm_profile, dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_set_profile_state(dpm_profile, dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_get_profile_state(profile, &dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_get_profile_state(profile, &dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
*value = dpm_value;
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_set_desktop_connectivity_state(dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_set_desktop_connectivity_state(dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_get_desktop_connectivity_state(&dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_get_desktop_connectivity_state(&dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
*value = dpm_value;
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_set_discoverable_state(dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_set_discoverable_state(dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_get_discoverable_state(&dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_get_discoverable_state(&dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
*value = dpm_value;
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_set_limited_discoverable_state(dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_set_limited_discoverable_state(dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_get_limited_discoverable_state(&dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_get_limited_discoverable_state(&dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
*value = dpm_value;
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_set_data_transfer_state(dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_set_data_transfer_state(dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
BT_CHECK_INIT_STATUS();
- error_code = _bt_dpm_get_error_code(bluetooth_dpm_get_data_transfer_state(&dpm_value));
+ error_code = _bt_get_error_code(bluetooth_dpm_get_data_transfer_state(&dpm_value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
*value = dpm_value;
#include "bluetooth_internal.h"
#include "bluetooth_type_internal.h"
-#ifndef GATT_DIRECT
-#include "bluetooth-gatt-server-api.h"
-int instance_id;
-#endif
-
#define BT_ADDR_STR_LEN 17
static GSList *gatt_client_list = NULL;
static bool is_gatt_server_initialized = false;
static bool is_gatt_server_started = false;
-bt_gatt_service_s* __bt_gatt_service_create(const char *uuid,
- bt_gatt_service_type_e type);
+static bt_gatt_service_s* __bt_gatt_service_create(const char *uuid,
+ bt_gatt_service_type_e type);
+static void __bt_gatt_free_descriptor(bt_gatt_h gatt_handle);
+static void __bt_gatt_free_characteristic(bt_gatt_h gatt_handle);
+static void __bt_gatt_free_service(bt_gatt_h gatt_handle);
#define BT_CHECK_GATT_SUPPORT() \
{ \
}
/* LCOV_EXCL_START */
-int __bt_check_gatt_server_init_status(void)
+static int __bt_check_gatt_server_init_status(void)
{
if (is_gatt_server_initialized != true) {
BT_ERR("NOT_INITIALIZED(0x%08x)", BT_ERROR_NOT_INITIALIZED);
bt_gatt_common_s *common = (bt_gatt_common_s *)l->data;
uuid128_b = _bt_convert_uuid_to_uuid128(common->uuid);
- if (g_ascii_strcasecmp(uuid128_a, uuid128_b) == 0) {
+
+ if (uuid128_b == NULL) {
+ BT_ERR("__get_gatt_handle_by_uuid Error Parameter are NULL..\n");
+ continue;
+ } else if (g_ascii_strcasecmp(uuid128_a, uuid128_b) == 0) {
g_free(uuid128_b);
break;
}
}
g_free(uuid128_a);
- if (!l)
+ if (!l) {
+ char *name = NULL;
+ bt_get_uuid_name(uuid, &name);
+ BT_INFO("Find uuid : %s [%s]", uuid, name);
+ g_free(name);
+ for (l = list; l; l = g_slist_next(l)) {
+ bt_gatt_common_s *common = (bt_gatt_common_s *)l->data;
+ bt_get_uuid_name(common->uuid, &name);
+ BT_INFO("%s %s [%s]", common->path + 38, common->uuid, name);
+ g_free(name);
+ }
return BT_ERROR_NO_DATA;
+ }
*gatt_handle = l->data;
return gatt_server_list;
}
-static void __bt_gatt_client_handle_destroy(bt_gatt_h gatt_handle)
-{
- bt_gatt_common_s *handle = (bt_gatt_common_s*)gatt_handle;
-
- if (handle->type == BT_GATT_TYPE_SERVICE)
- bt_gatt_service_destroy(gatt_handle);
- else if (handle->type == BT_GATT_TYPE_CHARACTERISTIC)
- bt_gatt_characteristic_destroy(gatt_handle);
- else if (handle->type == BT_GATT_TYPE_DESCRIPTOR)
- bt_gatt_descriptor_destroy(gatt_handle);
-}
-
bt_gatt_h _bt_gatt_client_add_service(bt_gatt_client_h client, const char *path)
{
int ret;
int ret;
int i;
+ if (!client_s->connected) {
+ BT_INFO("Not connected");
+ return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
+ }
+
+ if (client_s->services_discovered) {
+ BT_INFO("Already discovered");
+ return BT_ERROR_ALREADY_DONE;
+ }
+
_bt_convert_address_to_hex(&addr_hex, client_s->remote_address);
ret = bluetooth_gatt_get_primary_services(&addr_hex, &prim_svc);
return ret;
}
- g_slist_free_full(client_s->services,
- __bt_gatt_client_handle_destroy);
+ if (client_s->services)
+ g_slist_free_full(client_s->services, __bt_gatt_free_service);
client_s->services = NULL;
if (prim_svc.count == 0) {
return BT_ERROR_NONE;
}
+ client_s->services_discovered = true;
for (i = 0; i < prim_svc.count; i++) {
- BT_INFO("Service handle[%d] %s", i, prim_svc.handle[i]);
-
- if (!_bt_gatt_client_add_service(client, prim_svc.handle[i]))
+ if (!_bt_gatt_client_add_service(client, prim_svc.handle[i])) {
BT_ERR("_bt_gatt_client_add_service is failed [%s]",
prim_svc.handle[i]);
+ client_s->services_discovered = false;
+ }
}
g_strfreev(prim_svc.handle);
g_strfreev(svc->include_handles);
svc->include_handles = NULL;
- g_slist_free_full(svc->included_services,
- __bt_gatt_client_handle_destroy);
+ g_slist_free_full(svc->included_services, __bt_gatt_free_service);
svc->included_services = include_list;
g_strfreev(svc->char_handles);
svc->char_handles = NULL;
- g_slist_free_full(svc->characteristics,
- __bt_gatt_client_handle_destroy);
+ g_slist_free_full(svc->characteristics, __bt_gatt_free_characteristic);
svc->characteristics = chr_list;
g_strfreev(chr->desc_handles);
chr->desc_handles = NULL;
- g_slist_free_full(chr->descriptors,
- __bt_gatt_client_handle_destroy);
+ g_slist_free_full(chr->descriptors, __bt_gatt_free_descriptor);
chr->descriptors = desc_list;
return BT_ERROR_NONE;
}
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
bool _bt_gatt_is_legacy_client_mode(void)
{
if (gatt_client_list) {
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(service);
- ret = _bt_get_error_code(bluetooth_gatt_watch_characteristics((const char *)service)); /* LCOV_EXCL_LINE */
+ ret = _bt_get_error_code(bluetooth_gatt_watch_characteristics((const char *)service, NULL)); /* LCOV_EXCL_LINE */
if (ret != BT_ERROR_NONE) /* LCOV_EXCL_LINE */
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret),
BT_CHECK_INPUT_PARAMETER(characteristic);
BT_CHECK_INPUT_PARAMETER(callback); /* LCOV_EXCL_START */
- ret = _bt_get_error_code(bluetooth_gatt_read_characteristic_value((const char *)characteristic));
+ ret = _bt_get_error_code(bluetooth_gatt_read_characteristic_value((const char *)characteristic, NULL));
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
return ret; /* LCOV_EXCL_STOP */
}
-#endif
int bt_gatt_connect(const char *address, bool auto_connect)
{
g_free(desc->path);
g_free(desc->uuid);
g_free(desc->value);
- g_free(desc);
+
+ if (!desc->read_cb && !desc->write_cb)
+ g_free(desc);
+ else
+ desc->parent = NULL;
}
static void __bt_gatt_free_characteristic(bt_gatt_h gatt_handle)
g_free(chr->path);
g_free(chr->uuid);
g_free(chr->value);
- g_free(chr);
+
+ if (!chr->read_cb && !chr->write_cb)
+ g_free(chr);
+ else
+ chr->parent = NULL;
}
static void __bt_gatt_free_service(bt_gatt_h gatt_handle)
g_slist_free_full(svc->characteristics, __bt_gatt_free_characteristic);
if (svc->role == BT_GATT_ROLE_SERVER) {
-#ifdef GATT_DIRECT
ret = _bt_get_error_code(bluetooth_gatt_unregister_service(svc->path));
if (ret != BT_ERROR_NONE)
BT_ERR("%s(0x%08x) : Failed to unregister service",
_bt_convert_error_to_string(ret), ret);
-#else
- BT_INFO("GATT Server Delete Service: service handle [%d] Inst ID [%d]", svc->handle, instance_id);
- ret = _bt_get_error_code(bluetooth_gatt_server_delete_service(svc->handle, instance_id));
- if (ret != BT_ERROR_NONE) {
- BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
- }
-#endif
-
}
g_strfreev(svc->include_handles);
__bt_gatt_free_service(gatt_handle);
}
+/* LCOV_EXCL_START */
static int __convert_int_to_signed_bits(int i, int size)
{
if (i < 0)
return 0;
}
}
+/* LCOV_EXCL_STOP */
int bt_gatt_destroy(bt_gatt_h gatt_handle)
{
return BT_ERROR_NONE;
}
+static int __get_write_prop(bt_gatt_write_type_e type, bt_gatt_property_e *prop)
+{
+ if (!prop)
+ return BT_ERROR_INVALID_PARAMETER;
+
+ switch (type) {
+ case BT_GATT_WRITE_TYPE_WRITE:
+ *prop = BT_GATT_PROPERTY_WRITE;
+ break;
+ case BT_GATT_WRITE_TYPE_WRITE_NO_RESPONSE:
+ *prop = BT_GATT_PROPERTY_WRITE_WITHOUT_RESPONSE;
+ break;
+/* After ACR for BT_GATT_WRITE_TYPE_SIGNED_WRITE, will enable this code */
+#if 0
+ case BT_GATT_WRITE_TYPE_SIGNED_WRITE:
+ *prop = BT_GATT_PROPERTY_AUTHENTICATED_SIGNED_WRITES;
+ break;
+#endif
+ default:
+ BT_ERR("Unknow write type : %d", type);
+ return BT_ERROR_INVALID_PARAMETER;
+ }
+
+ return BT_ERROR_NONE;
+}
+
int bt_gatt_service_destroy(bt_gatt_h gatt_handle)
{
bt_gatt_common_s *handle = (bt_gatt_common_s *)gatt_handle;
bt_gatt_characteristic_s *chr = (bt_gatt_characteristic_s *)gatt_handle;
bt_gatt_descriptor_s *desc = (bt_gatt_descriptor_s *)gatt_handle;
-#ifndef GATT_DIRECT
- int k;
- bluetooth_gatt_server_update_value_t param;
-#endif
-
BT_CHECK_GATT_SUPPORT();
BT_CHECK_INIT_STATUS();
return BT_ERROR_INVALID_PARAMETER;
}
-#ifdef GATT_DIRECT
if (handle->role == BT_GATT_ROLE_SERVER && handle->path) {
ret = _bt_get_error_code(bluetooth_gatt_update_characteristic(handle->path,
value, value_length));
return ret;
}
}
-#else
- if (handle->role == BT_GATT_ROLE_SERVER && handle->handle) {
- memset(¶m, 0x00, sizeof(bluetooth_gatt_server_update_value_t));
- /* DEBUG */
- for(k=0; k < value_length; k++) {
- BT_DBG("New Value[%d] = [0x%x]", k, value[k]);
- }
- param.length = value_length;
- memcpy(¶m.data.data[0], value, value_length);
-
- param.attribute_handle = handle->handle;
- ret = _bt_get_error_code(bluetooth_gatt_server_update_characteristic(instance_id,
- ¶m));
- if (ret != BT_ERROR_NONE) {
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
- return ret;
- }
- }
-#endif
g_free(*val);
*val = NULL;
if (value_length > 0)
bt_gatt_characteristic_s *chr = (bt_gatt_characteristic_s *)gatt_handle;
bt_gatt_descriptor_s *desc = (bt_gatt_descriptor_s *)gatt_handle;
-#ifndef GATT_DIRECT
- bluetooth_gatt_server_update_value_t param;
-#endif
-
BT_CHECK_GATT_SUPPORT();
BT_CHECK_INIT_STATUS();
*val_len = fmt_size;
} else if (*val_len == offset) { /* Added */
tmp = g_malloc0(*val_len + fmt_size);
- /* Fix : NULL_RETURNS */
- if (!tmp) {
- g_free(*val);
- return BT_ERROR_OUT_OF_MEMORY;
- }
memcpy(tmp, *val, *val_len);
g_free(*val);
*val = tmp;
*val_len += fmt_size;
} else if (*val_len < offset + fmt_size) {/* Overlapped */
tmp = g_malloc0(offset + fmt_size);
- /* Fix : NULL_RETURNS */
- if (!tmp) {
- g_free(*val);
- return BT_ERROR_OUT_OF_MEMORY;
- }
memcpy(tmp, *val, *val_len);
g_free(*val);
*val = tmp;
}
if (handle->role == BT_GATT_ROLE_SERVER && handle->path) {
-
-#ifdef GATT_DIRECT
ret = _bt_get_error_code(bluetooth_gatt_update_characteristic(handle->path,
*val, *val_len));
-#else
- memset(¶m, 0x00, sizeof(bluetooth_gatt_server_update_value_t));
- param.length = *val_len;
- memcpy(¶m.data.data[0], *val, *val_len);
-
- param.attribute_handle = handle->handle;
- ret = _bt_get_error_code(bluetooth_gatt_server_update_characteristic(instance_id,
- ¶m));
-
-#endif
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
return ret;
bt_gatt_characteristic_s *chr = (bt_gatt_characteristic_s *)gatt_handle;
bt_gatt_descriptor_s *desc = (bt_gatt_descriptor_s *)gatt_handle;
-#ifndef GATT_DIRECT
- bluetooth_gatt_server_update_value_t param;
-#endif
-
BT_CHECK_GATT_SUPPORT();
BT_CHECK_INIT_STATUS();
if (*val == NULL) {
*val = g_malloc0(fmt_size);
- /* Fix : NULL_RETURNS */
- if (*val == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
*val_len = fmt_size;
} else if (*val_len == offset) {/* Added */
tmp = g_malloc0(*val_len + fmt_size);
- /* Fix : NULL_RETURNS */
- if (tmp == NULL) {
- g_free(*val);
- return BT_ERROR_OUT_OF_MEMORY;
- }
memcpy(tmp, *val, *val_len);
g_free(*val);
*val = tmp;
*val_len += fmt_size;
} else if (*val_len < offset + fmt_size) {/* Overlapped */
tmp = g_malloc0(offset + fmt_size);
- /* Fix : NULL_RETURNS */
- if (tmp == NULL) {
- g_free(*val);
- return BT_ERROR_OUT_OF_MEMORY;
- }
memcpy(tmp, *val, *val_len);
g_free(*val);
*val = tmp;
}
if (handle->role == BT_GATT_ROLE_SERVER && handle->path) {
-
-#ifdef GATT_DIRECT
ret = _bt_get_error_code(bluetooth_gatt_update_characteristic(handle->path,
*val, *val_len));
-#else
- memset(¶m, 0x00, sizeof(bluetooth_gatt_server_update_value_t));
- param.length = *val_len;
- memcpy(¶m.data.data[0], *val, *val_len);
-
- param.attribute_handle = handle->handle;
- ret = _bt_get_error_code(bluetooth_gatt_server_update_characteristic(instance_id,
- ¶m));
-#endif
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
return ret;
return BT_ERROR_NONE; /* LCOV_EXCL_LINE */
}
-bt_gatt_service_s* __bt_gatt_service_create(const char *uuid,
+static bt_gatt_service_s* __bt_gatt_service_create(const char *uuid,
bt_gatt_service_type_e type)
{
bt_gatt_service_s *svc;
return NULL;
svc->type = BT_GATT_TYPE_SERVICE;
-#ifdef GATT_DIRECT
if (strlen(uuid) == 8)
svc->uuid = _bt_convert_uuid_to_uuid128(uuid);
else
svc->uuid = strdup(uuid);
-#else
- svc->uuid = _bt_convert_uuid_to_uuid128(uuid);
-
-#endif
if (svc->uuid == NULL) {
g_free(svc);
return NULL;
return BT_ERROR_OUT_OF_MEMORY;
svc->role = BT_GATT_ROLE_SERVER;
svc->is_included_service = false;
-#ifndef GATT_DIRECT
- BT_INFO("Current handle count of service [%d]", svc->numhandles);
- svc->numhandles = 1; /* Initalize numhandles to 1 */
-#endif
+
*service = (bt_gatt_h)svc;
return BT_ERROR_NONE;
svc->characteristics = g_slist_append(svc->characteristics, chr);
chr->parent = (void *)service;
-#ifndef GATT_DIRECT
- BT_INFO("Current handle count of service [%d]", svc->numhandles);
- svc->numhandles += 2;
-#endif
+
return BT_ERROR_NONE;
}
svc->included_services = g_slist_append(svc->included_services,
included_svc);
included_svc->parent = (void *)service;
-#ifndef GATT_DIRECT
- BT_INFO("Current handle count of service [%d]", svc->numhandles);
- svc->numhandles = 1; /* Initalize numhandles to 1 */
-#endif
return BT_ERROR_NONE;
}
if (value_length > 0)
BT_CHECK_INPUT_PARAMETER(value);
- chr = malloc(sizeof(*chr));
- if (chr == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
+ chr = g_malloc(sizeof(*chr));
memset(chr, 0x00, sizeof(*chr));
chr->type = BT_GATT_TYPE_CHARACTERISTIC;
chr->role = BT_GATT_ROLE_SERVER;
-#ifdef GATT_DIRECT
if (strlen(uuid) == 8)
chr->uuid = _bt_convert_uuid_to_uuid128(uuid);
else
chr->uuid = g_strdup(uuid);
-#else
- chr->uuid = _bt_convert_uuid_to_uuid128(uuid);
-#endif
if (chr->uuid == NULL) {
ret = BT_ERROR_OUT_OF_MEMORY;
goto fail;
bt_gatt_h descriptor)
{
bt_gatt_characteristic_s *chr = (bt_gatt_characteristic_s *)characteristic;
-#ifndef GATT_DIRECT
- bt_gatt_service_s *svc = (bt_gatt_service_s *)chr->parent;
-#endif
bt_gatt_descriptor_s *desc = (bt_gatt_descriptor_s *)descriptor;
BT_CHECK_GATT_SUPPORT();
chr->descriptors = g_slist_append(chr->descriptors, desc);
desc->parent = (void *)characteristic;
-#ifndef GATT_DIRECT
- BT_INFO("Current handle count of service [%d]", svc->numhandles);
- svc->numhandles += 1; /* Initalize numhandles to 1 */
-#endif
return BT_ERROR_NONE;
}
bt_gatt_write_type_e write_type)
{
bt_gatt_characteristic_s *chr = (bt_gatt_characteristic_s *)characteristic;
- int property;
+ bt_gatt_property_e property = BT_GATT_PROPERTY_WRITE;
+ int ret;
BT_CHECK_GATT_SUPPORT();
BT_CHECK_INIT_STATUS();
return BT_ERROR_INVALID_PARAMETER; /* LCOV_EXCL_LINE */
}
- switch (write_type) {
- case BT_GATT_WRITE_TYPE_WRITE:
- property = BT_GATT_PROPERTY_WRITE;
- break;
- case BT_GATT_WRITE_TYPE_WRITE_NO_RESPONSE:
- property = BT_GATT_PROPERTY_WRITE_WITHOUT_RESPONSE;
- break;
-/* After ACR for BT_GATT_WRITE_TYPE_SIGNED_WRITE, will enable this code */
-#if 0
- case BT_GATT_WRITE_TYPE_SIGNED_WRITE:
- property = BT_GATT_PROPERTY_AUTHENTICATED_SIGNED_WRITES;
- break;
-#endif
- default:
+ ret = __get_write_prop(write_type, &property);
+ if (ret != BT_ERROR_NONE)
return BT_ERROR_NOT_SUPPORTED;
- }
if (!(chr->properties & property))
return BT_ERROR_NOT_SUPPORTED;
if (value_length > 0)
BT_CHECK_INPUT_PARAMETER(value);
- desc = malloc(sizeof(*desc));
- if (desc == NULL)
- return BT_ERROR_OUT_OF_MEMORY;
-
+ desc = g_malloc(sizeof(*desc));
memset(desc, 0x00, sizeof(*desc));
desc->type = BT_GATT_TYPE_DESCRIPTOR;
desc->role = BT_GATT_ROLE_SERVER;
-#ifdef GATT_DIRECT
if (strlen(uuid) == 8)
desc->uuid = _bt_convert_uuid_to_uuid128(uuid);
else
desc->uuid = g_strdup(uuid);
-#else
- desc->uuid = _bt_convert_uuid_to_uuid128(uuid);
-#endif
if (desc->uuid == NULL) {
ret = BT_ERROR_OUT_OF_MEMORY;
goto fail;
}
if (!is_gatt_server_initialized) {
-#ifndef GATT_DIRECT
- ret = _bt_get_error_code(bluetooth_gatt_server_init(&instance_id, _bt_gatt_server_event_proxy, NULL));
-#else
ret = _bt_get_error_code(bluetooth_gatt_init());
-#endif
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)",
g_slist_free(gatt_server_list);
gatt_server_list = NULL;
-#ifndef GATT_DIRECT
- ret = _bt_get_error_code(bluetooth_gatt_deinit());
- if (ret != BT_ERROR_NONE) {
- BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
- return BT_ERROR_OPERATION_FAILED;
- }
-
- ret = _bt_get_error_code(bluetooth_gatt_server_unregister(instance_id));
-
- if (ret != BT_ERROR_NONE) {
- BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
- return BT_ERROR_OPERATION_FAILED;
- }
-#else
ret = _bt_get_error_code(bluetooth_gatt_deinit());
-#endif
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)",
_bt_convert_error_to_string(ret), ret);
return BT_ERROR_OPERATION_FAILED;
}
-#ifndef GATT_DIRECT
- instance_id = -1;
-#endif
is_gatt_server_initialized = false;
is_gatt_server_started = false;
return BT_ERROR_NONE;
*server = (bt_gatt_server_h)serv;
- BT_INFO("Creating a GATT Server");
gatt_server_list = g_slist_append(gatt_server_list, serv);
return BT_ERROR_NONE;
int bt_gatt_server_register_service(bt_gatt_server_h server, bt_gatt_h service)
{
int ret = BT_ERROR_NONE;
-#ifndef GATT_DIRECT
- bluetooth_gatt_server_attribute_params_t param;
-#endif
bt_gatt_server_s *serv = (bt_gatt_server_s *)server;
bt_gatt_service_s *svc = (bt_gatt_service_s *)service;
GSList *char_l;
BT_ERR("Already Server started");
return BT_ERROR_OPERATION_FAILED;
}
-#ifndef GATT_DIRECT
- BT_INFO("Service number of total handles [%d]", svc->numhandles);
- ret = _bt_get_error_code(bluetooth_gatt_server_add_service(svc->uuid, svc->type,
- svc->numhandles, instance_id, &svc->handle));
- BT_INFO("Service added handle [%d]", svc->handle);
-#else
+
ret = _bt_get_error_code(bluetooth_gatt_add_service(svc->uuid,
- &svc->path));
-#endif
+ &svc->path));
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
return ret;
GSList *desc_l;
bt_gatt_characteristic_s *chr = char_l->data;
-#ifndef GATT_DIRECT
- /* Add Characteristic to GATT database */
- memset(¶m, 0x00, sizeof(param));
- param.permissions = chr->permissions;
- param.properties = chr->properties;
- param.service_handle = svc->handle;
- param.instance_id = instance_id;
- BT_INFO("GATT Server Add Char: UUID [%s] permission [%d] properties [%d] service handle [%d] Inst ID [%d]",
- chr->uuid, chr->permissions, chr->properties, svc->handle, instance_id);
- ret = _bt_get_error_code(bluetooth_gatt_server_add_new_characteristic(chr->uuid, ¶m, &chr->handle));
- BT_INFO("Char added handle [%d]", chr->handle);
-#else
ret = _bt_get_error_code(bluetooth_gatt_add_new_characteristic(
svc->path, chr->uuid,
(bt_gatt_permission_t)chr->permissions,
(bt_gatt_characteristic_property_t)chr->properties,
&chr->path));
-#endif
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
+ _bt_convert_error_to_string(ret), ret);
goto fail;
}
- /* Only in platform */
-#ifdef GATT_DIRECT
ret = _bt_get_error_code(bluetooth_gatt_set_characteristic_value(chr->path,
chr->value, chr->value_length));
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
+ _bt_convert_error_to_string(ret), ret);
goto fail;
}
-#endif
+
for (desc_l = chr->descriptors; desc_l; desc_l = g_slist_next(desc_l)) {
bt_gatt_descriptor_s *desc = desc_l->data;
-#ifndef GATT_DIRECT
- /* Add descriptor to GATT database */
- BT_INFO("GATT Server Add Descriptor: UUID [%s] permission [%d] service handle [%d] Inst ID [%d]",
- desc->uuid, desc->permissions, svc->handle, instance_id);
- ret = _bt_get_error_code(bluetooth_gatt_server_add_descriptor(desc->uuid, (bt_gatt_permission_t)desc->permissions,
- svc->handle, instance_id, &desc->handle));
- BT_INFO("Descriptor added handle [%d]", desc->handle);
-#else
ret = _bt_get_error_code(bluetooth_gatt_add_descriptor(
- chr->path, desc->uuid,
- (bt_gatt_permission_t)desc->permissions,
- &desc->path));
-#endif
+ chr->path, desc->uuid,
+ (bt_gatt_permission_t)desc->permissions,
+ &desc->path));
+
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
+ _bt_convert_error_to_string(ret), ret);
goto fail;
}
- /* Only in platform */
-#ifdef GATT_DIRECT
ret = _bt_get_error_code(bluetooth_gatt_set_descriptor_value(desc->path,
- desc->value, desc->value_length));
+ desc->value, desc->value_length));
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
+ _bt_convert_error_to_string(ret), ret);
goto fail;
}
-#endif
}
}
- /* Only in platform */
-#ifdef GATT_DIRECT
ret = _bt_get_error_code(bluetooth_gatt_register_service(svc->path));
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
goto fail;
}
-#endif
serv->services = g_slist_append(serv->services, svc);
- BT_INFO("@@Appending one service to the server, current service count [%d]", g_slist_length(serv->services));
svc->parent = (void *)server;
+
return ret;
fail:
- /* Only in platform */
- BT_ERR("Registering Service failed!!!!!");
-#ifdef GATT_DIRECT
bluetooth_gatt_unregister_service(svc->path);
-#endif
return ret;
}
g_slist_free_full(serv->services, __bt_gatt_free_service);
serv->services = NULL;
-#ifdef GATT_DIRECT
ret = bluetooth_gatt_unregister_application();
-#else
- ret = bluetooth_gatt_server_unregister(instance_id);
-#endif
is_gatt_server_started = false;
return ret;
int bt_gatt_server_start(void)
{
int ret = BT_ERROR_NONE;
-#ifndef GATT_DIRECT
- GSList *l;
- GSList *l1;
-#endif
+
BT_CHECK_GATT_SUPPORT();
BT_CHECK_INIT_STATUS();
BT_CHECK_GATT_SERVER_INIT_STATUS();
if (!is_gatt_server_started) {
-#ifdef GATT_DIRECT
ret = bluetooth_gatt_register_application();
-#else
- /* Kick Start all services*/
- BT_INFO("Total GATT Servers for this application [%d]", g_slist_length(gatt_server_list));
- for (l = gatt_server_list; l; l = g_slist_next(l)) {
- bt_gatt_server_s *server = (bt_gatt_server_s *)l->data;
-
- BT_INFO("Total GATT Services for this current server(server) of this App [%d]", g_slist_length(server->services));
-
- for (l1 = server->services; l1; l1 = g_slist_next(l1)) {
- bt_gatt_service_s *service = (bt_gatt_service_s *)l1->data;
- BT_DBG("Service handle [%d] Service UUID [%s]", service->handle, service->uuid);
- /* Mark the service Registered */
- ret = _bt_get_error_code(bluetooth_gatt_server_start_service(service->handle, instance_id));
- if (ret != BT_ERROR_NONE) {
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
- }
- }
- }
-
- /* No need to RegisterApplication, when last service gets started, automatically
- application will be registered */
- //ret = bluetooth_gatt_register_application();
-#endif
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
return ret;
BT_CHECK_INIT_STATUS();
if (request_type == BT_GATT_REQUEST_TYPE_READ &&
- resp_status == BT_ERROR_NONE) {
+ resp_status == BT_ATT_ERROR_NONE) {
BT_CHECK_INPUT_PARAMETER(value);
if (value_length < 0)
return BT_ERROR_INVALID_PARAMETER;
}
-#ifdef GATT_DIRECT
ret = _bt_get_error_code(bluetooth_gatt_send_response(request_id,
request_type, resp_status,
offset, value, value_length));
-#else
- bluetooth_gatt_att_data_t resp;
- bluetooth_gatt_server_response_params_t param;
-
- memset(&resp, 0x00, sizeof(resp));
- memset(¶m, 0x00, sizeof(param));
-
- /* Copy response data */
- resp.length = value_length;
- resp.offset = offset;
- memcpy(&resp.data[0], value, value_length);
-
- /* Copy Response parameters */
- param.req_type = request_type;
- param.request_id = request_id;
- param.response_status = resp_status;
- param.auth_req = 0; /* Default value set to 0 as Platform API does not provide this option */
-
- BT_INFO("GATT Server Send Response: Response type [%d]", request_type);
- BT_INFO("Req ID [%d] data_len [%d] offset [%d] Resp Status [%d]",
- request_id, value_length, offset, resp_status);
-
- ret = _bt_get_error_code(bluetooth_gatt_server_send_response(¶m, &resp));
-
- if (ret != BT_ERROR_NONE) {
- BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
- return BT_ERROR_OPERATION_FAILED;
- }
-#endif
+
if (ret != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
bluetooth_device_address_t addr_hex = { {0,} };
int ret = BT_ERROR_NONE;
-#ifndef GATT_DIRECT
- int attribute_handle;
- bluetooth_gatt_att_data_t indication;
- bluetooth_gatt_server_indication_params_t param;
- int k;
-#endif
-
BT_CHECK_GATT_SUPPORT();
BT_CHECK_INIT_STATUS();
BT_CHECK_GATT_SERVER_INIT_STATUS();
_bt_convert_address_to_hex(&addr_hex, device_address);
-#ifdef GATT_DIRECT
if (chr->value_length > 0 && chr->value) {
if (handle->role == BT_GATT_ROLE_SERVER && handle->path) {
ret = bluetooth_gatt_server_set_notification(handle->path,
- &addr_hex);
+ &addr_hex);
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
+ _bt_convert_error_to_string(ret), ret);
return ret;
}
ret = _bt_get_error_code(bluetooth_gatt_update_characteristic(
- handle->path,
- chr->value,
- chr->value_length));
+ handle->path,
+ chr->value,
+ chr->value_length));
if (ret != BT_ERROR_NONE) {
BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
+ _bt_convert_error_to_string(ret), ret);
return ret;
}
}
}
-#else
- if (handle->type == BT_GATT_TYPE_CHARACTERISTIC) {
- attribute_handle = chr->handle;
- } else {
- BT_ERR("Type is invalid(type:%d)", handle->type);
- return BT_ERROR_INVALID_PARAMETER;
- }
-
- if (!(chr->properties & BT_GATT_PROPERTY_INDICATE) &&
- !(chr->properties & BT_GATT_PROPERTY_NOTIFY)) {
- BT_ERR("Characteristic [%d] does not have either Notifcation or Indicate property enabled", attribute_handle);
- return BT_ERROR_INVALID_PARAMETER;
- }
-
- BT_INFO("GATT Server: Notify/Indicate char value changed to Remote GATT client");
- if (!device_address)
- BT_INFO("Indication to be Multicasted!");
- else
- BT_INFO("Indication to be Unicasted.. [%s]", device_address);
-
- if (chr->value_length > 0 && chr->value) {
- if (handle->role == BT_GATT_ROLE_SERVER) {
-
- /* DEBUG */
- for(k=0; k < chr->value_length; k++) {
- BT_DBG("Indication Data [%d] = [0x%x]", k, chr->value[k]);
- }
- /* Copy Indication data */
- indication.length = chr->value_length;
- indication.offset = 0; /* Default value */
- memcpy(&indication.data[0], chr->value, chr->value_length);
-
- /* Copy Indication parameters */
- param.atrribute_handle = attribute_handle;
-
- if (chr->properties & BT_GATT_PROPERTY_INDICATE) {
- BT_DBG("Characteritsic [%d]has Indicate Property", attribute_handle);
- param.need_confirmation = TRUE;
- } else {
- param.need_confirmation = FALSE;
- BT_DBG("Enable Notifcation for the characteristic [%d]",attribute_handle);
- }
- param.instance_id = instance_id;
- ret = _bt_get_error_code(bluetooth_gatt_server_send_indication(&addr_hex, ¶m, &indication));
- BT_INFO("Sent Indication to Remote GATT client: result [%d]", ret);
-
- if (ret != BT_ERROR_NONE) {
- BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
- return BT_ERROR_OPERATION_FAILED;
- }
- }
- }
-
- /* Save the Remote GATT client address to be used for notification later on */
- memcpy(&chr->address.addr, &addr_hex.addr, BLUETOOTH_ADDRESS_LENGTH);
-#endif
chr->notified_cb = callback;
chr->notified_user_data = user_data;
for (l = gatt_client_list; l; l = g_slist_next(l)) {
bt_gatt_client_s *c = (bt_gatt_client_s *)l->data;
- if (!g_ascii_strcasecmp(c->remote_address, remote_address)) {
+ if ((c == NULL) || (c->remote_address == NULL)) {
+ BT_ERR("bt_gatt_client_create Error Parameter are NULL..\n");
+ continue;
+ } else if (!g_ascii_strcasecmp(c->remote_address, remote_address)) {
BT_ERR("Gatt client for %s is already created",
remote_address);
return BT_ERROR_ALREADY_DONE;
client_s->remote_address = g_strdup(remote_address);
if (client_s->remote_address == NULL) {
- free(client_s);
+ g_free(client_s);
ret = BT_ERROR_OUT_OF_MEMORY;
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
return ret;
}
- *client = (bt_gatt_client_h)client_s;
- gatt_client_list = g_slist_append(gatt_client_list, client_s);
-
if (bt_device_is_profile_connected(remote_address, BT_PROFILE_GATT,
&connected) != BT_ERROR_NONE)
BT_ERR("bt_device_is_profile_connected is failed");
else
client_s->connected = connected;
- if (_bt_gatt_client_update_services(*client) == BT_ERROR_NONE)
- client_s->services_discovered = true;
+ ret = _bt_gatt_client_update_services(client_s);
+ if (ret != BT_ERROR_NONE) {
+ BT_INFO("_bt_gatt_client_update_services returns 0x%X. "
+ "It could be updated when service is available.", ret);
+ ret = BT_ERROR_NONE;
+ }
+
+ *client = (bt_gatt_client_h)client_s;
+ gatt_client_list = g_slist_append(gatt_client_list, client_s);
BT_INFO("GATT Client Handle is created");
return BT_ERROR_NONE;
}
-static bool __bt_gatt_client_is_in_progress(void)
+void _handle_gatt_client_read_completed_event(int result, bt_gatt_resp_data_t *resp)
{
- if (_bt_check_cb(BT_EVENT_GATT_CLIENT_WRITE_CHARACTERISTIC) ||
- _bt_check_cb(BT_EVENT_GATT_CLIENT_WRITE_DESCRIPTOR) ||
- _bt_check_cb(BT_EVENT_GATT_CLIENT_READ_CHARACTERISTIC) ||
- _bt_check_cb(BT_EVENT_GATT_CLIENT_READ_DESCRIPTOR)) {
- BT_ERR("Operation is in progress");
- return true;
+ bt_gatt_common_s *handle;
+ bt_gatt_client_request_completed_cb cb = NULL;
+ void *user_data = NULL;
+
+ if (resp == NULL) {
+ BT_ERR("GATT Client response data is NULL");
+ return;
+ }
+
+ handle = resp->user_data;
+ if (handle->type == BT_GATT_TYPE_CHARACTERISTIC) {
+ bt_gatt_characteristic_s *chr = (bt_gatt_characteristic_s *)handle;
+
+ cb = chr->read_cb;
+ user_data = chr->read_user_data;
+
+ chr->read_cb = NULL;
+ chr->read_user_data = NULL;
+
+ if (!chr->parent) {
+ BT_INFO("Already destroyed handle : %p", chr);
+ if (!chr->write_cb)
+ g_free(chr);
+ return;
+ }
+ } else if (handle->type == BT_GATT_TYPE_DESCRIPTOR) {
+ bt_gatt_descriptor_s *desc = (bt_gatt_descriptor_s *)handle;
+
+ cb = desc->read_cb;
+ user_data = desc->read_user_data;
+
+ desc->read_cb = NULL;
+ desc->read_user_data = NULL;
+
+ if (!desc->parent) {
+ BT_INFO("Already destroyed handle : %p", desc);
+ if (!desc->write_cb)
+ g_free(desc);
+ return;
+ }
+ }
+
+ if (result == BLUETOOTH_ATT_ERROR_NONE) {
+ bt_gatt_set_value(handle,
+ (char *)resp->value, (int)resp->len);
}
- return false; /* LCOV_EXCL_STOP */
+ if (cb)
+ cb(result, handle, user_data);
+
+ return;
+}
+
+void _handle_gatt_client_write_completed_event(int result, bt_gatt_resp_data_t *resp)
+{
+ bt_gatt_common_s *handle;
+ bt_gatt_client_request_completed_cb cb = NULL;
+ void *user_data = NULL;
+
+ if (resp == NULL) {
+ BT_ERR("GATT Client response data is NULL");
+ return;
+ }
+
+ handle = resp->user_data;
+ if (handle->type == BT_GATT_TYPE_CHARACTERISTIC) {
+ bt_gatt_characteristic_s *chr = (bt_gatt_characteristic_s *)handle;
+
+ cb = chr->write_cb;
+ user_data = chr->write_user_data;
+
+ chr->write_cb = NULL;
+ chr->write_user_data = NULL;
+
+ if (!chr->parent) {
+ BT_INFO("Already destroyed handle : %p", chr);
+ if (!chr->read_cb)
+ g_free(chr);
+ return;
+ }
+ } else if (handle->type == BT_GATT_TYPE_DESCRIPTOR) {
+ bt_gatt_descriptor_s *desc = (bt_gatt_descriptor_s *)handle;
+
+ cb = desc->write_cb;
+ user_data = desc->write_user_data;
+
+ desc->write_cb = NULL;
+ desc->write_user_data = NULL;
+
+ if (!desc->parent) {
+ BT_INFO("Already destroyed handle : %p", desc);
+ if (!desc->read_cb)
+ g_free(desc);
+ return;
+ }
+ }
+
+ if (cb)
+ cb(result, handle, user_data);
+
+ return; /* LCOV_EXCL_STOP */
}
int bt_gatt_client_read_value(bt_gatt_h gatt_handle,
{
int ret = BT_ERROR_NONE;
bt_gatt_common_s *c = (bt_gatt_common_s *)gatt_handle;
- bt_gatt_client_cb_data_s *cb_data;
BT_CHECK_GATT_SUPPORT();
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(gatt_handle);
BT_CHECK_INPUT_PARAMETER(callback); /* LCOV_EXCL_START */
- if (__bt_gatt_client_is_in_progress()) {
- BT_ERR("Operation is in progress");
- return BT_ERROR_NOW_IN_PROGRESS;
- }
-
- cb_data = malloc(sizeof(bt_gatt_client_cb_data_s));
- if (cb_data == NULL) {
- BT_ERR("Cannot alloc cb_data");
- return BT_ERROR_OPERATION_FAILED;
- }
-
- cb_data->gatt_handle = gatt_handle;
- cb_data->user_data = user_data;
-
if (c->type == BT_GATT_TYPE_CHARACTERISTIC) {
bt_gatt_characteristic_s *chr = (bt_gatt_characteristic_s *)gatt_handle;
+ if (chr->read_cb) {
+ BT_ERR("read request is now in progress");
+ return BT_ERROR_NOW_IN_PROGRESS;
+ }
+
ret = _bt_get_error_code(
- bluetooth_gatt_read_characteristic_value(chr->path));
- if (ret != BT_ERROR_NONE) {
- g_free(cb_data);
- BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
+ bluetooth_gatt_read_characteristic_value(chr->path, gatt_handle));
+ if (ret == BT_ERROR_NONE) {
+ chr->read_cb = callback;
+ chr->read_user_data = user_data;
} else {
- _bt_set_cb(BT_EVENT_GATT_CLIENT_READ_CHARACTERISTIC,
- callback, cb_data);
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
}
} else if (c->type == BT_GATT_TYPE_DESCRIPTOR) {
bt_gatt_descriptor_s *desc = (bt_gatt_descriptor_s *)gatt_handle;
+ if (desc->read_cb) {
+ BT_ERR("read request is now in progress");
+ return BT_ERROR_NOW_IN_PROGRESS;
+ }
+
ret = _bt_get_error_code(
- bluetooth_gatt_read_descriptor_value(desc->path));
- if (ret != BT_ERROR_NONE) {
- g_free(cb_data);
- BT_ERR("%s(0x%08x)",
- _bt_convert_error_to_string(ret), ret);
+ bluetooth_gatt_read_descriptor_value(desc->path, gatt_handle));
+ if (ret == BT_ERROR_NONE) {
+ desc->read_cb = callback;
+ desc->read_user_data = user_data;
} else {
- _bt_set_cb(BT_EVENT_GATT_CLIENT_READ_DESCRIPTOR,
- callback, cb_data);
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
}
} else {
+ ret = BT_ERROR_INVALID_PARAMETER;
BT_ERR("Invalid handle type for read ");
- g_free(cb_data);
}
return ret; /* LCOV_EXCL_STOP */
int bt_gatt_client_write_value(bt_gatt_h gatt_handle,
bt_gatt_client_request_completed_cb callback, void *user_data)
{
- int ret = BT_ERROR_NONE;
bt_gatt_common_s *c = (bt_gatt_common_s *)gatt_handle;
- bt_gatt_client_cb_data_s *cb_data;
+ bt_gatt_property_e write_prop = BT_GATT_PROPERTY_WRITE;
+ int ret = BT_ERROR_NONE;
BT_CHECK_GATT_SUPPORT();
BT_CHECK_INIT_STATUS();
- BT_CHECK_INPUT_PARAMETER(gatt_handle);
- BT_CHECK_INPUT_PARAMETER(callback); /* LCOV_EXCL_START */
-
- if (__bt_gatt_client_is_in_progress()) {
- BT_ERR("Operation is in progress");
- return BT_ERROR_NOW_IN_PROGRESS;
- }
-
- cb_data = malloc(sizeof(bt_gatt_client_cb_data_s));
- if (cb_data == NULL) {
- BT_ERR("Cannot alloc cb_data");
- return BT_ERROR_OPERATION_FAILED;
- }
-
- cb_data->gatt_handle = gatt_handle;
- cb_data->user_data = user_data;
+ BT_CHECK_INPUT_PARAMETER(gatt_handle); /* LCOV_EXCL_START */
if (c->type == BT_GATT_TYPE_CHARACTERISTIC) {
bt_gatt_characteristic_s *chr = (bt_gatt_characteristic_s *)gatt_handle;
- BT_DBG("path : %s", chr->path);
- if (chr->write_type == BT_GATT_WRITE_TYPE_WRITE)
- ret = _bt_get_error_code(bluetooth_gatt_set_characteristics_value_by_type(
- chr->path, (guint8 *)chr->value,
- chr->value_length,
- BT_GATT_PROPERTY_WRITE));
- else if (chr->write_type == BT_GATT_WRITE_TYPE_WRITE_NO_RESPONSE)
- ret = _bt_get_error_code(bluetooth_gatt_set_characteristics_value_by_type(
- chr->path, (guint8 *)chr->value,
- chr->value_length,
- BT_GATT_PROPERTY_WRITE_WITHOUT_RESPONSE));
-/* After ACR for BT_GATT_WRITE_TYPE_SIGNED_WRITE, will enable this code */
-#if 0
-
- else if (chr->write_type == BT_GATT_WRITE_TYPE_SIGNED_WRITE)
- ret = _bt_get_error_code(bluetooth_gatt_set_characteristics_value_by_type(
- chr->path, (guint8 *)chr->value, chr->value_length,
- BT_GATT_PROPERTY_AUTHENTICATED_SIGNED_WRITES));
-#endif
- else {
- BT_ERR("Unknow write type : %d", chr->write_type);
- BT_ERR("path : %s", chr->path);
- ret = BT_ERROR_OPERATION_FAILED;
+ if (chr->write_cb) {
+ BT_ERR("write request is now in progress");
+ return BT_ERROR_NOW_IN_PROGRESS;
}
- if (ret != BT_ERROR_NONE) {
- g_free(cb_data);
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ ret = __get_write_prop(chr->write_type, &write_prop);
+ if (ret != BT_ERROR_NONE)
+ return BT_ERROR_OPERATION_FAILED;
+
+ ret = _bt_get_error_code(bluetooth_gatt_set_characteristics_value_by_type(
+ chr->path, (guint8 *)chr->value,
+ chr->value_length, write_prop,
+ gatt_handle));
+ if (ret == BT_ERROR_NONE) {
+ chr->write_cb = callback;
+ chr->write_user_data = user_data;
} else {
- _bt_set_cb(BT_EVENT_GATT_CLIENT_WRITE_CHARACTERISTIC, callback, cb_data);
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
}
} else if (c->type == BT_GATT_TYPE_DESCRIPTOR) {
bt_gatt_descriptor_s *desc = (bt_gatt_descriptor_s *)gatt_handle;
+ if (desc->write_cb) {
+ BT_ERR("write request is now in progress");
+ return BT_ERROR_NOW_IN_PROGRESS;
+ }
+
ret = _bt_get_error_code(bluetooth_gatt_write_descriptor_value(
- desc->path,
- (guint8 *)desc->value,
- desc->value_length));
- if (ret != BT_ERROR_NONE) {
- g_free(cb_data);
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+ desc->path, (guint8 *)desc->value,
+ desc->value_length, gatt_handle));
+ if (ret == BT_ERROR_NONE) {
+ desc->write_cb = callback;
+ desc->write_user_data = user_data;
} else {
- _bt_set_cb(BT_EVENT_GATT_CLIENT_WRITE_DESCRIPTOR, callback, cb_data);
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
}
} else {
- BT_ERR("Invalid handle type for write ");
- g_free(cb_data);
+ BT_ERR("Invalid handle type for write");
+ ret = BT_ERROR_INVALID_PARAMETER;
}
return ret;
}
addr[i] = '\0';
- BT_DBG("path : %s, addr : %s", path, addr);
-
return TRUE;
}
bt_gatt_characteristic_s *chr;
char remote_address[BT_ADDR_STR_LEN + 1] = { 0, };
- BT_DBG("%s", char_path);
-
if (__get_bdaddr_from_path(char_path, remote_address) == FALSE) {
BT_ERR("Cannot get addr from path : %s", char_path);
return;
svc = (bt_gatt_service_s *)l->data;
for (ll = svc->characteristics; ll; ll = g_slist_next(ll)) {
chr = (bt_gatt_characteristic_s *)ll->data;
- if (g_ascii_strcasecmp(chr->path, char_path) == 0) {
+
+ if ((chr == NULL) || (chr->path == NULL)) {
+ BT_ERR("__value_changed_cb Error Parameter are NULL..\n");
+ continue;
+ } else if (g_ascii_strcasecmp(chr->path, char_path) == 0) {
if (chr->value_changed_cb)
chr->value_changed_cb(chr, value,
value_length,
void *user_data)
{
int ret;
+ char *name = NULL;
bt_gatt_characteristic_s *chr = (bt_gatt_characteristic_s *)characteristic;
BT_CHECK_GATT_SUPPORT();
BT_CHECK_INPUT_PARAMETER(characteristic);
BT_CHECK_INPUT_PARAMETER(callback);
+ bt_gatt_service_s *svc = (bt_gatt_service_s *)chr->parent;
+
chr->value_changed_cb = callback;
chr->value_changed_user_data = user_data;
if (chr->properties &
(BT_GATT_PROPERTY_NOTIFY | BT_GATT_PROPERTY_INDICATE)) {
+ bt_get_uuid_name(svc->uuid, &name);
ret = _bt_get_error_code(bluetooth_gatt_watch_characteristics(
- chr->path));
+ chr->path, name));
+ g_free(name);
if (ret != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)",
_bt_convert_error_to_string(ret), ret);
return BT_ERROR_NONE;
}
+
+int bt_gatt_client_request_att_mtu_change(bt_gatt_client_h client, unsigned int mtu)
+{
+ int ret;
+ bluetooth_device_address_t addr_hex = { {0,} };
+ bt_gatt_client_s *client_s = (bt_gatt_client_s *)client;
+
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(client);
+
+ _bt_convert_address_to_hex(&addr_hex, client_s->remote_address);
+
+ ret = _bt_get_error_code(bluetooth_request_att_mtu(&addr_hex, mtu));
+ if (BT_ERROR_NONE != ret)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ return ret;
+}
+
+int bt_gatt_client_get_att_mtu(bt_gatt_client_h client, unsigned int *mtu)
+{
+ bluetooth_device_address_t addr_hex = { {0,} };
+ int ret;
+ unsigned int mtu_value = 0;
+ bt_gatt_client_s *client_s = (bt_gatt_client_s *)client;
+
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(client);
+
+ _bt_convert_address_to_hex(&addr_hex, client_s->remote_address);
+
+ ret = _bt_get_error_code(bluetooth_get_att_mtu(&addr_hex, &mtu_value));
+
+ if (ret != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+ return ret;
+ }
+
+ *mtu = mtu_value;
+
+ return ret;
+
+}
+
+int bt_gatt_client_set_att_mtu_changed_cb(bt_gatt_client_h client, bt_gatt_client_att_mtu_changed_cb callback, void *user_data)
+{
+ bt_gatt_client_s *client_s = (bt_gatt_client_s *)client;
+
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(callback);
+ BT_CHECK_INPUT_PARAMETER(client);
+
+ if (client_s->att_mtu_changed_cb) {
+ BT_INFO("Already registered");
+ client_s->att_mtu_changed_cb = callback;
+ client_s->att_mtu_changed_user_data = user_data;
+ return BT_ERROR_NONE;
+ }
+
+ BT_INFO("MTU Changed callback registered");
+ client_s->att_mtu_changed_cb = callback;
+ client_s->att_mtu_changed_user_data = user_data;
+
+ return BT_ERROR_NONE;
+}
+
+int bt_gatt_client_unset_att_mtu_changed_cb(bt_gatt_client_h client)
+{
+ bt_gatt_client_s *client_s = (bt_gatt_client_s *)client;
+
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(client);
+
+ BT_INFO("MTU Changed callback unregistered [%s]", client_s->remote_address);
+ client_s->service_changed_cb = NULL;
+ client_s->service_changed_user_data = NULL;
+
+ return BT_ERROR_NONE;
+}
static bool is_hid_host_initialized = false;
+#define HID_MOUSE_REPORT_ID 1
+#define HID_KEY_REPORT_ID 2
+
#define BT_CHECK_HID_HOST_SUPPORT() \
{ \
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON); \
const bt_hid_mouse_data_s *mouse_data)
{
int ret;
+ hid_send_mouse_event_t mouse_event = {0, };
+
BT_CHECK_HID_DEVICE_SUPPORT();
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(remote_address);
BT_CHECK_INPUT_PARAMETER(mouse_data);
- if (mouse_data->buttons != BT_HID_MOUSE_BUTTON_LEFT ||
- mouse_data->buttons != BT_HID_MOUSE_BUTTON_RIGHT ||
- mouse_data->buttons != BT_HID_MOUSE_BUTTON_MIDDLE) {
+ if ((mouse_data->buttons < BT_HID_MOUSE_BUTTON_NONE) ||
+ (mouse_data->buttons > (BT_HID_MOUSE_BUTTON_LEFT |
+ BT_HID_MOUSE_BUTTON_RIGHT | BT_HID_MOUSE_BUTTON_MIDDLE))) {
return BT_ERROR_INVALID_PARAMETER;
}
return -1;
}
+ mouse_event.btcode = 0xA1;
+ mouse_event.rep_id = HID_MOUSE_REPORT_ID;
+
+ mouse_event.button = (unsigned char)mouse_data->buttons;
+ mouse_event.axis_x = (signed char)mouse_data->axis_x;
+ mouse_event.axis_y = (signed char)mouse_data->axis_y;
+ mouse_event.axis_z = (signed char)mouse_data->padding;
+
ret = bluetooth_hid_device_send_mouse_event(remote_address,
- *(hid_send_mouse_event_t *)mouse_data);
+ mouse_event);
if (ret <= 0) {
if (ret == -1) {
/* write fail case */
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(remote_address);
BT_CHECK_INPUT_PARAMETER(key_data);
- hid_send_key_event_t send_event;
+ hid_send_key_event_t send_event = {0};
+ send_event.btcode = 0xA1;
+ send_event.rep_id = HID_KEY_REPORT_ID;
send_event.modify = key_data->modifier;
memcpy(send_event.key, key_data->key, sizeof(send_event.key));
static bool is_ipsp_initialized = false;
-#ifdef TIZEN_FEATURE_IPSP_SUPPORT
-#define BT_CHECK_IPSP_SUPPORT()
-#else
#define BT_CHECK_IPSP_SUPPORT() \
- { \
- LOGE("[%s] NOT_SUPPORTED(0x%08x)", __FUNCTION__, BT_ERROR_NOT_SUPPORTED); \
- return BT_ERROR_NOT_SUPPORTED; \
- }
-#endif
+{ \
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON); \
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_IPSP); \
+}
#define BT_CHECK_IPSP_INIT_STATUS() \
if (__bt_check_ipsp_init_status() == BT_ERROR_NOT_INITIALIZED) { \
--- /dev/null
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <glib.h>
+#include <dlog.h>
+#include <stdio.h>
+#include <stdbool.h>
+#include <string.h>
+#include <bluetooth-api.h>
+
+#include "bluetooth.h"
+#include "bluetooth_private.h"
+
+static bool is_map_client_initialized = false;
+
+#define BT_CHECK_MAP_CLIENT_SUPPORT() \
+{ \
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON); \
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_MAP); \
+}
+
+#define BT_CHECK_MAP_CLIENT_INIT_STATUS() \
+ if (__bt_check_map_client_init_status() == BT_ERROR_NOT_INITIALIZED) { \
+ BT_ERR("[%s] NOT_INITIALIZED(0x%08x)", __FUNCTION__, BT_ERROR_NOT_INITIALIZED); \
+ return BT_ERROR_NOT_INITIALIZED; \
+ }
+/* LCOV_EXCL_START */
+int __bt_check_map_client_init_status(void)
+{
+ if (is_map_client_initialized != true) {
+ BT_ERR("NOT_INITIALIZED(0x%08x)", BT_ERROR_NOT_INITIALIZED);
+ return BT_ERROR_NOT_INITIALIZED;
+ }
+
+ return BT_ERROR_NONE;
+}
+
+int bt_map_client_initialize(void)
+{
+ BT_DBG("bt_map_client_initialize");
+
+ int error_code = BT_ERROR_NONE;
+
+ // TODO: MAP: it is not supported on TM1
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+
+ error_code = _bt_get_error_code(bluetooth_map_client_init());
+
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), /* LCOV_EXCL_LINE */
+ error_code); /* LCOV_EXCL_LINE */
+ return error_code; /* LCOV_EXCL_LINE */
+ }
+
+ is_map_client_initialized = true;
+ return error_code;
+}
+
+int bt_map_client_deinitialize(void)
+{
+ BT_DBG("bt_map_client_deinitialize");
+
+ int error_code = BT_ERROR_NONE;
+
+ // TODO: MAP: it is not supported on TM1
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_MAP_CLIENT_INIT_STATUS();
+
+ error_code = _bt_get_error_code(bluetooth_map_client_deinit());
+
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), /* LCOV_EXCL_LINE */
+ error_code); /* LCOV_EXCL_LINE */
+ return error_code; /* LCOV_EXCL_LINE */
+ }
+
+ is_map_client_initialized = false;
+ return error_code;
+}
+
+int bt_map_client_create_session(const char* remote_address,
+ bt_map_client_session_info_h* handle)
+{
+ BT_DBG("bt_map_client_create_session");
+ int error_code = BT_ERROR_NONE;
+
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_MAP_CLIENT_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(remote_address);
+
+ bt_map_client_session_info_s* session =
+ g_malloc0(sizeof(bt_map_client_session_info_s));
+ session->remote_address = strdup(remote_address);
+
+ error_code = _bt_get_error_code(bluetooth_map_client_create_session(session));
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ free(session->remote_address);
+ g_free(session);
+ } else {
+ BT_DBG("Successfully created session");
+ *handle = session;
+ }
+ return error_code;
+
+}
+
+int bt_map_client_destroy_session(bt_map_client_session_info_h handle)
+{
+ BT_DBG("bt_map_client_destroy_session");
+ int error_code = BT_ERROR_NONE;
+
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_MAP_CLIENT_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(handle);
+
+ bt_map_client_session_info_s* session = (bt_map_client_session_info_s*)handle;
+
+ error_code = _bt_get_error_code(bluetooth_map_client_destroy_session(session));
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ } else {
+ BT_DBG("Successfully destroyed session");
+ }
+ return error_code;
+}
+
+int bt_map_client_set_folder(bt_map_client_session_info_h handle, const char *name)
+{
+ int error_code = BT_ERROR_NONE;
+
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_MAP_CLIENT_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(handle);
+ BT_CHECK_INPUT_PARAMETER(name);
+
+ bt_map_client_session_info_s* session = (bt_map_client_session_info_s*)handle;
+
+ error_code = _bt_get_error_code(bluetooth_map_client_set_folder(session, name));
+
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ }
+ return error_code;
+}
+
+int bt_map_client_list_folders(bt_map_client_session_info_h handle,
+ bt_map_client_list_folders_filter_h filter,
+ bt_map_client_list_folders_cb callback,
+ void* user_data)
+{
+ BT_DBG("bt_map_client_list_folders");
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_MAP_CLIENT_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(handle);
+ BT_CHECK_INPUT_PARAMETER(filter);
+ BT_CHECK_INPUT_PARAMETER_UINT(filter->offset);
+ BT_CHECK_INPUT_PARAMETER_UINT(filter->max_count);
+
+ bt_map_client_session_info_s* session = (bt_map_client_session_info_s*) handle;
+
+ int error_code = _bt_get_error_code(
+ bluetooth_map_client_list_folders(
+ session,
+ (bt_map_client_list_folders_filter_t*) filter
+ )
+ );
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("bt_map_client_list_folders %s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ } else {
+ _bt_set_cb(BT_EVENT_MAP_CLIENT_LIST_FOLDERS, callback, user_data);
+ }
+
+ return error_code; /* LCOV_EXCL_STOP */
+}
+
+int bt_map_client_list_filter_fields(bt_map_client_session_info_h handle,
+ bt_map_client_list_filter_fields_cb callback,
+ void *user_data)
+{
+ int error_code = BT_ERROR_NONE;
+
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_MAP_CLIENT_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(handle);
+
+ bt_map_client_session_info_s* session = (bt_map_client_session_info_s*) handle;
+
+ error_code = _bt_get_error_code(bluetooth_map_client_list_filter_fields(session));
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ } else {
+ _bt_set_cb(BT_EVENT_MAP_CLIENT_LIST_FILTER_FIELDS, callback, user_data);
+ }
+
+ return error_code;
+}
+
+int bt_map_client_list_messages(bt_map_client_session_info_h handle,
+ const char* folder,
+ bt_map_client_list_messages_filter_h filter,
+ bt_map_client_list_messages_cb callback,
+ void *user_data)
+{
+ BT_DBG("bt_map_client_list_messages");
+
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_MAP_CLIENT_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(handle);
+ BT_CHECK_INPUT_PARAMETER(filter);
+ BT_CHECK_INPUT_PARAMETER_UINT(filter->offset);
+ BT_CHECK_INPUT_PARAMETER_UINT(filter->max_count);
+ BT_CHECK_INPUT_PARAMETER_UINT(filter->subject_length);
+ BT_CHECK_INPUT_PARAMETER_BOOL(filter->is_read);
+ BT_CHECK_INPUT_PARAMETER_BOOL(filter->is_priority);
+
+ bt_map_client_session_info_s* session = (bt_map_client_session_info_s*) handle;
+
+ int error_code = _bt_get_error_code(
+ bluetooth_map_client_list_messages(
+ session,
+ folder,
+ (bt_map_client_list_messages_filter_t*) filter
+ )
+ );
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("bluetooth_map_client_list_messages %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ } else {
+ _bt_set_cb(BT_EVENT_MAP_CLIENT_LIST_MESSAGES, callback, user_data);
+ }
+
+ return error_code;
+}
+
+int bt_map_client_update_inbox(bt_map_client_session_info_h handle)
+{
+ int error_code = BT_ERROR_NONE;
+
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_MAP_CLIENT_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(handle);
+
+ bt_map_client_session_info_s* session = (bt_map_client_session_info_s*)handle;
+
+ error_code = _bt_get_error_code(bluetooth_map_client_update_inbox(session));
+
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ }
+ return error_code;
+}
+
+int bt_map_client_push_message(bt_map_client_session_info_h handle,
+ const char* source_file,
+ const char* folder,
+ bt_map_client_push_message_args_h args,
+ bt_map_client_push_message_cb callback,
+ void *user_data)
+{
+ BT_DBG("Entered bt_map_client_get_message");
+
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_MAP_CLIENT_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(handle);
+ BT_CHECK_INPUT_PARAMETER(source_file);
+ BT_CHECK_INPUT_PARAMETER(folder);
+ BT_CHECK_INPUT_PARAMETER(args);
+
+ bt_map_client_session_info_s* session = (bt_map_client_session_info_s*)handle;
+
+ int error_code = _bt_get_error_code(
+ bluetooth_map_client_push_message(
+ session,
+ source_file,
+ folder,
+ (bt_map_client_push_message_args_t*) args
+ )
+ );
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("bluetooth_map_client_push_message %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ } else {
+ _bt_set_cb(BT_EVENT_MAP_CLIENT_PUSH_MESSAGE, callback, user_data);
+ }
+
+ return error_code;
+}
+
+int bt_map_client_get_message(bt_map_client_session_info_h handle,
+ const bt_map_client_message_object_h message_object,
+ const char* target_file,
+ bool attachment,
+ bt_map_client_get_message_cb callback,
+ void* user_data)
+{
+ BT_DBG("Entered bt_map_client_get_message");
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_MAP_CLIENT_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(handle);
+ BT_CHECK_INPUT_PARAMETER(message_object);
+ BT_CHECK_INPUT_PARAMETER(target_file);
+
+ bt_map_client_session_info_s* session = (bt_map_client_session_info_s*) handle;
+
+ bt_get_message_callback_data *data = g_malloc(sizeof(*data));
+ data->target_file = target_file;
+ data->user_data = user_data;
+
+ int error_code = _bt_get_error_code(bluetooth_map_client_get_message(session,
+ message_object, target_file, attachment));
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("bt_map_client_get_message %s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ } else {
+ _bt_set_cb(BT_EVENT_MAP_CLIENT_GET_MESSAGE, callback, data);
+ }
+
+ return error_code; /* LCOV_EXCL_STOP */
+}
+
+void bt_map_client_list_folders_filter_create(bt_map_client_list_folders_filter_h *filter)
+{
+ (*filter) = g_malloc(sizeof(bt_map_client_list_folders_filter_s));
+ (*filter)->offset = -1;
+ (*filter)->max_count = -1;
+}
+
+void bt_map_client_list_folders_filter_destroy(bt_map_client_list_folders_filter_h *filter)
+{
+ g_free(*filter);
+ *filter = NULL;
+}
+
+void bt_map_client_list_messages_filter_create(bt_map_client_list_messages_filter_h *filter)
+{
+ (*filter) = g_malloc(sizeof(bt_map_client_list_messages_filter_s));
+ (*filter)->offset = -1;
+ (*filter)->max_count = -1;
+ (*filter)->subject_length = -1;
+ (*filter)->fields = NULL;
+ (*filter)->types = NULL;
+ (*filter)->period_begin = NULL;
+ (*filter)->period_end = NULL;
+ (*filter)->is_read = -1;
+ (*filter)->recipient = NULL;
+ (*filter)->sender = NULL;
+ (*filter)->is_priority = -1;
+}
+
+void bt_map_client_list_messages_filter_destroy(bt_map_client_list_messages_filter_h *filter)
+{
+ g_free(*filter);
+ *filter = NULL;
+}
+
+void bt_map_client_push_message_args_create(bt_map_client_push_message_args_h *args)
+{
+ (*args) = g_malloc(sizeof(bt_map_client_push_message_args_s));
+ (*args)->is_transparent = -1;
+ (*args)->is_retry = -1;
+ (*args)->charset = NULL;
+}
+
+void bt_map_client_push_message_args_destroy(bt_map_client_push_message_args_h *args)
+{
+ g_free(*args);
+ *args = NULL;
+}
+/* LCOV_EXCL_STOP */
--- /dev/null
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <glib.h>
+#include <dlog.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdbool.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <arpa/inet.h>
+#include <bluetooth-api.h>
+
+#include "bluetooth.h"
+#include "bluetooth_internal.h"
+#include "bluetooth_private.h"
+
+#ifdef TIZEN_FEATURE_OTP_SUPPORT
+#define BT_CHECK_OTP_SUPPORT()
+#else
+#define BT_CHECK_OTP_SUPPORT() \
+ { \
+ LOGE("[%s] NOT_SUPPORTED(0x%08x)", __FUNCTION__, BT_ERROR_NOT_SUPPORTED); \
+ return BT_ERROR_NOT_SUPPORTED; \
+ }
+#endif
+
+#define BT_CHECK_LE_SUPPORT() \
+{ \
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON); \
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_LE); \
+}
+
+#define BT_CHECK_OTP_SERVER_INIT_STATUS() \
+ if (__bt_check_otp_server_init_status() == BT_ERROR_NOT_INITIALIZED) { \
+ LOGE("[%s] NOT_INITIALIZED(0x%08x)", __FUNCTION__, \
+ BT_ERROR_NOT_INITIALIZED); \
+ return BT_ERROR_NOT_INITIALIZED; \
+ }
+
+#define BT_OTP_SERVICE_UUID "00001825-0000-1000-8000-00805f9b34fb"
+#define BT_OTP_FEATURE_UUID "00002abd-0000-1000-8000-00805f9b34fb"
+#define BT_OTP_OACP_CONTROL_POINT_UUID "00002ac5-0000-1000-8000-00805f9b34fb"
+#define BT_OTP_OLCP_CONTROL_POINT_UUID "00002ac6-0000-1000-8000-00805f9b34fb"
+#define BT_OTP_OBJECT_NAME_UUID "00002abe-0000-1000-8000-00805f9b34fb"
+#define BT_OTP_OBJECT_TYPE_UUID "00002abf-0000-1000-8000-00805f9b34fb"
+#define BT_OTP_OBJECT_SIZE_UUID "00002ac0-0000-1000-8000-00805f9b34fb"
+#define BT_OTP_OBJECT_FIRST_CREATED_UUID "00002ac1-0000-1000-8000-00805f9b34fb"
+#define BT_OTP_OBJECT_LAST_MODIFIED_UUID "00002ac2-0000-1000-8000-00805f9b34fb"
+#define BT_OTP_OBJECT_ID_UUID "00002ac3-0000-1000-8000-00805f9b34fb"
+#define BT_OTP_OBJECT_PROP_UUID "00002ac4-0000-1000-8000-00805f9b34fb"
+#define BT_OTP_OBJECT_LIST_FILTER_UUID "00002ac7-0000-1000-8000-00805f9b34fb"
+#define BT_OTP_OBJECT_CHANGED_UUID "00002ac8-0000-1000-8000-00805f9b34fb"
+
+/* OLCP opcodes */
+#define OLCP_FIRST 0x01
+#define OLCP_LAST 0x02
+#define OLCP_PREVIOUS 0x03
+#define OLCP_NEXT 0x04
+#define OLCP_GOTO 0x05
+#define OLCP_ORDER 0x06
+#define OLCP_REQ_NO_OBJ 0x07
+#define OLCP_CLEAR_MARKING 0x08
+#define OLCP_RESPONSE 0x70
+
+/* OLCP error opcodes */
+#define OLCP_SUCCESS 0x01
+#define OLCP_OPCODE_NOT_SUPPORTED 0x02
+#define OLCP_INVALID_PARAM 0x03
+#define OLCP_OPERATION_FAILED 0x04
+#define OLCP_OUT_OF_BOUNDS 0x05
+#define OLCP_TOO_MANY_OBJ 0x06
+#define OLCP_NO_OBJ 0x07
+#define OLCP_OJECT_ID_NOT_FOUND 0x08
+
+/* OACP opcodes */
+#define OACP_CREATE 0x01
+#define OACP_DELETE 0x02
+#define OACP_CALC_CHECKSUM 0x03
+#define OACP_EXECUTE 0x04
+#define OACP_READ 0x05
+#define OACP_WRITE 0x06
+#define OACP_ABORT 0x07
+#define OACP_RESPONSE 0x60
+
+/* OACP error codes */
+#define OACP_SUCCESS 0x01
+#define OACP_OPCODE_NOT_SUPPORTED 0x02
+#define OACP_INVALID_PARAM 0x03
+#define OACP_INSUFFICIENT_RESOURCES 0x04
+#define OACP_INVALID_OBJ 0x05
+#define OACP_CHANNEL_UNAVAILABLE 0x06
+#define OACP_UNSUPPORTED_TYPE 0x07
+#define OACP_PROCEDURE_NOT_SUPPORTED 0x08
+#define OACP_OBJECT_LOCKED 0x09
+#define OACP_OPERATION_FAILED 0x0A
+
+/* Object Properties */
+#define OBJECT_DELETE 0x00000001
+#define OBJECT_EXECUTE 0x00000002
+#define OBJECT_READ 0x00000004
+#define OBJECT_WRITE 0x00000008
+#define OBJECT_APPEND 0x00000010
+#define OBJECT_TRUNCATE 0x00000020
+#define OBJECT_PATCH 0x00000040
+#define OBJECT_MARK 0x00000080
+
+#define BT_OTP_CLIENT_BASE_DIR "/home/owner/media/otp-client/"
+#define BT_FILE_PATH_MAX_LEN 262
+#define BT_OTP_FEATURE_LENGTH 8
+#define BT_ADDR_LENGTH 18
+
+#define BT_OTC_CONNECTION_MAX_TIMEOUT 10000 /* Timeout for OTC Connection in msec */
+
+#define BT_L2CAP_BUFFER_LEN 672
+
+#define BT_OTP_IS_OACP_SUPPORTED(feature) feature & 0xffffffff00000000
+#define BT_OTP_IS_OLCP_SUPPORTED(feature) feature & 0x00000000ffffffff
+#define BT_OTP_IS_OACP_READ_SUPPORTED(feature) feature & 0x1000000000000000
+#define BT_OTP_IS_OACP_CREATE_SUPPORTED(feature) feature & 0x0100000000000000
+#define BT_OTP_IS_OACP_WRITE_SUPPORTED(feature) feature & 0x2000000000000000
+#define BT_OTP_IS_OACP_EXECUTE_SUPPORTED(feature) feature & 0x0800000000000000
+#define BT_OTP_IS_OACP_DELETE_SUPPORTED(feature) feature & 0x0200000000000000
+#define BT_OTP_IS_OLCP_GOTO_SUPPORTED(feature) feature & 0x0000000001000000
+
+#define BT_OTP_IS_READ_PERMITTED(props) props & OBJECT_READ
+#define BT_OTP_IS_WRITE_PERMITTED(props) props & OBJECT_WRITE
+#define BT_OTP_IS_EXECUTE_PERMITTED(props) props & OBJECT_EXECUTE
+#define BT_OTP_IS_DELETE_PERMITTED(props) props & OBJECT_DELETE
+
+#define BT_OTP_OBJ_CHANGED_SRC(flag) (flag & 0x01)
+#define BT_OTP_OBJ_CHANGED_CONTENT(flag) ((flag & 0x02) >> 1)
+#define BT_OTP_OBJ_CHANGED_META(flag) ((flag & 0x04) >> 2)
+#define BT_OTP_OBJ_CHANGED_CREATE(flag) ((flag & 0x08) >> 3)
+#define BT_OTP_OBJ_CHANGED_DELETE(flag) ((flag & 0x10) >> 4)
+
+/* OTP Object Type Custom UUIDs */
+/* In SIG Assigned numbers not available */
+#define UNSUPPORTED_OBJECT_TYPE_UUID "7fb0"
+#define FIRMWARE_UUID "7fb1"
+#define ROUTE_GPX_UUID "7fb2"
+#define TRACK_GPX_UUID "7fb3"
+
+typedef enum {
+ BT_OTP_NO_OPERATION = 0,
+ BT_OTP_OBJECT_DISCOVERY,
+ BT_OTP_OBJECT_READ,
+ BT_OTP_OBJECT_SELECT,
+ BT_OTP_OBJECT_CREATE,
+ BT_OTP_OBJECT_WRITE,
+ BT_OTP_OBJECT_EXECUTE,
+ BT_OTP_OBJECT_DELETE,
+} bt_otp_api_info_e;
+
+typedef struct {
+ char *name;
+ char *type;
+ uint32_t curr_size;
+ uint32_t alloc_size;
+ time_t first_created;
+ time_t last_modified;
+ uint64_t id;
+ uint32_t props;
+} object_metadata;
+
+typedef struct {
+ char *remote_address;
+ bool connected;
+
+ const void *connection_callback;
+ void *conn_cb_user_data;
+
+ char *otp_service_handle; /* OTP Service Handle */
+ char *otp_feature_obj_path; /* OTP feature characteristic handle */
+ uint64_t otp_feature; /* OTP feature value */
+ char *otp_oacp_control_point; /* OTP OACP Control Point characteristic handle */
+ char *otp_oacp_cccd; /* OTP OACP Control Point CCCD handle */
+ char *otp_olcp_control_point; /* OTP OLCP Control Point characteristic handle */
+ char *otp_olcp_cccd; /* OTP OLCP Control Point CCCD handle */
+
+ /* Object Metadata paths */
+ char *otp_name_obj_path; /* OTP Object Name characteristic handle */
+ char *otp_type_obj_path; /* OTP Object Type characteristic handle */
+ char *otp_size_obj_path; /* OTP Object Size characteristic handle */
+ char *otp_first_created_obj_path; /* OTP Object Frist Created characteristic handle */
+ char *otp_last_modified_obj_path; /* OTP Object Last Modified characteristic handle */
+ char *otp_id_obj_path; /* OTP Object ID characteristic handle */
+ char *otp_props_obj_path; /* OTP Object Properties characteristic handle */
+
+ char *otp_list_filter_obj_path; /* OTP Object List Filter handle */
+ char *otp_obj_changed_obj_path; /* OTP Object Changed handle */
+ char *otp_obj_changed_cccd; /* OTP Object Changed CCCD handle */
+
+ bool oacp_cccd_enabled; /* OTP OACP Control Point CCCD is enabled or not */
+ bool olcp_cccd_enabled; /* OTP OLCP Control Point CCCD is enabled or not */
+ bool obj_changed_cccd_enabed; /* OTP Object Changed CCCD is enabled or not */
+ bool multiple_obj_supp; /* Indicates whether remote server supports
+ * multiple-objects or not
+ */
+ GSList *object_list; /* List of server objects */
+ uint64_t object_id; /* ID of current object */
+
+ /* Ongoing API Information */
+ bt_otp_api_info_e curr_op;
+ const void *callback;
+ void *user_data;
+} bt_otp_client_s;
+
+typedef struct {
+ uint32_t offset;
+ uint32_t length;
+ uint32_t size;
+ char *file_path;
+ FILE *fp;
+} bt_otp_client_read_op;
+
+typedef struct {
+ char *filename;
+ char *type_uuid;
+ time_t first_created;
+ uint32_t size;
+} bt_otp_client_create_op;
+
+typedef struct {
+ char *file_path;
+ time_t last_modified;
+ uint32_t size;
+ uint32_t offset;
+ uint32_t length;
+ uint8_t mode;
+ FILE *fp;
+} bt_otp_client_write_op;
+
+static bool is_otp_server_initialized = false;
+bt_otp_client_create_op *oacp_create_op = NULL;
+bt_otp_client_read_op *oacp_read_op = NULL;
+bt_otp_client_write_op *oacp_write_op = NULL;
+bool otc_connection_status = FALSE;
+bt_otp_object_list_s *obj_list;
+uint64_t select_obj_id = 0;
+object_metadata *metadata;
+GSList *otp_client_list;
+unsigned int timeout_id;
+guint id;
+
+object_metadata *_bt_otp_client_find_object(GSList *list, uint64_t id);
+static void _bt_otp_client_notify_read_object_status(int result,
+ char *file_path, bt_otp_client_s *otp_client_s);
+void __bt_otp_reset_api_info(bt_otp_client_s *otp_client_s);
+static void _bt_otp_client_send_select_object_callback(int result,
+ bt_otp_client_s *otp_client_s);
+static void _bt_otp_client_send_create_object_callback(int result,
+ uint64_t id, bt_otp_client_s *otp_client_s);
+static void _bt_otp_client_send_write_object_callback(int result,
+ unsigned int length, bt_otp_client_s *otp_client_s);
+static void _bt_otp_client_send_execute_object_callback(int result,
+ bt_otp_client_s *otp_client_s);
+static void _bt_otp_client_send_delete_object_callback(int result,
+ bt_otp_client_s *otp_client_s);
+static void _bt_otp_send_callback(int result, char *file_path, uint64_t id,
+ unsigned int length, bt_otp_client_s *otp_client_s);
+
+int __bt_check_otp_server_init_status(void)
+{
+ if (is_otp_server_initialized != true) {
+ BT_ERR("NOT_INITIALIZED(0x%08x)", BT_ERROR_NOT_INITIALIZED);
+ return BT_ERROR_NOT_INITIALIZED;
+ }
+
+ return BT_ERROR_NONE;
+}
+
+/* LCOV_EXCL_START */
+int bt_otp_server_initialize(const char *directory)
+{
+ int error_code = BT_ERROR_NONE;
+
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+
+ error_code = _bt_get_error_code(bluetooth_otp_server_init(directory));
+
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ return error_code;
+ }
+
+ is_otp_server_initialized = true;
+ return BT_ERROR_NONE;
+}
+
+int bt_otp_server_deinitialize()
+{
+ int error_code = BT_ERROR_NONE;
+
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_OTP_SERVER_INIT_STATUS();
+
+ error_code = _bt_get_error_code(bluetooth_otp_server_deinit());
+
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), /* LCOV_EXCL_LINE */
+ error_code);
+ return error_code; /* LCOV_EXCL_LINE */
+ }
+
+ is_otp_server_initialized = false;
+ return BT_ERROR_NONE;
+}
+
+int bt_otp_set_server_state_changed_cb(bt_otp_server_state_changed_cb callback, void *user_data)
+{
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(callback);
+ _bt_set_cb(BT_EVENT_OTP_SERVER_STATE_CHANGED, callback, user_data);
+ return BT_ERROR_NONE;
+
+}
+int bt_otp_unset_server_state_changed_cb(void)
+{
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ if (_bt_check_cb(BT_EVENT_OTP_SERVER_STATE_CHANGED) == true)
+ _bt_unset_cb(BT_EVENT_OTP_SERVER_STATE_CHANGED);
+ return BT_ERROR_NONE;
+}
+
+static bt_otp_client_s *_bt_otp_client_find(const char *remote_address)
+{
+ GSList *l;
+ bt_otp_client_s *info;
+
+ for (l = otp_client_list; l; l = g_slist_next(l)) {
+ info = l->data;
+ if ((info == NULL) || (info->remote_address == NULL)) {
+ BT_ERR("_bt_otp_client_find Error Parameter are NULL..\n");
+ continue;
+ } else if (info && !g_ascii_strcasecmp(info->remote_address, remote_address)) {
+ return info;
+ }
+ }
+ return NULL;
+}
+
+static char *free_object_path(char *path)
+{
+ g_free(path);
+ return NULL;
+}
+
+static void _bt_otp_client_free_object_list(bt_otp_client_s *otp_client_s)
+{
+ GSList *tmp = NULL;
+ for (tmp = otp_client_s->object_list; tmp != NULL; tmp = tmp->next) {
+ if (tmp->data) {
+ object_metadata *metadata_info = tmp->data;
+ g_free(metadata_info->name);
+ g_free(metadata_info->type);
+ otp_client_s->object_list = g_slist_delete_link(otp_client_s->object_list, tmp->data);
+ }
+ }
+ g_slist_free(otp_client_s->object_list);
+ otp_client_s->object_list = NULL;
+}
+
+static void _bt_otp_client_init(bt_otp_client_s *otp_client_s)
+{
+ /* Reset CCCD */
+ otp_client_s->oacp_cccd_enabled = FALSE;
+ otp_client_s->olcp_cccd_enabled = FALSE;
+ otp_client_s->obj_changed_cccd_enabed = FALSE;
+
+ otp_client_s->curr_op = BT_OTP_NO_OPERATION;
+ otp_client_s->multiple_obj_supp = FALSE;
+}
+
+static void __bt_otp_client_reset_server_data(bt_otp_client_s *otp_client_s)
+{
+ int k;
+
+ otp_client_s->otp_service_handle =
+ free_object_path(otp_client_s->otp_service_handle);
+ otp_client_s->otp_feature_obj_path =
+ free_object_path(otp_client_s->otp_feature_obj_path);
+ otp_client_s->otp_oacp_control_point =
+ free_object_path(otp_client_s->otp_oacp_control_point);
+ otp_client_s->otp_oacp_cccd =
+ free_object_path(otp_client_s->otp_oacp_cccd);
+ otp_client_s->otp_olcp_control_point =
+ free_object_path(otp_client_s->otp_olcp_control_point);
+ otp_client_s->otp_olcp_cccd =
+ free_object_path(otp_client_s->otp_olcp_cccd);
+ otp_client_s->otp_name_obj_path =
+ free_object_path(otp_client_s->otp_name_obj_path);
+ otp_client_s->otp_type_obj_path =
+ free_object_path(otp_client_s->otp_type_obj_path);
+ otp_client_s->otp_size_obj_path =
+ free_object_path(otp_client_s->otp_size_obj_path);
+ otp_client_s->otp_first_created_obj_path =
+ free_object_path(otp_client_s->otp_first_created_obj_path);
+ otp_client_s->otp_last_modified_obj_path =
+ free_object_path(otp_client_s->otp_last_modified_obj_path);
+ otp_client_s->otp_id_obj_path =
+ free_object_path(otp_client_s->otp_id_obj_path);
+ otp_client_s->otp_props_obj_path =
+ free_object_path(otp_client_s->otp_props_obj_path);
+ otp_client_s->otp_list_filter_obj_path =
+ free_object_path(otp_client_s->otp_list_filter_obj_path);
+ otp_client_s->otp_obj_changed_obj_path =
+ free_object_path(otp_client_s->otp_obj_changed_obj_path);
+ otp_client_s->otp_obj_changed_cccd =
+ free_object_path(otp_client_s->otp_obj_changed_cccd);
+
+ /* Free GSList */
+ if (obj_list) {
+ for (k = 0; k < obj_list->num_objects; k++) {
+ otp_object_metadata_s *data = obj_list->data[k];
+ g_free(data->name);
+ g_free(data);
+ }
+ g_free(obj_list);
+ obj_list = NULL;
+ }
+
+ /* Free Object List */
+ _bt_otp_client_free_object_list(otp_client_s);
+
+ if (oacp_read_op) {
+ fclose(oacp_read_op->fp);
+ g_free(oacp_read_op->file_path);
+ g_free(oacp_read_op);
+ oacp_read_op = NULL;
+ }
+
+ if (oacp_create_op) {
+ g_free(oacp_create_op->filename);
+ g_free(oacp_create_op->type_uuid);
+ g_free(oacp_create_op);
+ oacp_create_op = NULL;
+ }
+
+ _bt_otp_client_init(otp_client_s);
+}
+
+int bt_otp_client_set_connection_state_changed_cb(bt_otp_client_h otp_client,
+ bt_otp_client_state_changed_cb callback, void *user_data)
+{
+ bt_otp_client_s *otp_client_s = (bt_otp_client_s *)otp_client;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(otp_client_s);
+ BT_CHECK_INPUT_PARAMETER(callback);
+
+ if (_bt_otp_client_find(otp_client_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ BT_DBG("Set OTP Client Connection State changed callback");
+ /* register the callback */
+ otp_client_s->connection_callback = callback;
+ otp_client_s->conn_cb_user_data = user_data;
+
+ return BT_ERROR_NONE;
+}
+
+int bt_otp_client_unset_connection_state_changed_cb(bt_otp_client_h otp_client)
+{
+ bt_otp_client_s *otp_client_s = (bt_otp_client_s *)otp_client;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(otp_client_s);
+
+ if (_bt_otp_client_find(otp_client_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ BT_DBG("UnSet OTP Client Connection State changed callback");
+ /* unregister the callback */
+ otp_client_s->connection_callback = NULL;
+ otp_client_s->conn_cb_user_data = NULL;
+
+ return BT_ERROR_NONE;
+}
+
+static int __bt_update_otp_server_data(bluetooth_device_address_t *address, bt_otp_client_s *otp_client_s)
+{
+ int ret = BLUETOOTH_ERROR_INTERNAL;
+ bt_gatt_service_property_t service;
+ int count;
+
+ ret = bluetooth_gatt_get_service_from_uuid(address, BT_OTP_SERVICE_UUID, &service);
+ if (ret != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("Failed to find OTP service on the remote device [%s]", address);
+ return ret;
+ }
+
+ /* Discover all charc & desc of OTP service */
+ for (count = 0; count < service.char_handle.count; count++) {
+ bt_gatt_char_property_t characteristic;
+ memset(&characteristic, 0x00, sizeof(characteristic));
+
+ BT_DBG("Get properties for Char [%s]", service.char_handle.handle[count]);
+
+ ret = bluetooth_gatt_get_characteristics_property(service.char_handle.handle[count],
+ &characteristic);
+
+ if (ret != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("Get characteristic property failed(0x%08x)", ret);
+ bluetooth_gatt_free_service_property(&service);
+ bluetooth_gatt_free_char_property(&characteristic);
+ goto fail;
+ } else {
+ if (g_strstr_len(characteristic.uuid, -1, BT_OTP_FEATURE_UUID)) {
+ BT_DBG("OTP feature characteristic discovered");
+
+ if (otp_client_s->otp_feature_obj_path)
+ g_free(otp_client_s->otp_feature_obj_path);
+ otp_client_s->otp_feature_obj_path = g_strdup(characteristic.handle);
+
+ ret = _bt_get_error_code(bluetooth_otp_read_characteristic_value(otp_client_s->otp_feature_obj_path));
+ if (ret != BT_ERROR_NONE)
+ BT_ERR("Failed to read OTP Feature : %s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+
+ BT_DBG("OTP feature handle [%s]", otp_client_s->otp_feature_obj_path);
+ } else if (g_strstr_len(characteristic.uuid, -1, BT_OTP_OACP_CONTROL_POINT_UUID)) {
+ BT_DBG("OTP OACP Control Point discovered");
+ bt_gatt_char_descriptor_property_t desc_property;
+ memset(&desc_property, 0x00, sizeof(desc_property));
+
+ /* Get CCCD for Control Point */
+ ret = bluetooth_gatt_get_char_descriptor_property(
+ characteristic.char_desc_handle.handle[0], &desc_property);
+
+ if (ret != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("Failed to discover CCCD for OACP Control point");
+ bluetooth_gatt_free_service_property(&service);
+ bluetooth_gatt_free_char_property(&characteristic);
+ bluetooth_gatt_free_desc_property(&desc_property);
+ goto fail;
+ }
+ if (otp_client_s->otp_oacp_control_point)
+ g_free(otp_client_s->otp_oacp_control_point);
+ otp_client_s->otp_oacp_control_point = g_strdup(characteristic.handle);
+
+ if (otp_client_s->otp_oacp_cccd)
+ g_free(otp_client_s->otp_oacp_cccd);
+ otp_client_s->otp_oacp_cccd = g_strdup(desc_property.handle);
+
+ BT_DBG("OACP Control point handle [%s]", otp_client_s->otp_oacp_control_point);
+ BT_DBG("OACP Control point CCCD handle [%s]", otp_client_s->otp_oacp_cccd);
+ } else if (g_strstr_len(characteristic.uuid, -1, BT_OTP_OLCP_CONTROL_POINT_UUID)) {
+ BT_DBG("OTP OLCP Control Point discovered");
+ bt_gatt_char_descriptor_property_t desc_property;
+ memset(&desc_property, 0x00, sizeof(desc_property));
+
+ /* Get CCCD for Control Point */
+ ret = bluetooth_gatt_get_char_descriptor_property(
+ characteristic.char_desc_handle.handle[0], &desc_property);
+
+ if (ret != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("Failed to discover CCCD for OLCP Control point");
+ bluetooth_gatt_free_service_property(&service);
+ bluetooth_gatt_free_char_property(&characteristic);
+ bluetooth_gatt_free_desc_property(&desc_property);
+ goto fail;
+ }
+ if (otp_client_s->otp_olcp_control_point)
+ g_free(otp_client_s->otp_olcp_control_point);
+ otp_client_s->otp_olcp_control_point = g_strdup(characteristic.handle);
+
+ if (otp_client_s->otp_olcp_cccd)
+ g_free(otp_client_s->otp_olcp_cccd);
+ otp_client_s->otp_olcp_cccd = g_strdup(desc_property.handle);
+
+ BT_DBG("OLCP Control point handle [%s]", otp_client_s->otp_olcp_control_point);
+ BT_DBG("OLCP Control point CCCD handle [%s]", otp_client_s->otp_olcp_cccd);
+ } else if (g_strstr_len(characteristic.uuid, -1, BT_OTP_OBJECT_NAME_UUID)) {
+ BT_DBG("OTP Object Name characteristic discovered");
+
+ if (otp_client_s->otp_name_obj_path)
+ g_free(otp_client_s->otp_name_obj_path);
+ otp_client_s->otp_name_obj_path = g_strdup(characteristic.handle);
+
+ BT_DBG("OTP Object Name handle [%s]", otp_client_s->otp_name_obj_path);
+ } else if (g_strstr_len(characteristic.uuid, -1, BT_OTP_OBJECT_TYPE_UUID)) {
+ BT_DBG("OTP Object Type characteristic discovered");
+
+ if (otp_client_s->otp_type_obj_path)
+ g_free(otp_client_s->otp_type_obj_path);
+ otp_client_s->otp_type_obj_path = g_strdup(characteristic.handle);
+
+ BT_DBG("OTP Object Type handle [%s]", otp_client_s->otp_type_obj_path);
+ } else if (g_strstr_len(characteristic.uuid, -1, BT_OTP_OBJECT_SIZE_UUID)) {
+ BT_DBG("OTP Object Size characteristic discovered");
+
+ if (otp_client_s->otp_size_obj_path)
+ g_free(otp_client_s->otp_size_obj_path);
+ otp_client_s->otp_size_obj_path = g_strdup(characteristic.handle);
+
+ BT_DBG("OTP Object Size handle [%s]", otp_client_s->otp_size_obj_path);
+ } else if (g_strstr_len(characteristic.uuid, -1, BT_OTP_OBJECT_FIRST_CREATED_UUID)) {
+ BT_DBG("OTP Object First Created characteristic discovered");
+
+ if (otp_client_s->otp_first_created_obj_path)
+ g_free(otp_client_s->otp_first_created_obj_path);
+ otp_client_s->otp_first_created_obj_path = g_strdup(characteristic.handle);
+
+ BT_DBG("OTP Object First Created handle [%s]", otp_client_s->otp_first_created_obj_path);
+ } else if (g_strstr_len(characteristic.uuid, -1, BT_OTP_OBJECT_LAST_MODIFIED_UUID)) {
+ BT_DBG("OTP Object Last Modified characteristic discovered");
+
+ if (otp_client_s->otp_last_modified_obj_path)
+ g_free(otp_client_s->otp_last_modified_obj_path);
+ otp_client_s->otp_last_modified_obj_path = g_strdup(characteristic.handle);
+
+ BT_DBG("OTP Object Last Modified handle [%s]", otp_client_s->otp_last_modified_obj_path);
+ } else if (g_strstr_len(characteristic.uuid, -1, BT_OTP_OBJECT_ID_UUID)) {
+ BT_DBG("OTP Object ID characteristic discovered");
+
+ if (otp_client_s->otp_id_obj_path)
+ g_free(otp_client_s->otp_id_obj_path);
+ otp_client_s->otp_id_obj_path = g_strdup(characteristic.handle);
+
+ BT_DBG("OTP Object ID handle [%s]", otp_client_s->otp_id_obj_path);
+ } else if (g_strstr_len(characteristic.uuid, -1, BT_OTP_OBJECT_PROP_UUID)) {
+ BT_DBG("OTP Object Properties characteristic discovered");
+
+ if (otp_client_s->otp_props_obj_path)
+ g_free(otp_client_s->otp_props_obj_path);
+ otp_client_s->otp_props_obj_path = g_strdup(characteristic.handle);
+
+ BT_DBG("OTP Object Properties handle [%s]", otp_client_s->otp_props_obj_path);
+ } else if (g_strstr_len(characteristic.uuid, -1, BT_OTP_OBJECT_LIST_FILTER_UUID)) {
+ BT_DBG("OTP Object List Filter characteristic discovered");
+
+ if (otp_client_s->otp_list_filter_obj_path)
+ g_free(otp_client_s->otp_list_filter_obj_path);
+ otp_client_s->otp_list_filter_obj_path = g_strdup(characteristic.handle);
+
+ BT_DBG("OTP Object List Filter handle [%s]", otp_client_s->otp_list_filter_obj_path);
+ } else if (g_strstr_len(characteristic.uuid, -1, BT_OTP_OBJECT_CHANGED_UUID)) {
+ BT_DBG("OTP Object Changed characteristic discovered");
+ bt_gatt_char_descriptor_property_t desc_property;
+ memset(&desc_property, 0x00, sizeof(desc_property));
+
+ /* Get CCCD for Object Changed Charc */
+ ret = bluetooth_gatt_get_char_descriptor_property(
+ characteristic.char_desc_handle.handle[0], &desc_property);
+
+ if (ret != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("Failed to discover CCCD for Object Changed Charc");
+ bluetooth_gatt_free_service_property(&service);
+ bluetooth_gatt_free_char_property(&characteristic);
+ bluetooth_gatt_free_desc_property(&desc_property);
+ goto fail;
+ }
+ if (otp_client_s->otp_obj_changed_obj_path)
+ g_free(otp_client_s->otp_obj_changed_obj_path);
+ otp_client_s->otp_obj_changed_obj_path = g_strdup(characteristic.handle);
+
+ if (otp_client_s->otp_obj_changed_cccd)
+ g_free(otp_client_s->otp_obj_changed_cccd);
+ otp_client_s->otp_obj_changed_cccd = g_strdup(desc_property.handle);
+
+ BT_DBG("OTP Object Changed handle [%s]", otp_client_s->otp_obj_changed_obj_path);
+ BT_DBG("OTP Object Changed CCCD handle [%s]", otp_client_s->otp_obj_changed_cccd);
+ } else {
+ BT_DBG("Other OTP Characteristic handle [%s]", characteristic.handle);
+ BT_DBG("UUID [%s]", characteristic.uuid);
+ }
+ } /* Characteristic property get successful */
+ bluetooth_gatt_free_char_property(&characteristic);
+ } /* Next Charatceristic */
+
+ if (otp_client_s->otp_service_handle)
+ g_free(otp_client_s->otp_service_handle);
+
+ otp_client_s->otp_service_handle = g_strdup(service.handle);
+ bluetooth_gatt_free_service_property(&service);
+ return ret;
+fail:
+ __bt_otp_client_reset_server_data(otp_client_s);
+ return ret;
+}
+
+void _bt_otp_check_service_changed(char *address, bt_gatt_service_change_t *service_change)
+{
+ bt_otp_client_s *otp_client_s = NULL;
+ int error_code = BLUETOOTH_ERROR_NONE;
+ bluetooth_device_address_t addr_hex = { {0,} };
+ if (!address) {
+ BT_ERR("Abnormal Result!!");
+ return;
+ }
+ otp_client_s = _bt_otp_client_find(address);
+ BT_DBG("GATT Service state changed [%d]", service_change->change_type);
+ BT_DBG("GATT Service [%s]", service_change->svc_path);
+ if (otp_client_s) {
+ if (service_change->change_type == BLUETOOTH_GATT_SERVICE_CHANGE_TYPE_REMOVE) {
+ if (otp_client_s->otp_service_handle &&
+ g_strcmp0(otp_client_s->otp_service_handle, service_change->svc_path) == 0) {
+ BT_ERR("OTS Primary Service removed abnormally from Remote Server [%s]", address);
+ __bt_otp_client_reset_server_data(otp_client_s);
+ }
+ } else {
+ _bt_convert_address_to_hex(&addr_hex, address);
+
+ /* Attempt to update OTS Service data if service added is OTS service */
+ if (__bt_update_otp_server_data(&addr_hex, otp_client_s) == BLUETOOTH_ERROR_NONE) {
+ BT_INFO("OTS Primary Service added in Remote Server [%s]", address);
+ /* Set Service changed Watcher */
+ error_code = bluetooth_gatt_set_service_change_watcher(&addr_hex, true);
+ if (error_code != BLUETOOTH_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ }
+ }
+ }
+ BT_DBG("-");
+}
+
+void _bt_otp_client_connection_state_changed(int result,
+ const char *remote_address,
+ bool connected)
+{
+ bt_otp_client_s *otp_client_s = NULL;
+ BT_DBG("OTP Client Connection state changed result [%d] connected [%d]", result, connected ? TRUE : FALSE);
+
+ otp_client_s = _bt_otp_client_find(remote_address);
+ if (otp_client_s) {
+ BT_DBG("OTP Client found against address [%s]", remote_address);
+
+ bluetooth_device_address_t addr_hex = { {0,} };
+ _bt_convert_address_to_hex(&addr_hex, remote_address);
+
+ if (result != BT_ERROR_NONE) {
+ BT_ERR("GATT Connect Request failed Address [%s]", remote_address);
+ __bt_otp_client_reset_server_data(otp_client_s);
+ bluetooth_gatt_set_service_change_watcher(&addr_hex, false);
+
+ if (otp_client_s->connection_callback)
+ ((bt_otp_client_state_changed_cb)otp_client_s->connection_callback)
+ (result, remote_address, otp_client_s, connected, otp_client_s->conn_cb_user_data);
+ return;
+ }
+ /* Update OTP Service values */
+ if (connected) {
+ int error_code = BLUETOOTH_ERROR_NONE;
+ BT_DBG("Remote device connected successfully");
+ /* Attempt to update OTP Service data */
+ error_code = __bt_update_otp_server_data(&addr_hex, otp_client_s);
+ if (error_code != BLUETOOTH_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+
+ /* Set Service changed Watcher */
+ error_code = bluetooth_gatt_set_service_change_watcher(&addr_hex, true);
+ if (error_code != BLUETOOTH_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ } else {
+ BT_DBG("Remote device disconnected successfully");
+ /* Disconnected */
+ __bt_otp_client_reset_server_data(otp_client_s);
+ bluetooth_gatt_set_service_change_watcher(&addr_hex, false);
+ }
+ otp_client_s->connected = connected;
+
+ if (otp_client_s->connection_callback)
+ ((bt_otp_client_state_changed_cb)otp_client_s->connection_callback)
+ (result, remote_address, otp_client_s, connected, otp_client_s->conn_cb_user_data);
+ } else {
+ BT_DBG("OTP client not found!");
+ }
+}
+
+int bt_otp_client_create(const char *remote_address, bt_otp_client_h *otp_client)
+{
+ int error_code = BT_ERROR_NONE;
+ bt_otp_client_s *otp_client_s = NULL;
+ bool connected = false;
+ bluetooth_device_address_t addr_hex = { {0,} };
+ bt_otp_client_s *info;
+ GSList *l;
+ BT_INFO("+");
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(remote_address);
+ BT_CHECK_INPUT_PARAMETER(otp_client);
+
+ for (l = otp_client_list; l; l = g_slist_next(l)) {
+ info = l->data;
+
+ if ((info == NULL) || (info->remote_address == NULL)) {
+ BT_ERR("bt_otp_client_create Error Parameter are NULL..\n");
+ continue;
+ } else if (info && !g_ascii_strcasecmp(info->remote_address, remote_address)) {
+ BT_ERR("OTP Client for Remote device [%s] is already created",
+ remote_address);
+ *otp_client = (bt_otp_client_h)info;
+ return BT_ERROR_ALREADY_DONE;
+ }
+ }
+
+ otp_client_s = g_malloc0(sizeof(*otp_client_s));
+ if (otp_client_s == NULL) {
+ error_code = BT_ERROR_OUT_OF_MEMORY;
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ if (bt_device_is_profile_connected(remote_address, BT_PROFILE_GATT,
+ &connected) != BT_ERROR_NONE)
+ BT_ERR("bt_device_is_profile_connected is failed");
+ otp_client_s->connected = connected;
+
+ _bt_convert_address_to_hex(&addr_hex, remote_address);
+
+ if (otp_client_s->connected == true) {
+ /* Update all serv & charc */
+ error_code = __bt_update_otp_server_data(&addr_hex, otp_client_s);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ __bt_otp_client_reset_server_data(otp_client_s);
+ g_free(otp_client_s);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+ error_code = bluetooth_gatt_set_service_change_watcher(&addr_hex, true);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ __bt_otp_client_reset_server_data(otp_client_s);
+ g_free(otp_client_s);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+ }
+
+ otp_client_s->remote_address = g_strdup(remote_address);
+ if (otp_client_s->remote_address == NULL) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ __bt_otp_client_reset_server_data(otp_client_s);
+ g_free(otp_client_s);
+ return BT_ERROR_OUT_OF_MEMORY;
+ }
+
+ _bt_otp_client_init(otp_client_s);
+
+ otp_client_list = g_slist_append(otp_client_list, otp_client_s);
+ *otp_client = (bt_otp_client_h)otp_client_s;
+
+ BT_DBG("OTP Client Created");
+ return BT_ERROR_NONE;
+}
+
+int bt_otp_client_destroy(bt_otp_client_h otp_client)
+{
+ bt_otp_client_s *otp_client_s = (bt_otp_client_s *)otp_client;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(otp_client_s);
+
+ if (_bt_otp_client_find(otp_client_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ BT_DBG("OTP client Remote device [%s]", otp_client_s->remote_address);
+ __bt_otp_client_reset_server_data(otp_client_s);
+
+ otp_client_list = g_slist_remove(otp_client_list, otp_client_s);
+ g_free(otp_client_s);
+ otp_client_s = NULL;
+
+ return BT_ERROR_NONE;
+}
+
+int bt_otp_client_connect(bt_otp_client_h otp_client)
+{
+ int error_code;
+ bt_otp_client_s *otp_client_s = (bt_otp_client_s *)otp_client;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(otp_client_s);
+
+ if (_bt_otp_client_find(otp_client_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (otp_client_s->connected)
+ return BT_ERROR_NONE;
+
+ BT_DBG("OTP client connect Remote device [%s]", otp_client_s->remote_address);
+ error_code = bt_gatt_connect(otp_client_s->remote_address, FALSE);
+
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+
+ return error_code;
+}
+
+int bt_otp_client_disconnect(bt_otp_client_h otp_client)
+{
+ int error_code;
+ bt_otp_client_s *otp_client_s = (bt_otp_client_s *)otp_client;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(otp_client_s);
+
+ if (_bt_otp_client_find(otp_client_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (otp_client_s->connected == false) {
+ BT_ERR("Remote device [%s] is not conencted", otp_client_s->remote_address);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ BT_DBG("OTP client Disconnect Remote device [%s]", otp_client_s->remote_address);
+ error_code = bt_gatt_disconnect(otp_client_s->remote_address);
+
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+
+ return error_code;
+}
+
+void _bt_otp_get_remote_address(char *handle, char *remote_address)
+{
+ char *dev_path;
+ dev_path = strstr(handle, "dev_");
+ dev_path += 4;
+ /* 18 -> Length of BT ADDR in path */
+ g_strlcpy(remote_address, dev_path, BT_ADDR_LENGTH);
+ g_strdelimit(remote_address, "_", ':');
+ BT_INFO("[%s] --> [%s]", handle, remote_address);
+}
+
+void _bt_otp_send_discovery_callback(int result, bt_otp_client_s *otp_client_s)
+{
+ object_metadata *metadata;
+ GSList *l;
+ int k;
+ if (result != BLUETOOTH_ERROR_NONE) {
+ ((bt_otp_client_object_discovery_cb)otp_client_s->callback)(
+ result, otp_client_s->remote_address, NULL, otp_client_s->user_data);
+ return;
+ }
+
+ BT_INFO("All Object/Objects Discovered");
+ if (obj_list) {
+ for (k = 0; k < obj_list->num_objects; k++) {
+ otp_object_metadata_s *data = obj_list->data[k];
+ g_free(data->name);
+ g_free(data);
+ }
+ g_free(obj_list);
+ obj_list = NULL;
+ }
+ obj_list = g_malloc0(sizeof(bt_otp_object_list_s));
+ obj_list->num_objects = g_slist_length(otp_client_s->object_list);
+ obj_list->data = (otp_object_metadata_s **)g_malloc0(sizeof(otp_object_metadata_s *)*obj_list->num_objects);
+ k = 0;
+ for (l = otp_client_s->object_list; l; l = g_slist_next(l)) {
+ metadata = l->data;
+ if (metadata == NULL)
+ continue;
+ otp_object_metadata_s *m_data = g_malloc0(sizeof(otp_object_metadata_s));
+ m_data->id = metadata->id;
+ m_data->name = g_strdup(metadata->name);
+ obj_list->data[k] = (otp_object_metadata_s *)g_malloc0(sizeof(otp_object_metadata_s));
+ obj_list->data[k] = m_data;
+ k++;
+ }
+ ((bt_otp_client_object_discovery_cb)otp_client_s->callback)(
+ BLUETOOTH_ERROR_NONE, otp_client_s->remote_address, obj_list, otp_client_s->user_data);
+}
+
+void _bt_otp_client_read_value_response(int result, char *char_path,
+ char *value, int len)
+{
+ bt_otp_client_s *otp_client_s = NULL;
+ char remote_address[BT_ADDR_LENGTH];
+ int error_code = BLUETOOTH_ERROR_NONE;
+
+ _bt_otp_get_remote_address(char_path, remote_address);
+
+ BT_DBG("OTP client Read Value Response [%d] [%s] [%s] [%d]", result,
+ char_path, value, len);
+
+ otp_client_s = _bt_otp_client_find(remote_address);
+ if (otp_client_s == NULL) {
+ BT_INFO("Client Not Found");
+ return;
+ }
+
+ if (result != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read failed for [%s]", char_path);
+ goto done;
+ }
+
+ if (!g_strcmp0(otp_client_s->otp_feature_obj_path, char_path)) {
+ uint64_t feature = (uint64_t)(value[0] & 0xFF) << 56 |
+ (uint64_t)(value[1] & 0xFF) << 48 |
+ (uint64_t)(value[2] & 0xFF) << 40 |
+ (uint64_t)(value[3] & 0xFF) << 32 |
+ (uint64_t)(value[4] & 0xFF) << 24 |
+ (uint64_t)(value[5] & 0xFF) << 16 |
+ (uint64_t)(value[6] & 0xFF) << 8 |
+ (uint64_t)(value[7] & 0xFF);
+ otp_client_s->otp_feature = feature;
+ BT_INFO("OTP Feature [%u]", feature);
+
+ if (BT_OTP_IS_OACP_SUPPORTED(otp_client_s->otp_feature)
+ && !otp_client_s->oacp_cccd_enabled
+ && otp_client_s->otp_oacp_control_point) {
+
+ error_code = bluetooth_otp_enable_notification(otp_client_s->otp_oacp_control_point);
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("OACP Notification enable failed %s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ }
+
+ if (BT_OTP_IS_OLCP_SUPPORTED(otp_client_s->otp_feature)
+ && !otp_client_s->olcp_cccd_enabled
+ && otp_client_s->otp_olcp_control_point) {
+ error_code = bluetooth_otp_enable_notification(otp_client_s->otp_olcp_control_point);
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("OLCP Notification enable failed %s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ }
+
+ if (!otp_client_s->obj_changed_cccd_enabed
+ && otp_client_s->otp_obj_changed_obj_path) {
+ error_code = bluetooth_otp_enable_notification(otp_client_s->otp_obj_changed_obj_path);
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("Object Changed Notification enable failed %s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ }
+ } else {
+ if (!g_strcmp0(otp_client_s->otp_name_obj_path, char_path)) {
+ char *name = NULL;
+ name = g_strndup(value, len);
+ BT_INFO("Object Name [%s]", name);
+
+ if (otp_client_s->curr_op == BT_OTP_OBJECT_DISCOVERY) {
+ metadata->name = g_strdup(name);
+ error_code = bluetooth_otp_read_characteristic_value(otp_client_s->otp_type_obj_path);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read Charc Value Failed %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ g_free(name);
+ goto done;
+ }
+ }
+ g_free(name);
+ } else if (!g_strcmp0(otp_client_s->otp_type_obj_path, char_path)) {
+ char *type = NULL;
+ type = g_strndup(value, len);
+ BT_INFO("Object Type [%s]", type);
+
+ if (otp_client_s->curr_op == BT_OTP_OBJECT_DISCOVERY) {
+ metadata->type = g_strdup(type);
+ error_code = bluetooth_otp_read_characteristic_value(otp_client_s->otp_size_obj_path);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read Charc Value Failed %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ g_free(type);
+ goto done;
+ }
+ }
+ g_free(type);
+ } else if (!g_strcmp0(otp_client_s->otp_size_obj_path, char_path)) {
+ uint32_t csize, asize;
+ csize = (uint32_t)(value[3] & 0xFF) << 24 |
+ (uint32_t)(value[2] & 0xFF) << 16 |
+ (uint32_t)(value[1] & 0xFF) << 8 |
+ (uint32_t)(value[0] & 0xFF);
+
+ asize = (uint32_t)(value[7] & 0xFF) << 24 |
+ (uint32_t)(value[6] & 0xFF) << 16 |
+ (uint32_t)(value[5] & 0xFF) << 8 |
+ (uint32_t)(value[4] & 0xFF);
+
+ BT_INFO("Object Size curr[%lu] alloc[%lu]", csize, asize);
+
+ if (otp_client_s->curr_op == BT_OTP_OBJECT_DISCOVERY) {
+ metadata->curr_size = csize;
+ metadata->alloc_size = asize;
+ error_code = bluetooth_otp_read_characteristic_value(otp_client_s->otp_props_obj_path);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read Charc Value Failed %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto done;
+ }
+ }
+ } else if (!g_strcmp0(otp_client_s->otp_props_obj_path, char_path)) {
+ uint32_t props;
+ props = (uint32_t)(value[3] & 0xFF) << 24 |
+ (uint32_t)(value[2] & 0xFF) << 16 |
+ (uint32_t)(value[1] & 0xFF) << 8 |
+ (uint32_t)(value[0] & 0xFF);
+ BT_INFO("Object Properties [%lu]", props);
+
+ /* First-created & Last-modified are optional charcacteristics */
+ if (otp_client_s->curr_op == BT_OTP_OBJECT_DISCOVERY) {
+ metadata->props = props;
+ if (otp_client_s->otp_first_created_obj_path) {
+ error_code = bluetooth_otp_read_characteristic_value(otp_client_s->otp_first_created_obj_path);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read Charc Value Failed %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto done;
+ }
+ } else if (otp_client_s->otp_last_modified_obj_path) {
+ error_code = bluetooth_otp_read_characteristic_value(otp_client_s->otp_last_modified_obj_path);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read Charc Value Failed %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto done;
+ }
+ } else {
+ /* Reading Object ID characteristics makes sense if server
+ * supports multiple objects.
+ */
+ if (otp_client_s->multiple_obj_supp) {
+ metadata->id = 0x256;
+ otp_client_s->object_id = metadata->id;
+ otp_client_s->object_list = g_slist_append(otp_client_s->object_list, metadata);
+ goto done;
+ } else {
+ if (otp_client_s->otp_id_obj_path) {
+ error_code = bluetooth_otp_read_characteristic_value(otp_client_s->otp_id_obj_path);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read Charc Value Failed %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto done;
+ }
+ }
+ }
+ }
+ }
+ } else if (!g_strcmp0(otp_client_s->otp_first_created_obj_path, char_path)) {
+ struct tm tm = {0};
+ uint16_t year = (uint16_t)(value[1] & 0xFF) << 8 |
+ (uint16_t)(value[0] & 0xFF);
+ tm.tm_year = year-1900;
+ tm.tm_mon = value[2] & 0xFF;
+ tm.tm_mon = tm.tm_mon-1;
+ tm.tm_mday = value[3] & 0xFF;
+ tm.tm_hour = value[4] & 0xFF;
+ tm.tm_min = value[5] & 0xFF;
+ tm.tm_sec = value[6] & 0xFF;
+ BT_INFO("Object First Created [%d]-[%d]-[%d]\t[%d][%d][%d]", tm.tm_mday,
+ tm.tm_mon, tm.tm_year, tm.tm_hour, tm.tm_min, tm.tm_sec);
+
+ if (otp_client_s->curr_op == BT_OTP_OBJECT_DISCOVERY) {
+ metadata->first_created = mktime(&tm);
+ if (otp_client_s->otp_last_modified_obj_path) {
+ error_code = bluetooth_otp_read_characteristic_value(otp_client_s->otp_last_modified_obj_path);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read Charc Value Failed %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto done;
+ }
+ } else {
+ if (otp_client_s->multiple_obj_supp) {
+ metadata->id = 0x256;
+ otp_client_s->object_id = metadata->id;
+ otp_client_s->object_list = g_slist_append(otp_client_s->object_list, metadata);
+ goto done;
+ } else {
+ if (otp_client_s->otp_id_obj_path) {
+ error_code = bluetooth_otp_read_characteristic_value(otp_client_s->otp_id_obj_path);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read Charc Value Failed %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto done;
+ }
+ }
+ }
+ }
+ }
+ } else if (!g_strcmp0(otp_client_s->otp_last_modified_obj_path, char_path)) {
+ struct tm tm = {0};
+ uint16_t year = (uint16_t)(value[1] & 0xFF) << 8 |
+ (uint16_t)(value[0] & 0xFF);
+ tm.tm_year = year-1900;
+ tm.tm_mon = value[2] & 0xFF;
+ tm.tm_mon = tm.tm_mon-1;
+ tm.tm_mday = value[3] & 0xFF;
+ tm.tm_hour = value[4] & 0xFF;
+ tm.tm_min = value[5] & 0xFF;
+ tm.tm_sec = value[6] & 0xFF;
+ BT_INFO("Object Last Modified [%d]-[%d]-[%d]\t[%d][%d][%d]", tm.tm_mday,
+ tm.tm_mon, tm.tm_year, tm.tm_hour, tm.tm_min, tm.tm_sec);
+
+ if (otp_client_s->curr_op == BT_OTP_OBJECT_DISCOVERY) {
+ metadata->last_modified = mktime(&tm);
+ if (otp_client_s->multiple_obj_supp) {
+ /* None of the optional characteristics supported, so finish object discovery */
+ metadata->id = 0x256;
+ otp_client_s->object_id = metadata->id;
+ otp_client_s->object_list = g_slist_append(otp_client_s->object_list, metadata);
+ goto done;
+ } else {
+ if (otp_client_s->otp_id_obj_path) {
+ error_code = bluetooth_otp_read_characteristic_value(otp_client_s->otp_id_obj_path);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read Charc Value Failed %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto done;
+ }
+ }
+ }
+ }
+ } else if (!g_strcmp0(otp_client_s->otp_id_obj_path, char_path)) {
+ uint64_t id;
+ id = (uint64_t)(value[5] & 0xFF) << 48 |
+ (uint64_t)(value[4] & 0xFF) << 32 |
+ (uint64_t)(value[3] & 0xFF) << 24 |
+ (uint64_t)(value[2] & 0xFF) << 16 |
+ (uint64_t)(value[1] & 0xFF) << 8 |
+ (uint64_t)(value[0] & 0xFF);
+ BT_INFO("Object ID [%llu]", id);
+ /* TODO: Remove the previous stored object list */
+ if (otp_client_s->curr_op == BT_OTP_OBJECT_DISCOVERY) {
+ metadata->id = id;
+ otp_client_s->object_id = metadata->id;
+ otp_client_s->object_list = g_slist_append(otp_client_s->object_list, metadata);
+
+ uint8_t value[7] = {0x00};
+ value[0] = OLCP_NEXT;
+ error_code = bluetooth_otp_write_characteristics_value(otp_client_s->otp_olcp_control_point, value, 1);
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("Failed to write control point : %s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto done;
+ }
+ } else if (otp_client_s->curr_op == BT_OTP_OBJECT_CREATE) {
+ metadata = g_malloc0(sizeof(object_metadata));
+ metadata->name = g_strdup(oacp_create_op->filename);
+ metadata->type = g_strdup(oacp_create_op->type_uuid);
+ metadata->curr_size = oacp_create_op->size;
+ metadata->alloc_size = oacp_create_op->size;
+ /* Dont hard code */
+ metadata->props = OBJECT_READ | OBJECT_WRITE;
+ metadata->first_created = oacp_create_op->first_created;
+ metadata->last_modified = oacp_create_op->first_created;
+ metadata->id = id;
+ otp_client_s->object_id = metadata->id;
+ otp_client_s->object_list = g_slist_append(otp_client_s->object_list, metadata);
+ goto done;
+ }
+ }
+ return;
+done:
+ switch (otp_client_s->curr_op) {
+ case BT_OTP_OBJECT_DISCOVERY:
+ case BT_OTP_OBJECT_CREATE:
+ _bt_otp_send_callback(result, NULL, otp_client_s->object_id, 0, otp_client_s);
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+static void _bt_otp_send_callback(int result, char *file_path, uint64_t id,
+ unsigned int length, bt_otp_client_s *otp_client_s)
+{
+ switch (otp_client_s->curr_op) {
+ case BT_OTP_OBJECT_DISCOVERY:
+ _bt_otp_send_discovery_callback(result, otp_client_s);
+ break;
+ case BT_OTP_OBJECT_READ:
+ _bt_otp_client_notify_read_object_status(result,
+ file_path, otp_client_s);
+ break;
+ case BT_OTP_OBJECT_SELECT:
+ _bt_otp_client_send_select_object_callback(result, otp_client_s);
+ break;
+ case BT_OTP_OBJECT_CREATE:
+ _bt_otp_client_send_create_object_callback(result, id, otp_client_s);
+ break;
+ case BT_OTP_OBJECT_WRITE:
+ _bt_otp_client_send_write_object_callback(result, length, otp_client_s);
+ break;
+ case BT_OTP_OBJECT_EXECUTE:
+ _bt_otp_client_send_execute_object_callback(result, otp_client_s);
+ break;
+ case BT_OTP_OBJECT_DELETE:
+ _bt_otp_client_send_delete_object_callback(result, otp_client_s);
+ break;
+ case BT_OTP_NO_OPERATION:
+ break;
+ default:
+ break;
+ }
+
+ __bt_otp_reset_api_info(otp_client_s);
+}
+
+void _bt_otp_client_write_value_response(int result, char *handle)
+{
+ bt_otp_client_s *otp_client_s = NULL;
+ char remote_address[BT_ADDR_LENGTH];
+ BT_DBG("OTP client Write Value Response [%d] [%s]", result, handle);
+
+ _bt_otp_get_remote_address(handle, remote_address);
+ otp_client_s = _bt_otp_client_find(remote_address);
+ if (otp_client_s == NULL) {
+ BT_INFO("Client Not Found");
+ return;
+ }
+
+ if (result != BLUETOOTH_ERROR_NONE) {
+ BT_DBG("OTP Write Failed");
+ goto fail;
+ }
+
+ if (otp_client_s->curr_op == BT_OTP_OBJECT_CREATE) {
+ if ((!g_strcmp0(otp_client_s->otp_name_obj_path, handle) ||
+ !g_strcmp0(otp_client_s->otp_first_created_obj_path, handle)) &&
+ oacp_create_op) {
+ struct tm fc_tm;
+ uint8_t value[8];
+ int error_code;
+ memset(value, 0, 8);
+ localtime_r(&(oacp_create_op->first_created), &fc_tm);
+
+ value[1] = ((fc_tm.tm_year+1900) >> 8) & 0xFF;
+ value[0] = (fc_tm.tm_year+1900) & 0xFF;
+ value[2] = (fc_tm.tm_mon+1) & 0xFF;
+ value[3] = fc_tm.tm_mday & 0xFF;
+ value[4] = fc_tm.tm_hour & 0xFF;
+ value[5] = fc_tm.tm_min & 0xFF;
+ value[6] = fc_tm.tm_sec & 0xFF;
+
+ if (!g_strcmp0(otp_client_s->otp_name_obj_path, handle)) {
+ /* Write First-Created */
+ error_code = bluetooth_otp_write_characteristics_value(otp_client_s->otp_first_created_obj_path,
+ value, sizeof(value));
+ } else {
+ /* Write Last-Modified */
+ error_code = bluetooth_otp_write_characteristics_value(otp_client_s->otp_last_modified_obj_path,
+ value, sizeof(value));
+ }
+
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("Failed to write first_created / last_modified : %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto fail;
+ }
+ } else if (!g_strcmp0(otp_client_s->otp_last_modified_obj_path, handle)) {
+ /* Read Object ID */
+ int error_code;
+ error_code = bluetooth_otp_read_characteristic_value(otp_client_s->otp_id_obj_path);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read object ID Failed %s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto fail;
+ }
+ }
+ }
+ return;
+fail:
+ _bt_otp_send_callback(result, NULL, 0, 0, otp_client_s);
+}
+
+void _bt_otp_client_notification_enabled(int result, char *handle)
+{
+ bt_otp_client_s *otp_client_s = NULL;
+ char remote_address[BT_ADDR_LENGTH];
+ BT_DBG("OTP notificaton [%d] [%s]", result, handle);
+ _bt_otp_get_remote_address(handle, remote_address);
+
+ otp_client_s = _bt_otp_client_find(remote_address);
+ if (otp_client_s == NULL) {
+ BT_INFO("Client Not Found");
+ return;
+ }
+
+ if (!g_strcmp0(otp_client_s->otp_oacp_control_point, handle)) {
+ if (result != BLUETOOTH_ERROR_NONE) {
+ otp_client_s->oacp_cccd_enabled = FALSE;
+ BT_ERR("Failed to enable OACP notification : %s(0x%08x)",
+ _bt_convert_error_to_string(result), result);
+ } else {
+ otp_client_s->oacp_cccd_enabled = TRUE;
+ }
+ } else if (!g_strcmp0(otp_client_s->otp_olcp_control_point, handle)) {
+ if (result != BLUETOOTH_ERROR_NONE) {
+ otp_client_s->olcp_cccd_enabled = FALSE;
+ BT_ERR("Failed to enable OLCP notification : %s(0x%08x)",
+ _bt_convert_error_to_string(result), result);
+ } else {
+ otp_client_s->olcp_cccd_enabled = TRUE;
+ }
+ } else if (!g_strcmp0(otp_client_s->otp_obj_changed_obj_path, handle)) {
+ if (result != BLUETOOTH_ERROR_NONE) {
+ otp_client_s->obj_changed_cccd_enabed = FALSE;
+ BT_ERR("Failed to enable Object changed notification : %s(0x%08x)",
+ _bt_convert_error_to_string(result), result);
+ } else {
+ otp_client_s->obj_changed_cccd_enabed = TRUE;
+ }
+ }
+}
+
+void _bt_otp_client_indication(int result, bluetooth_otp_resp_info_t *info)
+{
+ bt_otp_client_s *otp_client_s = NULL;
+ char remote_address[BT_ADDR_LENGTH];
+ int error_code;
+
+ BT_DBG("OTP indication response [%s]", info->handle);
+ _bt_otp_get_remote_address(info->handle, remote_address);
+
+ otp_client_s = _bt_otp_client_find(remote_address);
+ if (otp_client_s == NULL) {
+ BT_INFO("Client Not Found");
+ return;
+ }
+
+ if (!g_strcmp0(otp_client_s->otp_oacp_control_point, info->handle)) {
+ uint8_t resp_code = info->data[0];
+ uint8_t req_opcode = info->data[1];
+ uint8_t result_code = info->data[2];
+
+ BT_INFO("Resp_code [0x%x], Req_opcode [0x%x], result_code [0x%x]",
+ resp_code, req_opcode, result_code);
+
+ if (resp_code != OACP_RESPONSE) {
+ BT_INFO("Indication Response Failed : Wrong Response Code");
+ result = BLUETOOTH_ERROR_INTERNAL;
+ goto oacp_done;
+ }
+
+ if (result_code != OACP_SUCCESS) {
+ BT_INFO("Indication Response Fail [0x%x]", result_code);
+ result = BLUETOOTH_ERROR_INTERNAL;
+ goto oacp_done;
+ }
+
+ switch (req_opcode) {
+ case OACP_CREATE:
+ BT_INFO("OACP_CREATE Indication received");
+ if ((otp_client_s->curr_op == BT_OTP_OBJECT_CREATE) && oacp_create_op) {
+ int len;
+ uint8_t value[BT_FILE_PATH_MAX_LEN];
+
+ len = strlen(oacp_create_op->filename) + 1;
+ memcpy(value, oacp_create_op->filename, len);
+
+ error_code = bluetooth_otp_write_characteristics_value(otp_client_s->otp_name_obj_path,
+ value, len);
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("Failed to write object name : %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto oacp_done;
+ }
+ }
+ break;
+ case OACP_DELETE:
+ BT_INFO("OACP_DELETE Indication received");
+ goto oacp_done;
+ break;
+ case OACP_CALC_CHECKSUM:
+ break;
+ case OACP_EXECUTE:
+ BT_INFO("OACP_EXECUTE Indication received");
+ goto oacp_done;
+ break;
+ case OACP_READ:
+ case OACP_WRITE:
+ BT_INFO("OACP Read/Write Indication received");
+ bluetooth_device_address_t addr_hex = { {0,} };
+ _bt_convert_address_to_hex(&addr_hex, otp_client_s->remote_address);
+ if (otc_connection_status) {
+ BT_INFO("OTC Connected already");
+ break;
+ }
+ error_code = bluetooth_otp_connect_otc(&addr_hex);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("OTC Connection Failed %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto oacp_done;
+ }
+ break;
+ case OACP_ABORT:
+ break;
+ default:
+ BT_INFO("Indication Failed : Wrong Req Opcode [0x%x], Reason [0x%x]",
+ req_opcode, result_code);
+ result = BLUETOOTH_ERROR_INTERNAL;
+ goto oacp_done;
+ break;
+ }
+ return;
+oacp_done:
+ switch (otp_client_s->curr_op) {
+ case BT_OTP_OBJECT_READ:
+ case BT_OTP_OBJECT_CREATE:
+ case BT_OTP_OBJECT_WRITE:
+ case BT_OTP_OBJECT_EXECUTE:
+ case BT_OTP_OBJECT_DELETE:
+ _bt_otp_send_callback(result, NULL, 0, 0, otp_client_s);
+ break;
+ default:
+ break;
+ }
+ } else if (!g_strcmp0(otp_client_s->otp_olcp_control_point, info->handle)) {
+ uint8_t resp_code = info->data[0];
+ uint8_t req_opcode = info->data[1];
+ uint8_t result_code = info->data[2];
+
+ /* Indication failed/timeout occured */
+ if (result != BLUETOOTH_ERROR_NONE)
+ goto olcp_done;
+
+ BT_INFO("Resp_code [0x%x], Req_opcode [0x%x], result_code [0x%x]",
+ resp_code, req_opcode, result_code);
+
+ if (resp_code != OLCP_RESPONSE) {
+ BT_INFO("Indication Response Failed : Wrong Response Code");
+ result = BLUETOOTH_ERROR_INTERNAL;
+ goto olcp_done;
+ }
+
+ if (result_code != OLCP_SUCCESS) {
+ switch (result_code) {
+ case OLCP_NO_OBJ:
+ BT_INFO("No Object Found on server");
+ result = BLUETOOTH_ERROR_INTERNAL;
+ break;
+ case OLCP_OUT_OF_BOUNDS:
+ /* All object discovered succesfully, notify application via callback */
+ result = BLUETOOTH_ERROR_NONE;
+ break;
+ case OLCP_OJECT_ID_NOT_FOUND:
+ BT_INFO("Object ID not found");
+ result = BLUETOOTH_ERROR_INTERNAL;
+ break;
+ default:
+ BT_INFO("Indication Response Fail [0x%x]", result_code);
+ result = BLUETOOTH_ERROR_INTERNAL;
+ break;
+ }
+ goto olcp_done;
+ }
+
+ switch (req_opcode) {
+ case OLCP_ORDER:
+ case OLCP_REQ_NO_OBJ:
+ case OLCP_CLEAR_MARKING:
+ break;
+ case OLCP_FIRST:
+ case OLCP_LAST:
+ case OLCP_NEXT:
+ case OLCP_PREVIOUS: {
+ /* Once we get success indication response for OLCP,
+ * attempt to read object metadata */
+ metadata = g_malloc0(sizeof(object_metadata));
+ error_code = bluetooth_otp_read_characteristic_value(otp_client_s->otp_name_obj_path);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read Charc Value Failed %s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ result = error_code;
+ goto olcp_done;
+ }
+ } break;
+ case OLCP_GOTO:
+ /* Update the object id & notify client app*/
+ otp_client_s->object_id = select_obj_id;
+ select_obj_id = 0;
+ goto olcp_done;
+ break;
+ default:
+ BT_INFO("Indication Response Failed : Wrong Req Opcode [0x%x], Reason [0x%x]",
+ req_opcode, result_code);
+ result = BLUETOOTH_ERROR_INTERNAL;
+ goto olcp_done;
+ break;
+ }
+ return;
+olcp_done:
+ switch (otp_client_s->curr_op) {
+ case BT_OTP_OBJECT_DISCOVERY:
+ case BT_OTP_OBJECT_SELECT:
+ _bt_otp_send_callback(result, NULL, 0, 0, otp_client_s);
+ break;
+ default:
+ break;
+ }
+ } else if (!g_strcmp0(otp_client_s->otp_obj_changed_obj_path, info->handle)) {
+ BT_INFO("Indication Received for Object Changed Characteristic");
+ uint8_t flag = info->data[0];
+ uint64_t id = 0;
+ BT_INFO("Source of change : %s", BT_OTP_OBJ_CHANGED_SRC(flag) ? "Client" : "Server");
+ BT_INFO("Change occurred to obj contents : %s", BT_OTP_OBJ_CHANGED_CONTENT(flag) ? "True" : "False");
+ BT_INFO("Change occurred to obj metadata : %s", BT_OTP_OBJ_CHANGED_META(flag) ? "True" : "False");
+ BT_INFO("Object creation : %s", BT_OTP_OBJ_CHANGED_CREATE(flag) ? "True" : "False");
+ BT_INFO("Object Deletion : %s", BT_OTP_OBJ_CHANGED_DELETE(flag) ? "True" : "False");
+
+ id = (uint64_t)(info->data[6] & 0xFF) << 40 |
+ (uint64_t)(info->data[5] & 0xFF) << 32 |
+ (uint64_t)(info->data[4] & 0xFF) << 24 |
+ (uint64_t)(info->data[3] & 0xFF) << 16 |
+ (uint64_t)(info->data[2] & 0xFF) << 8 |
+ (uint64_t)(info->data[1] & 0xFF);
+ BT_INFO("Changed occurred to object id %u", id);
+ }
+}
+
+void __bt_otp_reset_api_info(bt_otp_client_s *otp_client_s)
+{
+ otp_client_s->curr_op = BT_OTP_NO_OPERATION;
+ otp_client_s->callback = NULL;
+ otp_client_s->user_data = NULL;
+}
+
+int bt_otp_client_discover_all_objects(bt_otp_client_h otp_client,
+ bt_otp_client_object_discovery_cb callback,
+ void *user_data)
+{
+ int error_code = BLUETOOTH_ERROR_NONE;
+ bt_otp_client_s *otp_client_s = (bt_otp_client_s *)otp_client;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(otp_client_s);
+
+ if (_bt_otp_client_find(otp_client_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (otp_client_s->connected == false) {
+ BT_ERR("Remote device [%s] is not conencted", otp_client_s->remote_address);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (otp_client_s->curr_op != BT_OTP_NO_OPERATION) {
+ BT_DBG("OTP client is busy");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ BT_DBG("OTP client Discover objects from Remote device [%s]", otp_client_s->remote_address);
+ otp_client_s->curr_op = BT_OTP_OBJECT_DISCOVERY;
+ otp_client_s->callback = callback;
+ otp_client_s->user_data = user_data;
+
+ _bt_otp_client_free_object_list(otp_client_s);
+
+ if (!otp_client_s->otp_olcp_control_point) {
+ /* Remote server supports only single object */
+ otp_client_s->multiple_obj_supp = TRUE;
+ metadata = g_malloc0(sizeof(object_metadata));
+ error_code = bluetooth_otp_read_characteristic_value(otp_client_s->otp_name_obj_path);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ BT_INFO("Read Charc Value Failed %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ error_code = BT_ERROR_OPERATION_FAILED;
+ __bt_otp_reset_api_info(otp_client_s);
+ }
+ } else {
+ /* Remote server supports multiple objects.
+ * Perform OLCP to discover all objects.
+ */
+ uint8_t value[7] = {0x00};
+ value[0] = OLCP_FIRST;
+ error_code = bluetooth_otp_write_characteristics_value(otp_client_s->otp_olcp_control_point, value, 1);
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("Failed to write control point : %s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ __bt_otp_reset_api_info(otp_client_s);
+ }
+ }
+
+ return error_code;
+}
+
+static void _bt_otp_client_send_select_object_callback(int result,
+ bt_otp_client_s *otp_client_s)
+{
+ ((bt_otp_client_object_select_cb)otp_client_s->callback)(
+ result, otp_client_s->remote_address,
+ otp_client_s->object_id, otp_client_s->user_data);
+}
+
+int bt_otp_client_select_object(bt_otp_client_h otp_client, unsigned long long id,
+ bt_otp_client_object_select_cb callback, void *user_data)
+{
+ int error_code;
+ bt_otp_client_s *otp_client_s = (bt_otp_client_s *)otp_client;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(otp_client_s);
+
+ if (_bt_otp_client_find(otp_client_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (otp_client_s->connected == false) {
+ BT_ERR("Remote device [%s] is not conencted", otp_client_s->remote_address);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (otp_client_s->object_id == id) {
+ BT_INFO("Object already selected");
+ _bt_otp_client_send_select_object_callback(BLUETOOTH_ERROR_NONE, otp_client_s);
+ return BLUETOOTH_ERROR_NONE;
+ }
+ if (otp_client_s->curr_op != BT_OTP_NO_OPERATION) {
+ BT_DBG("OTP client is busy");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (~BT_OTP_IS_OLCP_GOTO_SUPPORTED(otp_client_s->otp_feature)) {
+ BT_INFO("OLCP GOTO not supported");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ BT_DBG("OTP client select object [%llu] from Remote device [%s]", id, otp_client_s->remote_address);
+ otp_client_s->curr_op = BT_OTP_OBJECT_SELECT;
+ otp_client_s->callback = callback;
+ otp_client_s->user_data = user_data;
+
+ select_obj_id = id;
+
+ uint8_t value[7] = {0x00};
+ value[0] = OLCP_GOTO;
+ value[1] = select_obj_id & 0xFF;
+ value[2] = (select_obj_id >> 8) & 0xFF;
+ value[3] = (select_obj_id >> 16) & 0xFF;
+ value[4] = (select_obj_id >> 24) & 0xFF;
+ value[5] = (select_obj_id >> 32) & 0xFF;
+ value[6] = (select_obj_id >> 40) & 0xFF;
+
+ error_code = bluetooth_otp_write_characteristics_value(otp_client_s->otp_olcp_control_point,
+ value, 7);
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("Failed to write control point : %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ __bt_otp_reset_api_info(otp_client_s);
+ }
+
+ return error_code;
+}
+
+static bool __bt_otc_connection_timeout_cb(gpointer user_data)
+{
+ bluetooth_otc_info_t *otc_info = (bluetooth_otc_info_t *)user_data;
+ char *address = otc_info->address;
+ bluetooth_device_address_t addr_hex = { {0,} };
+
+ /* TODO: Write OACP Abort opcode, then disconnect */
+
+ BT_DBG("OTC Connection timer Expired [%s]", address);
+ _bt_convert_address_to_hex(&addr_hex, address);
+ bluetooth_otp_disconnect_otc(&addr_hex);
+
+ return TRUE;
+}
+
+static gboolean __client_data_received_cb(GIOChannel *chan, GIOCondition cond,
+ gpointer data)
+{
+ bluetooth_otc_info_t *otc_info = (bluetooth_otc_info_t *)data;
+ char *remote_addr = otc_info->address;
+ GIOStatus status = G_IO_STATUS_NORMAL;
+ GError *err = NULL;
+ char *buffer = NULL;
+ gsize len = 0;
+ int written;
+ int fd;
+
+ BT_DBG("");
+
+ fd = g_io_channel_unix_get_fd(chan);
+ if (cond & (G_IO_NVAL | G_IO_HUP | G_IO_ERR)) {
+ otc_connection_status = FALSE;
+ BT_ERR("OTC Client disconnected: %d", fd);
+ close(fd);
+ g_source_remove(id);
+ return FALSE;
+ }
+
+ buffer = g_malloc0(BT_L2CAP_BUFFER_LEN + 1);
+
+ status = g_io_channel_read_chars(chan, buffer,
+ BT_L2CAP_BUFFER_LEN,
+ &len, &err);
+ if (status != G_IO_STATUS_NORMAL) {
+ BT_ERR("IO Channel read is failed with %d", status);
+
+ g_free(buffer);
+ if (err) {
+ otc_connection_status = FALSE;
+ BT_ERR("IO Channel read error [%s]", err->message);
+ if (status == G_IO_STATUS_ERROR) {
+ BT_ERR("cond : %d", cond);
+ g_error_free(err);
+ close(fd);
+ g_source_remove(id);
+ return FALSE;
+ }
+ g_error_free(err);
+ }
+ return TRUE;
+ }
+
+ BT_DBG("Received data length %d, remote_addr = %s", len, remote_addr);
+
+ if (!oacp_read_op) {
+ char file_path[BT_FILE_PATH_MAX_LEN] = {0, };
+ bt_otp_client_s *otp_client_s = NULL;
+ object_metadata *object_info = NULL;
+ uint64_t obj_id;
+ FILE *fp = NULL;
+ char err_msg[256] = {0, };
+
+ otp_client_s = _bt_otp_client_find(remote_addr);
+ if (otp_client_s == NULL) {
+ BT_INFO("Client Not Found");
+ goto fail;
+ }
+
+ obj_id = otp_client_s->object_id;
+
+ object_info = _bt_otp_client_find_object(otp_client_s->object_list, obj_id);
+ if (!object_info) {
+ BT_INFO("Object Not Found [%llu]", obj_id);
+ goto fail;
+ }
+
+ snprintf(file_path, sizeof(file_path), "%s%s",
+ BT_OTP_CLIENT_BASE_DIR, object_info->name);
+ BT_DBG("file_path = [%s]", file_path);
+
+ fp = fopen(file_path, "w");
+ if (!fp) {
+ strerror_r(errno, err_msg, sizeof(err_msg));
+ BT_ERR("fopen() failed : %s", err_msg);
+ goto fail;
+ }
+
+ oacp_read_op = g_malloc0(sizeof(bt_otp_client_read_op));
+ oacp_read_op->offset = 0;
+ oacp_read_op->length = 0;
+ oacp_read_op->fp = fp;
+ oacp_read_op->size = object_info->curr_size;
+ oacp_read_op->file_path = g_strdup(file_path);
+ }
+
+ if (oacp_read_op->length <= oacp_read_op->size) {
+ written = fwrite(buffer, 1, len, oacp_read_op->fp);
+ oacp_read_op->length += written;
+ BT_DBG("written [%d], length_sofar [%lu], received_buff_len [%d], size [%lu]",
+ written, oacp_read_op->length, len, oacp_read_op->size);
+ }
+
+ if (timeout_id > 0) {
+ g_source_remove(timeout_id);
+ timeout_id = g_timeout_add(BT_OTC_CONNECTION_MAX_TIMEOUT,
+ (GSourceFunc)__bt_otc_connection_timeout_cb, (gpointer)otc_info);
+ }
+fail:
+ g_free(buffer);
+ return TRUE;
+}
+
+static void _bt_otp_client_notify_read_object_status(int result,
+ char *file_path, bt_otp_client_s *otp_client_s)
+{
+
+ ((bt_otp_client_read_object_complete_cb)otp_client_s->callback)(
+ result, otp_client_s->remote_address,
+ file_path, otp_client_s->user_data);
+}
+
+static void _bt_otp_client_write_on_fd(bluetooth_otc_info_t *otc_info)
+{
+ char buf[BT_L2CAP_BUFFER_LEN];
+ int written, read, len;
+ FILE *fp = NULL;
+ int length;
+ unsigned int byteswritten = 0;
+ int fd = otc_info->fd;
+ char *address = otc_info->address;
+ int result = BLUETOOTH_ERROR_NONE;
+ bt_otp_client_s *otp_client_s = NULL;
+ bluetooth_device_address_t addr_hex = { {0,} };
+ struct tm fc_tm;
+ uint8_t value[7];
+ char err_msg[256] = {0, };
+
+ if (!oacp_write_op) {
+ result = BLUETOOTH_ERROR_INTERNAL;
+ goto fail;
+ }
+
+ BT_DBG("file_path = [%s]", oacp_write_op->file_path);
+
+ fp = fopen(oacp_write_op->file_path, "r");
+ if (!fp) {
+ strerror_r(errno, err_msg, sizeof(err_msg));
+ BT_ERR("fopen() failed : %s", err_msg);
+ result = BLUETOOTH_ERROR_INTERNAL;
+ goto fail;
+ }
+
+ if (oacp_write_op->offset > 0)
+ fseek(fp, oacp_write_op->offset, SEEK_SET);
+
+ BT_DBG("length [%d]", oacp_write_op->length);
+ length = oacp_write_op->length;
+
+ while (length > 0) {
+ if (length < BT_L2CAP_BUFFER_LEN)
+ len = length;
+ else
+ len = BT_L2CAP_BUFFER_LEN;
+
+ read = fread(buf, 1, len, fp);
+ written = write(fd, buf, len);
+
+ if (written < 0) {
+ result = BLUETOOTH_ERROR_INTERNAL;
+ goto fail;
+ }
+
+ length -= written;
+ byteswritten += written;
+
+ BT_DBG("read [%d], written [%d], rem_len [%d]",
+ read, written, length);
+ }
+
+fail:
+ if (fp)
+ fclose(fp);
+
+ /* Disconnect and notify application */
+ _bt_convert_address_to_hex(&addr_hex, address);
+ bluetooth_otp_disconnect_otc(&addr_hex);
+
+ otp_client_s = _bt_otp_client_find(address);
+ if (otp_client_s == NULL) {
+ BT_INFO("Client Not Found");
+ return;
+ }
+
+ if (result == BLUETOOTH_ERROR_NONE) {
+ /* Write Last-modified */
+ memset(value, 0, 7);
+ localtime_r(&(oacp_write_op->last_modified), &fc_tm);
+
+ value[1] = ((fc_tm.tm_year+1900) >> 8) & 0xFF;
+ value[0] = (fc_tm.tm_year+1900) & 0xFF;
+ value[2] = (fc_tm.tm_mon+1) & 0xFF;
+ value[3] = fc_tm.tm_mday & 0xFF;
+ value[4] = fc_tm.tm_hour & 0xFF;
+ value[5] = fc_tm.tm_min & 0xFF;
+ value[6] = fc_tm.tm_sec & 0xFF;
+ result = bluetooth_otp_write_characteristics_value(otp_client_s->otp_last_modified_obj_path,
+ value, 7);
+ }
+
+ _bt_otp_client_send_write_object_callback(result,
+ byteswritten, otp_client_s);
+ __bt_otp_reset_api_info(otp_client_s);
+}
+
+void _bt_otc_connection_state_changed(int result, bluetooth_otc_info_t *otc_info)
+{
+ GIOChannel *data_io;
+ char file_path[BT_FILE_PATH_MAX_LEN];
+ bt_otp_client_s *otp_client_s = NULL;
+
+ BT_DBG("OTC Channel status [%d], fd [%d]", otc_info->connected, otc_info->fd);
+
+ otp_client_s = _bt_otp_client_find(otc_info->address);
+ if (otp_client_s == NULL) {
+ BT_INFO("Client Not Found");
+ return;
+ }
+
+ if (oacp_read_op) {
+ if (!otc_info->connected)
+ memcpy(file_path, oacp_read_op->file_path,
+ strlen(oacp_read_op->file_path) + 1);
+ /*
+ * Remove request in both connected/disconnected case.
+ * So that new request can proceed.
+ */
+ fclose(oacp_read_op->fp);
+ g_free(oacp_read_op->file_path);
+ g_free(oacp_read_op);
+ oacp_read_op = NULL;
+ }
+
+ if (otc_info->connected) {
+ BT_DBG("OTC Connected");
+ otc_connection_status = TRUE;
+
+ data_io = g_io_channel_unix_new(otc_info->fd);
+
+ g_io_channel_set_encoding(data_io, NULL, NULL);
+ g_io_channel_set_flags(data_io, G_IO_FLAG_NONBLOCK, NULL);
+
+ if (otp_client_s->curr_op == BT_OTP_OBJECT_WRITE) {
+ _bt_otp_client_write_on_fd(otc_info);
+ } else if (otp_client_s->curr_op == BT_OTP_OBJECT_READ) {
+ id = g_io_add_watch(data_io,
+ G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
+ __client_data_received_cb, (gpointer)otc_info);
+
+ timeout_id = g_timeout_add(BT_OTC_CONNECTION_MAX_TIMEOUT,
+ (GSourceFunc)__bt_otc_connection_timeout_cb, (gpointer)otc_info);
+ }
+ } else {
+ BT_DBG("OTC Disconnected");
+ otc_connection_status = FALSE;
+ if (timeout_id > 0) {
+ g_source_remove(timeout_id);
+ timeout_id = 0;
+ }
+
+ if (otp_client_s && (otp_client_s->curr_op == BT_OTP_OBJECT_READ)) {
+ _bt_otp_client_notify_read_object_status(BLUETOOTH_ERROR_NONE,
+ file_path, otp_client_s);
+ __bt_otp_reset_api_info(otp_client_s);
+ }
+ }
+}
+
+object_metadata *_bt_otp_client_find_object(GSList *list, uint64_t id)
+{
+ GSList *l;
+ object_metadata *info;
+
+ for (l = list; l; l = g_slist_next(l)) {
+ info = l->data;
+
+ if (info && (info->id == id))
+ return info;
+ }
+ return NULL;
+}
+
+int bt_otp_client_read_object_contents(bt_otp_client_h otp_client,
+ bt_otp_client_read_object_complete_cb callback,
+ void *user_data)
+{
+ bt_otp_client_s *otp_client_s = (bt_otp_client_s *)otp_client;
+ object_metadata *object_info = NULL;
+ uint64_t obj_id;
+ int error_code;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_OTP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(otp_client_s);
+
+ if (_bt_otp_client_find(otp_client_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (otp_client_s->connected == false) {
+ BT_ERR("Remote device [%s] is not conencted", otp_client_s->remote_address);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ obj_id = otp_client_s->object_id;
+
+ BT_DBG("OTP client Read objects Contents from Remote device [%s] for Object [%llu]",
+ otp_client_s->remote_address, obj_id);
+
+ object_info = _bt_otp_client_find_object(otp_client_s->object_list, obj_id);
+ if (!object_info) {
+ BT_INFO("Object Not Found [%llu]", obj_id);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (~BT_OTP_IS_OACP_READ_SUPPORTED(otp_client_s->otp_feature)) {
+ BT_INFO("OACP Read not supported");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (~BT_OTP_IS_READ_PERMITTED(object_info->props)) {
+ BT_INFO("Read not permitted");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (otp_client_s->curr_op != BT_OTP_NO_OPERATION) {
+ BT_DBG("OTP Client is busy");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ otp_client_s->callback = callback;
+ otp_client_s->user_data = user_data;
+ otp_client_s->curr_op = BT_OTP_OBJECT_READ;
+
+ uint32_t offset = 0;
+ uint32_t length = object_info->curr_size;
+
+ BT_INFO("Object ID [%llu],Offset [%lu], Length [%lu], curr_size [%lu]",
+ obj_id, offset, length, object_info->curr_size);
+ uint8_t value[9] = {0x00};
+
+ value[0] = OACP_READ;
+ value[1] = (offset) & 0xFF;
+ value[2] = (offset >> 8) & 0xFF;
+ value[3] = (offset >> 16) & 0xFF;
+ value[4] = (offset >> 24) & 0xFF;
+ value[5] = (length) & 0xFF;
+ value[6] = (length >> 8) & 0xFF;
+ value[7] = (length >> 16) & 0xFF;
+ value[8] = (length >> 24) & 0xFF;
+
+ error_code = bluetooth_otp_write_characteristics_value(otp_client_s->otp_oacp_control_point,
+ value, 9);
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("Failed to write control point : %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ __bt_otp_reset_api_info(otp_client_s);
+ }
+
+ return error_code;
+}
+
+static void _bt_otp_client_send_create_object_callback(int result,
+ uint64_t id, bt_otp_client_s *otp_client_s)
+{
+
+ ((bt_otp_client_object_create_cb)otp_client_s->callback)(
+ result, otp_client_s->remote_address,
+ id, otp_client_s->user_data);
+
+ if (oacp_create_op) {
+ g_free(oacp_create_op->filename);
+ g_free(oacp_create_op->type_uuid);
+ g_free(oacp_create_op);
+ oacp_create_op = NULL;
+ }
+}
+
+int _bt_otp_uuid_convert_string_to_hex(char *uuid, char *value)
+{
+ int len, uuid_len;
+ uint32_t data0, data4;
+ uint16_t data1, data2, data3, data5;
+
+ if (!uuid) {
+ BT_ERR("Object Type UUID NULL");
+ return 0;
+ }
+
+ len = strlen(uuid);
+
+ switch (len) {
+ case 4:
+ /* UUID 16bits */
+ sscanf(uuid, "%04hx", &data1);
+ data1 = htons(data1);
+ memcpy(value, &data1, 2);
+ uuid_len = 2;
+ break;
+
+ case 8:
+ /* UUID 32bits */
+ sscanf(uuid, "%08x", &data0);
+ data0 = htonl(data0);
+ memcpy(value, &data0, 4);
+ uuid_len = 4;
+ break;
+
+ case 36:
+ /* UUID 128bits */
+ sscanf(uuid, "%08x-%04hx-%04hx-%04hx-%08x%04hx",
+ &data0, &data1, &data2,
+ &data3, &data4, &data5);
+
+ data0 = htonl(data0);
+ data1 = htons(data1);
+ data2 = htons(data2);
+ data3 = htons(data3);
+ data4 = htonl(data4);
+ data5 = htons(data5);
+
+ memcpy(value, &data0, 4);
+ memcpy(value+4, &data1, 2);
+ memcpy(value+6, &data2, 2);
+ memcpy(value+8, &data3, 2);
+ memcpy(value+10, &data4, 4);
+ memcpy(value+14, &data5, 2);
+ uuid_len = 16;
+ break;
+
+ default:
+ uuid_len = 0;
+ }
+
+ return uuid_len;
+}
+
+int bt_otp_client_create_object(bt_otp_client_h otp_client,
+ const char *file_path,
+ bt_otp_client_object_create_cb callback,
+ void *user_data)
+{
+ int error_code;
+ bt_otp_client_s *otp_client_s = (bt_otp_client_s *)otp_client;
+ struct stat st;
+ uint32_t size;
+ char *file_name, *last_token;
+ time_t curr_time;
+ char *type_uuid;
+ char err_msg[256] = {0, };
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(otp_client_s);
+
+ if (_bt_otp_client_find(otp_client_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (otp_client_s->connected == false) {
+ BT_ERR("Remote device [%s] is not conencted", otp_client_s->remote_address);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (otp_client_s->curr_op != BT_OTP_NO_OPERATION) {
+ BT_DBG("OTP Client is busy");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (~BT_OTP_IS_OACP_CREATE_SUPPORTED(otp_client_s->otp_feature)) {
+ BT_INFO("OACP Create not supported");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ BT_DBG("OTP client create object [%s] in Remote device [%s]",
+ file_path, otp_client_s->remote_address);
+
+ /* Get file_name & size from file_path */
+ if (stat(file_path, &st) == -1) {
+ strerror_r(errno, err_msg, sizeof(err_msg));
+ BT_INFO("stat failed: %s (%d)\n", err_msg, errno);
+ return BLUETOOTH_ERROR_INTERNAL;
+ }
+
+ otp_client_s->callback = callback;
+ otp_client_s->user_data = user_data;
+ otp_client_s->curr_op = BT_OTP_OBJECT_CREATE;
+
+ size = (uint32_t)st.st_size;
+ last_token = strrchr(file_path, '/');
+ file_name = last_token + 1;
+
+ BT_INFO("Filepath [%s], Filename [%s], Size[%u]\n",
+ file_path, file_name, size);
+
+ oacp_create_op = g_malloc0(sizeof(bt_otp_client_create_op));
+ oacp_create_op->size = size;
+ oacp_create_op->filename = g_strdup(file_name);
+
+ time(&curr_time);
+ oacp_create_op->first_created = curr_time;
+
+ /* There isn't clear description for Object Type in spec */
+ type_uuid = g_strdup(UNSUPPORTED_OBJECT_TYPE_UUID);
+ oacp_create_op->type_uuid = g_strdup(type_uuid);
+
+ /* UUIDs can be 128/64/16 bits */
+ uint8_t value[40] = {0x00};
+ int len;
+
+ value[0] = OACP_CREATE;
+ len = 1;
+ len += _bt_otp_uuid_convert_string_to_hex(type_uuid, (char *)value + 1);
+ value[++len] = size & 0xFF;
+ value[++len] = (size >> 8) & 0xFF;
+ value[++len] = (size >> 16) & 0xFF;
+ value[++len] = (size >> 24) & 0xFF;
+
+ error_code = bluetooth_otp_write_characteristics_value(otp_client_s->otp_oacp_control_point,
+ value, len);
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("Failed to write control point : %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ __bt_otp_reset_api_info(otp_client_s);
+ }
+ g_free(type_uuid);
+ return error_code;
+}
+
+static void _bt_otp_client_send_write_object_callback(int result,
+ unsigned int length, bt_otp_client_s *otp_client_s)
+{
+ ((bt_otp_client_object_write_cb)otp_client_s->callback)(
+ result, otp_client_s->remote_address,
+ length, otp_client_s->user_data);
+
+ if (oacp_write_op) {
+ g_free(oacp_write_op->file_path);
+ g_free(oacp_write_op);
+ oacp_write_op = NULL;
+ }
+}
+
+int bt_otp_client_write_object(bt_otp_client_h otp_client,
+ const char *file_path,
+ int offset, int length, int mode,
+ bt_otp_client_object_write_cb callback,
+ void *user_data)
+{
+ int error_code;
+ bt_otp_client_s *otp_client_s = (bt_otp_client_s *)otp_client;
+ object_metadata *object_info = NULL;
+ struct stat st;
+ uint32_t size;
+ time_t curr_time;
+ char err_msg[256] = {0, };
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(otp_client_s);
+ BT_CHECK_INPUT_PARAMETER(file_path);
+
+ if (_bt_otp_client_find(otp_client_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (otp_client_s->connected == false) {
+ BT_ERR("Remote device [%s] is not conencted", otp_client_s->remote_address);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (otp_client_s->curr_op != BT_OTP_NO_OPERATION) {
+ BT_DBG("OTP Client is busy");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (~BT_OTP_IS_OACP_WRITE_SUPPORTED(otp_client_s->otp_feature)) {
+ BT_INFO("OACP Write not supported");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ object_info = _bt_otp_client_find_object(otp_client_s->object_list,
+ otp_client_s->object_id);
+ if (!object_info) {
+ BT_INFO("Object Not Found [%llu]", otp_client_s->object_id);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (~BT_OTP_IS_WRITE_PERMITTED(object_info->props)) {
+ BT_INFO("Write not permitted");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ BT_DBG("OTP client wirte object [%s] in Remote device [%s]",
+ file_path, otp_client_s->remote_address);
+
+ /* Get file_name & size from file_path */
+ if (stat(file_path, &st) == -1) {
+ strerror_r(errno, err_msg, sizeof(err_msg));
+ BT_INFO("stat failed: %s (%d)\n", err_msg, errno);
+ return BLUETOOTH_ERROR_INTERNAL;
+ }
+
+ size = (uint32_t)st.st_size;
+
+ BT_INFO("Filepath [%s], Size[%llu]",
+ file_path, size);
+ BT_INFO("offset[%llu], length[%llu], mode[%u]",
+ offset, length, mode);
+
+ oacp_write_op = g_malloc0(sizeof(bt_otp_client_write_op));
+ oacp_write_op->size = size;
+ oacp_write_op->file_path = g_strdup(file_path);
+ oacp_write_op->offset = offset;
+ oacp_write_op->length = length;
+ oacp_write_op->mode = mode;
+
+ time(&curr_time);
+ oacp_write_op->last_modified = curr_time;
+
+ if (offset < 0 && (offset > size || (length - offset) > size)) {
+ /* Invalid param */
+ return BLUETOOTH_ERROR_INTERNAL;
+ }
+
+ otp_client_s->callback = callback;
+ otp_client_s->user_data = user_data;
+ otp_client_s->curr_op = BT_OTP_OBJECT_WRITE;
+
+ uint8_t value[10] = {0x00};
+ value[0] = OACP_WRITE;
+ value[1] = offset & 0xFF;
+ value[2] = (offset >> 8) & 0xFF;
+ value[3] = (offset >> 16) & 0xFF;
+ value[4] = (offset >> 24) & 0xFF;
+ value[5] = length & 0xFF;
+ value[6] = (length >> 8) & 0xFF;
+ value[7] = (length >> 16) & 0xFF;
+ value[8] = (length >> 24) & 0xFF;
+ value[9] = mode & 0xFF;
+
+ error_code = bluetooth_otp_write_characteristics_value(otp_client_s->otp_oacp_control_point,
+ value, 10);
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("Failed to write control point : %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ __bt_otp_reset_api_info(otp_client_s);
+ }
+
+ return error_code;
+}
+
+static void _bt_otp_client_send_execute_object_callback(int result,
+ bt_otp_client_s *otp_client_s)
+{
+ ((bt_otp_client_object_execute_cb)otp_client_s->callback)(
+ result, otp_client_s->remote_address,
+ otp_client_s->object_id, otp_client_s->user_data);
+}
+
+int bt_otp_client_execute_object(bt_otp_client_h otp_client,
+ bt_otp_client_object_execute_cb callback,
+ void *user_data)
+{
+ int error_code;
+ bt_otp_client_s *otp_client_s = (bt_otp_client_s *)otp_client;
+ object_metadata *object_info = NULL;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(otp_client_s);
+
+ if (_bt_otp_client_find(otp_client_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (otp_client_s->connected == false) {
+ BT_ERR("Remote device [%s] is not conencted", otp_client_s->remote_address);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (otp_client_s->curr_op != BT_OTP_NO_OPERATION) {
+ BT_DBG("OTP Client is busy");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (~BT_OTP_IS_OACP_EXECUTE_SUPPORTED(otp_client_s->otp_feature)) {
+ BT_INFO("OACP Execute not supported");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ object_info = _bt_otp_client_find_object(otp_client_s->object_list,
+ otp_client_s->object_id);
+ if (!object_info) {
+ BT_INFO("Object Not Found [%llu]", otp_client_s->object_id);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (~BT_OTP_IS_EXECUTE_PERMITTED(object_info->props)) {
+ BT_INFO("Execute not permitted");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ BT_DBG("OTP client execute object [%llu] in Remote device [%s]",
+ otp_client_s->object_id, otp_client_s->remote_address);
+
+ otp_client_s->callback = callback;
+ otp_client_s->user_data = user_data;
+ otp_client_s->curr_op = BT_OTP_OBJECT_EXECUTE;
+
+ uint8_t value[1];
+ value[0] = OACP_EXECUTE;
+
+ error_code = bluetooth_otp_write_characteristics_value(otp_client_s->otp_oacp_control_point,
+ value, 1);
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("Failed to write control point : %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ __bt_otp_reset_api_info(otp_client_s);
+ }
+
+ return error_code;
+}
+
+static void _bt_otp_client_send_delete_object_callback(int result,
+ bt_otp_client_s *otp_client_s)
+{
+ ((bt_otp_client_object_delete_cb)otp_client_s->callback)(
+ result, otp_client_s->remote_address,
+ otp_client_s->object_id, otp_client_s->user_data);
+
+ if (result == BLUETOOTH_ERROR_NONE)
+ otp_client_s->object_id = 0;
+}
+
+int bt_otp_client_delete_object(bt_otp_client_h otp_client,
+ bt_otp_client_object_delete_cb callback,
+ void *user_data)
+{
+ int error_code;
+ bt_otp_client_s *otp_client_s = (bt_otp_client_s *)otp_client;
+ object_metadata *object_info = NULL;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(otp_client_s);
+
+ if (_bt_otp_client_find(otp_client_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (otp_client_s->connected == false) {
+ BT_ERR("Remote device [%s] is not conencted", otp_client_s->remote_address);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (otp_client_s->curr_op != BT_OTP_NO_OPERATION) {
+ BT_DBG("OTP Client is busy");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (~BT_OTP_IS_OACP_DELETE_SUPPORTED(otp_client_s->otp_feature)) {
+ BT_INFO("OACP Delete not supported");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ object_info = _bt_otp_client_find_object(otp_client_s->object_list,
+ otp_client_s->object_id);
+ if (!object_info) {
+ BT_INFO("Object Not Found [%llu]", otp_client_s->object_id);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ if (~BT_OTP_IS_DELETE_PERMITTED(object_info->props)) {
+ BT_INFO("Delete not permitted");
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ BT_DBG("OTP client delete object [%llu] in Remote device [%s]",
+ otp_client_s->object_id, otp_client_s->remote_address);
+
+ otp_client_s->callback = callback;
+ otp_client_s->user_data = user_data;
+ otp_client_s->curr_op = BT_OTP_OBJECT_DELETE;
+
+ uint8_t value[1];
+ value[0] = OACP_DELETE;
+
+ error_code = bluetooth_otp_write_characteristics_value(otp_client_s->otp_oacp_control_point,
+ value, 1);
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("Failed to write control point : %s(0x%08x)",
+ _bt_convert_error_to_string(error_code), error_code);
+ __bt_otp_reset_api_info(otp_client_s);
+ }
+
+ return error_code;
+}
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON); \
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_PBAP_CLIENT); \
}
-
+/* LCOV_EXCL_START */
int bt_pbap_client_initialize(void)
{
BT_CHECK_PBAP_CLIENT_SUPPORT();
return error_code;
}
+/* LCOV_EXCL_STOP */
#include "bluetooth_internal.h"
#include "bluetooth_private.h"
-static int role_registered = -1;
+typedef struct {
+ bt_gatt_h linkloss_service;
+ bt_gatt_h immediate_service;
+} bt_proximity_service_info_t;
+
+typedef struct {
+ bt_proximity_service_info_t services;
+} bt_proximity_reporter_server_s;
+
+typedef struct {
+ bt_proximity_reporter_server_s reporter_server;
+ int services_supported;
+ bool connected;
+
+ const void *connection_callback;
+ void *user_data;
+} bt_proximity_reporter_s;
+
+typedef struct {
+ GSList *services;
+ char *remote_address;
+ bool services_discovered;
+ bool connected;
+
+ const void *connection_callback;
+ void *user_data;
+} bt_proximity_monitor_s;
+
+GSList *proximity_monitor_list;
+
+static bool pxp_monitor_initialized = false;
+static bool pxp_reporter_initialized = false;
+static int pxp_monitor_supported_services = false;
+static bt_proximity_reporter_s *reporter_s = NULL;
+
+#define BT_CHECK_GATT_PXP_SUPPORT() \
+{ \
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON); \
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_LE); \
+}
-int bt_proximity_register(bt_proximity_role_t role, bt_proximity_property_changed_cb callback, void *user_data)
+int bt_proximity_reporter_create(bt_proximity_reporter_h *reporter)
{
int error_code = BT_ERROR_NONE;
- BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_GATT_PXP_SUPPORT();
BT_CHECK_INIT_STATUS();
- BT_CHECK_INPUT_PARAMETER(callback); /* LCOV_EXCL_LINE */
- if (role == BT_PROXIMITY_REPORTER) {
- /* register Reporter Role Here */
- error_code = _bt_get_error_code(bluetooth_register_proximity_reporter());
- if (error_code != BT_ERROR_NONE)
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ if (reporter_s != NULL)
+ return BT_ERROR_ALREADY_DONE;
+
+ /* register Reporter Role Here */
+ error_code = _bt_get_error_code(bluetooth_proximity_reporter_register());
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ else
+ pxp_reporter_initialized = true;
+
+ reporter_s = g_malloc0(sizeof(*reporter_s));
+ if (reporter_s == NULL) {
+ error_code = BT_ERROR_OUT_OF_MEMORY;
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
}
- role_registered = role;
+ *reporter = (bt_proximity_reporter_s *)reporter_s;
+ error_code = bt_gatt_service_create(PXP_LINK_LOSS_SVC_UUID, BT_GATT_SERVICE_TYPE_PRIMARY,
+ &reporter_s->reporter_server.services.linkloss_service);
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
- /* register the callback, common for both reporter and monitor roles */
- _bt_set_cb(BT_EVENT_PROXIMITY_PROPERTY_CHANGED, callback, user_data);
+ error_code = bt_gatt_service_create(PXP_IMMEDIATE_ALERT_SVC_UUID, BT_GATT_SERVICE_TYPE_PRIMARY,
+ &reporter_s->reporter_server.services.linkloss_service);
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ /* By default the bluez stack supports Link loss and immediate alert service when we register */
+ reporter_s->services_supported = BT_PROXIMITY_LINKLOSS_ALERT | BT_PROXIMITY_IMMEDIATE_ALERT;
+
+ /* Start Advertising with Proximity services */
return error_code;
}
-int bt_proximity_unregister(bt_proximity_role_t role)
+int bt_proximity_reporter_destroy(bt_proximity_reporter_h reporter)
{
int error_code = BT_ERROR_NONE;
- BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_GATT_PXP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(reporter);
+
+ if (reporter_s == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (!pxp_reporter_initialized)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ /* Unregister Reporter Role Here */
+ error_code = _bt_get_error_code(bluetooth_proximity_reporter_unregister()); /* LCOV_EXCL_START */
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ else
+ pxp_reporter_initialized = false;
+
+ bt_gatt_destroy(reporter_s->reporter_server.services.linkloss_service);
+ bt_gatt_destroy(reporter_s->reporter_server.services.linkloss_service);
+ reporter_s->services_supported = 0;
+
+ g_free(reporter_s);
+ reporter_s = NULL;
+
+ return error_code;
+}
+
+int _bt_check_proximity_is_initialized(bool *is_initialized)
+{
+ BT_CHECK_GATT_PXP_SUPPORT();
BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(is_initialized);
+
+ if (pxp_reporter_initialized || pxp_monitor_initialized)
+ *is_initialized = TRUE;
+ else
+ *is_initialized = FALSE;
+
+ return BT_ERROR_NONE;
+}
+/* LCOV_EXCL_STOP */
+static bt_proximity_monitor_s *_bt_proximity_monitor_find(const char *remote_address)
+{
+ GSList *l;
+
+ for (l = proximity_monitor_list; l; l = g_slist_next(l)) {
+ bt_proximity_monitor_s *c = (bt_proximity_monitor_s *)l->data;
+
+ if ((c == NULL) || (c->remote_address == NULL)) {
+ BT_ERR("_bt_proximity_monitor_find Error Parameter are NULL..\n");
+ continue;
+ } else if (!g_ascii_strcasecmp(c->remote_address, remote_address)) {
+ return c;
+ }
+ }
+ return NULL;
+}
+/* LCOV_EXCL_START */
+int _bt_proximity_connection_set_state_changed(int result, const char *remote_address, bool connected)
+{
+ int service_type = 0;
+ int error_code = BT_ERROR_NONE;
+
+ BT_DBG("bt_proximity_connection_state_changed");
+ if (pxp_monitor_initialized) {
+ bt_proximity_monitor_s *monitor_s = NULL;
+
+ monitor_s = _bt_proximity_monitor_find(remote_address);
+ if (monitor_s) {
+ bluetooth_device_address_t addr_hex = { {0,} };
+ _bt_convert_address_to_hex(&addr_hex, remote_address);
+ error_code = bluetooth_proximity_monitor_get_supported_services(&addr_hex, &service_type);
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+
+ monitor_s->connected = connected;
+ monitor_s->services_discovered = service_type;
+ pxp_monitor_supported_services = service_type;
+ if (monitor_s->connection_callback)
+ ((bt_proximity_monitor_connection_state_changed_cb)monitor_s->connection_callback)
+ (result, remote_address, monitor_s, connected, service_type, monitor_s->user_data);
+ }
+ }
+ if (pxp_reporter_initialized) {
+ if (reporter_s) {
+ service_type = reporter_s->services_supported;
+ reporter_s->connected = connected;
+ if (reporter_s->connection_callback)
+ ((bt_proximity_reporter_connection_state_changed_cb)reporter_s->connection_callback)
+ (result, remote_address, reporter_s, connected, service_type, reporter_s->user_data);
+ }
+ }
+ return error_code;
+}
+/* LCOV_EXCL_STOP */
+int bt_proximity_monitor_create(const char *remote_address, bt_proximity_monitor_h *monitor)
+{
+ int error_code = BT_ERROR_NONE;
+ bt_proximity_monitor_s *monitor_s = NULL;
+ bool connected = false;
+ bluetooth_device_address_t addr_hex = { {0,} };
+ int service_type = 0;
+ GSList *l;
+
+ BT_CHECK_GATT_PXP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(remote_address); /* LCOV_EXCL_START */
+ BT_CHECK_INPUT_PARAMETER(monitor); /* LCOV_EXCL_START */
+
+ for (l = proximity_monitor_list; l; l = g_slist_next(l)) {
+ bt_proximity_monitor_s *c = (bt_proximity_monitor_s *)l->data;
+
+ if ((c == NULL) || (c->remote_address == NULL)) {
+ BT_ERR("bt_proximity_monitor_create Error Parameter are NULL..\n");
+ continue;
+ } else if (!g_ascii_strcasecmp(c->remote_address, remote_address)) {
+ BT_ERR("Gatt client for %s is already created",
+ remote_address);
+ return BT_ERROR_ALREADY_DONE;
+ }
+ }
+
+ monitor_s = g_malloc0(sizeof(*monitor_s));
+ if (monitor_s == NULL) {
+ error_code = BT_ERROR_OUT_OF_MEMORY;
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ monitor_s->remote_address = g_strdup(remote_address);
+ if (monitor_s->remote_address == NULL) {
+ g_free(monitor_s);
+ error_code = BT_ERROR_OUT_OF_MEMORY;
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ *monitor = (bt_proximity_monitor_h)monitor_s;
+ proximity_monitor_list = g_slist_append(proximity_monitor_list, monitor_s);
+
+ if (bt_device_is_profile_connected(remote_address, BT_PROFILE_GATT,
+ &connected) != BT_ERROR_NONE)
+ BT_ERR("bt_device_is_profile_connected is failed");
+ monitor_s->connected = connected;
+
+ _bt_convert_address_to_hex(&addr_hex, remote_address);
- if (role == BT_PROXIMITY_REPORTER) {
- /* Unregister Reporter Role Here */
- error_code = _bt_get_error_code(bluetooth_unregister_proximity_reporter());
- if (error_code != BT_ERROR_NONE)
+ if (bluetooth_proximity_monitor_get_supported_services(&addr_hex,
+ &service_type) != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ monitor_s->services_discovered = service_type;
+
+ pxp_monitor_initialized = true;
+
+ BT_INFO("Proximity Monitor Handle is created");
+
+ return error_code;
+}
+
+int bt_proximity_monitor_destroy(bt_proximity_monitor_h monitor)
+{
+ bt_proximity_monitor_s *monitor_s = (bt_proximity_monitor_s *)monitor;
+
+ BT_CHECK_GATT_PXP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(monitor); /* LCOV_EXCL_START */
+
+ if (_bt_proximity_monitor_find(monitor_s->remote_address) == NULL)
+ return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
+
+ if (monitor_s->connection_callback) {
+ monitor_s->connection_callback = NULL;
+ monitor_s->user_data = NULL;
}
+ pxp_monitor_supported_services = 0;
+
+ g_free(monitor_s->remote_address);
+ proximity_monitor_list = g_slist_remove(proximity_monitor_list, monitor_s);
+ g_free(monitor_s);
+
+ return BT_ERROR_NONE; /* LCOV_EXCL_STOP */
+}
+
+int bt_proximity_monitor_connect(bt_proximity_monitor_h monitor)
+{
+ int error_code;
+ bt_proximity_monitor_s *monitor_s = (bt_proximity_monitor_s *)monitor;
- /* unregister the callback, common for both reporter and monitor roles */
- _bt_unset_cb(BT_EVENT_PROXIMITY_PROPERTY_CHANGED);
- role_registered = -1;
+ BT_CHECK_GATT_PXP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(monitor_s);/* LCOV_EXCL_START */
+
+ if (_bt_proximity_monitor_find(monitor_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ error_code = bt_gatt_connect(monitor_s->remote_address, FALSE);
+
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
return error_code;
}
+/* LCOV_EXCL_STOP */
+int bt_proximity_monitor_disconnect(bt_proximity_monitor_h monitor)
+{
+ int error_code;
+ bt_proximity_monitor_s *monitor_s = (bt_proximity_monitor_s *)monitor;
+
+ BT_CHECK_GATT_PXP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(monitor_s);
+/* LCOV_EXCL_START */
+ if (_bt_proximity_monitor_find(monitor_s->remote_address) == NULL)
+ return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
+
+ error_code = bt_gatt_disconnect(monitor_s->remote_address);
+
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+
+ return error_code;
+}
+/* LCOV_EXCL_STOP */
+int bt_proximity_monitor_set_connection_state_changed_cb(bt_proximity_monitor_h monitor,
+ bt_proximity_monitor_connection_state_changed_cb callback, void *user_data)
+{
+ bt_proximity_monitor_s *monitor_s = (bt_proximity_monitor_s *)monitor;
+
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(monitor_s);
+ BT_CHECK_INPUT_PARAMETER(callback);
+
+ if (_bt_proximity_monitor_find(monitor_s->remote_address) == NULL)
+ return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
+
+ /* register the callback */
+ monitor_s->connection_callback = callback;
+ monitor_s->user_data = user_data;
+
+ return BT_ERROR_NONE;
+}
+
+int bt_proximity_monitor_unset_connection_state_changed_cb(bt_proximity_monitor_h monitor)
+{
+ bt_proximity_monitor_s *monitor_s = (bt_proximity_monitor_s *)monitor;
+
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(monitor_s);
+
+ if (_bt_proximity_monitor_find(monitor_s->remote_address) == NULL)
+ return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
+
+ /* unregister the callback */
+ monitor_s->connection_callback = NULL;
+ monitor_s->user_data = NULL;
+
+ return BT_ERROR_NONE;
+}
+
+int bt_proximity_reporter_set_connection_state_changed_cb(bt_proximity_reporter_h reporter,
+ bt_proximity_reporter_connection_state_changed_cb callback, void *user_data)
+{
+ bt_proximity_reporter_s *reporter_l = (bt_proximity_reporter_s *)reporter;
+
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(reporter_l);
+ BT_CHECK_INPUT_PARAMETER(callback);
+
+ /* register the callback */
+ reporter_s->connection_callback = callback;
+ reporter_s->user_data = user_data;
+
+ return BT_ERROR_NONE;
+}
+
+int bt_proximity_reporter_unset_connection_state_changed_cb(bt_proximity_reporter_h reporter)
+{
+ bt_proximity_reporter_s *reporter_l = (bt_proximity_reporter_s *)reporter;
+
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(reporter_l);
+
+ /* unregister the callback */
+ reporter_l->connection_callback = NULL;
+ reporter_l->user_data = NULL;
+
+ return BT_ERROR_NONE;
+}
-int bt_proximity_set_property(const char *remote_address, bt_proximity_property_t property, int value)
+int bt_proximity_reporter_set_property_changed_cb(bt_proximity_reporter_h reporter,
+ bt_proximity_reporter_property_changed_cb callback, void *user_data)
+{
+ bt_proximity_reporter_s *reporter_l = (bt_proximity_reporter_s *)reporter;
+
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(reporter_l);
+ BT_CHECK_INPUT_PARAMETER(callback);
+
+ /* register the callback */
+ _bt_set_cb(BT_EVENT_PROXIMITY_REPORTER_PROPERTY_CHANGED, callback, user_data);
+
+ return BT_ERROR_NONE;
+}
+
+int bt_proximity_reporter_unset_property_changed_cb(bt_proximity_reporter_h reporter)
+{
+ bt_proximity_reporter_s *reporter_l = (bt_proximity_reporter_s *)reporter;
+
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(reporter_l);
+
+ /* unregister the callback */
+ _bt_unset_cb(BT_EVENT_PROXIMITY_REPORTER_PROPERTY_CHANGED);
+
+ return BT_ERROR_NONE;
+}
+
+int bt_proximity_monitor_set_linkloss_alert(bt_proximity_monitor_h monitor, int value)
{
int error_code = BT_ERROR_NONE;
+ bt_proximity_monitor_s *monitor_s = (bt_proximity_monitor_s *)monitor;
bluetooth_device_address_t addr_hex = { {0,} };
- BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_GATT_PXP_SUPPORT();
BT_CHECK_INIT_STATUS();
- BT_CHECK_INPUT_PARAMETER(remote_address); /* LCOV_EXCL_LINE */
+ BT_CHECK_INPUT_PARAMETER(monitor); /* LCOV_EXCL_LINE */
+/* LCOV_EXCL_START */
+ if (_bt_proximity_monitor_find(monitor_s->remote_address) == NULL)
+ return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
- if (role_registered != BT_PROXIMITY_MONITOR)
+ if (!(pxp_monitor_supported_services & BT_PROXIMITY_LINKLOSS_ALERT))
return BT_ERROR_NOT_SUPPORTED;
- _bt_convert_address_to_hex(&addr_hex, remote_address); /* LCOV_EXCL_LINE */
+ _bt_convert_address_to_hex(&addr_hex, monitor_s->remote_address);
- error_code = _bt_get_error_code(bluetooth_set_proximity_property(&addr_hex, property, value));
+ error_code = _bt_get_error_code(bluetooth_proximity_monitor_set_property(&addr_hex,
+ BT_PROXIMITY_LINKLOSS_ALERT, value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
return error_code;
}
+/* LCOV_EXCL_STOP */
+int bt_proximity_monitor_set_immediate_alert(bt_proximity_monitor_h monitor, int value)
+{
+ int error_code = BT_ERROR_NONE;
+ bt_proximity_monitor_s *monitor_s = (bt_proximity_monitor_s *)monitor;
+ bluetooth_device_address_t addr_hex = { {0,} };
+
+ BT_CHECK_GATT_PXP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(monitor); /* LCOV_EXCL_LINE */
+/* LCOV_EXCL_START */
+ if (_bt_proximity_monitor_find(monitor_s->remote_address) == NULL)
+ return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
-int bt_proximity_get_property(const char *remote_address, bt_proximity_property_t property, int *value)
+ if (!(pxp_monitor_supported_services & BT_PROXIMITY_IMMEDIATE_ALERT))
+ return BT_ERROR_NOT_SUPPORTED;
+
+ _bt_convert_address_to_hex(&addr_hex, monitor_s->remote_address);
+
+ error_code = _bt_get_error_code(bluetooth_proximity_monitor_set_property(&addr_hex,
+ BT_PROXIMITY_IMMEDIATE_ALERT, value));
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+
+ return error_code;
+}
+/* LCOV_EXCL_STOP */
+int bt_proximity_monitor_get_linkloss_alert(bt_proximity_monitor_h monitor, int *value)
{
int error_code = BT_ERROR_NONE;
+ bt_proximity_monitor_s *monitor_s = (bt_proximity_monitor_s *)monitor;
bluetooth_device_address_t addr_hex = { {0,} };
- BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_GATT_PXP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(monitor); /* LCOV_EXCL_LINE */
+
+ if (_bt_proximity_monitor_find(monitor_s->remote_address) == NULL) /* LCOV_EXCL_LINE */
+ return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
+
+ if (!(pxp_monitor_supported_services & BT_PROXIMITY_LINKLOSS_ALERT)) /* LCOV_EXCL_LINE */
+ return BT_ERROR_NOT_SUPPORTED;
+
+ _bt_convert_address_to_hex(&addr_hex, monitor_s->remote_address); /* LCOV_EXCL_LINE */
+
+ error_code = _bt_get_error_code(bluetooth_proximity_monitor_get_property(&addr_hex, /* LCOV_EXCL_LINE */
+ BT_PROXIMITY_LINKLOSS_ALERT, value));
+
+ if (error_code != BT_ERROR_NONE) /* LCOV_EXCL_LINE */
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code); /* LCOV_EXCL_LINE */
+
+ return error_code;
+}
+
+int bt_proximity_monitor_get_immediate_alert(bt_proximity_monitor_h monitor, int *value)
+{
+ int error_code = BT_ERROR_NONE;
+ bt_proximity_monitor_s *monitor_s = (bt_proximity_monitor_s *)monitor;
+ bluetooth_device_address_t addr_hex = { {0,} };
+
+ BT_CHECK_GATT_PXP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(monitor); /* LCOV_EXCL_LINE */
+
+ if (_bt_proximity_monitor_find(monitor_s->remote_address) == NULL) /* LCOV_EXCL_LINE */
+ return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
+
+ if (!(pxp_monitor_supported_services & BT_PROXIMITY_IMMEDIATE_ALERT)) /* LCOV_EXCL_LINE */
+ return BT_ERROR_NOT_SUPPORTED;
+
+ _bt_convert_address_to_hex(&addr_hex, monitor_s->remote_address); /* LCOV_EXCL_LINE */
+
+ error_code = _bt_get_error_code(bluetooth_proximity_monitor_get_property(&addr_hex, /* LCOV_EXCL_LINE */
+ BT_PROXIMITY_IMMEDIATE_ALERT, value));
+
+ if (error_code != BT_ERROR_NONE) /* LCOV_EXCL_LINE */
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code); /* LCOV_EXCL_LINE */
+
+ return error_code;
+}
+
+int bt_proximity_monitor_get_signal_level(bt_proximity_monitor_h monitor, int *value)
+{
+ int error_code = BT_ERROR_NONE;
+ bt_proximity_monitor_s *monitor_s = (bt_proximity_monitor_s *)monitor;
+ bluetooth_device_address_t addr_hex = { {0,} };
+
+ BT_CHECK_GATT_PXP_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(monitor); /* LCOV_EXCL_LINE */
+
+ if (_bt_proximity_monitor_find(monitor_s->remote_address) == NULL) /* LCOV_EXCL_LINE */
+ return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
+
+ if (!(pxp_monitor_supported_services & BT_PROXIMITY_TX_POWER)) /* LCOV_EXCL_LINE */
+ return BT_ERROR_NOT_SUPPORTED;
+
+ _bt_convert_address_to_hex(&addr_hex, monitor_s->remote_address); /* LCOV_EXCL_LINE */
+
+ error_code = _bt_get_error_code(bluetooth_proximity_monitor_get_property(&addr_hex,
+ BT_PROXIMITY_TX_POWER, value));
+
+ if (error_code != BT_ERROR_NONE) /* LCOV_EXCL_LINE */
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code); /* LCOV_EXCL_LINE */
+
+ return error_code;
+}
+
+int bt_proximity_reporter_get_linkloss_alert(const char *remote_address, int *value)
+{
+ int error_code = BT_ERROR_NONE;
+ bluetooth_device_address_t addr_hex = { {0,} };
+
+ BT_CHECK_GATT_PXP_SUPPORT();
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(remote_address); /* LCOV_EXCL_LINE */
- if (role_registered != BT_PROXIMITY_MONITOR)
+ if (reporter_s == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (!(reporter_s->services_supported & BT_PROXIMITY_LINKLOSS_ALERT))
return BT_ERROR_NOT_SUPPORTED;
_bt_convert_address_to_hex(&addr_hex, remote_address); /* LCOV_EXCL_LINE */
- error_code = _bt_get_error_code(bluetooth_get_proximity_property(&addr_hex, property, value));
+ error_code = _bt_get_error_code(bluetooth_proximity_reporter_get_property(&addr_hex,
+ BT_PROXIMITY_LINKLOSS_ALERT, value));
- if (error_code != BT_ERROR_NONE)
- BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ if (error_code != BT_ERROR_NONE) /* LCOV_EXCL_LINE */
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code); /* LCOV_EXCL_LINE */
return error_code;
}
-int bt_proximity_get_supported_services(const char *remote_address, int *supported_services)
+int bt_proximity_reporter_get_immediate_alert(const char *remote_address, int *value)
{
int error_code = BT_ERROR_NONE;
bluetooth_device_address_t addr_hex = { {0,} };
- BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON);
+ BT_CHECK_GATT_PXP_SUPPORT();
BT_CHECK_INIT_STATUS();
BT_CHECK_INPUT_PARAMETER(remote_address); /* LCOV_EXCL_LINE */
- if (role_registered != BT_PROXIMITY_MONITOR)
+ if (reporter_s == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (!(reporter_s->services_supported & BT_PROXIMITY_IMMEDIATE_ALERT))
return BT_ERROR_NOT_SUPPORTED;
_bt_convert_address_to_hex(&addr_hex, remote_address); /* LCOV_EXCL_LINE */
- error_code = _bt_get_error_code(bluetooth_get_proximity_supported_services(&addr_hex, supported_services));
+ error_code = _bt_get_error_code(bluetooth_proximity_reporter_get_property(&addr_hex,
+ BT_PROXIMITY_IMMEDIATE_ALERT, value));
if (error_code != BT_ERROR_NONE)
BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
-
return error_code;
}
-
-/* LCOV_EXCL_STOP */
--- /dev/null
+/*
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <glib.h>
+#include <dlog.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdbool.h>
+#include <string.h>
+#include <bluetooth-api.h>
+
+#include "bluetooth.h"
+#include "bluetooth_internal.h"
+#include "bluetooth_private.h"
+
+#define BT_CHECK_TDS_SUPPORT() \
+{ \
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON); \
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_LE); \
+}
+
+#define BT_TDS_SERVICE_UUID "00001824-0000-1000-8000-00805f9b34fb"
+#define BT_TDS_CONTROL_POINT_UUID "00002abc-0000-1000-8000-00805f9b34fb"
+#define BT_TDS_USER_DATA_DESCRIPTOR "00002a56-0000-1000-8000-00805f9b34fb"
+
+typedef struct {
+ unsigned int tds_handle;
+ bluetooth_tds_transport_t transport;
+ bluetooth_tds_transport_state_t state;
+} bt_tds_provider_s;
+
+typedef struct bt_tds_transport_slot_s {
+ bool is_seek_ongoing;
+} bt_tds_transport_slot_s;
+
+typedef struct {
+ char *remote_address;
+ bool connected;
+
+ const void *connection_callback;
+ void *conn_cb_user_data;
+
+ const void *complete_data_callback; /* Callback for receiving complete TDS data block */
+ void *complete_data_cb_user_data; /* User data for complete TDS data block callback */
+
+ char *tds_service_handle; /* TDS Primary Service Handle */
+ char *tds_control_point; /* TDS Control Point characteristic handle */
+ char *tds_control_point_cccd; /* TDS Control Point CCCD handle */
+ char *tds_user_data_desciptor; /* TDS User descriptor handle: This will store the Entire TDS block data in GATT Server */
+
+ bool cccd_enabled; /* TDS Control Point CCCD is enabled or not */
+
+ bool tds_activation_ongoing; /* TDS Actvation is ongoing or not */
+ void *control_point_act_cb; /* TDS Control Point Activation Response callback */
+ void *control_point_act_user_data; /* User data for TDS Control Point Activation Response callback*/
+
+ unsigned char *activation_data; /* TDS Activation data */
+ int data_len;
+} bt_tds_seeker_s;
+
+gboolean tds_provider_registered = FALSE;
+GSList *providers_list;
+GSList *tds_seeker_list;
+/* LCOV_EXCL_START */
+static int __bt_update_tds_transport_data(bluetooth_device_address_t *address, bt_tds_seeker_s *seeker_s);
+static void __bt_tds_reset_seeker_data(bt_tds_seeker_s *seeker);
+
+int bt_tds_set_transport_activation_requested_cb(
+ bt_tds_activation_requested_cb callback, void *user_data)
+{
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(callback);
+ _bt_set_cb(BT_EVENT_TDS_ACTIVATION_REQUESTED, callback, user_data);
+ return BT_ERROR_NONE;
+}
+
+int bt_tds_unset_transport_activation_requested_cb(void)
+{
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ _bt_unset_cb(BT_EVENT_TDS_ACTIVATION_REQUESTED);
+ return BT_ERROR_NONE;
+}
+
+int bt_tds_provider_register(void)
+{
+ int error_code = BT_ERROR_NONE;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+
+ if (tds_provider_registered)
+ return BT_ERROR_ALREADY_DONE;
+
+ /* register TDS provider role here */
+ error_code = _bt_get_error_code(bluetooth_tds_provider_register());
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ tds_provider_registered = TRUE;
+ return error_code;
+}
+
+int bt_tds_provider_unregister(void)
+{
+ int error_code = BT_ERROR_NONE;
+ GSList *l;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+
+ if (!tds_provider_registered)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ /* register TDS provider role here */
+ error_code = _bt_get_error_code(bluetooth_tds_provider_unregister());
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ for (l = providers_list; l != NULL; l = g_slist_next(l)) {
+ bt_tds_provider_s *tds_provider = l->data;
+ g_free(tds_provider);
+ }
+ providers_list = NULL;
+
+ tds_provider_registered = FALSE;
+ return error_code;
+}
+
+int bt_tds_provider_create(bt_tds_provider_h *provider, bt_tds_transport_e transport)
+{
+ bluetooth_tds_transport_t tds_transport;
+ int error_code = BT_ERROR_NONE;
+ bt_tds_provider_s *tds_provider;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+
+ if (!tds_provider_registered)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ switch (transport) {
+ case BT_TDS_TRANSPORT_BT:
+ error_code = BT_ERROR_NOT_SUPPORTED;
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ case BT_TDS_TRANSPORT_CUSTOM:
+ tds_transport = BLUETOOTH_TDS_TRANSPORT_CUSTOM;
+ break;
+ default:
+ error_code = BT_ERROR_INVALID_PARAMETER;
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ tds_provider = g_malloc0(sizeof(bt_tds_provider_s));
+ if (!tds_provider) {
+ error_code = BT_ERROR_OUT_OF_MEMORY;
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ tds_provider->tds_handle = GPOINTER_TO_INT(tds_provider);
+
+ /* register TDS provider role here */
+ error_code = _bt_get_error_code(bluetooth_tds_provider_create(tds_transport, tds_provider->tds_handle));
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ g_free(tds_provider);
+ return error_code;
+ }
+
+ tds_provider->transport = tds_transport;
+ tds_provider->state = BLUETOOTH_TDS_TRANSPORT_STATE_OFF;
+ *provider = (bt_tds_provider_h *)tds_provider;
+ providers_list = g_slist_append(providers_list, tds_provider);
+ return error_code;
+}
+
+int bt_tds_provider_destroy(bt_tds_provider_h provider)
+{
+ bt_tds_provider_s *tds_provider;
+ int error_code = BT_ERROR_NONE;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(provider);
+
+ if (!tds_provider_registered)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (NULL == g_slist_find(providers_list, provider)) {
+ BT_ERR("g_slist_find returned NULL");
+ return BT_ERROR_NOT_INITIALIZED;
+ }
+
+ tds_provider = (bt_tds_provider_s *)provider;
+ /* Unregister TDS provider role Here */
+ error_code = _bt_get_error_code(bluetooth_tds_provider_destroy(tds_provider->tds_handle));
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ providers_list = g_slist_remove(providers_list, tds_provider);
+ g_free(tds_provider);
+ return error_code;
+}
+
+int bt_tds_provider_set_transport_data(bt_tds_provider_h provider,
+ bt_tds_transport_state_e transport_state, unsigned char *buf, int length)
+{
+ bluetooth_tds_transport_state_t state;
+ bt_tds_provider_s *tds_provider;
+ int error_code = BT_ERROR_NONE;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(buf);
+
+ if (!tds_provider_registered)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (0 >= length || BLUETOOTH_TDS_DATA_LENGTH_MAX < length) {
+ error_code = BT_ERROR_INVALID_PARAMETER;
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ switch (transport_state) {
+ case BT_TDS_TRANSPORT_STATE_OFF:
+ state = BLUETOOTH_TDS_TRANSPORT_STATE_OFF;
+ break;
+ case BT_TDS_TRANSPORT_STATE_ON:
+ state = BLUETOOTH_TDS_TRANSPORT_STATE_ON;
+ break;
+ case BT_TDS_TRANSPORT_STATE_UNAVAILABLE:
+ state = BLUETOOTH_TDS_TRANSPORT_STATE_UNAVAILABLE;
+ break;
+ default:
+ error_code = BT_ERROR_INVALID_PARAMETER;
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ if (NULL == g_slist_find(providers_list, provider)) {
+ BT_ERR("g_slist_find returned NULL");
+ return BT_ERROR_NOT_INITIALIZED;
+ }
+
+ tds_provider = (bt_tds_provider_s *)provider;
+ tds_provider->state = state;
+
+ /* TDS provider: set transport data here */
+ error_code = _bt_get_error_code(
+ bluetooth_set_tds_provider_transport_data(tds_provider->tds_handle, state, buf, length));
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+
+ return error_code;
+}
+
+/* TODO: Add more parameters if needed */
+int bt_tds_provider_send_activation_resp(char *address, int result, bt_tds_provider_h provider)
+{
+ bluetooth_device_address_t dev_address;
+ bt_tds_provider_s *tds_provider;
+ int error_code = BT_ERROR_NONE;
+ unsigned char *buf = NULL;
+ int length = 0;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(provider);
+ BT_CHECK_INPUT_PARAMETER(address);
+
+ if (!tds_provider_registered)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (NULL == g_slist_find(providers_list, provider)) {
+ BT_ERR("g_slist_find returned NULL");
+ return BT_ERROR_NOT_INITIALIZED;
+ }
+
+ _bt_convert_address_to_hex(&dev_address, address);
+ tds_provider = (bt_tds_provider_s *)provider;
+
+ /* TODO: If needed, fill buf with additional params */
+
+ /* TDS provider: send tds activation response */
+ error_code = _bt_get_error_code(bluetooth_send_tds_activation_response(
+ &dev_address, tds_provider->tds_handle, result, buf, length));
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+
+ return error_code;
+}
+
+int bt_tds_provider_set_manufacturer_data(unsigned char *buf, int length)
+{
+ int error_code = BT_ERROR_NONE;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(buf);
+
+ if (!tds_provider_registered)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (29 < length) {
+ error_code = BT_ERROR_INVALID_PARAMETER;
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ /* TDS provider: set manufacturer data here */
+ error_code = _bt_get_error_code(
+ bluetooth_set_tds_provider_manuf_data(buf, length));
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+
+ return error_code;
+}
+
+static bt_tds_seeker_s *_bt_tds_seeker_find(const char *remote_address)
+{
+ GSList *l;
+
+ for (l = tds_seeker_list; l; l = g_slist_next(l)) {
+
+ if ((l == NULL) || (l->data == NULL) || (((bt_tds_seeker_s *)l->data)->remote_address == NULL)) {
+ BT_ERR("_bt_tds_seeker_find Error Parameter are NULL..\n");
+ continue;
+ } else if (!g_ascii_strcasecmp(((bt_tds_seeker_s *)l->data)->remote_address, remote_address)) {
+ return ((bt_tds_seeker_s *)l->data);
+ }
+ }
+ return NULL;
+}
+
+static void __bt_tds_free_transport_data(bt_tds_transport_block_list_s *info)
+{
+ int k;
+
+ if (info == NULL)
+ return;
+
+ for (k = 0; k < info->num_transport_block; k++) {
+ g_free(info->data[k]->data);
+ g_free(info->data[k]);
+ }
+
+ g_free(info);
+}
+
+void _bt_tds_check_service_changed(char *address, bt_gatt_service_change_t *service_change)
+{
+ bt_tds_seeker_s *seeker_s = NULL;
+ int error_code = BLUETOOTH_ERROR_NONE;
+ bluetooth_device_address_t addr_hex = { {0,} };
+ if (!address) {
+ BT_ERR("Abnormal Result!!");
+ return;
+ }
+ seeker_s = _bt_tds_seeker_find(address);
+ BT_DBG("GATT Service state changed [%d]", service_change->change_type);
+ BT_DBG("GATT Service [%s]", service_change->svc_path);
+ if (seeker_s) {
+ if (service_change->change_type == BLUETOOTH_GATT_SERVICE_CHANGE_TYPE_REMOVE) {
+ if (seeker_s->tds_service_handle &&
+ g_strcmp0(seeker_s->tds_service_handle, service_change->svc_path) == 0) {
+ BT_ERR("TDS Primary Service removed abnormally from Remote Provider [%s]", address);
+ __bt_tds_reset_seeker_data(seeker_s);
+ }
+ } else {
+ _bt_convert_address_to_hex(&addr_hex, address);
+
+ /* Attempt to update TDS Service data if service added is TDS service */
+ if (__bt_update_tds_transport_data(&addr_hex, seeker_s) == BLUETOOTH_ERROR_NONE) {
+ BT_INFO("TDS Primary Service added in Remote Provider [%s]", address);
+ /* Set Service changed Watcher */
+ error_code = bluetooth_gatt_set_service_change_watcher(&addr_hex, true);
+ if (error_code != BLUETOOTH_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ }
+ }
+ }
+ BT_DBG("-");
+}
+
+void _bt_tds_send_complete_transport_data(int result, const char *address, char *data, int data_len)
+{
+ bt_tds_seeker_s *seeker_s = NULL;
+
+ if (!address) {
+ BT_ERR("Abnormal Result!!");
+ return;
+ }
+
+ seeker_s = _bt_tds_seeker_find(address);
+
+ if (seeker_s && (seeker_s)->complete_data_callback) {
+ BT_DBG("Complete TDS Data recv callback is set by app");
+
+ if (result == BT_ERROR_NONE) {
+ bt_tds_transport_block_list_s *info = g_malloc0(sizeof(bt_tds_transport_block_list_s));
+
+ if (_bt_tds_parse_transport_blocks(&info, data, data_len) == BT_ERROR_NONE) {
+ ((bt_tds_seeker_complete_transport_data_cb)((seeker_s)->complete_data_callback))(result,
+ address, info,
+ (seeker_s)->complete_data_cb_user_data);
+ } else {
+ BT_ERR("Error parsing data blocks");
+ ((bt_tds_seeker_complete_transport_data_cb)((seeker_s)->complete_data_callback))(result,
+ address, NULL,
+ (seeker_s)->complete_data_cb_user_data);
+ }
+ __bt_tds_free_transport_data(info);
+ } else {
+ BT_ERR("TDS Data read failed!!");
+ ((bt_tds_seeker_complete_transport_data_cb)((seeker_s)->complete_data_callback))(result,
+ address, NULL,
+ (seeker_s)->complete_data_cb_user_data);
+ }
+ }
+}
+
+void _bt_tds_control_point_indication_response_update(const char *address, bluetooth_tds_indication_res_t *info)
+{
+ bt_tds_seeker_s *seeker_s = NULL;
+
+ if (!address) {
+ BT_ERR("Abnormal Result!!");
+ return;
+ }
+
+ seeker_s = _bt_tds_seeker_find(address);
+ int result = BT_ERROR_NONE;
+ int k;
+
+ if (seeker_s) {
+ BT_DBG("TDS Control point Activation Indication Response");
+ BT_DBG("Data length [%d]", info->tds_data.length);
+ BT_DBG("Address[%s]", address);
+
+ /* DEBUG */
+ for (k = 0; k < info->tds_data.length; k++)
+ BT_DBG("Data[%d] [0x%x]", info->tds_data.data[k]);
+
+ if (seeker_s->tds_activation_ongoing == true) {
+ (seeker_s)->tds_activation_ongoing = false;
+
+ if (info->tds_data.length < 2)
+ result = BT_ERROR_OPERATION_FAILED;
+ else {
+ if (info->tds_data.data[1] == 0x00) {
+ BT_DBG("Provider has enabled transport");
+ result = BT_ERROR_NONE;
+ } else
+ result = BT_ERROR_OPERATION_FAILED;
+ }
+
+ if ((seeker_s)->control_point_act_cb)
+ ((bt_tds_control_point_activation_indication_cb)((seeker_s)->control_point_act_cb))(result,
+ address, info->tds_data.data, info->tds_data.length, (seeker_s)->control_point_act_user_data);
+ g_free(seeker_s->activation_data);
+ seeker_s->activation_data = NULL;
+ }
+ }
+}
+
+void _bt_tds_control_point_activation_result_update(int result, const char *remote_address)
+{
+ bt_tds_seeker_s *seeker_s = NULL;
+ if (!remote_address) {
+ BT_ERR("Abnormal Result!!");
+ return;
+ }
+ seeker_s = _bt_tds_seeker_find(remote_address);
+
+ if (seeker_s) {
+ BT_DBG("TDS Control point Activation response [%d] address [%s]", result, remote_address);
+
+ if ((seeker_s)->tds_activation_ongoing == true) {
+ /* Send Pending Activation Request callback with error */
+ if (result != BT_ERROR_NONE) {
+ (seeker_s)->tds_activation_ongoing = false;
+ if ((seeker_s)->control_point_act_cb)
+ ((bt_tds_control_point_activation_indication_cb)((seeker_s)->control_point_act_cb))(BT_ERROR_OPERATION_FAILED,
+ remote_address, NULL, 0, (seeker_s)->control_point_act_user_data);
+ g_free(seeker_s->activation_data);
+ seeker_s->activation_data = NULL;
+ return;
+ } else
+ BT_DBG("TDS Activation request successfully accepted by Provider, wait for Indication");
+ } else
+ BT_DBG("TDS Control point activation request is not ongoing");
+ }
+}
+
+void _bt_tds_control_point_enabled_update(int result, const char *remote_address)
+{
+ bt_tds_seeker_s *seeker_s = NULL;
+ if (!remote_address) {
+ BT_ERR("Abnormal Result!!");
+ return;
+ }
+ seeker_s = _bt_tds_seeker_find(remote_address);
+ int ret = BT_ERROR_NONE;
+ bluetooth_device_address_t addr_hex = { {0,} };
+ _bt_convert_address_to_hex(&addr_hex, remote_address);
+
+ if (seeker_s) {
+ BT_DBG("TDS Control point Enable result [%d] address [%s]", result, remote_address);
+
+ /* Send Pending Activation Request callback with error */
+ if (result != BT_ERROR_NONE) {
+ (seeker_s)->tds_activation_ongoing = false;
+
+ if ((seeker_s)->control_point_act_cb)
+ ((bt_tds_control_point_activation_indication_cb)((seeker_s)->control_point_act_cb))(BT_ERROR_OPERATION_FAILED,
+ remote_address, NULL, 0, (seeker_s)->control_point_act_user_data);
+
+ g_free(seeker_s->activation_data);
+ seeker_s->activation_data = NULL;
+ return;
+ } else {
+ BT_DBG("TDS Control Point enabled successfully!!");
+ seeker_s->cccd_enabled = true;
+ ret = _bt_get_error_code(bluetooth_tds_activate_control_point(&addr_hex,
+ seeker_s->tds_control_point, seeker_s->activation_data,
+ seeker_s->data_len));
+ if (ret != BT_ERROR_NONE) {
+ (seeker_s)->tds_activation_ongoing = false;
+
+ if ((seeker_s)->control_point_act_cb)
+ ((bt_tds_control_point_activation_indication_cb)((seeker_s)->control_point_act_cb))(BT_ERROR_OPERATION_FAILED,
+ remote_address, NULL, 0, (seeker_s)->control_point_act_user_data);
+
+ if (seeker_s->activation_data) {
+ g_free(seeker_s->activation_data);
+ seeker_s->activation_data = NULL;
+ }
+ }
+ BT_DBG("Activation request sent, wait for response and Indication");
+ }
+ }
+}
+
+int _bt_tds_parse_transport_blocks(bt_tds_transport_block_list_s **info,
+ char *data, int data_len)
+{
+ int numblocks = 0;
+ int index = 2;
+ uint8_t flags;
+ int k;
+ GSList *info_list = NULL;
+ GSList *l = NULL;
+
+ if (data_len < 3) {
+ BT_ERR("Invalid TDS data, can not process!!");
+ return BT_ERROR_INVALID_PARAMETER;
+ }
+
+ tds_transport_data_s *td;
+
+ while (index < data_len) {
+
+ /* Check if Provider Role is supported by Remote */
+ flags = data[index-1];
+
+ if (!(flags & 0x02)) {
+ /* Move to Next Block */
+ index = index + data[index] + 3;
+ BT_ERR("TDS Block is not Provider Role");
+ continue;
+ }
+
+ td = g_malloc(sizeof(tds_transport_data_s));
+ td->length = data[index];
+
+ td->data = g_malloc0(td->length);
+
+ /* Fill Transport Block Data excluding Flag and Org ID */
+ for (k = 0; k < td->length; k++)
+ td->data[k] = data[k+index+1];
+
+ /* Get Transport Name */
+ td->transport = data[index -2];
+
+ /* Get Transport Data Block Incomplete status */
+ if (flags & 0x04)
+ td->is_data_complete = false;
+ else
+ td->is_data_complete = true;
+
+ /* Get Transport's current state */
+ if (flags & 0x08)
+ td->state = BT_TDS_TRANSPORT_STATE_ON;
+ else if (flags & 0x10)
+ td->state = BT_TDS_TRANSPORT_STATE_UNAVAILABLE;
+ else
+ td->state = BT_TDS_TRANSPORT_STATE_OFF;
+
+ /* Move to Next Block */
+ index = index + data[index] + 3;
+ info_list = g_slist_append(info_list, td);
+
+ (*info)->num_transport_block = ++numblocks;
+ BT_DBG("Transport Block data length [%d] Flags [0x%x] Transport Name [0x%x] Block Num [%d]",
+ td->length, flags, td->transport, numblocks);
+
+ }
+
+ if (info_list != NULL) {
+ (*info)->data = (tds_transport_data_s**)g_malloc0(g_slist_length(info_list) * sizeof(tds_transport_data_s));
+ k = 0;
+ while (info_list) {
+ l = info_list;
+ (*info)->data[k++] = (tds_transport_data_s*)l->data;
+ info_list = g_slist_remove(info_list, l->data);
+ }
+ return BT_ERROR_NONE;
+ }
+ return BT_ERROR_NO_DATA;
+}
+
+static void __bt_tds_reset_seeker_data(bt_tds_seeker_s *seeker)
+{
+
+ g_free((seeker)->tds_control_point);
+ (seeker)->tds_control_point = NULL;
+
+ g_free((seeker)->tds_control_point_cccd);
+ (seeker)->tds_control_point_cccd = NULL;
+
+ g_free((seeker)->tds_user_data_desciptor);
+ (seeker)->tds_user_data_desciptor = NULL;
+
+ g_free((seeker)->tds_service_handle);
+ (seeker)->tds_service_handle = NULL;
+
+ g_free((seeker)->activation_data);
+ (seeker)->activation_data = NULL;
+
+ /* Reset CCCD */
+ (seeker)->cccd_enabled = false;
+}
+
+void _bt_tds_update_seeker_connection_state_changed(int result,
+ const char *remote_address, bool connected)
+{
+ int error_code = BLUETOOTH_ERROR_NONE;
+ bt_tds_seeker_s *seeker_s = NULL;
+ BT_DBG("TDS Seeker Connection state changed result [%d] connected [%d]", result, connected ? TRUE : FALSE);
+
+ /* GATT Connect Request failed */
+ seeker_s = _bt_tds_seeker_find(remote_address);
+ if (seeker_s) {
+ BT_DBG("Seeker found against address [%s]", remote_address);
+
+ bluetooth_device_address_t addr_hex = { {0,} };
+ _bt_convert_address_to_hex(&addr_hex, remote_address);
+
+ if (result != BT_ERROR_NONE) {
+ BT_ERR("GATT Connect Request failed Address [%s]", remote_address);
+ __bt_tds_reset_seeker_data(seeker_s);
+ bluetooth_gatt_set_service_change_watcher(&addr_hex, false);
+
+ if ((seeker_s)->connection_callback)
+ ((bt_tds_seeker_connection_state_changed_cb)(seeker_s)->connection_callback)
+ (result, remote_address, seeker_s, connected, (seeker_s)->conn_cb_user_data);
+ return;
+ }
+ /* Update TDS Control point values */
+ if (connected) {
+ BT_DBG("Remote Provider connected successfully");
+ /* Attempt to update TDS Service data */
+ error_code = __bt_update_tds_transport_data(&addr_hex, seeker_s);
+ if (error_code != BLUETOOTH_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+
+ /* Set Service changed Watcher */
+ error_code = bluetooth_gatt_set_service_change_watcher(&addr_hex, true);
+ if (error_code != BLUETOOTH_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ } else {
+ BT_DBG("Remote Provider disconnected successfully");
+ /* Disconnected */
+ __bt_tds_reset_seeker_data(seeker_s);
+ bluetooth_gatt_set_service_change_watcher(&addr_hex, false);
+ }
+ (seeker_s)->connected = connected;
+
+ if ((seeker_s)->connection_callback)
+ ((bt_tds_seeker_connection_state_changed_cb)(seeker_s)->connection_callback)
+ (result, remote_address, seeker_s, connected, (seeker_s)->conn_cb_user_data);
+ } else {
+ BT_DBG("TDS Seeker not found!");
+ }
+}
+
+int bt_tds_start_seeking_providers(bt_tds_provider_scan_result_cb cb, void *user_data)
+{
+ int error_code = BT_ERROR_NONE;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(cb);
+ BT_DBG("+");
+
+ /* LE Event handler registered */
+ if (_bt_le_adapter_init() != BLUETOOTH_ERROR_NONE)
+ return BT_ERROR_OPERATION_FAILED;
+
+ /* Start LE discovery with default scan params if already not started */
+ if (bluetooth_is_le_scanning() == false)
+ error_code = _bt_get_error_code(bluetooth_start_le_discovery());
+
+ if (error_code != BT_ERROR_NONE &&
+ error_code != BT_ERROR_NOW_IN_PROGRESS) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ } else {
+ BT_DBG("LE Discovery ON..Wait for TDS Configuration Service from Remote Providers");
+ _bt_set_cb(BT_EVENT_TDS_PROVIDER_FOUND_RESULT, cb, user_data);
+ }
+
+ return error_code;
+}
+
+int bt_tds_stop_seeking_providers(void)
+{
+ int error_code = BT_ERROR_NONE;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_DBG("+");
+
+ if (bluetooth_is_le_scanning() == true)
+ error_code = _bt_get_error_code(bluetooth_stop_le_discovery());
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ }
+
+ _bt_unset_cb(BT_EVENT_TDS_PROVIDER_FOUND_RESULT);
+ return BT_ERROR_NONE;
+}
+
+static int __bt_update_tds_transport_data(bluetooth_device_address_t *address, bt_tds_seeker_s *seeker_s)
+{
+ int ret = BLUETOOTH_ERROR_INTERNAL;
+ bt_gatt_service_property_t service;
+ int count;
+
+ ret = bluetooth_gatt_get_service_from_uuid(address, BT_TDS_SERVICE_UUID, &service);
+ if (ret != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("Failed to find TDS configuration service");
+ return ret;
+ }
+
+ /* Find all characteristics of TDS service and their properties */
+ for (count = 0; count < service.char_handle.count; count++) {
+ bt_gatt_char_property_t characteristic;
+ memset(&characteristic, 0x00, sizeof(characteristic));
+
+ BT_DBG("Get properties for Char [%s]", service.char_handle.handle[count]);
+
+ ret = bluetooth_gatt_get_characteristics_property(service.char_handle.handle[count],
+ &characteristic);
+
+ if (ret != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("Get characteristic property failed(0x%08x)", ret);
+ bluetooth_gatt_free_service_property(&service);
+ bluetooth_gatt_free_char_property(&characteristic);
+ goto fail;
+ } else {
+ if (g_strstr_len(characteristic.uuid, -1, BT_TDS_CONTROL_POINT_UUID)) {
+ BT_DBG("TDS Control point discovered ");
+ bt_gatt_char_descriptor_property_t desc_property;
+ memset(&desc_property, 0x00, sizeof(desc_property));
+
+
+ /* Get CCCD for Control Point */
+ ret = bluetooth_gatt_get_char_descriptor_property(
+ characteristic.char_desc_handle.handle[0], &desc_property);
+
+ if (ret != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("Failed to discover CCCD for TDS Control point");
+ bluetooth_gatt_free_service_property(&service);
+ bluetooth_gatt_free_char_property(&characteristic);
+ bluetooth_gatt_free_desc_property(&desc_property);
+ goto fail;
+ }
+ g_free((seeker_s)->tds_control_point);
+ (seeker_s)->tds_control_point = g_strdup(characteristic.handle);
+
+ g_free((seeker_s)->tds_control_point_cccd);
+ (seeker_s)->tds_control_point_cccd = g_strdup(desc_property.handle);
+
+ BT_DBG("TDS Control point handle [%s]", (seeker_s)->tds_control_point);
+ BT_DBG("TDS Control point CCCD handle [%s]", (seeker_s)->tds_control_point_cccd);
+ } else {
+ /* Fetch Descriptors for the discovered characteristic */
+ int c;
+ int p;
+
+ for (c = 0; c < characteristic.char_desc_handle.count; c++) {
+
+ bt_gatt_char_descriptor_property_t desc_property;
+ memset(&desc_property, 0x00, sizeof(desc_property));
+
+ ret = bluetooth_gatt_get_char_descriptor_property(
+ characteristic.char_desc_handle.handle[c], &desc_property);
+
+ if (ret != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("Failed to discover Descriptor Property for characteristic [%s]",
+ characteristic.handle);
+ bluetooth_gatt_free_service_property(&service);
+ bluetooth_gatt_free_char_property(&characteristic);
+ bluetooth_gatt_free_desc_property(&desc_property);
+ goto fail;
+ } else {
+ /* Descriptor property discovered */
+ BT_DBG("Descriptor handle [%s]", desc_property.handle);
+ BT_DBG("Descriptor UUID [%s]", desc_property.uuid);
+ BT_DBG("Descriptor val len [%d]", desc_property.val_len);
+
+ if (g_strstr_len(desc_property.uuid, -1, BT_TDS_USER_DATA_DESCRIPTOR)) {
+ BT_DBG("User data descriptor handle discovered");
+ g_free((seeker_s)->tds_user_data_desciptor);
+ (seeker_s)->tds_user_data_desciptor = g_strdup(desc_property.handle);
+ }
+
+ for (p = 0; p < desc_property.val_len; p++)
+ BT_DBG("Descriptor data[%d] = [0x%x]", p, desc_property.val[p]);
+ } /* Descriptor property get successful */
+ bluetooth_gatt_free_desc_property(&desc_property);
+ } /* Next Descriptor */
+ } /* Control Point characteristic */
+ } /* Characteristic property get successful */
+ bluetooth_gatt_free_char_property(&characteristic);
+ } /* Next Charatceristic */
+
+ g_free((seeker_s)->tds_service_handle);
+
+ (seeker_s)->tds_service_handle = g_strdup(service.handle);
+ bluetooth_gatt_free_service_property(&service);
+ return ret;
+fail:
+ __bt_tds_reset_seeker_data(seeker_s);
+ return ret;
+}
+
+int bt_tds_seeker_set_connection_state_changed_cb(bt_tds_seeker_h seeker,
+ bt_tds_seeker_connection_state_changed_cb callback, void *user_data)
+{
+ bt_tds_seeker_s *seeker_s = (bt_tds_seeker_s *)seeker;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(seeker_s);
+ BT_CHECK_INPUT_PARAMETER(callback);
+
+ if (_bt_tds_seeker_find(seeker_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ BT_DBG("Set TDS Seeker Connection State changed callback");
+ /* register the callback */
+ seeker_s->connection_callback = callback;
+ seeker_s->conn_cb_user_data = user_data;
+
+ return BT_ERROR_NONE;
+}
+
+int bt_tds_seeker_unset_connection_state_changed_cb(bt_tds_seeker_h seeker)
+{
+ bt_tds_seeker_s *seeker_s = (bt_tds_seeker_s *)seeker;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(seeker_s);
+
+ if (_bt_tds_seeker_find(seeker_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ BT_DBG("UnSet TDS Seeker Connection State changed callback");
+ /* unregister the callback */
+ seeker_s->connection_callback = NULL;
+ seeker_s->conn_cb_user_data = NULL;
+
+ return BT_ERROR_NONE;
+}
+
+int bt_tds_seeker_activate_control_point(bt_tds_seeker_h seeker,
+ bt_tds_transport_e transport, unsigned char *buffer, int len,
+ bt_tds_control_point_activation_indication_cb callback, void *user_data)
+{
+ bt_tds_seeker_s *seeker_s = (bt_tds_seeker_s *)seeker;
+ bluetooth_device_address_t addr_hex = { {0,} };
+ int ret = BT_ERROR_NONE;
+ unsigned char *buf;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(seeker_s);
+ BT_CHECK_INPUT_PARAMETER(buffer);
+ BT_CHECK_INPUT_PARAMETER(callback);
+
+ if (len > 255)
+ return BT_ERROR_INVALID_PARAMETER;
+
+ if (_bt_tds_seeker_find(seeker_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (seeker_s->connected == false)
+ return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
+
+ if (seeker_s->tds_activation_ongoing == true)
+ return BT_ERROR_NOW_IN_PROGRESS;
+
+ /* Check if both TDS Control Point char & Control Point CCCD are valid or discovered */
+ if (!(seeker_s->tds_control_point) ||
+ !(seeker_s->tds_control_point_cccd))
+ return BT_ERROR_OPERATION_FAILED;
+
+ BT_DBG("Activate Control Point [%s] transport [%d] current CCCD state [%d]",
+ seeker_s->remote_address, transport, seeker_s->cccd_enabled);
+
+ _bt_convert_address_to_hex(&addr_hex, seeker_s->remote_address);
+
+ /* Activate Control Point */
+ buf = g_malloc0(len+2);
+
+ buf[0] = 0x01; /* Activate control point Opcode */
+ buf[1] = transport; /* Activate control point Opcode */
+ memcpy(buf+2, buffer, len);
+
+ /* Check if TDS control Point is already enabled or not */
+ if (seeker_s->cccd_enabled == FALSE) {
+ /* Enable TDS Control point CCCD to enable */
+ BT_DBG("TDS Control point is disabled, enable it");
+ ret = _bt_get_error_code(bluetooth_tds_enable_control_point(&addr_hex, seeker_s->tds_control_point));
+ if (ret != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+ g_free(buf);
+ return ret;
+ }
+ } else {
+ BT_DBG("TDS Control point is already enabled");
+ ret = _bt_get_error_code(bluetooth_tds_activate_control_point(&addr_hex, seeker_s->tds_control_point, buf, len));
+ if (ret != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+ g_free(buf);
+ return ret;
+ }
+ }
+
+ /* Register the callback */
+ seeker_s->tds_activation_ongoing = true;
+ seeker_s->control_point_act_cb = callback;
+ seeker_s->control_point_act_user_data = user_data;
+
+ /* Save actvation data and trigger when CCCD is actually enabled */
+ seeker_s->activation_data = buf;
+ seeker_s->data_len = len;
+
+ BT_DBG("-");
+ return ret;
+}
+
+int bt_tds_seeker_get_complete_transport_blocks(bt_tds_seeker_h seeker,
+ bt_tds_seeker_complete_transport_data_cb callback, void *user_data)
+{
+ bt_tds_seeker_s *seeker_s = (bt_tds_seeker_s *)seeker;
+ bluetooth_device_address_t addr_hex = { {0,} };
+ int ret = BT_ERROR_NONE;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(seeker_s);
+ BT_CHECK_INPUT_PARAMETER(callback);
+
+ if (_bt_tds_seeker_find(seeker_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (seeker_s->connected == false)
+ return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
+
+ if (!seeker_s->tds_user_data_desciptor)
+ return BT_ERROR_OPERATION_FAILED;
+
+ BT_DBG("Set TDS Seeker Get complete callback");
+ _bt_convert_address_to_hex(&addr_hex, seeker_s->remote_address);
+
+ /* Read Data from Transport Data block desciptor */
+ ret = _bt_get_error_code(bluetooth_tds_read_transport_data(&addr_hex, seeker_s->tds_user_data_desciptor));
+ if (ret != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(ret), ret);
+ return ret;
+ }
+ /* register the callback */
+ seeker_s->complete_data_callback = callback;
+ seeker_s->complete_data_cb_user_data = user_data;
+
+ return ret;
+}
+
+int bt_tds_seeker_create(const char *remote_address, bt_tds_seeker_h *seeker)
+{
+ int error_code = BT_ERROR_NONE;
+ bt_tds_seeker_s *seeker_s = NULL;
+ bool connected = false;
+ bluetooth_device_address_t addr_hex = { {0,} };
+ GSList *l;
+ BT_INFO("+");
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(remote_address);
+ BT_CHECK_INPUT_PARAMETER(seeker);
+
+ for (l = tds_seeker_list; l; l = g_slist_next(l)) {
+ bt_tds_seeker_s *c = (bt_tds_seeker_s *)l->data;
+
+ if ((c == NULL) || ((c->remote_address == NULL))) {
+ BT_ERR("bt_tds_seeker_create Error Parameter are NULL..\n");
+ continue;
+ } else if (!g_ascii_strcasecmp(c->remote_address, remote_address)) {
+ BT_ERR("TDS Seeker for Remote Provider [%s] is already created",
+ remote_address);
+ *seeker = (bt_tds_seeker_h)c;
+ return BT_ERROR_ALREADY_DONE;
+ }
+ }
+
+ seeker_s = g_malloc0(sizeof(*seeker_s));
+ if (seeker_s == NULL) {
+ error_code = BT_ERROR_OUT_OF_MEMORY;
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ if (bt_device_is_profile_connected(remote_address, BT_PROFILE_GATT,
+ &connected) != BT_ERROR_NONE)
+ BT_ERR("bt_device_is_profile_connected is failed");
+ seeker_s->connected = connected;
+
+ _bt_convert_address_to_hex(&addr_hex, remote_address);
+
+ if (seeker_s->connected == true) {
+ error_code = __bt_update_tds_transport_data(&addr_hex, seeker_s);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ __bt_tds_reset_seeker_data(seeker_s);
+ g_free(seeker_s);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+ error_code = bluetooth_gatt_set_service_change_watcher(&addr_hex, true);
+ if (error_code != BLUETOOTH_ERROR_NONE) {
+ __bt_tds_reset_seeker_data(seeker_s);
+ g_free(seeker_s);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+ }
+
+ seeker_s->remote_address = g_strdup(remote_address);
+ if (seeker_s->remote_address == NULL) {
+ __bt_tds_reset_seeker_data(seeker_s);
+ free(seeker_s);
+ error_code = BT_ERROR_OUT_OF_MEMORY;
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+ return error_code;
+ }
+
+ seeker_s->cccd_enabled = FALSE;
+ seeker_s->activation_data = NULL;
+
+ tds_seeker_list = g_slist_append(tds_seeker_list, seeker_s);
+ *seeker = (bt_tds_seeker_h)seeker_s;
+
+ BT_DBG("TDS Seeker Created");
+ return BT_ERROR_NONE;
+}
+
+int bt_tds_seeker_destroy(bt_tds_seeker_h seeker)
+{
+ bt_tds_seeker_s *seeker_s = (bt_tds_seeker_s *)seeker;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(seeker_s);
+
+ if (_bt_tds_seeker_find(seeker_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ BT_DBG("TDS Seeker destroy Remote Provider [%s]", seeker_s->remote_address);
+ __bt_tds_reset_seeker_data(seeker_s);
+
+ tds_seeker_list = g_slist_remove(tds_seeker_list, seeker_s);
+ g_free(seeker_s);
+ seeker_s = NULL;
+
+ return BT_ERROR_NONE;
+}
+
+int bt_tds_seeker_connect(bt_tds_seeker_h seeker)
+{
+ int error_code;
+ bt_tds_seeker_s *seeker_s = (bt_tds_seeker_s *)seeker;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(seeker_s);
+
+ if (_bt_tds_seeker_find(seeker_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (seeker_s->connected)
+ return BT_ERROR_NONE;
+
+ BT_DBG("TDS Seeker connect Remote Provider [%s]", seeker_s->remote_address);
+ error_code = bt_gatt_connect(seeker_s->remote_address, FALSE);
+
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+
+ return error_code;
+}
+
+int bt_tds_seeker_disconnect(bt_tds_seeker_h seeker)
+{
+ int error_code;
+ bt_tds_seeker_s *seeker_s = (bt_tds_seeker_s *)seeker;
+
+ BT_CHECK_TDS_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(seeker_s);
+
+ if (_bt_tds_seeker_find(seeker_s->remote_address) == NULL)
+ return BT_ERROR_NOT_INITIALIZED;
+
+ if (seeker_s->connected == false) {
+ BT_ERR("Remote Provider [%s] is not conencted", seeker_s->remote_address);
+ return BT_ERROR_OPERATION_FAILED;
+ }
+
+ BT_DBG("TDS Seeker Disconnect Remote Provider [%s]", seeker_s->remote_address);
+ error_code = bt_gatt_disconnect(seeker_s->remote_address);
+
+ if (error_code != BT_ERROR_NONE)
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), error_code);
+
+ return error_code;
+}
+/* LCOV_EXCL_STOP */
SET(fw_test "${fw_name}-test")
INCLUDE(FindPkgConfig)
-pkg_check_modules(${fw_test} REQUIRED glib-2.0 capi-appfw-application)
+pkg_check_modules(${fw_test} REQUIRED glib-2.0 capi-appfw-app-control)
FOREACH(flag ${${fw_test}_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)
const char *opp_uuid = "00001105-0000-1000-8000-00805f9b34fb";
const char *custom_uuid = "fa87c0d0-afac-11de-8a39-0800200c9a66";
-/*
- * Temporary HPS UUIDs. SIG has to define the UUIDs yet.
- */
-#define HPS_UUID "00001900-0000-1000-8000-00805f9b34fb"
-#define HTTP_URI_UUID "00001901-0000-1000-8000-00805f9b34fb"
-#define HTTP_HDR_UUID "00001902-0000-1000-8000-00805f9b34fb"
-#define HTTP_ENTITY_UUID "00001903-0000-1000-8000-00805f9b34fb"
-#define HTTP_CP_UUID "00001904-0000-1000-8000-00805f9b34fb"
-#define HTTP_STATUS_UUID "00001905-0000-1000-8000-00805f9b34fb"
-#define HTTP_SECURITY_UUID "00001906-0000-1000-8000-00805f9b34fb"
+/* HPS UUIDs. defined by SIG */
+#define HPS_UUID "1823"
+#define HTTP_URI_UUID "2ab6"
+#define HTTP_HDR_UUID "2ab7"
+#define HTTP_ENTITY_UUID "2ab9"
+#define HTTP_CP_UUID "2aba"
+#define HTTP_STATUS_UUID "2ab8"
+#define HTTP_SECURITY_UUID "2abb"
#define HTTP_STATUS_DESC_UUID "2902"
static bt_unit_test_table_e current_tc_table;
static struct timeval check_time = {0,};
static gboolean is_sub_index = FALSE;
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
int service_index;
int char_service_index;
static int selected_service_index = -1;
static int selected_char_index = 0;
-#endif
static bt_advertiser_h advertiser = NULL;
static bt_advertiser_h advertiser_list[3] = {NULL, };
gatt_handle_t custom_h;
gatt_handle_t ipsp_h;
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
+bt_proximity_reporter_h reporter;
+bt_proximity_monitor_h monitor;
+bt_scan_filter_h pxp_scan_filter;
+
+bt_tds_provider_h provider;
+char *tds_act_address;
+bt_tds_seeker_h seeker;
+
+bt_otp_client_h otp_client;
+
bt_gatt_attribute_h service_clone[MAX_SERVICES];
bt_gatt_attribute_h characteristics[MAX_SERVICES];
bt_gatt_attribute_h characteristics_services[MAX_SERVICES];
-#endif
static unsigned char *hash = NULL;
static unsigned char *randomizer = NULL;
, BT_UNIT_TEST_TABLE_DPM},
{"PXP"
, BT_UNIT_TEST_TABLE_PXP},
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
{"HF Role"
, BT_UNIT_TEST_TABLE_HF},
{"PBAP Client"
, BT_UNIT_TEST_TABLE_PBAP_CLIENT},
-#endif
{"etc.(Automated test, AppControl)"
, BT_UNIT_TEST_TABLE_ETC},
+ {"TDS Provider"
+ , BT_UNIT_TEST_TABLE_TDS_PROVIDER},
+ {"TDS Seeker"
+ , BT_UNIT_TEST_TABLE_TDS_SEEKER},
+ {"OTP"
+ , BT_UNIT_TEST_TABLE_OTP},
{"Initialize All"
, BT_UNIT_TEST_FUNCTION_INITIALIZE_ALL},
{"FINISH"
, BT_UNIT_TEST_FUNCTION_ADAPTER_IS_DISCOVERING},
{"bt_adapter_foreach_bonded_device"
, BT_UNIT_TEST_FUNCTION_ADAPTER_FOREACH_BONDED_DEVICE},
+ {"bt_adapter_foreach_profile_connected_devices"
+ , BT_UNIT_TEST_FUNCTION_ADAPTER_FOREACH_PROFILE_CONNECTED_DEVICES},
{"bt_adapter_get_bonded_device_info"
, BT_UNIT_TEST_FUNCTION_ADAPTER_GET_BONDED_DEVICE_INFO},
{"bt_adapter_is_service_used"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_SCAN},
{"bt_adapter_le_stop_scan"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_SCAN},
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
{"bt_adapter_le_start_device_discovery"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_DEVICE_DISCOVERY},
{"bt_adapter_le_stop_device_discovery"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_DEVICE_DISCOVERY},
-#endif
{"bt_adapter_le_add_advertising_data"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_ADVERTISING_DATA},
{"bt_adapter_le_set_advertising_mode"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_CONNECTABLE},
{"bt_adapter_le_start_advertising_new"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_ADVERTISING_NEW},
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
{"bt_adapter_le_start_advertising"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_ADVERTISING},
-#endif
{"bt_adapter_le_stop_advertising"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_ADVERTISING},
{"bt_adapter_le_add_white_list"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_WHITE_LIST},
{"bt_adapter_le_remove_white_list"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REMOVE_WHITE_LIST},
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
{"bt_adapter_le_clear_white_list"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_CLEAR_WHITE_LIST},
-#endif
{"bt_adapter_le_enable_privacy"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ENABLE_PRIVACY},
+ {"bt_adapter_le_set_remote_oob_ext_data"
+ , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_REMOTE_OOB_EXT_DATA},
{"Register scan filter (Device Address)"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_DEVICE_ADDRESS},
{"Register scan filter (Service UUID)"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_IBEACON_DATA},
{"Unregister all scan filters"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_UNREGISTER_ALL_SCAN_FILTERS},
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
{"bt_adapter_le_set_device_discovery_state_changed_cb"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_DEVICE_DISCOVERY_STATE_CHANGED_CB},
{"bt_adapter_le_unset_device_discovery_state_changed_cb"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_UNSET_DEVICE_DISCOVERY_STATE_CHANGED_CB},
-#endif
{"bt_adater_le_read_maximum_data_length"
, BT_UNIT_TEST_FUNCTION_ADAPTER_LE_READ_MAXIMUM_DATA_LENGTH},
{"bt_adater_le_wite_host_suggested_def_data_length"
, BT_UNIT_TEST_FUNCTION_AG_SET_CALL_HANDLING_EVENT_CB},
{"bt_ag_is_nrec_enabled"
, BT_UNIT_TEST_FUNCTION_AG_IS_NREC_ENABLED},
+ {"bt_ag_switch_headset"
+ , BT_UNIT_TEST_FUNCTION_AG_SWITCH_HEADSET},
{"bt_audio_select_role(source)"
, BT_UNIT_TEST_FUNCTION_A2DP_SOURCE_ROLE},
{"bt_audio_select_role(sink)"
, BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_CHAR_VALUE_CHANGED_CB},
{"bt_gatt_client_foreach_services"
, BT_UNIT_TEST_FUNCTION_GATT_CLIENT_FOREACH_SERVICES},
+ {"bt_gatt_client_request_att_mtu_change"
+ , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_REQUEST_ATT_MTU},
+ {"bt_gatt_client_get_att_mtu"
+ , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_GET_ATT_MTU},
{"bt_gatt_client_set_service_changed_cb"
, BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_SERVICE_CHANGED_CB},
{"bt_gatt_client_unset_service_changed_cb"
, BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_SERVICE_CHANGED_CB},
+ {"bt_gatt_client_set_att_mtu_changed_cb"
+ , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_ATT_MTU_CHANGED_CB},
+ {"bt_gatt_client_unset_att_mtu_changed_cb"
+ , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_ATT_MTU_CHANGED_CB},
{"bt_gatt_server_initialize"
, BT_UNIT_TEST_FUNCTION_GATT_SERVER_INITIALIZE},
{"bt_gatt_server_deinitilaize"
, BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_DEVICE_INFORMATION_SVC},
{"Register Link Loss Service"
, BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_LINK_LOSS_SVC},
+ {"Register HID Over GATT Service"
+ , BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_HOGP_SVC},
{"Register Custom Service"
, BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_CUSTOM_SVC},
{"Change Custom Value"
, BT_UNIT_TEST_FUNCTION_ANCS_NEGATIVE_ACTION},
{"ANCS (Get Noti. Attr.)"
, BT_UNIT_TEST_FUNCTION_ANCS_GET_NOTI_ATTR},
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
{"bt_gatt_foreach_primary_services"
, BT_UNIT_TEST_FUNCTION_GATT_FOREACH_PRIMARY_SERVICES},
{"bt_gatt_discover_characteristics"
, BT_UNIT_TEST_FUNCTION_GATT_WATCH_CHARACTERISTIC_CHANGES},
{"bt_gatt_unwatch_characteristic_changes"
, BT_UNIT_TEST_FUNCTION_GATT_UNWATCH_CHARACTERISTIC_CHANGES},
-#endif
{"Select this menu to set parameters and then select the function again."
, BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
{NULL , 0x0000},
/* HPS functions */
{"BACK"
, BT_UNIT_TEST_FUNCTION_BACK},
- {"Proximity (Register)"
- , BT_UNIT_TEST_FUNCTION_PXP_REGISTER},
- {"Proximity (Unregister)"
- , BT_UNIT_TEST_FUNCTION_PXP_UNREGISTER},
- {"Proximity (Connect as Monitor)"
+ {"Proximity Reporter(Register)"
+ , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_REGISTER},
+ {"Proximity Reporter(Unregister)"
+ , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNREGISTER},
+ {"Proximity Reporter(Start Advertising Proximity Reporter)"
+ , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_START_ADVERTISING},
+ {"Proximity Reporter (Set State Changed callback)"
+ , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_SET_CONNECTION_STATE_CHANGED_CB},
+ {"Proximity Reporter (UnSet State Changed callback)"
+ , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNSET_CONNECTION_STATE_CHANGED_CB},
+ {"Proximity Reporter (Set Property Changed callback)"
+ , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_SET_PROPERTIES_CHANGED_CB},
+ {"Proximity Reporter (UnSet Property Changed callback)"
+ , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNSET_PROPERTIES_CHANGED_CB},
+ {"Proximity Reporter(Read Linkloss Alert Level)"
+ , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_READ_LINKLOSS_ALERT},
+ {"Proximity Reporter(Read Immediate Alert Level)"
+ , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_READ_IMMEDIATE_ALERT},
+ {"Proximity Monitor(Create)"
+ , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_CREATE},
+ {"Proximity Monitor(Destroy)"
+ , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_DESTROY},
+ {"Proximity Monitor(Connect)"
, BT_UNIT_TEST_FUNCTION_PXP_MONITOR_CONNECT},
- {"Proximity (Disconnect Monitor)"
+ {"Proximity Monitor(Disconnect)"
, BT_UNIT_TEST_FUNCTION_PXP_MONITOR_DISCONNECT},
- {"Proximity (Write Alert Level)"
- , BT_UNIT_TEST_FUNCTION_PXP_WRITE_ALERT_LEVEL},
- {"Proximity (Read Alert Level)"
- , BT_UNIT_TEST_FUNCTION_PXP_READ_ALERT_LEVEL},
- {"Proximity (Get Supported Services)"
- , BT_UNIT_TEST_FUNCTION_PXP_GET_SUPPORTED_SERVICES},
+ {"Proximity Monitor (Set State Changed callback)"
+ , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_SET_CONNECTION_STATE_CHANGED_CB},
+ {"Proximity Monitor (UnSet State Changed callback)"
+ , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_UNSET_CONNECTION_STATE_CHANGED_CB},
+ {"Proximity Monitor(Set LE Scan Filter for Proximity UUID)"
+ , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_SET_SCAN_FILTER_SERVICE_UUID},
+ {"Proximity Monitor(Unet LE Scan Filter for Proximity UUID)"
+ , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_UNSET_SCAN_FILTER_SERVICE_UUID},
+ {"Proximity Monitor(Write Linkloss Alert Level)"
+ , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_LINKLOSS_ALERT},
+ {"Proximity Monitor(Write Immediate Alert Level)"
+ , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_IMMEDIATE_ALERT},
+ {"Proximity Monitor(Read Linkloss Alert Level)"
+ , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_LINKLOSS_ALERT},
+ {"Proximity Monitor(Read Immediate Alert Level)"
+ , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_IMMEDIATE_ALERT},
+ {"Proximity Monitor(Read Signal Level)"
+ , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_SIGNAL_LEVEL},
{"Select this menu to set parameters and then select the function again."
, BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
{NULL , 0x0000},
, BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_NEXT},
{"bt_avrcp_control_player_PREV"
, 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_GET_REPEAT"
, BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_REPEAT},
{"bt_avrcp_control_player_SET_REPEAT"
{NULL , 0x0000},
};
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
tc_table_t tc_hf[] = {
/* Handsfree role functions */
{"BACK"
, BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
{NULL , 0x0000},
};
-#endif
+
+tc_table_t tc_tds_provider[] = {
+ /* TDS provider functions */
+ {"BACK"
+ , BT_UNIT_TEST_FUNCTION_BACK},
+ {"TDS Provider(Register)"
+ , BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_REGISTER},
+ {"TDS Provider(Unregister)"
+ , BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_UNREGISTER},
+ {"TDS Provider set activation req callback"
+ , BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_SET_ACT_REQ_CB},
+ {"TDS Provider unset activation req callback"
+ , BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_UNSET_ACT_REQ_CB},
+ {"TDS CUSTOM Provider(Create)"
+ , BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_CREATE},
+ {"TDS CUSTOM Provider(Destroy)"
+ , BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_DESTROY},
+ {"TDS CUSTOM Provider(Set transport Data)"
+ , BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SET_TRANSPORT_DATA},
+ {"TDS CUSTOM Provider(Set manuf Data)"
+ , BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SET_MANUF_DATA},
+ {"TDS CUSTOM Provider(Send Activation Response)"
+ , BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SEND_ACTIVATION_RESP},
+ {NULL , 0x0000},
+};
+
+tc_table_t tc_tds_seeker[] = {
+ /* TDS Seeker functions */
+ {"BACK"
+ , BT_UNIT_TEST_FUNCTION_BACK},
+ {"TDS Seeker Start Discovering Provider"
+ , BT_UNIT_TEST_FUNCTION_TDS_START_DISCOVERING_PROVIDER},
+ {"TDS Seeker Stop Discovering Provider"
+ , BT_UNIT_TEST_FUNCTION_TDS_STOP_DISCOVERING_PROVIDER},
+ {"TDS Seeker(Create)"
+ , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_CREATE},
+ {"TDS Seeker(Destroy)"
+ , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_DESTROY},
+ {"TDS Set Seeker Connection cb"
+ , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_SET_CONNECTION_CALLBACK},
+ {"TDS Seeker Connect(remote)"
+ , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_CONNECT},
+ {"TDS Seeker DisConnect(remote)"
+ , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_DISCONNECT},
+ {"TDS UnSet Seeker Connection cb"
+ , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_UNSET_CONNECTION_CALLBACK},
+ {"TDS Read Complete Transport Data (remote)"
+ , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_GET_COMPLETE_DATA},
+ {"TDS Activate Control Point (remote)"
+ , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_ACTIVATE_CONTROL_POINT},
+ {NULL , 0x0000},
+};
+
+tc_table_t tc_otp[] = {
+ /* OTP functions */
+ {"BACK"
+ , BT_UNIT_TEST_FUNCTION_BACK},
+ {"bt_otp_server_init"
+ , BT_UNIT_TEST_FUNCTION_OTP_SERVER_INIT},
+ {"bt_otp_server_deinit"
+ , BT_UNIT_TEST_FUNCTION_OTP_SERVER_DEINIT},
+ {"bt_otp_set_server_state_changed_cb"
+ , BT_UNIT_TEST_FUNCTION_OTP_SET_SERVER_STATE_CHANGED_CB},
+ {"bt_otp_unset_server_state_changed_cb"
+ , BT_UNIT_TEST_FUNCTION_OTP_UNSET_SERVER_STATE_CHANGED_CB},
+ {"bt_otp_client_create"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CREATE},
+ {"bt_otp_client_destroy"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DESTROY},
+ {"bt_otp_client_set_connection_state_changed_cb"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_SET_CONNECTION_CALLBACK},
+ {"bt_otp_client_unset_connection_state_changed_cb"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_UNSET_CONNECTION_CALLBACK},
+ {"bt_otp_client_connect"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CONNECT},
+ {"bt_otp_client_disconnect"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DISCONNECT},
+ {"bt_otp_client_discover_all_objects"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DISCOVER_ALL_OBJECTS},
+ {"bt_otp_client_select_object"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_SELECT_OBJ},
+ {"bt_otp_client_read_object_contents"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_READ_OBJ_CONTENTS},
+ {"bt_otp_client_create_object"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CREATE_OBJ},
+ {"bt_otp_client_write_object"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_WRITE_OBJ},
+ {"bt_otp_client_execute_object"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_EXECUTE_OBJ},
+ {"bt_otp_client_delete_object"
+ , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DELETE_OBJ},
+ {NULL , 0x0000},
+};
tc_table_t tc_automated_test[] = {
/* Automated test Functions*/
case BT_UNIT_TEST_TABLE_PXP:
tc_table = tc_pxp;
break;
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
case BT_UNIT_TEST_TABLE_HF:
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ goto __default__;
tc_table = tc_hf;
break;
case BT_UNIT_TEST_TABLE_PBAP_CLIENT:
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ goto __default__;
tc_table = tc_pbap_client;
break;
-#endif
case BT_UNIT_TEST_TABLE_ETC:
if (input_automated_test_delay == true) {
TC_PRT("Input the delay for automated"
__bt_initialize_all();
TC_PRT("Key 0 : usage BACK");
return;
+ case BT_UNIT_TEST_TABLE_TDS_PROVIDER:
+ tc_table = tc_tds_provider;
+ break;
+ case BT_UNIT_TEST_TABLE_TDS_SEEKER:
+ tc_table = tc_tds_seeker;
+ break;
+ case BT_UNIT_TEST_TABLE_OTP:
+ tc_table = tc_otp;
+ break;
case BT_UNIT_TEST_TABLE_MAIN:
+__default__:
default:
tc_table = tc_main;
break;
case BT_ERROR_SERVICE_NOT_FOUND:
err_str = "BT_ERROR_SERVICE_NOT_FOUND";
break;
+ case BT_ERROR_NO_DATA:
+ err_str = "BT_ERROR_NO_DATA";
+ break;
case BT_ERROR_NOT_SUPPORTED:
err_str = "BT_ERROR_NOT_SUPPORTED";
break;
return err_str;
}
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
static gboolean __select_index_cb(GIOChannel *chan,
GIOCondition cond,
gpointer data)
}
char_service_index = 0;
}
-#endif
void __bt_adapter_state_changed_cb(int result,
bt_adapter_state_e adapter_state, void *user_data)
void *user_data)
{
int i;
+ char *str = NULL;
TC_PRT("remote_address: %s", device_info->remote_address);
TC_PRT("remote_name: %s", device_info->remote_name);
+ TC_PRT("is_connected: %d", device_info->is_connected);
TC_PRT("service_count: %d", device_info->service_count);
if (device_info->service_uuid == NULL) {
TC_PRT("No uuids");
} else {
- for (i = 0; i < device_info->service_count; i++)
- TC_PRT("uuid: %s", device_info->service_uuid[i]);
+ for (i = 0; i < device_info->service_count; i++) {
+ bt_get_uuid_name(device_info->service_uuid[i], &str);
+
+ TC_PRT("[%d / %d] %s (%s)", i, device_info->service_count,
+ str ? str : "Unknown", device_info->service_uuid[i]);
+ g_free(str);
+ }
}
if (device_info->manufacturer_data_len > 0) {
printf("%02x ", device_info->manufacturer_data[i]);
printf("]\n");
}
+ printf("\n");
+
+ return true;
+}
+
+static bool __bt_adapter_profile_connected_devices_cb(
+ const char *remote_address, void *user_data)
+{
+ TC_PRT("remote_address: %s", remote_address);
return true;
}
char *manufacturer_data;
int manufacturer_data_len;
int count;
- bt_adapter_ibeacon_scan_result_info_s *ibeacon_info = NULL;
+ bt_adapter_le_ibeacon_scan_result_info_s *ibeacon_info = NULL;
pkt_type += i;
if (pkt_type == BT_ADAPTER_LE_PACKET_ADVERTISING
if (bt_adapter_le_get_scan_result_manufacturer_data(
info, pkt_type, &manufacturer_id, &manufacturer_data,
&manufacturer_data_len) == BT_ERROR_NONE) {
- if (manufacturer_data_len > 1)
- TC_PRT("Manufacturer data[ID:%.4X, 0x%.2X%.2X...(len:%d)]",
- manufacturer_id, manufacturer_data[0],
- manufacturer_data[1], manufacturer_data_len);
- else
- TC_PRT("Manufacturer data[ID:%.4X, len:%d]",
- manufacturer_id, manufacturer_data_len);
-
+ TC_PRT("Manufacturer data[ID:%.4X, 0x%.2X%.2X...(len:%d)]",
+ manufacturer_id, manufacturer_data[0],
+ manufacturer_data[1], manufacturer_data_len);
g_free(manufacturer_data);
}
if (bt_adapter_le_get_scan_result_ibeacon_report(info, pkt_type,
int offset, void *user_data)
{
char char_value_1[3] = {0, 1, 2};
- int resp_status = BT_ERROR_NONE;
+ int resp_status = BT_ATT_ERROR_NONE;
TC_PRT("__bt_gatt_server_read_value_requested_cb");
TC_PRT("remote_address %s", remote_address);
}
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
static void __bt_adapter_le_device_discovery_state_changed_cb(int result,
bt_adapter_le_device_discovery_state_e discovery_state,
bt_adapter_le_device_discovery_info_s *discovery_info,
discovery_info->rssi,
discovery_info->address_type);
- if (discovery_info->adv_data_len > 31 ||
- discovery_info->scan_data_len > 31) {
- TC_PRT("###################");
- bt_adapter_le_stop_device_discovery();
- TC_PRT("###################");
- return;
- }
#if 0
/* LE ADV information */
int i, ret;
int field_len = 0;
unsigned char *field_data;
+
printf("Adv data [");
for (i = 0; i < discovery_info->adv_data_len; i++)
printf("%02x ", discovery_info->adv_data[i]);
#endif
}
}
-#endif
static void __bt_adapter_le_advertising_state_changed_cb(int result,
bt_advertiser_h advertiser, bt_adapter_le_advertising_state_e adv_state,
TC_PRT("+");
char val = 0x01;
int ret = 0;
+ static char hidmode = 0x01;
if (data == NULL) {
TC_PRT("No received data");
return;
case BT_HID_HEADER_GET_REPORT:
TC_PRT("GET_REPORT data");
TC_PRT("ReportId %d", data->data[1]);
- bt_hid_key_data_s send_data;
- /* Will send character 'a' */
- char pressedkey[8] = { 4, 0, 0, 0, 0, 0, 0, 0 };
- memcpy(send_data.key, pressedkey, 8);
- send_data.modifier = 0;
+
if (data->data[1] == 0x02) {
- ret = bt_hid_device_reply_to_report(remote_addr,
- BT_HID_HEADER_GET_REPORT,
- BT_HID_PARAM_DATA_RTYPE_INPUT,
- (const char *)&send_data,
- sizeof(send_data));
+ bt_hid_key_data_s send_data;
+ /* Will send character 'a' */
+ char pressedkey[8] = { 4, 0, 0, 0, 0, 0, 0, 0 };
+ memcpy(send_data.key, pressedkey, 8);
+ send_data.modifier = 0;
+ ret = bt_hid_device_reply_to_report(remote_addr,
+ BT_HID_HEADER_GET_REPORT,
+ BT_HID_PARAM_DATA_RTYPE_INPUT,
+ (const char *)&send_data,
+ sizeof(send_data));
} else if (data->data[1] == 0x01) {
TC_PRT("Send Mouse Event");
+ bt_hid_mouse_data_s send_data;
+
+ send_data.buttons = 1;
+ send_data.padding = BT_HID_MOUSE_BUTTON_NONE;
+
+ send_data.axis_x = 10;
+ send_data.axis_y = 0;
+ ret = bt_hid_device_reply_to_report(remote_addr,
+ BT_HID_HEADER_GET_REPORT,
+ BT_HID_PARAM_DATA_RTYPE_INPUT,
+ (const char *)&send_data,
+ sizeof(send_data));
} else {
TC_PRT("Invalid ReportId");
val = BT_HID_HANDSHAKE_ERR_INVALID_REPORT_ID;
break;
case BT_HID_HEADER_SET_REPORT:
TC_PRT("SET_REPORT data");
+ val = BT_HID_HANDSHAKE_SUCCESSFUL;
+ ret = bt_hid_device_reply_to_report(remote_addr,
+ BT_HID_HEADER_HANDSHAKE,
+ BT_HID_PARAM_DATA_RTYPE_INPUT,
+ &val, sizeof(val));
+ TC_PRT("ret %d", ret);
break;
case BT_HID_HEADER_DATA:
TC_PRT("TRANs DATA");
break;
case BT_HID_HEADER_GET_PROTOCOL:
- TC_PRT("GET PROTOCOL");
+ TC_PRT("GET PROTOCOL %x", hidmode);
ret = bt_hid_device_reply_to_report(remote_addr,
BT_HID_HEADER_GET_PROTOCOL,
BT_HID_PARAM_DATA_RTYPE_INPUT,
- &val, sizeof(val));
+ &hidmode, sizeof(hidmode));
TC_PRT("ret %d", ret);
break;
case BT_HID_HEADER_SET_PROTOCOL:
TC_PRT("SET PROTOCOL");
val = BT_HID_HANDSHAKE_SUCCESSFUL;
+
+ if (data->data[0] & 0x01) {
+ TC_PRT("HID Report mode set");
+ hidmode = 0x01;
+ } else {
+ TC_PRT("HID Boot mode set");
+ hidmode = 0x00;
+ }
ret = bt_hid_device_reply_to_report(remote_addr,
BT_HID_HEADER_HANDSHAKE,
BT_HID_PARAM_DATA_RTYPE_INPUT,
void __bt_gatt_connection_state_changed_cb(int result,
bool connected, const char *remote_address, void *user_data)
{
- TC_PRT("result: %s", __bt_get_error_message(result));
+ if (result != BT_ERROR_NONE)
+ TC_PRT("result: %s", __bt_get_error_message(result));
+
if (connected) {
- TC_PRT("LE connected(address = %s)", remote_address);
- /* Fix : STRING_OVERFLOW */
+ TC_PRT("GATT connected [%s]", remote_address);
strncpy(remote_addr, remote_address, strlen(remote_addr));
+
+ bt_le_conn_update_s param;
+
+ param.interval_min = 90;
+ param.interval_max = 90;
+ param.latency = 0;
+ param.time_out = 2000;
+ bt_device_le_conn_update(remote_addr, ¶m);
} else {
- TC_PRT("LE DISconnected");
+ TC_PRT("GATT DISconnected [%s]", remote_address);
}
}
bool connected, const char *remote_address, void *user_data)
{
int ret;
- TC_PRT("result: %s", __bt_get_error_message(result));
+ if (result != BT_ERROR_NONE)
+ TC_PRT("result: %s", __bt_get_error_message(result));
+
if (connected) {
- TC_PRT("HPS connected(address = %s)", remote_address);
+ TC_PRT("HPS connected [%s]", remote_address);
/* Fix : STRING_OVERFLOW */
strncpy(remote_addr, remote_address, strlen(remote_addr));
if (hps_client) {
__bt_get_error_message(ret));
} else {
- TC_PRT("HPS DISconnected");
+ TC_PRT("HPS DISconnected [%s]", remote_address);
}
}
g_free(addr);
}
+void __bt_gatt_client_att_mtu_changed_cb(bt_gatt_client_h c, const bt_gatt_client_att_mtu_info_s *mtu_info, void *user_data)
+{
+ char *addr = NULL;
+ int ret;
+
+ TC_PRT("__bt_gatt_client_att_mtu_changed_cb");
+
+ ret = bt_gatt_client_get_remote_address(client, &addr);
+ if (ret != BT_ERROR_NONE) {
+ TC_PRT("Cannot get remote address");
+ return;
+ }
+
+ if (mtu_info) {
+ TC_PRT("status [%d]", mtu_info->status);
+ TC_PRT("address [%s]", mtu_info->remote_address);
+ TC_PRT("MTU [%d]", mtu_info->mtu);
+ }
+
+ g_free(addr);
+}
+
int __bt_gatt_client_set_value(char *type, char *value, bt_gatt_h h)
{
int ret;
if (hex_format) {
str = g_malloc0(len * 5 + 1);
- /* Fix : NULL_RETURNS */
- if (!str) {
- TC_PRT("BT_ERROR_OUT_OF_MEMORY");
- goto fail;
- }
for (i = 0; i < len; i++) {
if (i > 0)
str[i * 5 - 1] = ' ';
}
} else {
str = g_malloc0(len + 1);
- /* Fix : NULL_RETURNS */
- if (!str) {
- TC_PRT("BT_ERROR_OUT_OF_MEMORY");
- goto fail;
- }
memcpy(str, value, len);
}
TC_PRT("Value : %s", str);
g_free(str);
-fail:
g_free(value);
}
bt_get_uuid_name(uuid, &str);
TC_PRT("Write %s for %s (%s)",
- result == BT_ERROR_NONE ? "Success" : "Fail",
+ result == BT_ATT_ERROR_NONE ? "Success" : "Fail",
str ? str : "Unknown", uuid);
g_free(str);
bt_get_uuid_name(uuid, &str);
TC_PRT("Read %s for %s (%s)",
- result == BT_ERROR_NONE ? "Success" : "Fail",
+ result == BT_ATT_ERROR_NONE ? "Success" : "Fail",
str ? str : "Unknown", uuid);
g_free(str);
g_free(uuid);
- if (result != BT_ERROR_NONE)
+ if (result != BT_ATT_ERROR_NONE)
return;
__bt_gatt_client_print_value(gatt_handle);
index, total,
str ? str : "Unknown", uuid);
- g_free(str);
- g_free(uuid);
-
if (test_id == BT_UNIT_TEST_FUNCTION_HPS_CLIENT_PRINT_ALL) {
#ifdef ARCH64
ret = bt_gatt_service_foreach_characteristics(svc_handle,
TC_PRT("bt_gatt_service_foreach_characteristics is failed : %d", ret);
}
}
+
+ g_free(str);
+ g_free(uuid);
return true;
}
return;
}
-void __bt_pxp_montior_connection_state_changed_cb(int result,
- bool connected, const char *remote_address, void *user_data)
+void __bt_proximity_reporter_property_changed_cb(int result, const char *remote_address,
+ int service_type, int prop_value, void *user_data)
{
- int ret;
- TC_PRT("result: %s", __bt_get_error_message(result));
- if (connected) {
- int property = 0;
+ TC_PRT("reporter_property result [%s]", __bt_get_error_message(result));
+ TC_PRT("remote_address : %s", remote_address);
+ TC_PRT("service_type : %d", service_type);
+ TC_PRT("prop_value : %d", prop_value);
+}
- TC_PRT("PXP Monitor connected(address = %s)", remote_address);
+void __bt_proximity_monitor_connection_state_changed_cb(int result, const char *remote_address,
+ bt_proximity_monitor_h monitor_s, bool connected, int supported_service, void *user_data)
+{
+ TC_PRT("result: %s", __bt_get_error_message(result));
+ if (result == BT_ERROR_NONE) {
+ if (connected) {
+ TC_PRT("PXP connected(address = %s)", remote_address);
+ TC_PRT("PXP Reporter supported Service\n");
+ if (supported_service & BT_PROXIMITY_LINKLOSS_ALERT)
+ TC_PRT("BT_PROXIMITY_LINKLOSS_ALERT\n");
+ if (supported_service & BT_PROXIMITY_IMMEDIATE_ALERT)
+ TC_PRT("BT_PROXIMITY_IMMEDIATE_ALERT\n");
+ if (supported_service & BT_PROXIMITY_TX_POWER)
+ TC_PRT("BT_PROXIMITY_TX_POWER");
+ } else {
+ TC_PRT("PXP DISconnected");
+ }
+ }
+}
- ret = bt_proximity_get_supported_services(remote_addr, &property);
- TC_PRT("bt_proximity_get_supported_service returns %s\n",
- __bt_get_error_message(ret));
- if (ret == BT_ERROR_NONE) {
- TC_PRT("PXP Monitor supported Service\n");
- if (property & BT_PROXIMITY_LINKLOSS_ALERT)
+void __bt_proximity_reporter_connection_state_changed_cb(int result, const char *remote_address,
+ bt_proximity_reporter_h reporter_s, bool connected, int supported_service, void *user_data)
+{
+ TC_PRT("result: %s", __bt_get_error_message(result));
+ if (result == BT_ERROR_NONE) {
+ if (connected) {
+ TC_PRT("PXP connected(address = %s)", remote_address);
+ TC_PRT("PXP Reporter supported Service\n");
+ if (supported_service & BT_PROXIMITY_LINKLOSS_ALERT)
TC_PRT("BT_PROXIMITY_LINKLOSS_ALERT\n");
- if (property & BT_PROXIMITY_IMMEDIATE_ALERT)
+ if (supported_service & BT_PROXIMITY_IMMEDIATE_ALERT)
TC_PRT("BT_PROXIMITY_IMMEDIATE_ALERT\n");
- if (property & BT_PROXIMITY_TX_POWER)
- TC_PRT("BT_PROXIMITY_TX_POWER\n");
+ if (supported_service & BT_PROXIMITY_TX_POWER)
+ TC_PRT("BT_PROXIMITY_TX_POWER");
+ } else {
+ TC_PRT("PXP DISconnected");
}
- } else {
- TC_PRT("PXP Monitor DISconnected");
- ret = bt_gatt_unset_connection_state_changed_cb();
}
}
-void __bt_proximity_property_changed_cb(int result, const char *remote_address,
- int role, int service_type,
- int prop_value, void *user_data)
+void __tds_activation_req_cb(char *rem_bd_addr,
+ bt_tds_transport_e transport, unsigned char *buf, int len, void *user_data)
{
- TC_PRT("result [%s]", __bt_get_error_message(result));
- TC_PRT("remote_address : %s", remote_address);
- TC_PRT("Role : %d", role);
- TC_PRT("service_type : %d", service_type);
- TC_PRT("prop_value : %d", prop_value);
+ int i;
+
+ TC_PRT("remote_address : %s", rem_bd_addr);
+ TC_PRT("transport : %d", transport);
+ for (i = 0; i < len; i++)
+ TC_PRT("Act req data[%d] : %.2x", i, buf[i]);
+
+ g_free(tds_act_address);
+ tds_act_address = g_strdup(rem_bd_addr);
}
void __bt_gatt_server_notification_sent_cb(int result,
void __bt_gatt_server_write_value_requested_cb(const char *remote_address,
int request_id, bt_gatt_server_h server,
- bt_gatt_h gatt_handle, bool response_needed, int offset,
+ bt_gatt_h gatt_handle, bool response_needed, int offset,
const char *value, int len, void *user_data)
{
- int i, resp_status = BT_ERROR_NONE;
+ int i, resp_status = BT_ATT_ERROR_NONE;
TC_PRT("remote_address : %s", remote_address);
TC_PRT("Response needed : %d", response_needed);
TC_PRT("offset : %d", offset);
return true;
}
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
bool __bt_gatt_primary_service_cb(bt_gatt_attribute_h service,
void *user_data)
{
bt_get_uuid_name(uuid, &name);
TC_PRT("uuid: %s [%s]", uuid, name);
+ g_free(value);
g_free(uuid);
g_free(name);
return true;
TC_PRT("updated characteristic is %s", (char *)characteristic);
TC_PRT("new char value is %s", char_value);
}
-#endif
void __bt_avrcp_target_connection_state_changed_cb(bool connected,
const char *remote_address, void *user_data)
memcpy(ipsp_iface_name, iface_name, strlen(iface_name));
}
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
void __bt_hf_sco_state_changed_cb(int result,
bool opened, void *user_data)
{
TC_PRT("Listing Status: %s",
(result == BT_ERROR_NONE) ? "Successful" : "Unsuccessful");
}
-#endif
void __bt_repeat_test_adapter_state_changed_cb(int result,
bt_adapter_state_e adapter_state, void *user_data)
bt_onoff_cnt++;
}
+/* TDS Seeker Callbacks */
+static void __bt_tds_provider_scan_result_cb(int result, const char *remote_address,
+ bt_tds_transport_block_list_s *info, bt_adapter_le_device_scan_result_info_s *scan_info,
+ void *user_data)
+{
+ int k;
+ int l;
+ TC_PRT("__bt_tds_provider_scan_result_cb");
+ TC_PRT("result: %s", __bt_get_error_message(result));
+
+ TC_PRT("Result: %s", __bt_get_error_message(result));
+ TC_PRT("Remote addr [%s]", remote_address);
+ TC_PRT("Number of Transport Block [%d]", info->num_transport_block);
+
+ if (result == BT_ERROR_NONE) {
+ for (k = 0; k < info->num_transport_block; k++) {
+ TC_PRT("Block Num[%d] Transport Name [%d]", k+1, info->data[k]->transport);
+ TC_PRT("Block Num[%d] Transport state [%d]", k+1, info->data[k]->state);
+ TC_PRT("Block Num[%d] Is Data complete [%d]", k+1, info->data[k]->is_data_complete);
+ TC_PRT("Block Num[%d] Length of TDS Block data [%d]", k+1, info->data[k]->length);
+
+ for (l = 0; l < info->data[k]->length; l++)
+ TC_PRT("Transport Specific data [%d] = [0x%x]", l, info->data[k]->data[l]);
+ }
+ }
+}
+
+static void __bt_tds_seeker_connection_state_changed_cb(int result, const char *remote_address,
+ bt_tds_seeker_h seeker, bool connected, void *user_data)
+{
+ TC_PRT("Result: %s", __bt_get_error_message(result));
+ if (result == BT_ERROR_NONE) {
+ if (connected)
+ TC_PRT("TDS Seeker connected(address = %s)", remote_address);
+ else
+ TC_PRT("TDS Seeker Disconnected (address = %s)", remote_address);
+ } else
+ BT_ERR("TDS Connection failed!");
+}
+
+static void __bt_tds_seeker_complete_transport_data_cb(int result, const char *remote_address,
+ bt_tds_transport_block_list_s *info, void *user_data)
+{
+ int k;
+ int l;
+ TC_PRT("__bt_tds_seeker_complete_transport_data_cb");
+ TC_PRT("Result: %s", __bt_get_error_message(result));
+ TC_PRT("Remote addr [%s]", remote_address);
+
+ if (result == BT_ERROR_NONE) {
+ TC_PRT("Number of Transport Block [%d]", info->num_transport_block);
+ for (k = 0; k < info->num_transport_block; k++) {
+ TC_PRT("Block Num[%d] Transport Name [%d]", k+1, info->data[k]->transport);
+ TC_PRT("Block Num[%d] Transport state [%d]", k+1, info->data[k]->state);
+ TC_PRT("Block Num[%d] Is Data complete [%d]", k+1, info->data[k]->is_data_complete);
+ TC_PRT("Block Num[%d] Length of TDS Block data [%d]", k+1, info->data[k]->length);
+
+ for (l = 0; l < info->data[k]->length; l++)
+ TC_PRT("Transport Specific data [%d] = [0x%x]", l, info->data[k]->data[l]);
+ }
+ } else
+ BT_ERR("TDS Data receive request failed!");
+}
+
+static void __bt_tds_control_point_activation_result_cb(int result, const char *remote_address,
+ unsigned char *data, int length, void *user_data)
+{
+ int k;
+ TC_PRT("__bt_tds_control_point_activation_result_cb");
+ TC_PRT("Result [%d]", result);
+ TC_PRT("Address[%s]", remote_address);
+
+ if (result == BT_ERROR_NONE) {
+ TC_PRT("Data length [%d]", length);
+ for (k = 0; k < length; k++)
+ TC_PRT("Data[%d] [0x%x]", k, data[k]);
+ }
+}
+
+void __bt_otp_server_state_changed_cb(int result, bool status)
+{
+ TC_PRT("__bt_otp_server_state_changed_cb");
+ TC_PRT("Result: %d", result);
+ TC_PRT("Server Status: %s", status ? "enabled" : "disabled");
+}
+
+static void __bt_otp_client_connection_state_changed_cb(int result, const char *remote_address,
+ bt_otp_client_h otp_client, bool connected, void *user_data)
+{
+ TC_PRT("Result: %s", __bt_get_error_message(result));
+ if (result == BT_ERROR_NONE) {
+ if (connected)
+ TC_PRT("OTP Client connected(address = %s)", remote_address);
+ else
+ TC_PRT("OTP Client Disconnected (address = %s)", remote_address);
+ } else
+ BT_ERR("OTP Connection failed!");
+}
+
+static void __bt_otp_client_object_discovery_cb(int result, const char *remote_address,
+ bt_otp_object_list_s *obj_list, void *user_data)
+{
+ int k;
+ TC_PRT("__bt_otp_client_object_discovery_cb");
+ TC_PRT("Result: %s", __bt_get_error_message(result));
+ TC_PRT("Remote addr [%s]", remote_address);
+
+ if (result == BT_ERROR_NONE) {
+ TC_PRT("Number of Objects [%d]", obj_list->num_objects);
+
+ for (k = 0; k < obj_list->num_objects; k++)
+ TC_PRT("Object[%d] Id: [%llu] Name: [%s]", k+1, obj_list->data[k]->id, obj_list->data[k]->name);
+
+ } else {
+ BT_ERR("Object discovery failed!");
+ }
+}
+
+static void __bt_otp_client_object_select_cb(int result, const char *remote_address,
+ unsigned long long obj_id, void *user_data)
+{
+ TC_PRT("__bt_otp_client_object_select_cb");
+ TC_PRT("Result: %s", __bt_get_error_message(result));
+ TC_PRT("Remote addr [%s]", remote_address);
+
+ if (result == BT_ERROR_NONE)
+ TC_PRT("Object selected successfully! Current object[%llu]", obj_id);
+ else
+ BT_ERR("Object selection failed! Current object[%llu]", obj_id);
+}
+
+static void __bt_otp_client_read_object_complete_cb(int result, const char *remote_address,
+ char *file_path, void *user_data)
+{
+ if (result == BT_ERROR_NONE)
+ TC_PRT("Read object success!, File location [%s]", file_path);
+ else
+ BT_ERR("Read object failed!");
+}
+
+static void __bt_otp_client_object_create_cb(int result, const char *remote_address,
+ unsigned long long obj_id, void *user_data)
+{
+ if (result == BT_ERROR_NONE)
+ TC_PRT("Object[%llu] created successfully in remote server!", obj_id);
+ else
+ BT_ERR("Object creation failed!");
+}
+
+static void __bt_otp_client_object_write_cb(int result, const char *remote_address,
+ unsigned int length, void *user_data)
+{
+ if (result == BT_ERROR_NONE)
+ TC_PRT("Object write success!, [%u] bytes written", length);
+ else
+ BT_ERR("Object write failed!, [%u] bytes written", length);
+}
+
+static void __bt_otp_client_object_execute_cb(int result, const char *remote_address,
+ unsigned long long obj_id, void *user_data)
+{
+ TC_PRT("__bt_otp_client_object_execute_cb");
+ TC_PRT("Result: %s", __bt_get_error_message(result));
+ TC_PRT("Remote addr [%s]", remote_address);
+
+ if (result == BT_ERROR_NONE)
+ TC_PRT("Object[%llu] launched successfully!", obj_id);
+ else
+ BT_ERR("Object[%llu] launch failed!", obj_id);
+}
+
+static void __bt_otp_client_object_delete_cb(int result, const char *remote_address,
+ unsigned long long obj_id, void *user_data)
+{
+ TC_PRT("__bt_otp_client_object_delete_cb");
+ TC_PRT("Result: %s", __bt_get_error_message(result));
+ TC_PRT("Remote addr [%s]", remote_address);
+
+ if (result == BT_ERROR_NONE)
+ TC_PRT("Object[%llu] deleted successfully!", obj_id);
+ else
+ BT_ERR("Object[%llu] delete failed!", obj_id);
+}
+
static void __bt_initialize_all(void)
{
int ret;
__bt_device_bond_destroyed_cb, NULL);
if (ret != BT_ERROR_NONE)
TC_PRT("returns %s\n", __bt_get_error_message(ret));
- ret = bt_gatt_set_connection_state_changed_cb(
- __bt_gatt_connection_state_changed_cb, NULL);
+ ret = bt_device_set_connection_state_changed_cb(
+ __bt_device_connection_state_changed_cb, NULL);
if (ret != BT_ERROR_NONE)
TC_PRT("returns %s\n", __bt_get_error_message(ret));
- ret = bt_adapter_set_device_discovery_state_changed_cb(
- __bt_adapter_device_discovery_state_changed_cb, NULL);
+ ret = bt_device_set_att_mtu_changed_cb(
+ __bt_device_att_mtu_changed_cb, NULL);
if (ret != BT_ERROR_NONE)
TC_PRT("returns %s\n", __bt_get_error_message(ret));
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
- ret = bt_adapter_le_set_device_discovery_state_changed_cb(
- __bt_adapter_le_device_discovery_state_changed_cb, NULL);
+ ret = bt_gatt_set_connection_state_changed_cb(
+ __bt_gatt_connection_state_changed_cb, NULL);
if (ret != BT_ERROR_NONE)
TC_PRT("returns %s\n", __bt_get_error_message(ret));
-#else
- ret = bt_pbap_client_set_connection_state_changed_cb(__bt_pbap_connection_state_changed_cb,
- NULL);
+ ret = bt_adapter_set_device_discovery_state_changed_cb(
+ __bt_adapter_device_discovery_state_changed_cb, NULL);
if (ret != BT_ERROR_NONE)
TC_PRT("returns %s\n", __bt_get_error_message(ret));
-#endif
+ if (!TIZEN_PROFILE_WEARABLE_IVI) {
+ ret = bt_adapter_le_set_device_discovery_state_changed_cb(
+ __bt_adapter_le_device_discovery_state_changed_cb, NULL);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ } else {
+ ret = bt_pbap_client_set_connection_state_changed_cb(__bt_pbap_connection_state_changed_cb,
+ NULL);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
ret = bt_socket_set_connection_state_changed_cb(
__bt_socket_connection_state_changed_cb, NULL);
if (ret != BT_ERROR_NONE)
switch (current_tc_table) {
case BT_UNIT_TEST_TABLE_ADAPTER: {
switch (test_id) {
- case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_CONNECTABLE: {
+ case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_VISIBILITY: {
if (param_index == 0) {
g_test_param.param_count = 1;
- g_test_param.params = g_malloc0(sizeof(char *) *g_test_param.param_count);
- param_type = BT_UNIT_TEST_PARAM_TYPE_BOOL;
+ g_test_param.params = g_malloc0(sizeof(char*) * g_test_param.param_count);
+ param_type = BT_UNIT_TEST_PARAM_TYPE_INT;
}
if (param_index > 0) {
g_test_param.params[param_index - 1] = g_malloc0(strlen(param) + 1);
- strncpy(g_test_param.params[param_index - 1],
- param, strlen(param));
+ strncpy(g_test_param.params[param_index - 1], param, strlen(param));
}
if (param_index == g_test_param.param_count) {
return 0;
}
- TC_PRT("Input param(%d) type:%s",
- param_index + 1, param_type);
+ TC_PRT("Input param(%d) (non-discoverable: -1, always: 0, limited-discoverable(time): N)", param_index + 1);
param_index++;
break;
}
- case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_MANUFACTURER_DATA:
+ case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_CONNECTABLE: {
+ if (param_index == 0) {
+ g_test_param.param_count = 1;
+ g_test_param.params = g_malloc0(sizeof(char *) *g_test_param.param_count);
+ param_type = BT_UNIT_TEST_PARAM_TYPE_BOOL;
+ }
+
+ if (param_index > 0) {
+ g_test_param.params[param_index - 1] = g_malloc0(strlen(param) + 1);
+ strncpy(g_test_param.params[param_index - 1],
+ param, strlen(param));
+ }
+
+ if (param_index == g_test_param.param_count) {
+ need_to_set_params = false;
+#ifdef ARCH64
+ test_input_callback((void *)(uintptr_t)test_id);
+#else
+ test_input_callback((void *)test_id);
+#endif
+ param_index = 0;
+ return 0;
+ }
+
+ TC_PRT("Input param(%d) type:%s",
+ param_index + 1, param_type);
+ param_index++;
+
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_MANUFACTURER_DATA:
{
if (param_index == 0) {
g_test_param.param_count = 1;
break;
}
+ case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_REMOTE_OOB_EXT_DATA: {
+ if (param_index == 0) {
+ g_test_param.param_count = 3;
+ g_test_param.params = g_malloc0(sizeof(char*) * g_test_param.param_count);
+ param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
+ }
+
+ if (param_index > 0) {
+ int len = strlen(param);
+ g_test_param.params[param_index - 1] = g_malloc0(len);
+ param[len - 1] = '\0';
+ strncpy(g_test_param.params[param_index - 1], param, len);
+ }
+
+ if (param_index == g_test_param.param_count) {
+ need_to_set_params = false;
+#ifdef ARCH64
+ test_input_callback((void *)(uintptr_t)test_id);
+#else
+ test_input_callback((void *)test_id);
+#endif
+ param_index = 0;
+ return 0;
+ }
+
+ TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
+ param_index++;
+
+ break;
+
+ }
default:
TC_PRT("There is no param to set\n");
need_to_set_params = false;
break;
}
+ case BT_UNIT_TEST_FUNCTION_DEVICE_UPDATE_LE_CONNECTION_MODE: {
+ if (param_index == 0) {
+ g_test_param.param_count = 1;
+ g_test_param.params = g_malloc0(sizeof(char*) * g_test_param.param_count);
+ param_type = BT_UNIT_TEST_PARAM_TYPE_INT;
+ }
+
+ if (param_index > 0) {
+ g_test_param.params[param_index - 1] = g_malloc0(strlen(param) + 1);
+ strncpy(g_test_param.params[param_index - 1], param, strlen(param));
+ }
+
+ if (param_index == g_test_param.param_count) {
+ need_to_set_params = false;
+#ifdef ARCH64
+ test_input_callback((void *)(uintptr_t)test_id);
+#else
+ test_input_callback((void *)test_id);
+#endif
+ param_index = 0;
+ return 0;
+ }
+
+ TC_PRT("Input param(%d) mode (0 : balanced, 1 : low latency, 2 : low power) : %s", param_index + 1, param_type);
+ param_index++;
+
+ break;
+ }
+
case BT_UNIT_TEST_FUNCTION_DEVICE_REQUEST_ATT_MTU: {
if (param_index == 0) {
g_test_param.param_count = 1;
g_test_param.params[param_index - 1] = g_malloc0(len + 1);
/* Remove new line character */
param[len - 1] = '\0';
- strcpy(g_test_param.params[param_index - 1], param);
+ strncpy(g_test_param.params[param_index - 1], param, strlen(param));
}
if (param_index == g_test_param.param_count) {
g_test_param.params[param_index - 1] = g_malloc0(len + 1);
/* Remove new line character */
param[len - 1] = '\0';
- strcpy(g_test_param.params[param_index - 1], param);
+ strncpy(g_test_param.params[param_index - 1], param, strlen(param));
}
if (param_index == g_test_param.param_count) {
break;
}
+ case BT_UNIT_TEST_FUNCTION_AG_SWITCH_HEADSET: {
+ if (param_index == 0) {
+ g_test_param.param_count = 1;
+ g_test_param.params = g_malloc0(sizeof(char *) *g_test_param.param_count);
+ param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
+ }
+
+ if (param_index > 0) {
+ g_test_param.params[param_index - 1] = g_malloc0(strlen(param) + 1);
+ strncpy(g_test_param.params[param_index - 1], param, strlen(param));
+ }
+
+ if (param_index == g_test_param.param_count) {
+ need_to_set_params = false;
+#ifdef ARCH64
+ test_input_callback((void *)(uintptr_t)test_id);
+#else
+ test_input_callback((void *)test_id);
+#endif
+ param_index = 0;
+ return 0;
+ }
+
+ TC_PRT("Input param(%d) type:%s",
+ param_index + 1, param_type);
+ param_index++;
+
+ break;
+ }
default:
TC_PRT("There is no param to set\n");
break;
}
+ case BT_UNIT_TEST_FUNCTION_GATT_SET_WRITE_TYPE: {
+ if (param_index == 0) {
+ g_test_param.param_count = 3;
+ g_test_param.params = g_malloc0(sizeof(char*) *g_test_param.param_count);
+ param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
+ }
+
+ if (param_index > 0) {
+ int len = strlen(param);
+ g_test_param.params[param_index - 1] = g_malloc0(strlen(param) + 1);
+ /* Remove new line character */
+ param[len - 1] = '\0';
+ strncpy(g_test_param.params[param_index - 1], param, strlen(param));
+ }
+
+ if (param_index == g_test_param.param_count) {
+ need_to_set_params = false;
+#ifdef ARCH64
+ test_input_callback((void *)(uintptr_t)test_id);
+#else
+ test_input_callback((void *)test_id);
+#endif
+ param_index = 0;
+ return 0;
+ }
+
+ switch (param_index) {
+ case 0:
+ TC_PRT("Input Service UUID");
+ break;
+ case 1:
+ TC_PRT("Input Characteristic UUID");
+ break;
+ case 2:
+ TC_PRT("Input write_type (0 : no response, 1 : with reponse, 2 : signed)");
+ break;
+ }
+
+ param_index++;
+
+ break;
+ }
case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_READ_VALUE: {
if (param_index == 0) {
g_test_param.param_count = 3;
\n6.BT_DPM_POLICY_HSP_PROFILE_STATE, \
\n7.BT_DPM_POLICY_PBAP_PROFILE_STATE, \
\n8.BT_DPM_POLICY_SAP_PROFILE_STATE, \
- \n9.BT_DPM_POLICY_SPP_PROFILE_STATE, \
- \n10.BT_DPM_PROFILE_NONE");
+ \n9.BT_DPM_POLICY_SPP_PROFILE_STATE");
break;
case 1:
TC_PRT("Input Value Type (avail. : \n0.BT_DPM_BT_ALLOWED, \n1.BT_DPM_RESTRICTED");
\n6.BT_DPM_POLICY_HSP_PROFILE_STATE, \
\n7.BT_DPM_POLICY_PBAP_PROFILE_STATE, \
\n8.BT_DPM_POLICY_SAP_PROFILE_STATE, \
- \n9.BT_DPM_POLICY_SPP_PROFILE_STATE, \
- \n10.BT_DPM_PROFILE_NONE");
+ \n9.BT_DPM_POLICY_SPP_PROFILE_STATE");
break;
}
case BT_UNIT_TEST_TABLE_PXP: {
switch (test_id) {
- case BT_UNIT_TEST_FUNCTION_PXP_REGISTER:
- case BT_UNIT_TEST_FUNCTION_PXP_UNREGISTER: {
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_LINKLOSS_ALERT:
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_IMMEDIATE_ALERT: {
if (param_index == 0) {
g_test_param.param_count = 1;
g_test_param.params = g_malloc0(sizeof(char *) *g_test_param.param_count);
param_type = BT_UNIT_TEST_PARAM_TYPE_INT;
}
- if (param_index > 0) {
- g_test_param.params[param_index - 1] = g_malloc0(strlen(param) + 1);
- strncpy(g_test_param.params[param_index - 1], param, strlen(param));
- }
-
- if (param_index == g_test_param.param_count) {
- need_to_set_params = false;
-#ifdef ARCH64
- test_input_callback((void *)(uintptr_t)test_id);
-#else
- test_input_callback((void *)test_id);
-#endif
- param_index = 0;
- return 0;
- }
- switch (param_index) {
- case 0:
- TC_PRT("Input Value Type (avail. : \n0.BT_PROXIMITY_REPORTER, \n1.BT_PROXIMITY_MONITOR");
- break;
- }
-
- TC_PRT("Input param(%d) type:%s",
- param_index + 1, param_type);
- param_index++;
-
- break;
- }
- case BT_UNIT_TEST_FUNCTION_PXP_WRITE_ALERT_LEVEL: {
- if (param_index == 0) {
- g_test_param.param_count = 2;
- g_test_param.params = g_malloc0(sizeof(char *) *g_test_param.param_count);
- param_type = BT_UNIT_TEST_PARAM_TYPE_INT;
- }
-
if (param_index > 0) {
int len = strlen(param);
g_test_param.params[param_index - 1] = g_malloc0(len + 1);
switch (param_index) {
case 0:
- TC_PRT("Input Value Type (avail. : \n1.BT_PROXIMITY_LINKLOSS_ALERT, \n2.BT_PROXIMITY_IMMEDIATE_ALERT");
- break;
- case 1:
TC_PRT("Input Value Type (avail. : \n0.NONE, \n1.MILD, \n2.HIGH");
break;
}
break;
}
- case BT_UNIT_TEST_FUNCTION_PXP_READ_ALERT_LEVEL: {
- if (param_index == 0) {
- g_test_param.param_count = 1;
- g_test_param.params = g_malloc0(sizeof(char *) *g_test_param.param_count);
- param_type = BT_UNIT_TEST_PARAM_TYPE_INT;
- }
-
- if (param_index > 0) {
- int len = strlen(param);
- g_test_param.params[param_index - 1] = g_malloc0(len + 1);
- /* Remove new line character */
- param[len - 1] = '\0';
- strncpy(g_test_param.params[param_index - 1], param, strlen(param));
- }
-
- if (param_index == g_test_param.param_count) {
- need_to_set_params = false;
-#ifdef ARCH64
- test_input_callback((void *)(uintptr_t)test_id);
-#else
- test_input_callback((void *)test_id);
-#endif
- param_index = 0;
- return 0;
- }
-
- switch (param_index) {
- case 0:
- TC_PRT("Input Value Type (avail. : \n1.BT_PROXIMITY_LINKLOSS_ALERT, \n2.BT_PROXIMITY_IMMEDIATE_ALERT");
- break;
- }
-
- TC_PRT("Input param(%d) type:%s",
- param_index + 1, param_type);
- param_index++;
-
- break;
- }
-
default:
TC_PRT("There is no param to set\n");
need_to_set_params = false;
break;
}
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
- case BT_UNIT_TEST_TABLE_HF: {
- switch (test_id) {
- default:
- TC_PRT("There is no param to set\n");
- need_to_set_params = false;
- break;
- }
-
- break;
- }
- case BT_UNIT_TEST_TABLE_PBAP_CLIENT: {
- switch (test_id) {
- default:
- TC_PRT("There is no param to set\n");
- need_to_set_params = false;
- break;
- }
-
- break;
- }
-#endif
- case BT_UNIT_TEST_TABLE_ETC: {
+ case BT_UNIT_TEST_TABLE_HF:
+ {
switch (test_id) {
- case BT_UNIT_TEST_FUNCTION_CHECK_FEATURE: {
+ case BT_UNIT_TEST_FUNCTION_HF_NOTIFY_CALL_WITH_PARAM: {
if (param_index == 0) {
g_test_param.param_count = 1;
- g_test_param.params = g_malloc0(sizeof(char *) * g_test_param.param_count);
- param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
+ g_test_param.params = g_malloc0(sizeof(char*) * g_test_param.param_count);
+ param_type = BT_UNIT_TEST_PARAM_TYPE_INT;
+ }
+
+ if (param_index > 0) {
+ g_test_param.params[param_index - 1] = g_malloc0(strlen(param) + 1);
+ strncpy(g_test_param.params[param_index - 1], param, strlen(param));
+ }
+
+ if (param_index == g_test_param.param_count) {
+ need_to_set_params = false;
+#ifdef ARCH64
+ test_input_callback((void *)(uintptr_t)test_id);
+#else
+ test_input_callback((void *)test_id);
+#endif
+ param_index = 0;
+ return 0;
+ }
+
+ TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
+ param_index++;
+
+ break;
+ }
+ default:
+ TC_PRT("There is no param to set\n");
+ need_to_set_params = false;
+ break;
+ }
+
+ break;
+ }
+ case BT_UNIT_TEST_TABLE_PBAP_CLIENT:
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ goto __default__;
+ {
+ switch (test_id) {
+ default:
+ TC_PRT("There is no param to set\n");
+ need_to_set_params = false;
+ break;
+ }
+
+ break;
+ }
+ case BT_UNIT_TEST_TABLE_ETC: {
+ switch (test_id) {
+ case BT_UNIT_TEST_FUNCTION_CHECK_FEATURE: {
+ if (param_index == 0) {
+ g_test_param.param_count = 1;
+ g_test_param.params = g_malloc0(sizeof(char *) * g_test_param.param_count);
+ param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
}
if (param_index > 0) {
g_test_param.params[param_index - 1] = g_malloc0(len + 1);
/* Remove new line character */
param[len - 1] = '\0';
- strcpy(g_test_param.params[param_index - 1], param);
+ strncpy(g_test_param.params[param_index - 1], param, strlen(param));
}
if (param_index == g_test_param.param_count) {
break;
}
+ case BT_UNIT_TEST_TABLE_OTP: {
+ switch (test_id) {
+ case BT_UNIT_TEST_FUNCTION_OTP_SERVER_INIT: {
+ if (param_index == 0) {
+ g_test_param.param_count = 1;
+ g_test_param.params = g_malloc0(sizeof(char *) *g_test_param.param_count);
+ }
+
+ if (param_index > 0) {
+ int len = strlen(param);
+ g_test_param.params[param_index - 1] = g_malloc0(len + 1);
+ /* Remove new line character */
+ param[len - 1] = '\0';
+ strncpy(g_test_param.params[param_index - 1], param, strlen(param));
+ }
+
+ if (param_index == g_test_param.param_count) {
+ need_to_set_params = false;
+#ifdef ARCH64
+ test_input_callback((void *)(uintptr_t)test_id);
+#else
+ test_input_callback((void *)test_id);
+#endif
+ param_index = 0;
+ return 0;
+ }
+
+ switch (param_index) {
+ case 0:
+ TC_PRT("Input Value in string");
+ break;
+ }
+
+ param_index++;
+
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_SELECT_OBJ: {
+ if (param_index == 0) {
+ g_test_param.param_count = 1;
+ g_test_param.params = g_malloc0(sizeof(char *) *g_test_param.param_count);
+ param_type = BT_UNIT_TEST_PARAM_TYPE_INT;
+ }
+
+ if (param_index > 0) {
+ int len = strlen(param);
+ g_test_param.params[param_index - 1] = g_malloc0(len + 1);
+ /* Remove new line character */
+ param[len - 1] = '\0';
+ strncpy(g_test_param.params[param_index - 1], param, strlen(param));
+ }
+
+ if (param_index == g_test_param.param_count) {
+ need_to_set_params = false;
+#ifdef ARCH64
+ test_input_callback((void *)(uintptr_t)test_id);
+#else
+ test_input_callback((void *)test_id);
+#endif
+ param_index = 0;
+ return 0;
+ }
+
+ switch (param_index) {
+ case 0:
+ TC_PRT("Input Value in uint64_t");
+ break;
+ }
+
+ param_index++;
+
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CREATE_OBJ: {
+ if (param_index == 0) {
+ g_test_param.param_count = 1;
+ g_test_param.params = g_malloc0(sizeof(char *) *g_test_param.param_count);
+ }
+
+ if (param_index > 0) {
+ int len = strlen(param);
+ g_test_param.params[param_index - 1] = g_malloc0(len + 1);
+ /* Remove new line character */
+ param[len - 1] = '\0';
+ strncpy(g_test_param.params[param_index - 1], param, strlen(param));
+ }
+
+ if (param_index == g_test_param.param_count) {
+ need_to_set_params = false;
+#ifdef ARCH64
+ test_input_callback((void *)(uintptr_t)test_id);
+#else
+ test_input_callback((void *)test_id);
+#endif
+ param_index = 0;
+ return 0;
+ }
+
+ switch (param_index) {
+ case 0:
+ TC_PRT("Input Value in string");
+ break;
+ }
+
+ param_index++;
+
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_WRITE_OBJ: {
+ if (param_index == 0) {
+ g_test_param.param_count = 4;
+ g_test_param.params = g_malloc0(sizeof(char *) *g_test_param.param_count);
+ }
+
+ if (param_index > 0) {
+ int len = strlen(param);
+ g_test_param.params[param_index - 1] = g_malloc0(len + 1);
+ /* Remove new line character */
+ param[len - 1] = '\0';
+ strncpy(g_test_param.params[param_index - 1], param, strlen(param));
+ }
+
+ if (param_index == g_test_param.param_count) {
+ need_to_set_params = false;
+#ifdef ARCH64
+ test_input_callback((void *)(uintptr_t)test_id);
+#else
+ test_input_callback((void *)test_id);
+#endif
+
+ param_index = 0;
+ return 0;
+ }
+
+ switch (param_index) {
+ case 0:
+ TC_PRT("Input file path");
+ break;
+ case 1:
+ TC_PRT("Input offset");
+ break;
+ case 2:
+ TC_PRT("Input Length");
+ break;
+ case 3:
+ TC_PRT("Input mode");
+ break;
+ }
+
+ param_index++;
+
+ break;
+ }
+ default:
+ TC_PRT("There is no param to set\n");
+ need_to_set_params = false;
+ break;
+ }
+
+ break;
+ }
+__default__:
default:
TC_PRT("There is no param to set\n");
need_to_set_params = false;
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
+ case BT_UNIT_TEST_FUNCTION_ADAPTER_FOREACH_PROFILE_CONNECTED_DEVICES: {
+ ret = bt_adapter_foreach_profile_connected_devices(BT_PROFILE_SERVICE_UUID_SPP,
+ __bt_adapter_profile_connected_devices_cb, NULL);
+ TC_PRT("SPP connected devices returns %s\n", __bt_get_error_message(ret));
+ ret = bt_adapter_foreach_profile_connected_devices(BT_PROFILE_SERVICE_UUID_HFP_HF,
+ __bt_adapter_profile_connected_devices_cb, NULL);
+ TC_PRT("HFP HF connected devices returns %s\n", __bt_get_error_message(ret));
+ ret = bt_adapter_foreach_profile_connected_devices(BT_PROFILE_SERVICE_UUID_A2DP_SOURCE,
+ __bt_adapter_profile_connected_devices_cb, NULL);
+ TC_PRT("A2DP Source connected devices returns %s\n", __bt_get_error_message(ret));
+ ret = bt_adapter_foreach_profile_connected_devices(BT_PROFILE_SERVICE_UUID_AVRCP_CONTROL,
+ __bt_adapter_profile_connected_devices_cb, NULL);
+ TC_PRT("AVRCP Control connected devices returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
case BT_UNIT_TEST_FUNCTION_ADAPTER_GET_BONDED_DEVICE_INFO: {
bt_device_info_s *device_info = NULL;
TC_PRT("time: %d", time);
break;
}
+ case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_VISIBILITY: {
+ int mode = BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE;
+ int timeout_sec = 0;
+
+ if (g_test_param.param_count > 0) {
+ if (g_test_param.params[0][0] == '-')
+ mode = BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE;
+ else if (g_test_param.params[0][0] == '0')
+ mode = BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE;
+ else {
+ mode = BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE;
+ timeout_sec = atoi(g_test_param.params[0]);
+ }
+ __bt_free_test_param(&g_test_param);
+ }
+
+ ret = bt_adapter_set_visibility(mode, timeout_sec);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_DEVICE_DISCOVERY_STATE_CHANGED_CB:
ret = bt_adapter_set_device_discovery_state_changed_cb(
__bt_adapter_device_discovery_state_changed_cb, NULL);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_DEVICE_DISCOVERY:
+ if (TIZEN_PROFILE_WEARABLE_IVI)
+ break;
ret = bt_adapter_le_start_device_discovery();
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_DEVICE_DISCOVERY:
+ if (TIZEN_PROFILE_WEARABLE_IVI)
+ break;
ret = bt_adapter_le_stop_device_discovery();
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
-#endif
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_ADVERTISING_DATA: {
int adv_data_type = 3; /* default all */
const char *heart_rate_svc_uuid_16 = "180d";
const char *lmmediate_alert_svc_uuid_16 = "1802";
const char *ancs_uuid_128 = "7905F431-B5CE-4E99-A40F-4B1E122D00D0";
+ const char *ams_uuid_128 = "89D3502B-0F36-433A-8EF4-C502AD55F8DC";
int appearance = 192; /* 192 is generic watch */
advertiser = advertiser_list[advertiser_index];
return 0;
+ case 5: /* AMS */
+ ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
+ BT_ADAPTER_LE_PACKET_ADVERTISING, time_svc_uuid_16);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
+
+ ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
+ BT_ADAPTER_LE_PACKET_ADVERTISING, ams_uuid_128);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
+
+ ret = bt_adapter_le_set_advertising_device_name(advertiser,
+ BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, true);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("set device name [0x%04x]", ret);
+
+ return 0;
+
default:
TC_PRT("No adv data");
break;
break;
}
- case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_MODE: {
- int mode = BT_ADAPTER_LE_ADVERTISING_MODE_BALANCED;
+ case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_HOGP_ADVERTISING_DATA: {
+ const char *battery_svc_uuid_16 = "180f";
+ const char *hid_svc_uuid_16 = "1812";
+ const char *gatt_svc_uuid_16 = "1801";
+ int appearance = 192; /* 192 is generic watch */
advertiser = advertiser_list[advertiser_index];
ret = bt_adapter_le_create_advertiser(&advertiser);
TC_PRT("created le advertiser(%d)", ret);
advertiser_list[advertiser_index] = advertiser;
+ } else {
+ ret = bt_adapter_le_clear_advertising_data(advertiser,
+ BT_ADAPTER_LE_PACKET_ADVERTISING);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("clear advertising data [0x%04x]", ret);
+ ret = bt_adapter_le_clear_advertising_data(advertiser,
+ BT_ADAPTER_LE_PACKET_SCAN_RESPONSE);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("clear scan response data [0x%04x]", ret);
}
- if (g_test_param.param_count > 0) {
- mode = atoi(g_test_param.params[0]);
- __bt_free_test_param(&g_test_param);
- }
+ ret = bt_adapter_le_add_advertising_service_uuid(advertiser,
+ BT_ADAPTER_LE_PACKET_ADVERTISING, battery_svc_uuid_16);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("add service_uuid [0x%04x]", ret);
- ret = bt_adapter_le_set_advertising_mode(advertiser, mode);
+ ret = bt_adapter_le_add_advertising_service_uuid(advertiser,
+ BT_ADAPTER_LE_PACKET_ADVERTISING, hid_svc_uuid_16);
if (ret != BT_ERROR_NONE)
- TC_PRT("add scan response data [0x%04x]", ret);
- break;
- }
- case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_FILTER_POLICY: {
- int filter_policy = BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_CONN_WL;
+ TC_PRT("add service_uuid [0x%04x]", ret);
- advertiser = advertiser_list[advertiser_index];
+ ret = bt_adapter_le_add_advertising_service_uuid(advertiser,
+ BT_ADAPTER_LE_PACKET_ADVERTISING, gatt_svc_uuid_16);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("add service_uuid [0x%04x]", ret);
- if (advertiser == NULL) {
+ ret = bt_adapter_le_set_advertising_appearance(advertiser,
+ BT_ADAPTER_LE_PACKET_ADVERTISING, appearance);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("add appearance data [0x%04x]", ret);
+
+ ret = bt_adapter_le_set_advertising_tx_power_level(advertiser,
+ BT_ADAPTER_LE_PACKET_ADVERTISING, true);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("add tx_power_level [0x%04x]", ret);
+
+ /* Default scsn response data */
+ ret = bt_adapter_le_set_advertising_device_name(advertiser,
+ BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, true);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("set device name [0x%04x]", ret);
+
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_MODE: {
+ int mode = BT_ADAPTER_LE_ADVERTISING_MODE_BALANCED;
+
+ advertiser = advertiser_list[advertiser_index];
+
+ if (advertiser == NULL) {
+ ret = bt_adapter_le_create_advertiser(&advertiser);
+ TC_PRT("created le advertiser(%d)", ret);
+ advertiser_list[advertiser_index] = advertiser;
+ }
+
+ if (g_test_param.param_count > 0) {
+ mode = atoi(g_test_param.params[0]);
+ __bt_free_test_param(&g_test_param);
+ }
+
+ ret = bt_adapter_le_set_advertising_mode(advertiser, mode);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("add scan response data [0x%04x]", ret);
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_FILTER_POLICY: {
+ int filter_policy = BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_CONN_WL;
+
+ advertiser = advertiser_list[advertiser_index];
+
+ if (advertiser == NULL) {
ret = bt_adapter_le_create_advertiser(&advertiser);
TC_PRT("created le advertiser(%d)", ret);
advertiser_list[advertiser_index] = advertiser;
else cb = __bt_adapter_le_advertising_state_changed_cb_3;
advertiser = advertiser_list[advertiser_index];
+ advertiser_index++;
+ advertiser_index %= 3;
if (advertiser == NULL) {
ret = bt_adapter_le_create_advertiser(&advertiser);
TC_PRT("created le advertiser(%d)", ret);
advertiser_list[advertiser_index] = advertiser;
}
- advertiser_index++;
- advertiser_index %= 3;
TC_PRT("advertiser: %p", advertiser);
TC_PRT("failed with [0x%04x]", ret);
break;
}
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_ADVERTISING: {
+ if (TIZEN_PROFILE_WEARABLE_IVI)
+ break;
bt_adapter_le_advertising_state_changed_cb cb;
bt_adapter_le_advertising_params_s adv_params = { 0, };
else cb = __bt_adapter_le_advertising_state_changed_cb_3;
advertiser = advertiser_list[advertiser_index];
+ advertiser_index++;
+ advertiser_index %= 3;
adv_params.interval_min = 500;
adv_params.interval_max = 500;
TC_PRT("created le advertiser(%d)", ret);
advertiser_list[advertiser_index] = advertiser;
}
- advertiser_index++;
- advertiser_index %= 3;
ret = bt_adapter_le_start_advertising(advertiser,
&adv_params, cb, NULL);
TC_PRT("failed with [0x%04x]", ret);
break;
}
-#endif
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_ADVERTISING: {
int slot_id = 0;
advertiser = advertiser_list[slot_id];
- TC_PRT("advertiser: %p", advertiser);
-
ret = bt_adapter_le_stop_advertising(advertiser);
-
- if (advertiser_index > 0)
- advertiser_index--;
- else
- advertiser_index = 2;
-
- advertiser_list[slot_id] = NULL;
-
if (ret < BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
break;
break;
}
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_CLEAR_WHITE_LIST: {
+ if (TIZEN_PROFILE_WEARABLE_IVI)
+ break;
ret = bt_adapter_le_clear_white_list();
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
-#endif
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ENABLE_PRIVACY: {
static bool enable_privacy = false;
break;
}
+ case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_REMOTE_OOB_EXT_DATA: {
+ char remote_addr[18];
+ unsigned char *data[2];
+ int len[2];
+ int i;
+ char tmp[3];
+ long val;
+ bt_device_address_type_e addr_type = BT_DEVICE_PUBLIC_ADDRESS;
+
+ if (g_test_param.param_count != 3) {
+ TC_PRT("Input parameter first!");
+ break;
+ }
+
+ g_strlcpy(remote_addr, g_test_param.params[0],
+ sizeof(remote_addr));
+
+ for (i = 0; i < 2; i++) {
+ len[i] = strlen(g_test_param.params[i + 1]) / 2;
+ data[i] = g_malloc0(len[i]);
+ }
+
+ for (i = 0; i < 2; i++) {
+ int j;
+
+ printf("Data[%d] : ", i);
+ for (j = 0; j < len[i]; j++) {
+ g_strlcpy(tmp, g_test_param.params[i + 1] + 2 * j, sizeof(tmp));
+ val = strtol(tmp, NULL, 16);
+ data[i][j] = val;
+ printf("%02x", data[i][j]);
+ }
+ printf("\n");
+ }
+
+ ret = bt_adapter_le_set_remote_oob_ext_data(remote_addr,
+ addr_type,
+ data[0], data[1], len[0], len[1]);
+
+ __bt_free_test_param(&g_test_param);
+
+ for (i = 0; i < 2; i++)
+ g_free(data[i]);
+
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_DEVICE_ADDRESS: {
bt_scan_filter_h scan_filter;
- ret = bt_adapter_le_create_scan_filter(&scan_filter);
+ ret = bt_adapter_le_scan_filter_create(&scan_filter);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
- ret = bt_adapter_le_register_scan_filter(scan_filter);
+ ret = bt_adapter_le_scan_filter_register(scan_filter);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
- ret = bt_adapter_le_destroy_scan_filter(scan_filter);
+ ret = bt_adapter_le_scan_filter_destroy(scan_filter);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_SERVICE_UUID: {
bt_scan_filter_h scan_filter;
- ret = bt_adapter_le_create_scan_filter(&scan_filter);
+ ret = bt_adapter_le_scan_filter_create(&scan_filter);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
- ret = bt_adapter_le_register_scan_filter(scan_filter);
+ ret = bt_adapter_le_scan_filter_register(scan_filter);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
- ret = bt_adapter_le_destroy_scan_filter(scan_filter);
+ ret = bt_adapter_le_scan_filter_destroy(scan_filter);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_SERVICE_SOLICITATION_UUID: {
bt_scan_filter_h scan_filter;
- ret = bt_adapter_le_create_scan_filter(&scan_filter);
+ ret = bt_adapter_le_scan_filter_create(&scan_filter);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
- ret = bt_adapter_le_register_scan_filter(scan_filter);
+ ret = bt_adapter_le_scan_filter_register(scan_filter);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("failed with [0x%04x]", ret);
+
+ ret = bt_adapter_le_scan_filter_destroy(scan_filter);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("failed with [0x%04x]", ret);
+
+ break;
+ }
+
+ case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_MANUFACTURER_DATA: {
+ bt_scan_filter_h scan_filter = NULL;
+ int manufacturer_id = 117; /* samsung */
+ char data[] = {0x2, 0x2, 0x2, 0x2};
+ /* Use "appearance & tx power level" of bt_adapter_le_add_XXX_advertising_data */
+
+ ret = bt_adapter_le_scan_filter_create(&scan_filter);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("failed with [0x%04x]", ret);
+
+ ret = bt_adapter_le_scan_filter_set_manufacturer_data(scan_filter,
+ manufacturer_id, data, sizeof(data));
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("failed with [0x%04x]", ret);
+
+ ret = bt_adapter_le_scan_filter_register(scan_filter);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
- ret = bt_adapter_le_destroy_scan_filter(scan_filter);
+ ret = bt_adapter_le_scan_filter_destroy(scan_filter);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_IBEACON_DATA: {
bt_scan_filter_h scan_filter;
- char manufacture_1[] = {0x02, 0x15, 0xD9, 0xB9, 0xEC, 0x1F, 0x39, 0x25, 0x43, 0xD0, 0x80, 0xA9, 0x1E, 0x39, 0xD4, 0xCE, 0xA9, 0x5C, 0x01, 0x00, 0x0A, 0x00, 0x10};
- ret = bt_adapter_le_create_scan_filter(&scan_filter);
+ ret = bt_adapter_le_scan_filter_create(&scan_filter);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
- ret = bt_adapter_le_set_ibeacon_scan_filter(scan_filter, manufacture_1, sizeof(manufacture_1));
+ ret = bt_adapter_le_scan_filter_set_type(scan_filter, BT_ADAPTER_LE_SCAN_FILTER_TYPE_IBEACON);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
- ret = bt_adapter_le_register_scan_filter(scan_filter);
+ ret = bt_adapter_le_scan_filter_register(scan_filter);
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
}
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_UNREGISTER_ALL_SCAN_FILTERS: {
- ret = bt_adapter_le_unregister_all_scan_filters();
+ ret = bt_adapter_le_scan_filter_unregister_all();
if (ret != BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
break;
}
-#if !defined(TIZEN_PROFILE_WEARABLE) && !defined(TIZEN_PROFILE_IVI)
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_DEVICE_DISCOVERY_STATE_CHANGED_CB:
+ if (TIZEN_PROFILE_WEARABLE_IVI)
+ break;
ret = bt_adapter_le_set_device_discovery_state_changed_cb(
__bt_adapter_le_device_discovery_state_changed_cb, NULL);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_UNSET_DEVICE_DISCOVERY_STATE_CHANGED_CB:
+ if (TIZEN_PROFILE_WEARABLE_IVI)
+ break;
ret = bt_adapter_le_unset_device_discovery_state_changed_cb();
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
-#endif
case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_READ_MAXIMUM_DATA_LENGTH: {
TC_PRT("Read Maximum LE Data length");
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
+
+ case BT_UNIT_TEST_FUNCTION_DEVICE_UPDATE_LE_CONNECTION: {
+ bt_le_conn_update_s param;
+
+ if (g_test_param.param_count == 0)
+ break;
+
+ param.interval_min = atof(g_test_param.params[0]);
+ param.interval_max = atof(g_test_param.params[1]);
+ param.latency = atoi(g_test_param.params[2]);
+ param.time_out = atoi(g_test_param.params[3]);
+
+ __bt_free_test_param(&g_test_param);
+
+ ret = bt_device_le_conn_update(remote_addr, ¶m);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+
case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
need_to_set_params = true;
TC_PRT("Select the function again");
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
+ case BT_UNIT_TEST_FUNCTION_AG_SWITCH_HEADSET: {
+ if (g_test_param.param_count < 0) {
+ TC_PRT("Input parameters first");
+ break;
+ }
+
+ ret = bt_ag_switch_headset(g_test_param.params[0]);
+ __bt_free_test_param(&g_test_param);
+
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+
case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
need_to_set_params = true;
TC_PRT("Select the function again");
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
+ case BT_UNIT_TEST_FUNCTION_GATT_SET_WRITE_TYPE: {
+ char *svc_uuid = NULL;
+ char *chr_uuid = NULL;
+ bt_gatt_h svc = NULL;
+ bt_gatt_h chr = NULL;
+ bt_gatt_write_type_e write_type;
+
+ if (g_test_param.param_count < 3) {
+ TC_PRT("Input parameters first");
+ break;
+ }
+
+ svc_uuid = g_test_param.params[0];
+ chr_uuid = g_test_param.params[1];
+
+ ret = bt_gatt_client_get_service(client, svc_uuid, &svc);
+ if (ret != BT_ERROR_NONE) {
+ TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
+ __bt_free_test_param(&g_test_param);
+ break;
+ }
+
+ ret = bt_gatt_service_get_characteristic(svc, chr_uuid, &chr);
+ if (ret != BT_ERROR_NONE) {
+ TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
+ __bt_free_test_param(&g_test_param);
+ break;
+ }
+
+ write_type = atoi(g_test_param.params[2]);
+ ret = bt_gatt_characteristic_set_write_type(chr, write_type);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("bt_gatt_characteristic_set_write_type is failed : %d", ret);
+
+ __bt_free_test_param(&g_test_param);
+ break;
+ }
case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_CREATE: {
if (client) {
bt_gatt_client_destroy(client);
TC_PRT("bt_gatt_client_foreach_services_by_uuid is failed");
break;
}
+ case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_REQUEST_ATT_MTU: {
+ unsigned int mtu = 512; /* MAX MTU Value */
+
+ if (g_test_param.param_count > 0) {
+ mtu = atoi(g_test_param.params[0]);
+
+ __bt_free_test_param(&g_test_param);
+ }
+
+ ret = bt_gatt_client_request_att_mtu_change(client, mtu);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_GET_ATT_MTU: {
+ unsigned int mtu = 0;
+ ret = bt_gatt_client_get_att_mtu(client, &mtu);
+ TC_PRT("returns %s, MTU %d\n", __bt_get_error_message(ret), mtu);
+ break;
+ }
case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_SERVICE_CHANGED_CB: {
ret = bt_gatt_client_set_service_changed_cb(client,
__bt_gatt_client_service_changed_cb, NULL);
TC_PRT("bt_gatt_client_unset_service_changed_cb is failed");
break;
}
+ case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_ATT_MTU_CHANGED_CB: {
+ ret = bt_gatt_client_set_att_mtu_changed_cb(client, __bt_gatt_client_att_mtu_changed_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_ATT_MTU_CHANGED_CB: {
+ ret = bt_gatt_client_unset_att_mtu_changed_cb(client);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
case BT_UNIT_TEST_FUNCTION_GATT_SERVER_INITIALIZE: {
ret = bt_gatt_server_initialize();
break;
}
- case BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_CUSTOM_SVC: {
- bt_gatt_h service = NULL;
- bt_gatt_h characteristic = NULL;
- bt_gatt_h descriptor = NULL;
- char *service_uuid = "000018f2-0000-1000-8000-00805f9b34fb";
- char *char_uuid = "00002af6-0000-1000-8000-00805f9b34fb";
- char *desc_uuid = "00002a56-0000-1000-8000-00805f9b34fb";
- char char_value[4] = {10, 20, 30, 40};
- char desc_value[4] = {12, 34, 56, 78};
- int value_length = 4;
+ case BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_HOGP_SVC: {
+ bt_gatt_h service1 = NULL;
+ bt_gatt_h service2 = NULL;
+ bt_gatt_h service3 = NULL;
+ bt_gatt_h characteristic1_1 = NULL;
+ bt_gatt_h characteristic2_1 = NULL;
+ bt_gatt_h characteristic2_2 = NULL;
+ bt_gatt_h characteristic2_3 = NULL;
+ bt_gatt_h characteristic2_4 = NULL;
+ bt_gatt_h characteristic2_5 = NULL;
+ bt_gatt_h characteristic2_6 = NULL;
+ bt_gatt_h characteristic2_7 = NULL;
+ bt_gatt_h descriptor1_1 = NULL;
+ bt_gatt_h descriptor2_3 = NULL;
+ bt_gatt_h descriptor2_4_1 = NULL;
+ bt_gatt_h descriptor2_4_2 = NULL;
+ bt_gatt_h descriptor2_5_1 = NULL;
+ bt_gatt_h descriptor2_5_2 = NULL;
+ char *service_uuid1 = "180f"; /* Battery Service */
+ char *service_uuid2 = "1812"; /* HID Service */
+ char *service_uuid3 = "1801"; /* Generic Attribute Service */
+ char *char_uuid1 = "2a19"; /* Battery Level */
+ char *char_uuid2_1 = "2a4a"; /* HID information */
+ char *char_uuid2_2 = "2a4b";
+ char *char_uuid2_3 = "2a33";
+ char *char_uuid2_4 = "2a4d";
+ char *char_uuid2_5 = "2a4d";
+ char *char_uuid2_6 = "2a4c";
+ char *char_uuid2_7 = "2a4e";
+ char *desc_uuid1_1 = "2902"; /* Client Characteristic Configuration */
+ char *desc_uuid2_3 = "2902"; /* Client Characteristic Configuration */
+ char *desc_uuid2_4_1 = "2902"; /* Client Characteristic Configuration */
+ char *desc_uuid2_4_2 = "2908"; /* Report Reference */
+ char *desc_uuid2_5_1 = "2908"; /* Report Reference */
+ char *desc_uuid2_5_2 = "2901"; /* Characteristic User Description */
int permissions = BT_GATT_PERMISSION_READ | BT_GATT_PERMISSION_WRITE;
- int properties = BT_GATT_PROPERTY_BROADCAST | BT_GATT_PROPERTY_READ |
- BT_GATT_PROPERTY_WRITE | BT_GATT_PROPERTY_NOTIFY;
+ int properties = BT_GATT_PROPERTY_READ | BT_GATT_PROPERTY_WRITE;
+
+ char char_value[1] = {80}; /* 80% */
+ char char_value_unknown[4] = {10, 20, 30, 40};
+ char desc_value_configration[2] = {0, 0}; /* Notification & Indication */
ret = bt_gatt_server_initialize();
TC_PRT("bt_gatt_server_initialize : %s \n", __bt_get_error_message(ret));
TC_PRT("bt_gatt_server_create : %s \n", __bt_get_error_message(ret));
}
- ret = bt_gatt_service_create(service_uuid,
+ /* Battery Service */
+ ret = bt_gatt_service_create(service_uuid1,
BT_GATT_SERVICE_TYPE_PRIMARY,
- &service);
+ &service1);
TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
- ret = bt_gatt_characteristic_create(char_uuid, permissions,
+ ret = bt_gatt_characteristic_create(char_uuid1, permissions,
properties, char_value,
- value_length, &characteristic);
+ 1, &characteristic1_1);
TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
- bt_gatt_server_set_read_value_requested_cb(characteristic,
- __bt_gatt_server_read_value_requested_cb, NULL);
- ret = bt_gatt_service_add_characteristic(service, characteristic);
+ ret = bt_gatt_service_add_characteristic(service1, characteristic1_1);
TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
- ret = bt_gatt_descriptor_create(desc_uuid, permissions,
- desc_value, value_length, &descriptor);
+ ret = bt_gatt_descriptor_create(desc_uuid1_1, permissions,
+ desc_value_configration, 2, &descriptor1_1);
TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
- bt_gatt_server_set_read_value_requested_cb(descriptor,
- __bt_gatt_server_read_value_requested_cb, NULL);
-
- ret = bt_gatt_server_set_write_value_requested_cb(descriptor,
- __bt_gatt_server_write_value_requested_cb,
- NULL);
-
- ret = bt_gatt_characteristic_add_descriptor(characteristic, descriptor);
+ ret = bt_gatt_characteristic_add_descriptor(characteristic1_1, descriptor1_1);
TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
- ret = bt_gatt_server_register_service(server, service);
+ ret = bt_gatt_server_register_service(server, service1);
TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
- custom_h.svc = service;
- custom_h.chr = characteristic;
- custom_h.desc = descriptor;
- break;
- }
- case BT_UNIT_TEST_FUNCTION_GATT_SERVER_CHANGE_CUSTOM_VAL: {
- char char_value[4] = {50, 60, 70, 80};
- if (!server) {
- TC_PRT("bt gatt server is not created");
- break;
- }
- ret = bt_gatt_set_value(custom_h.chr, char_value, 4);
- TC_PRT("returns %s\n", __bt_get_error_message(ret));
- break;
- }
- case BT_UNIT_TEST_FUNCTION_GATT_START_SERVER: {
- ret = bt_gatt_server_start();
- TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
- break;
- }
- case BT_UNIT_TEST_FUNCTION_GATT_SERVER_FOREACH_SERVICES: {
-#ifdef ARCH64
- ret = bt_gatt_server_foreach_services(server,
- __bt_gatt_server_foreach_svc_cb, (void *)(uintptr_t)test_id);
-#else
- ret = bt_gatt_server_foreach_services(server,
- __bt_gatt_server_foreach_svc_cb, (void *)test_id);
-#endif
- TC_PRT("bt_gatt_server_foreach_services: %s\n", __bt_get_error_message(ret));
- break;
- }
- case BT_UNIT_TEST_FUNCTION_ANCS_PAIR: {
- bt_device_connection_link_type_e link_type = BT_DEVICE_CONNECTION_LINK_LE;
+ /* HID Service */
+ ret = bt_gatt_service_create(service_uuid2,
+ BT_GATT_SERVICE_TYPE_PRIMARY,
+ &service2);
+ TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
- if (g_test_param.param_count > 0) {
- link_type = atoi(g_test_param.params[0]);
+ ret = bt_gatt_characteristic_create(char_uuid2_1, permissions,
+ properties, char_value_unknown,
+ 4, &characteristic2_1);
+ TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_service_add_characteristic(service2, characteristic2_1);
+ TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_characteristic_create(char_uuid2_2, permissions,
+ properties, char_value_unknown,
+ 4, &characteristic2_2);
+ TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_service_add_characteristic(service2, characteristic2_2);
+ TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_characteristic_create(char_uuid2_3, permissions,
+ properties, char_value_unknown,
+ 4, &characteristic2_3);
+ TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_service_add_characteristic(service2, characteristic2_3);
+ TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_descriptor_create(desc_uuid2_3, permissions,
+ desc_value_configration, 2, &descriptor2_3);
+ TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_characteristic_add_descriptor(characteristic2_3, descriptor2_3);
+ TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_characteristic_create(char_uuid2_4, permissions,
+ properties, char_value_unknown,
+ 4, &characteristic2_4);
+ TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_service_add_characteristic(service2, characteristic2_4);
+ TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_descriptor_create(desc_uuid2_4_1, permissions,
+ desc_value_configration, 2, &descriptor2_4_1);
+ TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_characteristic_add_descriptor(characteristic2_4, descriptor2_4_1);
+ TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_descriptor_create(desc_uuid2_4_2, permissions,
+ desc_value_configration, 2, &descriptor2_4_2);
+ TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_characteristic_add_descriptor(characteristic2_4, descriptor2_4_2);
+ TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_characteristic_create(char_uuid2_5, permissions,
+ properties, char_value_unknown,
+ 4, &characteristic2_5);
+ TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_service_add_characteristic(service2, characteristic2_5);
+ TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_descriptor_create(desc_uuid2_5_1, permissions,
+ desc_value_configration, 2, &descriptor2_5_1);
+ TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_characteristic_add_descriptor(characteristic2_5, descriptor2_5_1);
+ TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_descriptor_create(desc_uuid2_5_2, permissions,
+ desc_value_configration, 2, &descriptor2_5_2);
+ TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_characteristic_add_descriptor(characteristic2_5, descriptor2_5_2);
+ TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_characteristic_create(char_uuid2_6, permissions,
+ properties, char_value_unknown,
+ 4, &characteristic2_6);
+ TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_service_add_characteristic(service2, characteristic2_6);
+ TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_characteristic_create(char_uuid2_7, permissions,
+ properties, char_value_unknown,
+ 4, &characteristic2_7);
+ TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_service_add_characteristic(service2, characteristic2_7);
+ TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_server_register_service(server, service2);
+ TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
+
+ /* Generic Attribute Service */
+ ret = bt_gatt_service_create(service_uuid3,
+ BT_GATT_SERVICE_TYPE_PRIMARY,
+ &service3);
+ TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_server_register_service(server, service3);
+ TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_CUSTOM_SVC: {
+ bt_gatt_h service = NULL;
+ bt_gatt_h characteristic = NULL;
+ bt_gatt_h descriptor = NULL;
+ char *service_uuid = "000018f2-0000-1000-8000-00805f9b34fb";
+ char *char_uuid = "00002af6-0000-1000-8000-00805f9b34fb";
+ char *desc_uuid = "00002a56-0000-1000-8000-00805f9b34fb";
+ char char_value[4] = {10, 20, 30, 40};
+ char desc_value[4] = {12, 34, 56, 78};
+ int value_length = 4;
+ int permissions = BT_GATT_PERMISSION_READ | BT_GATT_PERMISSION_WRITE;
+ int properties = BT_GATT_PROPERTY_BROADCAST | BT_GATT_PROPERTY_READ |
+ BT_GATT_PROPERTY_WRITE | BT_GATT_PROPERTY_NOTIFY;
+
+ ret = bt_gatt_server_initialize();
+ TC_PRT("bt_gatt_server_initialize : %s \n", __bt_get_error_message(ret));
+
+ if (server == NULL) {
+ ret = bt_gatt_server_create(&server);
+ TC_PRT("bt_gatt_server_create : %s \n", __bt_get_error_message(ret));
+ }
+
+ ret = bt_gatt_service_create(service_uuid,
+ BT_GATT_SERVICE_TYPE_PRIMARY,
+ &service);
+ TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_characteristic_create(char_uuid, permissions,
+ properties, char_value,
+ value_length, &characteristic);
+ TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
+
+ bt_gatt_server_set_read_value_requested_cb(characteristic,
+ __bt_gatt_server_read_value_requested_cb, NULL);
+ ret = bt_gatt_service_add_characteristic(service, characteristic);
+ TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_descriptor_create(desc_uuid, permissions,
+ desc_value, value_length, &descriptor);
+ TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
+
+ bt_gatt_server_set_read_value_requested_cb(descriptor,
+ __bt_gatt_server_read_value_requested_cb, NULL);
+
+ ret = bt_gatt_server_set_write_value_requested_cb(descriptor,
+ __bt_gatt_server_write_value_requested_cb,
+ NULL);
+
+ ret = bt_gatt_characteristic_add_descriptor(characteristic, descriptor);
+ TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
+
+ ret = bt_gatt_server_register_service(server, service);
+ TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
+
+ custom_h.svc = service;
+ custom_h.chr = characteristic;
+ custom_h.desc = descriptor;
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_GATT_SERVER_CHANGE_CUSTOM_VAL: {
+ char char_value[4] = {50, 60, 70, 80};
+ if (!server) {
+ TC_PRT("bt gatt server is not created");
+ break;
+ }
+ ret = bt_gatt_set_value(custom_h.chr, char_value, 4);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+
+ /* notify only client remote_addr */
+ ret = bt_gatt_server_notify_characteristic_changed_value(custom_h.chr,
+ __bt_gatt_server_notification_sent_cb, remote_addr, NULL);
+ TC_PRT("bt_gatt_server_notify_characteristic_changed_value : %s\n",
+ __bt_get_error_message(ret));
+
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_GATT_START_SERVER: {
+ ret = bt_gatt_server_start();
+ TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_GATT_SERVER_FOREACH_SERVICES: {
+#ifdef ARCH64
+ ret = bt_gatt_server_foreach_services(server,
+ __bt_gatt_server_foreach_svc_cb, (void *)(uintptr_t)test_id);
+#else
+ ret = bt_gatt_server_foreach_services(server,
+ __bt_gatt_server_foreach_svc_cb, (void *)test_id);
+#endif
+ TC_PRT("bt_gatt_server_foreach_services: %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_ANCS_PAIR: {
+ bt_device_connection_link_type_e link_type = BT_DEVICE_CONNECTION_LINK_LE;
+
+ if (g_test_param.param_count > 0) {
+ link_type = atoi(g_test_param.params[0]);
__bt_free_test_param(&g_test_param);
}
break;
}
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
- case BT_UNIT_TEST_FUNCTION_GATT_FOREACH_PRIMARY_SERVICES: {
+ case BT_UNIT_TEST_FUNCTION_GATT_FOREACH_PRIMARY_SERVICES:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
__bt_free_gatt_services();
ret = bt_gatt_foreach_primary_services(remote_addr,
__select_index(&selected_service_index,
"Select primary service :");
break;
+ } else {
+ break; /* go to default */
}
-
- case BT_UNIT_TEST_FUNCTION_GATT_DISCOVER_CHARACTERISTICS: {
+ case BT_UNIT_TEST_FUNCTION_GATT_DISCOVER_CHARACTERISTICS:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
__bt_free_gatt_characteristics();
if (selected_service_index < 0) {
if (ret == BT_ERROR_NONE)
__select_index(&selected_char_index, "Select index :");
break;
+ } else {
+ break; /* goto default */
}
-
- case BT_UNIT_TEST_FUNCTION_GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS: {
+ case BT_UNIT_TEST_FUNCTION_GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
ret = bt_gatt_discover_characteristic_descriptor(
characteristics[selected_char_index],
__bt_gatt_characteristic_descriptor_discovered_cb,
NULL);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
+ } else {
+ break; /* goto default */
}
- case BT_UNIT_TEST_FUNCTION_GATT_GET_SERVICE_UUID: {
+ case BT_UNIT_TEST_FUNCTION_GATT_GET_SERVICE_UUID:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
char *uuid = NULL;
char *name = NULL;
g_free(uuid);
}
break;
+ } else {
+ break; /* goto default */
}
- case BT_UNIT_TEST_FUNCTION_GATT_FOREACH_INCLUDED_SERVICES: {
+ case BT_UNIT_TEST_FUNCTION_GATT_FOREACH_INCLUDED_SERVICES:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
__bt_free_gatt_characteristics_services();
if (selected_service_index < 0) {
NULL);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
+ } else {
+ break; /* goto default */
}
- case BT_UNIT_TEST_FUNCTION_GATT_SET_CHARACTERISTIC_CHANGED_CB: {
+ case BT_UNIT_TEST_FUNCTION_GATT_SET_CHARACTERISTIC_CHANGED_CB:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
ret = bt_gatt_set_characteristic_changed_cb(
__bt_gatt_characteristic_changed_cb,
NULL);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
+ } else {
+ break; /* goto default */
}
- case BT_UNIT_TEST_FUNCTION_GATT_UNSET_CHARACTERISTIC_CHANGED_CB: {
+ case BT_UNIT_TEST_FUNCTION_GATT_UNSET_CHARACTERISTIC_CHANGED_CB:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
ret = bt_gatt_unset_characteristic_changed_cb();
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
+ } else {
+ break; /* goto default */
}
- case BT_UNIT_TEST_FUNCTION_GATT_GET_CHARACTERISTIC_DECLARATION: {
+ case BT_UNIT_TEST_FUNCTION_GATT_GET_CHARACTERISTIC_DECLARATION:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
int i;
char *uuid = NULL;
char *name = NULL;
g_free(value);
}
break;
+ } else {
+ break; /* goto default */
}
- case BT_UNIT_TEST_FUNCTION_GATT_SET_CHARACTERISTIC_VALUE: {
+ case BT_UNIT_TEST_FUNCTION_GATT_SET_CHARACTERISTIC_VALUE:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
unsigned char value[] = { 1 };
if (selected_char_index == 0) {
TC_PRT("Need to select charateristic value \n");
value, 1);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
+ } else {
+ break; /* goto default */
}
- case BT_UNIT_TEST_FUNCTION_GATT_SET_CHARACTERISTIC_VALUE_REQUEST: {
+ case BT_UNIT_TEST_FUNCTION_GATT_SET_CHARACTERISTIC_VALUE_REQUEST:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
unsigned char value[] = { 1 };
if (selected_char_index == 0) {
TC_PRT("Need to select charateristic value \n");
value, 1, __bt_gatt_char_write_cb);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
+ } else {
+ break; /* goto default */
}
- case BT_UNIT_TEST_FUNCTION_GATT_READ_CHARACTERISTIC_VALUE: {
+ case BT_UNIT_TEST_FUNCTION_GATT_READ_CHARACTERISTIC_VALUE:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
if (selected_char_index == 0) {
TC_PRT("Need to select charateristic value \n");
break;
__bt_gatt_char_read_cb);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
+ } else {
+ break; /* goto default */
}
- case BT_UNIT_TEST_FUNCTION_GATT_WATCH_CHARACTERISTIC_CHANGES: {
+ case BT_UNIT_TEST_FUNCTION_GATT_WATCH_CHARACTERISTIC_CHANGES:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
if (selected_service_index < 0) {
TC_PRT("Need to select primary service \n");
break;
service_clone[selected_service_index]);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
+ } else {
+ break; /* goto default */
}
- case BT_UNIT_TEST_FUNCTION_GATT_UNWATCH_CHARACTERISTIC_CHANGES: {
+ case BT_UNIT_TEST_FUNCTION_GATT_UNWATCH_CHARACTERISTIC_CHANGES:
+ if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT) {
ret = bt_gatt_unwatch_characteristic_changes(
service_clone[selected_service_index]);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
+ } else {
+ break; /* goto default */
}
-#endif
case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
need_to_set_params = true;
TC_PRT("Select the function again");
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
-
+ case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SET_ABSOLUTE_VOLUME: {
+ static unsigned int volume_level = 1;
+ ret = bt_avrcp_control_set_absolute_volume(volume_level++);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_REPEAT: {
bt_avrcp_repeat_mode_e mode = BT_AVRCP_REPEAT_MODE_GROUP;
ret = bt_avrcp_control_get_repeat_mode(&mode);
break;
}
+ case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_MOUSE_EVENT_SCROLL: {
+ bt_hid_mouse_data_s send_data;
+
+ send_data.buttons = BT_HID_MOUSE_BUTTON_NONE;
+ send_data.padding = 0x01;
+
+ send_data.axis_x = 0;
+ send_data.axis_y = 0;
+ TC_PRT("Scroll UP");
+ ret = bt_hid_device_send_mouse_event(remote_addr, &send_data);
+ if (ret < 0)
+ TC_PRT("returns %d\n", ret);
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_MOUSE_EVENT_SCROLL_DOWN: {
+ bt_hid_mouse_data_s send_data;
+ send_data.buttons = BT_HID_MOUSE_BUTTON_NONE;
+ send_data.padding = 0xff;
+ send_data.axis_x = 0;
+ send_data.axis_y = 0;
+ TC_PRT("Scroll Down");
+ ret = bt_hid_device_send_mouse_event(remote_addr, &send_data);
+ if (ret < 0)
+ TC_PRT("returns %d\n", ret);
+ break;
+ }
case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_KEY_EVENT: {
bt_hid_key_data_s send_data;
/* Will send character 'a' */
TC_PRT("IPSP : Current role is IPSP Sever !");
/* Sockets Layer Call: send() */
- send(ipsp_server_sock, data, strlen(data) + 1, 0);
+ n = send(ipsp_server_sock, data, strlen(data) + 1, 0);
if (n < 0)
TC_PRT("\nIPSP Error : While sending data !");
} else {
} else if (role == 1) {
if (ipsp_client_sock) {
/* Sockets Layer Call: send() */
- send(ipsp_client_sock, data, strlen(data) + 1, 0);
+ n = send(ipsp_client_sock, data, strlen(data) + 1, 0);
if (n < 0)
TC_PRT("\nIPSP Error : While sending data !");
} else {
case BT_UNIT_TEST_TABLE_PXP: {
switch (test_id) {
- case BT_UNIT_TEST_FUNCTION_PXP_REGISTER: {
- int role;
- if (g_test_param.param_count < 1) {
- TC_PRT("Input parameters first");
- break;
+ case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_REGISTER: {
+ if (reporter) {
+ ret = bt_proximity_reporter_destroy(reporter);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+
+ ret = bt_proximity_reporter_unset_property_changed_cb(reporter);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+
+ ret = bt_proximity_reporter_unset_connection_state_changed_cb(reporter);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ reporter = NULL;
}
- role = atoi(g_test_param.params[0]);
- ret = bt_proximity_register(role, __bt_proximity_property_changed_cb, NULL);
+ ret = bt_proximity_reporter_create(&reporter);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
- case BT_UNIT_TEST_FUNCTION_PXP_UNREGISTER: {
- int role;
- if (g_test_param.param_count < 1) {
- TC_PRT("Input parameters first");
- break;
- }
- role = atoi(g_test_param.params[0]);
- ret = bt_proximity_unregister(role);
+ case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNREGISTER: {
+ ret = bt_proximity_reporter_unset_connection_state_changed_cb(reporter);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+
+ ret = bt_proximity_reporter_unset_property_changed_cb(reporter);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+
+
+ ret = bt_proximity_reporter_destroy(reporter);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ reporter = NULL;
break;
}
- case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_CONNECT: {
- bool auto_connect = false;
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_CREATE: {
+ if (monitor) {
+ ret = bt_proximity_monitor_disconnect(monitor);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
- ret = bt_gatt_connect(remote_addr, auto_connect);
+ ret = bt_proximity_monitor_unset_connection_state_changed_cb(monitor);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+
+ ret = bt_proximity_monitor_destroy(monitor);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ monitor = NULL;
+ }
+ ret = bt_proximity_monitor_create(remote_addr, &monitor);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
- ret = bt_gatt_set_connection_state_changed_cb(
- __bt_pxp_montior_connection_state_changed_cb,
- NULL);
+ break;
+
+ }
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_DESTROY: {
+ ret = bt_proximity_monitor_unset_connection_state_changed_cb(monitor);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ ret = bt_proximity_monitor_destroy(monitor);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ monitor = NULL;
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_CONNECT: {
+ ret = bt_proximity_monitor_connect(monitor);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_DISCONNECT: {
- ret = bt_gatt_disconnect(remote_addr);
+ ret = bt_proximity_monitor_disconnect(monitor);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
- case BT_UNIT_TEST_FUNCTION_PXP_WRITE_ALERT_LEVEL: {
- int property, alert_value;
- if (g_test_param.param_count < 2) {
- TC_PRT("Input parameters first");
- break;
- }
- property = atoi(g_test_param.params[0]);
- alert_value = atoi(g_test_param.params[1]);
- ret = bt_proximity_set_property(remote_addr, property, alert_value);
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_SET_CONNECTION_STATE_CHANGED_CB: {
+ ret = bt_proximity_monitor_set_connection_state_changed_cb(monitor,
+ __bt_proximity_monitor_connection_state_changed_cb,
+ NULL);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
- case BT_UNIT_TEST_FUNCTION_PXP_READ_ALERT_LEVEL: {
- int alert_level = 0;
- int property;
- if (g_test_param.param_count < 1) {
- TC_PRT("Input parameters first");
- break;
- }
- property = atoi(g_test_param.params[0]);
- ret = bt_proximity_get_property(remote_addr, property, &alert_level);
- TC_PRT("returns %s, alert_level: %d\n", __bt_get_error_message(ret), alert_level);
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_UNSET_CONNECTION_STATE_CHANGED_CB: {
+ ret = bt_proximity_monitor_unset_connection_state_changed_cb(monitor);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
- case BT_UNIT_TEST_FUNCTION_PXP_GET_SUPPORTED_SERVICES: {
- int property = 0;
-
- ret = bt_proximity_get_supported_services(remote_addr, &property);
+ case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_SET_CONNECTION_STATE_CHANGED_CB: {
+ ret = bt_proximity_reporter_set_connection_state_changed_cb(reporter,
+ __bt_proximity_reporter_connection_state_changed_cb,
+ NULL);
TC_PRT("returns %s\n", __bt_get_error_message(ret));
- if (ret == BT_ERROR_NONE) {
- if (property & BT_PROXIMITY_LINKLOSS_ALERT)
- TC_PRT("BT_PROXIMITY_LINKLOSS_ALERT");
- if (property & BT_PROXIMITY_IMMEDIATE_ALERT)
- TC_PRT("BT_PROXIMITY_IMMEDIATE_ALERT");
- if (property & BT_PROXIMITY_TX_POWER)
- TC_PRT("BT_PROXIMITY_TX_POWER");
- }
break;
}
- case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
- need_to_set_params = true;
- TC_PRT("Select the function again");
+ case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNSET_CONNECTION_STATE_CHANGED_CB: {
+ ret = bt_proximity_reporter_unset_connection_state_changed_cb(reporter);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
-
- default:
+ }
+ case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_SET_PROPERTIES_CHANGED_CB: {
+ ret = bt_proximity_reporter_set_property_changed_cb(reporter,
+ __bt_proximity_reporter_property_changed_cb,
+ NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
- break;
- }
+ case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNSET_PROPERTIES_CHANGED_CB: {
+ ret = bt_proximity_reporter_unset_property_changed_cb(reporter);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_SET_SCAN_FILTER_SERVICE_UUID: {
+ if (pxp_scan_filter) {
+ ret = bt_adapter_le_scan_filter_unset_proximity_uuid(pxp_scan_filter);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
- case BT_UNIT_TEST_TABLE_HF: {
- switch (test_id) {
- case BT_UNIT_TEST_FUNCTION_HF_INITIALIZE:
- ret = bt_hf_initialize();
+ ret = bt_adapter_le_scan_filter_destroy(pxp_scan_filter);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ pxp_scan_filter = NULL;
+ }
+ ret = bt_adapter_le_scan_filter_create(&pxp_scan_filter);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+
+ ret = bt_adapter_le_scan_filter_set_type(pxp_scan_filter,
+ BT_ADAPTER_LE_SCAN_FILTER_TYPE_PROXIMITY_UUID);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+
+ ret = bt_adapter_le_scan_filter_register(pxp_scan_filter);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("failed with [0x%04x]", ret);
+
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_UNSET_SCAN_FILTER_SERVICE_UUID: {
+ ret = bt_adapter_le_scan_filter_unset_proximity_uuid(pxp_scan_filter);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+
+ ret = bt_adapter_le_scan_filter_destroy(pxp_scan_filter);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ pxp_scan_filter = NULL;
+
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_START_ADVERTISING: {
+ /* Add Reporter service in advertising data */
+ advertiser = advertiser_list[advertiser_index];
+ if (advertiser == NULL) {
+ ret = bt_adapter_le_create_advertiser(&advertiser);
+ if (ret != BT_ERROR_NONE) {
+ TC_PRT("created le advertiser(%d)", ret);
+ break;
+ }
+
+ advertiser_list[advertiser_index] = advertiser;
+ ret = bt_adapter_le_set_advertising_device_name(advertiser,
+ BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, true);
+ if (ret != BT_ERROR_NONE) {
+ TC_PRT("set device name [0x%04x]", ret);
+ break;
+ }
+ }
+
+ ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
+ BT_ADAPTER_LE_PACKET_ADVERTISING, PXP_IMMEDIATE_ALERT_SVC_UUID);
+ if (ret != BT_ERROR_NONE) {
+ TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
+ break;
+ }
+
+ ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
+ BT_ADAPTER_LE_PACKET_ADVERTISING, PXP_LINK_LOSS_SVC_UUID);
+ if (ret != BT_ERROR_NONE) {
+ TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
+ break;
+ }
+
+ /* Start advertising PXP Reporter service */
+ bt_adapter_le_advertising_state_changed_cb cb;
+
+ if (advertiser_index == 0) cb = __bt_adapter_le_advertising_state_changed_cb;
+ else if (advertiser_index == 1) cb = __bt_adapter_le_advertising_state_changed_cb_2;
+ else cb = __bt_adapter_le_advertising_state_changed_cb_3;
+
+ advertiser = advertiser_list[advertiser_index];
+
+ advertiser_index++;
+ advertiser_index %= 3;
+
+ TC_PRT("advertiser: %p", advertiser);
+
+ ret = bt_adapter_le_start_advertising_new(advertiser, cb, NULL);
+ if (ret < BT_ERROR_NONE)
+ TC_PRT("failed with [0x%04x]", ret);
+
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_LINKLOSS_ALERT: {
+ int alert_value;
+ if (g_test_param.param_count < 1) {
+ TC_PRT("Input parameters first");
+ break;
+ }
+
+ alert_value = atoi(g_test_param.params[0]);
+ ret = bt_proximity_monitor_set_linkloss_alert(monitor, alert_value);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_IMMEDIATE_ALERT: {
+ int alert_value;
+ if (g_test_param.param_count < 1) {
+ TC_PRT("Input parameters first");
+ break;
+ }
+
+ alert_value = atoi(g_test_param.params[0]);
+ ret = bt_proximity_monitor_set_immediate_alert(monitor, alert_value);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_LINKLOSS_ALERT: {
+ int alert_level = 0;
+ ret = bt_proximity_monitor_get_linkloss_alert(monitor, &alert_level);
+ TC_PRT("returns %s, alert_level: %d\n", __bt_get_error_message(ret), alert_level);
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_IMMEDIATE_ALERT: {
+ int alert_level = 0;
+ ret = bt_proximity_monitor_get_immediate_alert(monitor, &alert_level);
+ TC_PRT("returns %s, alert_level: %d\n", __bt_get_error_message(ret), alert_level);
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_SIGNAL_LEVEL: {
+ int alert_level = 0;
+ ret = bt_proximity_monitor_get_signal_level(monitor, &alert_level);
+ TC_PRT("returns %s, signal_level: %d\n", __bt_get_error_message(ret), alert_level);
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_READ_LINKLOSS_ALERT: {
+ int alert_level = 0;
+ ret = bt_proximity_reporter_get_linkloss_alert(remote_addr, &alert_level);
+ TC_PRT("returns %s, alert_level: %d\n", __bt_get_error_message(ret), alert_level);
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_READ_IMMEDIATE_ALERT: {
+ int alert_level = 0;
+ ret = bt_proximity_reporter_get_immediate_alert(remote_addr, &alert_level);
+ TC_PRT("returns %s, alert_level: %d\n", __bt_get_error_message(ret), alert_level);
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
+ need_to_set_params = true;
+ TC_PRT("Select the function again");
+ break;
+
+ default:
+ break;
+ }
+ break;
+ }
+
+ case BT_UNIT_TEST_TABLE_HF: {
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ break;
+ switch (test_id) {
+ case BT_UNIT_TEST_FUNCTION_HF_INITIALIZE:
+ ret = bt_hf_initialize();
if (ret < BT_ERROR_NONE)
TC_PRT("failed with [0x%04x]", ret);
else if (ret == BT_ERROR_NONE)
break;
}
case BT_UNIT_TEST_TABLE_PBAP_CLIENT: {
+ if (!TIZEN_PROFILE_WEARABLE_IVI)
+ break;
switch (test_id) {
/*PBAP Test Cases */
break;
}
-#endif
+ case BT_UNIT_TEST_TABLE_TDS_PROVIDER: {
+ switch (test_id) {
+ case BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_REGISTER: {
+ ret = bt_tds_provider_register();
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_UNREGISTER: {
+ ret = bt_tds_provider_unregister();
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ provider = NULL;
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_SET_ACT_REQ_CB: {
+ ret = bt_tds_set_transport_activation_requested_cb(__tds_activation_req_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_UNSET_ACT_REQ_CB: {
+ ret = bt_tds_unset_transport_activation_requested_cb();
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_CREATE: {
+ if (provider) {
+ ret = bt_tds_provider_destroy(provider);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+
+ provider = NULL;
+ }
+ ret = bt_tds_provider_create(&provider, BT_TDS_TRANSPORT_CUSTOM);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_DESTROY: {
+ ret = bt_tds_provider_destroy(provider);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ provider = NULL;
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SET_TRANSPORT_DATA: {
+ unsigned char buf[] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, /* Mac */
+ 0x20, 0xFA, /* Operating Channel */
+ 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF}; /* Hash */
+
+ ret = bt_tds_provider_set_transport_data(provider,
+ BT_TDS_TRANSPORT_STATE_OFF, buf, sizeof(buf));
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SET_MANUF_DATA: {
+ unsigned char buf[] = {0x00, 0x75, 0x4E, 0x24, 0x36, 0x28, 0x01, 0x13};
+
+ ret = bt_tds_provider_set_manufacturer_data(buf, sizeof(buf));
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SEND_ACTIVATION_RESP: {
+ ret = bt_tds_provider_send_activation_resp(
+ tds_act_address, BLUETOOTH_ERROR_NONE, provider);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ }
+ case BT_UNIT_TEST_TABLE_TDS_SEEKER: {
+ switch (test_id) {
+ case BT_UNIT_TEST_FUNCTION_TDS_START_DISCOVERING_PROVIDER: {
+ ret = bt_tds_start_seeking_providers(__bt_tds_provider_scan_result_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_STOP_DISCOVERING_PROVIDER: {
+ ret = bt_tds_stop_seeking_providers();
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_CREATE: {
+ if (seeker)
+ seeker = NULL;
+ ret = bt_tds_seeker_create(remote_addr, &seeker);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_DESTROY: {
+ if (seeker) {
+ ret = bt_tds_seeker_destroy(seeker);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_SET_CONNECTION_CALLBACK: {
+ if (seeker) {
+ ret = bt_tds_seeker_set_connection_state_changed_cb(seeker,
+ __bt_tds_seeker_connection_state_changed_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_CONNECT: {
+ if (seeker) {
+ ret = bt_tds_seeker_connect(seeker);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_DISCONNECT: {
+ if (seeker) {
+ ret = bt_tds_seeker_disconnect(seeker);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_UNSET_CONNECTION_CALLBACK: {
+ if (seeker) {
+ ret = bt_tds_seeker_unset_connection_state_changed_cb(seeker);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_GET_COMPLETE_DATA: {
+ if (seeker) {
+ ret = bt_tds_seeker_get_complete_transport_blocks(seeker,
+ __bt_tds_seeker_complete_transport_data_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_ACTIVATE_CONTROL_POINT: {
+ if (seeker) {
+ unsigned char buf[] = {0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, /* Mac */
+ 0x0A, 0x0B}; /* Channel Info */
+ bt_tds_transport_e transport = BT_TDS_TRANSPORT_CUSTOM;
+ ret = bt_tds_seeker_activate_control_point(seeker, transport, buf, sizeof(buf),
+ __bt_tds_control_point_activation_result_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ }
+ case BT_UNIT_TEST_TABLE_OTP: {
+ switch (test_id) {
+ case BT_UNIT_TEST_FUNCTION_OTP_SERVER_INIT: {
+ char *directory = NULL;
+
+ if (g_test_param.param_count < 1)
+ TC_PRT("No relative path set");
+ else
+ directory = g_test_param.params[0];
+
+ TC_PRT("%s", directory);
+
+ ret = bt_otp_server_initialize(directory);
+ if (ret < BT_ERROR_NONE)
+ TC_PRT("failed with [0x%04x]", ret);
+ else if (ret == BT_ERROR_NONE)
+ TC_PRT("Success");
+ /* __bt_free_test_param(&g_test_param); */
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_SERVER_DEINIT: {
+ ret = bt_otp_server_deinitialize();
+ if (ret < BT_ERROR_NONE)
+ TC_PRT("failed with [0x%04x]", ret);
+ else if (ret == BT_ERROR_NONE)
+ TC_PRT("Success");
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_SET_SERVER_STATE_CHANGED_CB: {
+ ret = bt_otp_set_server_state_changed_cb(
+ __bt_otp_server_state_changed_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_UNSET_SERVER_STATE_CHANGED_CB: {
+ ret = bt_otp_unset_server_state_changed_cb();
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CREATE: {
+ if (otp_client)
+ otp_client = NULL;
+ ret = bt_otp_client_create(remote_addr, &otp_client);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DESTROY: {
+ if (otp_client) {
+ ret = bt_otp_client_destroy(otp_client);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_SET_CONNECTION_CALLBACK: {
+ if (otp_client) {
+ ret = bt_otp_client_set_connection_state_changed_cb(otp_client,
+ __bt_otp_client_connection_state_changed_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CONNECT: {
+ if (otp_client) {
+ ret = bt_otp_client_connect(otp_client);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DISCONNECT: {
+ if (otp_client) {
+ ret = bt_otp_client_disconnect(otp_client);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_UNSET_CONNECTION_CALLBACK: {
+ if (otp_client) {
+ ret = bt_otp_client_unset_connection_state_changed_cb(otp_client);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DISCOVER_ALL_OBJECTS: {
+ if (otp_client) {
+ ret = bt_otp_client_discover_all_objects(otp_client,
+ __bt_otp_client_object_discovery_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_SELECT_OBJ: {
+ if (otp_client) {
+ unsigned long long id;
+ if (g_test_param.param_count < 1) {
+ TC_PRT("Input parameters first");
+ break;
+ }
+
+ id = (unsigned long long)atoi(g_test_param.params[0]);
+ TC_PRT("Object ID[%llu]", id);
+ ret = bt_otp_client_select_object(otp_client, id,
+ __bt_otp_client_object_select_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_READ_OBJ_CONTENTS: {
+ if (otp_client) {
+ ret = bt_otp_client_read_object_contents(otp_client,
+ __bt_otp_client_read_object_complete_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CREATE_OBJ: {
+ char *file_path = NULL;
+ if (g_test_param.param_count < 1) {
+ TC_PRT("Input parameters first");
+ break;
+ }
+
+ file_path = g_test_param.params[0];
+ TC_PRT("%s", file_path);
+
+ if (otp_client) {
+ ret = bt_otp_client_create_object(otp_client,
+ file_path, __bt_otp_client_object_create_cb, NULL);
+ if (ret < BT_ERROR_NONE)
+ TC_PRT("failed with [0x%04x]", ret);
+ else if (ret == BT_ERROR_NONE)
+ TC_PRT("Success");
+ }
+ __bt_free_test_param(&g_test_param);
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_WRITE_OBJ: {
+ char *file_path = NULL;
+ int offset, length, mode;
+
+ if (g_test_param.param_count < 4) {
+ TC_PRT("Input parameters first");
+ break;
+ }
+
+ file_path = g_test_param.params[0];
+ TC_PRT("%s", file_path);
+
+ offset = strtoul(g_test_param.params[1], NULL, 10);
+ length = strtoul(g_test_param.params[2], NULL, 10);
+ mode = strtoul(g_test_param.params[3], NULL, 10);
+
+ if (otp_client) {
+ ret = bt_otp_client_write_object(otp_client,
+ file_path, offset, length, mode,
+ __bt_otp_client_object_write_cb, NULL);
+ if (ret < BT_ERROR_NONE)
+ TC_PRT("failed with [0x%04x]", ret);
+ else if (ret == BT_ERROR_NONE)
+ TC_PRT("Success");
+ }
+ __bt_free_test_param(&g_test_param);
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_EXECUTE_OBJ: {
+ if (otp_client) {
+ ret = bt_otp_client_execute_object(otp_client,
+ __bt_otp_client_object_execute_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DELETE_OBJ: {
+ if (otp_client) {
+ ret = bt_otp_client_delete_object(otp_client,
+ __bt_otp_client_object_delete_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ }
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
+ need_to_set_params = true;
+ TC_PRT("Select the function again");
+ break;
+ default:
+ break;
+ }
+ break;
+ }
case BT_UNIT_TEST_TABLE_ETC: {
static unsigned int delay = 0;
bt_onoff_cnt = 0;
BT_UNIT_TEST_TABLE_HDP,
BT_UNIT_TEST_TABLE_DPM,
BT_UNIT_TEST_TABLE_PXP,
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
BT_UNIT_TEST_TABLE_HF,
BT_UNIT_TEST_TABLE_PBAP_CLIENT,
-#endif
BT_UNIT_TEST_TABLE_ETC,
BT_UNIT_TEST_FUNCTION_INITIALIZE_ALL,
+ BT_UNIT_TEST_TABLE_TDS_PROVIDER,
+ BT_UNIT_TEST_TABLE_TDS_SEEKER,
+ BT_UNIT_TEST_TABLE_OTP,
BT_UNIT_TEST_TABLE_FINISH = 0xFF,
} bt_unit_test_table_e;
BT_UNIT_TEST_FUNCTION_ADAPTER_STOP_DEVICE_DISCOVERY,
BT_UNIT_TEST_FUNCTION_ADAPTER_IS_DISCOVERING,
BT_UNIT_TEST_FUNCTION_ADAPTER_FOREACH_BONDED_DEVICE,
+ BT_UNIT_TEST_FUNCTION_ADAPTER_FOREACH_PROFILE_CONNECTED_DEVICES,
BT_UNIT_TEST_FUNCTION_ADAPTER_GET_BONDED_DEVICE_INFO,
BT_UNIT_TEST_FUNCTION_ADAPTER_IS_SERVICE_USED,
BT_UNIT_TEST_FUNCTION_ADAPTER_GET_VISIBILITY,
+ BT_UNIT_TEST_FUNCTION_ADAPTER_SET_VISIBILITY,
BT_UNIT_TEST_FUNCTION_ADAPTER_SET_DEVICE_DISCOVERY_STATE_CHANGED_CB,
BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_DEVICE_DISCOVERY_STATE_CHANGED_CB,
BT_UNIT_TEST_FUNCTION_ADAPTER_GET_LOCAL_OOB_DATA,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_SCAN_MODE,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_SCAN,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_SCAN,
-#ifndef TIZEN_PROFILE_WEARABLE
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_DEVICE_DISCOVERY,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_DEVICE_DISCOVERY,
-#endif
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_ADVERTISING_DATA,
+ BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_HOGP_ADVERTISING_DATA,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_MODE,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_FILTER_POLICY,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_CONNECTABLE,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_ADVERTISING_NEW,
-#ifndef TIZEN_PROFILE_WEARABLE
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_ADVERTISING,
-#endif
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_ADVERTISING,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_WHITE_LIST,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REMOVE_WHITE_LIST,
-#ifndef TIZEN_PROFILE_WEARABLE
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_CLEAR_WHITE_LIST,
-#endif
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ENABLE_PRIVACY,
+ BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_REMOTE_OOB_EXT_DATA,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_DEVICE_ADDRESS,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_SERVICE_UUID,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_SERVICE_SOLICITATION_UUID,
+BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_MANUFACTURER_DATA,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_IBEACON_DATA,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_UNREGISTER_ALL_SCAN_FILTERS,
-#ifndef TIZEN_PROFILE_WEARABLE
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_DEVICE_DISCOVERY_STATE_CHANGED_CB,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_UNSET_DEVICE_DISCOVERY_STATE_CHANGED_CB,
-#endif
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_READ_MAXIMUM_DATA_LENGTH,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_WRITE_HOST_SUGGESTED_DEFAULT_DATA_LENGTH,
BT_UNIT_TEST_FUNCTION_ADAPTER_LE_READ_HOST_SUGGESTED_DEFAULT_DATA_LENGTH,
BT_UNIT_TEST_FUNCTION_DEVICE_DISABLE_RSSI_MONITOR,
BT_UNIT_TEST_FUNCTION_DEVICE_GET_RSSI_STRENGTH,
BT_UNIT_TEST_FUNCTION_DEVICE_GET_CONNECTION_STATE,
+ BT_UNIT_TEST_FUNCTION_DEVICE_UPDATE_LE_CONNECTION_MODE,
+ BT_UNIT_TEST_FUNCTION_DEVICE_UPDATE_LE_CONNECTION,
BT_UNIT_TEST_FUNCTION_DEVICE_REQUEST_ATT_MTU,
BT_UNIT_TEST_FUNCTION_DEVICE_SET_REQUEST_ATT_MTU_CHANGED_CB,
BT_UNIT_TEST_FUNCTION_DEVICE_UNSET_REQUEST_ATT_MTU_CHANGED_CB,
BT_UNIT_TEST_FUNCTION_AG_NOTIFY_CALL_LIST,
BT_UNIT_TEST_FUNCTION_AG_SET_CALL_HANDLING_EVENT_CB,
BT_UNIT_TEST_FUNCTION_AG_IS_NREC_ENABLED,
+ BT_UNIT_TEST_FUNCTION_AG_SWITCH_HEADSET,
BT_UNIT_TEST_FUNCTION_A2DP_SOURCE_ROLE,
BT_UNIT_TEST_FUNCTION_A2DP_SINK_ROLE,
BT_UNIT_TEST_FUNCTION_AG_IS_WBS_MODE,
BT_UNIT_TEST_FUNCTION_GATT_DISCONNECT,
BT_UNIT_TEST_FUNCTION_SET_GATT_CONNECTION_STATE_CHANGED_CB,
BT_UNIT_TEST_FUNCTION_UNSET_GATT_CONNECTION_STATE_CHANGED_CB,
+ BT_UNIT_TEST_FUNCTION_GATT_SET_WRITE_TYPE,
BT_UNIT_TEST_FUNCTION_GATT_CLIENT_CREATE,
BT_UNIT_TEST_FUNCTION_GATT_CLIENT_DESTROY,
BT_UNIT_TEST_FUNCTION_GATT_CLIENT_GET_REMOTE_ADDRESS,
BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_CHAR_VALUE_CHANGED_CB,
BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_CHAR_VALUE_CHANGED_CB,
BT_UNIT_TEST_FUNCTION_GATT_CLIENT_FOREACH_SERVICES,
+ BT_UNIT_TEST_FUNCTION_GATT_CLIENT_REQUEST_ATT_MTU,
+ BT_UNIT_TEST_FUNCTION_GATT_CLIENT_GET_ATT_MTU,
BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_SERVICE_CHANGED_CB,
BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_SERVICE_CHANGED_CB,
+ BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_ATT_MTU_CHANGED_CB,
+ BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_ATT_MTU_CHANGED_CB,
BT_UNIT_TEST_FUNCTION_GATT_SERVER_INITIALIZE,
BT_UNIT_TEST_FUNCTION_GATT_SERVER_DEINITIALIZE,
BT_UNIT_TEST_FUNCTION_GATT_SERVER_UNREGISTER_ALL_SERVICES,
BT_UNIT_TEST_FUNCTION_GATT_SERVER_CHANGE_THERMOMETER_MEASUREMENT,
BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_DEVICE_INFORMATION_SVC,
BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_LINK_LOSS_SVC,
+ BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_HOGP_SVC,
BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_CUSTOM_SVC,
BT_UNIT_TEST_FUNCTION_GATT_SERVER_CHANGE_CUSTOM_VAL,
BT_UNIT_TEST_FUNCTION_GATT_START_SERVER,
BT_UNIT_TEST_FUNCTION_ANCS_POSITIVE_ACTION,
BT_UNIT_TEST_FUNCTION_ANCS_NEGATIVE_ACTION,
BT_UNIT_TEST_FUNCTION_ANCS_GET_NOTI_ATTR,
-#ifdef TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT
BT_UNIT_TEST_FUNCTION_GATT_FOREACH_PRIMARY_SERVICES,
BT_UNIT_TEST_FUNCTION_GATT_DISCOVER_CHARACTERISTICS,
BT_UNIT_TEST_FUNCTION_GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS,
BT_UNIT_TEST_FUNCTION_GATT_READ_CHARACTERISTIC_VALUE,
BT_UNIT_TEST_FUNCTION_GATT_WATCH_CHARACTERISTIC_CHANGES,
BT_UNIT_TEST_FUNCTION_GATT_UNWATCH_CHARACTERISTIC_CHANGES,
-#endif
BT_UNIT_TEST_FUNCTION_HPS_CLIENT_CREATE = 1,
BT_UNIT_TEST_FUNCTION_HPS_CLIENT_DESTROY,
BT_UNIT_TEST_FUNCTION_HPS_CLIENT_PRINT_ALL,
BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_RW,
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_GET_REPEAT,
BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SET_REPEAT,
BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_SHUFFLE,
BT_UNIT_TEST_FUNCTION_HID_DEVICE_DISCONNECT,
BT_UNIT_TEST_FUCNTION_HID_DEVICE_DEACTIVATE,
BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_MOUSE_EVENT,
+ BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_MOUSE_EVENT_SCROLL,
+ BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_MOUSE_EVENT_SCROLL_DOWN,
BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_KEY_EVENT,
BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_RC_KEY_EVENT,
BT_UNIT_TEST_FUNCTION_HID_DEVICE_SET_DATA_RECEIVED_CB,
BT_UNIT_TEST_FUNCTION_DPM_GET_LIMITED_DISCOVERABLE_STATE,
BT_UNIT_TEST_FUNCTION_DPM_SET_DATA_TRANSFER_STATE,
BT_UNIT_TEST_FUNCTION_DPM_GET_DATA_TRANSFER_STATE,
-#if defined(TIZEN_PROFILE_WEARABLE) || defined(TIZEN_PROFILE_IVI)
BT_UNIT_TEST_FUNCTION_HF_INITIALIZE = 1,
BT_UNIT_TEST_FUNCTION_HF_DEINITIALIZE,
BT_UNIT_TEST_FUNCTION_HF_NOTIFY_CALL_ANSWER,
BT_UNIT_TEST_FUNCTION_HF_NOTIFY_CALL_INIT,
BT_UNIT_TEST_FUNCTION_HF_NOTIFY_CALL_TERM,
+ BT_UNIT_TEST_FUNCTION_HF_NOTIFY_CALL_WITH_PARAM,
BT_UNIT_TEST_FUNCTION_HF_GET_CALL_STATUS_INFO_LIST,
BT_UNIT_TEST_FUNCTION_HF_SET_CALL_EVENT_CB,
BT_UNIT_TEST_FUNCTION_HF_UNSET_CALL_EVENT_CB,
BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_VCARDPULL,
BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_PHONEBOOKSEARCH,
BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_VCARDLIST_MAXLIST_ZERO,
-#endif
BT_UNIT_TEST_FUNCTION_ON_OFF_REPEAT_TEST = 1,
BT_UNIT_TEST_FUNCTION_ON_OFF_REPEAT_TEST_1_SEC_DELAY,
BT_UNIT_TEST_FUNCTION_ON_OFF_REPEAT_TEST_N_SEC_DELAY,
BT_UNIT_TEST_FUNCTION_APP_CONTROL_2_4_BT_ONOFF,
BT_UNIT_TEST_FUNCTION_APP_CONTROL_2_4_BT_VISIBILITY,
BT_UNIT_TEST_FUNCTION_CHECK_FEATURE,
- BT_UNIT_TEST_FUNCTION_PXP_REGISTER = 1,
- BT_UNIT_TEST_FUNCTION_PXP_UNREGISTER,
+ BT_UNIT_TEST_FUNCTION_PXP_REPORTER_REGISTER = 1,
+ BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNREGISTER,
+ BT_UNIT_TEST_FUNCTION_PXP_REPORTER_START_ADVERTISING,
+ BT_UNIT_TEST_FUNCTION_PXP_REPORTER_SET_CONNECTION_STATE_CHANGED_CB,
+ BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNSET_CONNECTION_STATE_CHANGED_CB,
+ BT_UNIT_TEST_FUNCTION_PXP_REPORTER_SET_PROPERTIES_CHANGED_CB,
+ BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNSET_PROPERTIES_CHANGED_CB,
+ BT_UNIT_TEST_FUNCTION_PXP_REPORTER_READ_LINKLOSS_ALERT,
+ BT_UNIT_TEST_FUNCTION_PXP_REPORTER_READ_IMMEDIATE_ALERT,
+ BT_UNIT_TEST_FUNCTION_PXP_MONITOR_CREATE,
+ BT_UNIT_TEST_FUNCTION_PXP_MONITOR_DESTROY,
BT_UNIT_TEST_FUNCTION_PXP_MONITOR_CONNECT,
BT_UNIT_TEST_FUNCTION_PXP_MONITOR_DISCONNECT,
- BT_UNIT_TEST_FUNCTION_PXP_WRITE_ALERT_LEVEL,
- BT_UNIT_TEST_FUNCTION_PXP_READ_ALERT_LEVEL,
- BT_UNIT_TEST_FUNCTION_PXP_GET_SUPPORTED_SERVICES,
+ BT_UNIT_TEST_FUNCTION_PXP_MONITOR_SET_CONNECTION_STATE_CHANGED_CB,
+ BT_UNIT_TEST_FUNCTION_PXP_MONITOR_UNSET_CONNECTION_STATE_CHANGED_CB,
+ BT_UNIT_TEST_FUNCTION_PXP_MONITOR_SET_SCAN_FILTER_SERVICE_UUID,
+ BT_UNIT_TEST_FUNCTION_PXP_MONITOR_UNSET_SCAN_FILTER_SERVICE_UUID,
+ BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_LINKLOSS_ALERT,
+ BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_IMMEDIATE_ALERT,
+ BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_LINKLOSS_ALERT,
+ BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_IMMEDIATE_ALERT,
+ BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_SIGNAL_LEVEL,
+
+ /* TDS Provider */
+ BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_REGISTER = 1,
+ BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_UNREGISTER,
+ BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_SET_ACT_REQ_CB,
+ BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_UNSET_ACT_REQ_CB,
+ BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_CREATE,
+ BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_DESTROY,
+ BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SET_TRANSPORT_DATA,
+ BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SET_MANUF_DATA,
+ BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SEND_ACTIVATION_RESP,
+
+ /* TDS Seeker */
+ BT_UNIT_TEST_FUNCTION_TDS_START_DISCOVERING_PROVIDER = 1,
+ BT_UNIT_TEST_FUNCTION_TDS_STOP_DISCOVERING_PROVIDER,
+ BT_UNIT_TEST_FUNCTION_TDS_SEEKER_CREATE,
+ BT_UNIT_TEST_FUNCTION_TDS_SEEKER_DESTROY,
+ BT_UNIT_TEST_FUNCTION_TDS_SEEKER_SET_CONNECTION_CALLBACK,
+ BT_UNIT_TEST_FUNCTION_TDS_SEEKER_CONNECT,
+ BT_UNIT_TEST_FUNCTION_TDS_SEEKER_DISCONNECT,
+ BT_UNIT_TEST_FUNCTION_TDS_SEEKER_UNSET_CONNECTION_CALLBACK,
+ BT_UNIT_TEST_FUNCTION_TDS_SEEKER_GET_COMPLETE_DATA,
+ BT_UNIT_TEST_FUNCTION_TDS_SEEKER_ACTIVATE_CONTROL_POINT,
+
+ /* OTP */
+ BT_UNIT_TEST_FUNCTION_OTP_SERVER_INIT = 1,
+ BT_UNIT_TEST_FUNCTION_OTP_SERVER_DEINIT,
+ BT_UNIT_TEST_FUNCTION_OTP_SET_SERVER_STATE_CHANGED_CB,
+ BT_UNIT_TEST_FUNCTION_OTP_UNSET_SERVER_STATE_CHANGED_CB,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CREATE,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DESTROY,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_SET_CONNECTION_CALLBACK,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_UNSET_CONNECTION_CALLBACK,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CONNECT,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DISCONNECT,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DISCOVER_ALL_OBJECTS,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_SELECT_OBJ,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_READ_OBJ_CONTENTS,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CREATE_OBJ,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_WRITE_OBJ,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_EXECUTE_OBJ,
+ BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DELETE_OBJ,
BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS = 0XFF,
} bt_unit_test_function_e;