1#include <alsa/asoundlib.h>
2
3void dump_event_filter(snd_seq_client_info_t *client_info) {
4	int i, b;
5
6	for (i = 0; i <= 255;) {
7		b = snd_seq_client_info_event_filter_check(client_info, i);
8		i++;
9		printf("%c%s%s", (b ? 'X' : '.'),
10			(i % 8 == 0 ? " " : ""),
11			(i % 32 == 0 ? "\n" : ""));
12	}
13	printf("\n");
14}
15
16int main(void) {
17	snd_seq_client_info_t *client_info;
18
19	snd_seq_client_info_alloca(&client_info);
20
21	printf("first client_info_event_filter                   :\n");
22	dump_event_filter(client_info);
23
24	snd_seq_client_info_event_filter_add(client_info, SND_SEQ_EVENT_NOTEON);
25	printf("after snd_seq_client_info_event_filter_add(client_info, SND_SEQ_EVENT_NOTEON);\n");
26	dump_event_filter(client_info);
27
28	snd_seq_client_info_event_filter_add(client_info, SND_SEQ_EVENT_PGMCHANGE);
29	printf("after snd_seq_client_info_event_filter_add(client_info, SND_SEQ_EVENT_PGMCHANGE);\n");
30	dump_event_filter(client_info);
31
32	snd_seq_client_info_event_filter_del(client_info, SND_SEQ_EVENT_NOTEON);
33	printf("after snd_seq_client_info_event_filter_del(client_info, SND_SEQ_EVENT_NOTEON);\n");
34	dump_event_filter(client_info);
35
36	snd_seq_client_info_event_filter_clear(client_info);
37	printf("after snd_seq_client_info_event_filter_clear(client_info);\n");
38	dump_event_filter(client_info);
39
40	snd_seq_client_info_event_filter_add(client_info, SND_SEQ_EVENT_NOTEON);
41	printf("after snd_seq_client_info_event_filter_add(client_info, SND_SEQ_EVENT_NOTEON);\n");
42	dump_event_filter(client_info);
43
44	return 0;
45}
46
47