~ubuntu-branches/ubuntu/jaunty/pulseaudio/jaunty-updates

« back to all changes in this revision

Viewing changes to src/pulse/pulseaudio.h

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2006-11-12 20:00:18 UTC
  • Revision ID: james.westby@ubuntu.com-20061112200018-oji9njq7rr3te53k
Tags: upstream-0.9.5
ImportĀ upstreamĀ versionĀ 0.9.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef foopulseaudiohfoo
 
2
#define foopulseaudiohfoo
 
3
 
 
4
/* $Id: pulseaudio.h 1038 2006-06-19 23:06:50Z lennart $ */
 
5
 
 
6
/***
 
7
  This file is part of PulseAudio.
 
8
 
 
9
  PulseAudio is free software; you can redistribute it and/or modify
 
10
  it under the terms of the GNU Lesser General Public License as
 
11
  published by the Free Software Foundation; either version 2.1 of the
 
12
  License, or (at your option) any later version.
 
13
 
 
14
  PulseAudio is distributed in the hope that it will be useful, but
 
15
  WITHOUT ANY WARRANTY; without even the implied warranty of
 
16
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 
17
  Lesser General Public License for more details.
 
18
 
 
19
  You should have received a copy of the GNU Lesser General Public
 
20
  License along with PulseAudio; if not, write to the Free Software
 
21
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 
22
  USA.
 
23
***/
 
24
 
 
25
#include <pulse/mainloop-api.h>
 
26
#include <pulse/sample.h>
 
27
#include <pulse/def.h>
 
28
#include <pulse/context.h>
 
29
#include <pulse/stream.h>
 
30
#include <pulse/introspect.h>
 
31
#include <pulse/subscribe.h>
 
32
#include <pulse/scache.h>
 
33
#include <pulse/version.h>
 
34
#include <pulse/error.h>
 
35
#include <pulse/operation.h>
 
36
#include <pulse/channelmap.h>
 
37
#include <pulse/volume.h>
 
38
#include <pulse/xmalloc.h>
 
39
#include <pulse/utf8.h>
 
40
#include <pulse/thread-mainloop.h>
 
41
#include <pulse/mainloop.h>
 
42
#include <pulse/mainloop-signal.h>
 
43
#include <pulse/util.h>
 
44
#include <pulse/timeval.h>
 
45
 
 
46
/** \file
 
47
 * Include all libpulse header files at once. The following
 
48
 * files are included: \ref mainloop-api.h, \ref sample.h, \ref def.h,
 
49
 * \ref context.h, \ref stream.h, \ref introspect.h, \ref subscribe.h,
 
50
 * \ref scache.h, \ref version.h, \ref error.h, \ref channelmap.h,
 
51
 * \ref operation.h,\ref volume.h, \ref xmalloc.h, \ref utf8.h, \ref
 
52
 * thread-mainloop.h, \ref mainloop.h, \ref util.h, \ref timeval.h and
 
53
 * \ref mainloop-signal.h at once */
 
54
 
 
55
/** \mainpage
 
56
 *
 
57
 * \section intro_sec Introduction
 
58
 * 
 
59
 * This document describes the client API for the PulseAudio sound
 
60
 * server. The API comes in two flavours to accomodate different styles
 
61
 * of applications and different needs in complexity:
 
62
 * 
 
63
 * \li The complete but somewhat complicated to use asynchronous API
 
64
 * \li The simplified, easy to use, but limited synchronous API
 
65
 *
 
66
 * All strings in PulseAudio are in the UTF-8 encoding, regardless of current
 
67
 * locale. Some functions will filter invalid sequences from the string, some
 
68
 * will simply fail. To ensure reliable behaviour, make sure everything you
 
69
 * pass to the API is already in UTF-8.
 
70
 
 
71
 * \section simple_sec Simple API
 
72
 *
 
73
 * Use this if you develop your program in synchronous style and just
 
74
 * need a way to play or record data on the sound server. See
 
75
 * \subpage simple for more details.
 
76
 *
 
77
 * \section async_sec Asynchronous API
 
78
 *
 
79
 * Use this if you develop your programs in asynchronous, event loop
 
80
 * based style or if you want to use the advanced features of the
 
81
 * PulseAudio API. A guide can be found in \subpage async.
 
82
 *
 
83
 * By using the built-in threaded main loop, it is possible to acheive a
 
84
 * pseudo-synchronous API, which can be useful in synchronous applications
 
85
 * where the simple API is insufficient. See the \ref async page for
 
86
 * details.
 
87
 *
 
88
 * \section thread_sec Threads
 
89
 *
 
90
 * The PulseAudio client libraries are not designed to be used in a
 
91
 * heavily threaded environment. They are however designed to be reentrant
 
92
 * safe.
 
93
 *
 
94
 * To use a the libraries in a threaded environment, you must assure that
 
95
 * all objects are only used in one thread at a time. Normally, this means
 
96
 * that all objects belonging to a single context must be accessed from the
 
97
 * same thread.
 
98
 *
 
99
 * The included main loop implementation is also not thread safe. Take care
 
100
 * to make sure event lists are not manipulated when any other code is
 
101
 * using the main loop.
 
102
 *
 
103
 * \section pkgconfig pkg-config
 
104
 *
 
105
 * The PulseAudio libraries provide pkg-config snippets for the different
 
106
 * modules:
 
107
 *
 
108
 * \li libpulse - The asynchronous API and the internal main loop implementation.
 
109
 * \li libpulse-mainloop-glib12 - GLIB 1.2 main loop bindings.
 
110
 * \li libpulse-mainloop-glib - GLIB 2.x main loop bindings.
 
111
 * \li libpulse-simple - The simple PulseAudio API.
 
112
 */
 
113
 
 
114
#endif