get device type instead of model name to check DA devices 70/317070/1 accepted/tizen/7.0/unified/20241227.151105
authorSohyeon Choi <shss.choi@samsung.com>
Mon, 23 Dec 2024 04:22:14 +0000 (13:22 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Tue, 24 Dec 2024 00:40:30 +0000 (09:40 +0900)
Change-Id: Ie6df3b0bd2fd082b70b6b0ba24c43785620e77d3
Signed-off-by: Sohyeon Choi <shss.choi@samsung.com>
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
hf-agent/bluetooth-hf-agent.c
include/bluetooth-agent-profile.h

index d4f25af44e4fde4b856fb6b7c4990c091f5ad55e..21eea6ce03ffc044c74728cde6f900c5277a2c3e 100644 (file)
@@ -1213,7 +1213,7 @@ static void __bt_hf_agent_handle_ind_change(bt_hf_agent_info_t *bt_hf_info,
                                        "CallStarted", NULL);
                        bt_hf_info->is_dialing = FALSE;
                        bt_hf_info->call_active = TRUE;
-                       if (TIZEN_MODEL_NAME_DA)
+                       if (TIZEN_DEVICE_TYPE_DA)
                                bt_hf_info->call_state = BT_HF_DA_CALL_STAT_CALL_STARTED;
                } else if (bt_hf_info->call_active) {
                        __bt_hf_agent_emit_signal(conn,
@@ -1221,7 +1221,7 @@ static void __bt_hf_agent_handle_ind_change(bt_hf_agent_info_t *bt_hf_info,
                                        BT_HF_SERVICE_INTERFACE,
                                        "CallEnded", NULL);
                        bt_hf_info->call_active = FALSE;
-                       if (TIZEN_MODEL_NAME_DA)
+                       if (TIZEN_DEVICE_TYPE_DA)
                                bt_hf_info->call_state = BT_HF_DA_CALL_STAT_CALL_ENDED;
 
                        if (bt_hf_info->ciev_call_setup_status == 0) {
@@ -1229,7 +1229,7 @@ static void __bt_hf_agent_handle_ind_change(bt_hf_agent_info_t *bt_hf_info,
                                                BT_HF_AGENT_OBJECT_PATH,
                                                BT_HF_SERVICE_INTERFACE,
                                                "CallIdle", NULL);
-                               if (TIZEN_MODEL_NAME_DA)
+                               if (TIZEN_DEVICE_TYPE_DA)
                                        bt_hf_info->call_state = BT_HF_DA_CALL_STAT_CALL_IDLE;
                        }
                }
@@ -1243,7 +1243,7 @@ static void __bt_hf_agent_handle_ind_change(bt_hf_agent_info_t *bt_hf_info,
                                        BT_HF_SERVICE_INTERFACE,
                                        "CallTerminated",
                                        NULL);
-                       if (TIZEN_MODEL_NAME_DA)
+                       if (TIZEN_DEVICE_TYPE_DA)
                                bt_hf_info->call_state = BT_HF_DA_CALL_STAT_CALL_TERMINATED;
                } else if (!bt_hf_info->is_dialing && value > 0) {
                        bt_hf_info->is_dialing = TRUE;
@@ -1254,7 +1254,7 @@ static void __bt_hf_agent_handle_ind_change(bt_hf_agent_info_t *bt_hf_info,
                                        BT_HF_AGENT_OBJECT_PATH,
                                        BT_HF_SERVICE_INTERFACE,
                                        "CallSetupIncoming", NULL);
-                       if (TIZEN_MODEL_NAME_DA)
+                       if (TIZEN_DEVICE_TYPE_DA)
                                bt_hf_info->call_state = BT_HF_DA_CALL_STAT_CALL_SETUP_INCOMING;
                        if (__bt_hf_agent_launch_call_app()  == FALSE)
                                DBG("call app launching failed");
@@ -1263,14 +1263,14 @@ static void __bt_hf_agent_handle_ind_change(bt_hf_agent_info_t *bt_hf_info,
                                        BT_HF_AGENT_OBJECT_PATH,
                                        BT_HF_SERVICE_INTERFACE,
                                        "CallSetupDialing", NULL);
-                       if (TIZEN_MODEL_NAME_DA)
+                       if (TIZEN_DEVICE_TYPE_DA)
                                bt_hf_info->call_state = BT_HF_DA_CALL_STAT_CALL_SETUP_DIALING;
                } else if (bt_hf_info->ciev_call_setup_status == 3) {
                        __bt_hf_agent_emit_signal(gdbus_conn,
                                        BT_HF_AGENT_OBJECT_PATH,
                                        BT_HF_SERVICE_INTERFACE,
                                        "CallSetupAlerting", NULL);
-                       if (TIZEN_MODEL_NAME_DA)
+                       if (TIZEN_DEVICE_TYPE_DA)
                                bt_hf_info->call_state = BT_HF_DA_CALL_STAT_CALL_SETUP_ALERTING;
                } else  if (bt_hf_info->ciev_call_status == 0 &&
                                                bt_hf_info->ciev_call_setup_status == 0) {
@@ -1278,7 +1278,7 @@ static void __bt_hf_agent_handle_ind_change(bt_hf_agent_info_t *bt_hf_info,
                                        BT_HF_AGENT_OBJECT_PATH,
                                        BT_HF_SERVICE_INTERFACE,
                                                "CallIdle", NULL);
-                       if (TIZEN_MODEL_NAME_DA)
+                       if (TIZEN_DEVICE_TYPE_DA)
                                bt_hf_info->call_state = BT_HF_DA_CALL_STAT_CALL_IDLE;
                }
        } else if (!strcmp(name, "\"callheld\"")) {
@@ -2828,7 +2828,7 @@ static gboolean __bt_hf_agent_sco_accept_cb(GIOChannel *chan, GIOCondition cond,
        g_io_channel_set_flags(sco_io, G_IO_FLAG_NONBLOCK, NULL);
        g_io_channel_set_buffered(sco_io, FALSE);
 
-       if (TIZEN_MODEL_NAME_DA) {
+       if (TIZEN_DEVICE_TYPE_DA) {
                bt_hf_info->call_state = BT_HF_DA_CALL_STAT_CALL_IDLE;
                bt_hf_info->is_first_audio_out = TRUE;
                bt_hf_info->is_first_audio_in = TRUE;
@@ -3048,7 +3048,7 @@ static gboolean __bt_establish_service_level_conn(bt_hf_agent_info_t *bt_hf_info
        guint feature;
 
 
-       if (TIZEN_MODEL_NAME_DA) {
+       if (TIZEN_DEVICE_TYPE_DA) {
                ret = __bt_hf_send_and_read(bt_hf_info, BT_HF_XSAT_DA, buf,
                                                sizeof(BT_HF_XSAT_DA) - 1);
                if (!ret) {
@@ -3057,7 +3057,7 @@ static gboolean __bt_establish_service_level_conn(bt_hf_agent_info_t *bt_hf_info
                }
        }
 
-       if (TIZEN_MODEL_NAME_DA)
+       if (TIZEN_DEVICE_TYPE_DA)
                feature = BT_HF_FEATURE_CLI_PRESENTATION |
                                BT_HF_FEATURE_REMOTE_VOLUME_CONTROL |
                                BT_HF_FEATURE_ESCO_S4;
@@ -3169,7 +3169,7 @@ static void __bt_establish_initialization(bt_hf_agent_info_t *bt_hf_info)
        else
                ERR("__bt_get_bia_cmd is failed");
 
-       if (!TIZEN_MODEL_NAME_DA) {
+       if (!TIZEN_DEVICE_TYPE_DA) {
                ret = __bt_hf_send_and_read(bt_hf_info, BT_HF_XSAT, buf,
                                                sizeof(BT_HF_XSAT) - 1);
                if (ret)
@@ -3372,20 +3372,6 @@ static gboolean __prepare_stream_info(void)
        sound_device_type_e selected_type = SOUND_DEVICE_BUILTIN_SPEAKER;
        sound_device_type_e type = SOUND_DEVICE_BUILTIN_SPEAKER;
 
-       if (TIZEN_MODEL_NAME_FHUB) {
-               char *processor = NULL;
-
-               system_info_get_platform_string("tizen.org/system/platform.processor", &processor);
-               if (processor) {
-                       if (!strcasecmp(processor, "SDP1601")) {
-                               DBG("set specific sound type");
-                               selected_type = SOUND_DEVICE_BUILTIN_RECEIVER;
-                               type = SOUND_DEVICE_BUILTIN_RECEIVER;
-                       }
-                       free(processor);
-               }
-       }
-
        if (g_stream_info_write_h) {
                ERR("there is already created one %p", g_stream_info_write_h);
                __unprepare_stream_info();
@@ -3465,7 +3451,7 @@ static gboolean __bt_hf_agent_connection(gint32 fd, const gchar *obj_path)
        __bt_convert_addr_type_to_rev_string(bt_hf_info.remote_addr,
                                                address.remote_bdaddr.b);
 
-       if (TIZEN_MODEL_NAME_DA)
+       if (TIZEN_DEVICE_TYPE_DA)
                __prepare_stream_info();
 
        g_idle_add(__bt_agent_request_service_level_conn, NULL);
@@ -3483,7 +3469,7 @@ static gboolean __bt_hf_agent_release(void)
        int bt_device_state = VCONFKEY_BT_DEVICE_NONE;
        GDBusConnection *conn;
 
-       if (TIZEN_MODEL_NAME_DA)
+       if (TIZEN_DEVICE_TYPE_DA)
                __unprepare_stream_info();
 
        if (clcc_timer) {
@@ -3583,7 +3569,7 @@ static int __bt_hf_register_profile(const char *uuid, uint16_t version,
        g_variant_builder_add(builder, "{sv}",
                        "features", g_variant_new("q", features));
 
-       if (TIZEN_MODEL_NAME_DA)
+       if (TIZEN_DEVICE_TYPE_DA)
                ret = g_dbus_proxy_call_sync(proxy, "RegisterProfile",
                                        g_variant_new("(osa{sv})", object,
                                                uuid, builder),
@@ -3633,7 +3619,7 @@ static void __bt_hf_agent_register(void)
        if (ret)
                ERR("Error in hf register");
 
-       if (TIZEN_MODEL_NAME_DA) {
+       if (TIZEN_DEVICE_TYPE_DA) {
                ret = __bt_hf_register_profile(PBAP_PCE_UUID, 0x0101,
                                        "Phone Book Access Client",
                                        BT_PBAP_CLIENT_OBJECT_PATH, 0);
@@ -4173,7 +4159,7 @@ static uint32_t __bt_hf_agent_get_hf_features(void)
 {
        uint32_t hf_features;
 
-       if (TIZEN_MODEL_NAME_DA)
+       if (TIZEN_DEVICE_TYPE_DA)
                hf_features = BT_HF_FEATURE_CLI_PRESENTATION |
                                BT_HF_FEATURE_REMOTE_VOLUME_CONTROL |
                                BT_HF_FEATURE_ESCO_S4;
@@ -4189,7 +4175,7 @@ static uint32_t __bt_hf_agent_get_hf_features(void)
                        hf_features = hf_features | BT_HF_FEATURE_CODEC_NEGOTIATION;
        }
 
-       if (TIZEN_MODEL_NAME_DA)
+       if (TIZEN_DEVICE_TYPE_DA)
                hf_ver = HFP_VERSION_1_7;
        else
                hf_ver = HFP_VERSION_1_6;
@@ -4209,7 +4195,7 @@ int main(void)
        g_type_init();
 #endif
        hf_features = __bt_hf_agent_get_hf_features();
-       if (TIZEN_MODEL_NAME_DA)
+       if (TIZEN_DEVICE_TYPE_DA)
                bt_hf_info.feature = (uint16_t) hf_features & 0xFFFF;
        else
                bt_hf_info.feature = (uint16_t) hf_features & 0x3F;
index dd39cb332b84aeaa82788238e51e0046e20c350b..5f06a0c49dbf8249286397489953e04a0d65f026 100644 (file)
@@ -96,11 +96,16 @@ typedef enum {
        _MODEL_TM2 = 0x2,
        _MODEL_TW1 = 0x4,
        _MODEL_TW2 = 0x8,
-       _MODEL_FHUB = 0x10,
-       _MODEL_DA = 0x20,
 } tizen_model_name_t;
 
+typedef enum {
+       _DEV_UNKNOWN = 0,
+       _DEV_COMMON = 0x1,
+       _DEV_DA = 0x2,
+} tizen_device_t;
+
 extern tizen_model_name_t model_name;
+static tizen_device_t device = _DEV_UNKNOWN;
 
 /* LCOV_EXCL_START */
 static inline tizen_model_name_t get_tizen_model_name()
@@ -124,24 +129,6 @@ static inline tizen_model_name_t get_tizen_model_name()
                model_name = _MODEL_TW1;
        else if (g_strcmp0(modelName, "TW2") == 0)
                model_name = _MODEL_TW2;
-       else if (!strncasecmp(modelName, "Family Hub", 10))
-               model_name = _MODEL_FHUB;
-       else if (!strcasecmp(modelName, "Robot Vacuum Cleaner") ||
-                       !strcasecmp(modelName, "Smart Dryer") ||
-                       !strcasecmp(modelName, "Smart Washer") ||
-                       !strcasecmp(modelName, "DDMS") ||
-                       !strcasecmp(modelName, "Smart Cooktop") ||
-                       !strcasecmp(modelName, "Smart Range") ||
-                       !strcasecmp(modelName, "Refrigerator") ||
-                       !strcasecmp(modelName, "Echo Heating System Controller") ||
-                       !strcasecmp(modelName, "Bespoke Washer") ||
-                       !strcasecmp(modelName, "Bespoke Dryer") ||
-                       !strcasecmp(modelName, "Appliance Emulator") ||
-                       !strcasecmp(modelName, "Smart Oven") ||
-                       !strcasecmp(modelName, "Smart AC") ||
-                       !strcasecmp(modelName, "AI Vision Refrigerator") ||
-                       !strncasecmp(modelName, "AI Home", 7))
-               model_name = _MODEL_DA;
        else
                model_name = _MODEL_UNKNOWN;
 
@@ -149,6 +136,39 @@ static inline tizen_model_name_t get_tizen_model_name()
 
        return model_name;
 }
+
+static inline tizen_device_t get_tizen_device_type(void)
+{
+       char *device_type = NULL;
+
+       if (__builtin_expect(device != _DEV_UNKNOWN, 1))
+               return device;
+
+       system_info_get_platform_string("http://tizen.org/system/device_type", &device_type);
+
+       if (device_type == NULL) {
+               device = _DEV_COMMON;
+               return device;
+       }
+
+       if (!strcasecmp(device_type, "Robot Vacuum") ||
+                       !strcasecmp(device_type, "System A/C") ||
+                       !strcasecmp(device_type, "Washer") ||
+                       !strcasecmp(device_type, "Dryer") ||
+                       !strcasecmp(device_type, "Cooktop") ||
+                       !strcasecmp(device_type, "Range") ||
+                       !strncasecmp(device_type, "Refrigerator", 12) ||
+                       !strcasecmp(device_type, "Appliance") ||
+                       !strcasecmp(device_type, "Oven"))
+               device = _DEV_DA;
+       else
+               device = _DEV_COMMON;
+
+       free(device_type);
+
+       return device;
+}
+
 /* LCOV_EXCL_STOP */
 
 #define TIZEN_PROFILE_WEARABLE (get_tizen_profile() == _PROFILE_WEARABLE)
@@ -160,7 +180,7 @@ static inline tizen_model_name_t get_tizen_model_name()
 #define TIZEN_MODEL_NAME_TM2 (get_tizen_model_name() == _MODEL_TM2)
 #define TIZEN_MODEL_NAME_TW1 (get_tizen_model_name() == _MODEL_TW1)
 #define TIZEN_MODEL_NAME_TW2 (get_tizen_model_name() == _MODEL_TW2)
-#define TIZEN_MODEL_NAME_FHUB (get_tizen_model_name() == _MODEL_FHUB)
-#define TIZEN_MODEL_NAME_DA (get_tizen_model_name() & (_MODEL_FHUB | _MODEL_DA))
+
+#define TIZEN_DEVICE_TYPE_DA (get_tizen_device_type() == _DEV_DA)
 
 #endif /* __DEF_BT_AGENT_PROFILE_H_ */