Files
GP2040-CE/headers/enums.h
Malte Thiesen 3987f2037e Protobuf Config (#263)
* 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>
2023-05-25 16:02:08 -04:00

14 lines
161 B
C

#ifndef _ENUMS_H_
#define _ENUMS_H_
#include "enums.pb.h"
typedef enum
{
CONFIG_TYPE_WEB = 0,
CONFIG_TYPE_SERIAL,
CONFIG_TYPE_DISPLAY
} ConfigType;
#endif