mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-03 09:01:50 -05:00
commit some work and rename
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@13 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
0575fc66e9
commit
f78e9b68cb
7 changed files with 268 additions and 28 deletions
|
|
@ -27,7 +27,7 @@ struct mainloop_source {
|
|||
|
||||
struct {
|
||||
void (*callback)(struct mainloop_source*s, void *userdata);
|
||||
} prepare;
|
||||
} fixed;
|
||||
|
||||
struct {
|
||||
void (*callback)(struct mainloop_source*s, void *userdata);
|
||||
|
|
@ -47,7 +47,7 @@ struct mainloop_source_list {
|
|||
};
|
||||
|
||||
struct mainloop {
|
||||
struct mainloop_source_list io_sources, prepare_sources, idle_sources, signal_sources;
|
||||
struct mainloop_source_list io_sources, fixed_sources, idle_sources, signal_sources;
|
||||
|
||||
struct pollfd *pollfds;
|
||||
int max_pollfds, n_pollfds;
|
||||
|
|
@ -133,7 +133,7 @@ static void free_sources(struct mainloop_source_list *l, int all) {
|
|||
void mainloop_free(struct mainloop* m) {
|
||||
assert(m);
|
||||
free_sources(&m->io_sources, 1);
|
||||
free_sources(&m->prepare_sources, 1);
|
||||
free_sources(&m->fixed_sources, 1);
|
||||
free_sources(&m->idle_sources, 1);
|
||||
free_sources(&m->signal_sources, 1);
|
||||
|
||||
|
|
@ -237,14 +237,15 @@ int mainloop_iterate(struct mainloop *m, int block) {
|
|||
return m->quit;
|
||||
|
||||
free_sources(&m->io_sources, 0);
|
||||
free_sources(&m->prepare_sources, 0);
|
||||
free_sources(&m->fixed_sources, 0);
|
||||
free_sources(&m->idle_sources, 0);
|
||||
free_sources(&m->signal_sources, 0);
|
||||
|
||||
for (s = m->prepare_sources.sources; s; s = s->next) {
|
||||
assert(!s->dead && s->type == MAINLOOP_SOURCE_TYPE_PREPARE);
|
||||
for (s = m->fixed_sources.sources; s; s = s->next) {
|
||||
assert(!s->dead && s->type == MAINLOOP_SOURCE_TYPE_FIXED);
|
||||
if (s->enabled) {
|
||||
assert(s->prepare.callback);
|
||||
s->prepare.callback(s, s->userdata);
|
||||
assert(s->fixed.callback);
|
||||
s->fixed.callback(s, s->userdata);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -293,8 +294,8 @@ static struct mainloop_source_list* get_source_list(struct mainloop *m, enum mai
|
|||
case MAINLOOP_SOURCE_TYPE_IO:
|
||||
l = &m->io_sources;
|
||||
break;
|
||||
case MAINLOOP_SOURCE_TYPE_PREPARE:
|
||||
l = &m->prepare_sources;
|
||||
case MAINLOOP_SOURCE_TYPE_FIXED:
|
||||
l = &m->fixed_sources;
|
||||
break;
|
||||
case MAINLOOP_SOURCE_TYPE_IDLE:
|
||||
l = &m->idle_sources;
|
||||
|
|
@ -351,13 +352,13 @@ struct mainloop_source* mainloop_source_new_io(struct mainloop*m, int fd, enum m
|
|||
return s;
|
||||
}
|
||||
|
||||
struct mainloop_source* mainloop_source_new_prepare(struct mainloop*m, void (*callback)(struct mainloop_source *s, void*userdata), void*userdata) {
|
||||
struct mainloop_source* mainloop_source_new_fixed(struct mainloop*m, void (*callback)(struct mainloop_source *s, void*userdata), void*userdata) {
|
||||
struct mainloop_source* s;
|
||||
assert(m && callback);
|
||||
|
||||
s = source_new(m, MAINLOOP_SOURCE_TYPE_PREPARE);
|
||||
s = source_new(m, MAINLOOP_SOURCE_TYPE_FIXED);
|
||||
|
||||
s->prepare.callback = callback;
|
||||
s->fixed.callback = callback;
|
||||
s->userdata = userdata;
|
||||
s->enabled = 1;
|
||||
return s;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue