uint32_t codec;
struct ag_codec *data = NULL;;
- if (hs->codec_info.remote_codecs & BT_MSBC_CODEC_MASK)
- codec = BT_MSBC_CODEC_ID;
- else
+ if (TIZEN_MODEL_NAME_TM1) {
codec = BT_CVSD_CODEC_ID;
+ } else {
+ if (hs->codec_info.remote_codecs & BT_MSBC_CODEC_MASK)
+ codec = BT_MSBC_CODEC_ID;
+ else
+ codec = BT_CVSD_CODEC_ID;
+ }
if (wbs_opts.wbs_enable == FALSE)
codec = BT_CVSD_CODEC_ID;
static uint32_t __bt_ag_agent_get_ag_features(void)
{
- uint32_t ag_features = BT_AG_FEATURE_EC_AND_NR |
+ uint32_t ag_features;
+
+ if (TIZEN_MODEL_NAME_TM1) {
+ ag_features = BT_AG_FEATURE_EC_AND_NR |
+ BT_AG_FEATURE_REJECT_CALL |
+ BT_AG_FEATURE_ENHANCED_CALL_STATUS |
+ BT_AG_FEATURE_THREE_WAY_CALL |
+ BT_AG_FEATURE_EXTENDED_ERROR_RESULT_CODES;
+ } else {
+ ag_features = BT_AG_FEATURE_EC_AND_NR |
BT_AG_FEATURE_REJECT_CALL |
BT_AG_FEATURE_ENHANCED_CALL_STATUS |
BT_AG_FEATURE_THREE_WAY_CALL |
BT_AG_FEATURE_VOICE_RECOGNITION |
BT_AG_FEATURE_EXTENDED_ERROR_RESULT_CODES;
+ }
wbs_en = TRUE;
#if defined(TIZEN_FEATURE_BT_HFP_AG)
int i;
uint32_t ag_features;
struct sigaction sa;
- pthread_t thread_id;
+ pthread_t thread_id = 0;
INFO_C("### Starting Bluetooth AG agent");
#include "bluetooth-agent-profile.h"
tizen_profile_t profile = _PROFILE_UNKNOWN;
+tizen_model_name_t model_name = _MODEL_UNKNOWN;
#include <libintl.h>
#include <stdlib.h>
#include <system_info.h>
+#include <gio/gio.h>
typedef enum {
_PROFILE_UNKNOWN = 0,
return profile;
}
+typedef enum {
+ _MODEL_UNKNOWN = 0,
+ _MODEL_TM1 = 0x1,
+ _MODEL_TM2 = 0x2,
+ _MODEL_TW1 = 0x4,
+ _MODEL_TW2 = 0x8,
+} tizen_model_name_t;
+
+extern tizen_model_name_t model_name;
+
+static inline tizen_model_name_t get_tizen_model_name()
+{
+ char *modelName = NULL;
+
+ if (__builtin_expect(model_name != _MODEL_UNKNOWN, 1))
+ return profile;
+
+ system_info_get_platform_string("http://tizen.org/system/model_name", &modelName);
+
+ /* To pass the checking of g_ir */
+ if (!modelName)
+ return _MODEL_UNKNOWN;
+
+ if (g_strcmp0(modelName, "TM1") == 0) {
+ model_name = _MODEL_TM1;
+ } else if (g_strcmp0(modelName, "TM2") == 0) {
+ model_name = _MODEL_TM2;
+ } else if (g_strcmp0(modelName, "TW1") == 0) {
+ model_name = _MODEL_TW1;
+ } else if (g_strcmp0(modelName, "TW2") == 0) {
+ model_name = _MODEL_TW2;
+ } else {
+ model_name = _MODEL_UNKNOWN;
+ }
+
+ free(modelName);
+
+ return model_name;
+}
+
#define TIZEN_PROFILE_WEARABLE (get_tizen_profile() == _PROFILE_WEARABLE)
#define TIZEN_PROFILE_IVI (get_tizen_profile() == _PROFILE_IVI)
#define TIZEN_PROFILE_TV (get_tizen_profile() == _PROFILE_TV)
#define TIZEN_PROFILE_MOBILE (get_tizen_profile() == _PROFILE_MOBILE)
+#define TIZEN_MODEL_NAME_TM1 (get_tizen_model_name() == _MODEL_TM1)
+#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)
+
#endif /* __DEF_BT_AGENT_PROFILE_H_ */