Barometric Vario function changed

new menu items added to handle new function
sound function changed for Vario
sound driver changed to remove crisps on continues sound
frsky data structure changed to fit new variables, some spares reused
This commit is contained in:
maxim.karban@gmail.com
2012-04-17 16:08:54 +00:00
parent bcfc573312
commit e4c59f402d
13 changed files with 229 additions and 91 deletions
+19 -2
View File
@@ -89,9 +89,9 @@ void audioQueue::heartbeat()
toneFreq += toneFreqIncr;
}
else {
SPEAKER_OFF;
if (tonePause > 0) {
SPEAKER_OFF;
tonePause--;
}
else if (t_queueRidx != t_queueWidx) {
@@ -99,10 +99,14 @@ void audioQueue::heartbeat()
toneTimeLeft = queueToneLength[t_queueRidx];
toneFreqIncr = queueToneFreqIncr[t_queueRidx];
tonePause = queueTonePause[t_queueRidx];
if((toneFreq==0) || (toneTimeLeft==0)){
SPEAKER_OFF;
}
if (!queueToneRepeat[t_queueRidx]--) {
t_queueRidx = (t_queueRidx + 1) % AUDIO_QUEUE_LENGTH;
}
} else {
SPEAKER_OFF;
}
}
#endif
@@ -151,6 +155,19 @@ void audioQueue::playASAP(uint8_t tFreq, uint8_t tLen, uint8_t tPause,
}
}
void audioQueue::playVario(uint8_t tFreq, uint8_t tLen)
{
uint8_t next_queueWidx = (t_queueWidx + 1) % AUDIO_QUEUE_LENGTH;
if (next_queueWidx != t_queueRidx) {
queueToneFreq[t_queueWidx] = tFreq;
queueToneLength[t_queueWidx] = tLen;
queueTonePause[t_queueWidx] = 0;
queueToneRepeat[t_queueWidx] = 0;
queueToneFreqIncr[t_queueWidx] = 0;
t_queueWidx = next_queueWidx;
}
}
void audioQueue::event(uint8_t e, uint8_t f)
{
s_beeper = (g_eeGeneral.beeperMode>0 || (g_eeGeneral.beeperMode==0 && e>=AU_WARNING1) || (g_eeGeneral.beeperMode>=-1 && e<=AU_ERROR));