int main(int argc, char *argv[]) { pa_queue *q; pa_assert_se(q = pa_queue_new()); pa_assert(pa_queue_is_empty(q)); pa_queue_push(q, (void*) "eins"); pa_log("%s\n", (char*) pa_queue_pop(q)); pa_assert(pa_queue_is_empty(q)); pa_queue_push(q, (void*) "zwei"); pa_queue_push(q, (void*) "drei"); pa_queue_push(q, (void*) "vier"); pa_log("%s\n", (char*) pa_queue_pop(q)); pa_log("%s\n", (char*) pa_queue_pop(q)); pa_queue_push(q, (void*) "fuenf"); pa_log("%s\n", (char*) pa_queue_pop(q)); pa_log("%s\n", (char*) pa_queue_pop(q)); pa_assert(pa_queue_is_empty(q)); pa_queue_push(q, (void*) "sechs"); pa_queue_push(q, (void*) "sieben"); pa_queue_free(q, NULL, NULL); return 0; }
void pa__done(pa_module*m) { struct userdata *u; pa_assert(m); if (!(u = m->userdata)) return; if (u->unload_de) { u->core->mainloop->defer_free(u->unload_de); u->unload_de = NULL; } cmtspeech_dbus_unload(u); cmtspeech_connection_unload(u); cmtspeech_delete_source_output(u); cmtspeech_delete_sink_input(u); if (u->mainloop_handler) { u->mainloop_handler->parent.free((pa_object *)u->mainloop_handler); u->mainloop_handler = NULL; } if (u->local_sideinfoq) { pa_queue_free(u->local_sideinfoq, NULL); u->local_sideinfoq = NULL; } if (u->dl_memblockq) { pa_memblockq_free(u->dl_memblockq); u->dl_memblockq = NULL; } if (u->sink_name) pa_xfree(u->sink_name); if (u->source_name) pa_xfree(u->source_name); pa_xfree(u); }
/*** Deallocate stuff ***/ void voice_clear_up(struct userdata *u) { pa_assert(u); if (u->mainloop_handler) { u->mainloop_handler->parent.free((pa_object *)u->mainloop_handler); u->mainloop_handler = NULL; } if (u->hw_sink_input) { pa_sink_input_unlink(u->hw_sink_input); pa_sink_input_unref(u->hw_sink_input); u->hw_sink_input = NULL; } if (u->raw_sink) { pa_sink_unlink(u->raw_sink); pa_sink_unref(u->raw_sink); u->raw_sink = NULL; } if (u->dl_memblockq) { pa_memblockq_free(u->dl_memblockq); u->dl_memblockq = NULL; } if (u->voip_sink) { pa_sink_unlink(u->voip_sink); pa_sink_unref(u->voip_sink); u->voip_sink = NULL; } if (u->hw_source_output) { pa_source_output_unlink(u->hw_source_output); pa_source_output_unref(u->hw_source_output); u->hw_source_output = NULL; } if (u->voip_source) { pa_source_unlink(u->voip_source); pa_source_unref(u->voip_source); u->voip_source = NULL; } if (u->raw_source) { pa_source_unlink(u->raw_source); pa_source_unref(u->raw_source); u->raw_source = NULL; } if (u->hw_source_memblockq) { pa_memblockq_free(u->hw_source_memblockq); u->hw_source_memblockq = NULL; } if (u->ul_memblockq) { pa_memblockq_free(u->ul_memblockq); u->ul_memblockq = NULL; } if (u->dl_sideinfo_queue) { pa_queue_free(u->dl_sideinfo_queue, NULL, u); u->dl_sideinfo_queue = NULL; } voice_aep_ear_ref_unload(u); if (u->aep_silence_memchunk.memblock) { pa_memblock_unref(u->aep_silence_memchunk.memblock); pa_memchunk_reset(&u->aep_silence_memchunk); } if (u->sink_temp_buff) { pa_xfree(u->sink_temp_buff); u->sink_temp_buff = NULL; } if (u->sink_subscription) { pa_subscription_free(u->sink_subscription); u->sink_subscription = NULL; } if (u->sink_proplist_changed_slot) { pa_hook_slot_free(u->sink_proplist_changed_slot); u->sink_proplist_changed_slot = NULL; } if (u->source_proplist_changed_slot) { pa_hook_slot_free(u->source_proplist_changed_slot); u->source_proplist_changed_slot = NULL; } voice_convert_free(u); voice_memchunk_pool_unload(u); voice_unload_event_forwarder(u); }