mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-25 17:25:20 +03:00
Some cleanup
This commit is contained in:
parent
45dd480dfa
commit
46f6bffbba
1 changed files with 224 additions and 168 deletions
|
@ -59,7 +59,7 @@ enum {
|
||||||
SA_CMD_GET_SETTINGS_V2 = 0x09 // Response only
|
SA_CMD_GET_SETTINGS_V2 = 0x09 // Response only
|
||||||
} smartAudioCommand_e;
|
} smartAudioCommand_e;
|
||||||
|
|
||||||
// This is not a good design
|
// This is not a good design; can't distinguish command from response this way.
|
||||||
#define SACMD(cmd) (((cmd) << 1) | 1)
|
#define SACMD(cmd) (((cmd) << 1) | 1)
|
||||||
|
|
||||||
// opmode flags, GET side
|
// opmode flags, GET side
|
||||||
|
@ -115,6 +115,7 @@ static const uint16_t saFreqTable[5][8] =
|
||||||
{ 5740, 5760, 5780, 5800, 5820, 5840, 5860, 5880 }, // FatShark
|
{ 5740, 5760, 5780, 5800, 5820, 5840, 5860, 5880 }, // FatShark
|
||||||
{ 5658, 5695, 5732, 5769, 5806, 5843, 5880, 5917 }, // RaceBand
|
{ 5658, 5695, 5732, 5769, 5806, 5843, 5880, 5917 }, // RaceBand
|
||||||
};
|
};
|
||||||
|
// XXX Should frequencies not usable in locked state be detected?
|
||||||
|
|
||||||
typedef struct saPowerTable_s {
|
typedef struct saPowerTable_s {
|
||||||
int rfpower;
|
int rfpower;
|
||||||
|
@ -153,6 +154,7 @@ static smartAudioDevice_t saDevicePrev = {
|
||||||
.version = 0,
|
.version = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// XXX Possible compliance problem here. Need LOCK/UNLOCK menu?
|
||||||
static uint8_t saLockMode = SA_MODE_SET_UNLOCK;
|
static uint8_t saLockMode = SA_MODE_SET_UNLOCK;
|
||||||
|
|
||||||
// Receive frame reassembly buffer
|
// Receive frame reassembly buffer
|
||||||
|
@ -187,7 +189,7 @@ static uint8_t CRC8(const uint8_t *data, const int8_t len)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void smartAudioPrintSettings(void)
|
static void saPrintSettings(void)
|
||||||
{
|
{
|
||||||
#ifdef SMARTAUDIO_DPRINTF
|
#ifdef SMARTAUDIO_DPRINTF
|
||||||
dprintf(("Current status: version: %d\r\n", saDevice.version));
|
dprintf(("Current status: version: %d\r\n", saDevice.version));
|
||||||
|
@ -279,7 +281,7 @@ static uint8_t sa_osbuf[32]; // Outstanding comamnd frame for retransmission
|
||||||
static int sa_oslen; // And associate length
|
static int sa_oslen; // And associate length
|
||||||
|
|
||||||
#ifdef CMS
|
#ifdef CMS
|
||||||
void smartAudioCmsUpdate(void);
|
void saCmsUpdate(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void saProcessResponse(uint8_t *buf, int len)
|
static void saProcessResponse(uint8_t *buf, int len)
|
||||||
|
@ -297,7 +299,7 @@ static void saProcessResponse(uint8_t *buf, int len)
|
||||||
|
|
||||||
switch(resp) {
|
switch(resp) {
|
||||||
case SA_CMD_GET_SETTINGS_V2: // Version 2 Get Settings
|
case SA_CMD_GET_SETTINGS_V2: // Version 2 Get Settings
|
||||||
case SA_CMD_GET_SETTINGS: // Version 1 Get Settings
|
case SA_CMD_GET_SETTINGS: // Version 1 Get Settings
|
||||||
if (len < 7)
|
if (len < 7)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -307,10 +309,6 @@ static void saProcessResponse(uint8_t *buf, int len)
|
||||||
saDevice.mode = buf[4];
|
saDevice.mode = buf[4];
|
||||||
saDevice.freq = (buf[5] << 8)|buf[6];
|
saDevice.freq = (buf[5] << 8)|buf[6];
|
||||||
|
|
||||||
#ifdef CMS
|
|
||||||
// Export current device status for CMS
|
|
||||||
smartAudioCmsUpdate();
|
|
||||||
#endif
|
|
||||||
#ifdef SMARTAUDIO_DEBUG_MONITOR
|
#ifdef SMARTAUDIO_DEBUG_MONITOR
|
||||||
debug[0] = saDevice.version * 100 + saDevice.mode;
|
debug[0] = saDevice.version * 100 + saDevice.mode;
|
||||||
debug[1] = saDevice.chan;
|
debug[1] = saDevice.chan;
|
||||||
|
@ -354,11 +352,12 @@ static void saProcessResponse(uint8_t *buf, int len)
|
||||||
|
|
||||||
// Debug
|
// Debug
|
||||||
if (memcmp(&saDevice, &saDevicePrev, sizeof(smartAudioDevice_t)))
|
if (memcmp(&saDevice, &saDevicePrev, sizeof(smartAudioDevice_t)))
|
||||||
smartAudioPrintSettings();
|
saPrintSettings();
|
||||||
|
|
||||||
saDevicePrev = saDevice;
|
saDevicePrev = saDevice;
|
||||||
|
|
||||||
#ifdef CMS
|
#ifdef CMS
|
||||||
|
// Export current device status for CMS
|
||||||
|
saCmsUpdate();
|
||||||
saUpdateStatusString();
|
saUpdateStatusString();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -387,7 +386,7 @@ static void saReceiveFramer(uint8_t c)
|
||||||
if (c == 0xAA) {
|
if (c == 0xAA) {
|
||||||
state = S_WAITPRE2;
|
state = S_WAITPRE2;
|
||||||
} else {
|
} else {
|
||||||
state = S_WAITPRE1; // Don't need this
|
state = S_WAITPRE1; // Don't need this (no change)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -434,7 +433,9 @@ static void saReceiveFramer(uint8_t c)
|
||||||
saProcessResponse(sa_rbuf, len + 2);
|
saProcessResponse(sa_rbuf, len + 2);
|
||||||
sa_pktrcvd++;
|
sa_pktrcvd++;
|
||||||
} else if (sa_rbuf[0] & 1) {
|
} else if (sa_rbuf[0] & 1) {
|
||||||
// Command echo (may be)
|
// Command echo
|
||||||
|
// XXX There is an exceptional case (V2 response)
|
||||||
|
// XXX Should check crc in the command format?
|
||||||
} else {
|
} else {
|
||||||
saStat.crc++;
|
saStat.crc++;
|
||||||
}
|
}
|
||||||
|
@ -576,6 +577,7 @@ static void saSetFreq(uint16_t freq)
|
||||||
saQueueCmd(buf, 7);
|
saQueueCmd(buf, 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static void saSetPitFreq(uint16_t freq)
|
static void saSetPitFreq(uint16_t freq)
|
||||||
{
|
{
|
||||||
saSetFreq(freq | SA_FREQ_SETPIT);
|
saSetFreq(freq | SA_FREQ_SETPIT);
|
||||||
|
@ -585,6 +587,7 @@ static void saGetPitFreq(void)
|
||||||
{
|
{
|
||||||
saSetFreq(SA_FREQ_GETPIT);
|
saSetFreq(SA_FREQ_GETPIT);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void saSetBandChan(uint8_t band, uint8_t chan)
|
void saSetBandChan(uint8_t band, uint8_t chan)
|
||||||
{
|
{
|
||||||
|
@ -666,7 +669,7 @@ void smartAudioProcess(uint32_t now)
|
||||||
|
|
||||||
if (!initialSent) {
|
if (!initialSent) {
|
||||||
saGetSettings();
|
saGetSettings();
|
||||||
saGetPitFreq();
|
saSetFreq(SA_FREQ_GETPIT);
|
||||||
saSendQueue();
|
saSendQueue();
|
||||||
initialSent = true;
|
initialSent = true;
|
||||||
return;
|
return;
|
||||||
|
@ -692,8 +695,6 @@ void smartAudioProcess(uint32_t now)
|
||||||
|
|
||||||
#ifdef CMS
|
#ifdef CMS
|
||||||
|
|
||||||
// CMS menu variables
|
|
||||||
|
|
||||||
// Operational Model and RF modes (CMS)
|
// Operational Model and RF modes (CMS)
|
||||||
|
|
||||||
#define SA_OPMODEL_UNDEF 0 // Not known yet
|
#define SA_OPMODEL_UNDEF 0 // Not known yet
|
||||||
|
@ -705,45 +706,48 @@ void smartAudioProcess(uint32_t now)
|
||||||
#define SA_TXMODE_PIT_INRANGE 2
|
#define SA_TXMODE_PIT_INRANGE 2
|
||||||
#define SA_TXMODE_ACTIVE 3
|
#define SA_TXMODE_ACTIVE 3
|
||||||
|
|
||||||
uint8_t saCmsOpmodel = SA_OPMODEL_UNDEF;
|
uint8_t saCmsOpmodel = SA_OPMODEL_UNDEF;
|
||||||
uint8_t smartAudioBand = 0;
|
uint8_t saCmsBand = 0;
|
||||||
uint8_t smartAudioChan = 0;
|
uint8_t saCmsChan = 0;
|
||||||
uint8_t smartAudioPower = 0;
|
uint8_t saCmsPower = 0;
|
||||||
uint16_t smartAudioFreq = 0;
|
uint16_t saCmsDeviceFreq = 0;
|
||||||
|
|
||||||
uint8_t smartAudioOpModel = 0;
|
uint8_t saCmsDeviceStatus = 0;
|
||||||
uint8_t smartAudioStatus = 0;
|
uint8_t saCmsPower;
|
||||||
uint8_t smartAudioPower;
|
uint8_t saCmsPitFMode; // In-Range or Out-Range
|
||||||
uint8_t smartAudioTxMode; // RF state; ACTIVE, PIR, POR
|
uint8_t saCmsFreqMode; // Channel or User defined
|
||||||
uint8_t smartAudioPitFMode; // In-Range or Out-Range
|
|
||||||
uint16_t smartAudioORFreq = 0; // POR frequency
|
|
||||||
uint8_t smartAudioFreqMode; // Channel or User defined
|
|
||||||
uint16_t smartAudioUserFreq = 0; // User defined frequency
|
|
||||||
|
|
||||||
|
uint16_t saCmsORFreq = 0; // POR frequency
|
||||||
|
uint16_t saCmsORFreqNew; // POR frequency
|
||||||
|
|
||||||
void smartAudioCmsUpdate(void)
|
uint16_t saCmsUserFreq = 0; // User defined frequency
|
||||||
|
uint16_t saCmsUserFreqNew; // User defined frequency
|
||||||
|
|
||||||
|
uint8_t saCmsRFState; // RF state; ACTIVE, PIR, POR XXX Not currently used
|
||||||
|
|
||||||
|
void saCmsUpdate(void)
|
||||||
{
|
{
|
||||||
if (saCmsOpmodel == SA_OPMODEL_UNDEF) {
|
if (saCmsOpmodel == SA_OPMODEL_UNDEF) {
|
||||||
// This is a first valid response to GET_SETTINGS.
|
// This is a first valid response to GET_SETTINGS.
|
||||||
saCmsOpmodel = (saDevice.mode & SA_MODE_GET_PITMODE) ? SA_OPMODEL_PIT : SA_OPMODEL_FREE;
|
saCmsOpmodel = (saDevice.mode & SA_MODE_GET_PITMODE) ? SA_OPMODEL_PIT : SA_OPMODEL_FREE;
|
||||||
}
|
}
|
||||||
|
|
||||||
smartAudioBand = (saDevice.chan / 8) + 1;
|
saCmsBand = (saDevice.chan / 8) + 1;
|
||||||
smartAudioChan = (saDevice.chan % 8) + 1;
|
saCmsChan = (saDevice.chan % 8) + 1;
|
||||||
smartAudioFreq = saFreqTable[saDevice.chan / 8][saDevice.chan % 8];
|
saCmsDeviceFreq = saFreqTable[saDevice.chan / 8][saDevice.chan % 8];
|
||||||
|
|
||||||
if ((saDevice.mode & SA_MODE_GET_PITMODE) == 0) {
|
if ((saDevice.mode & SA_MODE_GET_PITMODE) == 0) {
|
||||||
smartAudioTxMode = SA_TXMODE_ACTIVE;
|
saCmsRFState = SA_TXMODE_ACTIVE;
|
||||||
} else if (saDevice.mode & SA_MODE_GET_IN_RANGE_PITMODE) {
|
} else if (saDevice.mode & SA_MODE_GET_IN_RANGE_PITMODE) {
|
||||||
smartAudioTxMode = SA_TXMODE_PIT_INRANGE;
|
saCmsRFState = SA_TXMODE_PIT_INRANGE;
|
||||||
} else {
|
} else {
|
||||||
smartAudioTxMode = SA_TXMODE_PIT_OUTRANGE;
|
saCmsRFState = SA_TXMODE_PIT_OUTRANGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (saDevice.version == 2) {
|
if (saDevice.version == 2) {
|
||||||
smartAudioPower = saDevice.power + 1; // XXX Take care V1
|
saCmsPower = saDevice.power + 1; // XXX Take care V1
|
||||||
} else {
|
} else {
|
||||||
smartAudioPower = saDacToPowerIndex(saDevice.power) + 1;
|
saCmsPower = saDacToPowerIndex(saDevice.power) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
saUpdateStatusString();
|
saUpdateStatusString();
|
||||||
|
@ -753,11 +757,11 @@ char saCmsStatusString[31] = "- -- ---- ---";
|
||||||
// m bc ffff ppp
|
// m bc ffff ppp
|
||||||
// 0123456789012
|
// 0123456789012
|
||||||
|
|
||||||
long saConfigureOpModelByGvar(displayPort_t *, const void *self);
|
static long saCmsConfigOpModelByGvar(displayPort_t *, const void *self);
|
||||||
long saConfigurePitFModeByGvar(displayPort_t *, const void *self);
|
static long saCmsConfigPitFModeByGvar(displayPort_t *, const void *self);
|
||||||
long saConfigureBandByGvar(displayPort_t *, const void *self);
|
static long saCmsConfigBandByGvar(displayPort_t *, const void *self);
|
||||||
long saConfigureChanByGvar(displayPort_t *, const void *self);
|
static long saCmsConfigChanByGvar(displayPort_t *, const void *self);
|
||||||
long saConfigurePowerByGvar(displayPort_t *, const void *self);
|
static long saCmsConfigPowerByGvar(displayPort_t *, const void *self);
|
||||||
|
|
||||||
static void saUpdateStatusString(void)
|
static void saUpdateStatusString(void)
|
||||||
{
|
{
|
||||||
|
@ -765,19 +769,17 @@ static void saUpdateStatusString(void)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// XXX These should be done somewhere else
|
// XXX These should be done somewhere else
|
||||||
if (smartAudioStatus == 0 && saDevice.version != 0)
|
if (saCmsDeviceStatus == 0 && saDevice.version != 0)
|
||||||
smartAudioStatus = saDevice.version;
|
saCmsDeviceStatus = saDevice.version;
|
||||||
if (smartAudioORFreq == 0 && saDevice.orfreq != 0)
|
if (saCmsORFreq == 0 && saDevice.orfreq != 0)
|
||||||
smartAudioORFreq = saDevice.orfreq;
|
saCmsORFreq = saDevice.orfreq;
|
||||||
if (smartAudioUserFreq == 0 && saDevice.freq != 0)
|
if (saCmsUserFreq == 0 && saDevice.freq != 0)
|
||||||
smartAudioUserFreq = saDevice.freq;
|
saCmsUserFreq = saDevice.freq;
|
||||||
if (smartAudioOpModel == 0 && saCmsOpmodel != 0)
|
|
||||||
smartAudioOpModel = saCmsOpmodel + 1;
|
|
||||||
|
|
||||||
if (saDevice.mode & SA_MODE_GET_OUT_RANGE_PITMODE)
|
if (saDevice.mode & SA_MODE_GET_OUT_RANGE_PITMODE)
|
||||||
smartAudioPitFMode = 1;
|
saCmsPitFMode = 1;
|
||||||
else
|
else
|
||||||
smartAudioPitFMode = 0;
|
saCmsPitFMode = 0;
|
||||||
|
|
||||||
saCmsStatusString[0] = "-FP"[saCmsOpmodel];
|
saCmsStatusString[0] = "-FP"[saCmsOpmodel];
|
||||||
saCmsStatusString[2] = "ABEFR"[saDevice.chan / 8];
|
saCmsStatusString[2] = "ABEFR"[saDevice.chan / 8];
|
||||||
|
@ -808,86 +810,80 @@ else
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static long sacms_SetupTopMenu(void);
|
static long saCmsConfigBandByGvar(displayPort_t *pDisp, const void *self)
|
||||||
|
|
||||||
long saConfigureBandByGvar(displayPort_t *pDisp, const void *self)
|
|
||||||
{
|
{
|
||||||
UNUSED(pDisp);
|
UNUSED(pDisp);
|
||||||
UNUSED(self);
|
UNUSED(self);
|
||||||
|
|
||||||
if (saDevice.version == 0) {
|
if (saDevice.version == 0) {
|
||||||
// Bounce back; not online yet
|
// Bounce back; not online yet
|
||||||
smartAudioBand = 0;
|
saCmsBand = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (smartAudioBand == 0) {
|
if (saCmsBand == 0) {
|
||||||
// Bouce back, no going back to undef state
|
// Bouce back, no going back to undef state
|
||||||
smartAudioBand = 1;
|
saCmsBand = 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
saSetBandChan(smartAudioBand - 1, smartAudioChan - 1);
|
saSetBandChan(saCmsBand - 1, saCmsChan - 1);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
long saConfigureChanByGvar(displayPort_t *pDisp, const void *self)
|
static long saCmsConfigChanByGvar(displayPort_t *pDisp, const void *self)
|
||||||
{
|
{
|
||||||
UNUSED(pDisp);
|
UNUSED(pDisp);
|
||||||
UNUSED(self);
|
UNUSED(self);
|
||||||
|
|
||||||
dprintf(("saConfigureBandByGvar: called\r\n"));
|
|
||||||
|
|
||||||
if (saDevice.version == 0) {
|
if (saDevice.version == 0) {
|
||||||
// Bounce back; not online yet
|
// Bounce back; not online yet
|
||||||
smartAudioChan = 0;
|
saCmsChan = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (smartAudioChan == 0) {
|
if (saCmsChan == 0) {
|
||||||
// Bounce back; no going back to undef state
|
// Bounce back; no going back to undef state
|
||||||
smartAudioChan = 1;
|
saCmsChan = 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
dprintf(("saConfigureBandByGvar: calling saSetBandChan\r\n"));
|
saSetBandChan(saCmsBand - 1, saCmsChan - 1);
|
||||||
|
|
||||||
saSetBandChan(smartAudioBand - 1, smartAudioChan - 1);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
long saConfigurePowerByGvar(displayPort_t *pDisp, const void *self)
|
static long saCmsConfigPowerByGvar(displayPort_t *pDisp, const void *self)
|
||||||
{
|
{
|
||||||
UNUSED(pDisp);
|
UNUSED(pDisp);
|
||||||
UNUSED(self);
|
UNUSED(self);
|
||||||
|
|
||||||
if (saDevice.version == 0) {
|
if (saDevice.version == 0) {
|
||||||
// Bounce back; not online yet
|
// Bounce back; not online yet
|
||||||
smartAudioPower = 0;
|
saCmsPower = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (smartAudioPower == 0) {
|
if (saCmsPower == 0) {
|
||||||
// Bouce back; no going back to undef state
|
// Bouce back; no going back to undef state
|
||||||
smartAudioPower = 1;
|
saCmsPower = 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
saSetPowerByIndex(smartAudioPower - 1);
|
saSetPowerByIndex(saCmsPower - 1);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
long saConfigurePitFModeByGvar(displayPort_t *pDisp, const void *self)
|
static long saCmsConfigPitFModeByGvar(displayPort_t *pDisp, const void *self)
|
||||||
{
|
{
|
||||||
UNUSED(pDisp);
|
UNUSED(pDisp);
|
||||||
UNUSED(self);
|
UNUSED(self);
|
||||||
|
|
||||||
dprintf(("saConfigurePitFmodeByGbar: smartAudioPitFMode %d\r\n", smartAudioPitFMode));
|
dprintf(("saCmsConfigPitFmodeByGbar: saCmsPitFMode %d\r\n", saCmsPitFMode));
|
||||||
|
|
||||||
if (smartAudioPitFMode == 0) {
|
if (saCmsPitFMode == 0) {
|
||||||
saSetMode(SA_MODE_SET_IN_RANGE_PITMODE);
|
saSetMode(SA_MODE_SET_IN_RANGE_PITMODE);
|
||||||
} else {
|
} else {
|
||||||
saSetMode(SA_MODE_SET_OUT_RANGE_PITMODE);
|
saSetMode(SA_MODE_SET_OUT_RANGE_PITMODE);
|
||||||
|
@ -896,14 +892,14 @@ long saConfigurePitFModeByGvar(displayPort_t *pDisp, const void *self)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
long saConfigureOpModelByGvar(displayPort_t *pDisp, const void *self)
|
static long saCmsConfigOpModelByGvar(displayPort_t *pDisp, const void *self)
|
||||||
{
|
{
|
||||||
UNUSED(pDisp);
|
UNUSED(pDisp);
|
||||||
UNUSED(self);
|
UNUSED(self);
|
||||||
|
|
||||||
uint8_t opmodel = smartAudioOpModel;
|
uint8_t opmodel = saCmsOpmodel;
|
||||||
|
|
||||||
dprintf(("saConfigureOpModelByGvar: opmodel %d\r\n", opmodel));
|
dprintf(("saCmsConfigOpModelByGvar: opmodel %d\r\n", opmodel));
|
||||||
|
|
||||||
|
|
||||||
if (opmodel == SA_OPMODEL_FREE) {
|
if (opmodel == SA_OPMODEL_FREE) {
|
||||||
|
@ -914,39 +910,39 @@ long saConfigureOpModelByGvar(displayPort_t *pDisp, const void *self)
|
||||||
// VTX should power up in pit mode.
|
// VTX should power up in pit mode.
|
||||||
// Default PitFMode is in-range to prevent users without
|
// Default PitFMode is in-range to prevent users without
|
||||||
// out-range receivers from getting blinded.
|
// out-range receivers from getting blinded.
|
||||||
smartAudioPitFMode = 0;
|
saCmsPitFMode = 0;
|
||||||
saConfigurePitFModeByGvar(pDisp, self);
|
saCmsConfigPitFModeByGvar(pDisp, self);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char * const smartAudioStatusNames[] = {
|
static const char * const saCmsDeviceStatusNames[] = {
|
||||||
"OFFL",
|
"OFFL",
|
||||||
"ONL V1",
|
"ONL V1",
|
||||||
"ONL V2",
|
"ONL V2",
|
||||||
};
|
};
|
||||||
|
|
||||||
OSD_TAB_t cmsEntOnline = { &smartAudioStatus, 2, smartAudioStatusNames };
|
static OSD_TAB_t saCmsEntOnline = { &saCmsDeviceStatus, 2, saCmsDeviceStatusNames };
|
||||||
OSD_UINT16_t cmsEntBaudrate = { &sa_smartbaud, 0, 0, 0 };
|
static OSD_UINT16_t saCmsEntBaudrate = { &sa_smartbaud, 0, 0, 0 };
|
||||||
OSD_UINT16_t cmsEntStatBadpre = { &saStat.badpre, 0, 0, 0 };
|
static OSD_UINT16_t saCmsEntStatBadpre = { &saStat.badpre, 0, 0, 0 };
|
||||||
OSD_UINT16_t cmsEntStatBadlen = { &saStat.badlen, 0, 0, 0 };
|
static OSD_UINT16_t saCmsEntStatBadlen = { &saStat.badlen, 0, 0, 0 };
|
||||||
OSD_UINT16_t cmsEntStatCrcerr = { &saStat.crc, 0, 0, 0 };
|
static OSD_UINT16_t saCmsEntStatCrcerr = { &saStat.crc, 0, 0, 0 };
|
||||||
OSD_UINT16_t cmsEntStatOooerr = { &saStat.ooopresp, 0, 0, 0 };
|
static OSD_UINT16_t saCmsEntStatOooerr = { &saStat.ooopresp, 0, 0, 0 };
|
||||||
|
|
||||||
OSD_Entry menu_smartAudioStatsEntries[] = {
|
static OSD_Entry menu_smartAudioStatsEntries[] = {
|
||||||
{ "- SA STATS -", OME_Label, NULL, NULL, 0 },
|
{ "- SA STATS -", OME_Label, NULL, NULL, 0 },
|
||||||
{ "STATUS", OME_TAB, NULL, &cmsEntOnline, DYNAMIC },
|
{ "STATUS", OME_TAB, NULL, &saCmsEntOnline, DYNAMIC },
|
||||||
{ "BAUDRATE", OME_UINT16, NULL, &cmsEntBaudrate, DYNAMIC },
|
{ "BAUDRATE", OME_UINT16, NULL, &saCmsEntBaudrate, DYNAMIC },
|
||||||
{ "BADPRE", OME_UINT16, NULL, &cmsEntStatBadpre, DYNAMIC },
|
{ "BADPRE", OME_UINT16, NULL, &saCmsEntStatBadpre, DYNAMIC },
|
||||||
{ "BADLEN", OME_UINT16, NULL, &cmsEntStatBadlen, DYNAMIC },
|
{ "BADLEN", OME_UINT16, NULL, &saCmsEntStatBadlen, DYNAMIC },
|
||||||
{ "CRCERR", OME_UINT16, NULL, &cmsEntStatCrcerr, DYNAMIC },
|
{ "CRCERR", OME_UINT16, NULL, &saCmsEntStatCrcerr, DYNAMIC },
|
||||||
{ "OOOERR", OME_UINT16, NULL, &cmsEntStatOooerr, DYNAMIC },
|
{ "OOOERR", OME_UINT16, NULL, &saCmsEntStatOooerr, DYNAMIC },
|
||||||
{ "BACK", OME_Back, NULL, NULL, 0 },
|
{ "BACK", OME_Back, NULL, NULL, 0 },
|
||||||
{ NULL, OME_END, NULL, NULL, 0 }
|
{ NULL, OME_END, NULL, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
CMS_Menu menu_smartAudioStats = {
|
static CMS_Menu menu_smartAudioStats = {
|
||||||
.GUARD_text = "XSAST",
|
.GUARD_text = "XSAST",
|
||||||
.GUARD_type = OME_MENU,
|
.GUARD_type = OME_MENU,
|
||||||
.onEnter = NULL,
|
.onEnter = NULL,
|
||||||
|
@ -955,7 +951,7 @@ CMS_Menu menu_smartAudioStats = {
|
||||||
.entries = menu_smartAudioStatsEntries
|
.entries = menu_smartAudioStatsEntries
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char * const smartAudioBandNames[] = {
|
static const char * const saCmsBandNames[] = {
|
||||||
"--------",
|
"--------",
|
||||||
"BOSCAM A",
|
"BOSCAM A",
|
||||||
"BOSCAM B",
|
"BOSCAM B",
|
||||||
|
@ -964,15 +960,15 @@ static const char * const smartAudioBandNames[] = {
|
||||||
"RACEBAND",
|
"RACEBAND",
|
||||||
};
|
};
|
||||||
|
|
||||||
OSD_TAB_t cmsEntBand = { &smartAudioBand, 5, &smartAudioBandNames[0], NULL };
|
static OSD_TAB_t saCmsEntBand = { &saCmsBand, 5, &saCmsBandNames[0], NULL };
|
||||||
|
|
||||||
static const char * const smartAudioChanNames[] = {
|
static const char * const saCmsChanNames[] = {
|
||||||
"-", "1", "2", "3", "4", "5", "6", "7", "8",
|
"-", "1", "2", "3", "4", "5", "6", "7", "8",
|
||||||
};
|
};
|
||||||
|
|
||||||
OSD_TAB_t cmsEntChan = { &smartAudioChan, 8, &smartAudioChanNames[0], NULL };
|
static OSD_TAB_t saCmsEntChan = { &saCmsChan, 8, &saCmsChanNames[0], NULL };
|
||||||
|
|
||||||
static const char * const smartAudioPowerNames[] = {
|
static const char * const saCmsPowerNames[] = {
|
||||||
"---",
|
"---",
|
||||||
"25 ",
|
"25 ",
|
||||||
"200",
|
"200",
|
||||||
|
@ -980,63 +976,45 @@ static const char * const smartAudioPowerNames[] = {
|
||||||
"800",
|
"800",
|
||||||
};
|
};
|
||||||
|
|
||||||
OSD_TAB_t cmsEntPower = { &smartAudioPower, 4, &smartAudioPowerNames[0]};
|
static OSD_TAB_t saCmsEntPower = { &saCmsPower, 4, &saCmsPowerNames[0]};
|
||||||
|
|
||||||
static const char * const smartAudioTxModeNames[] = {
|
static OSD_UINT16_t saCmsEntFreq = { &saCmsDeviceFreq, 5600, 5900, 0 };
|
||||||
"------",
|
|
||||||
"PIT-OR",
|
|
||||||
"PIT-IR",
|
|
||||||
"ACTIVE",
|
|
||||||
};
|
|
||||||
|
|
||||||
OSD_TAB_t cmsEntTxMode = { &smartAudioTxMode, 3, &smartAudioTxModeNames[0]};
|
static const char * const saCmsOpmodelNames[] = {
|
||||||
|
|
||||||
OSD_UINT16_t cmsEntFreq = { &smartAudioFreq, 5600, 5900, 0 };
|
|
||||||
|
|
||||||
static const char * const smartAudioOpModelNames[] = {
|
|
||||||
"----",
|
"----",
|
||||||
"FREE",
|
"FREE",
|
||||||
"PIT ",
|
"PIT ",
|
||||||
};
|
};
|
||||||
|
|
||||||
OSD_TAB_t cmsEntOpModel = { &smartAudioOpModel, 2, &smartAudioOpModelNames[0] };
|
static OSD_TAB_t saCmsEntOpModel = { &saCmsOpmodel, 2, &saCmsOpmodelNames[0] };
|
||||||
|
|
||||||
static const char * const smartAudioPitFModeNames[] = {
|
static const char * const saCmsFreqModeNames[] = {
|
||||||
"IN-R ",
|
|
||||||
"OUT-R"
|
|
||||||
};
|
|
||||||
|
|
||||||
OSD_TAB_t cmsEntPitFMode = { &smartAudioPitFMode, 1, &smartAudioPitFModeNames[0] };
|
|
||||||
|
|
||||||
OSD_UINT16_t cmsEntORFreq = { &smartAudioORFreq, 5000, 5900, 1 };
|
|
||||||
|
|
||||||
static const char * const smartAudioFreqModeNames[] = {
|
|
||||||
"CHAN",
|
"CHAN",
|
||||||
"USER"
|
"USER"
|
||||||
};
|
};
|
||||||
|
|
||||||
OSD_TAB_t cmsEntFreqMode = { &smartAudioFreqMode, 1, smartAudioFreqModeNames };
|
static OSD_TAB_t saCmsEntFreqMode = { &saCmsFreqMode, 1, saCmsFreqModeNames };
|
||||||
|
|
||||||
OSD_UINT16_t cmsEntUserFreq = { &smartAudioUserFreq, 5000, 5900, 1 };
|
static const char * const saCmsPitFModeNames[] = {
|
||||||
|
"IN-R ",
|
||||||
|
"OUT-R"
|
||||||
|
};
|
||||||
|
|
||||||
long saConfigureUserFreqByGvar(displayPort_t *pDisp, const void *self)
|
static OSD_TAB_t saCmsEntPitFMode = { &saCmsPitFMode, 1, &saCmsPitFModeNames[0] };
|
||||||
|
|
||||||
|
static long sacms_SetupTopMenu(void); // Forward
|
||||||
|
|
||||||
|
static long saCmsConfigFreqModeByGvar(displayPort_t *pDisp, const void *self)
|
||||||
{
|
{
|
||||||
UNUSED(pDisp);
|
UNUSED(pDisp);
|
||||||
UNUSED(self);
|
UNUSED(self);
|
||||||
|
|
||||||
saSetFreq(smartAudioFreq);
|
if (saCmsFreqMode == 0) {
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
long saConfigureFreqModeByGvar(displayPort_t *pDisp, const void *self)
|
|
||||||
{
|
|
||||||
if (smartAudioFreqMode == 0) {
|
|
||||||
// CHAN
|
// CHAN
|
||||||
saSetBandChan(smartAudioBand - 1, smartAudioChan - 1);
|
saSetBandChan(saCmsBand - 1, saCmsChan - 1);
|
||||||
} else {
|
} else {
|
||||||
// USER
|
// USER
|
||||||
saConfigureUserFreqByGvar(pDisp, self);
|
saSetFreq(saCmsUserFreq);
|
||||||
}
|
}
|
||||||
|
|
||||||
sacms_SetupTopMenu();
|
sacms_SetupTopMenu();
|
||||||
|
@ -1044,12 +1022,12 @@ long saConfigureFreqModeByGvar(displayPort_t *pDisp, const void *self)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
long saClearPitMode(displayPort_t *pDisp, const void *self)
|
static long saCmsClearPitMode(displayPort_t *pDisp, const void *self)
|
||||||
{
|
{
|
||||||
UNUSED(pDisp);
|
UNUSED(pDisp);
|
||||||
UNUSED(self);
|
UNUSED(self);
|
||||||
|
|
||||||
if (smartAudioPitFMode == 0)
|
if (saCmsPitFMode == 0)
|
||||||
saSetMode(SA_MODE_CLR_PITMODE|SA_MODE_SET_IN_RANGE_PITMODE);
|
saSetMode(SA_MODE_CLR_PITMODE|SA_MODE_SET_IN_RANGE_PITMODE);
|
||||||
else
|
else
|
||||||
saSetMode(SA_MODE_CLR_PITMODE|SA_MODE_SET_OUT_RANGE_PITMODE);
|
saSetMode(SA_MODE_CLR_PITMODE|SA_MODE_SET_OUT_RANGE_PITMODE);
|
||||||
|
@ -1057,18 +1035,96 @@ long saClearPitMode(displayPort_t *pDisp, const void *self)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
OSD_Entry menu_smartAudioConfigEntries[] = {
|
static OSD_UINT16_t saCmsEntORFreq = { &saCmsORFreq, 5000, 5900, 0 };
|
||||||
|
static OSD_UINT16_t saCmsEntORFreqNew = { &saCmsORFreqNew, 5000, 5900, 1 };
|
||||||
|
|
||||||
|
static long saCmsSetPORFreqOnEnter(void)
|
||||||
|
{
|
||||||
|
saCmsORFreqNew = saCmsORFreq;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static long saCmsSetPORFreq(displayPort_t *pDisp, const void *self)
|
||||||
|
{
|
||||||
|
UNUSED(pDisp);
|
||||||
|
UNUSED(self);
|
||||||
|
|
||||||
|
saSetFreq(saCmsORFreqNew|SA_FREQ_SETPIT);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static OSD_UINT16_t saCmsEntUserFreq = { &saCmsUserFreq, 5000, 5900, 0 };
|
||||||
|
static OSD_UINT16_t saCmsEntUserFreqNew = { &saCmsUserFreqNew, 5000, 5900, 1 };
|
||||||
|
|
||||||
|
static long saCmsSetUserFreqOnEnter(void)
|
||||||
|
{
|
||||||
|
saCmsUserFreqNew = saCmsUserFreq;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static long saCmsSetUserFreq(displayPort_t *pDisp, const void *self)
|
||||||
|
{
|
||||||
|
UNUSED(pDisp);
|
||||||
|
UNUSED(self);
|
||||||
|
|
||||||
|
saSetFreq(saCmsUserFreqNew);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static OSD_Entry saCmsMenuPORFreqEntries[] = {
|
||||||
|
{ "- POR FREQ -", OME_Label, NULL, NULL, 0 },
|
||||||
|
{ "CUR FREQ", OME_UINT16, NULL, &saCmsEntORFreq, DYNAMIC },
|
||||||
|
{ "NEW FREQ", OME_UINT16, NULL, &saCmsEntORFreqNew, 0 },
|
||||||
|
{ "SET", OME_Funcall, saCmsSetPORFreq, NULL, 0 },
|
||||||
|
{ "BACK", OME_Back, NULL, NULL, 0 },
|
||||||
|
{ NULL, OME_END, NULL, NULL, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
static CMS_Menu saCmsMenuPORFreq =
|
||||||
|
{
|
||||||
|
.GUARD_text = "XSAPOR",
|
||||||
|
.GUARD_type = OME_MENU,
|
||||||
|
.onEnter = saCmsSetPORFreqOnEnter,
|
||||||
|
.onExit = NULL,
|
||||||
|
.onGlobalExit = NULL,
|
||||||
|
.entries = saCmsMenuPORFreqEntries,
|
||||||
|
};
|
||||||
|
|
||||||
|
static OSD_Entry saCmsMenuUserFreqEntries[] = {
|
||||||
|
{ "- USER FREQ -", OME_Label, NULL, NULL, 0 },
|
||||||
|
{ "CUR FREQ", OME_UINT16, NULL, &saCmsEntUserFreq, DYNAMIC },
|
||||||
|
{ "NEW FREQ", OME_UINT16, NULL, &saCmsEntUserFreqNew, 0 },
|
||||||
|
{ "SET", OME_Funcall, saCmsSetUserFreq, NULL, 0 },
|
||||||
|
{ "BACK", OME_Back, NULL, NULL, 0 },
|
||||||
|
{ NULL, OME_END, NULL, NULL, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
static CMS_Menu saCmsMenuUserFreq =
|
||||||
|
{
|
||||||
|
.GUARD_text = "XSAUFQ",
|
||||||
|
.GUARD_type = OME_MENU,
|
||||||
|
.onEnter = saCmsSetUserFreqOnEnter,
|
||||||
|
.onExit = NULL,
|
||||||
|
.onGlobalExit = NULL,
|
||||||
|
.entries = saCmsMenuUserFreqEntries,
|
||||||
|
};
|
||||||
|
|
||||||
|
static OSD_Entry menu_smartAudioConfigEntries[] = {
|
||||||
{ "- SA CONFIG -", OME_Label, NULL, NULL, 0 },
|
{ "- SA CONFIG -", OME_Label, NULL, NULL, 0 },
|
||||||
{ "OP MODEL", OME_TAB, saConfigureOpModelByGvar, &cmsEntOpModel, 0 },
|
{ "OP MODEL", OME_TAB, saCmsConfigOpModelByGvar, &saCmsEntOpModel, 0 },
|
||||||
{ "PIT FMODE", OME_TAB, saConfigurePitFModeByGvar, &cmsEntPitFMode, 0 },
|
{ "FREQ MODE", OME_TAB, saCmsConfigFreqModeByGvar, &saCmsEntFreqMode, 0 },
|
||||||
{ "POR FREQ", OME_UINT16, NULL, &cmsEntORFreq, 0 },
|
{ "PIT FMODE", OME_TAB, saCmsConfigPitFModeByGvar, &saCmsEntPitFMode, 0 },
|
||||||
{ "FREQ MODE", OME_TAB, saConfigureFreqModeByGvar, &cmsEntFreqMode, 0 },
|
{ "POR FREQ", OME_Submenu, cmsMenuChange, &saCmsMenuPORFreq, 0 },
|
||||||
{ "STATX", OME_Submenu, cmsMenuChange, &menu_smartAudioStats, 0 },
|
{ "STATX", OME_Submenu, cmsMenuChange, &menu_smartAudioStats, 0 },
|
||||||
{ "BACK", OME_Back, NULL, NULL, 0 },
|
{ "BACK", OME_Back, NULL, NULL, 0 },
|
||||||
{ NULL, OME_END, NULL, NULL, 0 }
|
{ NULL, OME_END, NULL, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
CMS_Menu menu_smartAudioConfig = {
|
static CMS_Menu menu_smartAudioConfig = {
|
||||||
.GUARD_text = "XSACFG",
|
.GUARD_text = "XSACFG",
|
||||||
.GUARD_type = OME_MENU,
|
.GUARD_type = OME_MENU,
|
||||||
.onEnter = NULL,
|
.onEnter = NULL,
|
||||||
|
@ -1077,48 +1133,48 @@ CMS_Menu menu_smartAudioConfig = {
|
||||||
.entries = menu_smartAudioConfigEntries
|
.entries = menu_smartAudioConfigEntries
|
||||||
};
|
};
|
||||||
|
|
||||||
OSD_Entry saMenuCommenceEntries[] = {
|
static OSD_Entry saCmsMenuCommenceEntries[] = {
|
||||||
{ "- CONFIRM -", OME_Label, NULL, NULL, 0 },
|
{ "CONFIRM", OME_Label, NULL, NULL, 0 },
|
||||||
{ "YES", OME_Funcall, saClearPitMode, NULL, 0 },
|
{ "YES", OME_Funcall, saCmsClearPitMode, NULL, 0 },
|
||||||
{ "BACK", OME_Back, NULL, NULL, 0 },
|
{ "BACK", OME_Back, NULL, NULL, 0 },
|
||||||
{ NULL, OME_END, NULL, NULL, 0 }
|
{ NULL, OME_END, NULL, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
CMS_Menu saMenuCommence = {
|
static CMS_Menu saCmsMenuCommence = {
|
||||||
.GUARD_text = "XVTXCOM",
|
.GUARD_text = "XVTXCOM",
|
||||||
.GUARD_type = OME_MENU,
|
.GUARD_type = OME_MENU,
|
||||||
.onEnter = NULL,
|
.onEnter = NULL,
|
||||||
.onExit = NULL,
|
.onExit = NULL,
|
||||||
.onGlobalExit = NULL,
|
.onGlobalExit = NULL,
|
||||||
.entries = saMenuCommenceEntries,
|
.entries = saCmsMenuCommenceEntries,
|
||||||
};
|
};
|
||||||
|
|
||||||
OSD_Entry saMenuFreqModeEntries[] = {
|
static OSD_Entry saCmsMenuFreqModeEntries[] = {
|
||||||
{ "- SMARTAUDIO -", OME_Label, NULL, NULL, 0 },
|
{ "- SMARTAUDIO -", OME_Label, NULL, NULL, 0 },
|
||||||
{ "", OME_Label, NULL, saCmsStatusString, DYNAMIC },
|
{ "", OME_Label, NULL, saCmsStatusString, DYNAMIC },
|
||||||
{ "FREQ", OME_UINT16, NULL, &cmsEntUserFreq, 0 },
|
{ "FREQ", OME_Submenu, cmsMenuChange, &saCmsMenuUserFreq, 0 },
|
||||||
{ "POWER", OME_TAB, saConfigurePowerByGvar, &cmsEntPower, 0 },
|
{ "POWER", OME_TAB, saCmsConfigPowerByGvar, &saCmsEntPower, 0 },
|
||||||
{ "START", OME_Submenu, cmsMenuChange, &saMenuCommence, 0 },
|
{ "START", OME_Submenu, cmsMenuChange, &saCmsMenuCommence, 0 },
|
||||||
{ "CONFIG", OME_Submenu, cmsMenuChange, &menu_smartAudioConfig, 0 },
|
{ "CONFIG", OME_Submenu, cmsMenuChange, &menu_smartAudioConfig, 0 },
|
||||||
{ "BACK", OME_Back, NULL, NULL, 0 },
|
{ "BACK", OME_Back, NULL, NULL, 0 },
|
||||||
{ NULL, OME_END, NULL, NULL, 0 }
|
{ NULL, OME_END, NULL, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
OSD_Entry saMenuChanModeEntries[] =
|
static OSD_Entry saCmsMenuChanModeEntries[] =
|
||||||
{
|
{
|
||||||
{ "- SMARTAUDIO -", OME_Label, NULL, NULL, 0 },
|
{ "- SMARTAUDIO -", OME_Label, NULL, NULL, 0 },
|
||||||
{ "", OME_Label, NULL, saCmsStatusString, DYNAMIC },
|
{ "", OME_Label, NULL, saCmsStatusString, DYNAMIC },
|
||||||
{ "BAND", OME_TAB, saConfigureBandByGvar, &cmsEntBand, 0 },
|
{ "BAND", OME_TAB, saCmsConfigBandByGvar, &saCmsEntBand, 0 },
|
||||||
{ "CHAN", OME_TAB, saConfigureChanByGvar, &cmsEntChan, 0 },
|
{ "CHAN", OME_TAB, saCmsConfigChanByGvar, &saCmsEntChan, 0 },
|
||||||
{ "FREQ", OME_UINT16, NULL, &cmsEntFreq, DYNAMIC },
|
{ "(FREQ)", OME_UINT16, NULL, &saCmsEntFreq, DYNAMIC },
|
||||||
{ "POWER", OME_TAB, saConfigurePowerByGvar, &cmsEntPower, 0 },
|
{ "POWER", OME_TAB, saCmsConfigPowerByGvar, &saCmsEntPower, 0 },
|
||||||
{ "START", OME_Submenu, cmsMenuChange, &saMenuCommence, 0 },
|
{ "START", OME_Submenu, cmsMenuChange, &saCmsMenuCommence, 0 },
|
||||||
{ "CONFIG", OME_Submenu, cmsMenuChange, &menu_smartAudioConfig, 0 },
|
{ "CONFIG", OME_Submenu, cmsMenuChange, &menu_smartAudioConfig, 0 },
|
||||||
{ "BACK", OME_Back, NULL, NULL, 0 },
|
{ "BACK", OME_Back, NULL, NULL, 0 },
|
||||||
{ NULL, OME_END, NULL, NULL, 0 }
|
{ NULL, OME_END, NULL, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
OSD_Entry saMenuOfflineEntries[] =
|
static OSD_Entry saCmsMenuOfflineEntries[] =
|
||||||
{
|
{
|
||||||
{ "- VTX SMARTAUDIO -", OME_Label, NULL, NULL, 0 },
|
{ "- VTX SMARTAUDIO -", OME_Label, NULL, NULL, 0 },
|
||||||
{ "", OME_Label, NULL, saCmsStatusString, DYNAMIC },
|
{ "", OME_Label, NULL, saCmsStatusString, DYNAMIC },
|
||||||
|
@ -1127,17 +1183,17 @@ OSD_Entry saMenuOfflineEntries[] =
|
||||||
{ NULL, OME_END, NULL, NULL, 0 }
|
{ NULL, OME_END, NULL, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
CMS_Menu cmsx_menuVtxSmartAudio;
|
CMS_Menu cmsx_menuVtxSmartAudio; // Forward
|
||||||
|
|
||||||
static long sacms_SetupTopMenu(void)
|
static long sacms_SetupTopMenu(void)
|
||||||
{
|
{
|
||||||
if (smartAudioStatus) {
|
if (saCmsDeviceStatus) {
|
||||||
if (smartAudioFreqMode == 0)
|
if (saCmsFreqMode == 0)
|
||||||
cmsx_menuVtxSmartAudio.entries = saMenuChanModeEntries;
|
cmsx_menuVtxSmartAudio.entries = saCmsMenuChanModeEntries;
|
||||||
else
|
else
|
||||||
cmsx_menuVtxSmartAudio.entries = saMenuFreqModeEntries;
|
cmsx_menuVtxSmartAudio.entries = saCmsMenuFreqModeEntries;
|
||||||
} else {
|
} else {
|
||||||
cmsx_menuVtxSmartAudio.entries = saMenuOfflineEntries;
|
cmsx_menuVtxSmartAudio.entries = saCmsMenuOfflineEntries;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1149,7 +1205,7 @@ CMS_Menu cmsx_menuVtxSmartAudio = {
|
||||||
.onEnter = sacms_SetupTopMenu,
|
.onEnter = sacms_SetupTopMenu,
|
||||||
.onExit = NULL,
|
.onExit = NULL,
|
||||||
.onGlobalExit = NULL,
|
.onGlobalExit = NULL,
|
||||||
.entries = saMenuOfflineEntries,
|
.entries = saCmsMenuOfflineEntries,
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CMS
|
#endif // CMS
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue