From 9cf76179ce7b2de13abd8f0049dddc7c38794159 Mon Sep 17 00:00:00 2001 From: Stepan Moskovchenko Date: Thu, 11 Jan 2007 20:13:15 +0000 Subject: Make MIDI playback work on the Simulator, with sound etc. The #define stuff is a bit dirty but it works right now. Simulator sound quality is actually better due to increased CPU resources. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11987 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/midiplay.c | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/apps/plugins/midiplay.c b/apps/plugins/midiplay.c index 759535ac9e..556cf41cb2 100644 --- a/apps/plugins/midiplay.c +++ b/apps/plugins/midiplay.c @@ -78,13 +78,26 @@ PLUGIN_IRAM_DECLARE #define FRACTSIZE 10 -#define SAMPLE_RATE 22050 // 44100 22050 11025 -#define MAX_VOICES 14 // Note: 24 midi channels is the minimum general midi + +#ifndef SIMULATOR + #define SAMPLE_RATE 22050 // 44100 22050 11025 + #define MAX_VOICES 14 // Note: 24 midi channels is the minimum general midi // spec implementation +#else // Simulator requires 44100, and we can afford to use more voices + #define SAMPLE_RATE 44100 + #define MAX_VOICES 48 +#endif + + #define BUF_SIZE 512 #define NBUF 2 #undef SYNC + +#ifdef SIMULATOR + #define SYNC +#endif + struct MIDIfile * mf IBSS_ATTR; int numberOfSamples IBSS_ATTR; @@ -133,10 +146,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) rb->profstop(); #endif -#ifndef SIMULATOR +//#ifndef SIMULATOR rb->pcm_play_stop(); - rb->pcm_set_frequency(44100); // 44100 -#endif + rb->pcm_set_frequency(SAMPLE_RATE); // 44100 +//#endif #if defined(HAVE_ADJUSTABLE_CPU_FREQ) rb->cpu_boost(false); @@ -221,10 +234,10 @@ int midimain(void * filename) if (initSynth(mf, "/.rockbox/patchset/patchset.cfg", "/.rockbox/patchset/drums.cfg") == -1) return -1; -#ifndef SIMULATOR +//#ifndef SIMULATOR rb->pcm_play_stop(); rb->pcm_set_frequency(SAMPLE_RATE); // 44100 22050 11025 -#endif +//#endif /* * tick() will do one MIDI clock tick. Then, there's a loop here that @@ -255,9 +268,9 @@ int midimain(void * filename) } while(notesUsed == 0); synthbuf(); -#ifndef SIMULATOR +//#ifndef SIMULATOR rb->pcm_play_data(&get_more, NULL, 0); -#endif +//#endif int vol=0; -- cgit v1.2.3