mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-02 09:01:46 -05:00
create native-common-internal.h
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@131 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
aff43ddabb
commit
bee750bbb3
4 changed files with 175 additions and 1 deletions
|
|
@ -38,9 +38,10 @@
|
|||
* \li A wrapper around the GLIB main loop. Use this to embed polypaudio into your GLIB/GTK+/GNOME programs (See \ref glib-mainloop.h)
|
||||
*
|
||||
* The structure pa_mainloop_api is used as vtable for the main loop abstraction.
|
||||
*
|
||||
* This mainloop abstraction layer has no direct support for UNIX signals. Generic, mainloop implementation agnostic support is available throught \ref mainloop-signal.h.
|
||||
* */
|
||||
|
||||
|
||||
PA_C_DECL_BEGIN
|
||||
|
||||
/** A bitmask for IO events */
|
||||
|
|
|
|||
|
|
@ -27,14 +27,32 @@
|
|||
|
||||
PA_C_DECL_BEGIN
|
||||
|
||||
/** \file
|
||||
* UNIX signal support for main loops. In contrast to other
|
||||
* main loop event sources such as timer and IO events, UNIX signal
|
||||
* support requires modification of the global process
|
||||
* environment. Due to this the generic main loop abstraction layer as
|
||||
* defined in \ref mainloop-api.h doesn't have direct support for UNIX
|
||||
* signals. However, you may hook signal support into an abstract main loop via the routines defined herein.
|
||||
*/
|
||||
|
||||
/** Initialize the UNIX signal subsystem and bind it to the specified main loop */
|
||||
int pa_signal_init(struct pa_mainloop_api *api);
|
||||
|
||||
/** Cleanup the signal subsystem */
|
||||
void pa_signal_done(void);
|
||||
|
||||
/** \struct pa_signal_event
|
||||
* A UNIX signal event source object */
|
||||
struct pa_signal_event;
|
||||
|
||||
/** Create a new UNIX signal event source object */
|
||||
struct pa_signal_event* pa_signal_new(int signal, void (*callback) (struct pa_mainloop_api *api, struct pa_signal_event*e, int signal, void *userdata), void *userdata);
|
||||
|
||||
/** Free a UNIX signal event source object */
|
||||
void pa_signal_free(struct pa_signal_event *e);
|
||||
|
||||
/** Set a function that is called when the signal event source is destroyed. Use this to free the userdata argument if required */
|
||||
void pa_signal_set_destroy(struct pa_signal_event *e, void (*callback) (struct pa_mainloop_api *api, struct pa_signal_event*e, void *userdata));
|
||||
|
||||
PA_C_DECL_END
|
||||
|
|
|
|||
|
|
@ -27,14 +27,36 @@
|
|||
|
||||
PA_C_DECL_BEGIN
|
||||
|
||||
/** \file
|
||||
*
|
||||
* A minimal main loop implementation based on the C library's poll()
|
||||
* function. Using the routines defined herein you may create a simple
|
||||
* main loop supporting the generic main loop abstraction layer as
|
||||
* defined in \ref mainloop-api.h. This implementation is thread safe
|
||||
* as long as you access the main loop object from a single thread only.*/
|
||||
|
||||
/** \struct pa_mainloop
|
||||
* A main loop object
|
||||
*/
|
||||
struct pa_mainloop;
|
||||
|
||||
/** Allocate a new main loop object */
|
||||
struct pa_mainloop *pa_mainloop_new(void);
|
||||
|
||||
/** Free a main loop object */
|
||||
void pa_mainloop_free(struct pa_mainloop* m);
|
||||
|
||||
/** Run a single iteration of the main loop. Returns a negative value
|
||||
on error or exit request. If block is nonzero, block for events if
|
||||
none are queued. Optionally return the return value as specified with
|
||||
the main loop's quit() routine in the integer variable retval points
|
||||
to */
|
||||
int pa_mainloop_iterate(struct pa_mainloop *m, int block, int *retval);
|
||||
|
||||
/** Run unlimited iterations of the main loop object until the main loop's quit() routine is called. */
|
||||
int pa_mainloop_run(struct pa_mainloop *m, int *retval);
|
||||
|
||||
/** Return the abstract main loop abstraction layer vtable for this main loop. This calls pa_mainloop_iterate() iteratively.*/
|
||||
struct pa_mainloop_api* pa_mainloop_get_api(struct pa_mainloop*m);
|
||||
|
||||
PA_C_DECL_END
|
||||
|
|
|
|||
133
polyp/native-common-internal.h
Normal file
133
polyp/native-common-internal.h
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
#ifndef foonativecommonhfoo
|
||||
#define foonativecommonhfoo
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/***
|
||||
This file is part of polypaudio.
|
||||
|
||||
polypaudio is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published
|
||||
by the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
polypaudio 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 General Public License
|
||||
along with polypaudio; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
USA.
|
||||
***/
|
||||
|
||||
#include "cdecl.h"
|
||||
|
||||
PA_C_DECL_BEGIN
|
||||
|
||||
enum {
|
||||
PA_COMMAND_ERROR,
|
||||
PA_COMMAND_TIMEOUT, /* pseudo command */
|
||||
PA_COMMAND_REPLY,
|
||||
PA_COMMAND_CREATE_PLAYBACK_STREAM,
|
||||
PA_COMMAND_DELETE_PLAYBACK_STREAM,
|
||||
PA_COMMAND_CREATE_RECORD_STREAM,
|
||||
PA_COMMAND_DELETE_RECORD_STREAM,
|
||||
PA_COMMAND_EXIT,
|
||||
PA_COMMAND_REQUEST,
|
||||
PA_COMMAND_AUTH,
|
||||
PA_COMMAND_SET_NAME,
|
||||
PA_COMMAND_LOOKUP_SINK,
|
||||
PA_COMMAND_LOOKUP_SOURCE,
|
||||
PA_COMMAND_DRAIN_PLAYBACK_STREAM,
|
||||
PA_COMMAND_PLAYBACK_STREAM_KILLED,
|
||||
PA_COMMAND_RECORD_STREAM_KILLED,
|
||||
PA_COMMAND_STAT,
|
||||
PA_COMMAND_GET_PLAYBACK_LATENCY,
|
||||
|
||||
PA_COMMAND_CREATE_UPLOAD_STREAM,
|
||||
PA_COMMAND_DELETE_UPLOAD_STREAM,
|
||||
PA_COMMAND_FINISH_UPLOAD_STREAM,
|
||||
PA_COMMAND_PLAY_SAMPLE,
|
||||
PA_COMMAND_REMOVE_SAMPLE,
|
||||
|
||||
PA_COMMAND_GET_SERVER_INFO,
|
||||
|
||||
PA_COMMAND_GET_SINK_INFO,
|
||||
PA_COMMAND_GET_SINK_INFO_LIST,
|
||||
PA_COMMAND_GET_SOURCE_INFO,
|
||||
PA_COMMAND_GET_SOURCE_INFO_LIST,
|
||||
PA_COMMAND_GET_MODULE_INFO,
|
||||
PA_COMMAND_GET_MODULE_INFO_LIST,
|
||||
PA_COMMAND_GET_CLIENT_INFO,
|
||||
PA_COMMAND_GET_CLIENT_INFO_LIST,
|
||||
PA_COMMAND_GET_SINK_INPUT_INFO,
|
||||
PA_COMMAND_GET_SINK_INPUT_INFO_LIST,
|
||||
PA_COMMAND_GET_SOURCE_OUTPUT_INFO,
|
||||
PA_COMMAND_GET_SOURCE_OUTPUT_INFO_LIST,
|
||||
PA_COMMAND_GET_SAMPLE_INFO,
|
||||
PA_COMMAND_GET_SAMPLE_INFO_LIST,
|
||||
|
||||
PA_COMMAND_SUBSCRIBE,
|
||||
PA_COMMAND_SUBSCRIBE_EVENT,
|
||||
|
||||
PA_COMMAND_SET_SINK_VOLUME,
|
||||
PA_COMMAND_SET_SINK_INPUT_VOLUME,
|
||||
|
||||
PA_COMMAND_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
PA_ERROR_OK,
|
||||
PA_ERROR_ACCESS,
|
||||
PA_ERROR_COMMAND,
|
||||
PA_ERROR_INVALID,
|
||||
PA_ERROR_EXIST,
|
||||
PA_ERROR_NOENTITY,
|
||||
PA_ERROR_CONNECTIONREFUSED,
|
||||
PA_ERROR_PROTOCOL,
|
||||
PA_ERROR_TIMEOUT,
|
||||
PA_ERROR_AUTHKEY,
|
||||
PA_ERROR_INTERNAL,
|
||||
PA_ERROR_CONNECTIONTERMINATED,
|
||||
PA_ERROR_KILLED,
|
||||
PA_ERROR_INVALIDSERVER,
|
||||
PA_ERROR_MAX
|
||||
};
|
||||
|
||||
#define PA_NATIVE_COOKIE_LENGTH 256
|
||||
#define PA_NATIVE_COOKIE_FILE ".polypaudio-cookie"
|
||||
|
||||
enum pa_subscription_mask {
|
||||
PA_SUBSCRIPTION_MASK_NULL = 0,
|
||||
PA_SUBSCRIPTION_MASK_SINK = 1,
|
||||
PA_SUBSCRIPTION_MASK_SOURCE = 2,
|
||||
PA_SUBSCRIPTION_MASK_SINK_INPUT = 4,
|
||||
PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT = 8,
|
||||
PA_SUBSCRIPTION_MASK_MODULE = 16,
|
||||
PA_SUBSCRIPTION_MASK_CLIENT = 32,
|
||||
PA_SUBSCRIPTION_MASK_SAMPLE_CACHE = 64,
|
||||
};
|
||||
|
||||
enum pa_subscription_event_type {
|
||||
PA_SUBSCRIPTION_EVENT_SINK = 0,
|
||||
PA_SUBSCRIPTION_EVENT_SOURCE = 1,
|
||||
PA_SUBSCRIPTION_EVENT_SINK_INPUT = 2,
|
||||
PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT = 3,
|
||||
PA_SUBSCRIPTION_EVENT_MODULE = 4,
|
||||
PA_SUBSCRIPTION_EVENT_CLIENT = 5,
|
||||
PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE = 6,
|
||||
PA_SUBSCRIPTION_EVENT_FACILITY_MASK = 7,
|
||||
|
||||
PA_SUBSCRIPTION_EVENT_NEW = 0,
|
||||
PA_SUBSCRIPTION_EVENT_CHANGE = 16,
|
||||
PA_SUBSCRIPTION_EVENT_REMOVE = 32,
|
||||
PA_SUBSCRIPTION_EVENT_TYPE_MASK = 16+32,
|
||||
};
|
||||
|
||||
#define pa_subscription_match_flags(m, t) (!!((m) & (1 << ((t) & PA_SUBSCRIPTION_EVENT_FACILITY_MASK))))
|
||||
|
||||
PA_C_DECL_END
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue