Initial git import
[sxemacs] / src / media / sound-ao.h
1 /* sound-ao.c - play a sound over the libao devices
2
3    Copyright (C) 2006 Sebastian Freundt
4
5 This file is part of SXEmacs
6
7 SXEmacs is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 SXEmacs is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program.  If not, see <http://www.gnu.org/licenses/>. */
19
20
21 /* Synched up with: Not in FSF. */
22
23 #ifndef INCLUDED_sound_ao_h_
24 #define INCLUDED_sound_ao_h_
25
26 #include "sound.h"
27 #include <ao/ao.h>
28
29 typedef struct sound_ao_data_s sound_ao_data_t;
30 typedef struct sound_ao_aj_data_s sound_ao_aj_data_t;
31
32 struct sound_ao_data_s {
33         ao_device *ad;
34         ao_option *options;
35         ao_sample_format *fmt;
36         int driver_id;
37 };
38
39 struct sound_ao_aj_data_s {
40         ao_device *dev;
41
42         /* coercion stuff */
43         media_sample_format_t *msf;
44         int coe_ch_cnt;
45         audio_coerce_chain_t coe_chain[4];
46         mtype_audio_properties *mtap;
47         sxe_mse_volume_args *volargs;
48         sxe_mse_rerate_args *rrargs;
49         int framesize;
50 };
51
52 extern Lisp_Object Qao;         /* initialised in sound.c */
53
54 #define DEVICE_CONNECTED_TO_AO_P(x) 1   /* FIXME: better check */
55
56 DECLARE_AUDIO_DEVICE(sound_ao);
57
58 #ifdef ALL_DEBUG_FLAGS
59 #undef AO_DEBUG_FLAG
60 #define AO_DEBUG_FLAG
61 #endif
62
63 #endif  /* INCLUDED_sound_ao_h_ */