Markers: TRACKING L->R keeps the tracking markers in frequency order (issue #124)

main
erikkaashoek 1 week ago
parent a7956d7a26
commit eff762b474

@ -818,6 +818,8 @@ float marker_to_value(const int i);
// auto name
#define _MODE_AUTO_FILENAME 0x10
#define _MODE_MHZ_CSV 0x20
// tracking markers left to right
#define _MODE_MARKER_ORDER 0x40
#ifdef __USE_SD_CARD__
// SD Icon Save (SDIS) configuration

@ -5769,6 +5769,23 @@ static volatile int dummy;
if (MODE_INPUT(setting.mode)) { // Assign maxima found to tracking markers
int i = 0;
int m = 0;
#ifdef TINYSA4
if (config._mode & _MODE_MARKER_ORDER) { // The highest maxima, one per tracking marker, left to right
for (; m < MARKERS_MAX; m++)
if (markers[m].enabled && markers[m].mtype & M_TRACKING && markers[m].trace == t)
i++;
if (i > cur_max) i = cur_max;
while (--i > 0) { // Bubble sort these first maxima on frequency
for (m = 0; m < i; m++)
if (max_index[m] > max_index[m+1]) {
uint16_t s = max_index[m];
max_index[m] = max_index[m+1];
max_index[m+1] = s;
}
}
i = m = 0;
}
#endif
while (i < cur_max) { // For all maxima found
while (m < MARKERS_MAX) {
if (markers[m].enabled && markers[m].mtype & M_TRACKING && markers[m].trace == t) { // Available marker found

25
ui.c

@ -4615,27 +4615,15 @@ __attribute__((noinline)) static void fw_update_ui(const char *fname) {
static UI_FUNCTION_ADV_CALLBACK(menu_autoname_acb)
// Toggle the config._mode bit in data
static UI_FUNCTION_ADV_CALLBACK(menu_config_mode_acb)
{
(void)item;
(void)data;
if (b){
b->icon = config._mode & _MODE_AUTO_FILENAME ? BUTTON_ICON_CHECK : BUTTON_ICON_NOCHECK;
return;
}
config._mode^= _MODE_AUTO_FILENAME;
config_save();
}
static UI_FUNCTION_ADV_CALLBACK(menu_mhz_csv_acb)
{
(void)item;
(void)data;
if (b){
b->icon = config._mode & _MODE_MHZ_CSV ? BUTTON_ICON_CHECK : BUTTON_ICON_NOCHECK;
b->icon = config._mode & data ? BUTTON_ICON_CHECK : BUTTON_ICON_NOCHECK;
return;
}
config._mode^= _MODE_MHZ_CSV;
config._mode^= data;
config_save();
}
@ -4871,6 +4859,7 @@ const menuitem_t menu_marker_search[] = {
{ MT_ADV_CALLBACK, 0, "ENTER\n%s", menu_enter_marker_acb},
{ MT_ADV_CALLBACK, M_TRACKING, "TRACKING",menu_marker_modify_acb },
#ifdef TINYSA4
{ MT_ADV_CALLBACK, _MODE_MARKER_ORDER, "TRACKING\nL"S_RARROW"R", menu_config_mode_acb },
{ MT_ADV_CALLBACK, 0, "JOG JUMP\nMAX",menu_jog_jump_acb },
{ MT_KEYPAD, KM_NOISE, "PEAK\n\b%s", "2..120 dB"},
#endif
@ -5640,8 +5629,8 @@ static const menuitem_t menu_storage_sd_icon[] = {
};
static const menuitem_t menu_storage_more[] = {
{ MT_ADV_CALLBACK, 0, "AUTO NAME", menu_autoname_acb },
{ MT_ADV_CALLBACK, 0, "MHz\nCSV", menu_mhz_csv_acb },
{ MT_ADV_CALLBACK, _MODE_AUTO_FILENAME, "AUTO NAME", menu_config_mode_acb },
{ MT_ADV_CALLBACK, _MODE_MHZ_CSV, "MHz\nCSV", menu_config_mode_acb },
{ MT_SUBMENU, 0, "SD CARD\nICON", menu_storage_sd_icon },
#ifdef __USE_USB_MSC__
{ MT_CALLBACK, 0, "USB\nDISK", menu_usb_disk_cb },

Loading…
Cancel
Save

Powered by TurnKey Linux.