1 /* media-sox.h - analyse audio files or streams via sox
3 Copyright (C) 2006 Sebastian Freundt
5 This file is part of SXEmacs
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.
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.
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/>. */
21 /* Synched up with: Not in FSF. */
23 #ifndef INCLUDED_media_sox_h_
24 #define INCLUDED_media_sox_h_
26 #if defined HAVE_SOX_H
28 #elif defined HAVE_ST_H
31 # error "How on earth did you get here?"
34 #if defined HAVE_SOX_FORMAT_T
35 # define sxe_sox_t sox_format_t*
36 #elif defined HAVE_FT_T
37 # define sxe_sox_t ft_t
39 # error "How could you ever reach this?"
42 #if defined HAVE_SOX_SIGNALINFO_T
43 # define sxe_sox_signalinfo_t sox_signalinfo_t
44 #elif defined HAVE_ST_SIGNALINFO_T
45 # define sxe_sox_signalinfo_t st_signalinfo_t
47 # error "Congrats! Y0u won 6 packs of V|AGRA! Go and have fun!"
50 #if defined HAVE_SOX_SSIZE_T
51 # define sxe_sox_ssize_t sox_ssize_t
52 #elif defined HAVE_ST_SSIZE_T
53 # define sxe_sox_ssize_t st_ssize_t
55 # define sxe_sox_ssize_t ssize_t
58 #if defined HAVE_SOX_SAMPLE_T
59 # define sxe_sox_sample_t sox_sample_t
60 #elif defined HAVE_ST_SAMPLE_T
61 # define sxe_sox_sample_t st_sample_t
63 # error "Thou nutter! Serves thee right!"
66 #if defined HAVE_SOX_H
67 # define sxe_sox_open_read sox_open_read
68 # define sxe_sox_close sox_close
69 # define sxe_sox_read sox_read
70 # define sxe_sox_seek sox_seek
71 #elif defined HAVE_ST_H
72 # define sxe_sox_open_read st_open_read
73 # define sxe_sox_close st_close
74 # define sxe_sox_read st_read
75 # define sxe_sox_seek st_seek
77 # error "Nope! I'm upset now. Gimme a pint or another to cheer me up!"
82 #if defined SOX_SIZE_BYTE && \
83 defined SOX_SIZE_8BIT && \
84 defined SOX_SIZE_16BIT && \
85 defined SOX_SIZE_24BIT && \
86 defined SOX_SIZE_32BIT && \
87 defined SOX_SIZE_64BIT
88 # define SXE_SIZE_BYTE SOX_SIZE_BYTE
89 # define SXE_SIZE_8BIT SOX_SIZE_8BIT
90 # define SXE_SIZE_16BIT SOX_SIZE_16BIT
91 # define SXE_SIZE_24BIT SOX_SIZE_24BIT
92 # define SXE_SIZE_32BIT SOX_SIZE_32BIT
93 # define SXE_SIZE_64BIT SOX_SIZE_64BIT
94 #elif defined ST_SIZE_BYTE && \
95 defined ST_SIZE_8BIT && \
96 defined ST_SIZE_16BIT && \
97 defined ST_SIZE_32BIT && \
99 # define SXE_SIZE_BYTE ST_SIZE_BYTE
100 # define SXE_SIZE_8BIT ST_SIZE_8BIT
101 # define SXE_SIZE_16BIT ST_SIZE_16BIT
102 # define SXE_SIZE_24BIT ST_SIZE_24BIT
103 # define SXE_SIZE_32BIT ST_SIZE_32BIT
104 # define SXE_SIZE_64BIT ST_SIZE_64BIT
105 #elif defined HAVE_SOX_SIGNALINFO_T_PRECISION
106 /* we don't need this bugger at all */
108 # error "Guess what, I will compile myself as rootkit! It's too boring with you"
113 extern Lisp_Object Qsox;
115 DECLARE_MEDIA_DRIVER(media_sox);
117 #endif /* INCLUDED_media_sox_h_ */