document every polyplib function

git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@156 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
Lennart Poettering 2004-08-27 17:03:38 +00:00
parent 761a895d1f
commit 8cb1cabfc9
3 changed files with 99 additions and 41 deletions

View file

@ -42,6 +42,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</p>
<h2><a name="news">News</a></h2>
<div class="news-date">Fri Aug 27 2004: </div> <p class="news-text"><a
href="@PACKAGE_URL@polypaudio-0.3.tar.gz">Version 0.3</a> released;
changes include: support for both glib 2.0 and glib 1.2, future cancellation, API updates, many fixes.</p>
<div class="news-date">Fri Aug 20 2004: </div> <p class="news-text"><a
href="@PACKAGE_URL@polypaudio-0.2.tar.gz">Version 0.2</a> released;
changes include: added sample cache, introspection API, client API
@ -84,12 +88,16 @@ attempt to write a sound server <a
href="http://asd.sf.net/">asd</a>.</p>
<p>A GTK GUI manager application for polypaudio is the <a
href="http://0pointer.de/lennart/projects/paman/">Polypaudio Manager</a>.</p>
href="http://0pointer.de/lennart/projects/paman/">Polypaudio Manager</a>. There are output plugins for <a href="http://0pointer.de/lennart/projects/xmms-polyp/">XMMS</a> and <a href="http://0pointer.de/lennart/projects/libao-polyp/">libao</a>.</p>
<h2><a name="status">Status</a></h2>
<p>Version @PACKAGE_VERSION@ is quite usable. It matches and supersedes ESOUND's feature set in nearly all areas.</p>
<p><b>Warning:</b> polypaudio's client API and protocol are not stable
yet. The client interface is still a moving target and changes from
release to release. The client API's library version number is currently fixed to <tt>0.0.0</tt>.</p>
<h2><a name="documentation">Documentation</a></h2>
<p>There is some preliminary documentation available: <a

View file

@ -14,7 +14,6 @@
- cleanup tagstruct (add s32, pa_volume_t, pa_usec_t)
- xmlrpc
- remove all gcc warnings
- complete doxygen coverage
** later ***
- slp/rendezvous
@ -24,8 +23,9 @@
***********
backends for:
- xmms
- mplayer
- sdl
- gstreamer
- portaudio
- python

View file

