get device type instead of model name to check DA devices 27/320627/1
authorSohyeon Choi <shss.choi@samsung.com>
Mon, 23 Dec 2024 04:13:45 +0000 (13:13 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Wed, 5 Mar 2025 05:23:20 +0000 (14:23 +0900)
Change-Id: I7a0f0da79165cc8efbef12ef0df0a2d473425adb
Signed-off-by: Sohyeon Choi <shss.choi@samsung.com>
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
plugins/policy.c
profile.h
profiles/audio/avdtp.c
profiles/audio/avrcp.c
profiles/audio/transport.c
src/adapter.c

index 9ab0341dc786c07815d14e7e860ccc0a76339461..07400700ce4d98a844cf498494c22cf55caea325 100755 (executable)
@@ -75,9 +75,8 @@ static const char *default_reconnect[] = {
                        A2DP_SINK_UUID, NULL };
 #endif
 #ifdef TIZEN_FEATURE_BLUEZ_MODIFY
-static const char *fhub_default_reconnect[] = {
-                       HSP_AG_UUID, HFP_AG_UUID, A2DP_SOURCE_UUID
-                       A2DP_SINK_UUID, NULL };
+static const char *da_default_reconnect[] = {
+                       HFP_AG_UUID, A2DP_SOURCE_UUID, NULL };
 #endif
 
 static char **reconnect_uuids = NULL;
@@ -922,8 +921,8 @@ static int policy_init(void)
        conf = btd_get_main_conf();
        if (!conf) {
 #ifdef TIZEN_FEATURE_BLUEZ_MODIFY
-               if (TIZEN_FEATURE_BLUEZ_FHUB)
-                       reconnect_uuids = g_strdupv((char **) fhub_default_reconnect);
+               if (TIZEN_FEATURE_BLUEZ_DA)
+                       reconnect_uuids = g_strdupv((char **) da_default_reconnect);
                else
 #endif
                        reconnect_uuids = g_strdupv((char **) default_reconnect);
@@ -944,8 +943,8 @@ static int policy_init(void)
        if (gerr) {
                g_clear_error(&gerr);
 #ifdef TIZEN_FEATURE_BLUEZ_MODIFY
-               if (TIZEN_FEATURE_BLUEZ_FHUB)
-                       reconnect_uuids = g_strdupv((char **) fhub_default_reconnect);
+               if (TIZEN_FEATURE_BLUEZ_DA)
+                       reconnect_uuids = g_strdupv((char **) da_default_reconnect);
                else
 #endif
                        reconnect_uuids = g_strdupv((char **) default_reconnect);
index 8bed87f67485df2f58f8aa5d8f947d2b57a25530..273bbbd6a4bcefb8d1fecad704a6233b89d8de52 100755 (executable)
--- a/profile.h
+++ b/profile.h
@@ -57,10 +57,14 @@ typedef enum {
        TIZEN_MODEL_TW3 = 0x20,
        TIZEN_MODEL_RPI3 = 0x40,
        TIZEN_MODEL_ROBOT = 0x80,
-       TIZEN_MODEL_FHUB = 0x100,
-       TIZEN_MODEL_DA = 0x200,
 } tizen_model_t;
 
+typedef enum {
+       TIZEN_DEVICE_UNKNOWN = 0,
+       TIZEN_DEVICE_COMMON = 0x1,
+       TIZEN_DEVICE_DA = 0x2,
+} tizen_device_t;
+
 typedef enum {
        TIZEN_CERTI_MODE_UNKNOWN = 0,
        TIZEN_CERTI_MODE_DISABLE = 0x1,
@@ -70,6 +74,7 @@ typedef enum {
 
 static tizen_profile_t profile = TIZEN_PROFILE_UNKNOWN;
 static tizen_model_t model = TIZEN_MODEL_UNKNOWN;
+static tizen_device_t device = TIZEN_DEVICE_UNKNOWN;
 static tizen_certifcation_mode_t certification_mode = TIZEN_CERTI_MODE_UNKNOWN;
 
 static inline int __get_profile_from_model_config_xml(const char *field, char **value)
@@ -219,24 +224,6 @@ static inline tizen_model_t _get_tizen_model(void)
                model = TIZEN_MODEL_RPI3;
        else if (!strcasecmp(model_name, "gems") || !strncasecmp(model_name, "ServingBot", 10))
                model = TIZEN_MODEL_ROBOT;
-       else if (!strncasecmp(model_name, "Family Hub", 10))
-               model = TIZEN_MODEL_FHUB;
-       else if (!strcasecmp(model_name, "Robot Vacuum Cleaner") ||
-                       !strcasecmp(model_name, "Smart Dryer") ||
-                       !strcasecmp(model_name, "Smart Washer") ||
-                       !strcasecmp(model_name, "DDMS") ||
-                       !strcasecmp(model_name, "Smart Cooktop") ||
-                       !strcasecmp(model_name, "Smart Range") ||
-                       !strcasecmp(model_name, "Refrigerator") ||
-                       !strcasecmp(model_name, "Echo Heating System Controller") ||
-                       !strcasecmp(model_name, "Bespoke Washer") ||
-                       !strcasecmp(model_name, "Bespoke Dryer") ||
-                       !strcasecmp(model_name, "Appliance Emulator") ||
-                       !strcasecmp(model_name, "Smart Oven") ||
-                       !strcasecmp(model_name, "Smart AC") ||
-                       !strcasecmp(model_name, "AI Vision Refrigerator") ||
-                       !strncasecmp(model_name, "AI Home", 7))
-               model = TIZEN_MODEL_DA;
        else
                model = TIZEN_MODEL_COMMON;
 
@@ -245,6 +232,41 @@ static inline tizen_model_t _get_tizen_model(void)
        return model;
 }
 
+static inline tizen_device_t get_tizen_device_type(void)
+{
+       char *device_type = NULL;
+
+       if (__builtin_expect(device != TIZEN_DEVICE_UNKNOWN, 1))
+               return device;
+
+       if (__get_profile_from_model_config_xml("tizen.org/system/device_type",
+                                                                       &device_type) < 0) {
+               device = TIZEN_DEVICE_COMMON;
+               return device;
+       }
+
+       if (device_type == NULL) {
+               device = TIZEN_DEVICE_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 = TIZEN_DEVICE_DA;
+       else
+               device = TIZEN_DEVICE_COMMON;
+
+       free(device_type);
+       return device;
+}
+
 static inline tizen_certifcation_mode_t _get_tizen_certification_mode(void)
 {
        if (__builtin_expect(certification_mode != TIZEN_CERTI_MODE_UNKNOWN, 1))
@@ -272,8 +294,7 @@ static inline tizen_certifcation_mode_t _get_tizen_certification_mode(void)
 #define TIZEN_FEATURE_BLUEZ_SPRD_PAGE_SCAN ((_get_tizen_model()) == TIZEN_MODEL_TM1)
 #define TIZEN_FEATURE_BLUEZ_SPEAKER_REFERENCE ((_get_tizen_model()) == TIZEN_MODEL_RPI3 && (_get_tizen_profile()) == TIZEN_PROFILE_COMMON)
 #define TIZEN_FEATURE_ROBOT_REFERENCE ((_get_tizen_model()) == TIZEN_MODEL_ROBOT)
-#define TIZEN_FEATURE_BLUEZ_FHUB ((_get_tizen_model()) == TIZEN_MODEL_FHUB)
-#define TIZEN_FEATURE_BLUEZ_DA ((_get_tizen_model()) == TIZEN_MODEL_FHUB || (_get_tizen_model()) == TIZEN_MODEL_DA)
+#define TIZEN_FEATURE_BLUEZ_DA (get_tizen_device_type() == TIZEN_DEVICE_DA)
 #define TIZEN_FEATURE_BLUEZ_STACK_CERTIFICATION (((_get_tizen_certification_mode()) & TIZEN_CERTI_MODE_STACK) != 0)
 #define TIZEN_FEATURE_BLUEZ_PROFILE_CERTIFICATION (((_get_tizen_certification_mode()) & TIZEN_CERTI_MODE_PROFILE) != 0)
 
index d1d02b77ee721e15ac5bae26319199da60b9afbc..64ba1fed29e17e8949e9550b56849ea0066e1955 100644 (file)
@@ -1415,7 +1415,7 @@ static void release_stream(struct avdtp_stream *stream, struct avdtp *session)
        struct avdtp_local_sep *sep = stream->lsep;
 
 #if defined(TIZEN_FEATURE_BLUEZ_MODIFY) && defined(TIZEN_FEATURE_BLUEZ_A2DP_MULTISTREAM)
-       if (!TIZEN_FEATURE_BLUEZ_FHUB) {
+       if (!TIZEN_FEATURE_BLUEZ_DA) {
                /* Connection lost */
                avdtp_remove_source_devce(session->device);
        }
@@ -2276,7 +2276,7 @@ static gboolean avdtp_start_cmd(struct avdtp *session, uint8_t transaction,
                avdtp_check_collision(session, AVDTP_START, stream);
 
 #if defined(TIZEN_FEATURE_BLUEZ_MODIFY) && defined(TIZEN_FEATURE_BLUEZ_A2DP_MULTISTREAM)
-               if (!TIZEN_FEATURE_BLUEZ_FHUB)
+               if (!TIZEN_FEATURE_BLUEZ_DA)
                        avdtp_add_source_device(session->device);
 #endif
 
@@ -2303,7 +2303,7 @@ static gboolean avdtp_close_cmd(struct avdtp *session, uint8_t transaction,
        uint8_t err;
 
 #if defined(TIZEN_FEATURE_BLUEZ_MODIFY) && defined(TIZEN_FEATURE_BLUEZ_A2DP_MULTISTREAM)
-       if (!TIZEN_FEATURE_BLUEZ_FHUB)
+       if (!TIZEN_FEATURE_BLUEZ_DA)
                avdtp_remove_source_devce(session->device);
 #endif
 
@@ -2384,7 +2384,7 @@ static gboolean avdtp_suspend_cmd(struct avdtp *session, uint8_t transaction,
 #if defined(TIZEN_FEATURE_BLUEZ_MODIFY) && defined(TIZEN_FEATURE_BLUEZ_A2DP_MULTISTREAM)
                if (sep->state != AVDTP_STATE_STREAMING) {
                        DBG("Not streaming state: %d", sep->state);
-                       if (!TIZEN_FEATURE_BLUEZ_FHUB) {
+                       if (!TIZEN_FEATURE_BLUEZ_DA) {
                                return avdtp_send(session, transaction, AVDTP_MSG_TYPE_ACCEPT,
                                                                        AVDTP_SUSPEND, NULL, 0);
                        } else {
index 2db3ec3ff5605a3e1b94c1b1cda1beef742022c3..7d55921150a83d50c63c27168928f46d7a9118ff 100644 (file)
 #ifdef TIZEN_FEATURE_BLUEZ_MODIFY
 #define AVRCP_CT_VERSION               0x0104
 #define AVRCP_TG_VERSION               0x0103
-#define FHUB_AVRCP_CT_VERSION          0x0103
+#define DA_AVRCP_CT_VERSION            0x0103
 #else
 #define AVRCP_CT_VERSION               0x0106
 #define AVRCP_TG_VERSION               0x0105
@@ -499,7 +499,7 @@ static sdp_record_t *avrcp_ct_record(bool browsing)
        /* Bluetooth Profile Descriptor List */
        sdp_uuid16_create(&profile[0].uuid, AV_REMOTE_PROFILE_ID);
 #ifdef TIZEN_FEATURE_BLUEZ_MODIFY
-       avrcp_ct_ver = TIZEN_FEATURE_BLUEZ_FHUB ? FHUB_AVRCP_CT_VERSION : AVRCP_CT_VERSION;
+       avrcp_ct_ver = TIZEN_FEATURE_BLUEZ_DA ? DA_AVRCP_CT_VERSION : AVRCP_CT_VERSION;
        profile[0].version = avrcp_ct_ver;
        adapter_avrcp_ct_ver = avrcp_ct_ver;
 #else
@@ -544,7 +544,7 @@ static sdp_record_t *avrcp_tg_record(bool browsing)
        uint16_t avctp_ver = 0x0104;
        uint16_t feat = 0;
 #ifdef ENABLE_AVRCP_CATEGORY1
-       if (TIZEN_FEATURE_BLUEZ_FHUB)
+       if (TIZEN_FEATURE_BLUEZ_DA)
                feat = AVRCP_FEATURE_CATEGORY_1;
        else {
                feat = AVRCP_FEATURE_CATEGORY_1 |
@@ -4226,7 +4226,7 @@ static void avrcp_status_changed(struct avrcp *session,
        strval = status_to_string(value);
 
 #if defined(TIZEN_FEATURE_BLUEZ_MODIFY) && defined(TIZEN_FEATURE_BLUEZ_A2DP_MULTISTREAM)
-       if (!TIZEN_FEATURE_BLUEZ_FHUB) {
+       if (!TIZEN_FEATURE_BLUEZ_DA) {
                DBG("AVRCP status changed to : %s", strval);
 
                if (value == AVRCP_PLAY_STATUS_PAUSED)
@@ -4242,7 +4242,7 @@ static void avrcp_status_changed(struct avrcp *session,
        media_player_set_status(mp, strval);
        avrcp_get_play_status(session);
 
-       if (TIZEN_FEATURE_BLUEZ_FHUB)
+       if (TIZEN_FEATURE_BLUEZ_DA)
                avrcp_get_element_attributes(session);
 
 }
index 8b4ae98f847a4a1060179d995042876bc85a6bab..a0abc32123e2db12e634858623572e51ffdf4a3d 100644 (file)
@@ -1072,7 +1072,7 @@ static void set_volume(const GDBusPropertyTable *property,
        uint16_t arg;
        int err;
 
-       if (TIZEN_FEATURE_BLUEZ_FHUB) {
+       if (TIZEN_FEATURE_BLUEZ_DA) {
                error("This function is not supported in DA product");
                g_dbus_pending_property_error(id, ERROR_INTERFACE ".NotSupported",
                                "Operation is not supported");
index 5255633b98ebc34b7f2d4709a03bf6590b8005e9..cf9fe3500fa57c4aafe76f0d2d46fecbf90b26c8 100644 (file)
@@ -11988,13 +11988,8 @@ static void load_config(struct btd_adapter *adapter)
        adapter->stored_discoverable = g_key_file_get_boolean(key_file,
                                        "General", "Discoverable", &gerr);
        if (gerr) {
-#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
-               if (TIZEN_FEATURE_BLUEZ_FHUB) {
-                       DBG("Default Discoverable mode is TRUE");
-                       adapter->stored_discoverable = true;
-               } else
-#endif
-                       adapter->stored_discoverable = false;
+               DBG("Default stored_discoverable is false");
+               adapter->stored_discoverable = false;
                g_error_free(gerr);
                gerr = NULL;
        }