1
/* $Id: client.c 1272 2006-08-18 21:38:40Z lennart $ */
4
This file is part of PulseAudio.
6
PulseAudio is free software; you can redistribute it and/or modify
7
it under the terms of the GNU Lesser 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
PulseAudio 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 Lesser General Public License
17
along with PulseAudio; if not, write to the Free Software
18
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
31
#include <pulse/xmalloc.h>
33
#include <pulsecore/core-subscribe.h>
34
#include <pulsecore/log.h>
38
pa_client *pa_client_new(pa_core *core, const char *driver, const char *name) {
43
c = pa_xmalloc(sizeof(pa_client));
44
c->name = pa_xstrdup(name);
45
c->driver = pa_xstrdup(driver);
52
r = pa_idxset_put(core->clients, c, &c->index);
53
assert(c->index != PA_IDXSET_INVALID && r >= 0);
55
pa_log_info("created %u \"%s\"", c->index, c->name);
56
pa_subscription_post(core, PA_SUBSCRIPTION_EVENT_CLIENT|PA_SUBSCRIPTION_EVENT_NEW, c->index);
58
pa_core_check_quit(core);
63
void pa_client_free(pa_client *c) {
66
pa_idxset_remove_by_data(c->core->clients, c, NULL);
68
pa_core_check_quit(c->core);
70
pa_log_info("freed %u \"%s\"", c->index, c->name);
71
pa_subscription_post(c->core, PA_SUBSCRIPTION_EVENT_CLIENT|PA_SUBSCRIPTION_EVENT_REMOVE, c->index);
77
void pa_client_kill(pa_client *c) {
80
pa_log_warn("kill() operation not implemented for client %u", c->index);
87
void pa_client_set_name(pa_client *c, const char *name) {
90
pa_log_info("client %u changed name from \"%s\" to \"%s\"", c->index, c->name, name);
93
c->name = pa_xstrdup(name);
95
pa_subscription_post(c->core, PA_SUBSCRIPTION_EVENT_CLIENT|PA_SUBSCRIPTION_EVENT_CHANGE, c->index);