mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-07-10 11:03:57 -04:00
tools: clean up the preset filter code
This commit is contained in:
parent
bf7f2a5d88
commit
0f00ad19cb
1 changed files with 16 additions and 16 deletions
|
|
@ -67,8 +67,8 @@ struct node {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct filter_preset {
|
struct filter_preset {
|
||||||
enum pw_node_state filter_state;
|
enum pw_node_state state;
|
||||||
enum pw_node_state filter_followers;
|
enum pw_node_state followers;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct filter_preset filter_presets[] = {
|
struct filter_preset filter_presets[] = {
|
||||||
|
|
@ -78,8 +78,7 @@ struct filter_preset filter_presets[] = {
|
||||||
{PW_NODE_STATE_RUNNING, PW_NODE_STATE_IDLE},
|
{PW_NODE_STATE_RUNNING, PW_NODE_STATE_IDLE},
|
||||||
};
|
};
|
||||||
|
|
||||||
unsigned int filter_presets_length =
|
#define N_FILTER_PRESETS SPA_N_ELEMENTS(filter_presets)
|
||||||
sizeof(filter_presets) / sizeof(struct filter_preset);
|
|
||||||
|
|
||||||
struct data {
|
struct data {
|
||||||
struct pw_main_loop *loop;
|
struct pw_main_loop *loop;
|
||||||
|
|
@ -107,7 +106,7 @@ struct data {
|
||||||
unsigned int batch_mode:1;
|
unsigned int batch_mode:1;
|
||||||
int iterations;
|
int iterations;
|
||||||
|
|
||||||
unsigned int filter_preset;
|
int32_t filter_preset;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct point {
|
struct point {
|
||||||
|
|
@ -576,27 +575,28 @@ static void do_refresh(struct data *d, bool force_refresh)
|
||||||
{
|
{
|
||||||
struct node *n, *t, *f;
|
struct node *n, *t, *f;
|
||||||
int y = 1;
|
int y = 1;
|
||||||
|
struct filter_preset *filter = &filter_presets[d->filter_preset];
|
||||||
|
|
||||||
if (!d->pending_refresh && !force_refresh)
|
if (!d->pending_refresh && !force_refresh)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!d->batch_mode) {
|
if (!d->batch_mode) {
|
||||||
char statusbar[COLS] = {};
|
char statusbar[COLS] = {};
|
||||||
if (!((filter_presets[d->filter_preset].filter_state == PW_NODE_STATE_ERROR) &&
|
if (!((filter->state == PW_NODE_STATE_ERROR) &&
|
||||||
(filter_presets[d->filter_preset].filter_followers == PW_NODE_STATE_ERROR))) {
|
(filter->followers == PW_NODE_STATE_ERROR))) {
|
||||||
|
|
||||||
strcpy(statusbar, "FILTER: ");
|
strcpy(statusbar, "FILTER: ");
|
||||||
if (filter_presets[d->filter_preset].filter_state == PW_NODE_STATE_ERROR)
|
if (filter->state == PW_NODE_STATE_ERROR)
|
||||||
strcat(statusbar, "ALL");
|
strcat(statusbar, "ALL");
|
||||||
else for (enum pw_node_state showstate = PW_NODE_STATE_RUNNING; showstate >= PW_NODE_STATE_ERROR; showstate--) {
|
else for (enum pw_node_state showstate = PW_NODE_STATE_RUNNING; showstate >= PW_NODE_STATE_ERROR; showstate--) {
|
||||||
if (showstate >= filter_presets[d->filter_preset].filter_state)
|
if (showstate >= filter->state)
|
||||||
strcat(statusbar, state_as_string(showstate, SPA_IO_POSITION_STATE_STOPPED));
|
strcat(statusbar, state_as_string(showstate, SPA_IO_POSITION_STATE_STOPPED));
|
||||||
}
|
}
|
||||||
strcat(statusbar, "+");
|
strcat(statusbar, "+");
|
||||||
if (filter_presets[d->filter_preset].filter_followers == PW_NODE_STATE_ERROR)
|
if (filter->followers == PW_NODE_STATE_ERROR)
|
||||||
strcat(statusbar, "ALL");
|
strcat(statusbar, "ALL");
|
||||||
else for (enum pw_node_state showstate = PW_NODE_STATE_RUNNING; showstate >= PW_NODE_STATE_ERROR; showstate--) {
|
else for (enum pw_node_state showstate = PW_NODE_STATE_RUNNING; showstate >= PW_NODE_STATE_ERROR; showstate--) {
|
||||||
if (showstate >= filter_presets[d->filter_preset].filter_followers)
|
if (showstate >= filter->followers)
|
||||||
strcat(statusbar, state_as_string(showstate, SPA_IO_POSITION_STATE_STOPPED));
|
strcat(statusbar, state_as_string(showstate, SPA_IO_POSITION_STATE_STOPPED));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -614,7 +614,7 @@ static void do_refresh(struct data *d, bool force_refresh)
|
||||||
spa_list_for_each_safe(n, t, &d->node_list, link) {
|
spa_list_for_each_safe(n, t, &d->node_list, link) {
|
||||||
if (n->driver != n)
|
if (n->driver != n)
|
||||||
continue;
|
continue;
|
||||||
if (n->state < filter_presets[d->filter_preset].filter_state)
|
if (n->state < filter->state)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
print_node(d, n, n, y++);
|
print_node(d, n, n, y++);
|
||||||
|
|
@ -628,7 +628,7 @@ static void do_refresh(struct data *d, bool force_refresh)
|
||||||
if (f->driver != n || f == n)
|
if (f->driver != n || f == n)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (f->state < filter_presets[d->filter_preset].filter_followers)
|
if (f->state < filter->followers)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
print_node(d, n, f, y++);
|
print_node(d, n, f, y++);
|
||||||
|
|
@ -853,11 +853,11 @@ static void do_handle_io(void *data, int fd, uint32_t mask)
|
||||||
reset_xruns(d);
|
reset_xruns(d);
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
d->filter_preset = ((d->filter_preset + 1) % filter_presets_length);
|
d->filter_preset = (d->filter_preset + 1) % N_FILTER_PRESETS;
|
||||||
do_refresh(d, !d->batch_mode);
|
do_refresh(d, !d->batch_mode);
|
||||||
break;
|
break;
|
||||||
case 'F':
|
case 'F':
|
||||||
d->filter_preset = ((d->filter_preset - 1 + filter_presets_length) % filter_presets_length);
|
d->filter_preset = (d->filter_preset - 1 + N_FILTER_PRESETS) % N_FILTER_PRESETS;
|
||||||
do_refresh(d, !d->batch_mode);
|
do_refresh(d, !d->batch_mode);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
@ -914,7 +914,7 @@ int main(int argc, char *argv[])
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
spa_atoi32(optarg, &data.filter_preset, 10);
|
spa_atoi32(optarg, &data.filter_preset, 10);
|
||||||
data.filter_preset = ((data.filter_preset) % filter_presets_length);
|
data.filter_preset %= N_FILTER_PRESETS;
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
spa_atoi32(optarg, &data.iterations, 10);
|
spa_atoi32(optarg, &data.iterations, 10);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue