summaryrefslogtreecommitdiff
path: root/apps/plugins/doom
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2006-11-18 02:18:29 +0000
committerMichael Sevakis <jethead71@rockbox.org>2006-11-18 02:18:29 +0000
commitacc29d95be85c9cfd0d8f74dda813d7d1082e2ec (patch)
tree81fdd154d122b393d6254968cba5bc90b63e4741 /apps/plugins/doom
parente2a262ee258769136eadc58c2bc8e3aa53db1a71 (diff)
downloadrockbox-acc29d95be85c9cfd0d8f74dda813d7d1082e2ec.tar.gz
rockbox-acc29d95be85c9cfd0d8f74dda813d7d1082e2ec.zip
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
Diffstat (limited to 'apps/plugins/doom')
-rw-r--r--apps/plugins/doom/rockdoom.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/apps/plugins/doom/rockdoom.c b/apps/plugins/doom/rockdoom.c
index 2b42322daa..8b73a5bb96 100644
--- a/apps/plugins/doom/rockdoom.c
+++ b/apps/plugins/doom/rockdoom.c
@@ -39,14 +39,7 @@
39#include "st_stuff.h" 39#include "st_stuff.h"
40 40
41PLUGIN_HEADER 41PLUGIN_HEADER
42 42PLUGIN_IRAM_DECLARE
43#ifdef USE_IRAM
44extern char iramcopy[];
45extern char iramstart[];
46extern char iramend[];
47extern char iedata[];
48extern char iend[];
49#endif
50 43
51extern boolean timingdemo, singledemo, demoplayback, fastdemo; // killough 44extern boolean timingdemo, singledemo, demoplayback, fastdemo; // killough
52 45
@@ -785,13 +778,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
785 rb->cpu_boost(true); 778 rb->cpu_boost(true);
786#endif 779#endif
787 780
788#ifdef USE_IRAM 781 PLUGIN_IRAM_INIT(rb)
789 /* We need to stop audio playback in order to use IRAM */
790 rb->audio_stop();
791
792 memcpy(iramstart, iramcopy, iramend-iramstart);
793 memset(iedata, 0, iend - iedata);
794#endif
795 782
796 rb->lcd_setfont(0); 783 rb->lcd_setfont(0);
797 784
@@ -830,7 +817,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
830 if (result < 0) 817 if (result < 0)
831 { 818 {
832#ifdef HAVE_ADJUSTABLE_CPU_FREQ 819#ifdef HAVE_ADJUSTABLE_CPU_FREQ
833 rb->cpu_boost(false); 820 rb->cpu_boost(false);
834#endif 821#endif
835 if( result == -1 ) return PLUGIN_OK; // Quit was selected 822 if( result == -1 ) return PLUGIN_OK; // Quit was selected
836 else if( result == -2 ) return PLUGIN_ERROR; // Missing base wads 823 else if( result == -2 ) return PLUGIN_ERROR; // Missing base wads