1
0
Fork 0
forked from len0rd/rockbox

SWCODEC/IRAM: Save voice IRAM when a plugin initializes its IRAM. Defines two macros for declaring and initializing IRAM. Plugins should use these instead. See mp3_encoder, doom, etc. for details. Further tweaks in buffer restoration after other use. Hiding of some interfaces that should only be used by buffer management.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11544 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Michael Sevakis 2006-11-18 02:18:29 +00:00
parent e2a262ee25
commit acc29d95be
15 changed files with 204 additions and 125 deletions

View file

@ -29,14 +29,7 @@
#include "lib/configfile.h"
PLUGIN_HEADER
#ifdef USE_IRAM
extern char iramcopy[];
extern char iramstart[];
extern char iramend[];
extern char iedata[];
extern char iend[];
#endif
PLUGIN_IRAM_DECLARE
struct plugin_api* rb;
@ -370,21 +363,10 @@ static int gameProc( void )
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
{
(void)parameter;
#ifdef USE_IRAM
void* audiobuf;
int audiosize;
#endif
rb = api;
#ifdef USE_IRAM
/* We need to stop audio playback in order to use IRAM, so we grab
the audio buffer - but we don't use it. */
audiobuf = rb->plugin_get_audio_buffer(&audiosize);
rb->memcpy(iramstart, iramcopy, iramend-iramstart);
rb->memset(iedata, 0, iend - iedata);
#endif
PLUGIN_IRAM_INIT(rb)
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
rb->cpu_boost(true);