From 2550e155ac6b08475039b24d44f4e08d1d1c53fc Mon Sep 17 00:00:00 2001 From: Marcel Lauwerijssen Date: Tue, 16 Nov 2004 08:07:57 +0000 Subject: --- FFT_Test/runfft.hcc | 62 +++++++++++++++++++---------------------------------- 1 file changed, 22 insertions(+), 40 deletions(-) diff --git a/FFT_Test/runfft.hcc b/FFT_Test/runfft.hcc index 7492095..e470b1e 100644 --- a/FFT_Test/runfft.hcc +++ b/FFT_Test/runfft.hcc @@ -26,14 +26,13 @@ #include "config.hch" #include "debug.hch" #include "fft.hch" -#include "runfft.hch" +#include "audio.hch" #include "presets.hch" /* * Forward declarations */ - static macro expr ClockRate = PAL_ACTUAL_CLOCK_RATE; #if HARDWARE_MULTIPLY //input buffer @@ -49,23 +48,7 @@ ram signed 16 audio_buffer_out[128] with { block = "BlockRAM"}; //EQ settings for the FFT ram unsigned 4 EQ_info[128] with { block = "BlockRAM"}; //EQ settings received from the display -mpram -{ - ram unsigned 4 write[768]; - rom unsigned 4 read[768]; -}EQ_level with { block = "BlockRAM"}; -mpram -{ - ram signed 7 write[256]; - rom signed 7 read[256]; -}fft_info with { block = "BlockRAM"}; - -mpram -{ - ram signed 6 write[256]; - rom signed 6 read[256]; -}ifft_info with {block = "BlockRAM"}; #if HARDWARE_MULTIPLY signed 18 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4; @@ -79,11 +62,10 @@ signed 16 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4; signed 16 *audioptr_out1,*audioptr_out2; #endif -unsigned 10 active_preset; shared expr preset_address = (active_preset << 7); -void LoadPresets() +void LoadPresets(audiodata_t * audiodata) { unsigned 16 temp; unsigned 10 count; @@ -97,10 +79,10 @@ void LoadPresets() temp = presets[index]; index++; } - par { EQ_level.write[count] = temp[7:4]; count++; } - par { EQ_level.write[count] = temp[3:0]; count++; } - par { EQ_level.write[count] = temp[15:12]; count++; } - par { EQ_level.write[count] = temp[11:8]; count++; } + par { audiodata->equalizer_levels.write[count] = temp[7:4]; count++; } + par { audiodata->equalizer_levels.write[count] = temp[3:0]; count++; } + par { audiodata->equalizer_levels.write[count] = temp[15:12]; count++; } + par { audiodata->equalizer_levels.write[count] = temp[11:8]; count++; } } while (count<768); } @@ -108,7 +90,7 @@ void LoadPresets() /* * FFT routine */ -macro proc RunFFT (AudioIn, AudioOut) +macro proc audio_main(AUDIOIN, AUDIOOUT, audiodata) { signed 18 sample; unsigned 6 sample_count; @@ -125,22 +107,22 @@ macro proc RunFFT (AudioIn, AudioOut) active_preset = 2; //pointers for double and quadruple buffering: - audioptr_in1=&audio_buffer_in[0]; - audioptr_in2=&audio_buffer_in[64]; - audioptr_in3=&audio_buffer_in[128]; - audioptr_in4=&audio_buffer_in[192]; + audioptr_in1 = &audio_buffer_in[0]; + audioptr_in2 = &audio_buffer_in[64]; + audioptr_in3 = &audio_buffer_in[128]; + audioptr_in4 = &audio_buffer_in[192]; - audioptr_out1=&audio_buffer_out[0]; - audioptr_out2=&audio_buffer_out[64]; + audioptr_out1 = &audio_buffer_out[0]; + audioptr_out2 = &audio_buffer_out[64]; - displayptr1=&ifft_info.write[0]; - displayptr2=&ifft_info.write[64]; - displayptr3=&ifft_info.write[128]; - displayptr4=&ifft_info.write[192]; + displayptr1 = &audiodata->ifft_info.write[0]; + displayptr2 = &audiodata->ifft_info.write[64]; + displayptr3 = &audiodata->ifft_info.write[128]; + displayptr4 = &audiodata->ifft_info.write[192]; FFT_Sync=0; - LoadPresets(); + LoadPresets(&audiodata); first = 1; par { @@ -173,13 +155,13 @@ par #if 1 for(i=0;iequalizer_levels.read[preset_address+(0 @ i)]; EQ_info[i<-7] = eqinfo; } // set volume of each individual frequency bar (equalizer) - equalize_audio(&EQ_info[0], &fft_info.write[0]); + equalize_audio(&EQ_info[0], &audiodata->fft_info.write[0]); #endif // inverse FFT calculation perform_ifft(audioptr_out1,displayptr1); @@ -204,7 +186,7 @@ par { seq { - PalAudioInRead(AudioIn, &LeftNew, &RightNew); + PalAudioInRead(AUDIOIN, &LeftNew, &RightNew); #if HARDWARE_MULTIPLY audioptr_in1[sample_count] = LeftNew;//drop 2 LSB's #else @@ -229,7 +211,7 @@ par } for(;;) { - PalAudioOutWrite(AudioOut,(signed OW)(Output_sample @ 0),(signed OW)(Output_sample @ 0)); + PalAudioOutWrite(AUDIOOUT,(signed OW)(Output_sample @ 0),(signed OW)(Output_sample @ 0)); } }//end par }// end function -- cgit v0.12