snd_pulse_t::state was mostly shadowing the state of pa_context_get_state(snd_pulse_t::context), so get rid of it and use the state of the context directly. --- pulse/pulse.c | 14 +++----------- pulse/pulse.h | 6 ------ 2 files changed, 3 insertions(+), 17 deletions(-)
diff --git a/pulse/pulse.c b/pulse/pulse.c index c313182..9c05171 100644 --- a/pulse/pulse.c +++ b/pulse/pulse.c @@ -59,12 +59,6 @@ int pulse_wait_operation(snd_pulse_t * p, pa_operation * o) assert(p); assert(o);
- if (p->state != PULSE_STATE_READY) - return -EBADFD; - - if (!p->mainloop) - return -EBADFD; - for (;;) { int err;
@@ -124,8 +118,6 @@ snd_pulse_t *pulse_new(void) if (!p) return NULL;
- p->state = PULSE_STATE_INIT; - if (pipe(fd)) { free(p); return NULL; @@ -192,13 +184,15 @@ void pulse_free(snd_pulse_t * p) int pulse_connect(snd_pulse_t * p, const char *server) { int err; + pa_context_state_t state;
assert(p);
if (!p->context || !p->mainloop) return -EBADFD;
- if (p->state != PULSE_STATE_INIT) + state = pa_context_get_state(p->context); + if (state != PA_CONTEXT_UNCONNECTED) return -EBADFD;
pa_threaded_mainloop_lock(p->mainloop); @@ -221,8 +215,6 @@ int pulse_connect(snd_pulse_t * p, const char *server)
pa_threaded_mainloop_unlock(p->mainloop);
- p->state = PULSE_STATE_READY; - return 0;
error: diff --git a/pulse/pulse.h b/pulse/pulse.h index 51f9a11..e98124f 100644 --- a/pulse/pulse.h +++ b/pulse/pulse.h @@ -31,12 +31,6 @@ typedef struct snd_pulse { pa_context *context;
int thread_fd, main_fd; - - enum { - PULSE_STATE_INIT, - PULSE_STATE_READY, - } state; - } snd_pulse_t;
int pulse_check_connection(snd_pulse_t * p);