g3gg0.de e1c6e78b2e
added DigitalSequence and PulseReader (#2070)
* added DigitalSequence to chain multiple DigitalSignals
added PulseReader for hardware assisted digital signal sampling
* added send_time option to start a signal at a specific DWT->CYCCNT value
* fixed linter errors and undone function renaming
* fixed renaming
* flagged functions in api_symbols.csv
* allow gpio field to stay uninitialized in digital_signal_prepare_arr()
* fix test cases to match (expected) implementation
* pulse_reader: build as static library
Signed-off-by: g3gg0.de <git@g3gg0.de>
* fix starting level detection in pulse_reader
* added unit test for pulse_reader
* change pulse reader test timings to 1, 10 and 100 ms
* fine tuned timings for pulse_reader test
* pulse_reader_stop now deinits GPIO as recommended by @gornekich
* ran format_py
* pulse_reader: remove from API, allow to link with faps
Signed-off-by: g3gg0.de <git@g3gg0.de>
* remove unit test for pulse_reader again
* pulse_reader: add call to set GPIO pull direction
* make structures private, add C implementation of digital_signal_update_dma()
* digital_signal/pulse_reader: allow parameters for free to be NULL
* digital_signal: show unoptimized and optimized code for digital_signal_update_dma() next to each other
* pulse_reader: further optimize assembly code
* digital_signal: reduce code complexity of digital_signal_update_dma() by only reconfiguring DMA2
* digital_signal: remove assembly code, limiting the performance but increasing portability
* added recovery if the timer already expired
* digital_signal: fix memory leak
* digital_signal: keep lock until all DMA transfers have finished
* DigitalSequence: fix issues with concatenation of same levels and spurious bit flips
* DigitalSignal: use cyclic DMA buffer for sequences
* update api_symbols.csv
* Update api_symbols.csv for f18 target
* Patches from @gornekich to fix linter warnings.
* Remove some redundant if checks
* Remove some magic numbers and reformat.
* Remove forced terminating edge.

Signed-off-by: g3gg0.de <git@g3gg0.de>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: Tiernan Messmer <tiernan.messmer@gmail.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-05-09 09:55:17 +09:00
..

Requirements

  • Python3
  • Python3 packages: Pillow & heatshrink2

Compiling

./fbt icons proto dolphin_internal dolphin_blocking dolphin_ext resources

Asset naming rules

Images and Animations

NAME_VARIANT_SIZE

  • NAME - mandatory - Asset name in CamelCase. [A-Za-z0-9], special symbols not allowed
  • VARIANT - optional - icon variant: can relate to state or rendering conditions. Examples: active, inactive, inverted.
  • SIZE - mandatory - size in px. Example square 10, 20, 24, etc. Example rectangular: 10x8, 19x5, etc.

Image names will be automatically prefixed with I_, animation names with A_. Icons and Animations will be gathered into icon.h and icon.c.

Dolphin and Games assets

Rules are same as for Images and Animations plus assets are grouped by level and level prepends NAME. Good starting point: https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/AssetNaming/

Important notes

Don't include assets that you are not using, compiler is not going to strip unused assets.

Structure

  • compiled - Output folder made for compiled assets, after building project, in build directory.
  • dolphin - Dolphin game assets sources. Goes to compiled and resources folders in build directory.
  • icons - Icons sources. Goes to compiled folder in build directory.
  • protobuf - Protobuf sources. Goes to compiled folder in build directory.
  • resources - Assets that is going to be provisioned to SD card.
  • slideshow - One-time slideshows for desktop
  • unit_tests - Some pre-defined signals for testing purposes.