summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Bartell <wingedtachikoma@gmail.com>2011-10-30 12:05:04 -0400
committerNils Wallménius <nils@rockbox.org>2012-05-03 14:49:35 +0200
commitcadb3627fcc32cec3a97183c0a1462fe0ff04755 (patch)
treeed3ec41d5231a604a7c3d368dbf8172d9ab1ea0a
parent5f0cb713615c844d9133f3664333a73816bbfd17 (diff)
downloadrockbox-cadb3627fcc32cec3a97183c0a1462fe0ff04755.tar.gz
rockbox-cadb3627fcc32cec3a97183c0a1462fe0ff04755.zip
Add rbcodecplatform.h and rbcodecconfig.h.
librbcodec users must provide these two files when the library is built. rbcodecconfig.h provides configuration #defines and basic types, and will be included by public librbcodec headers, so it must not conflict with the user's code. rbcodecplatform.h provides various OS functions, and will only be included by source files and private headers. This system is intended to provide maximum flexibility for use on embedded systems, where no operating system headers are included. Unix systems can just copy rbcodecconfig-example.h and rbcodecplatform-unix.h with minimal changes. Change-Id: I350a2274d173da391fd1ca00c4202e9760d91def Reviewed-on: http://gerrit.rockbox.org/143 Reviewed-by: Nils Wallménius <nils@rockbox.org> Tested-by: Nils Wallménius <nils@rockbox.org>
-rw-r--r--apps/rbcodecconfig.h22
-rw-r--r--apps/rbcodecplatform.h35
-rw-r--r--firmware/export/dsp-util.h2
-rw-r--r--lib/rbcodec/codecs/codecs.h6
-rw-r--r--lib/rbcodec/codecs/lib/codeclib.h4
-rw-r--r--lib/rbcodec/codecs/lib/ffmpeg_bswap.h32
-rw-r--r--lib/rbcodec/codecs/lib/ffmpeg_get_bits.h9
-rw-r--r--lib/rbcodec/codecs/libffmpegFLAC/bitstream.h3
-rw-r--r--lib/rbcodec/codecs/libmad/frame.c1
-rw-r--r--lib/rbcodec/codecs/libmad/frame.h1
-rw-r--r--lib/rbcodec/codecs/libmad/libmad.make2
-rw-r--r--lib/rbcodec/codecs/libmusepack/mpcdec.h2
-rw-r--r--lib/rbcodec/codecs/libspeex/filters.c2
-rw-r--r--lib/rbcodec/codecs/libspeex/lsp.c2
-rw-r--r--lib/rbcodec/codecs/libspeex/ltp.c2
-rw-r--r--lib/rbcodec/codecs/libspeex/modes.c2
-rw-r--r--lib/rbcodec/codecs/libspeex/modes_wb.c2
-rw-r--r--lib/rbcodec/codecs/libspeex/nb_celp.c2
-rw-r--r--lib/rbcodec/codecs/libspeex/quant_lsp.c2
-rw-r--r--lib/rbcodec/codecs/libspeex/sb_celp.c2
-rw-r--r--lib/rbcodec/codecs/libspeex/speex.c2
-rw-r--r--lib/rbcodec/codecs/libspeex/stereo.c2
-rw-r--r--lib/rbcodec/codecs/libtremor/vorbisfile.c1
-rw-r--r--lib/rbcodec/codecs/libwavpack/bits.c1
-rw-r--r--lib/rbcodec/metadata/a52.c2
-rw-r--r--lib/rbcodec/metadata/adx.c2
-rw-r--r--lib/rbcodec/metadata/aiff.c2
-rw-r--r--lib/rbcodec/metadata/ape.c1
-rw-r--r--lib/rbcodec/metadata/asap.c4
-rw-r--r--lib/rbcodec/metadata/asf.c2
-rw-r--r--lib/rbcodec/metadata/au.c2
-rw-r--r--lib/rbcodec/metadata/ay.c2
-rw-r--r--lib/rbcodec/metadata/flac.c2
-rw-r--r--lib/rbcodec/metadata/gbs.c2
-rw-r--r--lib/rbcodec/metadata/hes.c2
-rw-r--r--lib/rbcodec/metadata/id3tags.c4
-rw-r--r--lib/rbcodec/metadata/kss.c2
-rw-r--r--lib/rbcodec/metadata/metadata.c2
-rw-r--r--lib/rbcodec/metadata/metadata.h5
-rw-r--r--lib/rbcodec/metadata/metadata_common.c2
-rw-r--r--lib/rbcodec/metadata/mod.c2
-rw-r--r--lib/rbcodec/metadata/monkeys.c2
-rw-r--r--lib/rbcodec/metadata/mp3.c3
-rw-r--r--lib/rbcodec/metadata/mp3data.c3
-rw-r--r--lib/rbcodec/metadata/mp4.c2
-rw-r--r--lib/rbcodec/metadata/mpc.c2
-rw-r--r--lib/rbcodec/metadata/nsf.c2
-rw-r--r--lib/rbcodec/metadata/ogg.c4
-rw-r--r--lib/rbcodec/metadata/oma.c1
-rw-r--r--lib/rbcodec/metadata/replaygain.c2
-rw-r--r--lib/rbcodec/metadata/rm.c2
-rw-r--r--lib/rbcodec/metadata/sgc.c2
-rw-r--r--lib/rbcodec/metadata/sid.c2
-rw-r--r--lib/rbcodec/metadata/smaf.c2
-rw-r--r--lib/rbcodec/metadata/spc.c2
-rw-r--r--lib/rbcodec/metadata/tta.c2
-rw-r--r--lib/rbcodec/metadata/vgm.c2
-rw-r--r--lib/rbcodec/metadata/vorbis.c3
-rw-r--r--lib/rbcodec/metadata/vox.c2
-rw-r--r--lib/rbcodec/metadata/wave.c2
-rw-r--r--lib/rbcodec/metadata/wavpack.c2
-rw-r--r--lib/rbcodec/platform.h122
-rw-r--r--lib/rbcodec/rbcodec.make3
-rw-r--r--lib/rbcodec/rbcodecconfig-example.h32
-rw-r--r--lib/rbcodec/rbcodecplatform-unix.h77
-rw-r--r--lib/rbcodec/test/rbcodecconfig.h2
-rw-r--r--lib/rbcodec/test/rbcodecplatform.h2
-rw-r--r--lib/rbcodec/test/warble.c30
-rw-r--r--lib/rbcodec/test/warble.make16
-rw-r--r--tools/functions.make2
70 files changed, 430 insertions, 81 deletions
diff --git a/apps/rbcodecconfig.h b/apps/rbcodecconfig.h
new file mode 100644
index 0000000000..6c7a0749f0
--- /dev/null
+++ b/apps/rbcodecconfig.h
@@ -0,0 +1,22 @@
1#ifndef RBCODECCONFIG_H_INCLUDED
2#define RBCODECCONFIG_H_INCLUDED
3
4#include "config.h"
5
6#ifndef __ASSEMBLER__
7
8/* NULL, offsetof, size_t */
9#include <stddef.h>
10
11/* ssize_t, off_t, open, close, read, lseek, SEEK_SET, SEEK_CUR, SEEK_END,
12 * O_RDONLY, O_WRONLY, O_CREAT, O_APPEND, MAX_PATH, filesize */
13#include "file.h"
14
15/* {,u}int{8,16,32,64}_t, , intptr_t, uintptr_t, bool, true, false, swap16,
16 * swap32, hto{be,le}{16,32}, {be,le}toh{16,32}, ROCKBOX_{BIG,LITTLE}_ENDIAN,
17 * {,U}INT{8,16,32,64}_{MIN,MAX} */
18#include "system.h"
19
20#endif
21
22#endif
diff --git a/apps/rbcodecplatform.h b/apps/rbcodecplatform.h
new file mode 100644
index 0000000000..1dc72ac4e0
--- /dev/null
+++ b/apps/rbcodecplatform.h
@@ -0,0 +1,35 @@
1#ifndef RBCODECPLATFORM_H_INCLUDED
2#define RBCODECPLATFORM_H_INCLUDED
3#if 0
4/* assert */
5#include <assert.h>
6
7/* isdigit, islower, isprint, isspace, toupper */
8#include <ctype.h>
9
10/* {UCHAR,USHRT,UINT,ULONG,SCHAR,SHRT,INT,LONG}_{MIN,MAX} */
11#include <limits.h>
12
13/* memchr, memcmp, memcpy, memmove, memset, strcasecmp, strcat, strchr, strcmp,
14 * strcpy, strlen, strncmp, strrchr, strlcpy */
15#include <string.h>
16#include "string-extra.h"
17
18/* snprintf */
19#include <stdio.h>
20#endif
21/* abs, atoi, labs, rand */
22#include <stdlib.h>
23#if 0
24/* debugf */
25#include "debug.h"
26
27/* logf */
28#include "logf.h"
29
30/* clip_sample_16 */
31#include "dsp-util.h"
32#define HAVE_CLIP_SAMPLE_16
33#endif
34#endif
35
diff --git a/firmware/export/dsp-util.h b/firmware/export/dsp-util.h
index b86b2b776e..6ac878f64c 100644
--- a/firmware/export/dsp-util.h
+++ b/firmware/export/dsp-util.h
@@ -21,6 +21,8 @@
21#ifndef DSP_UTIL_H 21#ifndef DSP_UTIL_H
22#define DSP_UTIL_H 22#define DSP_UTIL_H
23 23
24#include "gcc_extensions.h"
25
24/** Clip sample to signed 16 bit range **/ 26/** Clip sample to signed 16 bit range **/
25 27
26#ifdef CPU_ARM 28#ifdef CPU_ARM
diff --git a/lib/rbcodec/codecs/codecs.h b/lib/rbcodec/codecs/codecs.h
index 91ce8698ab..03167f55bf 100644
--- a/lib/rbcodec/codecs/codecs.h
+++ b/lib/rbcodec/codecs/codecs.h
@@ -27,11 +27,7 @@
27#define NO_REDEFINES_PLEASE 27#define NO_REDEFINES_PLEASE
28#endif 28#endif
29 29
30#include <stdbool.h> 30#include "rbcodecconfig.h"
31#include <stdlib.h>
32#include "strlcpy.h"
33#include "config.h"
34#include "system.h"
35#include "metadata.h" 31#include "metadata.h"
36#include "audio.h" 32#include "audio.h"
37#ifdef RB_PROFILE 33#ifdef RB_PROFILE
diff --git a/lib/rbcodec/codecs/lib/codeclib.h b/lib/rbcodec/codecs/lib/codeclib.h
index d0f985b8e1..18c1043b8c 100644
--- a/lib/rbcodec/codecs/lib/codeclib.h
+++ b/lib/rbcodec/codecs/lib/codeclib.h
@@ -22,9 +22,7 @@
22#ifndef __CODECLIB_H__ 22#ifndef __CODECLIB_H__
23#define __CODECLIB_H__ 23#define __CODECLIB_H__
24 24
25#include <inttypes.h> 25#include "platform.h"
26#include <string.h>
27#include "config.h"
28#include "codecs.h" 26#include "codecs.h"
29#include "mdct.h" 27#include "mdct.h"
30#include "fft.h" 28#include "fft.h"
diff --git a/lib/rbcodec/codecs/lib/ffmpeg_bswap.h b/lib/rbcodec/codecs/lib/ffmpeg_bswap.h
index 24a2aab7ea..70176db215 100644
--- a/lib/rbcodec/codecs/lib/ffmpeg_bswap.h
+++ b/lib/rbcodec/codecs/lib/ffmpeg_bswap.h
@@ -6,6 +6,32 @@
6#ifndef __BSWAP_H__ 6#ifndef __BSWAP_H__
7#define __BSWAP_H__ 7#define __BSWAP_H__
8 8
9#include "platform.h"
10
11#ifndef bswap_16
12#define bswap_16(x) swap16(x)
13#endif
14#ifndef bswap_32
15#define bswap_32(x) swap32(x)
16#endif
17
18#ifndef bswap_64
19static inline uint64_t ByteSwap64(uint64_t x)
20{
21 union {
22 uint64_t ll;
23 struct {
24 uint32_t l,h;
25 } l;
26 } r;
27 r.l.l = bswap_32 (x);
28 r.l.h = bswap_32 (x>>32);
29 return r.ll;
30}
31#define bswap_64(x) ByteSwap64(x)
32#endif
33
34#if 0
9#ifdef HAVE_BYTESWAP_H 35#ifdef HAVE_BYTESWAP_H
10#include <byteswap.h> 36#include <byteswap.h>
11#else 37#else
@@ -13,9 +39,7 @@
13#ifdef ROCKBOX 39#ifdef ROCKBOX
14#include "codecs.h" 40#include "codecs.h"
15 41
16/* rockbox' optimised inline functions */ 42
17#define bswap_16(x) swap16(x)
18#define bswap_32(x) swap32(x)
19 43
20static inline uint64_t ByteSwap64(uint64_t x) 44static inline uint64_t ByteSwap64(uint64_t x)
21{ 45{
@@ -127,7 +151,7 @@ static inline uint64_t ByteSwap64(uint64_t x)
127#endif /* !ARCH_X86 */ 151#endif /* !ARCH_X86 */
128 152
129#endif /* !HAVE_BYTESWAP_H */ 153#endif /* !HAVE_BYTESWAP_H */
130 154#endif
131// be2me ... BigEndian to MachineEndian 155// be2me ... BigEndian to MachineEndian
132// le2me ... LittleEndian to MachineEndian 156// le2me ... LittleEndian to MachineEndian
133 157
diff --git a/lib/rbcodec/codecs/lib/ffmpeg_get_bits.h b/lib/rbcodec/codecs/lib/ffmpeg_get_bits.h
index 04eda021a7..e6f80ff45c 100644
--- a/lib/rbcodec/codecs/lib/ffmpeg_get_bits.h
+++ b/lib/rbcodec/codecs/lib/ffmpeg_get_bits.h
@@ -26,8 +26,9 @@
26#ifndef AVCODEC_GET_BITS_H 26#ifndef AVCODEC_GET_BITS_H
27#define AVCODEC_GET_BITS_H 27#define AVCODEC_GET_BITS_H
28 28
29#include <stdint.h> 29//#include <stdint.h>
30#include <stdlib.h> 30//#include <stdlib.h>
31#include "platform.h"
31#include "ffmpeg_intreadwrite.h" 32#include "ffmpeg_intreadwrite.h"
32//#include <assert.h> 33//#include <assert.h>
33//#include "libavutil/bswap.h" 34//#include "libavutil/bswap.h"
@@ -39,8 +40,12 @@
39#include "codecs.h" 40#include "codecs.h"
40 41
41/* rockbox' optimised inline functions */ 42/* rockbox' optimised inline functions */
43#ifndef bswap_16
42#define bswap_16(x) swap16(x) 44#define bswap_16(x) swap16(x)
45#endif
46#ifndef bswap_32
43#define bswap_32(x) swap32(x) 47#define bswap_32(x) swap32(x)
48#endif
44 49
45#ifdef ROCKBOX_BIG_ENDIAN 50#ifdef ROCKBOX_BIG_ENDIAN
46#define be2me_16(x) (x) 51#define be2me_16(x) (x)
diff --git a/lib/rbcodec/codecs/libffmpegFLAC/bitstream.h b/lib/rbcodec/codecs/libffmpegFLAC/bitstream.h
index 5fc3460c8e..2ec54c42fa 100644
--- a/lib/rbcodec/codecs/libffmpegFLAC/bitstream.h
+++ b/lib/rbcodec/codecs/libffmpegFLAC/bitstream.h
@@ -10,8 +10,7 @@
10#include "ffmpeg_get_bits.h" 10#include "ffmpeg_get_bits.h"
11 11
12#ifndef BUILD_STANDALONE 12#ifndef BUILD_STANDALONE
13 #include <config.h> 13 #include "platform.h"
14 #include <system.h>
15#else 14#else
16 #include <stdio.h> 15 #include <stdio.h>
17 #define IBSS_ATTR 16 #define IBSS_ATTR
diff --git a/lib/rbcodec/codecs/libmad/frame.c b/lib/rbcodec/codecs/libmad/frame.c
index f17306285c..c1cc10396b 100644
--- a/lib/rbcodec/codecs/libmad/frame.c
+++ b/lib/rbcodec/codecs/libmad/frame.c
@@ -28,7 +28,6 @@
28# include "bit.h" 28# include "bit.h"
29# include "stream.h" 29# include "stream.h"
30# include "frame.h" 30# include "frame.h"
31# include "timer.h"
32# include "layer12.h" 31# include "layer12.h"
33# include "layer3.h" 32# include "layer3.h"
34# include "codeclib.h" 33# include "codeclib.h"
diff --git a/lib/rbcodec/codecs/libmad/frame.h b/lib/rbcodec/codecs/libmad/frame.h
index b1c6e0289d..a8eb2b51f9 100644
--- a/lib/rbcodec/codecs/libmad/frame.h
+++ b/lib/rbcodec/codecs/libmad/frame.h
@@ -23,7 +23,6 @@
23# define LIBMAD_FRAME_H 23# define LIBMAD_FRAME_H
24 24
25# include "fixed.h" 25# include "fixed.h"
26# include "timer.h"
27# include "stream.h" 26# include "stream.h"
28 27
29enum mad_layer { 28enum mad_layer {
diff --git a/lib/rbcodec/codecs/libmad/libmad.make b/lib/rbcodec/codecs/libmad/libmad.make
index 2a8c7b220f..16b2bd76a9 100644
--- a/lib/rbcodec/codecs/libmad/libmad.make
+++ b/lib/rbcodec/codecs/libmad/libmad.make
@@ -13,7 +13,7 @@
13 13
14# Extract optimization level ('-O') from compile flags. Will be set later. 14# Extract optimization level ('-O') from compile flags. Will be set later.
15MADFLAGS = $(filter-out -O%,$(CODECFLAGS)) -I$(RBCODECLIB_DIR)/codecs/libmad 15MADFLAGS = $(filter-out -O%,$(CODECFLAGS)) -I$(RBCODECLIB_DIR)/codecs/libmad
16MADFLAGS += -UDEBUG -DNDEBUG -DHAVE_LIMITS_H 16MADFLAGS += -UDEBUG -DNDEBUG -DHAVE_LIMITS_H -DHAVE_ASSERT_H
17 17
18# libmad is faster on ARM-targets with -O1 than -O2 18# libmad is faster on ARM-targets with -O1 than -O2
19ifeq ($(ARCH),arch_arm) 19ifeq ($(ARCH),arch_arm)
diff --git a/lib/rbcodec/codecs/libmusepack/mpcdec.h b/lib/rbcodec/codecs/libmusepack/mpcdec.h
index 85536e726a..02003cb01b 100644
--- a/lib/rbcodec/codecs/libmusepack/mpcdec.h
+++ b/lib/rbcodec/codecs/libmusepack/mpcdec.h
@@ -39,9 +39,9 @@
39#pragma once 39#pragma once
40#endif 40#endif
41 41
42#include "platform.h"
42#include "reader.h" 43#include "reader.h"
43#include "streaminfo.h" 44#include "streaminfo.h"
44#include "config.h"
45 45
46#ifdef __cplusplus 46#ifdef __cplusplus
47extern "C" { 47extern "C" {
diff --git a/lib/rbcodec/codecs/libspeex/filters.c b/lib/rbcodec/codecs/libspeex/filters.c
index 09f93c2a59..7c4c90a636 100644
--- a/lib/rbcodec/codecs/libspeex/filters.c
+++ b/lib/rbcodec/codecs/libspeex/filters.c
@@ -39,7 +39,9 @@
39#include "arch.h" 39#include "arch.h"
40#include "math_approx.h" 40#include "math_approx.h"
41#include "ltp.h" 41#include "ltp.h"
42#ifndef FIXED_POINT
42#include <math.h> 43#include <math.h>
44#endif
43 45
44#ifdef _USE_SSE 46#ifdef _USE_SSE
45#include "filters_sse.h" 47#include "filters_sse.h"
diff --git a/lib/rbcodec/codecs/libspeex/lsp.c b/lib/rbcodec/codecs/libspeex/lsp.c
index 8408d782aa..83365a8639 100644
--- a/lib/rbcodec/codecs/libspeex/lsp.c
+++ b/lib/rbcodec/codecs/libspeex/lsp.c
@@ -83,7 +83,9 @@ Heavily modified by Jean-Marc Valin (c) 2002-2006 (fixed-point,
83#include "config-speex.h" 83#include "config-speex.h"
84#endif 84#endif
85 85
86#ifndef FIXED_POINT
86#include <math.h> 87#include <math.h>
88#endif
87#include "lsp.h" 89#include "lsp.h"
88#include "stack_alloc.h" 90#include "stack_alloc.h"
89#include "math_approx.h" 91#include "math_approx.h"
diff --git a/lib/rbcodec/codecs/libspeex/ltp.c b/lib/rbcodec/codecs/libspeex/ltp.c
index 9f10bc09d8..c81e8eb2f3 100644
--- a/lib/rbcodec/codecs/libspeex/ltp.c
+++ b/lib/rbcodec/codecs/libspeex/ltp.c
@@ -34,7 +34,9 @@
34#include "config-speex.h" 34#include "config-speex.h"
35#endif 35#endif
36 36
37#ifndef FIXED_POINT
37#include <math.h> 38#include <math.h>
39#endif
38#include "ltp.h" 40#include "ltp.h"
39#include "stack_alloc.h" 41#include "stack_alloc.h"
40#include "filters.h" 42#include "filters.h"
diff --git a/lib/rbcodec/codecs/libspeex/modes.c b/lib/rbcodec/codecs/libspeex/modes.c
index d1046f1cfb..a58c0786dd 100644
--- a/lib/rbcodec/codecs/libspeex/modes.c
+++ b/lib/rbcodec/codecs/libspeex/modes.c
@@ -44,7 +44,9 @@
44#include "nb_celp.h" 44#include "nb_celp.h"
45#include "vbr.h" 45#include "vbr.h"
46#include "arch.h" 46#include "arch.h"
47#ifndef FIXED_POINT
47#include <math.h> 48#include <math.h>
49#endif
48 50
49#ifndef NULL 51#ifndef NULL
50#define NULL 0 52#define NULL 0
diff --git a/lib/rbcodec/codecs/libspeex/modes_wb.c b/lib/rbcodec/codecs/libspeex/modes_wb.c
index 93922afa2f..4055a2b074 100644
--- a/lib/rbcodec/codecs/libspeex/modes_wb.c
+++ b/lib/rbcodec/codecs/libspeex/modes_wb.c
@@ -44,7 +44,9 @@
44#include "nb_celp.h" 44#include "nb_celp.h"
45#include "vbr.h" 45#include "vbr.h"
46#include "arch.h" 46#include "arch.h"
47#ifndef FIXED_POINT
47#include <math.h> 48#include <math.h>
49#endif
48#include "os_support.h" 50#include "os_support.h"
49 51
50 52
diff --git a/lib/rbcodec/codecs/libspeex/nb_celp.c b/lib/rbcodec/codecs/libspeex/nb_celp.c
index 364f987472..a385500f90 100644
--- a/lib/rbcodec/codecs/libspeex/nb_celp.c
+++ b/lib/rbcodec/codecs/libspeex/nb_celp.c
@@ -33,7 +33,9 @@
33#include "config-speex.h" 33#include "config-speex.h"
34#endif 34#endif
35 35
36#ifndef FIXED_POINT
36#include <math.h> 37#include <math.h>
38#endif
37#include "nb_celp.h" 39#include "nb_celp.h"
38#include "lpc.h" 40#include "lpc.h"
39#include "lsp.h" 41#include "lsp.h"
diff --git a/lib/rbcodec/codecs/libspeex/quant_lsp.c b/lib/rbcodec/codecs/libspeex/quant_lsp.c
index 9b9104c842..c79942cd59 100644
--- a/lib/rbcodec/codecs/libspeex/quant_lsp.c
+++ b/lib/rbcodec/codecs/libspeex/quant_lsp.c
@@ -36,7 +36,9 @@
36 36
37#include "quant_lsp.h" 37#include "quant_lsp.h"
38#include "os_support.h" 38#include "os_support.h"
39#ifndef FIXED_POINT
39#include <math.h> 40#include <math.h>
41#endif
40#ifndef M_PI 42#ifndef M_PI
41#define M_PI 3.14159265358979323846 43#define M_PI 3.14159265358979323846
42#endif 44#endif
diff --git a/lib/rbcodec/codecs/libspeex/sb_celp.c b/lib/rbcodec/codecs/libspeex/sb_celp.c
index b28744812f..45c8417022 100644
--- a/lib/rbcodec/codecs/libspeex/sb_celp.c
+++ b/lib/rbcodec/codecs/libspeex/sb_celp.c
@@ -33,7 +33,9 @@
33#include "config-speex.h" 33#include "config-speex.h"
34#endif 34#endif
35 35
36#ifndef FIXED_POINT
36#include <math.h> 37#include <math.h>
38#endif
37#include "sb_celp.h" 39#include "sb_celp.h"
38#include "filters.h" 40#include "filters.h"
39#include "lpc.h" 41#include "lpc.h"
diff --git a/lib/rbcodec/codecs/libspeex/speex.c b/lib/rbcodec/codecs/libspeex/speex.c
index 0dcfb3f7f6..92e41f52ae 100644
--- a/lib/rbcodec/codecs/libspeex/speex.c
+++ b/lib/rbcodec/codecs/libspeex/speex.c
@@ -37,7 +37,9 @@
37#endif 37#endif
38 38
39#include "modes.h" 39#include "modes.h"
40#ifndef FIXED_POINT
40#include <math.h> 41#include <math.h>
42#endif
41#include "os_support.h" 43#include "os_support.h"
42 44
43#ifndef NULL 45#ifndef NULL
diff --git a/lib/rbcodec/codecs/libspeex/stereo.c b/lib/rbcodec/codecs/libspeex/stereo.c
index 652d2a6e90..0aca1050fa 100644
--- a/lib/rbcodec/codecs/libspeex/stereo.c
+++ b/lib/rbcodec/codecs/libspeex/stereo.c
@@ -37,7 +37,9 @@
37#include "speex/speex_callbacks.h" 37#include "speex/speex_callbacks.h"
38#include "math_approx.h" 38#include "math_approx.h"
39#include "vq.h" 39#include "vq.h"
40#ifndef FIXED_POINT
40#include <math.h> 41#include <math.h>
42#endif
41#include "os_support.h" 43#include "os_support.h"
42 44
43typedef struct RealSpeexStereoState { 45typedef struct RealSpeexStereoState {
diff --git a/lib/rbcodec/codecs/libtremor/vorbisfile.c b/lib/rbcodec/codecs/libtremor/vorbisfile.c
index 271e5a09e3..688a864077 100644
--- a/lib/rbcodec/codecs/libtremor/vorbisfile.c
+++ b/lib/rbcodec/codecs/libtremor/vorbisfile.c
@@ -21,7 +21,6 @@
21#include <errno.h> 21#include <errno.h>
22#include <string.h> 22#include <string.h>
23#include <math.h> 23#include <math.h>
24#include "system.h"
25 24
26#include "ivorbiscodec.h" 25#include "ivorbiscodec.h"
27#include "ivorbisfile.h" 26#include "ivorbisfile.h"
diff --git a/lib/rbcodec/codecs/libwavpack/bits.c b/lib/rbcodec/codecs/libwavpack/bits.c
index 0f0e79c292..6d81b22773 100644
--- a/lib/rbcodec/codecs/libwavpack/bits.c
+++ b/lib/rbcodec/codecs/libwavpack/bits.c
@@ -15,7 +15,6 @@
15// the malloc() system is provided. 15// the malloc() system is provided.
16 16
17#include "wavpack.h" 17#include "wavpack.h"
18#include "system.h"
19 18
20#include <string.h> 19#include <string.h>
21 20
diff --git a/lib/rbcodec/metadata/a52.c b/lib/rbcodec/metadata/a52.c
index a8aad3fa4f..ddd8310cf1 100644
--- a/lib/rbcodec/metadata/a52.c
+++ b/lib/rbcodec/metadata/a52.c
@@ -22,8 +22,8 @@
22#include <stdio.h> 22#include <stdio.h>
23#include "metadata.h" 23#include "metadata.h"
24#include "logf.h" 24#include "logf.h"
25
26#include "metadata_parsers.h" 25#include "metadata_parsers.h"
26#include "platform.h"
27 27
28static const unsigned short a52_bitrates[] = 28static const unsigned short a52_bitrates[] =
29{ 29{
diff --git a/lib/rbcodec/metadata/adx.c b/lib/rbcodec/metadata/adx.c
index 7c341b4835..6250ed176c 100644
--- a/lib/rbcodec/metadata/adx.c
+++ b/lib/rbcodec/metadata/adx.c
@@ -23,8 +23,8 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "platform.h"
26 27
27#include "system.h"
28#include "metadata.h" 28#include "metadata.h"
29#include "metadata_common.h" 29#include "metadata_common.h"
30#include "metadata_parsers.h" 30#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/aiff.c b/lib/rbcodec/metadata/aiff.c
index 654f37cf98..6349335561 100644
--- a/lib/rbcodec/metadata/aiff.c
+++ b/lib/rbcodec/metadata/aiff.c
@@ -23,8 +23,8 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "platform.h"
26 27
27#include "system.h"
28#include "metadata.h" 28#include "metadata.h"
29#include "metadata_common.h" 29#include "metadata_common.h"
30#include "metadata_parsers.h" 30#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/ape.c b/lib/rbcodec/metadata/ape.c
index 0bd2477431..ba0ad1598f 100644
--- a/lib/rbcodec/metadata/ape.c
+++ b/lib/rbcodec/metadata/ape.c
@@ -24,7 +24,6 @@
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26 26
27#include "system.h"
28#include "metadata.h" 27#include "metadata.h"
29#include "metadata_common.h" 28#include "metadata_common.h"
30#include "metadata_parsers.h" 29#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/asap.c b/lib/rbcodec/metadata/asap.c
index 9e7f227031..94e4dfce58 100644
--- a/lib/rbcodec/metadata/asap.c
+++ b/lib/rbcodec/metadata/asap.c
@@ -24,13 +24,13 @@
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26 26
27#include "system.h" 27
28#include "metadata.h" 28#include "metadata.h"
29#include "metadata_common.h" 29#include "metadata_common.h"
30#include "metadata_parsers.h" 30#include "metadata_parsers.h"
31#include "rbunicode.h" 31#include "rbunicode.h"
32#include "debug.h" 32#include "debug.h"
33 33#include "platform.h"
34#define MAX_SONGS 32 34#define MAX_SONGS 32
35 35
36static bool parse_dec(int *retval, const char *p, int minval, int maxval) 36static bool parse_dec(int *retval, const char *p, int minval, int maxval)
diff --git a/lib/rbcodec/metadata/asf.c b/lib/rbcodec/metadata/asf.c
index b815c09769..b88b8e77fe 100644
--- a/lib/rbcodec/metadata/asf.c
+++ b/lib/rbcodec/metadata/asf.c
@@ -24,6 +24,7 @@
24#include <stdlib.h> 24#include <stdlib.h>
25#include <ctype.h> 25#include <ctype.h>
26#include <inttypes.h> 26#include <inttypes.h>
27#include "platform.h"
27 28
28#include "metadata.h" 29#include "metadata.h"
29#include "replaygain.h" 30#include "replaygain.h"
@@ -31,7 +32,6 @@
31#include "rbunicode.h" 32#include "rbunicode.h"
32#include "metadata_common.h" 33#include "metadata_common.h"
33#include "metadata_parsers.h" 34#include "metadata_parsers.h"
34#include "system.h"
35#include <codecs/libasf/asf.h> 35#include <codecs/libasf/asf.h>
36 36
37/* TODO: Just read the GUIDs into a 16-byte array, and use memcmp to compare */ 37/* TODO: Just read the GUIDs into a 16-byte array, and use memcmp to compare */
diff --git a/lib/rbcodec/metadata/au.c b/lib/rbcodec/metadata/au.c
index 94e7453644..07f354571e 100644
--- a/lib/rbcodec/metadata/au.c
+++ b/lib/rbcodec/metadata/au.c
@@ -21,8 +21,8 @@
21#include <stdio.h> 21#include <stdio.h>
22#include <string.h> 22#include <string.h>
23#include <inttypes.h> 23#include <inttypes.h>
24#include "platform.h"
24 25
25#include "system.h"
26#include "metadata.h" 26#include "metadata.h"
27#include "metadata_common.h" 27#include "metadata_common.h"
28#include "metadata_parsers.h" 28#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/ay.c b/lib/rbcodec/metadata/ay.c
index 5d00264b3d..4230b44da0 100644
--- a/lib/rbcodec/metadata/ay.c
+++ b/lib/rbcodec/metadata/ay.c
@@ -3,8 +3,8 @@
3#include <stdlib.h> 3#include <stdlib.h>
4#include <ctype.h> 4#include <ctype.h>
5#include <inttypes.h> 5#include <inttypes.h>
6#include "platform.h"
6 7
7#include "system.h"
8#include "metadata.h" 8#include "metadata.h"
9#include "metadata_common.h" 9#include "metadata_common.h"
10#include "metadata_parsers.h" 10#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/flac.c b/lib/rbcodec/metadata/flac.c
index 29937173fd..a8be4c6de4 100644
--- a/lib/rbcodec/metadata/flac.c
+++ b/lib/rbcodec/metadata/flac.c
@@ -23,8 +23,8 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "platform.h"
26 27
27#include "system.h"
28#include "metadata.h" 28#include "metadata.h"
29#include "metadata_common.h" 29#include "metadata_common.h"
30#include "metadata_parsers.h" 30#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/gbs.c b/lib/rbcodec/metadata/gbs.c
index 68f2b2a393..9b02952e47 100644
--- a/lib/rbcodec/metadata/gbs.c
+++ b/lib/rbcodec/metadata/gbs.c
@@ -3,8 +3,8 @@
3#include <stdlib.h> 3#include <stdlib.h>
4#include <ctype.h> 4#include <ctype.h>
5#include <inttypes.h> 5#include <inttypes.h>
6#include "platform.h"
6 7
7#include "system.h"
8#include "metadata.h" 8#include "metadata.h"
9#include "metadata_common.h" 9#include "metadata_common.h"
10#include "metadata_parsers.h" 10#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/hes.c b/lib/rbcodec/metadata/hes.c
index 6d99d523cb..87398461d7 100644
--- a/lib/rbcodec/metadata/hes.c
+++ b/lib/rbcodec/metadata/hes.c
@@ -3,8 +3,8 @@
3#include <stdlib.h> 3#include <stdlib.h>
4#include <ctype.h> 4#include <ctype.h>
5#include <inttypes.h> 5#include <inttypes.h>
6#include "platform.h"
6 7
7#include "system.h"
8#include "metadata.h" 8#include "metadata.h"
9#include "metadata_common.h" 9#include "metadata_common.h"
10#include "metadata_parsers.h" 10#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/id3tags.c b/lib/rbcodec/metadata/id3tags.c
index 2dd1c662ed..0e27c0305b 100644
--- a/lib/rbcodec/metadata/id3tags.c
+++ b/lib/rbcodec/metadata/id3tags.c
@@ -35,11 +35,9 @@
35#include <stdbool.h> 35#include <stdbool.h>
36#include <stddef.h> 36#include <stddef.h>
37#include <ctype.h> 37#include <ctype.h>
38#include "platform.h"
38#include "string-extra.h" 39#include "string-extra.h"
39#include "config.h"
40#include "file.h"
41#include "logf.h" 40#include "logf.h"
42#include "system.h"
43#include "replaygain.h" 41#include "replaygain.h"
44#include "rbunicode.h" 42#include "rbunicode.h"
45 43
diff --git a/lib/rbcodec/metadata/kss.c b/lib/rbcodec/metadata/kss.c
index 2ae0cf50b0..195e8be38d 100644
--- a/lib/rbcodec/metadata/kss.c
+++ b/lib/rbcodec/metadata/kss.c
@@ -3,8 +3,8 @@
3#include <stdlib.h> 3#include <stdlib.h>
4#include <ctype.h> 4#include <ctype.h>
5#include <inttypes.h> 5#include <inttypes.h>
6#include "platform.h"
6 7
7#include "system.h"
8#include "metadata.h" 8#include "metadata.h"
9#include "metadata_common.h" 9#include "metadata_common.h"
10#include "metadata_parsers.h" 10#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/metadata.c b/lib/rbcodec/metadata/metadata.c
index 3fe9860441..668ece97cf 100644
--- a/lib/rbcodec/metadata/metadata.c
+++ b/lib/rbcodec/metadata/metadata.c
@@ -22,7 +22,7 @@
22#include <stdlib.h> 22#include <stdlib.h>
23#include <ctype.h> 23#include <ctype.h>
24#include "string-extra.h" 24#include "string-extra.h"
25 25#include "platform.h"
26#include "debug.h" 26#include "debug.h"
27#include "logf.h" 27#include "logf.h"
28#include "cuesheet.h" 28#include "cuesheet.h"
diff --git a/lib/rbcodec/metadata/metadata.h b/lib/rbcodec/metadata/metadata.h
index 6d711aff28..4b4a8337fb 100644
--- a/lib/rbcodec/metadata/metadata.h
+++ b/lib/rbcodec/metadata/metadata.h
@@ -22,10 +22,7 @@
22#ifndef _METADATA_H 22#ifndef _METADATA_H
23#define _METADATA_H 23#define _METADATA_H
24 24
25#include <stdbool.h> 25#include "platform.h"
26#include "config.h"
27#include "file.h"
28
29 26
30/* Audio file types. */ 27/* Audio file types. */
31/* NOTE: The values of the AFMT_* items are used for the %fc tag in the WPS 28/* NOTE: The values of the AFMT_* items are used for the %fc tag in the WPS
diff --git a/lib/rbcodec/metadata/metadata_common.c b/lib/rbcodec/metadata/metadata_common.c
index e861644025..b062c5282d 100644
--- a/lib/rbcodec/metadata/metadata_common.c
+++ b/lib/rbcodec/metadata/metadata_common.c
@@ -24,7 +24,7 @@
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26 26
27#include "system.h" 27#include "platform.h"
28#include "metadata.h" 28#include "metadata.h"
29#include "metadata_common.h" 29#include "metadata_common.h"
30#include "metadata_parsers.h" 30#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/mod.c b/lib/rbcodec/metadata/mod.c
index de76823e91..b7f4913257 100644
--- a/lib/rbcodec/metadata/mod.c
+++ b/lib/rbcodec/metadata/mod.c
@@ -22,8 +22,8 @@
22#include <stdlib.h> 22#include <stdlib.h>
23#include <ctype.h> 23#include <ctype.h>
24#include <inttypes.h> 24#include <inttypes.h>
25#include "platform.h"
25 26
26#include "system.h"
27#include "metadata.h" 27#include "metadata.h"
28#include <string-extra.h> 28#include <string-extra.h>
29#include "metadata_common.h" 29#include "metadata_common.h"
diff --git a/lib/rbcodec/metadata/monkeys.c b/lib/rbcodec/metadata/monkeys.c
index 4aff1412aa..ba4273466a 100644
--- a/lib/rbcodec/metadata/monkeys.c
+++ b/lib/rbcodec/metadata/monkeys.c
@@ -23,8 +23,8 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "platform.h"
26 27
27#include "system.h"
28#include "metadata.h" 28#include "metadata.h"
29#include "metadata_common.h" 29#include "metadata_common.h"
30#include "metadata_parsers.h" 30#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/mp3.c b/lib/rbcodec/metadata/mp3.c
index feb1a52f77..661fea8e51 100644
--- a/lib/rbcodec/metadata/mp3.c
+++ b/lib/rbcodec/metadata/mp3.c
@@ -34,10 +34,9 @@
34#include <stdbool.h> 34#include <stdbool.h>
35#include "string-extra.h" 35#include "string-extra.h"
36#include "config.h" 36#include "config.h"
37#include "file.h"
38#include "logf.h" 37#include "logf.h"
38#include "platform.h"
39 39
40#include "system.h"
41#include "metadata.h" 40#include "metadata.h"
42#include "mp3data.h" 41#include "mp3data.h"
43#include "metadata_common.h" 42#include "metadata_common.h"
diff --git a/lib/rbcodec/metadata/mp3data.c b/lib/rbcodec/metadata/mp3data.c
index 13ff0a87a7..8a134dd534 100644
--- a/lib/rbcodec/metadata/mp3data.c
+++ b/lib/rbcodec/metadata/mp3data.c
@@ -37,8 +37,7 @@
37#include "debug.h" 37#include "debug.h"
38#include "logf.h" 38#include "logf.h"
39#include "mp3data.h" 39#include "mp3data.h"
40#include "file.h" 40#include "platform.h"
41#include "system.h"
42 41
43//#define DEBUG_VERBOSE 42//#define DEBUG_VERBOSE
44 43
diff --git a/lib/rbcodec/metadata/mp4.c b/lib/rbcodec/metadata/mp4.c
index df164436f5..6973d3a314 100644
--- a/lib/rbcodec/metadata/mp4.c
+++ b/lib/rbcodec/metadata/mp4.c
@@ -23,8 +23,8 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "platform.h"
26 27
27#include "system.h"
28#include "errno.h" 28#include "errno.h"
29#include "metadata.h" 29#include "metadata.h"
30#include "metadata_common.h" 30#include "metadata_common.h"
diff --git a/lib/rbcodec/metadata/mpc.c b/lib/rbcodec/metadata/mpc.c
index 0b75ed04dd..3c0ee0707d 100644
--- a/lib/rbcodec/metadata/mpc.c
+++ b/lib/rbcodec/metadata/mpc.c
@@ -23,7 +23,7 @@
23#include <string.h> 23#include <string.h>
24#include <stdio.h> 24#include <stdio.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "system.h" 26#include "platform.h"
27#include "metadata.h" 27#include "metadata.h"
28#include "metadata_common.h" 28#include "metadata_common.h"
29#include "metadata_parsers.h" 29#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/nsf.c b/lib/rbcodec/metadata/nsf.c
index 2fa6f36b12..3184897e22 100644
--- a/lib/rbcodec/metadata/nsf.c
+++ b/lib/rbcodec/metadata/nsf.c
@@ -3,8 +3,8 @@
3#include <stdlib.h> 3#include <stdlib.h>
4#include <ctype.h> 4#include <ctype.h>
5#include <inttypes.h> 5#include <inttypes.h>
6#include "platform.h"
6 7
7#include "system.h"
8#include "metadata.h" 8#include "metadata.h"
9#include "metadata_common.h" 9#include "metadata_common.h"
10#include "metadata_parsers.h" 10#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/ogg.c b/lib/rbcodec/metadata/ogg.c
index 3a3cb29998..f3231c6f8a 100644
--- a/lib/rbcodec/metadata/ogg.c
+++ b/lib/rbcodec/metadata/ogg.c
@@ -23,8 +23,8 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "platform.h"
26 27
27#include "system.h"
28#include "metadata.h" 28#include "metadata.h"
29#include "metadata_common.h" 29#include "metadata_common.h"
30#include "metadata_parsers.h" 30#include "metadata_parsers.h"
@@ -68,7 +68,7 @@ bool get_ogg_metadata(int fd, struct mp3entry* id3)
68 { 68 {
69 return false; 69 return false;
70 } 70 }
71 71
72 /* All Ogg streams start with OggS */ 72 /* All Ogg streams start with OggS */
73 if (memcmp(buf, "OggS", 4) != 0) 73 if (memcmp(buf, "OggS", 4) != 0)
74 { 74 {
diff --git a/lib/rbcodec/metadata/oma.c b/lib/rbcodec/metadata/oma.c
index b82c0a4f73..3573d58808 100644
--- a/lib/rbcodec/metadata/oma.c
+++ b/lib/rbcodec/metadata/oma.c
@@ -46,6 +46,7 @@
46#include <stdlib.h> 46#include <stdlib.h>
47#include <inttypes.h> 47#include <inttypes.h>
48#include <string.h> 48#include <string.h>
49#include "platform.h"
49#include "metadata.h" 50#include "metadata.h"
50#include "metadata_parsers.h" 51#include "metadata_parsers.h"
51 52
diff --git a/lib/rbcodec/metadata/replaygain.c b/lib/rbcodec/metadata/replaygain.c
index a178321385..5e8c3a364a 100644
--- a/lib/rbcodec/metadata/replaygain.c
+++ b/lib/rbcodec/metadata/replaygain.c
@@ -25,9 +25,9 @@
25#include <stdio.h> 25#include <stdio.h>
26#include <stdlib.h> 26#include <stdlib.h>
27#include <inttypes.h> 27#include <inttypes.h>
28#include "platform.h"
28#include "strlcpy.h" 29#include "strlcpy.h"
29#include "strcasecmp.h" 30#include "strcasecmp.h"
30#include "system.h"
31#include "metadata.h" 31#include "metadata.h"
32#include "debug.h" 32#include "debug.h"
33#include "replaygain.h" 33#include "replaygain.h"
diff --git a/lib/rbcodec/metadata/rm.c b/lib/rbcodec/metadata/rm.c
index 27f541cb25..2a5a2892a3 100644
--- a/lib/rbcodec/metadata/rm.c
+++ b/lib/rbcodec/metadata/rm.c
@@ -23,9 +23,9 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "platform.h"
26 27
27#include <codecs/librm/rm.h> 28#include <codecs/librm/rm.h>
28#include "system.h"
29#include "metadata.h" 29#include "metadata.h"
30#include "metadata_common.h" 30#include "metadata_common.h"
31#include "metadata_parsers.h" 31#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/sgc.c b/lib/rbcodec/metadata/sgc.c
index 78cacb9b1b..11a574139f 100644
--- a/lib/rbcodec/metadata/sgc.c
+++ b/lib/rbcodec/metadata/sgc.c
@@ -3,8 +3,8 @@
3#include <stdlib.h> 3#include <stdlib.h>
4#include <ctype.h> 4#include <ctype.h>
5#include <inttypes.h> 5#include <inttypes.h>
6#include "platform.h"
6 7
7#include "system.h"
8#include "metadata.h" 8#include "metadata.h"
9#include "metadata_common.h" 9#include "metadata_common.h"
10#include "metadata_parsers.h" 10#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/sid.c b/lib/rbcodec/metadata/sid.c
index 50b879b56d..3a276b3cde 100644
--- a/lib/rbcodec/metadata/sid.c
+++ b/lib/rbcodec/metadata/sid.c
@@ -23,8 +23,8 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "platform.h"
26 27
27#include "system.h"
28#include "metadata.h" 28#include "metadata.h"
29#include "metadata_common.h" 29#include "metadata_common.h"
30#include "metadata_parsers.h" 30#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/smaf.c b/lib/rbcodec/metadata/smaf.c
index 1b745d3fa1..aeeadb431f 100644
--- a/lib/rbcodec/metadata/smaf.c
+++ b/lib/rbcodec/metadata/smaf.c
@@ -20,9 +20,9 @@
20 ****************************************************************************/ 20 ****************************************************************************/
21#include <inttypes.h> 21#include <inttypes.h>
22#include <stdio.h> 22#include <stdio.h>
23#include "platform.h"
23 24
24#include "string-extra.h" 25#include "string-extra.h"
25#include "system.h"
26#include "metadata.h" 26#include "metadata.h"
27#include "metadata_common.h" 27#include "metadata_common.h"
28#include "metadata_parsers.h" 28#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/spc.c b/lib/rbcodec/metadata/spc.c
index 1c0206205d..6d4590de3b 100644
--- a/lib/rbcodec/metadata/spc.c
+++ b/lib/rbcodec/metadata/spc.c
@@ -23,8 +23,8 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "platform.h"
26 27
27#include "system.h"
28#include "metadata.h" 28#include "metadata.h"
29#include "metadata_common.h" 29#include "metadata_common.h"
30#include "metadata_parsers.h" 30#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/tta.c b/lib/rbcodec/metadata/tta.c
index 1d3d95f118..5f99c4776e 100644
--- a/lib/rbcodec/metadata/tta.c
+++ b/lib/rbcodec/metadata/tta.c
@@ -23,8 +23,8 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "platform.h"
26 27
27#include "system.h"
28#include "metadata.h" 28#include "metadata.h"
29#include "metadata_common.h" 29#include "metadata_common.h"
30#include "metadata_parsers.h" 30#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/vgm.c b/lib/rbcodec/metadata/vgm.c
index 9ea95b3939..7d3f45e204 100644
--- a/lib/rbcodec/metadata/vgm.c
+++ b/lib/rbcodec/metadata/vgm.c
@@ -3,8 +3,8 @@
3#include <stdlib.h> 3#include <stdlib.h>
4#include <ctype.h> 4#include <ctype.h>
5#include <inttypes.h> 5#include <inttypes.h>
6#include "platform.h"
6 7
7#include "system.h"
8#include "metadata.h" 8#include "metadata.h"
9#include "metadata_common.h" 9#include "metadata_common.h"
10#include "metadata_parsers.h" 10#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/vorbis.c b/lib/rbcodec/metadata/vorbis.c
index 58bd781873..d020808c56 100644
--- a/lib/rbcodec/metadata/vorbis.c
+++ b/lib/rbcodec/metadata/vorbis.c
@@ -23,8 +23,7 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26 26#include "platform.h"
27#include "system.h"
28#include "metadata.h" 27#include "metadata.h"
29#include "metadata_common.h" 28#include "metadata_common.h"
30#include "metadata_parsers.h" 29#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/vox.c b/lib/rbcodec/metadata/vox.c
index f6bc849a88..cf08b61f35 100644
--- a/lib/rbcodec/metadata/vox.c
+++ b/lib/rbcodec/metadata/vox.c
@@ -23,8 +23,8 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "platform.h"
26 27
27#include "system.h"
28#include "metadata.h" 28#include "metadata.h"
29#include "metadata_common.h" 29#include "metadata_common.h"
30#include "metadata_parsers.h" 30#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/wave.c b/lib/rbcodec/metadata/wave.c
index 45acea1fa1..3fb051dd3c 100644
--- a/lib/rbcodec/metadata/wave.c
+++ b/lib/rbcodec/metadata/wave.c
@@ -22,8 +22,8 @@
22#include <stdio.h> 22#include <stdio.h>
23#include <string.h> 23#include <string.h>
24#include <inttypes.h> 24#include <inttypes.h>
25#include "platform.h"
25 26
26#include "system.h"
27#include "metadata.h" 27#include "metadata.h"
28#include "metadata_common.h" 28#include "metadata_common.h"
29#include "metadata_parsers.h" 29#include "metadata_parsers.h"
diff --git a/lib/rbcodec/metadata/wavpack.c b/lib/rbcodec/metadata/wavpack.c
index f2811df8f3..4ea2684aaa 100644
--- a/lib/rbcodec/metadata/wavpack.c
+++ b/lib/rbcodec/metadata/wavpack.c
@@ -23,8 +23,8 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include <ctype.h> 24#include <ctype.h>
25#include <inttypes.h> 25#include <inttypes.h>
26#include "platform.h"
26 27
27#include "system.h"
28#include "metadata.h" 28#include "metadata.h"
29#include "metadata_common.h" 29#include "metadata_common.h"
30#include "metadata_parsers.h" 30#include "metadata_parsers.h"
diff --git a/lib/rbcodec/platform.h b/lib/rbcodec/platform.h
new file mode 100644
index 0000000000..47df8fe6a2
--- /dev/null
+++ b/lib/rbcodec/platform.h
@@ -0,0 +1,122 @@
1#ifndef PLATFORM_H_INCLUDED
2#define PLATFORM_H_INCLUDED
3
4#include "rbcodecconfig.h"
5#include "rbcodecplatform.h"
6
7/*
8
9#ifndef ROCKBOX
10# define __PCTOOL__
11# define RBCODEC_NOT_ROCKBOX
12# define ROCKBOX
13#endif
14
15#ifndef HAVE_STRLCPY
16size_t strlcpy(char *dst, const char *src, size_t siz);
17#endif
18*/
19#ifndef ARRAYLEN
20# define ARRAYLEN(a) (sizeof(a) / sizeof((a)[0]))
21#endif
22
23#ifndef MIN
24# define MIN(x, y) ((x)<(y) ? (x) : (y))
25#endif
26
27#ifndef MAX
28# define MAX(x, y) ((x)>(y) ? (x) : (y))
29#endif
30
31#ifndef BIT_N
32# define BIT_N(n) (1U << (n))
33#endif
34/*
35#ifdef CODEC
36
37# ifdef debugf
38# undef debugf
39# endif
40
41# ifdef logf
42# undef logf
43# endif
44
45#else
46
47# ifndef DEBUGF
48# define DEBUGF debugf
49# endif
50
51# ifndef debugf
52# define debugf(...) do { } while (0)
53# endif
54
55# ifndef logf
56# define logf(...) do { } while (0)
57# endif
58
59#endif
60
61#ifndef ATTRIBUTE_PRINTF
62# define ATTRIBUTE_PRINTF(fmt, arg1)
63#endif
64
65#ifndef LIKELY
66# define LIKELY(x) (x)
67#endif
68
69#ifndef UNLIKELY
70# define UNLIKELY(x) (x)
71#endif
72*/
73#ifndef CACHEALIGN_ATTR
74# define CACHEALIGN_ATTR
75#endif
76/*
77#ifndef DATA_ATTR
78# define DATA_ATTR
79#endif
80*/
81#ifndef IBSS_ATTR
82# define IBSS_ATTR
83#endif
84
85#ifndef ICODE_ATTR
86# define ICODE_ATTR
87#endif
88
89#ifndef ICONST_ATTR
90# define ICONST_ATTR
91#endif
92
93#ifndef IDATA_ATTR
94# define IDATA_ATTR
95#endif
96/*
97#ifndef INIT_ATTR
98# define INIT_ATTR
99#endif
100*/
101#ifndef MEM_ALIGN_ATTR
102# define MEM_ALIGN_ATTR
103#endif
104/*
105#ifndef STATICIRAM
106# define STATICIRAM
107#endif
108*/
109#ifndef CACHEALIGN_SIZE
110# define CACHEALIGN_SIZE 1
111#endif
112/*
113#ifndef HAVE_CLIP_SAMPLE_16
114static inline int32_t clip_sample_16(int32_t sample)
115{
116 if ((int16_t)sample != sample)
117 sample = 0x7fff ^ (sample >> 31);
118 return sample;
119}
120#endif
121*/
122#endif /* PLATFORM_H_INCLUDED */
diff --git a/lib/rbcodec/rbcodec.make b/lib/rbcodec/rbcodec.make
index 3dfade1826..7aac57b87d 100644
--- a/lib/rbcodec/rbcodec.make
+++ b/lib/rbcodec/rbcodec.make
@@ -7,7 +7,8 @@
7 7
8# RBCODEC_BLD is defined in the calling Makefile 8# RBCODEC_BLD is defined in the calling Makefile
9RBCODECLIB_DIR := $(ROOTDIR)/lib/rbcodec 9RBCODECLIB_DIR := $(ROOTDIR)/lib/rbcodec
10RBCODECLIB_SRC := $(call preprocess, $(RBCODECLIB_DIR)/SOURCES) 10RBCODECLIB_SRC := $(call preprocess, $(RBCODECLIB_DIR)/SOURCES, \
11 $(RBCODEC_CFLAGS) -imacros rbcodecconfig.h)
11RBCODECLIB_OBJ := $(call c2obj, $(RBCODECLIB_SRC)) 12RBCODECLIB_OBJ := $(call c2obj, $(RBCODECLIB_SRC))
12RBCODECLIB := $(BUILDDIR)/lib/librbcodec.a 13RBCODECLIB := $(BUILDDIR)/lib/librbcodec.a
13 14
diff --git a/lib/rbcodec/rbcodecconfig-example.h b/lib/rbcodec/rbcodecconfig-example.h
new file mode 100644
index 0000000000..ad0f296a23
--- /dev/null
+++ b/lib/rbcodec/rbcodecconfig-example.h
@@ -0,0 +1,32 @@
1#ifndef RBCODECCONFIG_H_INCLUDED
2#define RBCODECCONFIG_H_INCLUDED
3
4#define HAVE_PITCHSCREEN
5//#define HAVE_SW_VOLUME_CONTROL
6#define HAVE_SW_TONE_CONTROLS
7#define HAVE_ALBUMART
8#define NUM_CORES 1
9
10#ifndef __ASSEMBLER__
11
12/* {,u}int{8,16,32,64}_t, {,U}INT{8,16,32,64}_{MIN,MAX}, intptr_t, uintptr_t */
13#include <inttypes.h>
14
15/* bool, true, false */
16#include <stdbool.h>
17
18/* NULL, offsetof, size_t */
19#include <stddef.h>
20
21/* ssize_t, off_t, open, close, read, lseek, SEEK_SET, SEEK_CUR, SEEK_END */
22#include <unistd.h>
23
24/* MAX_PATH, {UCHAR,USHRT,UINT,ULONG,SCHAR,SHRT,INT,LONG}_{MIN,MAX} */
25#include <limits.h>
26// FIXME changing MAX_PATH is broken for now
27//#define MAX_PATH PATH_MAX
28// set same as rb to avoid dragons
29#define MAX_PATH 260
30#endif
31
32#endif
diff --git a/lib/rbcodec/rbcodecplatform-unix.h b/lib/rbcodec/rbcodecplatform-unix.h
new file mode 100644
index 0000000000..c9c8a29642
--- /dev/null
+++ b/lib/rbcodec/rbcodecplatform-unix.h
@@ -0,0 +1,77 @@
1#ifndef RBCODECPLATFORM_H_INCLUDED
2#define RBCODECPLATFORM_H_INCLUDED
3
4/* assert */
5#include <assert.h>
6
7/* O_RDONLY, O_WRONLY, O_CREAT, O_APPEND */
8#include <fcntl.h>
9
10/* isdigit, islower, isprint, isspace, toupper */
11#include <ctype.h>
12
13/* memchr, memcmp, memcpy, memmove, memset, strcat, strchr, strcmp, strcpy,
14 * strlen, strncmp, strrchr */
15#include <string.h>
16
17/* strcasecmp */
18#include <strings.h>
19
20/* abs, atoi, labs, rand */
21#include <stdlib.h>
22
23/* swap16, swap32 */
24#include <byteswap.h>
25#ifndef swap16
26#define swap16(x) bswap_16(x)
27#endif
28#ifndef swap32
29#define swap32(x) bswap_32(x)
30#endif
31
32/* hto{be,le}{16,32}, {be,le}toh{16,32}, ROCKBOX_{BIG,LITTLE}_ENDIAN */
33#include <endian.h>
34#ifndef betoh16
35#define betoh16 be16toh
36#endif
37#ifndef betoh32
38#define betoh32 be32toh
39#endif
40#ifndef letoh16
41#define letoh16 le16toh
42#endif
43#ifndef letoh32
44#define letoh32 le32toh
45#endif
46#if BYTE_ORDER == LITTLE_ENDIAN
47#define ROCKBOX_LITTLE_ENDIAN 1
48#else
49#define ROCKBOX_BIG_ENDIAN 1
50#endif
51
52/* filesize */
53#include <sys/stat.h>
54off_t filesize(int fd);
55/*
56static inline off_t filesize(int fd) {
57 struct stat st;
58 fstat(fd, &st);
59 return st.st_size;
60}
61*/
62
63/* snprintf */
64#include <stdio.h>
65
66/* debugf, logf */
67/*
68#ifdef DEBUG
69#define debugf(...) fprintf(stderr, __VA_ARGS__)
70#ifndef logf
71#define logf(...) do { fprintf(stderr, __VA_ARGS__); \
72 putc('\n', stderr); \
73 } while (0)
74#endif
75#endif
76*/
77#endif
diff --git a/lib/rbcodec/test/rbcodecconfig.h b/lib/rbcodec/test/rbcodecconfig.h
new file mode 100644
index 0000000000..5e9c3bd0e8
--- /dev/null
+++ b/lib/rbcodec/test/rbcodecconfig.h
@@ -0,0 +1,2 @@
1#include "../rbcodecconfig-example.h"
2
diff --git a/lib/rbcodec/test/rbcodecplatform.h b/lib/rbcodec/test/rbcodecplatform.h
new file mode 100644
index 0000000000..1b51a9707c
--- /dev/null
+++ b/lib/rbcodec/test/rbcodecplatform.h
@@ -0,0 +1,2 @@
1#include "../rbcodecplatform-unix.h"
2
diff --git a/lib/rbcodec/test/warble.c b/lib/rbcodec/test/warble.c
index 2f52062e50..53d360d89e 100644
--- a/lib/rbcodec/test/warble.c
+++ b/lib/rbcodec/test/warble.c
@@ -34,12 +34,13 @@
34#include "buffering.h" /* TYPE_PACKET_AUDIO */ 34#include "buffering.h" /* TYPE_PACKET_AUDIO */
35#include "codecs.h" 35#include "codecs.h"
36#include "core_alloc.h" /* core_allocator_init */ 36#include "core_alloc.h" /* core_allocator_init */
37#include "debug.h"
38#include "dsp_core.h" 37#include "dsp_core.h"
39#include "metadata.h" 38#include "metadata.h"
40#include "settings.h" 39#include "settings.h"
41#include "sound.h" 40#include "sound.h"
42#include "tdspeed.h" 41#include "tdspeed.h"
42#include "kernel.h"
43#include "platform.h"
43 44
44/***************** EXPORTED *****************/ 45/***************** EXPORTED *****************/
45 46
@@ -581,6 +582,29 @@ static unsigned ci_sleep(unsigned ticks)
581 return 0; 582 return 0;
582} 583}
583 584
585static void ci_debugf(const char *fmt, ...)
586{
587 va_list ap;
588 va_start(ap, fmt);
589 vfprintf(stderr, fmt, ap);
590 va_end(ap);
591}
592
593#ifdef ROCKBOX_HAS_LOGF
594static void ci_logf(const char *fmt, ...)
595{
596 va_list ap;
597 va_start(ap, fmt);
598 vfprintf(stderr, fmt, ap);
599 putc('\n', stderr);
600 va_end(ap);
601}
602#endif
603
604static void commit_dcache(void) {}
605static void commit_discard_dcache(void) {}
606static void commit_discard_idcache(void) {}
607
584static struct codec_api ci = { 608static struct codec_api ci = {
585 609
586 0, /* filesize */ 610 0, /* filesize */
@@ -628,10 +652,10 @@ static struct codec_api ci = {
628 memcmp, 652 memcmp,
629 memchr, 653 memchr,
630#if defined(DEBUG) || defined(SIMULATOR) 654#if defined(DEBUG) || defined(SIMULATOR)
631 debugf, 655 ci_debugf,
632#endif 656#endif
633#ifdef ROCKBOX_HAS_LOGF 657#ifdef ROCKBOX_HAS_LOGF
634 debugf, /* logf */ 658 ci_logf,
635#endif 659#endif
636 660
637 qsort, 661 qsort,
diff --git a/lib/rbcodec/test/warble.make b/lib/rbcodec/test/warble.make
index f2234c03b5..b238a2ed63 100644
--- a/lib/rbcodec/test/warble.make
+++ b/lib/rbcodec/test/warble.make
@@ -7,20 +7,20 @@
7# $Id$ 7# $Id$
8# 8#
9 9
10
11
12RBCODECLIB_DIR = $(ROOTDIR)/lib/rbcodec 10RBCODECLIB_DIR = $(ROOTDIR)/lib/rbcodec
13RBCODEC_BLD = $(BUILDDIR)/lib/rbcodec 11RBCODEC_BLD = $(BUILDDIR)/lib/rbcodec
14 12
15GCCOPTS += -D__PCTOOL__ $(TARGET) -DDEBUG -g -std=gnu99 `$(SDLCONFIG) --cflags` -DCODECDIR="\"$(CODECDIR)\"" 13GCCOPTS += -D__PCTOOL__ $(TARGET) -DDEBUG -g -std=gnu99 \
14 `$(SDLCONFIG) --cflags` -DCODECDIR="\"$(CODECDIR)\""
15RBCODEC_CFLAGS += -D_FILE_H_ #-DLOGF_H -DDEBUG_H -D_KERNEL_H_ # will be removed later
16 16
17SRC= $(call preprocess, $(ROOTDIR)/lib/rbcodec/test/SOURCES) 17SRC= $(call preprocess, $(ROOTDIR)/lib/rbcodec/test/SOURCES)
18 18
19INCLUDES += -I$(ROOTDIR)/apps -I$(ROOTDIR)/apps/gui 19INCLUDES += -I$(ROOTDIR)/lib/rbcodec/test \
20INCLUDES += -I$(ROOTDIR)/firmware/export -I$(ROOTDIR)/firmware/include \ 20 -I$(ROOTDIR)/apps -I$(ROOTDIR)/apps/gui \
21 -I$(ROOTDIR)/firmware/target/hosted \ 21 -I$(ROOTDIR)/firmware/export -I$(ROOTDIR)/firmware/include \
22 -I$(ROOTDIR)/firmware/target/hosted/sdl 22 -I$(ROOTDIR)/firmware/target/hosted \
23 23 -I$(ROOTDIR)/firmware/target/hosted/sdl
24 24
25.SECONDEXPANSION: # $$(OBJ) is not populated until after this 25.SECONDEXPANSION: # $$(OBJ) is not populated until after this
26 26
diff --git a/tools/functions.make b/tools/functions.make
index ead62f7b10..2a26e48bf2 100644
--- a/tools/functions.make
+++ b/tools/functions.make
@@ -15,7 +15,7 @@
15# The sed line is to prepend the directory to all source files 15# The sed line is to prepend the directory to all source files
16 16
17preprocess = $(shell $(CC) $(PPCFLAGS) $(2) -E -P -x c -include config.h $(1) | \ 17preprocess = $(shell $(CC) $(PPCFLAGS) $(2) -E -P -x c -include config.h $(1) | \
18 grep -v '^\#' | \ 18 grep -v '^\#' | grep -v "^ *$$" | \
19 sed -e 's:^..*:$(dir $(1))&:') 19 sed -e 's:^..*:$(dir $(1))&:')
20 20
21preprocess2file = $(SILENT)$(CC) $(PPCFLAGS) $(3) -E -P -x c -include config.h $(1) | \ 21preprocess2file = $(SILENT)$(CC) $(PPCFLAGS) $(3) -E -P -x c -include config.h $(1) | \