diff options
Diffstat (limited to 'src/pulsecore/client.h')
| -rw-r--r-- | src/pulsecore/client.h | 59 |
1 files changed, 44 insertions, 15 deletions
diff --git a/src/pulsecore/client.h b/src/pulsecore/client.h index 1e72baf7..18b62dac 100644 --- a/src/pulsecore/client.h +++ b/src/pulsecore/client.h @@ -1,27 +1,32 @@ -#ifndef fooclienthfoo -#define fooclienthfoo - -/* $Id$ */ +#ifndef foopulseclienthfoo +#define foopulseclienthfoo /*** This file is part of PulseAudio. - + + Copyright 2004-2006 Lennart Poettering + PulseAudio is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2 of the License, + by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + PulseAudio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with PulseAudio; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ***/ +#include <inttypes.h> + +typedef struct pa_client pa_client; + +#include <pulse/proplist.h> #include <pulsecore/core.h> #include <pulsecore/module.h> @@ -29,20 +34,34 @@ * attached. That way the user may generate a listing of all connected * clients easily and kill them if he wants.*/ -typedef struct pa_client pa_client; - struct pa_client { uint32_t index; - - pa_module *owner; - char *name, *driver; pa_core *core; - void (*kill)(pa_client *c); + pa_proplist *proplist; + pa_module *module; + char *driver; + + pa_idxset *sink_inputs; + pa_idxset *source_outputs; + void *userdata; + + void (*kill)(pa_client *c); + + void (*send_event)(pa_client *c, const char *name, pa_proplist *data); }; -pa_client *pa_client_new(pa_core *c, const char *driver, const char *name); +typedef struct pa_client_new_data { + pa_proplist *proplist; + const char *driver; + pa_module *module; +} pa_client_new_data; + +pa_client_new_data *pa_client_new_data_init(pa_client_new_data *data); +void pa_client_new_data_done(pa_client_new_data *data); + +pa_client *pa_client_new(pa_core *c, pa_client_new_data *data); /* This function should be called only by the code that created the client */ void pa_client_free(pa_client *c); @@ -54,4 +73,14 @@ void pa_client_kill(pa_client *c); /* Rename the client */ void pa_client_set_name(pa_client *c, const char *name); +void pa_client_update_proplist(pa_client *c, pa_update_mode_t mode, pa_proplist *p); + +void pa_client_send_event(pa_client *c, const char *event, pa_proplist *data); + +typedef struct pa_client_send_event_hook_data { + pa_client *client; + const char *event; + pa_proplist *data; +} pa_client_send_event_hook_data; + #endif |
