MPD
Main Page
Data Structures
Files
File List
Globals
src
output_internal.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2003-2010 The Music Player Daemon Project
3
* http://www.musicpd.org
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License along
16
* with this program; if not, write to the Free Software Foundation, Inc.,
17
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
*/
19
20
#ifndef MPD_OUTPUT_INTERNAL_H
21
#define MPD_OUTPUT_INTERNAL_H
22
23
#include "
audio_format.h
"
24
#include "
pcm_buffer.h
"
25
26
#include <glib.h>
27
28
#include <time.h>
29
30
enum
audio_output_command
{
31
AO_COMMAND_NONE
= 0,
32
AO_COMMAND_ENABLE
,
33
AO_COMMAND_DISABLE
,
34
AO_COMMAND_OPEN
,
35
40
AO_COMMAND_REOPEN
,
41
42
AO_COMMAND_CLOSE
,
43
AO_COMMAND_PAUSE
,
44
49
AO_COMMAND_DRAIN
,
50
51
AO_COMMAND_CANCEL
,
52
AO_COMMAND_KILL
53
};
54
55
struct
audio_output
{
59
const
char
*
name
;
60
64
const
struct
audio_output_plugin
*
plugin
;
65
70
void
*
data
;
71
77
struct
mixer
*
mixer
;
78
83
bool
always_on
;
84
88
bool
enabled
;
89
94
bool
really_enabled
;
95
104
bool
open
;
105
110
bool
pause
;
111
119
bool
allow_play
;
120
126
GTimer *
fail_timer
;
127
131
struct
audio_format
config_audio_format
;
132
137
struct
audio_format
in_audio_format
;
138
145
struct
audio_format
out_audio_format
;
146
150
struct
pcm_buffer
cross_fade_buffer
;
151
156
struct
filter
*
filter
;
157
162
struct
filter
*
replay_gain_filter
;
163
168
unsigned
replay_gain_serial
;
169
175
struct
filter
*
other_replay_gain_filter
;
176
181
unsigned
other_replay_gain_serial
;
182
189
struct
filter
*
convert_filter
;
190
195
GThread *
thread
;
196
200
enum
audio_output_command
command
;
201
205
const
struct
music_pipe *
pipe
;
206
211
GMutex *
mutex
;
212
217
GCond *
cond
;
218
225
const
struct
music_chunk
*
chunk
;
226
230
bool
chunk_finished
;
231
};
232
237
extern
struct
notify
audio_output_client_notify
;
238
239
static
inline
bool
240
audio_output_is_open
(
const
struct
audio_output
*ao)
241
{
242
return
ao->
open
;
243
}
244
245
static
inline
bool
246
audio_output_command_is_finished
(
const
struct
audio_output
*ao)
247
{
248
return
ao->
command
==
AO_COMMAND_NONE
;
249
}
250
251
#endif
Generated on Sun Aug 12 2012 21:58:00 for MPD by
1.8.2