Skip to content

Latest commit

 

History

History
113 lines (76 loc) · 3.53 KB

README.md

File metadata and controls

113 lines (76 loc) · 3.53 KB

EasySplash

EasySplash is an application that runs early the OS boot for showing graphical animation while the boot process itself happens in the background.

The app is built on Rust and binds to GStreamer, so it can run in any backend that supports both. It can also be used for debugging and testing new animations on the desktop before deploying it to embedded devices.

For example, the below is the animation that has been in use for O.S. Systems' demo images:

O.S. Systems demo boot animation

There are two animation examples, which may be used as reference:

Requirements

  • Rust 1.66.0 or newer
  • GStreamer (tested with 1.16)

Running EasySplash

This is the help screen of EasySplash when ran with the -h argument:

Usage: easysplash <command> [<args>]

EasySplash offers a convenient boot splash for Embedded Linux devices,
focusing of simplicity and easy to use.

Options:
  --help            display usage information

Commands:
  open              open the render with the specific animation
  client            control the render from the user space

Boot parameters: easysplash.enable If you want to skip the EasySplash on system boot set up this to "0".

Animation format

EasySplash accepts animations in a directory which layout must be like this:

animation.toml
part1.mp4
part2.mp4
part3.mp4

The names of the animation files can be chosen freely. Only the animation manifest file, named animation.toml, needs to always be named as shown.

The animation.toml file uses the TOML format and intends to define the animation. Below is a full example, for reference:

[[part]]
file = "part1.mp4"
mode = "complete"

[[part]]
file = "part2.mp4"
mode = "complete"
repeat = 1

[[part]]
file = "part3.mp4"
mode = "interruptable"

The animation view port is always rendered on the center of screen. The parts are defined using [[part]]. The parts are inserted in the order encountered. For every part, following options are available:

  • file: specifies the file to use for the part (required).
  • mode: is complete, interruptable or forever. (optional)
    • complete means the part must be played completely, even if somebody requested EasySplash to stop (default).
    • interruptable means it can be stopped immediately.
    • forever means it will be looping forever and can be interrupted.
  • repeat: defines how many times a part is replayed before moving to next. (optional)

License

EasySplash is licensed under either of

at your option.

Any kinds of contributions are welcome as a pull request.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in EasySplash by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.