Code Monkey home page Code Monkey logo

easysplash's Introduction

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.

easysplash's People

Contributors

dv1 avatar fbertux avatar gustavosbarreto avatar johndesilencio avatar mdrodrigo avatar otavio avatar rafluan avatar texierp avatar tpgxyz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

easysplash's Issues

Error: Not a directory

Hi, I'm running EasySplash on ARMv7, after doing a lot of cross-compiled work, it return error like this:

# ./easysplash open ~/ossystems-demo/
[00:00:00.000] (b6d40000) INFO   starting EasySplash animation
Error: Not a directory (os error 20)
#

How could I solve this problem? Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.