* Default frequency
* Default frequency
* Use sample rate from .ini file if present
* Eliminate unneeded sampling_rate variable
* Eliminate unneeded sampling_rate variable
* Attempt to fix Capture startup hang
* Pump baseband_queue on M4 startup
* Synchronization experiment
* Moved SpectrumCapture member, better hang detection for M0
* Prevent execute from working on members until class has been initialized.
* Formatting
* Remove workaround.
* Rebase on next
* C8 conversion
* C8 conversion
* C8 support
* C8 support
* C8 support
* C8 support
* Don't auto-convert GPS C8 files
* C8 support
* C8 support
* C8 support
* Remove hang workaround (different PR)
* Comment change
* Clang
* Clang
* Clang
* Merged change from PR #1287
* C8 support
* C8 support
* Improve bandwidth display
* Merged minor optimization from PR 1289
* Merge change from PR 1289
* Use complex types for C8/C16 conversion
* C8 support
* C8 support
* C8 support
* C8 support
* Roll back changes
* Roll back C8 changes
* C8 support
* C8 support
* C8 support
* C8 support
* C8 support
* Don't transmit samples past EOF
* Don't transmit samples past EOF
* Clang
* Clang attempt
* Clang attempt
* C8 support
* Clang
* No need to scale progress now that widget is fixed
* Use memcpy vs byte copy, elim progress scaling, correct comments
* Minor optimization in C16->C8 conversion
* Only copy bytes actually read from file
* WIP new edit UI
* Fix textfield highlight
* WIP new edit
* Wrap up first pass of freqman edit
* Fix indexing of options
---------
Co-authored-by: kallanreed <kallanreed@noreply.github.com>
* Added to_string_rounded_freq function
* Added to_string_rounded_freq function
* Clang
* Clang try #2
* Use constexpr for pow10 array
* Additional string_format test cases
* Specify std=c++17 for g++ versions that default to an older standard
* Corrected string_format test cases
* Support showing invalid entries in Freqman and allow minor edits
* Use light_grey instead of grey
* Fix comment
* Fix null in description bug
* Fix spacing in delete entry dialog
* trim in delete modal
* FreqmanDB direct file
* Clear UI for short lists
* Final touches on freqlist UI.
* Support vertical alignment in NewButton
* New buttons in FreqMan
* Wiring up UI to filewrapper actions
* Work around empty file
* WIP freqman changes/memory perf/stash
* Split ui tone_key function out for testing.
* Add more tests and fix bugs.
* Use default max_entries in recond
* Set limit back to 90 for now
* Added fonts viewer (debug) app
* Added fonts viewer (debug) app
* Clang
* Use degree symbol vs asterisk for latitude/longitude degrees
* Save a few bytes by not overriding on_key
* Save a few bytes by not overriding on_key
* Clang
* Use filesystem::path type vs string for BMP file name
* Use filesystem::path type vs string for BMP files
* Use a global const file path string for "/splash.bmp"
* Support for viewing BMP files and setting as Splash screen
* Support for viewing BMP files and setting as Splash screen
* Support for viewing BMP files and setting as Splash screen
* Update ui_ss_viewer.cpp
* Update ui_ss_viewer.hpp
* WIP RadioState init
* TX/RX cleanup
* Update all apps using RadioState and setting modulation mode
* Set apps to use AM mode
* Don't push modulation update in RadioState.
* Support passing overrides to Audio and MicTX
* Support set_nearest on OptionsField, fix recon step
* Fix audio, typo
---------
Co-authored-by: kallanreed <kylereed@manzana.lan>
Co-authored-by: kallanreed <kallanreed@noreply.github.com>
* Generate CTCSS messages at fixed rate regardless of tone freq
* Generate CTCSS messages at fixed rate regardless of tone freq
* Function for generating CTCSS description strings
* Function for generating CTCSS description strings
* Increase width of CTCSS text to include tone freq
* Increase width of CTCSS text field to include frequency
* Use CTCSS tone freq when saving HAM freqs to freq file
* Use function in tone_key.cpp for displaying CTCSS string
* Use function in tone_key.cpp for CTCSS descr strings
* Use function in tone_key.cpp for CTCSS descr strings
* Clang test
* Clang
* Clang
* Support for reading CTCSS tones from FreqMan file
* Clang
* Clean up and eliminate floating point
* Clean up and eliminate floating point
* Corrected CTCSS field length
* Corrected CTCSS field length
* Clang
* Added fn to indicate support for disabling speaker
* Support both mute & speaker disable icons
* Byte grouping for ui_config2_t bitmap
* Fix disabling AK speaker to take effect immediately
* Orange icons vs yellow
* Update app icon colors per current development states
* Darken bright icons on white backgrounds
* Darken bright icons on white backgrounds
* Recon: disabling config while recording
* Capture and Spectre Painter: using freqman set bandwidth option instead of static define
* Recon: light_grey for disable so we can still see the text
* added auto record checbox and functions (audio and raw)
* Changed baseband compile option from -O3 to -O2. Trying lower gave unexpeted and crashing results.
* added 650k SPEC bw
* fix hang if wait is -100
* fixing no SPEC support in scanner
* using emplace_back instead of push_back is giving better results in regards of the memory management and crashes
* we tried with all our best ideas, we don't know why it's better but it outperformed every other allocations method tested
* Cleanings and setting the limit to a working for all apps one
* fixing a guru memory errors, renaming a leftover variable
* removed unneeded set_dirty
* Don't disable DAC when other audio output is using it
* Persistent audio mute revisions
* Moved persistent audio mute code to audio.cpp
* Make "Disable AK speaker amp" take effect immediately
* Set rf direction in RadioState
* centralize cpld load for TX->RX
* Remove calls to load_sram from all apps
* re-add CPLD hack, don't set radio values directly.
---------
Co-authored-by: kallanreed <kallanreed@noreply.github.com>
* fixxing bandwidth application, moved 'continuous' from config page to main page in form of a 'loop' button. Removed looking glass button as it's not configurable to position on a range/signal
* Fix initial freq when no App Settings tpms
* Default POCSAG freq when no App Settings
* Enable Scanner App Settings for Modulation/BW/Step
* Default SONDE freq when no App Settings
* add a little Stash utility.
* add radio state RAII helper.
* first part of radio_state changes
* add radio_state_ to rest of apps
* fix freq_step and format
* fix unused ui_sigfrx: corrected sample rate, added back freq setting
* Allow apps to not use persisted freq.
* use rx_freq for RX mode
* remove direct call to persistant_memory in tx_model
* app_setting defaults, and tx_view to use ctor value
* fixing recon/scanner restarting while on pause and setting a manual start or end
* gui revamping, duplicated options suppressed from config menu
* recon_match_mode set at start
* finely tuned spectrum and marker precision, all modes
* hidding buttons when mode is not supported
* removing on show hide since widget implementation is buggy. Fine tuned values using signal generator to get around the corners
---------
Co-authored-by: GullCode <gullradriel@hotmail.com>
* GCC12 related fixes but still compiles on GCC9
* Suppress warnings about volatile +=
* Enable c++20 if supported by the compiler
On gcc12 we need to use -std=c++20 since constexpr .c_str() on std::string is only officially available since c++20 and the new gcc wouldnt let us use it with older standard
* code format
---------
Co-authored-by: Eisenberger Tamas <e.tamas@iwstudio.hu>
* fix pmem -> make backup_ram_t data members volatile
plus add calculated crc to the pmem debug screen
* rename pmem debug menu to p.mem
As this is how its refered to in the wiki and other screens
* p.mem looked strange with capital P
---------
Co-authored-by: Eisenberger Tamas <e.tamas@iwstudio.hu>
* reset config when holding down select durring boot
it still need to be tripple checked if adc or control init really doesnt use any pmem
* one less magic number :)
* dual key action left+right for pmem reset
---------
Co-authored-by: Eisenberger Tamas <e.tamas@iwstudio.hu>
* Consolidate styles into a Styles class and clean up code
* Format
* Add style_bg_dark_grey for nav bar
* Fix bugs found in PR
* Rename styles
* Add bg_white style
---------
Co-authored-by: kallanreed <kallanreed@outlook.com>
Co-authored-by: gullradriel <3157857+gullradriel@users.noreply.github.com>
* Put WFM bandwidth options in ascending order
* Put WFM bandwidth options in ascending order
* Put WFM bandwidth options in ascending order
* Put WFM bandwidth options in ascending order
* Put WFM bandwidth options in ascending order
* Clang formatting attempt
* OptionsField wrapping - for your consideration
Perhaps if OptionsWidget supported wrapping, then it would be easier to dial through all available options without having to know which direction to turn the dial.
* moved pmem setting restore before top bar is loaded
* added a check pmem from sdcard function, replaced occurences, added a save to file on back button
* Added defines for flag file and dump file, changed test func name to should_use_sdcard_for_pmem, used file_exists, removed save and load pmem parameter
* changed a text to a more comprehesible one
* WIP expensive way
* Add default file handling to fileman
* Remove screenshot_reader and tests
* Read data in chunks
* Format
* Fix error text position
* PR feedback
---------
Co-authored-by: kallanreed <kallanreed@outlook.com>
* changed a hardcoded value by a define, changed the order for the database clean so it happens first, changed load_freqman_file_ex so it can take a max num of freqs as a parameter with a default to FREQMAN_MAX_PER_FILE
* added a swap and a set_db to clear as much as possible before the loading of a category
* added a define for Recon max per files
* remove unneeded comment
* WIP file editing
* WIP file editing
* Add "on_pop" handler to navigation.
* WIP Editing
* WIP for draft
* Fix mock and unit tests, support +newline at end.
* Clean up Painter API and use string_view
* Fix optional rvalue functions
* Fix Result 'take' to be more standard
* FileWrapper stack buffer reads
* Grasping at straws
* Nit
* Move set_on_pop impl to cpp
* Workaround "Open" when file not dirty.
---------
Co-authored-by: kallanreed <kallanreed@outlook.com>
* simplifications, better precision, less sleeps
* fixing glitches
* fixed res freeze
* correct frequency picking for marker, yay !
* added comments into the code in hard parts
* took out unneeded sleep
Special thanks to users vmakeev, tel, f1ghy, u-foka for their resilience in testing the bunch of bins I've produced to fix the thing :-)
* WIP Move file_wrapper and make testable.
* More tests, get text_editor compiling
* Back to working
* Run formatter
---------
Co-authored-by: kallanreed <kallanreed@outlook.com>
* Support for 3 levels of rotary encoder sensitivity #965
Backend support; UI will still need to call set function to configure.
* Support for 3 levels of rotary encoder sensitivity #965
Backend support only. UI will still need to be changed to call the set_sensitivity() function to configure.
* Removed trailing space
* Deleted blank lines to see if format checker will be happier
* Simpler support for multiple levels of encoder sensitivity, for issue #965
Removed the convoluted code :-) and instead just using a 2-dimensional array to choose which transition map to use. For now I only have 2 (vs 3) levels enabled as well, to save code space and because high-sensitivity is very touchy.
* Simpler version of configurable encoder sensitivity, issue #965
* Formatting
* Formatting test for Clang
* Formatting test
* Formatting (removed helpful comment)
* Formatting test (remove commented-out code)
* Formatting & swapping medium/low so default mode=0
* Swapped medium/low so default mode=0
* Adding UI & PMEM support to make encoder dial sensitivity configurable, issue #965
* Adding UI & PMEM support to make encoder dial sensitivity configurable, issue #965
* Adding UI & PMEM support to make encoder dial sensitivity configurable, issue #965
* Adding UI & PMEM support to make encoder dial sensitivity configurable, issue #965
* Adding UI & PMEM support to make encoder dial sensitivity configurable, issue #965
* Adding UI & PMEM support to make encoder dial sensitivity configurable, issue #965
* Removed unneeded range check (trusting in pmem checksum)
* reducing memory imprint before launching a nav
* added remove from loaded list in Recon / delete from output file in Scanner functionality
* fix initial color for filename
When starting the app, actual tx gain is 47 while the ui shows 10. "Increasing" gain to 11 takes effect, reducing actual gain as displayed in UI. This change makes the UI gain value consistent with actual tx gain.
* Set default TX gain to 10
I'd rather people who know better have to turn this up, than people who don't know better to be jamming their neighbors accidentally.
* Update transmitter_model.hpp
Set default to 35 per discussion.
* Use receiver/transmitter models everywhere
* Run formatter
* Fix a copy-paste bug, make transmitter_model actually set tx_gain.
---------
Co-authored-by: kallanreed <kallanreed@outlook.com>
* Support "repeat" when holding a direction button
* Support "repeat" when a direction button is held
* Support "repeat" when a direction button is held
* Support "repeat" when a direction button is held
* Formatting violation - removed a trailing space
* Removed unneeded return() statement
* first commit for playlist fix
* format for playlist fix
* playlist fix -textual change
thanks @kallanreed for giving the new name of the extension XD
* easier 'now', start adding text editor
* Adding scrolling to notepad
* Better scrolling
* Better scrolling, off-by-1 bugs
* MVP fit and finish
* Add tiny font and use in Notepad
* Font tweaking, tiny font cursor
* Fix warning
* Format changed files
* WIP No file limit
* WIP - adding CircularBuffer type
* WIP Caching
* add unit test for circular_buffer
* WIP still have a bug when moving cache forward
* Finish lazy line caching
---------
Co-authored-by: kallanreed <kallanreed@outlook.com>
-fix CONFIG dysfunction if nothing had changed: this was a reminiscence of the nothread conversion
-addressed screen flickering: reduced it by separating two text output
-variables: took out unneeded userpause (reminiscence of the nothread conversion)
-solved problem with manual range not updating description on consecutive clicks
-solved problem with direction changing on 'UNLOCK/SKIPLCK'
* Fix debounce to handle noisy switch transitions
* Fix debounce to handle noisy switch transitions
* Fix debounce to handle noisy switch transitions
* Removed inline comment to see if Clang checker will be happy
* Test fix for supposed Clang formatting issue
* fix units for frequency offset. It was planned to be a uint32_t since a uint16_t is obviously too short
* took the uint32_t limitation for frequency offset in account
* easier 'now', start adding text editor
* Adding scrolling to notepad
* Better scrolling
* Better scrolling, off-by-1 bugs
* MVP fit and finish
* Add tiny font and use in Notepad
* Font tweaking, tiny font cursor
* Fix warning
* Format changed files
---------
Co-authored-by: kallanreed <kallanreed@outlook.com>
* deleted unreliable Thread system and use exclusively the statistics events instead
* reducing used variables, reducing number of functions, revamped main drawing and locking system
* max speed is fixed at a maximum of 10 scans/secs due to statistics not coming quicker than that
* removing space which would prevent correct reading of 'bw=40k,' in freqman files
* setting correct 4 char long size in WFM bandwidth options
---------
Co-authored-by: GullCode <gullradriel@hotmail.com>
-Enhanced frequency file reading:
Correctly read freq files that contain a mix of SINGLE and RANGE or HAM_RADIO types (strstr in file processing was ignoring EOL and was therefore finding the f= on the next line). Also changed to simply ignore blank or unrecognized lines versus adding them as SIMPLE entries to freq table.
This allow comments and white line in freqman files.
-Fixed "can_loop" option in NumberField:
When NumberField range.first was non-zero, and can_loop was true, turning the encoder dial in the downward direction did not result in numbers looping back to range.second as was expected. This fix allows looping in downward direction in the case where range.first is non-zero.
* fixing bad parameter in save and load settings, as well as default settings. Tuned thread timers a bit
* uniformisation of default values
* indentation
* fix resume recon after lock
* definitely fixed, tested, documented bad consecutive match skip problem
* stability fix for config when no list
* fixed boundaries
* replaced 1000000 by #define OneMHz 1000000
* removed unused debug and record buttons
* added log checkbox
* changed ignore and log to false at app start for pocsag
* fixed warning: suggest parentheses around arithmetic in operand of '^' proc signal
* ui comsetic fix
Modified TPMS app to allow switching between Celsius & Fahrenheit temperatures, which also simplified some of the code by sticking with a constant heading row
* Added HamItUp option to allow quick offset of the tuned frequency
* New HamItUp icon for top bar
* HamItUp checkbox status and frequency persistent settings in Settings/Radio
* added possibility to scale vertically from bottom to top
* Squeleton of Level app from Recon App
* Working LevelApp
* Tweaking peak and display or RSSI chart
* Moved widgets, prepared audio decode, added working ctcss display and peak hold max rssi val
* Added RSSIGraph
* Updated Level to use RSSIGraph
* Graph as lines instead as bars
* correct CTCSS hiding if not in NFM mode
* added back db value and drawing for it. clamped to [-100,20] db
* added back audio, volume, better placement for buttons, db graph
* Using different icon for Level app, unless someone provide a better one
* fixed CTCSS position
---------
Co-authored-by: GullCode <gullradriel@hotmail.com>
* fix for #765, manual mode has unlimited range now
* speedup for button_add.on_select (roughly x70 times faster)
* fix for random freezes while switching to Audio