mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2026-09-11 17:19:29 +00:00
Looking Glass frequency list now supports muiti file loads (#3215)
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
#include "ui_looking_glass_app.hpp"
|
#include "ui_looking_glass_app.hpp"
|
||||||
#include "convert.hpp"
|
#include "convert.hpp"
|
||||||
#include "file_reader.hpp"
|
#include "file_reader.hpp"
|
||||||
|
#include "file.hpp"
|
||||||
#include "string_format.hpp"
|
#include "string_format.hpp"
|
||||||
#include "audio.hpp"
|
#include "audio.hpp"
|
||||||
#include "file_path.hpp"
|
#include "file_path.hpp"
|
||||||
@@ -603,34 +604,39 @@ void GlassView::on_freqchg(int64_t freq) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void GlassView::load_presets() {
|
void GlassView::load_presets() {
|
||||||
File presets_file;
|
|
||||||
auto error = presets_file.open(looking_glass_dir / u"PRESETS.TXT");
|
|
||||||
presets_db.clear();
|
presets_db.clear();
|
||||||
|
|
||||||
// Add the "Manual" entry.
|
// Add the "Manual" entry.
|
||||||
presets_db.push_back({0, 0, "Manual"});
|
presets_db.push_back({0, 0, "Manual"});
|
||||||
|
|
||||||
if (!error) {
|
scan_root_files(looking_glass_dir, u"*.TXT", [this](const std::filesystem::path& path) {
|
||||||
auto reader = FileLineReader(presets_file);
|
if (path.empty() || path.native()[0] == u'.')
|
||||||
for (const auto& line : reader) {
|
return;
|
||||||
if (line.length() == 0 || line[0] == '#')
|
|
||||||
continue;
|
|
||||||
|
|
||||||
auto cols = split_string(line, ',');
|
File presets_file;
|
||||||
if (cols.size() != 3)
|
auto error = presets_file.open(looking_glass_dir / path);
|
||||||
continue;
|
if (!error) {
|
||||||
|
auto reader = FileLineReader(presets_file);
|
||||||
|
for (const auto& line : reader) {
|
||||||
|
if (line.length() == 0 || line[0] == '#')
|
||||||
|
continue;
|
||||||
|
|
||||||
preset_entry entry{};
|
auto cols = split_string(line, ',');
|
||||||
parse_int(cols[0], entry.min);
|
if (cols.size() != 3)
|
||||||
parse_int(cols[1], entry.max);
|
continue;
|
||||||
entry.label = trimr(cols[2]);
|
|
||||||
|
|
||||||
if (entry.min == 0 || entry.max == 0 || entry.min >= entry.max)
|
preset_entry entry{};
|
||||||
continue; // Invalid line.
|
parse_int(cols[0], entry.min);
|
||||||
|
parse_int(cols[1], entry.max);
|
||||||
|
entry.label = trimr(cols[2]);
|
||||||
|
|
||||||
presets_db.emplace_back(std::move(entry));
|
if (entry.min == 0 || entry.max == 0 || entry.min >= entry.max)
|
||||||
|
continue; // Invalid line.
|
||||||
|
|
||||||
|
presets_db.emplace_back(std::move(entry));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
|
|
||||||
populate_presets();
|
populate_presets();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# 433 MHz BAND
|
||||||
|
423,443,433 BAND
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# AUS UHF CB
|
||||||
|
476,478,AUS UHF CB
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# AVIATION
|
||||||
|
108,118,AVIATION 108 NAVAIDS
|
||||||
|
118,137,AVIATION 118 VOICE
|
||||||
|
960,1215,AVIATION 960
|
||||||
|
1089,1091,ADS-B 1090
|
||||||
|
128,137,ACARS
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# BROADCAST RADIO
|
||||||
|
87,108,FM BROADCAST USA
|
||||||
|
76,108,FM BROADCAST BRAZIL
|
||||||
|
76,95,FM BROADCAST JAPAN
|
||||||
|
65,74,FM OIRT EAST EU
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# CITIZENS BAND RADIO
|
||||||
|
26,28,CB RADIO
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# COMMON PUBLIC SERVICE BANDS
|
||||||
|
150,160,PUBLIC SERVICE 155
|
||||||
|
450,470,PUBLIC SERVICE 460
|
||||||
|
769,775,PUBLIC SERVICE 770
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# CubeSats
|
||||||
|
144,146,145 CubeSats
|
||||||
|
435,438,436 CubeSats
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# DECT
|
||||||
|
1879,1931,DECT
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# FRS/GMRS
|
||||||
|
462,468,FRS/GMRS
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# FULL
|
||||||
|
10,7250,FULL RANGE
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# HAM RADIO
|
||||||
|
28,30,HAM 10-METER
|
||||||
|
50,54,HAM 6-METER
|
||||||
|
144,148,HAM 2-METER
|
||||||
|
219,225,HAM 1.25-METER
|
||||||
|
420,450,HAM 70-CM
|
||||||
|
902,928,HAM 33-CM
|
||||||
|
1240,1300,HAM 23-CM
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# ITU-DEFINED BANDS
|
||||||
|
1,3,MF BAND
|
||||||
|
3,30,HF BAND
|
||||||
|
30,300,VHF BAND
|
||||||
|
300,3000,UHF BAND
|
||||||
|
3000,7250,SHF BAND
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# KEYFOBS
|
||||||
|
305,325,315 MHz KEYFOBS
|
||||||
|
380,400,390 MHz KEYFOBS
|
||||||
|
423,443,433 MHz KEYFOBS
|
||||||
|
858,878,868 MHz KEYFOBS
|
||||||
|
902,929,915 MHz KEYFOBS
|
||||||
|
# 260,500,315/433 MHz KEYFOBS
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# LoRa
|
||||||
|
433,435,LoRa 443EU
|
||||||
|
863,870,LoRa 868EU
|
||||||
|
902,928,LoRa 915US
|
||||||
|
779,787,LoRa 780CN
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# MARINE BAND
|
||||||
|
155,163,MARINE VHF
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# MICS
|
||||||
|
140,380,MICS (VHF) AND MARINE
|
||||||
|
420,660,MICS (UHF)
|
||||||
|
169,172,MICS COMMON
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# MULTI-USE RADIO SERVICE - MURS
|
||||||
|
151,155,MULTI-USE RADIO SRVS
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# NOAA WEATHER RADIO
|
||||||
|
161,164,NOAA WEATHER RADIO
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# PAGERS https://www.fcc.gov/wireless/bureau-divisions/mobility-division/paging
|
||||||
|
34,36,USA PAGERS 35
|
||||||
|
43,45,USA PAGERS 44
|
||||||
|
151,153,USA PAGERS 152
|
||||||
|
157,159,USA PAGERS 158
|
||||||
|
453,454,USA PAGERS 454
|
||||||
|
929,931,USA PAGERS 930
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
# INI,END,DESCRIPTION
|
|
||||||
# (Freq range in MHz, min separation 3MHz)
|
|
||||||
# (Description up to 20 char)
|
|
||||||
# (fields comma delimiter)
|
|
||||||
# 433 MHz BAND
|
|
||||||
423,443,433 BAND
|
|
||||||
# AVIATION
|
|
||||||
108,118,AVIATION 108 NAVAIDS
|
|
||||||
118,137,AVIATION 118 VOICE
|
|
||||||
960,1215,AVIATION 960
|
|
||||||
1089,1091,ADS-B 1090
|
|
||||||
128,137,ACARS
|
|
||||||
# BROADCAST RADIO
|
|
||||||
87,108,FM BROADCAST USA
|
|
||||||
76,108,FM BROADCAST BRAZIL
|
|
||||||
76,95,FM BROADCAST JAPAN
|
|
||||||
65,74,FM OIRT EAST EU
|
|
||||||
# CITIZENS BAND RADIO
|
|
||||||
26,28,CB RADIO
|
|
||||||
# COMMON PUBLIC SERVICE BANDS
|
|
||||||
150,160, PUBLIC SERVICE 155
|
|
||||||
450,470,PUBLIC SERVICE 460
|
|
||||||
769,775,PUBLIC SERVICE 770
|
|
||||||
# CubeSats
|
|
||||||
144,146,145 CubeSats
|
|
||||||
435,438,436 CubeSats
|
|
||||||
# DECT
|
|
||||||
1879,1931,DECT
|
|
||||||
# FRS/GMRS
|
|
||||||
462,468,FRS/GMRS
|
|
||||||
# AUS UHF CB
|
|
||||||
476,478,AUS UHF CB
|
|
||||||
# HAM RADIO
|
|
||||||
28,30,HAM 10-METER
|
|
||||||
50,54,HAM 6-METER
|
|
||||||
144,148,HAM 2-METER
|
|
||||||
219,225,HAM 1.25-METER
|
|
||||||
420,450,HAM 70-CM
|
|
||||||
902,928,HAM 33-CM
|
|
||||||
1240,1300,HAM 23-CM
|
|
||||||
# KEYFOBS
|
|
||||||
305,325,315 MHz KEYFOBS
|
|
||||||
380,400,390 MHz KEYFOBS
|
|
||||||
423,443,433 MHz KEYFOBS
|
|
||||||
858,878,868 MHz KEYFOBS
|
|
||||||
902,929,915 MHz KEYFOBS
|
|
||||||
# 260,500,315/433 MHz KEYFOBS
|
|
||||||
# LoRa
|
|
||||||
433,435,LoRa 443EU
|
|
||||||
863,870,LoRa 868EU
|
|
||||||
902,928,LoRa 915US
|
|
||||||
779,787,LoRa 780CN
|
|
||||||
# MARINE BAND
|
|
||||||
155,163,MARINE VHF
|
|
||||||
# MICS
|
|
||||||
140,380,MICS (VHF) AND MARINE
|
|
||||||
420,660,MICS (UHF)
|
|
||||||
169,172,MICS COMMON
|
|
||||||
# MULTI-USE RADIO SERVICE - MURS
|
|
||||||
151,155,MULTI-USE RADIO SRVS
|
|
||||||
# NOAA WEATHER RADIO
|
|
||||||
161,164,NOAA WEATHER RADIO
|
|
||||||
# PAGERS https://www.fcc.gov/wireless/bureau-divisions/mobility-division/paging
|
|
||||||
34,36,USA PAGERS 35
|
|
||||||
43,45,USA PAGERS 44
|
|
||||||
151,153,USA PAGERS 152
|
|
||||||
157,159,USA PAGERS 158
|
|
||||||
453,454,USA PAGERS 454
|
|
||||||
929,931,USA PAGERS 930
|
|
||||||
# RADIOSONDES
|
|
||||||
390,420,RADIOSONDES
|
|
||||||
# RAILROAD
|
|
||||||
159,162,RAILROAD
|
|
||||||
# WATER METERS
|
|
||||||
850,900,Water meters
|
|
||||||
902,928,ISM 900MHz
|
|
||||||
# WIFI
|
|
||||||
2320,2560,BL / WIFI 2.4GHz
|
|
||||||
5160,5900,WIFI 5GHz
|
|
||||||
# ITU-DEFINED BANDS
|
|
||||||
1,3,MF BAND
|
|
||||||
3,30,HF BAND
|
|
||||||
30,300,VHF BAND
|
|
||||||
300,3000,UHF BAND
|
|
||||||
3000,7250,SHF BAND
|
|
||||||
# FULL
|
|
||||||
10,7250,FULL RANGE
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# RADIOSONDES
|
||||||
|
390,420,RADIOSONDES
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# RAILROAD
|
||||||
|
159,162,RAILROAD
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# WATER METERS
|
||||||
|
850,900,Water meters
|
||||||
|
902,928,ISM 900MHz
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
# INI,END,DESCRIPTION
|
||||||
|
# (Freq range in MHz, min separation 3MHz)
|
||||||
|
# (Description up to 20 char)
|
||||||
|
# (fields comma delimiter)
|
||||||
|
# WIFI
|
||||||
|
2320,2560,BL / WIFI 2.4GHz
|
||||||
|
5160,5900,WIFI 5GHz
|
||||||
Reference in New Issue
Block a user