* Build makefsdata for Linux w/ MUSL
* Restored deflate support to makefsdata
* Added nanopb library
* Initial version of Proto config
* Added AnimationOptions_Proto
* Storage::toJSON() WIP
* Pretty JSON output
* Use std::string instead of std::ostringstream
This approach reduces the binary size by ~200kb
* Simplify ToJSON() and implented repeated support
* Default initialization
* Fixed issue in nanopb_generator.py
nanopb would not generate code section with enum type defines if the
source file does not contain any enums itself.
However enums can be included from other source files.
* Moved Config functions to separate file
Implemented toJson() and fromJSON()
* Restored StorageManager to its pristine state
* Config loading and saving
* Make FlashPROM cache public for the time being
* Implemented api/getConfig and api/setConfig endpoints
* Moved most Gamepad enums to enums.proto
* Use DEFAULT_INPUT_MODE and DEFAULT_DPAD_MODE
* Renamed generic/short enum values
* Moved bulk of config structs to the ConfigLegacy namespace
No more loading / saving of ConfigLegacy structs
* Moved GamepadOptions and GamepadHotkeyEntry to ConfigLegacy
* FlashPROM::start() is no longer needed
* Added more settings to config.proto
* Support for the latest config changes from main
* Store config struct on the heap to avoid stack overflow
* Increase LWIP_HTTPD_POST_MAX_PAYLOAD_LEN to 8kb
We need more to fit the whole config
* Further stack optimizations
Only save config if content has changed
* Removed template to reduce code bloat
* Update config.boardVersion and save after ConfigUtils::load()
This makes sure that any migrations performed are preserved in EEPROM
* Config instance in StorageManager
* Renamed getAddonOptions() -> getLegacyAddonOptions()
Renamed setAddonOptions() -> setLegacyAddonOptions()
* Added getters for sub-configs
* Migrate PinMappings to Protobuf
* Fixed wrong name caused by overeager renaming
* Migrated reverse addon to Protobuf storage
* Mirrored latest version of AnimationOptions in Protobuf
* Fixed compatibility with arm-none-eabi-gcc 11.3.1
* Fixed crash issue in Release builds
* Fixed board configs
* Added commented out PICO_DEOPTIMIZED_DEBUG to CMakeList.txt
Use this to toggle between optimized / unoptimized builds
* Added support for byte arrays to base64 encoder / decoder
* Store binary data as byte arrays, convert to Base64 in JSON
* Migrated api/getSplashImage and api/setSplashImage
* Change footer magic to invalidate incompatible stored data
* Refactor pin assignment from JSON
* Add bool to int workaround for web-config
* Migrate SOCD Slider addon to ProtoBuf
* Migrate On-Board LED addon to ProtoBuf
* Migrate Analog Input addon to ProtoBuf
* Migrate BOOTSEL button addon to ProtoBuf
* Migrate Buzzer Speaker addon to ProtoBuf
* Migrate Dual Directional Input addon to ProtoBuf
* Migrate Extra Button addon to ProtoBuf
* Migrate I2C Analog ADS1219 addon to ProtoBuf
* Migrate Joystick Selection Slider addon to ProtoBuf
* Migrate Player Number addon to ProtoBuf
* Migrate Turbo addon to ProtoBuf
* Migrate Wii Extension addon to ProtoBuf
* Migrate PS4 Mode addon to ProtoBuf
* Check writeCache when determining whether to save
Due to the delay in FlashPROM we run the risk of delaying the save indefinitely
* We only allow saves from core0. Saves from core1 have to be marshalled to core0.
* Migrate AnimationOptions
* Check serial and signature for size as well
* Removed unncessary cast
* Moved PS4Options to config_legacy.cpp
* Migrate Display addon to ProtoBuf
* Removed old code related to SplashImage
* Removed old code related to AddonOptions
* Removed stale functions from ConfigManager
* Moved OnBoardLedMode to config_legacy.cpp
* Fixed issues caused by the merge
* Added new player LED properties to LEDOptions
* No more usage of ConfigLegacy::GamepadOptions
* Added switchTpShareForDs4 to config.proto
* Conversion from legacy storage to Protobuf
* Return -1 for invalid pins from webconfig
* More conversion from legacy storage to Protobuf
* Validate enums when converting from legacy config
* Remove switchTpShareForDs4 from legacy conversion
It is not part of the 0.7.1 release
* More conversion from legacy storage to Protobuf
* Removed references to ConfigLegacy::BoardOptions
* Fixed compilation of KB2040
* Re-added /api/getConfig function entry
Must have gotten lost in a merge
* Fixed issue where JSLider addon fails to change dpadMode
* Migrated SNES options to Protobuf
* Fixed saving of AnimationOptions
---------
Co-authored-by: deeebug <77402236+deeebug@users.noreply.github.com>