g_variant_new("(i)", sco_audio_connected));
} else if (g_strcmp0(method_name, "IsHfConnected") == 0) {
DBG("Going to call IsHfConnected");
- INFO("is_hf_connected : %s", is_hf_connected ? "Connected":"Disconnected");
+ INFO("is_hf_connected : %s", is_hf_connected ? "Connected" : "Disconnected");
g_dbus_method_invocation_return_value(context,
g_variant_new("(b)", is_hf_connected));
conn = __bt_hf_get_gdbus_connection();
if (!conn) {
ERR("Unable to get connection");
+ g_free(path);
return FALSE;
}
&method_table,
NULL, NULL, &error);
if (object_id == 0) {
- ERR("Failed to register: %s", error->message);
- g_error_free(error);
+ if (error != NULL) {
+ ERR("Failed to register: %s", error->message);
+ g_error_free(error);
+ }
g_dbus_node_info_unref(node_info);
g_free(path);
return FALSE;
/* In the case of ATD, prev_cmd will be always ATD, because we will not
* allow further commands. For safer side again set prev_cmd as ATD */
- strcpy(prev_cmd, "ATD");
+ strncpy(prev_cmd, "ATD\0", BT_HF_CMD_BUF_SIZE - 1);
}
hf_handle_rx_at_cmd(&bt_hf_info, BT_HF_ERROR_RESP);
}
if ((ccwa = strstr(buf, "\r\n+CCWA"))) {
- snprintf(fmt_str, sizeof(fmt_str), "\r\n+CCWA: \"%%%ds", sizeof(number) - 1);
+ snprintf(fmt_str, sizeof(fmt_str), "\r\n+CCWA: \"%%%ds",
+ (int)(sizeof(number) - 1));
if (sscanf(ccwa, fmt_str, number) == 1) {
sep = strchr(number, '"');
sep[0] = '\0';
return 0;
}
-static GSList *__bt_hf_prepare_call_list(const char *buf) {
+static GSList *__bt_hf_prepare_call_list(const char *buf)
+{
GSList *call_list = NULL;
char *str = NULL;
char *ptr = NULL;
DBG("++++++++ __bt_hf_agent_handler_ciev +++++++++");
- snprintf(fmt_str, sizeof(fmt_str), "\r\n+CIEV:%%%ds\r\n", sizeof(indicator) - 1);
+ snprintf(fmt_str, sizeof(fmt_str), "\r\n+CIEV:%%%ds\r\n",
+ (int)(sizeof(indicator) - 1));
if (sscanf(buf, fmt_str, indicator) == 1) {
sep = strchr(indicator, ',');
sep[0] = '\0';
char fmt_str[BT_HF_CMD_BUF_SIZE];
DBG("+++++++++ __bt_hf_agent_handler_xsat +++++++++");
- snprintf(fmt_str, sizeof(fmt_str), "\r\n+XSAT:%%d,%%%ds\r\n", sizeof(msg) - 1);
+ snprintf(fmt_str, sizeof(fmt_str), "\r\n+XSAT:%%d,%%%ds\r\n",
+ (int)(sizeof(msg) - 1));
if (sscanf(buf, fmt_str, &app_id, msg)) {
if (app_id == 2 && strstr(msg, "READTXPOWER")) {
char cmd_buf[BT_HF_CMD_BUF_SIZE * 2] = {0, };
void _bt_convert_addr_string_to_type_rev(unsigned char *addr,
const char *address)
{
- int i;
- char *ptr = NULL;
+ int i;
+ char *ptr = NULL;
ret_if(address == NULL);
ret_if(addr == NULL);
- for (i = 0; i < 6; i++) {
- addr[5 - i] = strtol(address, &ptr, 16);
- if (ptr[0] != '\0') {
- if (ptr[0] != ':')
- return;
+ for (i = 0; i < 6; i++) {
+ addr[5 - i] = strtol(address, &ptr, 16);
+ if (ptr[0] != '\0') {
+ if (ptr[0] != ':')
+ return;
- address = ptr + 1;
- }
- }
+ address = ptr + 1;
+ }
+ }
}
static gboolean __bt_hf_agent_sco_accept(bt_hf_agent_info_t *bt_hf_info)
BT_HF_FEATURE_CLI_PRESENTATION |
BT_HF_FEATURE_VOICE_RECOGNITION |
BT_HF_FEATURE_REMOTE_VOLUME_CONTROL |
- BT_HF_FEATURE_ENHANCED_CALL_STATUS |
- BT_HF_FEATURE_CODEC_NEGOTIATION;
+ BT_HF_FEATURE_ENHANCED_CALL_STATUS;
+
+#ifdef TIZEN_WEARABLE
+ feature = feature | BT_HF_FEATURE_CODEC_NEGOTIATION;
+#endif
snprintf(cmd_buf, sizeof(cmd_buf), BT_HF_FEATURES, feature);
ret = __bt_hf_send_and_read(bt_hf_info, cmd_buf, buf,
strlen(cmd_buf));
- if (!ret )
+ if (!ret)
return FALSE;
buf_ptr = strstr(buf, "\r\n+BRSF:");
return FALSE;
INFO("Gateway supported features are 0x%X", bt_hf_info->ag_features);
+#ifdef TIZEN_WEARABLE
if (bt_hf_info->ag_features & BT_AG_FEATURE_CODEC_NEGOTIATION) {
ret = _hf_agent_codec_setup(bt_hf_info->remote_addr, BT_HF_CODEC_ID_MSBC);
if (ret != BT_HF_AGENT_ERROR_NONE)
ret = __bt_hf_send_available_codec(bt_hf_info, 0);
if (!ret)
return FALSE;
- } else {
+ } else
+#endif
+ {
/* Default codec is NB */
ret = _hf_agent_codec_setup(bt_hf_info->remote_addr, BT_HF_CODEC_ID_CVSD);
if (ret != BT_HF_AGENT_ERROR_NONE)
static uint32_t __bt_hf_agent_get_hf_features(void)
{
-
uint32_t hf_features = BT_HF_FEATURE_EC_ANDOR_NR |
BT_HF_FEATURE_CALL_WAITING_AND_3WAY |
BT_HF_FEATURE_CLI_PRESENTATION |
BT_HF_FEATURE_ENHANCED_CALL_STATUS |
BT_HF_FEATURE_CODEC_NEGOTIATION;
+#ifdef TIZEN_WEARABLE
+ hf_features = hf_features | BT_HF_FEATURE_CODEC_NEGOTIATION;
+#endif
+
hf_ver = HFP_VERSION_1_6;
return hf_features;
int main(void)
{
struct sigaction sa;
- const char *pkg_name = "org.tizen.hf_agent";
uint32_t hf_features;
INFO("Starting Bluetooth HF agent");
- g_type_init();
-
hf_features = __bt_hf_agent_get_hf_features();
bt_hf_info.feature = (uint16_t) hf_features & 0x3F;