return -1;
}
handle_device_status_changed(dm, DEVICE_TYPE_BT_SCO, name, dbus_message_get_path(s), detected);
-
+ pa_xfree(name);
} else if (pa_safe_streq(property_name, "Playing")) {
pa_tz_device *device;
pa_log_info("SCO Playing : %d", value);
DBusMessage *msg, *reply;
DBusMessageIter reply_iter, variant_iter;
DBusError err;
+ const char *_name;
pa_assert(conn);
pa_assert(device_path);
DBUS_TYPE_INVALID));
dbus_error_init(&err);
- if (!(reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, &err))) {
+
+ reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_TIMEOUT_USE_DEFAULT, &err);
+ dbus_message_unref(msg);
+ if (!reply) {
pa_log_error("Failed to method call %s.%s, %s", DBUS_INTERFACE_BLUEZ_DEVICE, "Get", err.message);
dbus_error_free(&err);
return -1;
}
- dbus_message_iter_init(reply, &reply_iter);
+ dbus_message_iter_init(reply, &reply_iter);
if (dbus_message_iter_get_arg_type(&reply_iter) != DBUS_TYPE_VARIANT) {
pa_log_error("Cannot get reply argument");
return -1;
}
- dbus_message_iter_recurse(&reply_iter, &variant_iter);
+ dbus_message_iter_recurse(&reply_iter, &variant_iter);
if (dbus_message_iter_get_arg_type(&variant_iter) == DBUS_TYPE_STRING) {
- dbus_message_iter_get_basic(&variant_iter, name);
+ dbus_message_iter_get_basic(&variant_iter, &_name);
+ *name = pa_xstrdup(_name);
}
dbus_message_unref(reply);
void send_device_connection_changed_signal(uint32_t event_id, pa_tz_device *device, bool connected, pa_device_manager *dm) {
DBusMessage *signal_msg;
DBusMessageIter msg_iter;
- dbus_bool_t _connected = connected;
+ dbus_bool_t _connected = (dbus_bool_t)connected;
pa_assert(device);
pa_assert(dm);
const char delimiter[] = ";";
char *token, *ptr = NULL;
char key[32] = "";
+ char *_parameters = NULL;
pa_assert(parameters);
pa_assert(call_type);
pa_log_info("parameters[%s]", parameters);
- /*Reset the call parameters*/
+ _parameters = pa_xstrdup(parameters);
+ if (!_parameters) {
+ pa_log_error("string duplication error!");
+ return -1;
+ }
+
+ /* Reset the call parameters */
memset(call_type, 0, MAX_CALL_PARAM_SIZE);
memset(call_domain, 0, MAX_CALL_PARAM_SIZE);
memset(network_band, 0, MAX_CALL_PARAM_SIZE);
- if (parameters) {
- token = strtok_r((char *)parameters, delimiter, &ptr);
- while (token) {
- char *delimiter_ptr = NULL;
- char *value = NULL;
-
- delimiter_ptr = strstr(token, "=");
- if (!delimiter_ptr) {
- token = strtok_r(NULL, delimiter, &ptr);
- continue;
- }
- strncpy(key, token, delimiter_ptr - token);
- value = delimiter_ptr + 1;
- pa_log_debug("key(%s), value(%s)", key, value);
- if (!strncmp(key, "call-type", strlen("call-type")))
- pa_strlcpy(call_type, value, MAX_CALL_PARAM_SIZE);
- else if (!strncmp(key, "call-domain", strlen("call-domain")))
- pa_strlcpy(call_domain, value, MAX_CALL_PARAM_SIZE);
- else if (!strncmp(key, "network-band", strlen("network-band")))
- pa_strlcpy(network_band, value, MAX_CALL_PARAM_SIZE);
- else
- pa_log_warn("not supported key(%s)", key);
+ token = strtok_r(_parameters, delimiter, &ptr);
+ while (token) {
+ char *delimiter_ptr = NULL;
+ char *value = NULL;
+ delimiter_ptr = strstr(token, "=");
+ if (!delimiter_ptr) {
token = strtok_r(NULL, delimiter, &ptr);
- memset(key, 0, sizeof(key));
+ continue;
}
- pa_log_info("call-type[%s], call-domain[%s], network-band[%s]", call_type, call_domain, network_band);
+ strncpy(key, token, delimiter_ptr - token);
+ value = delimiter_ptr + 1;
+ pa_log_debug("key(%s), value(%s)", key, value);
+ if (!strncmp(key, "call-type", strlen("call-type")))
+ pa_strlcpy(call_type, value, MAX_CALL_PARAM_SIZE);
+ else if (!strncmp(key, "call-domain", strlen("call-domain")))
+ pa_strlcpy(call_domain, value, MAX_CALL_PARAM_SIZE);
+ else if (!strncmp(key, "network-band", strlen("network-band")))
+ pa_strlcpy(network_band, value, MAX_CALL_PARAM_SIZE);
+ else
+ pa_log_warn("not supported key(%s)", key);
+
+ token = strtok_r(NULL, delimiter, &ptr);
+ memset(key, 0, sizeof(key));
}
+ pa_log_info("call-type[%s], call-domain[%s], network-band[%s]", call_type, call_domain, network_band);
+ pa_xfree(_parameters);
return 0;
}
static void handle_get_pid_of_latest_stream(DBusConnection *conn, DBusMessage *msg, void *userdata) {
pa_stream_manager *m = (pa_stream_manager *)userdata;
const char *direction;
- const char **types;
+ char **types;
int length;
stream_type_t stream_type = STREAM_SINK_INPUT;
uint32_t pid = 0;
goto finish;
}
- if (!find_the_lastest_stream(m, stream_type, types, length, &pid))
+ if (!find_the_lastest_stream(m, stream_type, (const char **)types, length, &pid))
ret = RET_MSG_ERROR_NO_STREAM;
finish:
DBUS_TYPE_INVALID));
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);
+
+ dbus_free_string_array(types);
}
static void handle_activate_ducking(DBusConnection *conn, DBusMessage *msg, void *userdata) {
pa_assert_se(dbus_message_append_args(msg, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID));
dbus_error_init(&err);
- if (!(reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, &err))) {
+
+ reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_TIMEOUT_USE_DEFAULT, &err);
+ dbus_message_unref(msg);
+ if (!reply) {
pa_log_error("Failed to method call : %s", err.message);
dbus_error_free(&err);
return -1;
}
dbus_message_unref(reply);
-
pa_log_info("success");
return 0;
const char *name, const char *description) {
DBusMessage *signal_msg;
DBusMessageIter msg_iter;
- dbus_bool_t c = (dbus_bool_t)connected;
+ dbus_bool_t _connected = (dbus_bool_t)connected;
pa_assert(conn);
dbus_message_iter_append_basic(&msg_iter, DBUS_TYPE_INT32, &type);
dbus_message_iter_append_basic(&msg_iter, DBUS_TYPE_UINT32, &index);
- dbus_message_iter_append_basic(&msg_iter, DBUS_TYPE_BOOLEAN, &c);
+ dbus_message_iter_append_basic(&msg_iter, DBUS_TYPE_BOOLEAN, &_connected);
dbus_message_iter_append_basic(&msg_iter, DBUS_TYPE_STRING, &name);
dbus_message_iter_append_basic(&msg_iter, DBUS_TYPE_STRING, &description);
DBusMessage *msg, *reply;
DBusError err;
const char *method = "SetVoiceDial";
+ dbus_bool_t _enable = (dbus_bool_t)enable;
pa_assert(conn);
return -1;
}
+ pa_assert_se(dbus_message_append_args(msg, DBUS_TYPE_BOOLEAN, &_enable, DBUS_TYPE_INVALID));
+
dbus_error_init(&err);
- pa_assert_se(dbus_message_append_args(msg, DBUS_TYPE_BOOLEAN, &enable, DBUS_TYPE_INVALID));
- if (!(reply = dbus_connection_send_with_reply_and_block(pa_dbus_connection_get(conn), msg, -1, &err))) {
+ reply = dbus_connection_send_with_reply_and_block(pa_dbus_connection_get(conn), msg, DBUS_TIMEOUT_USE_DEFAULT, &err);
+ dbus_message_unref(msg);
+ if (!reply) {
pa_log_error("Failed to method call %s.%s, %s", DBUS_INTERFACE_HFP_AGENT, method, err.message);
dbus_error_free(&err);
return -1;
}
dbus_error_init(&err);
- if (!(reply = dbus_connection_send_with_reply_and_block(pa_dbus_connection_get(conn), msg, -1, &err))) {
+ reply = dbus_connection_send_with_reply_and_block(pa_dbus_connection_get(conn), msg, DBUS_TIMEOUT_USE_DEFAULT, &err);
+ dbus_message_unref(msg);
+ if (!reply) {
pa_log_error("Failed to method call %s.%s, %s", DBUS_INTERFACE_HFP_AGENT, method, err.message);
dbus_error_free(&err);
return -1;
}
dbus_error_init(&err);
- if (!(reply = dbus_connection_send_with_reply_and_block(pa_dbus_connection_get(conn), msg, -1, &err))) {
+ reply = dbus_connection_send_with_reply_and_block(pa_dbus_connection_get(conn), msg, DBUS_TIMEOUT_USE_DEFAULT, &err);
+ dbus_message_unref(msg);
+ if (!reply) {
pa_log_error("Failed to method call %s.%s, %s", DBUS_INTERFACE_HFP_AGENT, "GetProperties", err.message);
dbus_error_free(&err);
return -1;
if (dbus_message_iter_get_arg_type(&dict_entry_val) != DBUS_TYPE_BOOLEAN)
continue;
dbus_message_iter_get_basic(&dict_entry_val, &nrec);
- pa_log_debug("nrec= [%d]", nrec);
+ pa_log_debug("nrec = [%d]", nrec);
*is_nrec = nrec;
}