}
}
+
+static void handle_remote_pulse_device(pa_object *pdevice, bool is_loaded, pa_device_manager *dm) {
+ dm_device_direction_t direction;
+ pa_tz_device *device;
+ const char *system_id;
+
+ pa_assert(pdevice);
+ pa_assert(dm);
+
+ pa_log_info("Handle REMOTE pulse device");
+
+ direction = pulse_device_get_direction(pdevice);
+ system_id = pulse_device_get_system_id(pdevice);
+
+ if (is_loaded) {
+ pa_tz_device_new_data data;
+
+ pa_proplist *prop = pulse_device_get_proplist(pdevice);
+ const char *name = pa_proplist_gets(prop, PA_PROP_DEVICE_DESCRIPTION);
+
+ pa_tz_device_new_data_init(&data, dm->device_list, dm->comm, dm->dbus_conn);
+ _fill_new_data_basic(&data, DEVICE_TYPE_NETWORK, direction, false, dm);
+ pa_tz_device_new_data_set_name(&data, name);
+ pa_tz_device_new_data_set_system_id(&data, system_id);
+ if (direction == DM_DEVICE_DIRECTION_OUT)
+ pa_tz_device_new_data_add_sink(&data, DEVICE_ROLE_REMOTE, PA_SINK(pdevice));
+ else
+ pa_tz_device_new_data_add_source(&data, DEVICE_ROLE_REMOTE, PA_SOURCE(pdevice));
+ pa_tz_device_new(&data);
+ pa_tz_device_new_data_done(&data);
+ } else {
+ if (!(device = device_list_get_device(dm, DEVICE_TYPE_NETWORK, NULL, system_id)))
+ pa_log_warn("Can't get REMOTE device for %s", system_id);
+ else
+ pa_tz_device_free(device);
+ }
+}
+
static void handle_acm_pulse_device(pa_object *pdevice, bool is_loaded, pa_device_manager *dm) {
pa_tz_device *device;
if (remote_access) {
/* FIXME : handle same value as before */
pulse_device_set_use_internal_codec(PA_OBJECT(source), false);
- handle_raop_pulse_device(PA_OBJECT(source), pa_safe_streq(remote_access, "allowed"), dm);
+ handle_remote_pulse_device(PA_OBJECT(source), pa_safe_streq(remote_access, "allowed"), dm);
}
return PA_HOOK_OK;
}
if (remote_access) {
/* FIXME : handle same value as before */
pulse_device_set_use_internal_codec(PA_OBJECT(sink), false);
- handle_raop_pulse_device(PA_OBJECT(sink), pa_safe_streq(remote_access, "allowed"), dm);
+ handle_remote_pulse_device(PA_OBJECT(sink), pa_safe_streq(remote_access, "allowed"), dm);
}
return PA_HOOK_OK;
}