diff options
Diffstat (limited to 'Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc-source.html')
-rw-r--r-- | Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc-source.html | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc-source.html b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc-source.html new file mode 100644 index 0000000..28ce4b0 --- /dev/null +++ b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc-source.html @@ -0,0 +1,168 @@ +<!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 2: 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="annotated.html">Data Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</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 "<a class="code" href="fft_8hch.html">fft.hch</a>"</span> +00027 +00028 <span class="preprocessor">#if HAVE_DEBUG</span> +00029 <span class="preprocessor"></span><span class="preprocessor"> #include "debug.hch"</span> +00030 <span class="preprocessor">#endif</span> +00031 <span class="preprocessor"></span> +00032 <span class="comment">/*</span> +00033 <span class="comment"> * Forward declarations</span> +00034 <span class="comment"> */</span> +00035 <span class="keyword">static</span> macro expr ClockRate = PAL_ACTUAL_CLOCK_RATE; +00036 <span class="preprocessor">#if HARDWARE_MULTIPLY</span> +00037 <span class="preprocessor"></span><span class="comment">//input buffer</span> +00038 ram <span class="keywordtype">signed</span> 18 audio_buffer_in[256] with { block = <span class="stringliteral">"BlockRAM"</span>}; +00039 <span class="comment">//output buffer</span> +00040 ram <span class="keywordtype">signed</span> 18 audio_buffer_out[128] with { block = <span class="stringliteral">"BlockRAM"</span>}; +00041 <span class="preprocessor">#else</span> +00042 <span class="preprocessor"></span><span class="comment">//input buffer</span> +00043 ram <span class="keywordtype">signed</span> 16 audio_buffer_in[256] with { block = <span class="stringliteral">"BlockRAM"</span>}; +00044 <span class="comment">//output buffer</span> +00045 ram <span class="keywordtype">signed</span> 16 audio_buffer_out[128] with { block = <span class="stringliteral">"BlockRAM"</span>}; +00046 <span class="preprocessor">#endif</span> +00047 <span class="preprocessor"></span><span class="comment">//EQ settings for the FFT</span> +00048 ram <span class="keywordtype">unsigned</span> 4 EQ_info[128] with { block = <span class="stringliteral">"BlockRAM"</span>}; +00049 <span class="comment">//EQ settings received from the display</span> +00050 +00051 +00052 <span class="preprocessor">#if HARDWARE_MULTIPLY</span> +00053 <span class="preprocessor"></span><span class="keywordtype">signed</span> 18 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4; +00054 +00055 <span class="keywordtype">signed</span> 18 *audioptr_out1,*audioptr_out2; +00056 +00057 <span class="keywordtype">unsigned</span> 6 *displayptr1,*displayptr2,*displayptr3,*displayptr4; +00058 <span class="preprocessor">#else</span> +00059 <span class="preprocessor"></span><span class="keywordtype">signed</span> 16 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4; +00060 +00061 <span class="keywordtype">signed</span> 16 *audioptr_out1,*audioptr_out2; +00062 +00063 <span class="keywordtype">unsigned</span> 6 *displayptr1,*displayptr2,*displayptr3,*displayptr4; +00064 <span class="preprocessor">#endif</span> +00065 <span class="preprocessor"></span> +00076 macro proc <a class="code" href="audio_8hcc.html#a1">audio_main</a>(audiodata, AUDIOIN, AUDIOOUT) +00077 { +00078 <span class="keywordtype">signed</span> 18 sample; +00079 <span class="keywordtype">unsigned</span> 6 sample_count; +00080 <span class="keywordtype">unsigned</span> 8 i,cycle; +00081 <span class="keywordtype">unsigned</span> 4 eqinfo; +00082 +00083 <span class="keywordtype">unsigned</span> 1 FFT_Sync, first; +00084 macro expr OW = PalAudioOutGetMaxDataWidthCT (); +00085 macro expr IW = PalAudioInGetMaxDataWidthCT (); +00086 <span class="keywordtype">signed</span> LeftNew, RightNew; +00087 <span class="keywordtype">signed</span> Output_sample; +00088 +00089 ram <span class="keywordtype">unsigned</span> 6 input[64]; +00090 +00091 <span class="comment">//pointers for double and quadruple buffering:</span> +00092 audioptr_in1 = &audio_buffer_in[0]; +00093 audioptr_in2 = &audio_buffer_in[64]; +00094 audioptr_in3 = &audio_buffer_in[128]; +00095 audioptr_in4 = &audio_buffer_in[192]; +00096 +00097 audioptr_out1 = &audio_buffer_out[0]; +00098 audioptr_out2 = &audio_buffer_out[64]; +00099 +00100 displayptr1 = &audiodata.ifft_info.write[0]; +00101 displayptr2 = &audiodata.ifft_info.write[64]; +00102 displayptr3 = &audiodata.ifft_info.write[128]; +00103 displayptr4 = &audiodata.ifft_info.write[192]; +00104 +00105 FFT_Sync=0; +00106 par +00107 { +00108 <span class="keywordflow">for</span>(;;) +00109 { +00110 <span class="keywordflow">if</span> (FFT_Sync) <span class="comment">//if 64 samples are read from ADC...</span> +00111 { +00112 par +00113 { +00114 <span class="comment">// switch pointers </span> +00115 audioptr_in1 = audioptr_in2; +00116 audioptr_in2 = audioptr_in3; +00117 audioptr_in3 = audioptr_in4; +00118 audioptr_in4 = audioptr_in1; +00119 +00120 audioptr_out1 = audioptr_out2; +00121 audioptr_out2 = audioptr_out1; +00122 +00123 displayptr1=displayptr2; +00124 displayptr2=displayptr3; +00125 displayptr3=displayptr4; +00126 displayptr4=displayptr1; +00127 +00128 FFT_Sync = 0; +00129 } +00130 +00131 <span class="comment">// FFT calculation</span> +00132 <a class="code" href="fft_8hcc.html#a4">perform_fft</a>(audioptr_in1); +00133 +00134 <span class="preprocessor">#if PERFORM_FFT_CALCULATION</span> +00135 <span class="preprocessor"></span> <a class="code" href="fft_8hcc.html#a6">equalize_audio</a>(&audiodata); +00136 <span class="preprocessor">#endif</span> +00137 <span class="preprocessor"></span> <span class="comment">// inverse FFT calculation</span> +00138 <a class="code" href="fft_8hcc.html#a5">perform_ifft</a>(audioptr_out1,displayptr1); +00139 } +00140 <span class="keywordflow">else</span> +00141 delay; +00142 } +00143 +00144 <span class="keywordflow">for</span>(sample_count=0;;)<span class="comment">//store the samples in the inputbuffer</span> +00145 { +00146 <span class="keywordflow">if</span> (!FFT_Sync) +00147 { +00148 par +00149 { +00150 seq +00151 { +00152 PalAudioInRead(AUDIOIN, &LeftNew, &RightNew); +00153 <span class="preprocessor">#if HARDWARE_MULTIPLY </span> +00154 <span class="preprocessor"></span> audioptr_in1[sample_count] = LeftNew;<span class="comment">//drop 2 LSB's</span> +00155 <span class="preprocessor">#else</span> +00156 <span class="preprocessor"></span> audioptr_in1[sample_count] = (LeftNew\\2);<span class="comment">//drop 2 LSB's</span> +00157 <span class="preprocessor">#endif</span> +00158 <span class="preprocessor"></span> sample_count++; +00159 <span class="keywordflow">if</span> (!sample_count) +00160 { +00161 FFT_Sync = 1; +00162 } +00163 } +00164 seq +00165 { +00166 Output_sample = audioptr_out2[sample_count]; +00167 } +00168 } +00169 } +00170 <span class="keywordflow">else</span> +00171 { +00172 delay; +00173 } +00174 } +00175 <span class="keywordflow">for</span>(;;) +00176 { +00177 PalAudioOutWrite(AUDIOOUT,(<span class="keywordtype">signed</span> OW)(Output_sample @ 0),(<span class="keywordtype">signed</span> OW)(Output_sample @ 0)); +00178 } +00179 }<span class="comment">//end par</span> +00180 }<span class="comment">// end function</span> +00181 <span class="preprocessor">#endif</span> +00182 <span class="preprocessor"></span> +</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 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> |