diff options
Diffstat (limited to 'src/pulsecore')
-rw-r--r-- | src/pulsecore/sink.c | 32 | ||||
-rw-r--r-- | src/pulsecore/source.c | 28 |
2 files changed, 30 insertions, 30 deletions
diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c index 38e7d632..dccb34cc 100644 --- a/src/pulsecore/sink.c +++ b/src/pulsecore/sink.c @@ -147,21 +147,6 @@ pa_sink* pa_sink_new( return s; } -void pa_sink_put(pa_sink* s) { - pa_sink_assert_ref(s); - - pa_assert(s->state == PA_SINK_INIT); - pa_assert(s->asyncmsgq); - pa_assert(s->rtpoll); - - s->thread_info.state = s->state = PA_SINK_IDLE; - - pa_source_put(s->monitor_source); - - pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SINK | PA_SUBSCRIPTION_EVENT_NEW, s->index); - pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SINK_NEW_POST], s); -} - static int sink_set_state(pa_sink *s, pa_sink_state_t state) { int ret; @@ -196,6 +181,21 @@ static int sink_set_state(pa_sink *s, pa_sink_state_t state) { return 0; } +void pa_sink_put(pa_sink* s) { + pa_sink_assert_ref(s); + + pa_assert(s->state == PA_SINK_INIT); + pa_assert(s->asyncmsgq); + pa_assert(s->rtpoll); + + pa_assert_se(sink_set_state(s, PA_SINK_IDLE) == 0); + + pa_source_put(s->monitor_source); + + pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SINK | PA_SUBSCRIPTION_EVENT_NEW, s->index); + pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SINK_NEW_POST], s); +} + void pa_sink_unlink(pa_sink* s) { pa_bool_t linked; pa_sink_input *i, *j = NULL; @@ -806,7 +806,7 @@ unsigned pa_sink_used_by(pa_sink *s) { int pa_sink_process_msg(pa_msgobject *o, int code, void *userdata, int64_t offset, pa_memchunk *chunk) { pa_sink *s = PA_SINK(o); pa_sink_assert_ref(s); - pa_assert(PA_SINK_LINKED(s->thread_info.state)); + pa_assert(s->thread_info.state != PA_SINK_UNLINKED); switch ((pa_sink_message_t) code) { diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c index 2106edc3..9a6902ae 100644 --- a/src/pulsecore/source.c +++ b/src/pulsecore/source.c @@ -124,19 +124,6 @@ pa_source* pa_source_new( return s; } -void pa_source_put(pa_source *s) { - pa_source_assert_ref(s); - - pa_assert(s->state == PA_SINK_INIT); - pa_assert(s->rtpoll); - pa_assert(s->asyncmsgq); - - s->thread_info.state = s->state = PA_SOURCE_IDLE; - - pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE | PA_SUBSCRIPTION_EVENT_NEW, s->index); - pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SOURCE_NEW_POST], s); -} - static int source_set_state(pa_source *s, pa_source_state_t state) { int ret; @@ -171,6 +158,19 @@ static int source_set_state(pa_source *s, pa_source_state_t state) { return 0; } +void pa_source_put(pa_source *s) { + pa_source_assert_ref(s); + + pa_assert(s->state == PA_SINK_INIT); + pa_assert(s->rtpoll); + pa_assert(s->asyncmsgq); + + pa_assert_se(source_set_state(s, PA_SOURCE_IDLE) == 0); + + pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE | PA_SUBSCRIPTION_EVENT_NEW, s->index); + pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SOURCE_NEW_POST], s); +} + void pa_source_unlink(pa_source *s) { pa_bool_t linked; pa_source_output *o, *j = NULL; @@ -460,7 +460,7 @@ unsigned pa_source_used_by(pa_source *s) { int pa_source_process_msg(pa_msgobject *object, int code, void *userdata, int64_t offset, pa_memchunk *chunk) { pa_source *s = PA_SOURCE(object); pa_source_assert_ref(s); - pa_assert(PA_SOURCE_LINKED(s->thread_info.state)); + pa_assert(s->thread_info.state != PA_SOURCE_UNLINKED); switch ((pa_source_message_t) code) { case PA_SOURCE_MESSAGE_ADD_OUTPUT: { |