Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exclude fields from JSON config export #322

Merged
merged 1 commit into from
Jun 12, 2023

Conversation

mthiesen
Copy link
Contributor

I extended NanoPb to allow Protobuf fields to be flagged with (nanopb).disallow_export. Fields with this flag will now be excluded when converting the config to JSON.

I have also reenabled the /api/getConfig endpoint.

Copy link
Contributor

@arntsonl arntsonl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems cleaner than removing /getConfig

@arntsonl arntsonl merged commit 8d04c77 into OpenStickCommunity:main Jun 12, 2023
arntsonl added a commit that referenced this pull request Jun 12, 2023
* Add an option to allow switching Touchpad and Share buttons (#254)

Add an option to switch between Touchpad and Share buttons for PS4 Mode

* Update development.md (#261)

typo embeded to embedded

* Update usedPins on save on /pin-mapping page (#262)

* Update button labels for button label change and TP-Switch swap (#266)

* Fix serialization of switchTpShareForDs4

* Add button labels for PS4

* Setup button labels for PS4 with TP & Share switch

* Remove outdated Buttons constants

* Update references to GP2040 in www (#264)

* Update issue templates

* SNES Controller Input Support (#252)

* SNES controller support

* adds webconfiguration options for SNESpad controller input

* fix: corrects NES button mapping

* fix[SNESpad]: updates lib to latest with snes mouse to analog working correctly

* Fix invalid reference to button label (#279)

* 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 <[email protected]>

* Make danger zone an actual button (#284)

* Reference splash bitmap data from BoardConfig.h (#282)

* Reference splash bitmap data from BoardConfig.h

* Remove unused constant for bitmap

* Add documentation on default splash customization

* .gitignore a couple files used by vim + tools (#267)

* Implement Forced Setup Mode & Hotkey Lock settings (#273)

* Implement Forced Setup Mode & Hotkey lock settings

* Rename enums

* Add warning to web-config for Forced Setup Mode

* Update warning check text

* Fix BoardConfig.h

* Feature: webui color schemes (#295)

* WIP

* DarkMode is a Component not Service

* Give the theme button a right margin

* Use Dropdown from `react-bootstrap` and dynamically create dropdown items

* Rename to ColorScheme

* move colorScheme to AppContext

* Stop setting localStorage here

* Simplify setTheme logic and ensure data-bs-theme is 'light' not 'auto' when light system scheme

* Remove unused imports

* More contrast for the navbar

* Fixed PS4Options saving (#298)

Fixed ps4Options saving

* Move invert Y to process() to avoid hotkey issues (#300)

* Preparing 0.7.2 for release candidate (#310)

* Fix #306 (#307)

* Fixed PLEDs not being properly retrieved from protobuf (#311)

* Fix #265 (#312)

Fix external links

* Disabled /api/getConfig (#318)

* Add Stress FightPad (#319)

* Add Stress FightPad

* Add controller photo

* New photo, blurred the NSFW text

* Updating config for full censor, docs/index.html will be updated when release goes out.

* Exclude fields from JSON config export (#322)

* Fix button labels and hotkey when Touchpad Share are swapped (#317)

* Fix Hotkey when Touchpad and Share are swapped in PS4 Mode

When the Touchpad and Share buttons are swapped in PS4 Mode, Hotkey F1 will be the Touchpad button, and Start will not be the Option button, but the Start button.

* Fix button label when touchpad and share swapped in ps4 mode

When selecting button label is not the PS4 button label, the button label may be different.

* Fix button label when touchpad and share swapped in ps4 mode

When selecting button label is not the PS4 button label, the button label may be different.

* Fix button label when touchpad and share swapped in ps4 mode

When selecting button label is not the PS4 button label, the button label may be different.

* Fix button label when touchpad and share swapped in ps4 mode

When selecting button label is not the PS4 button label, the button label may be different.

* Fix WebConfig button label when touchpad and share swapped in ps4 mode

When selecting button label is not the PS4 button label, the button label may be different.

* This change did not make sense to be part of the web config modification.

* Doc updates for v0.7.2 (#323)

* Doc updates

* Remove unused image

* Styling updates

---------

Co-authored-by: deeebug <[email protected]>
Co-authored-by: Wren <[email protected]>
Co-authored-by: Pelsin <[email protected]>
Co-authored-by: Henré Botha <[email protected]>
Co-authored-by: TheTrain <[email protected]>
Co-authored-by: Robert Dale Smith <[email protected]>
Co-authored-by: Malte Thiesen <[email protected]>
Co-authored-by: Oliver Sayers <[email protected]>
Co-authored-by: Brian S. Stephan <[email protected]>
Co-authored-by: FeralAI <[email protected]>
Co-authored-by: teikai1216 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants