Add squelch visualization and control from macro menu
This commit is contained in:
parent
5156783495
commit
364f8d4e46
|
|
@ -54,6 +54,7 @@ typedef struct
|
||||||
channel_t channel;
|
channel_t channel;
|
||||||
channel_t vfo_channel;
|
channel_t vfo_channel;
|
||||||
uint8_t rtxStatus;
|
uint8_t rtxStatus;
|
||||||
|
// Squelch steps from 0 to 15
|
||||||
uint8_t sqlLevel;
|
uint8_t sqlLevel;
|
||||||
uint8_t voxLevel;
|
uint8_t voxLevel;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <battery.h>
|
#include <battery.h>
|
||||||
#include <input.h>
|
#include <input.h>
|
||||||
|
#include <hwconfig.h>
|
||||||
|
|
||||||
/* UI main screen functions, their implementation is in "ui_main.c" */
|
/* UI main screen functions, their implementation is in "ui_main.c" */
|
||||||
extern void _ui_drawMainBackground();
|
extern void _ui_drawMainBackground();
|
||||||
|
|
@ -534,6 +535,20 @@ void _ui_fsm_menuMacro(kbd_msg_t msg, bool *sync_rtx) {
|
||||||
platform_setBacklightLevel(state.backlight_level);
|
platform_setBacklightLevel(state.backlight_level);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAS_ABSOLUTE_KNOB // If the radio has an absolute position knob
|
||||||
|
state.sqlLevel = platform_getChSelector();
|
||||||
|
printf("New squelch value: %d\n\r", state.sqlLevel);
|
||||||
|
#else // Use left and right buttons or relative position knob
|
||||||
|
if(msg.keys && KEY_LEFT) {
|
||||||
|
state.sqlLevel++;
|
||||||
|
state.sqlLevel = (state.sqlLevel > 15) 15 : state.sqlLevel;
|
||||||
|
}
|
||||||
|
else if(msg.keys && KEY_RIGHT) {
|
||||||
|
state.sqlLevel--;
|
||||||
|
state.sqlLevel = (state.sqlLevel < 0) 0 : state.sqlLevel;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void ui_updateFSM(event_t event, bool *sync_rtx)
|
void ui_updateFSM(event_t event, bool *sync_rtx)
|
||||||
|
|
|
||||||
|
|
@ -304,5 +304,12 @@ bool _ui_drawMacroMenu(state_t* last_state) {
|
||||||
yellow_fab413);
|
yellow_fab413);
|
||||||
gfx_print(layout.line3_right, "Sav", layout.top_font, TEXT_ALIGN_RIGHT,
|
gfx_print(layout.line3_right, "Sav", layout.top_font, TEXT_ALIGN_RIGHT,
|
||||||
color_white);
|
color_white);
|
||||||
return true;
|
// Squelch bar
|
||||||
|
uint16_t squelch_width = SCREEN_WIDTH / 16 * last_state->sqlLevel;
|
||||||
|
point_t squelch_pos = { layout.bottom_left.x, layout.bottom_left.y +
|
||||||
|
layout.status_v_pad +
|
||||||
|
layout.text_v_offset -
|
||||||
|
layout.bottom_h };
|
||||||
|
gfx_drawRect(squelch_pos, squelch_width, layout.bottom_h, color_white, true);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue