mirror of
https://github.com/eried/portapack-mayhem.git
synced 2024-10-01 01:26:06 -04:00
Settings directory fix in Level and Recon (#1028)
* removed unneeded sdcard check and directory creation * changed settings so they use SETTINGS and a better name. Code beautication
This commit is contained in:
parent
0e86e63e97
commit
cac3a7cf1e
@ -29,10 +29,6 @@ using portapack::memory::map::backup_ram;
|
|||||||
|
|
||||||
namespace ui {
|
namespace ui {
|
||||||
|
|
||||||
bool LevelView::check_sd_card() {
|
|
||||||
return (sd_card::status() == sd_card::Status::Mounted) ? true : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void LevelView::focus() {
|
void LevelView::focus() {
|
||||||
button_frequency.focus();
|
button_frequency.focus();
|
||||||
}
|
}
|
||||||
@ -74,12 +70,6 @@ LevelView::LevelView(NavigationView& nav)
|
|||||||
field_volume.on_change = [this](int32_t v) { this->on_headphone_volume_changed(v); };
|
field_volume.on_change = [this](int32_t v) { this->on_headphone_volume_changed(v); };
|
||||||
field_volume.set_value((receiver_model.headphone_volume() - audio::headphone::volume_range().max).decibel() + 99);
|
field_volume.set_value((receiver_model.headphone_volume() - audio::headphone::volume_range().max).decibel() + 99);
|
||||||
|
|
||||||
// Level directory
|
|
||||||
if (check_sd_card()) { // Check to see if SD Card is mounted
|
|
||||||
make_new_directory(u"/LEVEL");
|
|
||||||
sd_card_mounted = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
change_mode(NFM_MODULATION); // Start on AM
|
change_mode(NFM_MODULATION); // Start on AM
|
||||||
field_mode.set_by_value(NFM_MODULATION); // Reflect the mode into the manual selector
|
field_mode.set_by_value(NFM_MODULATION); // Reflect the mode into the manual selector
|
||||||
|
|
||||||
@ -89,14 +79,12 @@ LevelView::LevelView(NavigationView& nav)
|
|||||||
button_frequency.set_text("<" + to_string_short_freq(freq) + " MHz>");
|
button_frequency.set_text("<" + to_string_short_freq(freq) + " MHz>");
|
||||||
|
|
||||||
// load auto common app settings
|
// load auto common app settings
|
||||||
if (sd_card_mounted) {
|
auto rc = settings.load("level", &app_settings);
|
||||||
auto rc = settings.load("level", &app_settings);
|
if (rc == SETTINGS_OK) {
|
||||||
if (rc == SETTINGS_OK) {
|
field_lna.set_value(app_settings.lna);
|
||||||
field_lna.set_value(app_settings.lna);
|
field_vga.set_value(app_settings.vga);
|
||||||
field_vga.set_value(app_settings.vga);
|
field_rf_amp.set_value(app_settings.rx_amp);
|
||||||
field_rf_amp.set_value(app_settings.rx_amp);
|
receiver_model.set_rf_amp(app_settings.rx_amp);
|
||||||
receiver_model.set_rf_amp(app_settings.rx_amp);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
button_frequency.on_select = [this, &nav](ButtonWithEncoder& button) {
|
button_frequency.on_select = [this, &nav](ButtonWithEncoder& button) {
|
||||||
|
@ -97,11 +97,9 @@ class LevelView : public View {
|
|||||||
size_t change_mode(freqman_index_t mod_type);
|
size_t change_mode(freqman_index_t mod_type);
|
||||||
void on_statistics_update(const ChannelStatistics& statistics);
|
void on_statistics_update(const ChannelStatistics& statistics);
|
||||||
void set_display_freq(int64_t freq);
|
void set_display_freq(int64_t freq);
|
||||||
bool check_sd_card();
|
|
||||||
|
|
||||||
int32_t db{0};
|
int32_t db{0};
|
||||||
long long int MAX_UFREQ = {7200000000}; // maximum usable freq
|
long long int MAX_UFREQ = {7200000000}; // maximum usable freq
|
||||||
bool sd_card_mounted = false;
|
|
||||||
rf::Frequency freq = {0};
|
rf::Frequency freq = {0};
|
||||||
|
|
||||||
Labels labels{
|
Labels labels{
|
||||||
|
@ -52,7 +52,7 @@ void ReconView::colorize_waits() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ReconView::ReconSaveFreq(const std::string& freq_file_path, size_t freq_index, bool warn_if_exists) {
|
bool ReconView::recon_save_freq(const std::string& freq_file_path, size_t freq_index, bool warn_if_exists) {
|
||||||
File recon_file;
|
File recon_file;
|
||||||
|
|
||||||
if (frequency_list.size() == 0 || (frequency_list.size() && current_index > (int32_t)frequency_list.size()))
|
if (frequency_list.size() == 0 || (frequency_list.size() && current_index > (int32_t)frequency_list.size()))
|
||||||
@ -104,7 +104,7 @@ bool ReconView::ReconSaveFreq(const std::string& freq_file_path, size_t freq_ind
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ReconView::ReconSetupLoadStrings(const std::string& source, std::string& input_file, std::string& output_file, uint32_t& recon_lock_duration, uint32_t& recon_lock_nb_match, int32_t& recon_squelch_level, uint32_t& recon_match_mode, int32_t& wait, int32_t& volume) {
|
bool ReconView::recon_load_config_from_sd() {
|
||||||
File settings_file;
|
File settings_file;
|
||||||
size_t length, file_position = 0;
|
size_t length, file_position = 0;
|
||||||
char* pos;
|
char* pos;
|
||||||
@ -116,39 +116,37 @@ bool ReconView::ReconSetupLoadStrings(const std::string& source, std::string& in
|
|||||||
uint32_t nb_params = RECON_SETTINGS_NB_PARAMS;
|
uint32_t nb_params = RECON_SETTINGS_NB_PARAMS;
|
||||||
std::string params[RECON_SETTINGS_NB_PARAMS];
|
std::string params[RECON_SETTINGS_NB_PARAMS];
|
||||||
|
|
||||||
bool check_sd_card = (sd_card::status() == sd_card::Status::Mounted) ? true : false;
|
make_new_directory(u"SETTINGS");
|
||||||
|
|
||||||
if (check_sd_card) {
|
auto result = settings_file.open(RECON_CFG_FILE);
|
||||||
auto result = settings_file.open(source);
|
if (!result.is_valid()) {
|
||||||
if (!result.is_valid()) {
|
while (it < nb_params) {
|
||||||
while (it < nb_params) {
|
// Read a 256 bytes block from file
|
||||||
// Read a 256 bytes block from file
|
settings_file.seek(file_position);
|
||||||
settings_file.seek(file_position);
|
memset(file_data, 0, 257);
|
||||||
memset(file_data, 0, 257);
|
auto read_size = settings_file.read(file_data, 256);
|
||||||
auto read_size = settings_file.read(file_data, 256);
|
if (read_size.is_error())
|
||||||
if (read_size.is_error())
|
break;
|
||||||
break;
|
file_position += 256;
|
||||||
file_position += 256;
|
// Reset line_start to beginning of buffer
|
||||||
// Reset line_start to beginning of buffer
|
line_start = file_data;
|
||||||
line_start = file_data;
|
pos = line_start;
|
||||||
|
while ((line_end = strstr(line_start, "\x0A"))) {
|
||||||
|
length = line_end - line_start - 1;
|
||||||
|
params[it] = string(pos, length);
|
||||||
|
it++;
|
||||||
|
line_start = line_end + 1;
|
||||||
pos = line_start;
|
pos = line_start;
|
||||||
while ((line_end = strstr(line_start, "\x0A"))) {
|
if (line_start - file_data >= 256)
|
||||||
length = line_end - line_start - 1;
|
break;
|
||||||
params[it] = string(pos, length);
|
if (it >= nb_params)
|
||||||
it++;
|
break;
|
||||||
line_start = line_end + 1;
|
|
||||||
pos = line_start;
|
|
||||||
if (line_start - file_data >= 256)
|
|
||||||
break;
|
|
||||||
if (it >= nb_params)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (read_size.value() != 256)
|
|
||||||
break; // End of file
|
|
||||||
|
|
||||||
// Restart at beginning of last incomplete line
|
|
||||||
file_position -= (file_data + 256 - line_start);
|
|
||||||
}
|
}
|
||||||
|
if (read_size.value() != 256)
|
||||||
|
break; // End of file
|
||||||
|
|
||||||
|
// Restart at beginning of last incomplete line
|
||||||
|
file_position -= (file_data + 256 - line_start);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +156,7 @@ bool ReconView::ReconSetupLoadStrings(const std::string& source, std::string& in
|
|||||||
output_file = "RECON_RESULTS";
|
output_file = "RECON_RESULTS";
|
||||||
recon_lock_duration = RECON_MIN_LOCK_DURATION;
|
recon_lock_duration = RECON_MIN_LOCK_DURATION;
|
||||||
recon_lock_nb_match = RECON_DEF_NB_MATCH;
|
recon_lock_nb_match = RECON_DEF_NB_MATCH;
|
||||||
recon_squelch_level = -14;
|
squelch = -14;
|
||||||
recon_match_mode = RECON_MATCH_CONTINUOUS;
|
recon_match_mode = RECON_MATCH_CONTINUOUS;
|
||||||
wait = RECON_DEF_WAIT_DURATION;
|
wait = RECON_DEF_WAIT_DURATION;
|
||||||
volume = 40;
|
volume = 40;
|
||||||
@ -186,9 +184,9 @@ bool ReconView::ReconSetupLoadStrings(const std::string& source, std::string& in
|
|||||||
recon_lock_nb_match = RECON_DEF_NB_MATCH;
|
recon_lock_nb_match = RECON_DEF_NB_MATCH;
|
||||||
|
|
||||||
if (it > 4)
|
if (it > 4)
|
||||||
recon_squelch_level = strtoll(params[4].c_str(), nullptr, 10);
|
squelch = strtoll(params[4].c_str(), nullptr, 10);
|
||||||
else
|
else
|
||||||
recon_squelch_level = -14;
|
squelch = -14;
|
||||||
|
|
||||||
if (it > 5)
|
if (it > 5)
|
||||||
recon_match_mode = strtoll(params[5].c_str(), nullptr, 10);
|
recon_match_mode = strtoll(params[5].c_str(), nullptr, 10);
|
||||||
@ -208,17 +206,19 @@ bool ReconView::ReconSetupLoadStrings(const std::string& source, std::string& in
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ReconView::ReconSetupSaveStrings(const std::string& dest, const std::string& input_file, const std::string& output_file, uint32_t recon_lock_duration, uint32_t recon_lock_nb_match, int32_t recon_squelch_level, uint32_t recon_match_mode, int32_t wait, int32_t volume) {
|
bool ReconView::recon_save_config_to_sd() {
|
||||||
File settings_file;
|
File settings_file;
|
||||||
|
|
||||||
auto result = settings_file.create(dest);
|
make_new_directory(u"SETTINGS");
|
||||||
|
|
||||||
|
auto result = settings_file.create(RECON_CFG_FILE);
|
||||||
if (result.is_valid())
|
if (result.is_valid())
|
||||||
return false;
|
return false;
|
||||||
settings_file.write_line(input_file);
|
settings_file.write_line(input_file);
|
||||||
settings_file.write_line(output_file);
|
settings_file.write_line(output_file);
|
||||||
settings_file.write_line(to_string_dec_uint(recon_lock_duration));
|
settings_file.write_line(to_string_dec_uint(recon_lock_duration));
|
||||||
settings_file.write_line(to_string_dec_uint(recon_lock_nb_match));
|
settings_file.write_line(to_string_dec_uint(recon_lock_nb_match));
|
||||||
settings_file.write_line(to_string_dec_int(recon_squelch_level));
|
settings_file.write_line(to_string_dec_int(squelch));
|
||||||
settings_file.write_line(to_string_dec_uint(recon_match_mode));
|
settings_file.write_line(to_string_dec_uint(recon_match_mode));
|
||||||
settings_file.write_line(to_string_dec_int(wait));
|
settings_file.write_line(to_string_dec_int(wait));
|
||||||
settings_file.write_line(to_string_dec_int(volume));
|
settings_file.write_line(to_string_dec_int(volume));
|
||||||
@ -230,10 +230,6 @@ void ReconView::audio_output_start() {
|
|||||||
this->on_headphone_volume_changed((receiver_model.headphone_volume() - audio::headphone::volume_range().max).decibel() + 99);
|
this->on_headphone_volume_changed((receiver_model.headphone_volume() - audio::headphone::volume_range().max).decibel() + 99);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ReconView::check_sd_card() {
|
|
||||||
return (sd_card::status() == sd_card::Status::Mounted) ? true : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ReconView::recon_redraw() {
|
void ReconView::recon_redraw() {
|
||||||
if (last_rssi_min != rssi.get_min() || last_rssi_med != rssi.get_avg() || last_rssi_max != rssi.get_max()) {
|
if (last_rssi_min != rssi.get_min() || last_rssi_med != rssi.get_avg() || last_rssi_max != rssi.get_max()) {
|
||||||
last_rssi_min = rssi.get_min();
|
last_rssi_min = rssi.get_min();
|
||||||
@ -268,7 +264,7 @@ void ReconView::recon_redraw() {
|
|||||||
|
|
||||||
// FREQ IS STRONG: GREEN and recon will pause when on_statistics_update()
|
// FREQ IS STRONG: GREEN and recon will pause when on_statistics_update()
|
||||||
if ((!scanner_mode) && autosave && frequency_list.size() > 0) {
|
if ((!scanner_mode) && autosave && frequency_list.size() > 0) {
|
||||||
ReconSaveFreq(freq_file_path, current_index, false);
|
recon_save_freq(freq_file_path, current_index, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -347,9 +343,9 @@ void ReconView::focus() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ReconView::~ReconView() {
|
ReconView::~ReconView() {
|
||||||
ReconSetupSaveStrings("RECON/RECON.CFG", input_file, output_file, recon_lock_duration, recon_lock_nb_match, squelch, recon_match_mode, wait, field_volume.value());
|
// save app config
|
||||||
|
recon_save_config_to_sd();
|
||||||
// save app settings
|
// save app common settings
|
||||||
settings.save("recon", &app_settings);
|
settings.save("recon", &app_settings);
|
||||||
|
|
||||||
audio::output::stop();
|
audio::output::stop();
|
||||||
@ -393,11 +389,6 @@ ReconView::ReconView(NavigationView& nav)
|
|||||||
&button_mic_app,
|
&button_mic_app,
|
||||||
&button_remove});
|
&button_remove});
|
||||||
|
|
||||||
// Recon directory
|
|
||||||
if (check_sd_card()) { // Check to see if SD Card is mounted
|
|
||||||
make_new_directory(u"/RECON");
|
|
||||||
sd_card_mounted = true;
|
|
||||||
}
|
|
||||||
def_step = 0;
|
def_step = 0;
|
||||||
// HELPER: Pre-setting a manual range, based on stored frequency
|
// HELPER: Pre-setting a manual range, based on stored frequency
|
||||||
rf::Frequency stored_freq = persistent_memory::tuned_frequency();
|
rf::Frequency stored_freq = persistent_memory::tuned_frequency();
|
||||||
@ -421,7 +412,6 @@ ReconView::ReconView(NavigationView& nav)
|
|||||||
load_ranges = persistent_memory::recon_load_ranges();
|
load_ranges = persistent_memory::recon_load_ranges();
|
||||||
load_hamradios = persistent_memory::recon_load_hamradios();
|
load_hamradios = persistent_memory::recon_load_hamradios();
|
||||||
update_ranges = persistent_memory::recon_update_ranges_when_recon();
|
update_ranges = persistent_memory::recon_update_ranges_when_recon();
|
||||||
|
|
||||||
field_volume.set_value(volume);
|
field_volume.set_value(volume);
|
||||||
if (sd_card_mounted) {
|
if (sd_card_mounted) {
|
||||||
// load auto common app settings
|
// load auto common app settings
|
||||||
@ -747,7 +737,7 @@ ReconView::ReconView(NavigationView& nav)
|
|||||||
|
|
||||||
button_add.on_select = [this](ButtonWithEncoder&) { // frequency_list[current_index]
|
button_add.on_select = [this](ButtonWithEncoder&) { // frequency_list[current_index]
|
||||||
if (!scanner_mode) {
|
if (!scanner_mode) {
|
||||||
ReconSaveFreq(freq_file_path, current_index, true);
|
recon_save_freq(freq_file_path, current_index, true);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -789,7 +779,7 @@ ReconView::ReconView(NavigationView& nav)
|
|||||||
recon_lock_nb_match = strtol(result[3].c_str(), nullptr, 10);
|
recon_lock_nb_match = strtol(result[3].c_str(), nullptr, 10);
|
||||||
recon_match_mode = strtol(result[4].c_str(), nullptr, 10);
|
recon_match_mode = strtol(result[4].c_str(), nullptr, 10);
|
||||||
|
|
||||||
ReconSetupSaveStrings("RECON/RECON.CFG", input_file, output_file, recon_lock_duration, recon_lock_nb_match, squelch, recon_match_mode, wait, field_volume.value());
|
recon_save_config_to_sd();
|
||||||
|
|
||||||
autosave = persistent_memory::recon_autosave_freqs();
|
autosave = persistent_memory::recon_autosave_freqs();
|
||||||
autostart = persistent_memory::recon_autostart_recon();
|
autostart = persistent_memory::recon_autostart_recon();
|
||||||
@ -841,7 +831,7 @@ ReconView::ReconView(NavigationView& nav)
|
|||||||
file_name.set("=>");
|
file_name.set("=>");
|
||||||
|
|
||||||
// Loading input and output file from settings
|
// Loading input and output file from settings
|
||||||
ReconSetupLoadStrings("RECON/RECON.CFG", input_file, output_file, recon_lock_duration, recon_lock_nb_match, squelch, recon_match_mode, wait, volume);
|
recon_load_config_from_sd();
|
||||||
freq_file_path = "/FREQMAN/" + output_file + ".TXT";
|
freq_file_path = "/FREQMAN/" + output_file + ".TXT";
|
||||||
|
|
||||||
field_squelch.set_value(squelch);
|
field_squelch.set_value(squelch);
|
||||||
|
@ -42,6 +42,8 @@
|
|||||||
|
|
||||||
namespace ui {
|
namespace ui {
|
||||||
|
|
||||||
|
#define RECON_CFG_FILE "SETTINGS/recon.cfg"
|
||||||
|
|
||||||
class ReconView : public View {
|
class ReconView : public View {
|
||||||
public:
|
public:
|
||||||
ReconView(NavigationView& nav);
|
ReconView(NavigationView& nav);
|
||||||
@ -113,10 +115,9 @@ class ReconView : public View {
|
|||||||
void recon_redraw();
|
void recon_redraw();
|
||||||
void handle_retune();
|
void handle_retune();
|
||||||
void handle_coded_squelch(const uint32_t value);
|
void handle_coded_squelch(const uint32_t value);
|
||||||
bool ReconSetupLoadStrings(const std::string& source, std::string& input_file, std::string& output_file, uint32_t& recon_lock_duration, uint32_t& recon_lock_nb_match, int32_t& recon_squelch_level, uint32_t& recon_match_mode, int32_t& wait, int32_t& volume);
|
bool recon_load_config_from_sd();
|
||||||
bool ReconSetupSaveStrings(const std::string& dest, const std::string& input_file, const std::string& output_file, uint32_t recon_lock_duration, uint32_t recon_lock_nb_match, int32_t recon_squelch_level, uint32_t recon_match_mode, int32_t wait, int32_t volume);
|
bool recon_save_config_to_sd();
|
||||||
bool ReconSaveFreq(const std::string& freq_file_path, size_t index, bool warn_if_exists);
|
bool recon_save_freq(const std::string& freq_file_path, size_t index, bool warn_if_exists);
|
||||||
|
|
||||||
jammer::jammer_range_t frequency_range{false, 0, MAX_UFREQ}; // perfect for manual recon task too...
|
jammer::jammer_range_t frequency_range{false, 0, MAX_UFREQ}; // perfect for manual recon task too...
|
||||||
int32_t squelch{0};
|
int32_t squelch{0};
|
||||||
int32_t db{0};
|
int32_t db{0};
|
||||||
|
@ -92,7 +92,7 @@ ReconSetupViewMain::ReconSetupViewMain(NavigationView& nav, Rect parent_rect, st
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
void ReconSetupViewMain::Save(std::string& input_file, std::string& output_file) {
|
void ReconSetupViewMain::save(std::string& input_file, std::string& output_file) {
|
||||||
persistent_memory::set_recon_autosave_freqs(checkbox_autosave_freqs.value());
|
persistent_memory::set_recon_autosave_freqs(checkbox_autosave_freqs.value());
|
||||||
persistent_memory::set_recon_autostart_recon(checkbox_autostart_recon.value());
|
persistent_memory::set_recon_autostart_recon(checkbox_autostart_recon.value());
|
||||||
persistent_memory::set_recon_continuous(checkbox_continuous.value());
|
persistent_memory::set_recon_continuous(checkbox_continuous.value());
|
||||||
@ -100,7 +100,7 @@ void ReconSetupViewMain::Save(std::string& input_file, std::string& output_file)
|
|||||||
input_file = _input_file;
|
input_file = _input_file;
|
||||||
output_file = _output_file;
|
output_file = _output_file;
|
||||||
};
|
};
|
||||||
void ReconSetupViewMore::Save(uint32_t& recon_lock_duration, uint32_t& recon_lock_nb_match, uint32_t& recon_match_mode) {
|
void ReconSetupViewMore::save(uint32_t& recon_lock_duration, uint32_t& recon_lock_nb_match, uint32_t& recon_match_mode) {
|
||||||
persistent_memory::set_recon_load_freqs(checkbox_load_freqs.value());
|
persistent_memory::set_recon_load_freqs(checkbox_load_freqs.value());
|
||||||
persistent_memory::set_recon_load_ranges(checkbox_load_ranges.value());
|
persistent_memory::set_recon_load_ranges(checkbox_load_ranges.value());
|
||||||
persistent_memory::set_recon_load_hamradios(checkbox_load_hamradios.value());
|
persistent_memory::set_recon_load_hamradios(checkbox_load_hamradios.value());
|
||||||
@ -162,8 +162,8 @@ ReconSetupView::ReconSetupView(
|
|||||||
&button_save});
|
&button_save});
|
||||||
|
|
||||||
button_save.on_select = [this, &nav](Button&) {
|
button_save.on_select = [this, &nav](Button&) {
|
||||||
viewMain.Save(input_file, output_file);
|
viewMain.save(input_file, output_file);
|
||||||
viewMore.Save(recon_lock_duration, recon_lock_nb_match, recon_match_mode);
|
viewMore.save(recon_lock_duration, recon_lock_nb_match, recon_match_mode);
|
||||||
std::vector<std::string> messages;
|
std::vector<std::string> messages;
|
||||||
messages.push_back(input_file);
|
messages.push_back(input_file);
|
||||||
messages.push_back(output_file);
|
messages.push_back(output_file);
|
||||||
|
@ -66,7 +66,7 @@ namespace ui {
|
|||||||
class ReconSetupViewMain : public View {
|
class ReconSetupViewMain : public View {
|
||||||
public:
|
public:
|
||||||
ReconSetupViewMain(NavigationView& nav, Rect parent_rect, std::string input_file, std::string output_file);
|
ReconSetupViewMain(NavigationView& nav, Rect parent_rect, std::string input_file, std::string output_file);
|
||||||
void Save(std::string& input_file, std::string& output_file);
|
void save(std::string& input_file, std::string& output_file);
|
||||||
void focus() override;
|
void focus() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -111,7 +111,7 @@ class ReconSetupViewMore : public View {
|
|||||||
public:
|
public:
|
||||||
ReconSetupViewMore(NavigationView& nav, Rect parent_rect, uint32_t _recon_lock_duration, uint32_t _recon_lock_nb_match, uint32_t _recon_match_mode);
|
ReconSetupViewMore(NavigationView& nav, Rect parent_rect, uint32_t _recon_lock_duration, uint32_t _recon_lock_nb_match, uint32_t _recon_match_mode);
|
||||||
|
|
||||||
void Save(uint32_t& recon_lock_duration, uint32_t& recon_lock_nb_match, uint32_t& recon_match_mode);
|
void save(uint32_t& recon_lock_duration, uint32_t& recon_lock_nb_match, uint32_t& recon_match_mode);
|
||||||
|
|
||||||
void focus() override;
|
void focus() override;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user