Implement control streams

spa_io_control_range -> spa_io_range
Add helpers for sequence and control pod objects
Implement control properties in audiotestsrc, update test example.
This commit is contained in:
Wim Taymans 2018-08-28 18:16:41 +02:00
parent 90c1a95eef
commit c9526dc2bb
21 changed files with 289 additions and 272 deletions

View file

@ -69,10 +69,6 @@ struct link {
struct spa_buffer **buffers;
};
struct control {
struct spa_pod_float *volume;
};
struct impl {
struct spa_handle handle;
struct spa_node node;
@ -80,7 +76,6 @@ struct impl {
struct spa_log *log;
struct props props;
struct control control;
const struct spa_node_callbacks *callbacks;
void *user_data;
@ -653,13 +648,14 @@ impl_node_port_set_io(struct spa_node *node,
spa_log_debug(this->log, "set io %d %d %d", id, direction, port_id);
if (id == SPA_IO_ControlRange)
switch (id) {
case SPA_IO_Range:
res = spa_node_port_set_io(this->resample, direction, 0, id, data, size);
// else if (id == t->io_prop_volume)
// res = spa_node_port_set_io(this->channelmix, direction, 0, id, data, size);
else
break;
default:
res = spa_node_port_set_io(this->fmt[direction], direction, port_id, id, data, size);
break;
}
return res;
}