Repository navigation
The first stable release: the protocol work, uploads, slots and conversion have been in use in ha-idotmatrix and other projects for a while, and the public API is what we intend to keep.
Behavior changes
- GIFs keep all their frames and the delay of every frame. The conversion used to cut a GIF to 64 frames and 2 s per loop by dropping frames, and gave every frame the delay of the first one, so long animations played up to 8 times too fast and a long last frame (e.g. to hold a picture) was lost. The device plays long GIFs at their original speed (tried with 336 frames, an 11 s loop). Use
max_size_kbto keep uploads short. max_size_kbgives up frames before colors (every 2nd, 3rd, ... frame, the animation takes as long as before): fewer colors looked clearly worse than fewer frames.DigitalPictureFrame.start_slideshow()no longer installs SIGINT/SIGTERM handlers. They stopped the whole event loop and replaced the handlers of the client and of the application. The application handles signals and callsstop_slideshow(), seeexamples/example_digital_picture_frame.py.
New
- Upload progress:
progress=onGifModule.upload_gif_file, the image uploads,MaterialsModule.store(per file) andConnectionManager.send_packets, called as chunks are acknowledged. - Terminal UI (
pip install idotmatrix-api-client[tui], thenidotmatrix-tui): find and remember displays, browse files with a pixel-exact preview and show them, control pages (clock, effects, text, countdown, scoreboard, brightness, power, ...) and a pixel editor. image_utils.is_animated(): JPEGs with several pictures (MPO from phones) are no longer treated as animations.
Fixes and cleanup
- Races in the tests found by running them in parallel are fixed.
- Old TODO comments are resolved, the open device questions are in
TODO.md. - Documentation: README rework,
docs/DEVICE-PROTOCOL.md,docs/INTEGRATION.md,docs/DEVELOPMENT.md,docs/TUI.md,docs/FONTS.md.