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:
There are two animation examples, which may be used as reference:
- Rust 1.66.0 or newer
- GStreamer (tested with 1.16)
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".
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
: iscomplete
,interruptable
orforever
. (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)
EasySplash is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
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.