summaryrefslogtreecommitdiff
path: root/apps/codecs/lib/codeclib.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/lib/codeclib.h')
-rw-r--r--apps/codecs/lib/codeclib.h39
1 files changed, 35 insertions, 4 deletions
diff --git a/apps/codecs/lib/codeclib.h b/apps/codecs/lib/codeclib.h
index d6bbfd3..b46b44b 100644
--- a/apps/codecs/lib/codeclib.h
+++ b/apps/codecs/lib/codeclib.h
@@ -19,26 +19,57 @@
#include "config.h"
#include "codecs.h"
+#include "system.h"
+#include <sys/types.h>
-/* Various codec "helper functions" */
+#define MALLOC_BUFSIZE (512*1024)
extern int mem_ptr;
extern int bufsize;
-extern unsigned char* mallocbuf; /* 512K from the start of MP3 buffer */
+extern unsigned char* mp3buf; // The actual MP3 buffer from Rockbox
+extern unsigned char* mallocbuf; // 512K from the start of MP3 buffer
+extern unsigned char* filebuf; // The rest of the MP3 buffer
+
+/* Standard library functions that are used by the codecs follow here */
+
+/* Get these functions 'out of the way' of the standard functions. Not doing
+ * so confuses the cygwin linker, and maybe others. These functions need to
+ * be implemented elsewhere */
+#define malloc(x) codec_malloc(x)
+#define calloc(x,y) codec_calloc(x,y)
+#define realloc(x,y) codec_realloc(x,y)
+#define free(x) codec_free(x)
void* codec_malloc(size_t size);
void* codec_calloc(size_t nmemb, size_t size);
void* codec_realloc(void* ptr, size_t size);
void codec_free(void* ptr);
-#if defined(SIMULATOR)
+#if !defined(SIMULATOR)
+#define alloca __builtin_alloca
+#else
+#define alloca(x) codec_alloca(x)
void* codec_alloca(size_t size);
#endif
void *memcpy(void *dest, const void *src, size_t n);
void *memset(void *s, int c, size_t n);
int memcmp(const void *s1, const void *s2, size_t n);
-void* memmove(const void *s1, const void *s2, size_t n);
+void *memmove(const void *s1, const void *s2, size_t n);
+
+size_t strlen(const char *s);
+char *strcpy(char *dest, const char *src);
+char *strcat(char *dest, const char *src);
+int strcmp(const char *, const char *);
+int strcasecmp(const char *, const char *);
+
+void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *));
+
+#define abs(x) ((x)>0?(x):-(x))
+#define labs(x) abs(x)
+
+/* Various codec helper functions */
int codec_init(struct codec_api* rb);
void codec_set_replaygain(struct mp3entry* id3);
+