pulseaudio.h 4.11 KB
Newer Older
Lennart Poettering's avatar
Lennart Poettering committed
1
2
#ifndef foopulseaudiohfoo
#define foopulseaudiohfoo
3

4
5
6
/* $Id$ */

/***
Lennart Poettering's avatar
Lennart Poettering committed
7
  This file is part of PulseAudio.
8
 
Lennart Poettering's avatar
Lennart Poettering committed
9
  PulseAudio is free software; you can redistribute it and/or modify
10
11
12
  it under the terms of the GNU Lesser General Public License as
  published by the Free Software Foundation; either version 2.1 of the
  License, or (at your option) any later version.
13
 
Lennart Poettering's avatar
Lennart Poettering committed
14
  PulseAudio is distributed in the hope that it will be useful, but
15
16
  WITHOUT ANY WARRANTY; without even the implied warranty of
  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
Lennart Poettering's avatar
Lennart Poettering committed
20
  License along with PulseAudio; if not, write to the Free Software
21
22
23
24
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
  USA.
***/

Lennart Poettering's avatar
Lennart Poettering committed
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <pulse/mainloop-api.h>
#include <pulse/sample.h>
#include <pulse/def.h>
#include <pulse/context.h>
#include <pulse/stream.h>
#include <pulse/introspect.h>
#include <pulse/subscribe.h>
#include <pulse/scache.h>
#include <pulse/version.h>
#include <pulse/error.h>
#include <pulse/operation.h>
#include <pulse/channelmap.h>
#include <pulse/volume.h>
#include <pulse/xmalloc.h>
#include <pulse/utf8.h>
#include <pulse/thread-mainloop.h>
#include <pulse/mainloop.h>
#include <pulse/mainloop-signal.h>
#include <pulse/util.h>
#include <pulse/timeval.h>
Lennart Poettering's avatar
Lennart Poettering committed
45

Lennart Poettering's avatar
Lennart Poettering committed
46
/** \file
Lennart Poettering's avatar
Lennart Poettering committed
47
 * Include all pulselib header files at once. The following
48
49
50
 * files are included: \ref mainloop-api.h, \ref sample.h, \ref def.h,
 * \ref context.h, \ref stream.h, \ref introspect.h, \ref subscribe.h,
 * \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
53
 * thread-mainloop.h, \ref mainloop.h, \ref util.h, \ref timeval.h and
 * \ref mainloop-signal.h at once */
Lennart Poettering's avatar
Lennart Poettering committed
54
55
56
57
58

/** \mainpage
 *
 * \section intro_sec Introduction
 * 
Lennart Poettering's avatar
Lennart Poettering committed
59
 * This document describes the client API for the pulseaudio sound
60
61
 * server. The API comes in two flavours to accomodate different styles
 * of applications and different needs in complexity:
Lennart Poettering's avatar
Lennart Poettering committed
62
63
 * 
 * \li The complete but somewhat complicated to use asynchronous API
64
 * \li The simplified, easy to use, but limited synchronous API
Lennart Poettering's avatar
Lennart Poettering committed
65
 *
66
67
68
69
70
 * All strings in Polypaudio are in the UTF-8 encoding, regardless of current
 * locale. Some functions will filter invalid sequences from the string, some
 * will simply fail. To ensure reliable behaviour, make sure everything you
 * pass to the API is already in UTF-8.
 
Lennart Poettering's avatar
Lennart Poettering committed
71
72
73
74
 * \section simple_sec Simple API
 *
 * Use this if you develop your program in synchronous style and just
 * need a way to play or record data on the sound server. See
75
 * \subpage simple for more details.
Lennart Poettering's avatar
Lennart Poettering committed
76
 *
77
 * \section async_sec Asynchronous API
Lennart Poettering's avatar
Lennart Poettering committed
78
 *
79
80
 * Use this if you develop your programs in asynchronous, event loop
 * based style or if you want to use the advanced features of the
Lennart Poettering's avatar
Lennart Poettering committed
81
 * pulseaudio API. A guide can be found in \subpage async.
Lennart Poettering's avatar
Lennart Poettering committed
82
 *
83
84
85
86
87
 * By using the built-in threaded main loop, it is possible to acheive a
 * pseudo-synchronous API, which can be useful in synchronous applications
 * where the simple API is insufficient. See the \ref async page for
 * details.
 *
88
89
 * \section thread_sec Threads
 *
Lennart Poettering's avatar
Lennart Poettering committed
90
 * The pulseaudio client libraries are not designed to be used in a
91
92
 * heavily threaded environment. They are however designed to be reentrant
 * safe.
Lennart Poettering's avatar
Lennart Poettering committed
93
 *
94
 * To use a the libraries in a threaded environment, you must assure that
95
96
97
 * all objects are only used in one thread at a time. Normally, this means
 * that all objects belonging to a single context must be accessed from the
 * 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.
Lennart Poettering's avatar
Lennart Poettering committed
102
103
104
 *
 * \section pkgconfig pkg-config
 *
Lennart Poettering's avatar
Lennart Poettering committed
105
 * The pulseaudio libraries provide pkg-config snippets for the different
106
107
 * modules:
 *
Lennart Poettering's avatar
Lennart Poettering committed
108
 * \li pulselib - The asynchronous API and the internal main loop
109
 *                implementation.
Lennart Poettering's avatar
Lennart Poettering committed
110
111
112
 * \li pulselib-glib12-mainloop - GLIB 1.2 main loop bindings.
 * \li pulselib-glib-mainloop - GLIB 2.x main loop bindings.
 * \li pulselib-simple - The simple pulseaudio API.
Lennart Poettering's avatar
Lennart Poettering committed
113
114
 */

115
#endif