Dependencies:   mbed

Committer:
faker
Date:
Mon Jun 13 15:20:17 2011 +0000
Revision:
0:adfbd02222d4

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
faker 0:adfbd02222d4 1 /*****************************************************/
faker 0:adfbd02222d4 2 /* Delay_Unit.cpp */
faker 0:adfbd02222d4 3 /* */
faker 0:adfbd02222d4 4 /*****************************************************/
faker 0:adfbd02222d4 5
faker 0:adfbd02222d4 6 #define DELAY_MAIN
faker 0:adfbd02222d4 7 #include "Delay_Unit.h"
faker 0:adfbd02222d4 8
faker 0:adfbd02222d4 9 #define LIMIT_P (32767)
faker 0:adfbd02222d4 10 #define LIMIT_N (-32768)
faker 0:adfbd02222d4 11
faker 0:adfbd02222d4 12 int delay(int iEffectIn) {
faker 0:adfbd02222d4 13
faker 0:adfbd02222d4 14 int iSignal;
faker 0:adfbd02222d4 15
faker 0:adfbd02222d4 16 // Bypass ?
faker 0:adfbd02222d4 17 if(g_iDelayBypass == 0)return iEffectIn;
faker 0:adfbd02222d4 18
faker 0:adfbd02222d4 19 // Delay
faker 0:adfbd02222d4 20 iSignal = (int)g_sDelayBuff[g_usDelayPoint] * g_iDelayFeedBackLevel / 100 + iEffectIn;
faker 0:adfbd02222d4 21
faker 0:adfbd02222d4 22 // Output Gain
faker 0:adfbd02222d4 23 if (iSignal >= LIMIT_P)iSignal = LIMIT_P;
faker 0:adfbd02222d4 24 if (iSignal <= LIMIT_N)iSignal = LIMIT_N;
faker 0:adfbd02222d4 25
faker 0:adfbd02222d4 26 g_sDelayBuff[g_usDelayPoint] = iSignal;
faker 0:adfbd02222d4 27
faker 0:adfbd02222d4 28 g_usDelayPoint = (g_usDelayPoint + 1) % (MAX_DELAY_POINT * g_iDelayTime / MAX_DELAY_TIME);
faker 0:adfbd02222d4 29
faker 0:adfbd02222d4 30 return iSignal;
faker 0:adfbd02222d4 31
faker 0:adfbd02222d4 32 }
faker 0:adfbd02222d4 33
faker 0:adfbd02222d4 34 #undef DELAY_MAIN