gamesense 0.1.2

SteelSeries GameSenseā„¢ client written in Rust
Documentation
extern crate gamesense;
extern crate anyhow;
extern crate serde_json;
use anyhow::{Result};
use gamesense::client::GameSenseClient;
use gamesense::handler::screen;
use serde_json::json;

fn main() -> Result<()> {
    let mut client = GameSenseClient::new("SCREEN_IMAGE", "Example OLED Image Event", "ptrstr", None)?;

    let width = 128;
    let height = 48;

    let handler = screen::ScreenHandler::new(&format!("screened-{}x{}", width, height), "one",
        screen::ScreenDataDefinition::StaticScreenDataDefinition(screen::StaticScreenDataDefinition(
            vec!(
                screen::ScreenFrameData::ImageFrameData(screen::ImageFrameData {
                    has_text: false,
                    frame_modifiers_data: Some(screen::FrameModifiersData {
                        length_millis: Some(2000),
                        icon_id: None,
                        repeats: None
                    }),
                    image_data: vec![255; width * height / 8],
                }),
            )
        ))
    );

    client.bind_event("EVENT", None, None, None, None, vec![handler])?;
    client.start_heartbeat();

    client.trigger_event_frame("EVENT", 0, json!({}))?;

    client.stop_heartbeat()?;
    Ok(())
}