summaryrefslogtreecommitdiffstats
path: root/uisimulator/common/libmad/synth.h
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2002-05-12 11:23:25 +0000
committerDave Chapman <dave@dchapman.com>2002-05-12 11:23:25 +0000
commit43bc6e62e410adfe4238012becca7a0522cf9435 (patch)
tree0b626b9035eeb635274b7ffd15dcb508228f6e5a /uisimulator/common/libmad/synth.h
parentd2d5ac3e46af867166cdb98f1370b43e11c999b4 (diff)
downloadrockbox-43bc6e62e410adfe4238012becca7a0522cf9435.tar.gz
rockbox-43bc6e62e410adfe4238012becca7a0522cf9435.zip
libmad version 0.14.2b
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@550 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'uisimulator/common/libmad/synth.h')
-rw-r--r--uisimulator/common/libmad/synth.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/uisimulator/common/libmad/synth.h b/uisimulator/common/libmad/synth.h
new file mode 100644
index 0000000000..2c9d5c886c
--- /dev/null
+++ b/uisimulator/common/libmad/synth.h
@@ -0,0 +1,69 @@
+/*
+ * libmad - MPEG audio decoder library
+ * Copyright (C) 2000-2001 Robert Leslie
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * $Id$
+ */
+
+# ifndef LIBMAD_SYNTH_H
+# define LIBMAD_SYNTH_H
+
+# include "fixed.h"
+# include "frame.h"
+
+struct mad_pcm {
+ unsigned int samplerate; /* sampling frequency (Hz) */
+ unsigned short channels; /* number of channels */
+ unsigned short length; /* number of samples per channel */
+ mad_fixed_t samples[2][1152]; /* PCM output samples [ch][sample] */
+};
+
+struct mad_synth {
+ mad_fixed_t filter[2][2][2][16][8]; /* polyphase filterbank outputs */
+ /* [ch][eo][peo][s][v] */
+
+ unsigned int phase; /* current processing phase */
+
+ struct mad_pcm pcm; /* PCM output */
+};
+
+/* single channel PCM selector */
+enum {
+ MAD_PCM_CHANNEL_SINGLE = 0
+};
+
+/* dual channel PCM selector */
+enum {
+ MAD_PCM_CHANNEL_DUAL_1 = 0,
+ MAD_PCM_CHANNEL_DUAL_2 = 1
+};
+
+/* stereo PCM selector */
+enum {
+ MAD_PCM_CHANNEL_STEREO_LEFT = 0,
+ MAD_PCM_CHANNEL_STEREO_RIGHT = 1
+};
+
+void mad_synth_init(struct mad_synth *);
+
+# define mad_synth_finish(synth) /* nothing */
+
+void mad_synth_mute(struct mad_synth *);
+
+void mad_synth_frame(struct mad_synth *, struct mad_frame const *);
+
+# endif