Name: pulseaudio-modules-tizen
Summary: Pulseaudio modules for Tizen
-Version: 15.0.29
+Version: 15.0.30
Release: 0
Group: Multimedia/Audio
License: LGPL-2.1+
" <interface name=\"" DBUS_INTERFACE_DEVICE_MANAGER "\">\n" \
" <method name=\"GetConnectedDeviceList\">\n" \
" <arg name=\"mask_flags\" direction=\"in\" type=\"i\"/>\n" \
- " <arg name=\"ConnectedDeviceList\" direction=\"out\" type=\"a(isiisii)\"/>\n" \
+ " <arg name=\"ConnectedDeviceList\" direction=\"out\" type=\"a(isiisiibiii)\"/>\n" \
" </method>\n" \
" <method name=\"GetDeviceById\">\n" \
" <arg name=\"device_id\" direction=\"in\" type=\"i\"/>\n" \
dbus_bool_t is_running;
pa_tz_device *device;
DBusMessageIter device_iter;
+ const pa_sample_spec *spec = NULL;
+ dbus_int32_t format, samplerate, channels;
pa_assert(array_iter);
direction = pa_tz_device_get_direction(device);
type = pa_tz_device_get_type(device);
name = pa_tz_device_get_name(device);
- vendor_id = (dbus_int32_t) pa_tz_device_get_vendor_id(device);
- product_id = (dbus_int32_t) pa_tz_device_get_product_id(device);
- product_id = (dbus_int32_t) pa_tz_device_get_product_id(device);
- is_running = (dbus_bool_t) pa_tz_device_is_running(device);
+ vendor_id = (dbus_int32_t)pa_tz_device_get_vendor_id(device);
+ product_id = (dbus_int32_t)pa_tz_device_get_product_id(device);
+ product_id = (dbus_int32_t)pa_tz_device_get_product_id(device);
+ is_running = (dbus_bool_t)pa_tz_device_is_running(device);
+
+ spec = pa_tz_device_get_sample_spec(device);
+ format = (dbus_int32_t)spec->format;
+ samplerate = (dbus_int32_t)spec->rate;
+ channels = (dbus_int32_t)spec->channels;
+
if (device_is_match_with_mask(device, mask)) {
simple_device_dump(PA_LOG_INFO, "[MATCH]", device_id, type, name, direction, state);
pa_assert_se(dbus_message_iter_open_container(array_iter, DBUS_TYPE_STRUCT, NULL, &device_iter));
dbus_message_iter_append_basic(&device_iter, DBUS_TYPE_INT32, &vendor_id);
dbus_message_iter_append_basic(&device_iter, DBUS_TYPE_INT32, &product_id);
dbus_message_iter_append_basic(&device_iter, DBUS_TYPE_BOOLEAN, &is_running);
+ dbus_message_iter_append_basic(&device_iter, DBUS_TYPE_INT32, &format);
+ dbus_message_iter_append_basic(&device_iter, DBUS_TYPE_INT32, &samplerate);
+ dbus_message_iter_append_basic(&device_iter, DBUS_TYPE_INT32, &channels);
+
pa_assert_se(dbus_message_iter_close_container(array_iter, &device_iter));
} else {
simple_device_dump(PA_LOG_INFO, "[UNMATCH]", device_id, type, name, direction, state);
pa_log_info("Get connected device list (mask : %d)", mask);
dbus_message_iter_init_append(reply, &msg_iter);
- pa_assert_se(dbus_message_iter_open_container(&msg_iter, DBUS_TYPE_ARRAY, "(isiisiib)", &array_iter));
+ pa_assert_se(dbus_message_iter_open_container(&msg_iter, DBUS_TYPE_ARRAY, "(isiisiibiii)", &array_iter));
#ifndef __TIZEN_TV_EXTERNAL_BT_SCO__
array_iter_append(&array_iter, dm->device_list, mask);
pa_sink *sink;
pa_source *source;
+ char spec_str[PA_SAMPLE_SPEC_SNPRINT_MAX] = { 0, };
+
pa_assert(data);
if (_check_valid_device_new_data(data) < 0) {
return NULL;
}
- device = pa_xmalloc(sizeof(pa_tz_device));
+ device = pa_xmalloc0(sizeof(pa_tz_device));
+
device->list = data->list;
device->comm = data->comm;
device->dbus_conn = data->dbus_conn;
device->id = device_id_max_g++;
device->type = pa_xstrdup(data->type);
- if (data->name)
- device->name = pa_xstrdup(data->name);
- else
- device->name = pa_xstrdup(data->type);
+ device->name = pa_xstrdup(data->name ? data->name : data->type);
device->system_id = pa_xstrdup(data->system_id);
device->vendor_id = data->vendor_id;
device->product_id = data->product_id;
- pa_log_info("New device type(%s) id(%u) name(%s) system_id(%s) vendor_id(%04x) product_id(%04x)",
- device->type, device->id, device->name, pa_strempty(device->system_id),
- device->vendor_id, device->product_id);
-
device->playback_devices = data->playback_pcms;
device->capture_devices = data->capture_pcms;
device->direction = data->direction;
device->is_running = false;
device->specified_stream_role = pa_xstrdup("none");
- if ((sink = device_get_sink(device, NULL)))
+ if ((sink = device_get_sink(device, NULL))) {
sink->device_item = device;
- if ((source = device_get_source(device, NULL)))
+ device->sample_spec = &sink->sample_spec;
+ }
+ if ((source = device_get_source(device, NULL))) {
source->device_item = device;
+ device->sample_spec = &source->sample_spec;
+ }
+ pa_sample_spec_snprint(spec_str, sizeof(spec_str), device->sample_spec);
+
+ pa_log_info("New device: type(%s) spec(%s) id(%u) name(%s) system_id(%s) vendor_id(%04x) product_id(%04x)",
+ device->type, spec_str, device->id, device->name,
+ pa_strempty(device->system_id), device->vendor_id, device->product_id);
pa_idxset_put(device->list, device, NULL);
+
notify_device_connection_changed(device, true);
pa_tz_device_dump_info(device, PA_LOG_INFO);
return device->use_internal_codec;
}
+const pa_sample_spec* pa_tz_device_get_sample_spec(pa_tz_device *device) {
+ pa_assert(device);
+
+ return device->sample_spec;
+}
+
bool pa_tz_device_is_all_suspended(pa_tz_device *device) {
pa_sink *sink;
pa_source *source;
bool sco_opened;
#endif
+ /* mirrors to the corresponding sink/source sample spec */
+ const pa_sample_spec *sample_spec;
+
/* Devices are contained in this list */
pa_idxset *list;
dm_device_direction_t pa_tz_device_get_direction(pa_tz_device *device);
pa_usec_t pa_tz_device_get_creation_time(pa_tz_device *device);
bool pa_tz_device_is_use_internal_codec(pa_tz_device *device);
+const pa_sample_spec* pa_tz_device_get_sample_spec(pa_tz_device *device);
bool pa_tz_device_is_all_suspended(pa_tz_device *device);
pa_intset* pa_tz_device_get_stream_list(pa_tz_device *device);