diff options
Diffstat (limited to 'src/pulsecore/source.c')
-rw-r--r-- | src/pulsecore/source.c | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c index 412a3db9..92fb80e0 100644 --- a/src/pulsecore/source.c +++ b/src/pulsecore/source.c @@ -221,6 +221,7 @@ pa_source* pa_source_new( s->outputs = pa_idxset_new(NULL, NULL); s->n_corked = 0; s->monitor_of = NULL; + s->output_from_master = NULL; s->volume = data->volume; pa_cvolume_reset(&s->soft_volume, s->sample_spec.channels); @@ -1401,22 +1402,22 @@ void pa_source_set_latency_range(pa_source *s, pa_usec_t min_latency, pa_usec_t /* Called from main thread */ void pa_source_get_latency_range(pa_source *s, pa_usec_t *min_latency, pa_usec_t *max_latency) { - pa_source_assert_ref(s); - pa_assert_ctl_context(); - pa_assert(min_latency); - pa_assert(max_latency); - - if (PA_SOURCE_IS_LINKED(s->state)) { - pa_usec_t r[2] = { 0, 0 }; - - pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SOURCE_MESSAGE_GET_LATENCY_RANGE, r, 0, NULL) == 0); - - *min_latency = r[0]; - *max_latency = r[1]; - } else { - *min_latency = s->thread_info.min_latency; - *max_latency = s->thread_info.max_latency; - } + pa_source_assert_ref(s); + pa_assert_ctl_context(); + pa_assert(min_latency); + pa_assert(max_latency); + + if (PA_SOURCE_IS_LINKED(s->state)) { + pa_usec_t r[2] = { 0, 0 }; + + pa_assert_se(pa_asyncmsgq_send(s->asyncmsgq, PA_MSGOBJECT(s), PA_SOURCE_MESSAGE_GET_LATENCY_RANGE, r, 0, NULL) == 0); + + *min_latency = r[0]; + *max_latency = r[1]; + } else { + *min_latency = s->thread_info.min_latency; + *max_latency = s->thread_info.max_latency; + } } /* Called from IO thread, and from main thread before pa_source_put() is called */ @@ -1570,5 +1571,7 @@ int pa_source_set_port(pa_source *s, const char *name, pa_bool_t save) { s->active_port = port; s->save_port = save; + pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SOURCE_PORT_CHANGED], s); + return 0; } |