Update AG and HF agent codes from wearable product
[platform/core/connectivity/bluetooth-agent.git] / ag-agent / bluetooth-ag-agent.h
index 4af63d4..ea7c9cf 100644 (file)
 #include <glib.h>
 #include <gio/gio.h>
 #include <errno.h>
+#include <TapiUtility.h>
+#include <ITapiSim.h>
+#include <ITapiModem.h>
+#include <TelNetwork.h>
 
 #include "vconf.h"
 #include "vconf-keys.h"
 #define TELEPHONY_APP_INTERFACE "org.tizen.csd.Call.Instance"
 #define BT_HEADSET_INTERFACE "org.bluez.Headset"
 #define BT_ADAPTER_INTERFACE   "org.bluez.Adapter1"
-#ifdef TIZEN_MEDIA_ENHANCE
 #define BT_PROPERTIES_INTERFACE "org.freedesktop.DBus.Properties"
+#define BLUEZ_DEVICE_INTERFACE "org.bluez.Device1"
+#define BT_INTERFACES_ADDED "InterfacesAdded"
+#define BT_INTERFACES_REMOVED "InterfacesRemoved"
+#define BT_PROPERTY_CHANGED "PropertiesChanged"
+
+#ifdef TIZEN_FEATURE_BT_MEDIA_ENHANCE
 #define BLUEZ_MEDIA_TRANSPORT_INTERFACE "org.bluez.MediaTransport1"
 #define BLUEZ_MEDIA_ENDPOINT_INTERFACE "org.bluez.MediaEndpoint1"
-#define BLUEZ_DEVICE_INTERFACE "org.bluez.Device1"
 #define A2DP_SOURCE_ENDPOINT "/MediaEndpoint/A2DPSource"
 #endif
 
 enum hfp_version {
        HFP_VERSION_1_5 = 0x0105,
        HFP_VERSION_1_6 = 0x0106,
-       HFP_VERSION_LATEST = HFP_VERSION_1_6,
+       HFP_VERSION_1_7 = 0x0107,
+       HFP_VERSION_LATEST = HFP_VERSION_1_7,
 };
 
 /* BD Address */
@@ -244,6 +253,8 @@ typedef enum {
        BT_AG_FEATURE_ENHANCED_CALL_CONTROL             = 0x0080,
        BT_AG_FEATURE_EXTENDED_ERROR_RESULT_CODES       = 0x0100,
        BT_AG_FEATURE_CODEC_NEGOTIATION                 = 0x0200,
+       BT_AG_FEATURE_HF_INDICATORS                     = 0x0400,
+       BT_AG_FEATURE_ESCO_S4_T2_SUPPORT                = 0x0800,
 } bt_ag_agent_feature_t;
 
 typedef enum {
@@ -257,6 +268,19 @@ typedef enum {
        BT_HF_FEATURE_CODEC_NEGOTIATION = 0x0080,
 } bt_hf_agent_feature_t;
 
+typedef enum {
+       BT_AG_FEATURE_PBAP_SHOW_AUTHORIZATION = 0x0000,
+       BT_AG_FEATURE_PBAP_BLOCKED = 0x0001,
+       BT_AG_FEATURE_PBAP_CANCEL = 0x0002,
+       BT_AG_FEATURE_PBAP_ALLOWED= 0x0004
+} bt_pbap_trusted_feature_t;
+
+typedef enum {
+       BT_PROFILE_SHOW_AUTHORIZATION = 0x0, /* 0b00 */
+       BT_PROFILE_SUPPORTED_BLOCKED = 0x1, /* 0b01 */
+       BT_PROFILE_SUPPORTED_TRUSTED= 0x2, /* 0b10 */
+} bt_profile_trusted_states;
+
 /* HFP AG service record bitmap. Bluetooth HFP 1.6 spec page 95 */
 #define BT_AG_FEATURE_SDP_3WAY                 0x1
 #define BT_AG_FEATURE_SDP_ECNR                 0x2
@@ -336,7 +360,7 @@ typedef enum {
        BT_AGENT_NETWORK_REG_STATUS_REGISTERED_CSFB_ROAMING,
 } bt_hfp_agent_reg_status_t;
 
-#ifdef TIZEN_MEDIA_ENHANCE
+#ifdef TIZEN_FEATURE_BT_MEDIA_ENHANCE
 typedef enum media_transport_state {
        MEDIA_TRANSPORT_STATE_DISCONNECTED,
        MEDIA_TRANSPORT_STATE_IDLE,
@@ -441,6 +465,7 @@ typedef struct {
        unsigned int remote_codecs;
        unsigned int sending_codec;
        unsigned int final_codec;
+       char *status;
 } bt_negotiation_info_t;
 
 typedef struct {
@@ -457,6 +482,7 @@ typedef struct {
        GIOChannel *rfcomm;
        GIOChannel *sco;
        guint sco_id;
+       guint sco_incoming_id;
        guint codec;
 
        gboolean auto_dc;
@@ -478,6 +504,9 @@ typedef struct {
 #if defined(TIZEN_SUPPORT_DUAL_HF)
        gboolean is_companion_device;
 #endif
+       int pbap_trusted;
+       char at_pbap_buf[30];
+       GDBusMethodInvocation *invocation;
 } bt_ag_info_t;
 
 typedef void (*headset_nrec_cb) (bt_ag_info_t *hs,
@@ -589,7 +618,7 @@ bt_hfp_agent_error_t _bt_hfp_change_call_status(const char *call_path,
                uint32_t call_status,
                uint32_t call_id,
                const char *sender);
-void _bt_hfp_initialize_telephony_manager(uint32_t ag_features);
+void _bt_hfp_initialize_telephony_manager(uint32_t ag_features, TapiHandle *handler);
 void _bt_hfp_deinitialize_telephony_manager(void);
 gboolean _bt_ag_agent_emit_property_changed(
                                GDBusConnection *connection,
@@ -618,8 +647,9 @@ void _bt_ag_agent_get_creg_status(void *device);
 void _bt_ag_agent_get_revision_information(void *device);
 bt_hfp_agent_error_t _bt_ag_agent_vendor_cmd(const gchar *cmd,
                const gchar *path, const gchar *sender);
-#ifdef TIZEN_MEDIA_ENHANCE
+#ifdef TIZEN_FEATURE_BT_MEDIA_ENHANCE
 void _bt_ag_agent_check_transport_state(void);
 #endif
+void _bt_ag_agent_set_last_speaker_gain(int gain);
 
 #endif /* __DEF_BT_AG_AGENT_H_ */