summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-08-27 17:03:38 +0000
committerLennart Poettering <lennart@poettering.net>2004-08-27 17:03:38 +0000
commit8cb1cabfc9a2ffb689f7f4998b81c2c7e18c6f73 (patch)
treec61dff10815ceacb6cefb946ace192900508545a
parent761a895d1f8ac3c20710a884560bc77f3789d3af (diff)
document every polyplib function
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@156 fefdeb5f-60dc-0310-8127-8f9354f1896f
-rw-r--r--doc/README.html.in12
-rw-r--r--doc/todo4
-rw-r--r--polyp/polyplib-introspect.h124
3 files changed, 99 insertions, 41 deletions
diff --git a/doc/README.html.in b/doc/README.html.in
index 8972fe1b..91edbd64 100644
--- a/doc/README.html.in
+++ b/doc/README.html.in
@@ -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
diff --git a/doc/todo b/doc/todo
index c225dd53..aa302298 100644
--- a/doc/todo
+++ b/doc/todo
@@ -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
diff --git a/polyp/polyplib-introspect.h b/polyp/polyplib-introspect.h
index fc7aa123..25a2db5e 100644
--- a/polyp/polyplib-introspect.h
+++ b/polyp/polyplib-introspect.h
@@ -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