4 This file is part of polypaudio.
6 polypaudio is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published
8 by the Free Software Foundation; either version 2 of the License,
9 or (at your option) any later version.
11 polypaudio is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with polypaudio; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
40 struct pa_core* pa_core_new(struct pa_mainloop_api *m) {
42 c = pa_xmalloc(sizeof(struct pa_core));
45 c->clients = pa_idxset_new(NULL, NULL);
46 c->sinks = pa_idxset_new(NULL, NULL);
47 c->sources = pa_idxset_new(NULL, NULL);
48 c->source_outputs = pa_idxset_new(NULL, NULL);
49 c->sink_inputs = pa_idxset_new(NULL, NULL);
51 c->default_source_name = c->default_sink_name = NULL;
55 c->scache_idxset = NULL;
56 c->scache_hashmap = NULL;
58 c->autoload_hashmap = NULL;
60 c->default_sample_spec.format = PA_SAMPLE_S16NE;
61 c->default_sample_spec.rate = 44100;
62 c->default_sample_spec.channels = 2;
64 c->auto_unload_time = 20;
66 pa_check_for_sigpipe();
71 void pa_core_free(struct pa_core *c) {
74 pa_module_unload_all(c);
77 assert(pa_idxset_isempty(c->clients));
78 pa_idxset_free(c->clients, NULL, NULL);
80 assert(pa_idxset_isempty(c->sinks));
81 pa_idxset_free(c->sinks, NULL, NULL);
83 assert(pa_idxset_isempty(c->sources));
84 pa_idxset_free(c->sources, NULL, NULL);
86 assert(pa_idxset_isempty(c->source_outputs));
87 pa_idxset_free(c->source_outputs, NULL, NULL);
89 assert(pa_idxset_isempty(c->sink_inputs));
90 pa_idxset_free(c->sink_inputs, NULL, NULL);
96 pa_xfree(c->default_source_name);
97 pa_xfree(c->default_sink_name);