rockbox/apps/rbcodecconfig.h
Nils Wallménius b2e80edd16 Change CODECFLAGS to a "simply-expanded" var to give the individual
codec makefiles larger freedom in what they can do to it.
Use this in libopus to prepend the libopus searchpaths to
CODECFLAGS so that its internal config.h will be picked up before
our global one. This avoids having to do a s/config.h/opus_config.h/
when syncing which will be handy soon.

Change-Id: I018d729aa0c8300fa3149f22a5a8c5668b339dfa
Reviewed-on: http://gerrit.rockbox.org/496
Reviewed-by: Nils Wallménius <nils@rockbox.org>
2013-08-23 18:34:30 +02:00

79 lines
2 KiB
C

#ifndef RBCODECCONFIG_H_INCLUDED
#define RBCODECCONFIG_H_INCLUDED
/* Explicit path to avoid issues with name clashes (libopus) */
#include "../firmware/export/config.h"
#ifndef __ASSEMBLER__
/* NULL, offsetof, size_t */
#include <stddef.h>
/* ssize_t, off_t, open, close, read, lseek, SEEK_SET, SEEK_CUR, SEEK_END,
* O_RDONLY, O_WRONLY, O_CREAT, O_APPEND, MAX_PATH, filesize */
#include "file.h"
/* {,u}int{8,16,32,64}_t, , intptr_t, uintptr_t, bool, true, false, swap16,
* swap32, hto{be,le}{16,32}, {be,le}toh{16,32}, ROCKBOX_{BIG,LITTLE}_ENDIAN,
* {,U}INT{8,16,32,64}_{MIN,MAX} */
#include "system.h"
/* Structure to record some info during processing call */
struct dsp_loop_context
{
long last_yield;
#ifdef CPU_COLDFIRE
unsigned long old_macsr;
#endif
};
static inline void dsp_process_start(struct dsp_loop_context *ctx)
{
/* At least perform one yield before starting */
ctx->last_yield = current_tick;
yield();
#if defined(CPU_COLDFIRE)
/* set emac unit for dsp processing, and save old macsr, we're running in
codec thread context at this point, so can't clobber it */
ctx->old_macsr = coldfire_get_macsr();
coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE);
#endif
}
static inline void dsp_process_loop(struct dsp_loop_context *ctx)
{
/* Yield at least once each tick */
long tick = current_tick;
if (TIME_AFTER(tick, ctx->last_yield))
{
ctx->last_yield = tick;
yield();
}
}
static inline void dsp_process_end(struct dsp_loop_context *ctx)
{
#if defined(CPU_COLDFIRE)
/* set old macsr again */
coldfire_set_macsr(ctx->old_macsr);
#endif
(void)ctx;
}
#define DSP_PROCESS_START() \
struct dsp_loop_context __ctx; \
dsp_process_start(&__ctx)
#define DSP_PROCESS_LOOP() \
dsp_process_loop(&__ctx)
#define DSP_PROCESS_END() \
dsp_process_end(&__ctx)
#endif
#define DSP_OUT_MIN_HZ PLAY_SAMPR_HW_MIN
#define DSP_OUT_MAX_HZ PLAY_SAMPR_MAX
#define DSP_OUT_DEFAULT_HZ PLAY_SAMPR_DEFAULT
#endif