From 1d8966f2b253d9c4187441b26f9a58ea882db558 Mon Sep 17 00:00:00 2001 From: Ayush Garg Date: Thu, 29 Sep 2022 11:39:19 +0530 Subject: [PATCH] fhub: Add new profile for Family Hub Change-Id: Ibcb5f1803f74c3125f361948e854c110b9503a60 Signed-off-by: Ayush Garg --- include/bluetooth_private.h | 16 ++++++++++++++++ src/bluetooth-common.c | 25 +++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/include/bluetooth_private.h b/include/bluetooth_private.h index eb42b9b..d1b07cc 100644 --- a/include/bluetooth_private.h +++ b/include/bluetooth_private.h @@ -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 diff --git a/src/bluetooth-common.c b/src/bluetooth-common.c index 482f6e1..a420351 100644 --- a/src/bluetooth-common.c +++ b/src/bluetooth-common.c @@ -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; +} -- 2.7.4