35 |
* |
* |
36 |
* @param Samples - total number of sample points to be rendered in this |
* @param Samples - total number of sample points to be rendered in this |
37 |
* audio fragment cycle by the audio engine |
* audio fragment cycle by the audio engine |
38 |
|
* @returns true if there was something to process |
39 |
*/ |
*/ |
40 |
void EGDecay::Process(uint Samples) { |
bool EGDecay::Process(uint Samples) { |
41 |
if (!DecayStepsLeft) return; |
if (!DecayStepsLeft) return false; |
42 |
|
|
43 |
int iSample = TriggerDelay; |
int iSample = TriggerDelay; |
44 |
int to_process = RTMath::Min(Samples - iSample, DecayStepsLeft); |
int to_process = RTMath::Min(Samples - iSample, DecayStepsLeft); |
49 |
Level += DecayCoeff; |
Level += DecayCoeff; |
50 |
} |
} |
51 |
TriggerDelay = 0; |
TriggerDelay = 0; |
52 |
|
|
53 |
|
return true; |
54 |
} |
} |
55 |
|
|
56 |
/** |
/** |