eruption-sdk

Crates.ioeruption-sdk
lib.rseruption-sdk
version0.0.4
sourcesrc
created_at2022-10-08 01:22:03.976212
updated_at2022-10-08 01:53:29.041211
descriptionProvides an interface to the Eruption Realtime RGB LED Driver for Linux
homepagehttps://eruption-project.org
repositoryhttps://github.com/X3n0m0rph59/eruption.git
max_upload_size
id683229
size35,060
X3n0m0rph59 (X3n0m0rph59)

documentation

README

eruption-sdk

Stars Stars Stars Stars

This crate provides an interface to the Eruption Realtime RGB LED Driver for Linux

Table of Contents

License

The Eruption SDK is licensed under the GNU LGPL-3.0 license

Usage

Please add this to your Cargo.toml:

[dependencies]
eruption-sdk = "0.0.4"

MSRV

Minimum Supported Rust Version: Rust 1.64

Example Code

use eruption_sdk::canvas::Canvas;
use eruption_sdk::color::Color;
use eruption_sdk::connection::{Connection, ConnectionType};
use std::thread;
use std::time::Duration;

const EXAMPLE_NAME: &str = "Simple Rust Example #1";

fn main() -> Result<(), eyre::Error> {
    println!(
        "Welcome to the Eruption SDK!\nYou are running the \"{}\" \
        from the Eruption SDK version {}\n",
        EXAMPLE_NAME,
        eruption_sdk::SDK_VERSION
    );

    println!("Connecting to the Eruption daemon...");
    let connection = Connection::new(ConnectionType::Local)?;

    connection.connect()?;
    println!("Successfully connected to the Eruption daemon");

    let status = connection.get_server_status()?;
    println!("{:?}", status);

    // create a new canvas
    let mut canvas = Canvas::new();

    let red = Color::new(255, 0, 0, 128);
    let green = Color::new(0, 255, 0, 128);
    let blue = Color::new(0, 0, 255, 128);
    let final_val = Color::new(0, 0, 0, 0);

    canvas.fill(red);
    println!("Submitting canvas...");
    connection.submit_canvas(&canvas)?;

    thread::sleep(Duration::from_millis(1000));

    canvas.fill(green);
    println!("Submitting canvas...");
    connection.submit_canvas(&canvas)?;

    thread::sleep(Duration::from_millis(1000));

    canvas.fill(blue);
    println!("Submitting canvas...");
    connection.submit_canvas(&canvas)?;

    thread::sleep(Duration::from_millis(1000));

    canvas.fill(final_val);
    println!("Submitting canvas...");
    connection.submit_canvas(&canvas)?;

    println!("Exiting now");

    Ok(())
}

Support

Support for the Eruption SDK is available on GitHub

Commit count: 1529

cargo fmt