fhub: Add new profile for Family Hub 70/282270/1
authorAyush Garg <ayush.garg@samsung.com>
Thu, 29 Sep 2022 06:09:19 +0000 (11:39 +0530)
committerAyush Garg <ayush.garg@samsung.com>
Thu, 29 Sep 2022 06:09:19 +0000 (11:39 +0530)
Change-Id: Ibcb5f1803f74c3125f361948e854c110b9503a60
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
include/bluetooth_private.h
src/bluetooth-common.c

index eb42b9b..d1b07cc 100644 (file)
@@ -1298,13 +1298,27 @@ typedef enum {
        _PROFILE_IOT = 0x10,
        _PROFILE_COMMON = 0x20,
 } tizen_profile_t;
+
+typedef enum {
+       _MODEL_UNKNOWN = 0,
+       _MODEL_COMMON = 0x1,
+       _MODEL_FHUB = 0x2,
+} tizen_model_t;
+
 extern tizen_profile_t _get_tizen_profile();
 extern tizen_profile_t profile;
 
+extern tizen_model_t _get_tizen_model();
+extern tizen_model_t model;
+
 #define TIZEN_PROFILE_(x) (((__builtin_expect(profile != _PROFILE_UNKNOWN, 1)) ? \
                                        (profile) : _get_tizen_profile()) \
                                & (x))
 
+#define TIZEN_MODEL_(x) (((__builtin_expect(model != _MODEL_UNKNOWN, 1)) ? \
+                                       (model) : _get_tizen_model()) \
+                               & (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)
@@ -1315,6 +1329,8 @@ extern tizen_profile_t profile;
 
 #define TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT                TIZEN_PROFILE_MOBILE
 
+#define TIZEN_FEATURE_FHUB_REFERENCE TIZEN_PROFILE_(_MODEL_FHUB)
+
 #ifdef __cplusplus
 }
 #endif
index 482f6e1..a420351 100644 (file)
@@ -4684,3 +4684,28 @@ tizen_profile_t _get_tizen_profile()
 
        return profile;
 }
+
+tizen_model_t model = _MODEL_UNKNOWN;
+tizen_model_t _get_tizen_model(void)
+{
+       char *model_name = NULL;
+
+       if (__builtin_expect(model != _MODEL_UNKNOWN, 1))
+               return model;
+
+       system_info_get_platform_string("http://tizen.org/system/model_name", &model_name);
+
+       if (model_name == NULL) {
+               model = _MODEL_COMMON;
+               return model;
+       }
+
+       if (!strncasecmp(model_name, "Family Hub", 10))
+               model = _MODEL_FHUB;
+       else
+               model = _MODEL_COMMON;
+
+       free(model_name);
+
+       return model;
+}