diff options
Diffstat (limited to 'Graphic_Equalizer/doc/html/runfft_8hcc-source.html')
-rw-r--r-- | Graphic_Equalizer/doc/html/runfft_8hcc-source.html | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/Graphic_Equalizer/doc/html/runfft_8hcc-source.html b/Graphic_Equalizer/doc/html/runfft_8hcc-source.html new file mode 100644 index 0000000..554df35 --- /dev/null +++ b/Graphic_Equalizer/doc/html/runfft_8hcc-source.html @@ -0,0 +1,166 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> +<title>Graphic Equalizer: C:/Project Marcel & Oliver/Graphic_Equalizer/src/runfft.hcc Source File</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +</head><body> +<!-- Generated by Doxygen 1.3.9.1 --> +<div class="qindex"><a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="globals.html">Globals</a></div> +<div class="nav"> +<a class="el" href="dir_000000.html">C:</a> / <a class="el" href="dir_000001.html">Project Marcel & Oliver</a> / <a class="el" href="dir_000002.html">Graphic_Equalizer</a> / <a class="el" href="dir_000004.html">src</a></div> +<h1>runfft.hcc</h1><a href="runfft_8hcc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 +00020 <span class="preprocessor">#include <stdlib.hch></span> +00021 <span class="preprocessor">#include "pal_master.hch"</span> +00022 +00023 <span class="preprocessor">#include "<a class="code" href="configuration_8hch.html">configuration.hch</a>"</span> +00024 <span class="preprocessor">#if USE_RUNFFT</span> +00025 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="audio_8hch.html">audio.hch</a>"</span> +00026 <span class="preprocessor">#include "fft.hch"</span> +00027 +00028 <span class="preprocessor">#include "debug.hch"</span> +00029 +00030 <span class="comment">/*</span> +00031 <span class="comment"> * Forward declarations</span> +00032 <span class="comment"> */</span> +00033 <span class="keyword">static</span> macro expr ClockRate = PAL_ACTUAL_CLOCK_RATE; +00034 <span class="preprocessor">#if HARDWARE_MULTIPLY</span> +00035 <span class="preprocessor"></span><span class="comment">//input buffer</span> +00036 ram <span class="keywordtype">signed</span> 18 audio_buffer_in[256] with { block = <span class="stringliteral">"BlockRAM"</span>}; +00037 <span class="comment">//output buffer</span> +00038 ram <span class="keywordtype">signed</span> 18 audio_buffer_out[128] with { block = <span class="stringliteral">"BlockRAM"</span>}; +00039 <span class="preprocessor">#else</span> +00040 <span class="preprocessor"></span><span class="comment">//input buffer</span> +00041 ram <span class="keywordtype">signed</span> 16 audio_buffer_in[256] with { block = <span class="stringliteral">"BlockRAM"</span>}; +00042 <span class="comment">//output buffer</span> +00043 ram <span class="keywordtype">signed</span> 16 audio_buffer_out[128] with { block = <span class="stringliteral">"BlockRAM"</span>}; +00044 <span class="preprocessor">#endif</span> +00045 <span class="preprocessor"></span><span class="comment">//EQ settings for the FFT</span> +00046 ram <span class="keywordtype">unsigned</span> 4 EQ_info[128] with { block = <span class="stringliteral">"BlockRAM"</span>}; +00047 <span class="comment">//EQ settings received from the display</span> +00048 +00049 +00050 <span class="preprocessor">#if HARDWARE_MULTIPLY</span> +00051 <span class="preprocessor"></span><span class="keywordtype">signed</span> 18 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4; +00052 +00053 <span class="keywordtype">signed</span> 18 *audioptr_out1,*audioptr_out2; +00054 +00055 <span class="keywordtype">unsigned</span> 6 *displayptr1,*displayptr2,*displayptr3,*displayptr4; +00056 <span class="preprocessor">#else</span> +00057 <span class="preprocessor"></span><span class="keywordtype">signed</span> 16 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4; +00058 +00059 <span class="keywordtype">signed</span> 16 *audioptr_out1,*audioptr_out2; +00060 +00061 <span class="keywordtype">unsigned</span> 6 *displayptr1,*displayptr2,*displayptr3,*displayptr4; +00062 <span class="preprocessor">#endif</span> +00063 <span class="preprocessor"></span> +00074 macro proc <a class="code" href="audio_8hcc.html#a1">audio_main</a>(audiodata, AUDIOIN, AUDIOOUT) +00075 { +00076 <span class="keywordtype">signed</span> 18 sample; +00077 <span class="keywordtype">unsigned</span> 6 sample_count; +00078 <span class="keywordtype">unsigned</span> 8 i,cycle; +00079 <span class="keywordtype">unsigned</span> 4 eqinfo; +00080 +00081 <span class="keywordtype">unsigned</span> 1 FFT_Sync, first; +00082 macro expr OW = PalAudioOutGetMaxDataWidthCT (); +00083 macro expr IW = PalAudioInGetMaxDataWidthCT (); +00084 <span class="keywordtype">signed</span> LeftNew, RightNew; +00085 <span class="keywordtype">signed</span> Output_sample; +00086 +00087 ram <span class="keywordtype">unsigned</span> 6 input[64]; +00088 +00089 <span class="comment">//pointers for double and quadruple buffering:</span> +00090 audioptr_in1 = &audio_buffer_in[0]; +00091 audioptr_in2 = &audio_buffer_in[64]; +00092 audioptr_in3 = &audio_buffer_in[128]; +00093 audioptr_in4 = &audio_buffer_in[192]; +00094 +00095 audioptr_out1 = &audio_buffer_out[0]; +00096 audioptr_out2 = &audio_buffer_out[64]; +00097 +00098 displayptr1 = &audiodata.ifft_info.write[0]; +00099 displayptr2 = &audiodata.ifft_info.write[64]; +00100 displayptr3 = &audiodata.ifft_info.write[128]; +00101 displayptr4 = &audiodata.ifft_info.write[192]; +00102 +00103 FFT_Sync=0; +00104 par +00105 { +00106 <span class="keywordflow">for</span>(;;) +00107 { +00108 <span class="keywordflow">if</span> (FFT_Sync) <span class="comment">//if 64 samples are read from ADC...</span> +00109 { +00110 par +00111 { +00112 <span class="comment">// switch pointers </span> +00113 audioptr_in1 = audioptr_in2; +00114 audioptr_in2 = audioptr_in3; +00115 audioptr_in3 = audioptr_in4; +00116 audioptr_in4 = audioptr_in1; +00117 +00118 audioptr_out1 = audioptr_out2; +00119 audioptr_out2 = audioptr_out1; +00120 +00121 displayptr1=displayptr2; +00122 displayptr2=displayptr3; +00123 displayptr3=displayptr4; +00124 displayptr4=displayptr1; +00125 +00126 FFT_Sync = 0; +00127 } +00128 +00129 <span class="comment">// FFT calculation</span> +00130 perform_fft(audioptr_in1); +00131 +00132 <span class="preprocessor">#if PERFORM_FFT_CALCULATION</span> +00133 <span class="preprocessor"></span> <a class="code" href="fft_8hcc.html#a5">equalize_audio</a>(&audiodata); +00134 <span class="preprocessor">#endif</span> +00135 <span class="preprocessor"></span> <span class="comment">// inverse FFT calculation</span> +00136 perform_ifft(audioptr_out1,displayptr1); +00137 } +00138 <span class="keywordflow">else</span> +00139 delay; +00140 } +00141 +00142 <span class="keywordflow">for</span>(sample_count=0;;)<span class="comment">//store the samples in the inputbuffer</span> +00143 { +00144 <span class="keywordflow">if</span> (!FFT_Sync) +00145 { +00146 par +00147 { +00148 seq +00149 { +00150 PalAudioInRead(AUDIOIN, &LeftNew, &RightNew); +00151 <span class="preprocessor">#if HARDWARE_MULTIPLY </span> +00152 <span class="preprocessor"></span> audioptr_in1[sample_count] = LeftNew;<span class="comment">//drop 2 LSB's</span> +00153 <span class="preprocessor">#else</span> +00154 <span class="preprocessor"></span> audioptr_in1[sample_count] = (LeftNew\\2);<span class="comment">//drop 2 LSB's</span> +00155 <span class="preprocessor">#endif</span> +00156 <span class="preprocessor"></span> sample_count++; +00157 <span class="keywordflow">if</span> (!sample_count) +00158 { +00159 FFT_Sync = 1; +00160 } +00161 } +00162 seq +00163 { +00164 Output_sample = audioptr_out2[sample_count]; +00165 } +00166 } +00167 } +00168 <span class="keywordflow">else</span> +00169 { +00170 delay; +00171 } +00172 } +00173 <span class="keywordflow">for</span>(;;) +00174 { +00175 PalAudioOutWrite(AUDIOOUT,(<span class="keywordtype">signed</span> OW)(Output_sample @ 0),(<span class="keywordtype">signed</span> OW)(Output_sample @ 0)); +00176 } +00177 }<span class="comment">//end par</span> +00178 }<span class="comment">// end function</span> +00179 <span class="preprocessor">#endif</span> +00180 <span class="preprocessor"></span> +</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Nov 29 12:04:48 2004 for Graphic Equalizer by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> +</body> +</html> |