Merge pull request #11538 from klutvott123/osd-visual-beeper

Fix OSD visual beeper
This commit is contained in:
haslinghuis 2022-04-20 21:53:50 +02:00 committed by GitHub
commit 987fba3463
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 2 deletions

View File

@ -47,6 +47,10 @@
#include "io/gps.h" #include "io/gps.h"
#endif #endif
#ifdef USE_OSD
#include "osd/osd.h"
#endif
#include "pg/beeper.h" #include "pg/beeper.h"
#include "scheduler/scheduler.h" #include "scheduler/scheduler.h"
@ -435,6 +439,14 @@ void beeperUpdate(timeUs_t currentTimeUs)
} }
} }
#if defined(USE_OSD)
static bool beeperWasOn = false;
if (beeperIsOn && !beeperWasOn) {
osdSetVisualBeeperState(true);
}
beeperWasOn = beeperIsOn;
#endif
beeperProcessCommand(currentTimeUs); beeperProcessCommand(currentTimeUs);
} }

View File

@ -1205,8 +1205,6 @@ void osdUpdate(timeUs_t currentTimeUs)
break; break;
case OSD_STATE_CHECK: case OSD_STATE_CHECK:
showVisualBeeper = isBeeperOn();
// don't touch buffers if DMA transaction is in progress // don't touch buffers if DMA transaction is in progress
if (displayIsTransferInProgress(osdDisplayPort)) { if (displayIsTransferInProgress(osdDisplayPort)) {
break; break;
@ -1474,6 +1472,11 @@ bool osdGetVisualBeeperState(void)
return showVisualBeeper; return showVisualBeeper;
} }
void osdSetVisualBeeperState(bool state)
{
showVisualBeeper = state;
}
statistic_t *osdGetStats(void) statistic_t *osdGetStats(void)
{ {
return &stats; return &stats;

View File

@ -354,6 +354,7 @@ void osdWarnSetState(uint8_t warningIndex, bool enabled);
bool osdWarnGetState(uint8_t warningIndex); bool osdWarnGetState(uint8_t warningIndex);
bool osdElementVisible(uint16_t value); bool osdElementVisible(uint16_t value);
bool osdGetVisualBeeperState(void); bool osdGetVisualBeeperState(void);
void osdSetVisualBeeperState(bool state);
statistic_t *osdGetStats(void); statistic_t *osdGetStats(void);
bool osdNeedsAccelerometer(void); bool osdNeedsAccelerometer(void);
int osdPrintFloat(char *buffer, char leadingSymbol, float value, char *formatString, unsigned decimalPlaces, bool round, char trailingSymbol); int osdPrintFloat(char *buffer, char leadingSymbol, float value, char *formatString, unsigned decimalPlaces, bool round, char trailingSymbol);

View File

@ -331,6 +331,7 @@ void renderOsdWarning(char *warningText, bool *blinking, uint8_t *displayAttr)
if (osdWarnGetState(OSD_WARNING_VISUAL_BEEPER) && osdGetVisualBeeperState()) { if (osdWarnGetState(OSD_WARNING_VISUAL_BEEPER) && osdGetVisualBeeperState()) {
tfp_sprintf(warningText, " * * * *"); tfp_sprintf(warningText, " * * * *");
*displayAttr = DISPLAYPORT_ATTR_INFO; *displayAttr = DISPLAYPORT_ATTR_INFO;
osdSetVisualBeeperState(false);
return; return;
} }