@ -29,38 +29,64 @@
#include "cdecl.h"
/** \file
* Routines for daemon introspection. */
*
* Routines for daemon introspection. When enumerating all entitites
* of a certain kind, use the pa_context_xxx_list() functions. The
* specified callback function is called once for each entry. The
* enumeration is finished by a call to the callback function with
* is_last=1 and i=NULL. Strings referenced in pa_xxx_info structures
* and the structures themselves point to internal memory that may not
* be modified. That memory is only valid during the call to the
* callback function. A deep copy is required if you need this data
* outside the callback functions. An error is signalled by a call to
* the callback function with i=NULL and is_last=0.
*
* When using the routines that ask fo a single entry only, a callback
* with the same signature is used. However, no finishing call to the
* routine is issued. */
PA_C_DECL_BEGIN
/** Stores information about sinks */
struct pa_sink_info {
const char *name;
uint32_t index;
const char *description;
struct pa_sample_spec sample_spec;
uint32_t owner_module;
pa_volume_t volume;
uint32_t monitor_source;
const char *monitor_source_name;
pa_usec_t latency;
const char *name; /**< Name of the sink */
uint32_t index; /**< Index of the sink */
const char *description; /**< Description of this sink */
struct pa_sample_spec sample_spec; /**< Sample spec of this sink */
uint32_t owner_module; /**< Index of the owning module of this sink, or PA_INVALID_INDEX */
pa_volume_t volume; /**< Volume of the sink */
uint32_t monitor_source; /**< Index of the monitor source connected to this sink */
const char *monitor_source_name; /**< The name of the monitor source */
pa_usec_t latency; /**< Length of the playback buffer of this sink */
};
/** Get information about a sink by its name */
struct pa_operation* pa_context_get_sink_info_by_name(struct pa_context *c, const char *name, void (*cb)(struct pa_context *c, const struct pa_sink_info *i, int is_last, void *userdata), void *userdata);
/** Get information about a sink by its index */
struct pa_operation* pa_context_get_sink_info_by_index(struct pa_context *c, uint32_t id, void (*cb)(struct pa_context *c, const struct pa_sink_info *i, int is_last, void *userdata), void *userdata);
/** Get the complete sink list */
struct pa_operation* pa_context_get_sink_info_list(struct pa_context *c, void (*cb)(struct pa_context *c, const struct pa_sink_info *i, int is_last, void *userdata), void *userdata);
struct pa_source_info {
const char *name;
uint32_t index;
const char *description;
struct pa_sample_spec sample_spec;
uint32_t owner_module;
uint32_t monitor_of_sink;
const char *monitor_of_sink_name;
/** Stores information about sources */
struct pa_source_info {
const char *name ; /**< Name of the source */
uint32_t index; /**< Index of the source */
const char *description; /**< Description of this source */
struct pa_sample_spec sample_spec; /**< Sample spec of this source */
uint32_t owner_module; /**< Owning module index, or PA_INVALID_INDEX */
uint32_t monitor_of_sink; /**< If this is a monitor source the index of the owning sink, otherwise PA_INVALID_INDEX */
const char *monitor_of_sink_name; /**< Name of the owning sink, or PA_INVALID_INDEX */
};
/** Get information about a source by its name */
struct pa_operation* pa_context_get_source_info_by_name(struct pa_context *c, const char *name, void (*cb)(struct pa_context *c, const struct pa_source_info *i, int is_last, void *userdata), void *userdata);
/** Get information about a source by its index */
struct pa_operation* pa_context_get_source_info_by_index(struct pa_context *c, uint32_t id, void (*cb)(struct pa_context *c, const struct pa_source_info *i, int is_last, void *userdata), void *userdata);
/** Get the complete source list */
struct pa_operation* pa_context_get_source_info_list(struct pa_context *c, void (*cb)(struct pa_context *c, const struct pa_source_info *i, int is_last, void *userdata), void *userdata);
/** Server information */
@ -72,30 +98,41 @@ struct pa_server_info {
struct pa_sample_spec sample_spec; /**< Default sample specification */
};
/** Get some information about the server */
struct pa_operation* pa_context_get_server_info(struct pa_context *c, void (*cb)(struct pa_context *c, const struct pa_server_info*i, void *userdata), void *userdata);
/** Stores information about modules */
struct pa_module_info {
uint32_t index;
const char*name, *argument;
uint32_t n_used, auto_unload;
uint32_t index; /**< Index of the module */
const char*name, /**< Name of the module */
*argument; /**< Argument string of the module */
uint32_t n_used, /**< Usage counter or PA_INVALID_INDEX */
auto_unload; /**< Non-zero if this is an autoloaded module */
};
/** Get some information about a module by its index */
struct pa_operation* pa_context_get_module_info(struct pa_context *c, uint32_t index, void (*cb)(struct pa_context *c, const struct pa_module_info*i, int is_last, void *userdata), void *userdata);
/** Get the complete list of currently loaded modules */
struct pa_operation* pa_context_get_module_info_list(struct pa_context *c, void (*cb)(struct pa_context *c, const struct pa_module_info*i, int is_last, void *userdata), void *userdata);
/** Stores information about clients */
struct pa_client_info {
uint32_t index;
const char *name;
uint32_t owner_module;
const char *protocol_name;
uint32_t index; /**< Index of this client */
const char *name; /**< Name of this client */
uint32_t owner_module; /**< Index of the owning module, or PA_INVALID_INDEX */
const char *protocol_name; /**< A string describing the protocol name this client is connected over (i.e. "ESOUND", "NATIVE", "SIMPLE") */
};
/** Get information about a client by its index */
struct pa_operation* pa_context_get_client_info(struct pa_context *c, uint32_t index, void (*cb)(struct pa_context *c, const struct pa_client_info*i, int is_last, void *userdata), void *userdata);
/** Get the complete client list */
struct pa_operation* pa_context_get_client_info_list(struct pa_context *c, void (*cb)(struct pa_context *c, const struct pa_client_info*i, int is_last, void *userdata), void *userdata);
/** Stores information about sink inputs */
struct pa_sink_input_info {
uint32_t index; /**< Name of this index */
uint32_t index; /**< Index of the sink input */
const char *name; /**< Name of the sink input */
uint32_t owner_module; /**< Index of the module this sink input belongs to, or PA_INVALID_INDEX when it does not belong to any module */
uint32_t client; /**< Index of the client this sink input belongs to, or PA_INVALID_INDEX when it does not belong to any client */
@ -106,19 +143,26 @@ struct pa_sink_input_info {
pa_usec_t sink_usec; /**< Latency of the sink device, see pa_latency_info for details */
};
/** Get some information about a sink input by its index */
struct pa_operation* pa_context_get_sink_input_info(struct pa_context *c, uint32_t index, void (*cb)(struct pa_context *c, const struct pa_sink_input_info*i, int is_last, void *userdata), void *userdata);
/** Get the complete sink input list */
struct pa_operation* pa_context_get_sink_input_info_list(struct pa_context *c, void (*cb)(struct pa_context *c, const struct pa_sink_input_info*i, int is_last, void *userdata), void *userdata);
/** Stores information about source outputs */
struct pa_source_output_info {
uint32_t index;
const char *name;
uint32_t owner_module;
uint32_t client;
uint32_t source;
struct pa_sample_spec sample_spec;
uint32_t index; /**< Index of the sink input */
const char *name; /**< Name of the sink input */
uint32_t owner_module; /**< Index of the module this sink input belongs to, or PA_INVALID_INDEX when it does not belong to any module */
uint32_t client; /**< Index of the client this sink input belongs to, or PA_INVALID_INDEX when it does not belong to any client */
uint32_t source; /**< Index of the connected source */
struct pa_sample_spec sample_spec; /**< The sample specification of the source output */
};
/** Get information about a source output by its index */
struct pa_operation* pa_context_get_source_output_info(struct pa_context *c, uint32_t index, void (*cb)(struct pa_context *c, const struct pa_source_output_info*i, int is_last, void *userdata), void *userdata);
/** Get the complete list of source outputs */
struct pa_operation* pa_context_get_source_output_info_list(struct pa_context *c, void (*cb)(struct pa_context *c, const struct pa_source_output_info*i, int is_last, void *userdata), void *userdata);
/** Set the volume of a sink device specified by its index */
@ -141,16 +185,22 @@ struct pa_stat_info {
/** Get daemon memory block statistics */
struct pa_operation* pa_context_stat(struct pa_context *c, void (*cb)(struct pa_context *c, const struct pa_stat_info *i, void *userdata), void *userdata);
/** Stores information about sample cache entries */
struct pa_sample_info {
uint32_t index;
const char *name;
uint32_t volume;
struct pa_sample_spec sample_spec;
uint32_t duration;
uint32_t index; /**< Index of this entry */
const char *name; /**< Name of this entry */
pa_volume_t volume; /**< Default volume of this entry */
struct pa_sample_spec sample_spec; /**< Sample specification of the sampel */
pa_usec_t duration; /**< Duration of this entry */
};
/** Get information about a sample by its name */
struct pa_operation* pa_context_get_sample_info_by_name(struct pa_context *c, const char *name, void (*cb)(struct pa_context *c, const struct pa_sample_info *i, int is_last, void *userdata), void *userdata);
/** Get information about a sample by its index */
struct pa_operation* pa_context_get_sample_info_by_index(struct pa_context *c, uint32_t index, void (*cb)(struct pa_context *c, const struct pa_sample_info *i, int is_last, void *userdata), void *userdata);
/** Get the complete list of samples stored in the daemon. */
struct pa_operation* pa_context_get_sample_info_list(struct pa_context *c, void (*cb)(struct pa_context *c, const struct pa_sample_info *i, int is_last, void *userdata), void *userdata);
PA_C_DECL_END