/* Called from main context */ static int raw_sink_set_state(pa_sink *s, pa_sink_state_t state) { struct userdata *u; pa_sink_assert_ref(s); pa_assert_se(u = s->userdata); int ret = voice_sink_set_state(s, u->voip_sink, state); pa_log_debug("(%p) called with %d", (void *)s, state); return ret; }
/* Called from main context */ static int voip_sink_set_state(pa_sink *s, pa_sink_state_t state) { struct userdata *u; int ret = 0; ENTER(); pa_sink_assert_ref(s); pa_assert_se(u = s->userdata); ret = voice_sink_set_state(s, u->raw_sink, state); /* TODO: Check if we still need to fiddle with PROP_MIXER_TUNING_MODE */ if (s->state != PA_SINK_RUNNING && state == PA_SINK_RUNNING) { voice_aep_ear_ref_loop_reset(u); meego_algorithm_hook_fire(u->hooks[HOOK_CALL_BEGIN], s); } else if (s->state == PA_SINK_RUNNING && state != PA_SINK_RUNNING) meego_algorithm_hook_fire(u->hooks[HOOK_CALL_END], s); pa_log_debug("(%p): called with %d", (void *)s, state); return ret; }