MP3 Player. You can change fwd/rev speed and skip. see: http://mbed.org/users/okini3939/notebook/lpc4088_madplayer/

Dependencies:   I2SSlave SDFileSystem TLV320 mbed

Committer:
okini3939
Date:
Tue Feb 18 00:22:50 2014 +0000
Revision:
0:8ba6230eefbd
1st build

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:8ba6230eefbd 1 /*
okini3939 0:8ba6230eefbd 2 * libmad - MPEG audio decoder library
okini3939 0:8ba6230eefbd 3 * Copyright (C) 2000-2004 Underbit Technologies, Inc.
okini3939 0:8ba6230eefbd 4 *
okini3939 0:8ba6230eefbd 5 * This program is free software; you can redistribute it and/or modify
okini3939 0:8ba6230eefbd 6 * it under the terms of the GNU General Public License as published by
okini3939 0:8ba6230eefbd 7 * the Free Software Foundation; either version 2 of the License, or
okini3939 0:8ba6230eefbd 8 * (at your option) any later version.
okini3939 0:8ba6230eefbd 9 *
okini3939 0:8ba6230eefbd 10 * This program is distributed in the hope that it will be useful,
okini3939 0:8ba6230eefbd 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
okini3939 0:8ba6230eefbd 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
okini3939 0:8ba6230eefbd 13 * GNU General Public License for more details.
okini3939 0:8ba6230eefbd 14 *
okini3939 0:8ba6230eefbd 15 * You should have received a copy of the GNU General Public License
okini3939 0:8ba6230eefbd 16 * along with this program; if not, write to the Free Software
okini3939 0:8ba6230eefbd 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
okini3939 0:8ba6230eefbd 18 *
okini3939 0:8ba6230eefbd 19 */
okini3939 0:8ba6230eefbd 20 /************************************************************************/
okini3939 0:8ba6230eefbd 21 /* This library has been changed by Andreas Gruen to work on an LPC1768
okini3939 0:8ba6230eefbd 22 * Because the available RAM is too small for decoding, it uses
okini3939 0:8ba6230eefbd 23 * some of the AHB-RAM dedicated to the Ethernet peripheral to
okini3939 0:8ba6230eefbd 24 * store parts of the mad_decoder structure.
okini3939 0:8ba6230eefbd 25 * Therefore the Ethernet module cannot be used !
okini3939 0:8ba6230eefbd 26 * The address is defined by AHBMEM below, ~12kByte are used
okini3939 0:8ba6230eefbd 27 * All other changes are made only to satisfy the mbed online compiler,
okini3939 0:8ba6230eefbd 28 * which treats all files as C++ code and does not allow additional
okini3939 0:8ba6230eefbd 29 * defines on the command line.
okini3939 0:8ba6230eefbd 30 * The changes are:
okini3939 0:8ba6230eefbd 31 * forced inclusion of "config.h" in all files
okini3939 0:8ba6230eefbd 32 * forced inclusion of "mbed.h" in all files via "config.h"
okini3939 0:8ba6230eefbd 33 * typecasts from void *
okini3939 0:8ba6230eefbd 34 * renaming of all .c-Files to .cpp
okini3939 0:8ba6230eefbd 35 * renaming of all .dat-Files to .h
okini3939 0:8ba6230eefbd 36 *
okini3939 0:8ba6230eefbd 37 * The exact changes can bee seen by a diff-tool comparing with
okini3939 0:8ba6230eefbd 38 * the libmad-0.15.1b source.
okini3939 0:8ba6230eefbd 39 * This modified version does no longer compile for other systems.
okini3939 0:8ba6230eefbd 40 * There are still one compiler warning that can be ignored.
okini3939 0:8ba6230eefbd 41 */
okini3939 0:8ba6230eefbd 42
okini3939 0:8ba6230eefbd 43 # ifndef LIBMAD_CONFIG_H
okini3939 0:8ba6230eefbd 44 # define LIBMAD_CONFIG_H
okini3939 0:8ba6230eefbd 45
okini3939 0:8ba6230eefbd 46 #if defined(TARGET_LPC1768) || defined(TARGET_LPC4088)
okini3939 0:8ba6230eefbd 47 #include "mbed.h"
okini3939 0:8ba6230eefbd 48 void *mad_malloc(unsigned int sz);
okini3939 0:8ba6230eefbd 49 void reset_ahb_mem(void);
okini3939 0:8ba6230eefbd 50 #endif
okini3939 0:8ba6230eefbd 51
okini3939 0:8ba6230eefbd 52 /* config.h. Generated by configure. */
okini3939 0:8ba6230eefbd 53 /* config.h.in. Generated from configure.ac by autoheader. */
okini3939 0:8ba6230eefbd 54
okini3939 0:8ba6230eefbd 55
okini3939 0:8ba6230eefbd 56 /* used by USB
okini3939 0:8ba6230eefbd 57 #define AHBMEM ((void *)0x2007C000) */
okini3939 0:8ba6230eefbd 58
okini3939 0:8ba6230eefbd 59 /* used by ethernet */
okini3939 0:8ba6230eefbd 60 #define AHBMEM ((void *)0x20080000)
okini3939 0:8ba6230eefbd 61 #define AHBMEMSIZE 16300
okini3939 0:8ba6230eefbd 62
okini3939 0:8ba6230eefbd 63 #define FPM_DEFAULT
okini3939 0:8ba6230eefbd 64 /* Define to enable diagnostic debugging support. */
okini3939 0:8ba6230eefbd 65 /* #undef DEBUG */
okini3939 0:8ba6230eefbd 66
okini3939 0:8ba6230eefbd 67 /* Define to enable experimental code. */
okini3939 0:8ba6230eefbd 68 /* #undef EXPERIMENTAL */
okini3939 0:8ba6230eefbd 69
okini3939 0:8ba6230eefbd 70 /* Define to 1 if you have the <assert.h> header file. */
okini3939 0:8ba6230eefbd 71 /*#define HAVE_ASSERT_H 1*/
okini3939 0:8ba6230eefbd 72
okini3939 0:8ba6230eefbd 73 /* Define to 1 if you have the <dlfcn.h> header file. */
okini3939 0:8ba6230eefbd 74 /* #undef HAVE_DLFCN_H */
okini3939 0:8ba6230eefbd 75
okini3939 0:8ba6230eefbd 76 /* Define to 1 if you have the <errno.h> header file. */
okini3939 0:8ba6230eefbd 77 /* #define HAVE_ERRNO_H 1*/
okini3939 0:8ba6230eefbd 78
okini3939 0:8ba6230eefbd 79 /* Define to 1 if you have the `fcntl' function. */
okini3939 0:8ba6230eefbd 80 /* #undef HAVE_FCNTL */
okini3939 0:8ba6230eefbd 81
okini3939 0:8ba6230eefbd 82 /* Define to 1 if you have the <fcntl.h> header file. */
okini3939 0:8ba6230eefbd 83 /* #define HAVE_FCNTL_H 1*/
okini3939 0:8ba6230eefbd 84
okini3939 0:8ba6230eefbd 85 /* Define to 1 if you have the `fork' function. */
okini3939 0:8ba6230eefbd 86 /* #undef HAVE_FORK */
okini3939 0:8ba6230eefbd 87
okini3939 0:8ba6230eefbd 88 /* Define to 1 if you have the <inttypes.h> header file. */
okini3939 0:8ba6230eefbd 89 /* #define HAVE_INTTYPES_H 1*/
okini3939 0:8ba6230eefbd 90
okini3939 0:8ba6230eefbd 91 /* Define to 1 if you have the <limits.h> header file. */
okini3939 0:8ba6230eefbd 92 /* #define HAVE_LIMITS_H 1*/
okini3939 0:8ba6230eefbd 93
okini3939 0:8ba6230eefbd 94 /* Define if your MIPS CPU supports a 2-operand MADD16 instruction. */
okini3939 0:8ba6230eefbd 95 /* #undef HAVE_MADD16_ASM */
okini3939 0:8ba6230eefbd 96
okini3939 0:8ba6230eefbd 97 /* Define if your MIPS CPU supports a 2-operand MADD instruction. */
okini3939 0:8ba6230eefbd 98 /* #undef HAVE_MADD_ASM */
okini3939 0:8ba6230eefbd 99
okini3939 0:8ba6230eefbd 100 /* Define to 1 if you have the <memory.h> header file. */
okini3939 0:8ba6230eefbd 101 /* #define HAVE_MEMORY_H 1 */
okini3939 0:8ba6230eefbd 102
okini3939 0:8ba6230eefbd 103 /* Define to 1 if you have the `pipe' function. */
okini3939 0:8ba6230eefbd 104 /* #undef HAVE_PIPE */
okini3939 0:8ba6230eefbd 105
okini3939 0:8ba6230eefbd 106 /* Define to 1 if you have the <stdint.h> header file. */
okini3939 0:8ba6230eefbd 107 /* #define HAVE_STDINT_H 1*/
okini3939 0:8ba6230eefbd 108
okini3939 0:8ba6230eefbd 109 /* Define to 1 if you have the <stdlib.h> header file. */
okini3939 0:8ba6230eefbd 110 #define HAVE_STDLIB_H 1
okini3939 0:8ba6230eefbd 111
okini3939 0:8ba6230eefbd 112 /* Define to 1 if you have the <strings.h> header file. */
okini3939 0:8ba6230eefbd 113 #define HAVE_STRINGS_H 1
okini3939 0:8ba6230eefbd 114
okini3939 0:8ba6230eefbd 115 /* Define to 1 if you have the <string.h> header file. */
okini3939 0:8ba6230eefbd 116 /* #define HAVE_STRING_H 1 */
okini3939 0:8ba6230eefbd 117
okini3939 0:8ba6230eefbd 118 /* Define to 1 if you have the <sys/stat.h> header file. */
okini3939 0:8ba6230eefbd 119 /* #define HAVE_SYS_STAT_H 1*/
okini3939 0:8ba6230eefbd 120
okini3939 0:8ba6230eefbd 121 /* Define to 1 if you have the <sys/types.h> header file. */
okini3939 0:8ba6230eefbd 122 /* #define HAVE_SYS_TYPES_H 1*/
okini3939 0:8ba6230eefbd 123
okini3939 0:8ba6230eefbd 124 /* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
okini3939 0:8ba6230eefbd 125 /* #undef HAVE_SYS_WAIT_H */
okini3939 0:8ba6230eefbd 126
okini3939 0:8ba6230eefbd 127 /* Define to 1 if you have the <unistd.h> header file. */
okini3939 0:8ba6230eefbd 128 /* #undef HAVE_UNISTD_H */
okini3939 0:8ba6230eefbd 129
okini3939 0:8ba6230eefbd 130 /* Define to 1 if you have the `waitpid' function. */
okini3939 0:8ba6230eefbd 131 /* #undef HAVE_WAITPID */
okini3939 0:8ba6230eefbd 132
okini3939 0:8ba6230eefbd 133 /* Define to disable debugging assertions. */
okini3939 0:8ba6230eefbd 134 /* #undef NDEBUG */
okini3939 0:8ba6230eefbd 135
okini3939 0:8ba6230eefbd 136 /* Define to optimize for accuracy over speed. */
okini3939 0:8ba6230eefbd 137 /* #undef OPT_ACCURACY */
okini3939 0:8ba6230eefbd 138
okini3939 0:8ba6230eefbd 139 /* Define to optimize for speed over accuracy. */
okini3939 0:8ba6230eefbd 140 /* #define OPT_SPEED */
okini3939 0:8ba6230eefbd 141
okini3939 0:8ba6230eefbd 142 /* Define to enable a fast subband synthesis approximation optimization. */
okini3939 0:8ba6230eefbd 143 /* #define OPT_SSO */
okini3939 0:8ba6230eefbd 144
okini3939 0:8ba6230eefbd 145 /* Define to influence a strict interpretation of the ISO/IEC standards, even
okini3939 0:8ba6230eefbd 146 if this is in opposition with best accepted practices. */
okini3939 0:8ba6230eefbd 147 /* #undef OPT_STRICT */
okini3939 0:8ba6230eefbd 148
okini3939 0:8ba6230eefbd 149 /* Name of package */
okini3939 0:8ba6230eefbd 150 #define PACKAGE "libmad"
okini3939 0:8ba6230eefbd 151
okini3939 0:8ba6230eefbd 152 /* Define to the address where bug reports for this package should be sent. */
okini3939 0:8ba6230eefbd 153 #define PACKAGE_BUGREPORT "support@underbit.com"
okini3939 0:8ba6230eefbd 154
okini3939 0:8ba6230eefbd 155 /* Define to the full name of this package. */
okini3939 0:8ba6230eefbd 156 #define PACKAGE_NAME "MPEG Audio Decoder"
okini3939 0:8ba6230eefbd 157
okini3939 0:8ba6230eefbd 158 /* Define to the full name and version of this package. */
okini3939 0:8ba6230eefbd 159 #define PACKAGE_STRING "MPEG Audio Decoder 0.15.1b"
okini3939 0:8ba6230eefbd 160
okini3939 0:8ba6230eefbd 161 /* Define to the one symbol short name of this package. */
okini3939 0:8ba6230eefbd 162 #define PACKAGE_TARNAME "libmad"
okini3939 0:8ba6230eefbd 163
okini3939 0:8ba6230eefbd 164 /* Define to the version of this package. */
okini3939 0:8ba6230eefbd 165 #define PACKAGE_VERSION "0.15.1b"
okini3939 0:8ba6230eefbd 166
okini3939 0:8ba6230eefbd 167 /* The size of a `int', as computed by sizeof. */
okini3939 0:8ba6230eefbd 168 #define SIZEOF_INT 4
okini3939 0:8ba6230eefbd 169
okini3939 0:8ba6230eefbd 170 /* The size of a `long', as computed by sizeof. */
okini3939 0:8ba6230eefbd 171 #define SIZEOF_LONG 4
okini3939 0:8ba6230eefbd 172
okini3939 0:8ba6230eefbd 173 /* The size of a `long long', as computed by sizeof. */
okini3939 0:8ba6230eefbd 174 #define SIZEOF_LONG_LONG 8
okini3939 0:8ba6230eefbd 175
okini3939 0:8ba6230eefbd 176 /* Define to 1 if you have the ANSI C header files. */
okini3939 0:8ba6230eefbd 177 #define STDC_HEADERS 1
okini3939 0:8ba6230eefbd 178
okini3939 0:8ba6230eefbd 179 /* Version number of package */
okini3939 0:8ba6230eefbd 180 #define VERSION "0.15.1b"
okini3939 0:8ba6230eefbd 181
okini3939 0:8ba6230eefbd 182 /* Define to empty if `const' does not conform to ANSI C. */
okini3939 0:8ba6230eefbd 183 /* #undef const */
okini3939 0:8ba6230eefbd 184
okini3939 0:8ba6230eefbd 185 /* Define as `__inline' if that's what the C compiler calls it, or to nothing
okini3939 0:8ba6230eefbd 186 if it is not supported. */
okini3939 0:8ba6230eefbd 187 #define inline
okini3939 0:8ba6230eefbd 188
okini3939 0:8ba6230eefbd 189 /* Define to `int' if <sys/types.h> does not define. */
okini3939 0:8ba6230eefbd 190 /* #undef pid_t */
okini3939 0:8ba6230eefbd 191
okini3939 0:8ba6230eefbd 192
okini3939 0:8ba6230eefbd 193 /* Define mad_malloc to malloc if no special mem handling required */
okini3939 0:8ba6230eefbd 194
okini3939 0:8ba6230eefbd 195 #endif