portapack-mayhem/firmware/application/bitmap.hpp
gullradriel 1dbfc50dbe
Stable merge v2.2.0 (#2736)
* Update README.md

Actually valid complete ali h4m link

* Fake brightness reimplementation  (#2444)

* Fake brightness reimplementation
* indentation
* added call to the function which is caching the display settings values
* use cached values instead of pmem

* app manager (#2442)

* fix unset autostart
* clean up - add comments to prevent misleading
* move the app to external and with necessary changes
* replace autostart app

* Add + - buttons in Encoder dial settings (#2447)

* M10 additional parser (#2448)

* Remember previous capture settings (#2450)

* Renamed parameters in rx_capture.ini file (#2452)

* Rename settings in file to match screen
* Renamed variables for hopefully better clarity

* Navigation buttons (#2458)

* regenerate bitmap data
* pagination in submenu
* using little font so we are not eating menu buttons

* docker improvements (#2455)

* Update README.md

New metal case link

* The gerber files of the portapack H4 (#2463)

* Create README.txt

* Update README.txt

* Add files via upload

The gerber files of the portapack h4.

* delete

* Upload the gerber files for H4

* Update README.md (#2456)

Added a link to Lab401.com as a purchase option for EU customers.
(Lab401 was added as the EU exclusive distributor for the H4M - https://opensourcesdrlab.com/pages/distributors)

* Update README.md

* rename bitmaps into bmp

* disabling button on main menu, change labels and add 'icons' (#2466)

* disabling button on main menu, change labels and add 'icons'

* fix reverse order of buttons

---------

Co-authored-by: gullradriel <gullradriel@no-mail.com>

* fix for empty text prompt crash (#2468)

* added discord server information (#2471)

* Add the feature to decide rotate direction of encoder (#2472)

* Update README.md

Lab401 link with our redirection

* Fix encoder setting p.mem issue (#2475)

* Update README.md

Discord badge was broken, switching to shields.io

* Add fast flash script for sdcard switch hardware (#2480)

* fix cmake_minimum_required to 3.16 (#2499)

* fix fallthrough warning (#2497)

* Flipper tx: use file_path, example file (#2496)

* added subghz_dir
* use subghz_dir from file_path
* example file

* Externalize antenna calc and wav view (#2498)

* externalize antenna calc and wav view
* Added a tool to check if all the pictures in graphics are used in internal apps

* APRS: add frequency settings for Brazil (#2494)

* Add frequency settings for Brazil, named 'BR' that tunes to 145.570 MHz.
* Also added: Japan: 144.640 MHz (JAP), Thailand: 144.900 MHz (THA), Philippines: 144.740 MHz (PHI)
* Reordered list by increasing frequency
Co-authored-by: gullradriel <3157857+gullradriel@users.noreply.github.com>

* Added different modulations in signal generator (#2492)

* Added DSB, AM 100% mod index and AM 50% mod index. Changed UI.

* put back app in 'Utilities' (#2500)

Co-authored-by: gullradriel <gullradriel@no-mail.com>

* fix baseband (#2501)

* externalize wipe sdcard (#2502)

* Removing vim swap files (#2503)

* Removing vim swap files
* Added vim swap file to .gitignore

* Add modal to turn off screen when charging is detected (#2514)

* Moved country-specific FREQMAN files to the separate repository set up for it. (#2517)

* fix docker build warnings in dockerfile-nogit (#2518)

* Add new app "hopper" app. (#2482)

* make both jammer and hopper exist
* add example hopper payload
* example files
* swap scanner and recon app location

* Add widget preview tool (#2520)

* PoC

* opt

* opt

* Playlist editor (#2506)

* make both exist
* format
* fix focusing issue
* add example hopper payload
* fix compiler err
* clean up
* correct linker script addr
* lint
* PoC
* unknown: write_line issue
* clean up
* merge
* fix read line
* remove debug code
* fix english
* support new file
* support enter delay
* fix crash
* remove debug code
* some final tune

* Support Bug Key AKA Auto Key for OOK Editor app (#2523)

* _

* some final tune

* textual

* rename following gull's suggestion

* add cursor to font viewer app (#2528)

* Allow disable/enable waveform in Audio app to remove decoding problem on some frequencies

* Added different modulations in signal generator

* Added DSB, AM 100% mod index and AM 50% mod index. 
* Changed UI.
* Added pulsed CW

* Adding Wefax demodulation mode inside Audio App (#2539)

* Adding_new_WFAX_GUI_mode_Audio_App

* Wefax_APT_demodulation_structure

* Solving REC Apt signal.wav from WFAX

* clang format issues

* correcting comments

* Breakout - The Portapack remake game rises from the pirate's lair (#2541)

* Breakout - The Portapack remake game rises from the pirate's lair

* Fixes

* Added a signature

* Trivial textual change about missing SD content (#2542)

* _

* _

* waveform fix 3 and trivial change (#2540)

* Moved games to new game menu (#2544)

* Moved games to new game menu
* There's enough games to have a menu now and I plan to make more. Having them in "Utilities" made no sense.

* Wefax warning fix modulation fix (#2543)

* changed order of modulations, changed case to avoid capture
* added missing AMAudioFMApt mode to dump pmem
* reorder demod, adding missing ones, fix warnings
* removed uneeded 'previous_modulation', renamed WFAX to AMFM to match other places
* removing uneeded 'previous_modulation' uneeded check in change_modulation
* move capture at the end so AMAUdioFMApt is matching the other arrays for position 4
* added AMFM to Recon Level and Scanner

* clang + more details in some comments

---------

Co-authored-by: gullradriel <gullradriel@no-mail.com>

* Snake (#2549)

* Create the Shopping Cart Lock app

Will demonstrate tomorrow. Don't merge until I do 😁

* Fixes for HTotoo's comments 😎

* Improved audio the best I can.

If nobody has any ideas to further improve high frequencies of the audio, the hardware may not be capable. I still need to check with line-out to better speaker to make sure it's not just the speaker, but it shouldn't be.

* Compared against baseband_api.cpp - matched some things better but still playback seems to be missing higher fq sounds

* renamed wav files to a more specific / less generic name

* indentation + using variables instead of litteral names for wav files to use

* indentation

* Made a Snake game - enjoy

* Code formatting. I always forget.

* move to keep sort order

* Update external.ld

Sorry I should have also asked if there was any reason that address ranges 0xADDA0000--0xADDD0000 were skipped in external.ld.  I assumed there wasn't so I changed it to be consecutive using the same 0x10000 step as the other modules.  If there is any reason to skip them then we should add a comment to note it.  Of course these are all just temporary address values used for linking and get overwritten by a kludgy "search & replace" during the build process.

Resolves enhancement request #764

---------

Co-authored-by: gullradriel <gullradriel@no-mail.com>
Co-authored-by: Mark Thompson <129641948+NotherNgineer@users.noreply.github.com>

* Nested Debug menu into Utilities menu to tidy Home screen (#2551)

* rename rand pwd app (#2552)

* _

* remove wip code that forgot to add in old branch

* Moved speaker 1px to the right to match muted icon variant. (#2554)

* Stopwatch external app (#2553)

* updated bitmaps for speaker icon (#2555)

* updated bitmaps for speaker icon
* removed opera cake icon that was added by mistake
* adding missing Game menu source png
* cyan for Game menu
* regenerated icons

* Breakout icon change (#2556)

- Changed Breakout icon
- Changed Tetris icon color to green

* Snake icon change (#2557)

* Remove deprecated QR Code code (#2558)

* Setting for faster Button Repeat delays (#2559)

* Setting for faster Button Repeat delays

* Tweak fast delay times

* Tweak delay times

* Added description line and tweaked delay again

* OokBrute app opt (#2561)

* zooming_spectrum_AMFM_mode (#2565)

* Update README.md

Fixing opesourcesdrlab link

* Update README.md

Other link broken

* WeFax rx ext app (#2566)

* wf3

* Ookbrute (#2354)

* Revert "Ookbrute (#2354)"

This reverts commit abb8143eec.

* fix

* test edition

* re enable ble

* re enable ert

* steal amfm stuff

* something happens

* save bmp on start btn

* kinda works

* exit crash fixed

* redline, remove some hardcoded

* removed cpu killer red line, and some fixes

* simplify #1

* seems ok. time to improve

* added hidden freq offset to receiver model, so wefax can be set to the "correct" freq without users needs to substract 300 hz

* badly implemented sync detection, and disabled it.

* fix for fix

* fixes

* fix offset to real life off

* no line on freq enter

* fixes

* Doom - Mayhem Edition (#2570)

* Doom - Mini Mayhem version

* Update ui_doom.cpp

* Update ui_doom.cpp

* Update ui_doom.cpp

* Update ui_doom.cpp

* Update ui_doom.cpp

* Update ui_doom.cpp

* Update ui_doom.cpp

* Update ui_doom.cpp

* Doom - Mayhem Edition

Made the Doom - Mayhem Edition game. Some little bugs but good enough for nightly.

* Code formatting. Forgot like always.

* give more initial ammo until i put ammo around the maze to collect

* Update Doom main.cpp for better icon (#2575)

* fix external app address list (#2573)

* Add WEFAX freqman file (#2567)

* Add WEFAX freqman file
* fix bad escaped spaces and unicode characters

* Add icon for the doom game (#2574)

* Add icon for the doom game
* Add b/w .png to convert as doom icon

* Added wefax offset to audio app too. (#2572)

* added wefax offset to audio app too.

* moved from head to cpp

* Put ticker class and pp_colors in hpp file in namespace and remove helper files (#2577)

* stopwatch opt (#2578)

* stopwatch opt

* comments

* format

* fxi ms display when user tune display level

* issue template fine tune (#2579)

* Combined cpp files, stuffed helper files in hpp, updates start and game over screens (#2583)

* Combine cpp, move helpers to hpp (#2584)

* naming space (#2585)

* Tetris: Combined cpp files. Helper files into hpp. Dark mode. Encoder on. (#2587)

* Adding_Waterfall_ZOOM_x2_in_AM_modes_Audio_App (#2586)

* adding zoom_factor to app settings
* separated zoom_factor settings for AM and AMFM
* fix order so zoom factor is also applied correctly on modulation change
* fix zoom not applied when changing bandwidth
* temporary disable the Scanner so we are not breaking the nightly. Until we are choosing to finally remove it or find a better solution

---------

Co-authored-by: gullradriel <3157857+gullradriel@users.noreply.github.com>
Co-authored-by: gullradriel <gullradriel@no-mail.com>

* Fixed the I Tetromino rotation using SRS (Super Rotation System) (#2588)

* Externalize dump pmem (#2590)

* initial commit

* clang

* memory icon

* text output and exit button, FOCUS OVERRIDE TO AVOID COMPILATION ERROR

* modem and data_structure_version accessor

---------

Co-authored-by: gullradriel <gullradriel@no-mail.com>

* remove dead code (#2593)

* remove not yet enabled screening app (#2594)

* move default splash into sdcard (#2595)

* move bmps to sdcard
* remove unrelated files
* gitignore
* credit
* format

* Externalize scanner (#2589)

* externalize scanner
* NFM as main baseband as it's the biggest used one
* fix modulation bug introduced with AMFM

* Externalize level (#2596)

* removing ability to focus on RSSI bars and to launch level app, until a solution to launch external apps from internal ones is given
* externalize Level app

* Remove unneeded AMFM support in those apps (#2597)

* Create CODE_OF_CONDUCT.md

* Create pull_request_template.md

* Create SECURITY.md

* Create CONTRIBUTING.md (#2598)

* Force 433.92 and remove metadata check (#2599)

* Force 433.92 and remove metadata check: we already know the frequency for all files so don't need a million metadata files to match.
* Variable fixes and move to header

* Added more Wefax stations (#2600)

* Delete sdcard/FREQMAN/WEFAX.TXT

Replace with 2 files

* Add more WeFax frequencies

* Update comments

* Oops wrong folder

* Oops wrong folder

* Change comments

* Remove RF TX and use PATX baseband for audio --> speaker out only (#2601)

* Force 433.92 and remove metadata check

We already know the frequency for all files so don't need a million metadata files to match.

* Remove RF TX. Improve PATX baseband.

* code formatting of course

* Issue template again (#2602)

* test1

* test2

* add tap tempo to metronomic app (#2605)

* _

* format

* fix new tree in Arch

* solving_Audio_App_AM_GUI_Problem_issue_2604 (#2609)

* make the ptext_prompt func can define which keyboard to enter (#2608)

* _

* format

* use define

* prevent long life var for audio app - AM (#2610)

* static vars so no external linkage is possible

* persistent settings and no more global living variables

---------

Co-authored-by: gullradriel <gullradriel@no-mail.com>

* theme fix again (#2611)

* theme fix again

* _

* user can disable battery change hint (#2612)

* theme fix again

* _

* _

* GFX EQ App (#2607)

* Make the beginnings of rf3d
* Name change...
* Add mood button
* Remove forced amp settings and add persistent user settings
* Fix options bar layout and SettingsManager
* Make the background paint to black again after opening fq modal
* fix audio/mod/settings and cleaned unneeded parts
* Mapped bars to audio spectrum
* Improved frequency response... still needs work i think
* add on_freqchg to be able to answer to serial frequency change command
* Made calculations for 14 bars to fit screen and little adjustments
* Visual improvements
Co-authored-by: gullradriel

* Improved make_bitmap tool (#2615)

* Enhance Graphic Equalizer Visualization with Improved Frequency Bands and Response (#2614)

* Custom waterfall colors (#2617)

* Custom waterfall gradient
* Installing a custom waterfall gradient via fileman
* default file for user friendly swap
Co-authored-by: gullradriel <gullradriel@no-mail.com>

* Delete dead code in ble_rx_app.cpp (#2620)

Duplicate include on line 24 removed.

* Fix default waterfall file (#2621)

* correct default settings from file
* correct colors names

* fix comments (#2622)

* Touch on waterfall to set cursor pos (#2624)

* init

* fix typo that found by Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Adding 8.33KHz spacing (#2628)

* Adding 8.33KHz spacing
* remove extern options_db_t freqman_steps which is now brought by ui_receiver.hpp
* use freqman db steps instead of static array
Co-authored-by: gullradriel <gullradriel@no-mail.com>

* Added menu group for transceivers (#2623)

* Added menu group for transceivers

* Reorder apps icons

* Support IPS screen & brightness set for IPS screen (#2629)

* _

* format

* format

* format

* Fix bug that created by PR "Added menu group for transceivers" (#2630)

* spectrum cursor opt again (#2634)

* spectrum cursor opt

* fmt

* remove blink

* remove End event

* cleanup

* Update README.md

Links were dead for opensourcesdrlab

* Fix for #2538 (#2635)

* Fix for #2538

Fix for #2538
Added on_bandwidth_changed Callback to ui_transmitter.hpp
Modified the field_bw.on_change lambda in the TransmitterView constructor to trigger the on_bandwidth_changed callback
Connected the Callback in ui_siggen.cpp

I am not a C++ programmer so this change was proposed by Gemini AI.

I have built and tested the App and it works as expected and I don't think the change will have any unexpected side effects.

* Fix clang issues

Fix clang issues

* Update ui_transmitter.cpp

typo

* Revised change

The proposed change mirrors the way a change to the frequency (on_edit_frequency) is triggered in ui_siggen by the tx_view.
The bw parameter is not passed because it is stored in _setting in the tx_view and will be read by update_config.
A change to the bw is not checked against auto_update to keep its behaviour consistent with a change to the gain, amplitude or frequency.

* Make changes to the channel_bandwidth dynamic whist playing

Behaviour of channel bandwidth is now consistent with frequency, amp and gain.

* comment edit

* revert hackrf submodule checkpoint to the repo

* comment

---------

Co-authored-by: zxkmm <zxkmm@hotmail.com>

* Adding_WFM_AM_mode_to_Audio_App (#2644)

* Adding_WFM_AM_mode_to_Audio_App
* more precise values for cos and sin theta, fix sen_theta to sin_theta
* fix sen_theta to sin_theta

* going back to WFM as main baseband in main.cpp as NFM is now making the apps crashing. Looks like last additions to WFM made it bigger. (#2646)

* remove dead code (#2647)

* Update ui_tetris.cpp (#2650)

Start "I" tetromino a bit higher and block rotate if it will cause out of bounds collision.

* Noaa apt decoder (#2648)

* Explicit_naming_wefax_NOAA_and_small_addition (#2651)

* slightly improved ads-b receiver module (#2649)

* slightly improved ads-b receiver module:
* fix Heading, Speed and Vrate decoders
* decode more ModeS messages
* log all ModeS messages (except DF11)
* fix formatting (clang-style); advice on data alignment taken into account
* ADS-B module: convert Indicated AirSpeed to True AirSpeed if altitute is known
* ADS-B rx module: replacing floating point with integer arithmetic

* adding 10Hz and 50Hz to freqman_steps (#2652)

* Improve_RF_sensitivity_NOAA_signal (#2654)

* Upload the PCB file of PortaPack H4 and update the schematic file (#2657)

* Create README.txt

* Update README.txt

* Add files via upload

The gerber files of the portapack h4.

* delete

* Upload the gerber files for H4

* Create README.txt

This is the V1.0 version PCB file of PortaPack H4.

* Upload the pcb file for H4

* Update README.txt

* Update LCD_TF_Schematic.pdf

* Jammer app add modes (#2659)

* Add new jammer modes

Overview

This PR enhances the PortaPack Jammer app by introducing eight new signal types, ported from my Flipper Zero RF Jammer app (https://github.com/RocketGod-git/flipper-zero-rf-jammer). These modes expand the app's capability to disrupt a wide range of RF communication protocols, from analog radios to modern digital systems. The implementation preserves the original app structure, resolves namespace conflicts, and ensures compatibility with the Mayhem firmware.

New Modes

The following modes have been added to the options_type in ui_jammer.hpp, with corresponding signal generation in proc_jammer.cpp:

Noise: Generates broadband white noise to interfere with analog and digital signals (e.g., Wi-Fi, Bluetooth, key fobs). Highly effective for overwhelming receivers across a frequency range.

Sine: Produces a continuous, unmodulated sine wave to jam narrowband receivers, ideal for analog FM/AM radios or telemetry systems.

Square: Emits a harmonic-rich square wave, disrupting digital protocols (e.g., OOK, ASK) and systems sensitive to sharp transitions, such as remote keyless entry.

Sawtooth (Experimental): Generates a sawtooth wave with a unique harmonic profile, useful for testing interference against PWM-based or niche analog systems.

Triangle (Experimental): Creates a triangle wave with minimal harmonics, suitable for exploratory jamming of narrowband systems or receiver linearity testing.

Chirp: Outputs a rapid frequency-sweeping chirp signal, effective against frequency-hopping and spread-spectrum systems (e.g., some Wi-Fi, Bluetooth, or military radios).

Gauss: Generates Gaussian noise to mimic natural interference, targeting digital systems like GPS or data links by degrading signal-to-noise ratios.

Brute (Experimental): Transmits a constant maximum-amplitude signal to saturate simple receiver front-ends, useful for brute-force jamming of basic analog devices.

* Add new jammer modes

Overview

This PR enhances the PortaPack Jammer app by introducing eight new signal types, ported from my Flipper Zero RF Jammer app (https://github.com/RocketGod-git/flipper-zero-rf-jammer). These modes expand the app's capability to disrupt a wide range of RF communication protocols, from analog radios to modern digital systems. The implementation preserves the original app structure, resolves namespace conflicts, and ensures compatibility with the Mayhem firmware.

New Modes

The following modes have been added to the options_type in ui_jammer.hpp, with corresponding signal generation in proc_jammer.cpp:

Noise: Generates broadband white noise to interfere with analog and digital signals (e.g., Wi-Fi, Bluetooth, key fobs). Highly effective for overwhelming receivers across a frequency range.

Sine: Produces a continuous, unmodulated sine wave to jam narrowband receivers, ideal for analog FM/AM radios or telemetry systems.

Square: Emits a harmonic-rich square wave, disrupting digital protocols (e.g., OOK, ASK) and systems sensitive to sharp transitions, such as remote keyless entry.

Sawtooth (Experimental): Generates a sawtooth wave with a unique harmonic profile, useful for testing interference against PWM-based or niche analog systems.

Triangle (Experimental): Creates a triangle wave with minimal harmonics, suitable for exploratory jamming of narrowband systems or receiver linearity testing.

Chirp: Outputs a rapid frequency-sweeping chirp signal, effective against frequency-hopping and spread-spectrum systems (e.g., some Wi-Fi, Bluetooth, or military radios).

Gauss: Generates Gaussian noise to mimic natural interference, targeting digital systems like GPS or data links by degrading signal-to-noise ratios.

Brute (Experimental): Transmits a constant maximum-amplitude signal to saturate simple receiver front-ends, useful for brute-force jamming of basic analog devices.

* refactor the serial log logic of BLE Rx (#2660)

* Prepare for display orientation part 1 (#2661)

* fix png part

* screen max width fixes (#2663)

* max width fixes

* format

* Audio to right (#2664)

* r.align

* Storing_selected_NOAA_filter_in_settings_file (#2665)

* Storing_selected_NOAA_filter_in_settings_file

* format_issues

* wfm_filters_GUI_name_std (#2668)

* getres cmd (#2671)

* ui new coord system examples and macros (#2672)

* Detector RX ext app (#2673)

* Jammer improvements (#2674)

* Add new jammer modes
Overview:
This PR enhances the PortaPack Jammer app by introducing eight new signal types, ported from my Flipper Zero RF Jammer app (https://github.com/RocketGod-git/flipper-zero-rf-jammer). These modes expand the app's capability to disrupt a wide range of RF communication protocols, from analog radios to modern digital systems. The implementation preserves the original app structure, resolves namespace conflicts, and ensures compatibility with the Mayhem firmware.

New Modes

The following modes have been added to the options_type in ui_jammer.hpp, with corresponding signal generation in proc_jammer.cpp:

Noise: Generates broadband white noise to interfere with analog and digital signals (e.g., Wi-Fi, Bluetooth, key fobs). Highly effective for overwhelming receivers across a frequency range.

Sine: Produces a continuous, unmodulated sine wave to jam narrowband receivers, ideal for analog FM/AM radios or telemetry systems.

Square: Emits a harmonic-rich square wave, disrupting digital protocols (e.g., OOK, ASK) and systems sensitive to sharp transitions, such as remote keyless entry.

Sawtooth (Experimental): Generates a sawtooth wave with a unique harmonic profile, useful for testing interference against PWM-based or niche analog systems.

Triangle (Experimental): Creates a triangle wave with minimal harmonics, suitable for exploratory jamming of narrowband systems or receiver linearity testing.

Chirp: Outputs a rapid frequency-sweeping chirp signal, effective against frequency-hopping and spread-spectrum systems (e.g., some Wi-Fi, Bluetooth, or military radios).

Gauss: Generates Gaussian noise to mimic natural interference, targeting digital systems like GPS or data links by degrading signal-to-noise ratios.

Brute (Experimental): Transmits a constant maximum-amplitude signal to saturate simple receiver front-ends, useful for brute-force jamming of basic analog devices.

* Fixed and made brutal.

This PR introduces user-focused improvements to the Jammer App in the HackRF PortaPack Mayhem Firmware, enhancing usability and flexibility. The changes address specific user requirements for a more intuitive default configuration, continuous waveform support, and dynamic setting adjustments during transmission.

* jammer fix (#2676)

* jammer fix

* Adding_BPF_selection_to_the_NOAA_APT_signal (#2675)

* Adding_BPF_selection_to_the_NOAA_APT_signal
* comments, spell mistake .

* trivial apps folder movement (#2677)

* Clean_LCD_beat_in_NOAA_Rx_App (#2678)

* Added ability to enter custom tone values in Morse app (#2679)

* Added ability to enter custom tone values in Morse app

Added the ability to type in a custom tone value in the morse TX app (issue#2582)

*Click on the tone field to open a keyboard for entering in a desired value between 100hz - 9999hz.

*Maintains original step value of 20 when scrolling the rotary wheel.

* Update ui_morse.cpp

Replaced std::to_string with to_string_dec_uint

* Moved tone_input_buffer init to in-class

* removed some std stuff only used here (#2681)

* 80mhz jammer range (#2682)

Looks great 😎🤘🚀

* Radio app improvements (#2680)

* Rename looking glass preset for clarity and consistency (#2686)

* Gfx widget and Radio (#2685)

* widgetize
* gfx and Radio improvement
* format + handle not wfm visual states
* wf or gf

* Externalize widget (#2688)

* Add all jammer modes in hopper app (#2691)

Added all modes that jammer app supports in hopper app.

* Super secret dont look (#2690)

* Add new jammer modes

Overview

This PR enhances the PortaPack Jammer app by introducing eight new signal types, ported from my Flipper Zero RF Jammer app (https://github.com/RocketGod-git/flipper-zero-rf-jammer). These modes expand the app's capability to disrupt a wide range of RF communication protocols, from analog radios to modern digital systems. The implementation preserves the original app structure, resolves namespace conflicts, and ensures compatibility with the Mayhem firmware.

New Modes

The following modes have been added to the options_type in ui_jammer.hpp, with corresponding signal generation in proc_jammer.cpp:

Noise: Generates broadband white noise to interfere with analog and digital signals (e.g., Wi-Fi, Bluetooth, key fobs). Highly effective for overwhelming receivers across a frequency range.

Sine: Produces a continuous, unmodulated sine wave to jam narrowband receivers, ideal for analog FM/AM radios or telemetry systems.

Square: Emits a harmonic-rich square wave, disrupting digital protocols (e.g., OOK, ASK) and systems sensitive to sharp transitions, such as remote keyless entry.

Sawtooth (Experimental): Generates a sawtooth wave with a unique harmonic profile, useful for testing interference against PWM-based or niche analog systems.

Triangle (Experimental): Creates a triangle wave with minimal harmonics, suitable for exploratory jamming of narrowband systems or receiver linearity testing.

Chirp: Outputs a rapid frequency-sweeping chirp signal, effective against frequency-hopping and spread-spectrum systems (e.g., some Wi-Fi, Bluetooth, or military radios).

Gauss: Generates Gaussian noise to mimic natural interference, targeting digital systems like GPS or data links by degrading signal-to-noise ratios.

Brute (Experimental): Transmits a constant maximum-amplitude signal to saturate simple receiver front-ends, useful for brute-force jamming of basic analog devices.

* Super secret

* You gotta get (Get) that (That) dirt off your shoulder

* Add 1ms hop option to hopper app + 0ms (freeze UI) (#2692)

* add dark theme (#2695)

* Made the Dino Game (#2697)

* Add vendor name in bluetooth rx app (#2696)

* add macaddress db, add vendor name in bluetooth rx app

* show "missing macaddress.db" instead of unknown if db not found

* bluetooth rx list with colors based on mac vendor

* bug fix

* Modified Text Editor to handle long presses. (#2698)

* Improved FPV_ANALOG.txt FREQMAN file (#2700)

* Improved FPV_ANALOG.txt FREQMAN file
Removed unused or super rare analog fpv bands: U, O, H, D
Added 1.2GHz -1.3GHz channels sometimes used for long range analog fpv


* Corrected and updated the labels to be more consistent.

Corrected the labels to be more consistent.

I also somehow messed up the correct channels because 1.3GHz FPV is not fully standardized, but these channels seem to be the most common.
It should be all correct now.

Example transmitters using those channels:
https://greenchip.com.ua/0-0-1615-2.html
https://flymod.net/en/item/walksnail_vtx_9ch
https://pl.aliexpress.com/item/1005006505365351.html

* Filemanager: go to parent directory keep track of the right selected … (#2702)

* Filemanager: go to parent directory keep track of the right selected item and page number
* review: avoid unnecessary copies in get_extension

* ADSB database update (tools, db) (#2701)

* enhance make_airlines_db tool
* enhance make_icao24_db tool
* update airlinescode (.txt, .db), aircraftdatabase/icao24 (.csv, .db)

* Made the Space Invaders game. Argh matey! (#2709)

* Made the Space Invaders game. Argh matey!
* Format code, sigh.

* Made the Blackjack game (#2712)

* Made the Blackjack game
* Format Blackjack main.cpp
* Changed spade to diamond for dark mode visibility
* Format code

* Update app icons for Space Invaders and Dino Game (#2713)

* BLE Rx Improvements (#2710)

* Work to allow for unique beacon parsing functions.
* Fix Copyright
* Update firmware/application/apps/ble_rx_app.cpp
* Update firmware/baseband/proc_btlerx.cpp
* PR suggestions.
* Fix String.
* Refactor

* Added 3d printed cases for the H4M (#2715)

* Battleship (#2720)

* Made the Battleship 2P 2PP game - FSK is wip
* Using POCSAG

* Adding simple FSK Rx Processor. Can be used with New Apps. (#2716)

* Work to allow for unique beacon parsing functions.

* Fixing pull.

* Changes.

* Formatting.

* Fix Copyright

* Update firmware/application/apps/ble_rx_app.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update firmware/baseband/proc_btlerx.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* PR suggestions.

* Fix String.

* FSK Rx Improvements. Works for my custom protocol.

* Fix buffer size.

* Refactor

* Formatting.

* Formatting.

* Fixing compiling, and BLE Rx UI/Performance.

* More improvements.

* Fixing stuck state.

* More stuck parsing fix.

* Combining PR changes.

* Improvements from previous PR.

* Fix dbM calculation relative to device RSSI.

* Formatting.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: TJ <tj.baginski@cognosos.com>

* Add blue bar to subghzd+weather (#2724)

* AIS map improv (#2725)

* AIS map improv

* format code mismatch with vc

* Add radio settings, new app icon, and other UI improvements (#2732)

* update submodule (#2734)

Co-authored-by: gullradriel <gullradriel@no-mail.com>

* update version (#2735)

Co-authored-by: gullradriel <gullradriel@no-mail.com>

---------

Co-authored-by: Erwin Ried <1091420+eried@users.noreply.github.com>
Co-authored-by: hackrfstuff <leszczyleszczy@icloud.com>
Co-authored-by: sommermorgentraum <24917424+zxkmm@users.noreply.github.com>
Co-authored-by: Totoo <ttotoo@gmail.com>
Co-authored-by: Mark Thompson <129641948+NotherNgineer@users.noreply.github.com>
Co-authored-by: E.T. <tamas@eisenberger.hu>
Co-authored-by: OpenSourceSDRLab <opensourcesdr@outlook.com>
Co-authored-by: quantum-x <simon.yorkston@gmail.com>
Co-authored-by: gullradriel <gullradriel@no-mail.com>
Co-authored-by: Lucas C. Villa Real <lucasvr@users.noreply.github.com>
Co-authored-by: Davide Rovelli <103165301+daviderud@users.noreply.github.com>
Co-authored-by: Gaurav Chaturvedi <oddtazz@users.noreply.github.com>
Co-authored-by: RocketGod <57732082+RocketGod-git@users.noreply.github.com>
Co-authored-by: Lerold <github@lerold.slmail.me>
Co-authored-by: Brumi-2021 <86470699+Brumi-2021@users.noreply.github.com>
Co-authored-by: dark-juju <2839275+dark-juju@users.noreply.github.com>
Co-authored-by: Benjamin Møller <37707273+LupusE@users.noreply.github.com>
Co-authored-by: Oleg Belousov <belousov.oleg@gmail.com>
Co-authored-by: haruk <104354987+exe-noisy@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Luca <61653175+iu2frl@users.noreply.github.com>
Co-authored-by: Richard <richard.toy@gmail.com>
Co-authored-by: zxkmm <zxkmm@hotmail.com>
Co-authored-by: horrordash <45861453+horrordash@users.noreply.github.com>
Co-authored-by: Alien <2142224+mythic-alien@users.noreply.github.com>
Co-authored-by: Petro Danylevskyi <petro@danylevskyi.com>
Co-authored-by: Tommaso Ventafridda <33782489+tomventa@users.noreply.github.com>
Co-authored-by: Netro <146584182+iNetro@users.noreply.github.com>
Co-authored-by: plomek <86431917+plomek@users.noreply.github.com>
Co-authored-by: TJ <tj.baginski@cognosos.com>
2025-07-11 16:33:21 +02:00

6410 lines
75 KiB
C++

/*
* Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc.
* Copyright (C) 2016 Furrtek
*
* This file is part of PortaPack.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
* Boston, MA 02110-1301, USA.
*/
// This file was generated by make_bitmap.py
#ifndef __BITMAP_HPP__
#define __BITMAP_HPP__
#include "ui.hpp"
namespace ui {
static constexpr uint8_t bitmap_arrow_left_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x20,
0x00,
0x30,
0x00,
0x38,
0x00,
0xFC,
0x7F,
0xFE,
0x7F,
0xFC,
0x7F,
0x38,
0x00,
0x30,
0x00,
0x20,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_arrow_left{
{16, 16},
bitmap_arrow_left_data};
static constexpr uint8_t bitmap_arrow_right_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x04,
0x00,
0x0C,
0x00,
0x1C,
0xFE,
0x3F,
0xFE,
0x7F,
0xFE,
0x3F,
0x00,
0x1C,
0x00,
0x0C,
0x00,
0x04,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_arrow_right{
{16, 16},
bitmap_arrow_right_data};
static constexpr uint8_t bitmap_bulb_ignore_data[] = {
0x00,
0x3C,
0x00,
0x00,
0xC3,
0x00,
0x80,
0x00,
0x01,
0x40,
0x3C,
0x02,
0x20,
0x7E,
0x04,
0x20,
0xE7,
0x04,
0x10,
0xC3,
0x08,
0x10,
0xE3,
0x08,
0x10,
0x70,
0x08,
0x10,
0x38,
0x08,
0x10,
0x18,
0x08,
0x20,
0x18,
0x04,
0x20,
0x00,
0x04,
0x40,
0x18,
0x02,
0x80,
0x18,
0x01,
0x00,
0xC3,
0x00,
0x00,
0xFF,
0x00,
0x00,
0xBD,
0x00,
0x00,
0xC3,
0x00,
0x00,
0xBD,
0x00,
0x00,
0xC3,
0x00,
0x00,
0xBD,
0x00,
0x00,
0x42,
0x00,
0x00,
0x3C,
0x00,
};
static constexpr Bitmap bitmap_bulb_ignore{
{24, 24},
bitmap_bulb_ignore_data};
static constexpr uint8_t bitmap_bulb_off_data[] = {
0x00,
0x3C,
0x00,
0x00,
0xC3,
0x00,
0x80,
0x00,
0x01,
0x40,
0x00,
0x02,
0x20,
0x00,
0x04,
0x20,
0x00,
0x04,
0x10,
0x00,
0x08,
0x10,
0x42,
0x08,
0x10,
0x42,
0x08,
0x10,
0x24,
0x08,
0x10,
0x24,
0x08,
0x20,
0x24,
0x04,
0x20,
0x2C,
0x04,
0x40,
0x34,
0x02,
0x80,
0x3C,
0x01,
0x00,
0xFF,
0x00,
0x00,
0xE3,
0x00,
0x00,
0xBD,
0x00,
0x00,
0xC3,
0x00,
0x00,
0xBD,
0x00,
0x00,
0xC3,
0x00,
0x00,
0xBD,
0x00,
0x00,
0x42,
0x00,
0x00,
0x3C,
0x00,
};
static constexpr Bitmap bitmap_bulb_off{
{24, 24},
bitmap_bulb_off_data};
static constexpr uint8_t bitmap_bulb_on_data[] = {
0x04,
0x3C,
0x20,
0x08,
0xFF,
0x10,
0x90,
0xFF,
0x09,
0xC0,
0xFF,
0x03,
0xE0,
0xFF,
0x07,
0xE0,
0xFF,
0x07,
0xF0,
0xE7,
0x0F,
0xF0,
0xBD,
0x0F,
0xF7,
0xBD,
0xEF,
0xF0,
0xDB,
0x0F,
0xF0,
0xDB,
0x0F,
0xE0,
0xDB,
0x07,
0xE0,
0xCB,
0x07,
0xC0,
0xD3,
0x03,
0x90,
0xCB,
0x09,
0x08,
0xFD,
0x10,
0x04,
0xE3,
0x20,
0x00,
0xBD,
0x00,
0x00,
0xC3,
0x00,
0x00,
0xBD,
0x00,
0x00,
0xC3,
0x00,
0x00,
0xBD,
0x00,
0x00,
0x42,
0x00,
0x00,
0x3C,
0x00,
};
static constexpr Bitmap bitmap_bulb_on{
{24, 24},
bitmap_bulb_on_data};
static constexpr uint8_t bitmap_icon_add_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0xF8,
0x1F,
0xF8,
0x1F,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_add{
{16, 16},
bitmap_icon_add_data};
static constexpr uint8_t bitmap_icon_adsb_data[] = {
0x80,
0x01,
0xC0,
0x03,
0xC0,
0x03,
0xC0,
0x03,
0xC0,
0x03,
0xE0,
0x07,
0xF8,
0x1F,
0xFE,
0x7F,
0xFF,
0xFF,
0xFF,
0xFF,
0xC0,
0x03,
0xC0,
0x03,
0xC0,
0x03,
0xE0,
0x07,
0xF0,
0x0F,
0xF8,
0x1F,
};
static constexpr Bitmap bitmap_icon_adsb{
{16, 16},
bitmap_icon_adsb_data};
static constexpr uint8_t bitmap_icon_ais_data[] = {
0x00,
0x01,
0x80,
0x01,
0xC0,
0x01,
0xC0,
0x0D,
0xE0,
0x3D,
0xF0,
0x3D,
0xF8,
0x7D,
0xFC,
0x7D,
0xFC,
0x7D,
0xFE,
0x7D,
0xFF,
0x7D,
0x00,
0x00,
0xF8,
0x7F,
0xF8,
0x3F,
0xF0,
0x0F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_ais{
{16, 16},
bitmap_icon_ais_data};
static constexpr uint8_t bitmap_icon_aprs_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xF0,
0x0F,
0x4C,
0x32,
0xFE,
0x7F,
0x25,
0xA4,
0x25,
0xA4,
0xFF,
0xFF,
0x25,
0xA4,
0x25,
0xA4,
0xFE,
0x7F,
0x4C,
0x32,
0xF0,
0x0F,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_aprs{
{16, 16},
bitmap_icon_aprs_data};
static constexpr uint8_t bitmap_icon_back_data[] = {
0x00,
0x00,
0x30,
0x00,
0x38,
0x00,
0x1C,
0x00,
0x0E,
0x00,
0xFF,
0x3F,
0xFF,
0x7F,
0x0E,
0xE0,
0x1C,
0xC0,
0x38,
0xC0,
0x30,
0xC0,
0x00,
0xE0,
0x00,
0x7F,
0x00,
0x3F,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_back{
{16, 16},
bitmap_icon_back_data};
static constexpr uint8_t bitmap_icon_batt_icon_data[] = {
0xC0,
0x03,
0xC0,
0x03,
0xF0,
0x0F,
0x10,
0x08,
0x10,
0x08,
0x10,
0x08,
0x10,
0x08,
0x10,
0x08,
0xF0,
0x0F,
0xF0,
0x0F,
0xF0,
0x0F,
0xF0,
0x0F,
0xF0,
0x0F,
0xF0,
0x0F,
0xF0,
0x0F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_batt_icon{
{16, 16},
bitmap_icon_batt_icon_data};
static constexpr uint8_t bitmap_icon_batt_text_data[] = {
0x00,
0x00,
0x30,
0x06,
0x48,
0x09,
0x48,
0x09,
0x70,
0x0E,
0x40,
0x08,
0x30,
0x06,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x48,
0x00,
0x20,
0x00,
0x10,
0x00,
0x48,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_batt_text{
{16, 16},
bitmap_icon_batt_text_data};
static constexpr uint8_t bitmap_icon_bht_data[] = {
0x00,
0x00,
0xE0,
0x07,
0xF8,
0x08,
0x9C,
0x07,
0x0C,
0x00,
0x8E,
0x0A,
0x46,
0x12,
0x26,
0x22,
0x06,
0x02,
0x06,
0x00,
0x06,
0x00,
0x06,
0x00,
0x06,
0x00,
0x06,
0x00,
0x06,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_bht{
{16, 16},
bitmap_icon_bht_data};
static constexpr uint8_t bitmap_icon_biast_off_data[] = {
0x00,
0x00,
0xFE,
0x7F,
0x00,
0x04,
0x00,
0x08,
0x00,
0x10,
0x00,
0x08,
0x88,
0x04,
0x50,
0x08,
0x20,
0x10,
0x50,
0x08,
0x88,
0x04,
0x00,
0x08,
0x00,
0x10,
0x00,
0x08,
0x00,
0x04,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_biast_off{
{16, 16},
bitmap_icon_biast_off_data};
static constexpr uint8_t bitmap_icon_biast_on_data[] = {
0x00,
0x00,
0xFE,
0x7F,
0x00,
0x04,
0x00,
0x08,
0x20,
0x10,
0x20,
0x08,
0x30,
0x04,
0x30,
0x08,
0xF8,
0x10,
0x60,
0x08,
0x60,
0x04,
0x20,
0x08,
0x20,
0x10,
0x00,
0x08,
0x00,
0x04,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_biast_on{
{16, 16},
bitmap_icon_biast_on_data};
static constexpr uint8_t bitmap_icon_breakout_data[] = {
0x00,
0x00,
0x7F,
0x7F,
0x7F,
0x7F,
0x7F,
0x7F,
0x00,
0x00,
0xF7,
0xF7,
0xF7,
0xF7,
0xF7,
0xF7,
0x00,
0x00,
0x7F,
0x7F,
0x7F,
0x7F,
0x7F,
0x7F,
0x00,
0x00,
0xF7,
0xF7,
0xF7,
0xF7,
0xF7,
0xF7,
};
static constexpr Bitmap bitmap_icon_breakout{
{16, 16},
bitmap_icon_breakout_data};
static constexpr uint8_t bitmap_icon_brightness_data[] = {
0x00,
0x00,
0x80,
0x01,
0x84,
0x21,
0x08,
0x10,
0xC0,
0x03,
0xE0,
0x07,
0xF0,
0x0F,
0xF6,
0x6F,
0xF6,
0x6F,
0xF0,
0x0F,
0xE0,
0x07,
0xC0,
0x03,
0x08,
0x10,
0x84,
0x21,
0x80,
0x01,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_brightness{
{16, 16},
bitmap_icon_brightness_data};
static constexpr uint8_t bitmap_icon_btle_data[] = {
0xE0,
0x03,
0x30,
0x07,
0x38,
0x0E,
0x3C,
0x1C,
0x24,
0x19,
0x0C,
0x13,
0x1C,
0x19,
0x3C,
0x1C,
0x3C,
0x1C,
0x1C,
0x19,
0x0C,
0x13,
0x24,
0x19,
0x3C,
0x1C,
0x38,
0x0E,
0x30,
0x07,
0xE0,
0x03,
};
static constexpr Bitmap bitmap_icon_btle{
{16, 16},
bitmap_icon_btle_data};
static constexpr uint8_t bitmap_icon_burger_data[] = {
0x00,
0x00,
0xE0,
0x07,
0xF8,
0x1F,
0xFC,
0x3F,
0xFE,
0x7F,
0xFF,
0xFF,
0xFF,
0xFF,
0x00,
0x00,
0x55,
0x55,
0xAA,
0xAA,
0x55,
0x55,
0x00,
0x00,
0xFF,
0xFF,
0xFF,
0xFF,
0xFE,
0x7F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_burger{
{16, 16},
bitmap_icon_burger_data};
static constexpr uint8_t bitmap_icon_camera_data[] = {
0x00,
0x00,
0x00,
0x00,
0xE0,
0x07,
0xF0,
0x0F,
0x3E,
0x7C,
0xDE,
0x7B,
0xEE,
0x77,
0xEE,
0x77,
0xEE,
0x77,
0xEE,
0x77,
0xDE,
0x7B,
0x3E,
0x7C,
0xFE,
0x7F,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_camera{
{16, 16},
bitmap_icon_camera_data};
static constexpr uint8_t bitmap_icon_capture_data[] = {
0xE0,
0x07,
0xF8,
0x1F,
0xFC,
0x3F,
0xFE,
0x7F,
0xFE,
0x7F,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFE,
0x7F,
0xFE,
0x7F,
0xFC,
0x3F,
0xF8,
0x1F,
0xE0,
0x07,
};
static constexpr Bitmap bitmap_icon_capture{
{16, 16},
bitmap_icon_capture_data};
static constexpr uint8_t bitmap_icon_clean_data[] = {
0x00,
0x00,
0xC0,
0x01,
0x20,
0x02,
0xFC,
0x1F,
0x00,
0x00,
0x08,
0x08,
0xE8,
0x08,
0xA8,
0x09,
0xA8,
0x0B,
0x28,
0x0A,
0x28,
0x0A,
0x28,
0x0A,
0xE8,
0x0B,
0x08,
0x08,
0xF0,
0x07,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_clean{
{16, 16},
bitmap_icon_clean_data};
static constexpr uint8_t bitmap_icon_clk_ext_data[] = {
0x00,
0x00,
0xDC,
0x54,
0x54,
0x54,
0x54,
0x76,
0x00,
0x10,
0x38,
0x7C,
0x10,
0x10,
0x10,
0x00,
};
static constexpr Bitmap bitmap_icon_clk_ext{
{8, 16},
bitmap_icon_clk_ext_data};
static constexpr uint8_t bitmap_icon_clk_int_data[] = {
0x00,
0x00,
0xDC,
0x54,
0x54,
0x54,
0x54,
0x76,
0x00,
0x44,
0x6C,
0x38,
0x38,
0x6C,
0x44,
0x00,
};
static constexpr Bitmap bitmap_icon_clk_int{
{8, 16},
bitmap_icon_clk_int_data};
static constexpr uint8_t bitmap_icon_codetx_data[] = {
0x00,
0x00,
0xF0,
0x07,
0x0C,
0x18,
0x03,
0x60,
0xE0,
0x03,
0x18,
0x0C,
0x04,
0x10,
0xC0,
0x01,
0x20,
0x02,
0x00,
0x00,
0x00,
0x00,
0xBB,
0x6D,
0x2A,
0x49,
0x2A,
0x49,
0x3A,
0x49,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_codetx{
{16, 16},
bitmap_icon_codetx_data};
static constexpr uint8_t bitmap_icon_controls_data[] = {
0x8C,
0x31,
0x5A,
0x6B,
0xDE,
0x7B,
0x8C,
0x31,
0x00,
0x00,
0x8C,
0x31,
0x5A,
0x7B,
0xDE,
0x7B,
0x8C,
0x31,
0x00,
0x00,
0x8C,
0x31,
0xDA,
0x7B,
0xDE,
0x7B,
0x8C,
0x31,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_controls{
{16, 16},
bitmap_icon_controls_data};
static constexpr uint8_t bitmap_icon_copy_data[] = {
0x00,
0x00,
0xFC,
0x00,
0x84,
0x01,
0xC4,
0x0F,
0x74,
0x18,
0x44,
0x38,
0x44,
0x78,
0x74,
0x40,
0x44,
0x44,
0x44,
0x44,
0x74,
0x5F,
0x44,
0x44,
0x44,
0x44,
0x7C,
0x40,
0xC0,
0x7F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_copy{
{16, 16},
bitmap_icon_copy_data};
static constexpr uint8_t bitmap_icon_cut_data[] = {
0x00,
0x00,
0x10,
0x10,
0x30,
0x18,
0x20,
0x08,
0x60,
0x0C,
0x40,
0x04,
0xC0,
0x06,
0x80,
0x00,
0x80,
0x01,
0x80,
0x01,
0xC0,
0x03,
0x78,
0x1E,
0x44,
0x22,
0x44,
0x22,
0x44,
0x22,
0x38,
0x1C,
};
static constexpr Bitmap bitmap_icon_cut{
{16, 16},
bitmap_icon_cut_data};
static constexpr uint8_t bitmap_icon_cwgen_data[] = {
0x18,
0x00,
0x24,
0x00,
0x42,
0x00,
0x42,
0x00,
0x42,
0x00,
0x42,
0x00,
0x81,
0x00,
0xAB,
0x6A,
0x80,
0x40,
0x00,
0x21,
0x00,
0x21,
0x00,
0x21,
0x00,
0x21,
0x00,
0x12,
0x00,
0x0C,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_cwgen{
{16, 16},
bitmap_icon_cwgen_data};
static constexpr uint8_t bitmap_icon_debug_data[] = {
0xFE,
0x03,
0x02,
0x07,
0x2A,
0x0D,
0x52,
0x0F,
0x2A,
0x08,
0x52,
0x09,
0xAA,
0x0A,
0x52,
0x09,
0xAA,
0x0A,
0x52,
0x01,
0xAA,
0x12,
0x02,
0x08,
0x02,
0xFC,
0x02,
0x08,
0xFE,
0x13,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_debug{
{16, 16},
bitmap_icon_debug_data};
static constexpr uint8_t bitmap_icon_delete_data[] = {
0x00,
0x00,
0x00,
0x00,
0x0C,
0x30,
0x1C,
0x38,
0x38,
0x1C,
0x70,
0x0E,
0xE0,
0x07,
0xC0,
0x03,
0xC0,
0x03,
0xE0,
0x07,
0x70,
0x0E,
0x38,
0x1C,
0x1C,
0x38,
0x0C,
0x30,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_delete{
{16, 16},
bitmap_icon_delete_data};
static constexpr uint8_t bitmap_icon_dir_data[] = {
0x00,
0x00,
0x3E,
0x00,
0x41,
0x00,
0xC1,
0x7F,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xAF,
0xEA,
0x57,
0xF5,
0xEF,
0xEF,
0xF7,
0xF7,
0xEE,
0x6F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_dir{
{16, 16},
bitmap_icon_dir_data};
static constexpr uint8_t bitmap_icon_dmr_data[] = {
0x00,
0x00,
0xFE,
0x1F,
0xFE,
0x3F,
0x0E,
0x78,
0x0E,
0x70,
0x0E,
0x70,
0x0E,
0x70,
0x0E,
0x78,
0xFE,
0x3F,
0xFE,
0x1F,
0x8E,
0x07,
0x0E,
0x0F,
0x0E,
0x1E,
0x0E,
0x3C,
0x0E,
0x78,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_dmr{
{16, 16},
bitmap_icon_dmr_data};
static constexpr uint8_t bitmap_icon_doom_data[] = {
0x00,
0x00,
0x00,
0x00,
0x77,
0xDF,
0xFF,
0xDF,
0xD9,
0xFD,
0x89,
0xF8,
0x89,
0xE8,
0x89,
0xA8,
0x89,
0xA8,
0xD9,
0xAD,
0x79,
0xAF,
0x2D,
0xAA,
0x07,
0xA8,
0x03,
0xA0,
0x01,
0x80,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_doom{
{16, 16},
bitmap_icon_doom_data};
static constexpr uint8_t bitmap_icon_downconvert_data[] = {
0x00,
0x00,
0x77,
0x77,
0x51,
0x51,
0x33,
0x53,
0x51,
0x51,
0x51,
0x77,
0x00,
0x80,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0xF8,
0x1F,
0xF0,
0x0F,
0xE0,
0x07,
0xC0,
0x03,
0x80,
0x01,
};
static constexpr Bitmap bitmap_icon_downconvert{
{16, 16},
bitmap_icon_downconvert_data};
static constexpr uint8_t bitmap_icon_ert_data[] = {
0x00,
0x00,
0x00,
0x0F,
0x80,
0x7F,
0xC0,
0x0F,
0xFC,
0x0F,
0xC2,
0x0F,
0x82,
0x7F,
0x01,
0x0F,
0x01,
0x00,
0x21,
0x05,
0x53,
0x09,
0x56,
0x09,
0x50,
0x05,
0x50,
0x05,
0x20,
0xAD,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_ert{
{16, 16},
bitmap_icon_ert_data};
static constexpr uint8_t bitmap_icon_file_data[] = {
0xFC,
0x03,
0x04,
0x06,
0x04,
0x0E,
0x04,
0x1E,
0x04,
0x3E,
0x04,
0x20,
0x04,
0x20,
0x04,
0x20,
0x04,
0x20,
0x04,
0x20,
0x04,
0x20,
0x04,
0x20,
0x04,
0x20,
0x04,
0x20,
0x04,
0x20,
0xFC,
0x3F,
};
static constexpr Bitmap bitmap_icon_file{
{16, 16},
bitmap_icon_file_data};
static constexpr uint8_t bitmap_icon_file_image_data[] = {
0x00,
0x00,
0xFF,
0xFF,
0x01,
0x80,
0x01,
0x80,
0x89,
0x80,
0xC1,
0x81,
0xE1,
0xA3,
0xB1,
0xB3,
0x89,
0xDC,
0x07,
0x8C,
0x01,
0x90,
0x01,
0x80,
0xAB,
0x82,
0xFF,
0xD5,
0xFF,
0xFF,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_file_image{
{16, 16},
bitmap_icon_file_image_data};
static constexpr uint8_t bitmap_icon_file_iq_data[] = {
0xFC,
0x03,
0x04,
0x06,
0x04,
0x0E,
0x04,
0x1E,
0x04,
0x3E,
0x04,
0x20,
0x04,
0x20,
0x04,
0x21,
0x44,
0x25,
0x54,
0x25,
0xF4,
0x2F,
0xA4,
0x2A,
0x84,
0x22,
0x04,
0x22,
0x04,
0x20,
0xFC,
0x3F,
};
static constexpr Bitmap bitmap_icon_file_iq{
{16, 16},
bitmap_icon_file_iq_data};
static constexpr uint8_t bitmap_icon_file_text_data[] = {
0xFC,
0x03,
0x04,
0x06,
0x04,
0x0E,
0x04,
0x1E,
0xF4,
0x3E,
0x04,
0x20,
0xF4,
0x2F,
0x04,
0x20,
0xF4,
0x2F,
0x04,
0x20,
0xF4,
0x2F,
0x04,
0x20,
0xF4,
0x2F,
0x04,
0x20,
0x04,
0x20,
0xFC,
0x3F,
};
static constexpr Bitmap bitmap_icon_file_text{
{16, 16},
bitmap_icon_file_text_data};
static constexpr uint8_t bitmap_icon_file_wav_data[] = {
0xFC,
0x03,
0x04,
0x06,
0x04,
0x0E,
0x04,
0x1E,
0x04,
0x3E,
0x84,
0x20,
0xC4,
0x22,
0xF4,
0x20,
0xF4,
0x2E,
0xF4,
0x20,
0xC4,
0x22,
0x84,
0x24,
0x04,
0x28,
0x04,
0x20,
0x04,
0x20,
0xFC,
0x3F,
};
static constexpr Bitmap bitmap_icon_file_wav{
{16, 16},
bitmap_icon_file_wav_data};
static constexpr uint8_t bitmap_icon_font_viewer_data[] = {
0x00,
0x00,
0x00,
0x00,
0x10,
0x0C,
0x38,
0x0C,
0x38,
0x0C,
0x6C,
0x0C,
0x6C,
0x0C,
0xC6,
0x7C,
0xFE,
0xFC,
0xFF,
0x8D,
0x83,
0x8D,
0x83,
0xFD,
0x01,
0x7D,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_font_viewer{
{16, 16},
bitmap_icon_font_viewer_data};
static constexpr uint8_t bitmap_icon_fox_data[] = {
0x18,
0x18,
0x28,
0x14,
0x68,
0x16,
0x68,
0x16,
0xC8,
0x13,
0x88,
0x11,
0x04,
0x20,
0x24,
0x24,
0x22,
0x44,
0x01,
0x80,
0x06,
0x60,
0x98,
0x19,
0x20,
0x04,
0x40,
0x02,
0x80,
0x01,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_fox{
{16, 16},
bitmap_icon_fox_data};
static constexpr uint8_t bitmap_icon_freqman_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x7E,
0x7E,
0x81,
0x81,
0xBD,
0xBD,
0x81,
0x81,
0xBD,
0xBD,
0x81,
0x81,
0xBD,
0x9D,
0x81,
0x81,
0xBD,
0xE1,
0x81,
0x61,
0x7E,
0x3E,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_freqman{
{16, 16},
bitmap_icon_freqman_data};
static constexpr uint8_t bitmap_icon_games_data[] = {
0x00,
0x01,
0x00,
0x01,
0x80,
0x00,
0x80,
0x00,
0x80,
0x00,
0xFE,
0x7F,
0xFF,
0xFF,
0xFF,
0xFF,
0xE7,
0xD7,
0xE7,
0x93,
0x81,
0xFF,
0x81,
0x93,
0xE7,
0xD7,
0xE7,
0xFF,
0x3F,
0xF9,
0xFE,
0x7F,
};
static constexpr Bitmap bitmap_icon_games{
{16, 16},
bitmap_icon_games_data};
static constexpr uint8_t bitmap_icon_gps_sim_data[] = {
0xC0,
0x07,
0xE0,
0x0F,
0x70,
0x1F,
0x78,
0x3E,
0x78,
0x3C,
0x78,
0x38,
0x78,
0x30,
0x78,
0x38,
0x78,
0x3C,
0x70,
0x1E,
0x70,
0x1F,
0xE0,
0x0F,
0xC0,
0x07,
0x80,
0x03,
0x20,
0x09,
0x50,
0x14,
};
static constexpr Bitmap bitmap_icon_gps_sim{
{16, 16},
bitmap_icon_gps_sim_data};
static constexpr uint8_t bitmap_icon_hackrf_data[] = {
0xF0,
0x0F,
0x10,
0x08,
0x50,
0x0A,
0x10,
0x08,
0x10,
0x08,
0x10,
0x08,
0xF8,
0x1F,
0xF8,
0x1F,
0xF8,
0x1F,
0xF8,
0x1F,
0xF8,
0x1F,
0xF8,
0x1F,
0xF8,
0x1F,
0xF0,
0x0F,
0x80,
0x01,
0x80,
0x01,
};
static constexpr Bitmap bitmap_icon_hackrf{
{16, 16},
bitmap_icon_hackrf_data};
static constexpr uint8_t bitmap_icon_hide_data[] = {
0x00,
0x00,
0x00,
0x40,
0x00,
0x20,
0xE0,
0x17,
0x18,
0x18,
0xC4,
0x27,
0x62,
0x42,
0x21,
0x85,
0xA1,
0x84,
0x62,
0x46,
0xA4,
0x23,
0x18,
0x18,
0xE8,
0x07,
0x04,
0x00,
0x02,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_hide{
{16, 16},
bitmap_icon_hide_data};
static constexpr uint8_t bitmap_icon_jammer_data[] = {
0xE0,
0x07,
0xF8,
0x1F,
0x1C,
0x38,
0x0E,
0x78,
0x06,
0x7C,
0x03,
0xCE,
0x03,
0xC7,
0x83,
0xC3,
0xC3,
0xC1,
0xE3,
0xC0,
0x73,
0xC0,
0x3E,
0x60,
0x1E,
0x70,
0x1C,
0x38,
0xF8,
0x1F,
0xE0,
0x07,
};
static constexpr Bitmap bitmap_icon_jammer{
{16, 16},
bitmap_icon_jammer_data};
static constexpr uint8_t bitmap_icon_lcr_data[] = {
0x0C,
0x00,
0xFF,
0x7F,
0x01,
0x80,
0xC1,
0x9B,
0xFF,
0x7F,
0x0C,
0x00,
0xFF,
0x7F,
0x01,
0x80,
0xC1,
0x9D,
0xFF,
0x7F,
0x0C,
0x00,
0x0C,
0x00,
0x0C,
0x00,
0x0C,
0x00,
0x0C,
0x00,
0x0C,
0x00,
};
static constexpr Bitmap bitmap_icon_lcr{
{16, 16},
bitmap_icon_lcr_data};
static constexpr uint8_t bitmap_icon_lge_data[] = {
0x00,
0x00,
0x80,
0x00,
0xA4,
0x12,
0xA8,
0x0A,
0xD0,
0x05,
0xEC,
0x1B,
0xF0,
0x07,
0xFE,
0xFF,
0xF0,
0x07,
0xEC,
0x1B,
0xD0,
0x05,
0xA8,
0x0A,
0xA4,
0x12,
0x80,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_lge{
{16, 16},
bitmap_icon_lge_data};
static constexpr uint8_t bitmap_icon_load_data[] = {
0x00,
0x01,
0x80,
0x03,
0x40,
0x05,
0x00,
0x01,
0x0E,
0x01,
0x11,
0x01,
0x7F,
0x1D,
0x01,
0x20,
0xF9,
0xFF,
0xF9,
0xFF,
0xFD,
0x7F,
0xFD,
0x7F,
0xFF,
0x3F,
0xFF,
0x3F,
0xFF,
0x1F,
0xFF,
0x1F,
};
static constexpr Bitmap bitmap_icon_load{
{16, 16},
bitmap_icon_load_data};
static constexpr uint8_t bitmap_icon_looking_data[] = {
0xF8,
0x01,
0xFC,
0x03,
0x0E,
0x07,
0x07,
0x0E,
0xF3,
0x0C,
0x9F,
0x0F,
0x9F,
0x0F,
0xF3,
0x0C,
0x07,
0x0E,
0x0E,
0x07,
0xFC,
0x1F,
0xF8,
0x3D,
0x00,
0x7C,
0x00,
0xF8,
0x00,
0xF0,
0x00,
0x60,
};
static constexpr Bitmap bitmap_icon_looking{
{16, 16},
bitmap_icon_looking_data};
static constexpr uint8_t bitmap_icon_lora_data[] = {
0xC0,
0x03,
0x30,
0x0C,
0x00,
0x00,
0xC0,
0x03,
0x00,
0x00,
0xC0,
0x03,
0x60,
0x06,
0x60,
0x06,
0x60,
0x06,
0x60,
0x06,
0xC0,
0x03,
0x00,
0x00,
0xC0,
0x03,
0x00,
0x00,
0x30,
0x0C,
0xC0,
0x03,
};
static constexpr Bitmap bitmap_icon_lora{
{16, 16},
bitmap_icon_lora_data};
static constexpr uint8_t bitmap_icon_memory_data[] = {
0x54,
0x15,
0x54,
0x15,
0xFF,
0x7F,
0xFC,
0x1F,
0xFF,
0x7F,
0xCC,
0x19,
0xAF,
0x7A,
0x6C,
0x1B,
0xEF,
0x7B,
0xEC,
0x1B,
0xFF,
0x7F,
0xFC,
0x1F,
0xFF,
0x7F,
0x54,
0x15,
0x54,
0x15,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_memory{
{16, 16},
bitmap_icon_memory_data};
static constexpr uint8_t bitmap_icon_microphone_data[] = {
0xC0,
0x03,
0xE0,
0x07,
0xE0,
0x07,
0xE0,
0x07,
0xE8,
0x17,
0xE8,
0x17,
0xE8,
0x17,
0xE8,
0x17,
0xE8,
0x17,
0xC8,
0x13,
0x18,
0x18,
0xF0,
0x0F,
0xC0,
0x03,
0x80,
0x01,
0x80,
0x01,
0xE0,
0x07,
};
static constexpr Bitmap bitmap_icon_microphone{
{16, 16},
bitmap_icon_microphone_data};
static constexpr uint8_t bitmap_icon_modem_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xF8,
0x1F,
0x04,
0x20,
0x02,
0x40,
0xFF,
0xFF,
0xFF,
0xFF,
0xAB,
0xDF,
0xAB,
0xDF,
0xFF,
0xFF,
0xFF,
0xFF,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_modem{
{16, 16},
bitmap_icon_modem_data};
static constexpr uint8_t bitmap_icon_morse_data[] = {
0x00,
0x00,
0xFE,
0x7F,
0xFF,
0xFF,
0xBB,
0xD0,
0xFF,
0xFF,
0xFF,
0xFF,
0x0B,
0xE1,
0xFF,
0xFF,
0xFF,
0xFF,
0xEB,
0xD0,
0xFF,
0xFF,
0xFE,
0x7F,
0x70,
0x00,
0x30,
0x00,
0x10,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_morse{
{16, 16},
bitmap_icon_morse_data};
static constexpr uint8_t bitmap_icon_new_category_data[] = {
0x00,
0x18,
0x3E,
0x18,
0x41,
0x7E,
0xC1,
0x7E,
0xFF,
0x18,
0xFF,
0xDB,
0xFF,
0xC3,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xAF,
0xEA,
0x57,
0xF5,
0xEF,
0xEF,
0xF7,
0xF7,
0xEE,
0x6F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_new_category{
{16, 16},
bitmap_icon_new_category_data};
static constexpr uint8_t bitmap_icon_new_dir_data[] = {
0x00,
0x00,
0x1E,
0x00,
0x21,
0x00,
0xE1,
0x7F,
0x01,
0xC0,
0x81,
0x81,
0x81,
0x81,
0x81,
0x81,
0xF1,
0x8F,
0xF1,
0x8F,
0x81,
0x81,
0x81,
0x81,
0x81,
0x81,
0x03,
0xC0,
0xFE,
0x7F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_new_dir{
{16, 16},
bitmap_icon_new_dir_data};
static constexpr uint8_t bitmap_icon_new_file_data[] = {
0x00,
0x00,
0xFC,
0x07,
0x04,
0x0C,
0x04,
0x1C,
0x04,
0x3C,
0x84,
0x21,
0x84,
0x21,
0x84,
0x21,
0xF4,
0x2F,
0xF4,
0x2F,
0x84,
0x21,
0x84,
0x21,
0x84,
0x21,
0x04,
0x20,
0xFC,
0x3F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_new_file{
{16, 16},
bitmap_icon_new_file_data};
static constexpr uint8_t bitmap_icon_noaa_data[] = {
0x1C,
0x80,
0x3C,
0x40,
0x78,
0x18,
0xF0,
0x20,
0xE0,
0x26,
0x00,
0x0F,
0x80,
0x0F,
0xC0,
0x07,
0xE1,
0x1B,
0xC5,
0x39,
0x95,
0x78,
0x35,
0xF0,
0x09,
0xE0,
0x72,
0xC0,
0x04,
0x00,
0x78,
0x00,
};
static constexpr Bitmap bitmap_icon_noaa{
{16, 16},
bitmap_icon_noaa_data};
static constexpr uint8_t bitmap_icon_notepad_data[] = {
0x0C,
0x00,
0x1E,
0x00,
0x2F,
0x00,
0x47,
0x00,
0xE2,
0x00,
0xD4,
0x01,
0xB8,
0x03,
0x70,
0x07,
0xE0,
0x0E,
0xC0,
0x1D,
0x80,
0x3B,
0x00,
0x4F,
0x00,
0x46,
0x00,
0x84,
0x00,
0xD8,
0x00,
0xE0,
};
static constexpr Bitmap bitmap_icon_notepad{
{16, 16},
bitmap_icon_notepad_data};
static constexpr uint8_t bitmap_icon_nrf_data[] = {
0x00,
0x01,
0x00,
0x01,
0x00,
0x01,
0x00,
0x01,
0x00,
0x01,
0x00,
0x01,
0x00,
0x01,
0xF8,
0x3F,
0xFC,
0x7F,
0xFC,
0x7F,
0xDC,
0x7F,
0x8C,
0x6B,
0xDC,
0x7F,
0xFC,
0x7F,
0xFC,
0x7F,
0xF8,
0x3F,
};
static constexpr Bitmap bitmap_icon_nrf{
{16, 16},
bitmap_icon_nrf_data};
static constexpr uint8_t bitmap_icon_nuoptix_data[] = {
0x80,
0x01,
0x80,
0x01,
0x40,
0x02,
0x40,
0x1A,
0x40,
0x1A,
0x20,
0x0C,
0x20,
0x0F,
0x20,
0x1E,
0x10,
0x0E,
0x10,
0x0B,
0x10,
0x0B,
0xF8,
0x1F,
0xF8,
0x1F,
0xF8,
0x1F,
0xFC,
0x3F,
0xFC,
0x3F,
};
static constexpr Bitmap bitmap_icon_nuoptix{
{16, 16},
bitmap_icon_nuoptix_data};
static constexpr uint8_t bitmap_icon_options_datetime_data[] = {
0x0C,
0x06,
0xFF,
0x1F,
0x49,
0x12,
0x49,
0x12,
0xFF,
0x1F,
0x49,
0x00,
0x49,
0x1C,
0x7F,
0x63,
0x09,
0x49,
0x89,
0x88,
0xBE,
0xB8,
0x80,
0x80,
0x00,
0x41,
0x00,
0x63,
0x00,
0x1C,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_options_datetime{
{16, 16},
bitmap_icon_options_datetime_data};
static constexpr uint8_t bitmap_icon_options_radio_data[] = {
0x00,
0x00,
0x00,
0x00,
0x04,
0x20,
0x12,
0x48,
0x8A,
0x51,
0xCA,
0x53,
0xCA,
0x53,
0x8A,
0x51,
0x12,
0x48,
0x84,
0x21,
0xC0,
0x03,
0x40,
0x02,
0x60,
0x06,
0x20,
0x04,
0x30,
0x0C,
0xF0,
0x0F,
};
static constexpr Bitmap bitmap_icon_options_radio{
{16, 16},
bitmap_icon_options_radio_data};
static constexpr uint8_t bitmap_icon_options_touch_data[] = {
0xC7,
0xF1,
0x97,
0xF4,
0x27,
0xF2,
0x8F,
0xF8,
0x5F,
0xFD,
0x47,
0xFD,
0x53,
0xC1,
0x4B,
0x9F,
0x43,
0xB5,
0x6F,
0xA0,
0x2F,
0xA0,
0x20,
0x20,
0x60,
0x20,
0x40,
0x10,
0xC0,
0x1F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_options_touch{
{16, 16},
bitmap_icon_options_touch_data};
static constexpr uint8_t bitmap_icon_options_ui_data[] = {
0xFF,
0x1F,
0xFF,
0x13,
0xFF,
0x1F,
0x01,
0x10,
0x01,
0x10,
0x01,
0x10,
0x01,
0x04,
0x01,
0x0C,
0x01,
0x1C,
0x01,
0x3C,
0xFF,
0x7D,
0x00,
0xFC,
0x00,
0x34,
0x00,
0x20,
0x00,
0x60,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_options_ui{
{16, 16},
bitmap_icon_options_ui_data};
static constexpr uint8_t bitmap_icon_paint_data[] = {
0xFE,
0x3F,
0xFF,
0x3F,
0xFF,
0xFF,
0xFF,
0xBF,
0xFE,
0xBF,
0x00,
0x80,
0x80,
0xFF,
0x80,
0x00,
0x80,
0x00,
0xC0,
0x01,
0xC0,
0x01,
0xC0,
0x01,
0xC0,
0x01,
0xC0,
0x01,
0xC0,
0x01,
0xC0,
0x01,
};
static constexpr Bitmap bitmap_icon_paint{
{16, 16},
bitmap_icon_paint_data};
static constexpr uint8_t bitmap_icon_paste_data[] = {
0x00,
0x00,
0xE0,
0x00,
0x18,
0x03,
0xE4,
0x04,
0x04,
0x04,
0x04,
0x04,
0x84,
0x3F,
0x84,
0x20,
0x84,
0x2E,
0x84,
0x20,
0x84,
0x2E,
0x84,
0x20,
0x84,
0x2E,
0xF8,
0x20,
0x80,
0x3F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_paste{
{16, 16},
bitmap_icon_paste_data};
static constexpr uint8_t bitmap_icon_peripherals_data[] = {
0x54,
0x01,
0x54,
0x01,
0xFF,
0x07,
0x7C,
0x01,
0xBF,
0x07,
0xDC,
0x18,
0x6F,
0x10,
0x2C,
0x21,
0xAF,
0x20,
0x34,
0x20,
0x54,
0x10,
0xC0,
0x38,
0x00,
0x77,
0x00,
0xE0,
0x00,
0xC0,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_peripherals{
{16, 16},
bitmap_icon_peripherals_data};
static constexpr uint8_t bitmap_icon_peripherals_details_data[] = {
0x54,
0x01,
0x54,
0x01,
0xFF,
0x07,
0xFC,
0x01,
0x3F,
0x00,
0xBC,
0x3F,
0xBF,
0x60,
0xBC,
0xEE,
0xBF,
0x80,
0x94,
0xBE,
0x94,
0x80,
0x80,
0xBE,
0x80,
0x80,
0x80,
0xBE,
0x80,
0x80,
0x80,
0xFF,
};
static constexpr Bitmap bitmap_icon_peripherals_details{
{16, 16},
bitmap_icon_peripherals_details_data};
static constexpr uint8_t bitmap_icon_pocsag_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xFC,
0x3F,
0xFE,
0x7F,
0x02,
0x40,
0xBA,
0x45,
0x02,
0x40,
0xFE,
0x7F,
0xFE,
0x7F,
0x92,
0x7C,
0x92,
0x7C,
0xFC,
0x3F,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_pocsag{
{16, 16},
bitmap_icon_pocsag_data};
static constexpr uint8_t bitmap_icon_previous_data[] = {
0x00,
0x00,
0xC0,
0x00,
0xE0,
0x00,
0x70,
0x00,
0x38,
0x00,
0x1C,
0x00,
0x0E,
0x00,
0xFF,
0xFF,
0xFF,
0xFF,
0x0E,
0x00,
0x1C,
0x00,
0x38,
0x00,
0x70,
0x00,
0xE0,
0x00,
0xC0,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_previous{
{16, 16},
bitmap_icon_previous_data};
static constexpr uint8_t bitmap_icon_protoview_data[] = {
0x00,
0x00,
0x00,
0x00,
0xF8,
0x87,
0x08,
0x84,
0x0F,
0xFC,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xF3,
0xE0,
0x92,
0xA0,
0x9E,
0xBF,
0x00,
0x00,
0x00,
0x00,
0xFC,
0xF3,
0x04,
0x12,
0x07,
0x1E,
};
static constexpr Bitmap bitmap_icon_protoview{
{16, 16},
bitmap_icon_protoview_data};
static constexpr uint8_t bitmap_icon_qr_code_data[] = {
0x00,
0x00,
0xFE,
0x7E,
0xC6,
0x62,
0xFA,
0x5A,
0xFA,
0x5A,
0xDA,
0x5A,
0xFE,
0x7E,
0x7E,
0x7E,
0x00,
0x00,
0xFE,
0x46,
0xC2,
0x06,
0xFA,
0x18,
0xFA,
0x18,
0xC6,
0x60,
0xFE,
0x62,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_qr_code{
{16, 16},
bitmap_icon_qr_code_data};
static constexpr uint8_t bitmap_icon_rds_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x3C,
0x3C,
0x7E,
0x7E,
0x67,
0xE7,
0x83,
0xC3,
0xC7,
0xE1,
0xFD,
0xBC,
0x42,
0x42,
0x3C,
0x3C,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_rds{
{16, 16},
bitmap_icon_rds_data};
static constexpr uint8_t bitmap_icon_receivers_data[] = {
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x98,
0x19,
0xB0,
0x0D,
0xE0,
0x07,
0xC0,
0x03,
0x83,
0xC1,
0x03,
0xC0,
0xFF,
0xFF,
0xFF,
0xFF,
};
static constexpr Bitmap bitmap_icon_receivers{
{16, 16},
bitmap_icon_receivers_data};
static constexpr uint8_t bitmap_icon_remote_data[] = {
0x20,
0x00,
0x20,
0x00,
0x20,
0x00,
0x20,
0x00,
0xE0,
0x07,
0xF0,
0x0F,
0x30,
0x0C,
0x30,
0x0C,
0xF0,
0x0F,
0xF0,
0x0F,
0x70,
0x0D,
0xB0,
0x0E,
0x70,
0x0D,
0xB0,
0x0E,
0xF0,
0x0F,
0xE0,
0x07,
};
static constexpr Bitmap bitmap_icon_remote{
{16, 16},
bitmap_icon_remote_data};
static constexpr uint8_t bitmap_icon_rename_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x0E,
0x00,
0x04,
0xFF,
0xF5,
0x01,
0x84,
0xC9,
0x84,
0x55,
0x85,
0xDD,
0x84,
0x55,
0x85,
0xD5,
0x84,
0x01,
0x84,
0xFF,
0xF5,
0x00,
0x04,
0x00,
0x0E,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_rename{
{16, 16},
bitmap_icon_rename_data};
static constexpr uint8_t bitmap_icon_rename_numeric_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x0E,
0x00,
0x04,
0xFF,
0xF5,
0x01,
0x84,
0xC9,
0x85,
0x0D,
0x85,
0xC9,
0x85,
0x49,
0x84,
0xDD,
0x85,
0x01,
0x84,
0xFF,
0xF5,
0x00,
0x04,
0x00,
0x0E,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_rename_numeric{
{16, 16},
bitmap_icon_rename_numeric_data};
static constexpr uint8_t bitmap_icon_replay_data[] = {
0x00,
0x00,
0x00,
0x00,
0x0C,
0x00,
0x3C,
0x00,
0xFC,
0x00,
0xFC,
0x03,
0xFC,
0x0F,
0xFC,
0x3F,
0xFC,
0x3F,
0xFC,
0x0F,
0xFC,
0x03,
0xFC,
0x00,
0x3C,
0x00,
0x0C,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_replay{
{16, 16},
bitmap_icon_replay_data};
static constexpr uint8_t bitmap_icon_save_data[] = {
0xFC,
0x07,
0x0A,
0x0A,
0x0A,
0x12,
0xF2,
0x21,
0x02,
0x20,
0x02,
0x20,
0x02,
0x20,
0x02,
0x20,
0xFA,
0x27,
0xFA,
0x2F,
0x0A,
0x28,
0xFA,
0x2F,
0x0A,
0x28,
0xFA,
0x2F,
0xFC,
0x1F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_save{
{16, 16},
bitmap_icon_save_data};
static constexpr uint8_t bitmap_icon_scanner_data[] = {
0x03,
0x00,
0x00,
0x00,
0x03,
0x00,
0x00,
0x00,
0x0F,
0x00,
0x00,
0x00,
0x03,
0x01,
0x80,
0x01,
0xC3,
0x00,
0xE0,
0xFF,
0xEF,
0xFF,
0xC0,
0x00,
0x83,
0x01,
0x00,
0x01,
0x03,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_scanner{
{16, 16},
bitmap_icon_scanner_data};
static constexpr uint8_t bitmap_icon_script_data[] = {
0xFC,
0x07,
0xFA,
0x0F,
0x19,
0x1A,
0xF9,
0x1F,
0x1E,
0x1D,
0xF8,
0x1F,
0x98,
0x1F,
0xF8,
0x1F,
0xF8,
0x1F,
0x08,
0x14,
0xF8,
0x1F,
0x48,
0x1E,
0xF8,
0xFF,
0x78,
0x80,
0x30,
0x40,
0xE0,
0x3F,
};
static constexpr Bitmap bitmap_icon_script{
{16, 16},
bitmap_icon_script_data};
static constexpr uint8_t bitmap_icon_sd_data[] = {
0x00,
0x00,
0x00,
0x00,
0xC0,
0x1F,
0xE0,
0x1F,
0xF0,
0x1F,
0xF8,
0x1F,
0x98,
0x18,
0xE8,
0x16,
0xC8,
0x16,
0x98,
0x16,
0xB8,
0x16,
0xC8,
0x18,
0xF8,
0x1F,
0xF8,
0x1F,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_sd{
{16, 16},
bitmap_icon_sd_data};
static constexpr uint8_t bitmap_icon_sdcard_data[] = {
0xF0,
0x3F,
0x58,
0x35,
0x5C,
0x35,
0xFC,
0x3F,
0xFC,
0x3F,
0xFC,
0x3F,
0xFC,
0x3F,
0xFC,
0x3F,
0xFC,
0x3F,
0xAC,
0x3A,
0x5C,
0x35,
0xAC,
0x3A,
0x5C,
0x35,
0xAC,
0x3A,
0x5C,
0x35,
0xAC,
0x3A,
};
static constexpr Bitmap bitmap_icon_sdcard{
{16, 16},
bitmap_icon_sdcard_data};
static constexpr uint8_t bitmap_icon_search_data[] = {
0xF8,
0x01,
0xFC,
0x03,
0x0E,
0x07,
0x07,
0x0E,
0x03,
0x0C,
0x0B,
0x0C,
0x0B,
0x0C,
0x13,
0x0C,
0x07,
0x0E,
0x0E,
0x07,
0xFC,
0x1F,
0xF8,
0x3D,
0x00,
0x7C,
0x00,
0xF8,
0x00,
0xF0,
0x00,
0x60,
};
static constexpr Bitmap bitmap_icon_search{
{16, 16},
bitmap_icon_search_data};
static constexpr uint8_t bitmap_icon_setup_data[] = {
0xC0,
0x01,
0xC0,
0x01,
0xE4,
0x13,
0xFE,
0x3F,
0xFF,
0x7F,
0x3E,
0x3E,
0x1C,
0x1C,
0x1C,
0x1C,
0x1C,
0x1C,
0x3E,
0x3E,
0xFF,
0x7F,
0xFE,
0x3F,
0xE4,
0x13,
0xC0,
0x01,
0xC0,
0x01,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_setup{
{16, 16},
bitmap_icon_setup_data};
static constexpr uint8_t bitmap_icon_shift_data[] = {
0x00,
0x00,
0x80,
0x00,
0xC0,
0x01,
0xE0,
0x03,
0xF0,
0x07,
0xF8,
0x0F,
0xFC,
0x1F,
0xE0,
0x03,
0xE0,
0x03,
0xE0,
0x03,
0x20,
0x02,
0xE0,
0x03,
0x20,
0x02,
0xE0,
0x03,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_shift{
{16, 16},
bitmap_icon_shift_data};
static constexpr uint8_t bitmap_icon_sleep_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x04,
0x00,
0x08,
0x00,
0x18,
0x00,
0x18,
0x00,
0x38,
0x00,
0x3C,
0x00,
0x3C,
0x00,
0x3E,
0x84,
0x1F,
0xF8,
0x1F,
0xF0,
0x0F,
0xC0,
0x03,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_sleep{
{16, 16},
bitmap_icon_sleep_data};
static constexpr uint8_t bitmap_icon_snake_data[] = {
0x00,
0x00,
0x00,
0x00,
0xE0,
0x09,
0x70,
0xC7,
0xFC,
0xC9,
0x06,
0x00,
0x06,
0x00,
0x0C,
0x00,
0xF0,
0x01,
0x00,
0x3E,
0x00,
0x40,
0xFC,
0x40,
0x02,
0x3F,
0x02,
0x00,
0x7C,
0x80,
0x80,
0x7F,
};
static constexpr Bitmap bitmap_icon_snake{
{16, 16},
bitmap_icon_snake_data};
static constexpr uint8_t bitmap_icon_sonde_data[] = {
0x80,
0x03,
0xE0,
0x0F,
0xE0,
0x0F,
0xF0,
0x1F,
0xF0,
0x1F,
0xF0,
0x1F,
0xE0,
0x0F,
0xE0,
0x0F,
0x00,
0x00,
0x20,
0x09,
0x00,
0x00,
0x40,
0x05,
0x00,
0x00,
0xC0,
0x07,
0xC0,
0x07,
0xC0,
0x07,
};
static constexpr Bitmap bitmap_icon_sonde{
{16, 16},
bitmap_icon_sonde_data};
static constexpr uint8_t bitmap_icon_soundboard_data[] = {
0xF0,
0x0F,
0x1C,
0x18,
0x17,
0x38,
0x15,
0x78,
0x15,
0xF8,
0x15,
0x82,
0x15,
0x8B,
0xD5,
0x83,
0xD5,
0xBB,
0xD5,
0x83,
0x15,
0x8B,
0x15,
0x92,
0x15,
0xA0,
0x17,
0x80,
0x1C,
0x80,
0xF0,
0xFF,
};
static constexpr Bitmap bitmap_icon_soundboard{
{16, 16},
bitmap_icon_soundboard_data};
static constexpr uint8_t bitmap_icon_speaker_data[] = {
0x00,
0x00,
0x40,
0x10,
0x60,
0x20,
0x70,
0x44,
0x78,
0x48,
0x7F,
0x91,
0x7F,
0x92,
0x7F,
0x92,
0x7F,
0x92,
0x7F,
0x92,
0x7F,
0x92,
0x7F,
0x91,
0x78,
0x48,
0x70,
0x44,
0x60,
0x20,
0x40,
0x10,
};
static constexpr Bitmap bitmap_icon_speaker{
{16, 16},
bitmap_icon_speaker_data};
static constexpr uint8_t bitmap_icon_speaker_and_headphones_data[] = {
0x40,
0x10,
0x60,
0x20,
0x70,
0x44,
0x7C,
0x48,
0x7C,
0x91,
0x7C,
0x92,
0x70,
0x92,
0x60,
0x92,
0x40,
0x92,
0x00,
0x92,
0x30,
0x91,
0x48,
0x48,
0x84,
0x44,
0x84,
0x20,
0x86,
0x11,
0x86,
0x01,
};
static constexpr Bitmap bitmap_icon_speaker_and_headphones{
{16, 16},
bitmap_icon_speaker_and_headphones_data};
static constexpr uint8_t bitmap_icon_speaker_and_headphones_mute_data[] = {
0x40,
0x00,
0x60,
0x44,
0x70,
0x6C,
0x7C,
0x38,
0x7C,
0x10,
0x7C,
0x38,
0x70,
0x6C,
0x60,
0x44,
0x40,
0x00,
0x00,
0x44,
0x30,
0x6C,
0x48,
0x38,
0x84,
0x10,
0x84,
0x38,
0x86,
0x6D,
0x86,
0x45,
};
static constexpr Bitmap bitmap_icon_speaker_and_headphones_mute{
{16, 16},
bitmap_icon_speaker_and_headphones_mute_data};
static constexpr uint8_t bitmap_icon_speaker_mute_data[] = {
0x00,
0x00,
0x40,
0x00,
0x60,
0x00,
0x70,
0x00,
0x78,
0x00,
0x7F,
0x22,
0x7F,
0x36,
0x7F,
0x1C,
0x7F,
0x08,
0x7F,
0x1C,
0x7F,
0x36,
0x7F,
0x22,
0x78,
0x00,
0x70,
0x00,
0x60,
0x00,
0x40,
0x00,
};
static constexpr Bitmap bitmap_icon_speaker_mute{
{16, 16},
bitmap_icon_speaker_mute_data};
static constexpr uint8_t bitmap_icon_sstv_data[] = {
0x00,
0x00,
0x00,
0x00,
0xFE,
0x7F,
0x03,
0xC0,
0x53,
0xD5,
0xAB,
0xCA,
0x53,
0xD5,
0xAB,
0xCA,
0x53,
0xD5,
0xAB,
0xCA,
0x53,
0xD5,
0x03,
0xC0,
0xFF,
0xFF,
0xFB,
0xD7,
0xFE,
0x7F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_sstv{
{16, 16},
bitmap_icon_sstv_data};
static constexpr uint8_t bitmap_icon_stealth_data[] = {
0x00,
0x00,
0xC0,
0x03,
0xE0,
0x07,
0xE0,
0x07,
0xF8,
0x1F,
0x00,
0x00,
0xE0,
0x07,
0x60,
0x06,
0x00,
0x00,
0xF0,
0x0F,
0xF0,
0x0F,
0xF8,
0x1E,
0xFC,
0x3F,
0xFC,
0x3E,
0xFC,
0x3F,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_stealth{
{16, 16},
bitmap_icon_stealth_data};
static constexpr uint8_t bitmap_icon_temperature_data[] = {
0x00,
0x01,
0x80,
0x01,
0x80,
0x05,
0xC0,
0x0D,
0x40,
0x0D,
0xD0,
0x1F,
0x70,
0x15,
0xB0,
0x1A,
0x58,
0x35,
0xB8,
0x3A,
0x58,
0x34,
0x28,
0x28,
0x18,
0x30,
0x30,
0x18,
0x60,
0x0C,
0xC0,
0x07,
};
static constexpr Bitmap bitmap_icon_temperature{
{16, 16},
bitmap_icon_temperature_data};
static constexpr uint8_t bitmap_icon_tetra_data[] = {
0xE0,
0x0F,
0x18,
0x38,
0xE4,
0x67,
0x7E,
0xCE,
0xC7,
0xCC,
0x00,
0x00,
0xFF,
0x4F,
0xBA,
0xB2,
0x9A,
0xEE,
0xBA,
0xB2,
0x00,
0x00,
0x3B,
0xE3,
0x73,
0x7E,
0xC6,
0x27,
0x1C,
0x18,
0xF0,
0x07,
};
static constexpr Bitmap bitmap_icon_tetra{
{16, 16},
bitmap_icon_tetra_data};
static constexpr uint8_t bitmap_icon_tetris_data[] = {
0xF8,
0xFF,
0x88,
0x88,
0x88,
0x88,
0x88,
0x88,
0xF8,
0xFF,
0x80,
0x08,
0x80,
0x08,
0x9F,
0x08,
0x91,
0x0F,
0x11,
0x00,
0x11,
0x00,
0xFF,
0xF1,
0x11,
0x91,
0x11,
0x91,
0x11,
0x91,
0xFF,
0xF1,
};
static constexpr Bitmap bitmap_icon_tetris{
{16, 16},
bitmap_icon_tetris_data};
static constexpr uint8_t bitmap_icon_thermometer_data[] = {
0xC0,
0x00,
0x20,
0x01,
0x10,
0x02,
0x10,
0x3A,
0x10,
0x02,
0x10,
0x1A,
0x10,
0x02,
0xD0,
0x3A,
0xD0,
0x02,
0xD0,
0x1A,
0xD0,
0x02,
0xE8,
0x05,
0xE8,
0x05,
0xC8,
0x04,
0x10,
0x02,
0xE0,
0x01,
};
static constexpr Bitmap bitmap_icon_thermometer{
{16, 16},
bitmap_icon_thermometer_data};
static constexpr uint8_t bitmap_icon_tools_antenna_data[] = {
0x38,
0x3E,
0x10,
0x22,
0x10,
0x26,
0x10,
0x22,
0x10,
0x2E,
0x10,
0x22,
0x10,
0x26,
0x10,
0x22,
0x38,
0x2E,
0x38,
0x22,
0x38,
0x26,
0x38,
0x22,
0x38,
0x2E,
0x38,
0x22,
0x38,
0x3E,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_tools_antenna{
{16, 16},
bitmap_icon_tools_antenna_data};
static constexpr uint8_t bitmap_icon_tools_wipesd_data[] = {
0xF0,
0x3F,
0x58,
0x35,
0x5C,
0x35,
0xFC,
0x3F,
0xFC,
0x3F,
0xFC,
0x3F,
0x3C,
0x1C,
0xBC,
0xC9,
0xBC,
0xE3,
0x2C,
0x77,
0x5C,
0x3E,
0xAC,
0x1C,
0x5C,
0x3E,
0x2C,
0x77,
0x9C,
0xE3,
0xAC,
0xC1,
};
static constexpr Bitmap bitmap_icon_tools_wipesd{
{16, 16},
bitmap_icon_tools_wipesd_data};
static constexpr uint8_t bitmap_icon_touchtunes_data[] = {
0xE0,
0x07,
0x30,
0x0C,
0x7C,
0x3E,
0xC4,
0x23,
0x26,
0x64,
0x12,
0x48,
0x0F,
0xF3,
0x09,
0x95,
0x0F,
0xF1,
0x09,
0x91,
0x0F,
0xF1,
0xC9,
0x91,
0xE9,
0x91,
0xC9,
0x90,
0x0F,
0xF0,
0xFF,
0xFF,
};
static constexpr Bitmap bitmap_icon_touchtunes{
{16, 16},
bitmap_icon_touchtunes_data};
static constexpr uint8_t bitmap_icon_tpms_data[] = {
0xC0,
0x03,
0xF0,
0x0F,
0x18,
0x18,
0xEC,
0x37,
0x36,
0x6D,
0x3A,
0x59,
0x4B,
0xD5,
0x8B,
0xD3,
0xCB,
0xD1,
0xAB,
0xD2,
0x9A,
0x5C,
0xB6,
0x6C,
0xEC,
0x37,
0x18,
0x18,
0xF0,
0x0F,
0xC0,
0x03,
};
static constexpr Bitmap bitmap_icon_tpms{
{16, 16},
bitmap_icon_tpms_data};
static constexpr uint8_t bitmap_icon_tranceivers_data[] = {
0x80,
0x01,
0xC0,
0x03,
0xE0,
0x07,
0xB0,
0x0D,
0x98,
0x19,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x98,
0x19,
0xB0,
0x0D,
0xE0,
0x07,
0xC0,
0x03,
0x83,
0xC1,
0x03,
0xC0,
0xFF,
0xFF,
0xFF,
0xFF,
};
static constexpr Bitmap bitmap_icon_tranceivers{
{16, 16},
bitmap_icon_tranceivers_data};
static constexpr uint8_t bitmap_icon_transmit_data[] = {
0x80,
0x01,
0xC0,
0x03,
0xE0,
0x07,
0xB0,
0x0D,
0x98,
0x19,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x83,
0xC1,
0x03,
0xC0,
0xFF,
0xFF,
0xFF,
0xFF,
};
static constexpr Bitmap bitmap_icon_transmit{
{16, 16},
bitmap_icon_transmit_data};
static constexpr uint8_t bitmap_icon_trash_data[] = {
0x00,
0x00,
0xC0,
0x01,
0x20,
0x02,
0xFC,
0x1F,
0x00,
0x00,
0xA8,
0x0A,
0xA8,
0x0A,
0xA8,
0x0A,
0xA8,
0x0A,
0xA8,
0x0A,
0xA8,
0x0A,
0xA8,
0x0A,
0xA8,
0x0A,
0x08,
0x08,
0xF0,
0x07,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_trash{
{16, 16},
bitmap_icon_trash_data};
static constexpr uint8_t bitmap_icon_trim_data[] = {
0x10,
0x10,
0x30,
0x12,
0x50,
0x15,
0x50,
0x15,
0x50,
0x15,
0x52,
0x95,
0x56,
0xD5,
0x5F,
0xF5,
0x56,
0xD5,
0x52,
0x95,
0x50,
0x15,
0x50,
0x15,
0x50,
0x15,
0x90,
0x18,
0x10,
0x10,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_trim{
{16, 16},
bitmap_icon_trim_data};
static constexpr uint8_t bitmap_icon_tune_fork_data[] = {
0x00,
0x00,
0x00,
0x00,
0x22,
0x44,
0x21,
0x84,
0x2D,
0xB4,
0x25,
0xA4,
0x25,
0xA4,
0x2D,
0xB4,
0x61,
0x86,
0xC2,
0x43,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_tune_fork{
{16, 16},
bitmap_icon_tune_fork_data};
static constexpr uint8_t bitmap_icon_upconvert_data[] = {
0x80,
0x01,
0xC0,
0x03,
0xE0,
0x07,
0xF0,
0x0F,
0xF8,
0x1F,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x00,
0x00,
0x77,
0x77,
0x51,
0x51,
0x33,
0x53,
0x51,
0x51,
0x51,
0x77,
0x00,
0x80,
};
static constexpr Bitmap bitmap_icon_upconvert{
{16, 16},
bitmap_icon_upconvert_data};
static constexpr uint8_t bitmap_icon_utilities_data[] = {
0x30,
0x24,
0x78,
0x66,
0x78,
0x66,
0x78,
0x7E,
0x78,
0x3C,
0x78,
0x18,
0x78,
0x18,
0x30,
0x3C,
0x30,
0x3C,
0x30,
0x3C,
0x30,
0x3C,
0x30,
0x3C,
0x30,
0x3C,
0x30,
0x3C,
0x30,
0x18,
0x00,
0x00,
};
static constexpr Bitmap bitmap_icon_utilities{
{16, 16},
bitmap_icon_utilities_data};
static constexpr uint8_t bitmap_key_data[] = {
0xC0,
0x03,
0xE0,
0x07,
0x30,
0x0C,
0x30,
0x0C,
0x30,
0x0C,
0x30,
0x0C,
0xE0,
0x07,
0xC0,
0x03,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x01,
0x80,
0x07,
0x80,
0x03,
0x80,
0x07,
0x80,
0x01,
};
static constexpr Bitmap bitmap_key{
{16, 16},
bitmap_key_data};
static constexpr uint8_t bitmap_more_data[] = {
0x10,
0x10,
0x10,
0x10,
0x54,
0x38,
0x10,
0x00,
};
static constexpr Bitmap bitmap_more{
{8, 8},
bitmap_more_data};
static constexpr uint8_t bitmap_play_data[] = {
0x00,
0x00,
0x00,
0x00,
0x0C,
0x00,
0x3C,
0x00,
0xFC,
0x00,
0xFC,
0x03,
0xFC,
0x0F,
0xFC,
0x3F,
0xFC,
0x3F,
0xFC,
0x0F,
0xFC,
0x03,
0xFC,
0x00,
0x3C,
0x00,
0x0C,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_play{
{16, 16},
bitmap_play_data};
static constexpr uint8_t bitmap_record_data[] = {
0xC0,
0x07,
0xF0,
0x1F,
0xF8,
0x3F,
0xFC,
0x7F,
0xFC,
0x7F,
0x66,
0xCC,
0x56,
0xF7,
0x66,
0xF6,
0x56,
0xF7,
0x56,
0xCC,
0xFC,
0x7F,
0xFC,
0x7F,
0xF8,
0x3F,
0xF0,
0x1F,
0xC0,
0x07,
0x00,
0x00,
};
static constexpr Bitmap bitmap_record{
{16, 16},
bitmap_record_data};
static constexpr uint8_t bitmap_rssipwm_data[] = {
0x00,
0x00,
0x00,
0x8F,
0xE7,
0x7D,
0x51,
0x10,
0x10,
0x51,
0x10,
0x10,
0x8F,
0xE3,
0x10,
0x09,
0x04,
0x11,
0x11,
0x04,
0x11,
0xD1,
0xF3,
0x7C,
0x00,
0x00,
0x00,
0x3F,
0x1E,
0x1E,
0x21,
0x12,
0x12,
0x21,
0x12,
0x12,
0x21,
0x12,
0x12,
0x21,
0x12,
0x12,
0x21,
0x12,
0x12,
0xE1,
0xF3,
0x73,
};
static constexpr Bitmap bitmap_rssipwm{
{24, 16},
bitmap_rssipwm_data};
static constexpr uint8_t bitmap_sd_card_error_data[] = {
0x00,
0x00,
0x00,
0x00,
0xC0,
0x1F,
0xE0,
0x1F,
0xF0,
0x1F,
0xF8,
0x1F,
0xC8,
0x13,
0x98,
0x19,
0x38,
0x1C,
0x78,
0x1E,
0x38,
0x1C,
0x98,
0x19,
0xC8,
0x13,
0xF8,
0x1F,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_sd_card_error{
{16, 16},
bitmap_sd_card_error_data};
static constexpr uint8_t bitmap_sd_card_ok_data[] = {
0x00,
0x00,
0x00,
0x00,
0xC0,
0x1F,
0xE0,
0x1F,
0xF0,
0x1F,
0xF8,
0x1F,
0xF8,
0x1F,
0x98,
0x15,
0x68,
0x19,
0x68,
0x1D,
0x68,
0x19,
0x98,
0x15,
0xF8,
0x1F,
0xF8,
0x1F,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_sd_card_ok{
{16, 16},
bitmap_sd_card_ok_data};
static constexpr uint8_t bitmap_sd_card_unknown_data[] = {
0x00,
0x00,
0x00,
0x00,
0xC0,
0x1F,
0xE0,
0x1F,
0xF0,
0x1F,
0xF8,
0x1F,
0x38,
0x1C,
0x98,
0x19,
0xF8,
0x1C,
0x78,
0x1E,
0x78,
0x1E,
0xF8,
0x1F,
0x78,
0x1E,
0xF8,
0x1F,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_sd_card_unknown{
{16, 16},
bitmap_sd_card_unknown_data};
static constexpr uint8_t bitmap_sig_cw_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xFE,
0xFF,
0xFF,
0x7F,
0xFE,
0xFF,
0xFF,
0x7F,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_sig_cw{
{32, 32},
bitmap_sig_cw_data};
static constexpr uint8_t bitmap_sig_noise_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x20,
0x00,
0x00,
0x00,
0x30,
0x80,
0x00,
0x00,
0x30,
0x80,
0x01,
0x40,
0x30,
0xC0,
0x03,
0xC0,
0x30,
0xC0,
0x03,
0xC0,
0x39,
0xC0,
0x72,
0xC0,
0x7B,
0x60,
0x76,
0x60,
0x6E,
0x60,
0x1E,
0x60,
0xCE,
0x6C,
0x0C,
0x66,
0xC4,
0x6E,
0x0C,
0x66,
0xC0,
0x3E,
0x00,
0x2C,
0xC0,
0x3B,
0x00,
0x3C,
0xC0,
0x39,
0x00,
0x3C,
0xC0,
0x18,
0x00,
0x18,
0x40,
0x10,
0x00,
0x18,
0x40,
0x10,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_sig_noise{
{32, 32},
bitmap_sig_noise_data};
static constexpr uint8_t bitmap_sig_saw_down_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x0E,
0x80,
0x00,
0x60,
0x1E,
0x80,
0x01,
0x60,
0x3E,
0x80,
0x03,
0x60,
0x76,
0x80,
0x07,
0x60,
0xE6,
0x80,
0x0F,
0x60,
0xC6,
0x81,
0x1D,
0x60,
0x86,
0x83,
0x39,
0x60,
0x06,
0x87,
0x71,
0x60,
0x06,
0x8E,
0xE1,
0x60,
0x06,
0x9C,
0xC1,
0x61,
0x06,
0xB8,
0x81,
0x63,
0x06,
0xF0,
0x01,
0x67,
0x06,
0xE0,
0x01,
0x6E,
0x06,
0xC0,
0x01,
0x7C,
0x06,
0x80,
0x01,
0x78,
0x06,
0x00,
0x01,
0x70,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_sig_saw_down{
{32, 32},
bitmap_sig_saw_down_data};
static constexpr uint8_t bitmap_sig_saw_up_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x06,
0x00,
0x01,
0x70,
0x06,
0x80,
0x01,
0x78,
0x06,
0xC0,
0x01,
0x7C,
0x06,
0xE0,
0x01,
0x6E,
0x06,
0xF0,
0x01,
0x67,
0x06,
0xB8,
0x81,
0x63,
0x06,
0x9C,
0xC1,
0x61,
0x06,
0x8E,
0xE1,
0x60,
0x06,
0x87,
0x71,
0x60,
0x86,
0x83,
0x39,
0x60,
0xC6,
0x81,
0x1D,
0x60,
0xE6,
0x80,
0x0F,
0x60,
0x76,
0x80,
0x07,
0x60,
0x3E,
0x80,
0x03,
0x60,
0x1E,
0x80,
0x01,
0x60,
0x0E,
0x80,
0x00,
0x60,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_sig_saw_up{
{32, 32},
bitmap_sig_saw_up_data};
static constexpr uint8_t bitmap_sig_sine_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x03,
0xC0,
0x00,
0x80,
0x07,
0xE0,
0x01,
0xC0,
0x0F,
0xF0,
0x03,
0xC0,
0x0C,
0x30,
0x03,
0x60,
0x18,
0x18,
0x06,
0x60,
0x18,
0x18,
0x06,
0x60,
0x18,
0x18,
0x06,
0x60,
0x18,
0x18,
0x06,
0x30,
0x30,
0x0C,
0x0C,
0x30,
0x30,
0x0C,
0x0C,
0x30,
0x30,
0x0C,
0x0C,
0x30,
0x30,
0x0C,
0x0C,
0x18,
0x60,
0x06,
0x18,
0x1E,
0xE0,
0x07,
0x78,
0x0E,
0xC0,
0x03,
0x70,
0x06,
0x80,
0x01,
0x60,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_sig_sine{
{32, 32},
bitmap_sig_sine_data};
static constexpr uint8_t bitmap_sig_square_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xFE,
0x83,
0xFF,
0x60,
0xFE,
0x83,
0xFF,
0x60,
0x06,
0x83,
0xC1,
0x60,
0x06,
0x83,
0xC1,
0x60,
0x06,
0x83,
0xC1,
0x60,
0x06,
0x83,
0xC1,
0x60,
0x06,
0x83,
0xC1,
0x60,
0x06,
0x83,
0xC1,
0x60,
0x06,
0x83,
0xC1,
0x60,
0x06,
0x83,
0xC1,
0x60,
0x06,
0x83,
0xC1,
0x60,
0x06,
0x83,
0xC1,
0x60,
0x06,
0x83,
0xC1,
0x60,
0x06,
0x83,
0xC1,
0x60,
0x06,
0xFF,
0xC1,
0x7F,
0x06,
0xFF,
0xC1,
0x7F,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_sig_square{
{32, 32},
bitmap_sig_square_data};
static constexpr uint8_t bitmap_sig_tri_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x03,
0xC0,
0x00,
0x00,
0x03,
0xC0,
0x00,
0x80,
0x07,
0xE0,
0x01,
0x80,
0x07,
0xE0,
0x01,
0xC0,
0x0C,
0x30,
0x03,
0xC0,
0x0C,
0x30,
0x03,
0x60,
0x18,
0x18,
0x06,
0x60,
0x18,
0x18,
0x06,
0x30,
0x30,
0x0C,
0x0C,
0x30,
0x30,
0x0C,
0x0C,
0x18,
0x60,
0x06,
0x18,
0x18,
0x60,
0x06,
0x18,
0x0E,
0xC0,
0x03,
0x70,
0x0E,
0xC0,
0x03,
0x70,
0x06,
0x80,
0x01,
0x60,
0x06,
0x80,
0x01,
0x60,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_sig_tri{
{32, 32},
bitmap_sig_tri_data};
static constexpr uint8_t bitmap_stop_data[] = {
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0x8B,
0xCD,
0xDD,
0xAA,
0xDB,
0xCA,
0xDB,
0xEA,
0xDD,
0xED,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0x00,
0x00,
};
static constexpr Bitmap bitmap_stop{
{16, 16},
bitmap_stop_data};
static constexpr uint8_t bitmap_stopwatch_data[] = {
0x00,
0x00,
0xC0,
0x01,
0x80,
0x00,
0x80,
0x20,
0x60,
0x13,
0x10,
0x0C,
0x88,
0x08,
0x84,
0x10,
0x84,
0x10,
0xC2,
0x21,
0x84,
0x10,
0x04,
0x10,
0x08,
0x08,
0x10,
0x04,
0x60,
0x03,
0x80,
0x00,
};
static constexpr Bitmap bitmap_stopwatch{
{16, 16},
bitmap_stopwatch_data};
static constexpr uint8_t bitmap_stripes_data[] = {
0xFF,
0x03,
0xC0,
0xFF,
0x01,
0xE0,
0xFF,
0x00,
0xF0,
0x7F,
0x00,
0xF8,
0x3F,
0x00,
0xFC,
0x1F,
0x00,
0xFE,
0x0F,
0x00,
0xFF,
0x07,
0x80,
0xFF,
};
static constexpr Bitmap bitmap_stripes{
{24, 8},
bitmap_stripes_data};
static constexpr uint8_t bitmap_tab_edge_data[] = {
0x00,
0x01,
0x01,
0x03,
0x03,
0x03,
0x07,
0x07,
0x07,
0x0F,
0x0F,
0x0F,
0x1F,
0x1F,
0x1F,
0x1F,
0x3F,
0x3F,
0x3F,
0x7F,
0x7F,
0x7F,
0xFF,
0xFF,
};
static constexpr Bitmap bitmap_tab_edge{
{8, 24},
bitmap_tab_edge_data};
static constexpr uint8_t bitmap_target_data[] = {
0x80,
0x00,
0x80,
0x00,
0xE0,
0x03,
0x90,
0x04,
0x88,
0x08,
0x04,
0x10,
0x04,
0x10,
0x1F,
0x7C,
0x04,
0x10,
0x04,
0x10,
0x88,
0x08,
0x90,
0x04,
0xE0,
0x03,
0x80,
0x00,
0x80,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_target{
{16, 16},
bitmap_target_data};
static constexpr uint8_t bitmap_target_calibrate_data[] = {
0x02,
0x00,
0x00,
0x40,
0x07,
0x00,
0x00,
0xE0,
0x0E,
0x00,
0x00,
0x70,
0x1C,
0x00,
0x00,
0x38,
0x38,
0x00,
0x00,
0x1C,
0x70,
0x00,
0x00,
0x0E,
0xE0,
0x00,
0x00,
0x07,
0xC0,
0x01,
0x80,
0x03,
0x80,
0x03,
0xC0,
0x01,
0x00,
0x07,
0xE0,
0x00,
0x00,
0x0E,
0x70,
0x00,
0x00,
0x1C,
0x38,
0x00,
0x00,
0x38,
0x1C,
0x00,
0x00,
0x70,
0x0E,
0x00,
0x00,
0xE0,
0x07,
0x00,
0x00,
0xC0,
0x03,
0x00,
0x00,
0xC0,
0x03,
0x00,
0x00,
0xE0,
0x07,
0x00,
0x00,
0x70,
0x0E,
0x00,
0x00,
0x38,
0x1C,
0x00,
0x00,
0x1C,
0x38,
0x00,
0x00,
0x0E,
0x70,
0x00,
0x00,
0x07,
0xE0,
0x00,
0x80,
0x03,
0xC0,
0x01,
0xC0,
0x01,
0x80,
0x03,
0xE0,
0x00,
0x00,
0x07,
0x70,
0x00,
0x00,
0x0E,
0x38,
0x00,
0x00,
0x1C,
0x1C,
0x00,
0x00,
0x38,
0x0E,
0x00,
0x00,
0x70,
0x07,
0x00,
0x00,
0xE0,
0x02,
0x00,
0x00,
0x40,
};
static constexpr Bitmap bitmap_target_calibrate{
{32, 32},
bitmap_target_calibrate_data};
static constexpr uint8_t bitmap_target_verify_data[] = {
0x00,
0xE0,
0x07,
0x00,
0x00,
0xFC,
0x3F,
0x00,
0x00,
0x1F,
0xF8,
0x00,
0xC0,
0x03,
0xC0,
0x03,
0xE0,
0x00,
0x00,
0x07,
0x70,
0x00,
0x00,
0x0E,
0x38,
0x00,
0x00,
0x1C,
0x18,
0x00,
0x00,
0x18,
0x0C,
0x00,
0x00,
0x30,
0x0C,
0x00,
0x00,
0x30,
0x06,
0x00,
0x00,
0x60,
0x06,
0x00,
0x00,
0x60,
0x06,
0x00,
0x00,
0x60,
0x03,
0x80,
0x01,
0xC0,
0x03,
0x80,
0x01,
0xC0,
0x03,
0xE0,
0x07,
0xC0,
0x03,
0xE0,
0x07,
0xC0,
0x03,
0x80,
0x01,
0xC0,
0x03,
0x80,
0x01,
0xC0,
0x06,
0x00,
0x00,
0x60,
0x06,
0x00,
0x00,
0x60,
0x06,
0x00,
0x00,
0x60,
0x0C,
0x00,
0x00,
0x30,
0x0C,
0x00,
0x00,
0x30,
0x18,
0x00,
0x00,
0x18,
0x38,
0x00,
0x00,
0x1C,
0x70,
0x00,
0x00,
0x0E,
0xE0,
0x00,
0x00,
0x07,
0xC0,
0x03,
0xC0,
0x03,
0x00,
0x1F,
0xF8,
0x00,
0x00,
0xFC,
0x3F,
0x00,
0x00,
0xE0,
0x07,
0x00,
};
static constexpr Bitmap bitmap_target_verify{
{32, 32},
bitmap_target_verify_data};
static constexpr uint8_t bitmap_temperature_data[] = {
0x00,
0x00,
0x20,
0x00,
0x70,
0x3E,
0x88,
0x00,
0x88,
0x00,
0x88,
0x3E,
0x88,
0x00,
0x88,
0x00,
0x88,
0x3E,
0x88,
0x00,
0x04,
0x01,
0x74,
0x01,
0x04,
0x01,
0x88,
0x00,
0x70,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_temperature{
{16, 16},
bitmap_temperature_data};
static constexpr uint8_t bitmap_titlebar_image_data[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x22,
0xC7,
0x8B,
0x9E,
0x0F,
0x00,
0x00,
0x00,
0x00,
0x00,
0xA2,
0x28,
0x48,
0xA6,
0x81,
0x31,
0x67,
0x36,
0x73,
0x63,
0xBE,
0x2F,
0x38,
0x9E,
0x87,
0xBB,
0x6D,
0x36,
0x1B,
0x77,
0xA2,
0x28,
0x48,
0xA6,
0x81,
0xBF,
0x6D,
0x36,
0x1B,
0x7F,
0xA2,
0xC8,
0x8B,
0xA6,
0x81,
0xB5,
0xCF,
0xF3,
0x7B,
0x6B,
0x00,
0x00,
0x00,
0x00,
0x80,
0xB1,
0x8D,
0x31,
0x1B,
0x63,
0xEE,
0xEE,
0xEE,
0xEE,
0x8A,
0xB1,
0x8D,
0x31,
0x1B,
0x63,
0xAE,
0x46,
0xEE,
0x2E,
0x86,
0xB1,
0x8D,
0x31,
0x73,
0x63,
0xE2,
0x4A,
0x2A,
0xEA,
0x0A,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
static constexpr Bitmap bitmap_titlebar_image{
{80, 16},
bitmap_titlebar_image_data};
} /* namespace ui */
#endif /*__BITMAP_HPP__*/