1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-19 22:35:12 +03:00

Previous attempt removed :)

This commit is contained in:
Bertrand Songis 2019-05-07 12:43:37 +02:00
parent 380a76eddd
commit 1946b6a967
3 changed files with 5 additions and 18 deletions

View file

@ -88,8 +88,6 @@ void menuRadioSpectrumAnalyser(event_t event)
reusableBuffer.spectrumAnalyser.freq = uint32_t(checkIncDec(event, frequency, reusableBuffer.spectrumAnalyser.freqMin, reusableBuffer.spectrumAnalyser.freqMax, 0)) * 1000000; reusableBuffer.spectrumAnalyser.freq = uint32_t(checkIncDec(event, frequency, reusableBuffer.spectrumAnalyser.freqMin, reusableBuffer.spectrumAnalyser.freqMax, 0)) * 1000000;
if (checkIncDec_Ret) { if (checkIncDec_Ret) {
reusableBuffer.spectrumAnalyser.dirty = true; reusableBuffer.spectrumAnalyser.dirty = true;
memclear(reusableBuffer.spectrumAnalyser.peak, sizeof(reusableBuffer.spectrumAnalyser.peak));
memclear(reusableBuffer.spectrumAnalyser.bars, sizeof(reusableBuffer.spectrumAnalyser.bars));
} }
} }
break; break;
@ -105,8 +103,6 @@ void menuRadioSpectrumAnalyser(event_t event)
if (checkIncDec_Ret) { if (checkIncDec_Ret) {
reusableBuffer.spectrumAnalyser.step = reusableBuffer.spectrumAnalyser.span / LCD_W; reusableBuffer.spectrumAnalyser.step = reusableBuffer.spectrumAnalyser.span / LCD_W;
reusableBuffer.spectrumAnalyser.dirty = true; reusableBuffer.spectrumAnalyser.dirty = true;
memclear(reusableBuffer.spectrumAnalyser.peak, sizeof(reusableBuffer.spectrumAnalyser.peak));
memclear(reusableBuffer.spectrumAnalyser.bars, sizeof(reusableBuffer.spectrumAnalyser.bars));
} }
} }
break; break;
@ -117,15 +113,11 @@ void menuRadioSpectrumAnalyser(event_t event)
uint8_t peak_x = 0; uint8_t peak_x = 0;
for (uint8_t i=0; i<LCD_W; i++) { for (uint8_t i=0; i<LCD_W; i++) {
uint8_t h = min<uint8_t >(reusableBuffer.spectrumAnalyser.bars[i] >> 1, LCD_H); uint8_t h = min<uint8_t >(reusableBuffer.spectrumAnalyser.bars[i] >> 1, LCD_H);
lcdDrawSolidVerticalLine(i, LCD_H - h, h); if (h > peak_y) {
h = min<uint8_t >(reusableBuffer.spectrumAnalyser.peak[i] >> 1, LCD_H); peak_x = i;
if (h) { peak_y = h;
lcdDrawPoint(i, LCD_H - h, FORCE);
if (h > peak_y) {
peak_x = i;
peak_y = h;
}
} }
lcdDrawSolidVerticalLine(i, LCD_H - h, h);
} }
int8_t y = max<int8_t>(FH, LCD_H - peak_y - FH); int8_t y = max<int8_t>(FH, LCD_H - peak_y - FH);

View file

@ -1189,7 +1189,6 @@ union ReusableBuffer
struct struct
{ {
uint8_t bars[LCD_W]; uint8_t bars[LCD_W];
uint8_t peak[LCD_W];
uint32_t freq; uint32_t freq;
uint32_t span; uint32_t span;
uint32_t step; uint32_t step;

View file

@ -223,11 +223,7 @@ void processSpectrumAnalyserFrame(uint8_t module, uint8_t * frame)
int32_t position = *frequency - (reusableBuffer.spectrumAnalyser.freq - reusableBuffer.spectrumAnalyser.span / 2); int32_t position = *frequency - (reusableBuffer.spectrumAnalyser.freq - reusableBuffer.spectrumAnalyser.span / 2);
uint32_t x = (position * LCD_W / 8) / (reusableBuffer.spectrumAnalyser.span / 8); uint32_t x = (position * LCD_W / 8) / (reusableBuffer.spectrumAnalyser.span / 8);
if (x < LCD_W) { if (x < LCD_W) {
uint8_t powerUnsigned = 0x80 + *power; reusableBuffer.spectrumAnalyser.bars[x] = 0x80 + *power;
reusableBuffer.spectrumAnalyser.bars[x] = powerUnsigned;
if (powerUnsigned > reusableBuffer.spectrumAnalyser.peak[x]) {
reusableBuffer.spectrumAnalyser.peak[x] = powerUnsigned;
}
} }
} }