prev_selected_sample_format = sink->selected_sample_format;
sink->selected_sample_format = pa_parse_sample_format(sample_format);
- FILL_SAMPLE_SPEC_WITH_SELECTED(spec, sink);
- if (pa_sink_reconfigure(sink, &spec, false) == -1) {
- pa_log_error("failed to reconfigure");
- pa_dbus_send_error(conn, msg, DBUS_ERROR_FAILED, "%s", "org.tizen.multimedia.audio.Internal");
- sink->selected_sample_format = prev_selected_sample_format;
- return;
+ if (prev_selected_sample_format != sink->selected_sample_format) {
+ FILL_SAMPLE_SPEC_WITH_SELECTED(spec, sink);
+ pa_sink_reconfigure(sink, &spec, false);
+ if (sink->selected_sample_format != sink->sample_spec.format) {
+ pa_log_error("failed to reconfigure");
+ pa_dbus_send_error(conn, msg, DBUS_ERROR_FAILED, "%s", "org.tizen.multimedia.audio.Internal");
+ sink->selected_sample_format = prev_selected_sample_format;
+ return;
+ }
+ save_preference(dm, sink);
}
- save_preference(dm, sink);
-
pa_log_info("Set sample format(%s) of the device(id:%d) successfully", sample_format, device_id);
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);
prev_selected_sample_rate = sink->selected_sample_rate;
sink->selected_sample_rate = sample_rate;
- FILL_SAMPLE_SPEC_WITH_SELECTED(spec, sink);
- if (pa_sink_reconfigure(sink, &spec, false) == -1) {
- pa_log_error("failed to reconfigure");
- pa_dbus_send_error(conn, msg, DBUS_ERROR_FAILED, "%s", "org.tizen.multimedia.audio.Internal");
- sink->selected_sample_rate = prev_selected_sample_rate;
- return;
+ if (prev_selected_sample_rate != sink->selected_sample_rate) {
+ FILL_SAMPLE_SPEC_WITH_SELECTED(spec, sink);
+ pa_sink_reconfigure(sink, &spec, false);
+ if (sink->selected_sample_rate != sink->sample_spec.rate) {
+ pa_log_error("failed to reconfigure");
+ pa_dbus_send_error(conn, msg, DBUS_ERROR_FAILED, "%s", "org.tizen.multimedia.audio.Internal");
+ sink->selected_sample_rate = prev_selected_sample_rate;
+ return;
+ }
+ save_preference(dm, sink);
}
- save_preference(dm, sink);
-
pa_log_info("Set sample rate(%u) of the device(id:%d) successfully", sample_rate, device_id);
pa_assert_se(dbus_connection_send(conn, reply, NULL));
dbus_message_unref(reply);