static/inline/iram raid gives nice speedup
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14915 a1c6a512-1295-4272-9138-f99709370657
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index 52a5388..d6cb151 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -97,6 +97,8 @@
int quit=0;
struct plugin_api * rb;
+static int midimain(void * filename);
+
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
{
int retval = 0;
@@ -134,7 +136,6 @@
#if defined(HAVE_ADJUSTABLE_CPU_FREQ)
rb->cpu_boost(false);
#endif
-
rb->splash(HZ, "FINISHED PLAYING");
if(retval == -1)
@@ -196,7 +197,7 @@
#endif
}
-int midimain(void * filename)
+static int midimain(void * filename)
{
int notesUsed = 0;
int a=0;
diff --git a/apps/plugins/midi/midiutil.h b/apps/plugins/midi/midiutil.h
index b15ba83..6968c83 100644
--- a/apps/plugins/midi/midiutil.h
+++ b/apps/plugins/midi/midiutil.h
@@ -138,9 +138,7 @@
};
int printf(const char *fmt, ...);
-int midimain(void * filename);
unsigned char readChar(int file);
-inline void setPoint(struct SynthObject * so, int pt);
int readTwoBytes(int file);
int readFourBytes(int file);
int readVarData(int file);
diff --git a/apps/plugins/midi/sequencer.c b/apps/plugins/midi/sequencer.c
index 27d960c..b2756f2 100644
--- a/apps/plugins/midi/sequencer.c
+++ b/apps/plugins/midi/sequencer.c
@@ -21,13 +21,20 @@
#include "guspat.h"
#include "synth.h"
-void setVolScale(int a);
-
extern struct plugin_api * rb;
long tempo=375000;
-inline void setVol(int ch, int vol)
+/* Sets the volume scaling by channel volume and note volume */
+/* This way we can do the multiplication/indexing once per */
+/* MIDI event at the most, instead of once per sample. */
+static inline void setVolScale(int a)
+{
+ struct SynthObject * so = &voices[a];
+ so->volscale = ((signed short int)so->vol*(signed short int)chVol[so->ch]);
+}
+
+static inline void setVol(int ch, int vol)
{
int a=0;
chVol[ch]=vol;
@@ -39,7 +46,7 @@
setVolScale(a);
}
-inline void setPan(int ch, int pan)
+static inline void setPan(int ch, int pan)
{
// printf("\npanning[%d] %d ==> %d", ch, chPanRight[ch], pan);
@@ -48,7 +55,7 @@
}
-inline void setPatch(int ch, int pat)
+static inline void setPatch(int ch, int pat)
{
chPat[ch]=pat;
}
@@ -123,7 +130,7 @@
73297,73330,73363,73396,73429,73462,73495,73528
};
-void findDelta(struct SynthObject * so, int ch, int note)
+static void findDelta(struct SynthObject * so, int ch, int note)
{
struct GWaveform * wf = patchSet[chPat[ch]]->waveforms[patchSet[chPat[ch]]->noteTable[note]];
@@ -136,7 +143,7 @@
so->delta = delta;
}
-inline void setPW(int ch, int msb, int lsb)
+static inline void setPW(int ch, int msb, int lsb)
{
chPW[ch] = msb<<2|lsb>>5;
@@ -150,16 +157,7 @@
}
}
-/* Sets the volume scaling by channel volume and note volume */
-/* This way we can do the multiplication/indexing once per */
-/* MIDI event at the most, instead of once per sample. */
-void setVolScale(int a)
-{
- struct SynthObject * so = &voices[a];
- so->volscale = ((signed short int)so->vol*(signed short int)chVol[so->ch]);
-}
-
-void pressNote(int ch, int note, int vol)
+static void pressNote(int ch, int note, int vol)
{
static int lastKill = 0;
/* Silences all channels but one, for easy debugging, for me. */
@@ -251,9 +249,8 @@
}
}
}
-inline void stopVoice(struct SynthObject * so);
-void releaseNote(int ch, int note)
+static void releaseNote(int ch, int note)
{
if(ch==9)
diff --git a/apps/plugins/midi/synth.c b/apps/plugins/midi/synth.c
index 44d42c0..4936afb 100644
--- a/apps/plugins/midi/synth.c
+++ b/apps/plugins/midi/synth.c
@@ -191,6 +191,7 @@
#define getSample(s,wf) ((short *)(wf)->data)[s]
+void setPoint(struct SynthObject * so, int pt) ICODE_ATTR;
void setPoint(struct SynthObject * so, int pt)
{
if(so->ch==9) /* Drums, no ADSR */
@@ -247,7 +248,6 @@
so->curOffset = 0;
}
-
inline void stopVoice(struct SynthObject * so)
{
if(so->state == STATE_RAMPDOWN)
diff --git a/apps/plugins/midi/synth.h b/apps/plugins/midi/synth.h
index f85e3d1..5edaf2b 100644
--- a/apps/plugins/midi/synth.h
+++ b/apps/plugins/midi/synth.h
@@ -19,6 +19,7 @@
int initSynth(struct MIDIfile * mf, char * filename, char * drumConfig);
signed short int synthVoice(struct SynthObject * so);
+void setPoint(struct SynthObject * so, int pt);
static inline void synthSample(int * mixL, int * mixR)
{