helion

Crates.iohelion
lib.rshelion
version0.5.0
sourcesrc
created_at2019-10-24 19:46:26.255021
updated_at2019-10-24 19:46:26.255021
descriptionAmbilight clone. Stream color data of captured screen to Adalight device.
homepage
repositoryhttps://github.com/bryal/Helion
max_upload_size
id175310
size99,666
JoJo (bryal)

documentation

README

Helion

Ambilight clone for windows written in Rust, meant to be used with an Arduino running LEDstream.

Test video

Config

Helion uses configuration generated by HyperCon. Config must be located in the current working directory, which is same as where the .exe is located when not run from command line.

Notes about config sections:

  • Device:

    • Output: Serial port to use, e.g. "COM2" on windows.

    • Baudrate: Rate to use when sending pixel buffer to Arduino, LEDstream expects this to be 115200.

    • Type: Not read, but must be one where Output and Baudrate fields exist.

  • Construction: Led placement. Everything is read.

  • Image Process: Led capture areas. Blackborder stuff not read.

  • Frame Grabber:

    • Width and Height, REQUIRED: Determines to what resolution frame is resized when analyzing colors, smaller is faster. Works best if dimensions are divisors of the native resolution. If a field is 0, native resolution is used in that dimension.

    • Interval: How often to capture the frame. If no smoothing is enabled, this also decides LED refresh rate. FPS = 1/interval.

  • Smoothing:

    • Type: Type of smoothing to use, currently only Linear smoothing, no direct plans to add anything else.

    • Time [ms]: The time constant to use when smoothing. Larger values gives slower transition.

      • Linear Smoothing: "previous value" + ("value difference" * max("Frame time difference" / "Time constant", 1))
    • Update Freq. [Hz]: How often to update LEDs. Should be higher than FPS of Frame Grabber -> Interval. When no new frame has been captured, just keep smoothing the colors to previous frame.

  • Colors: Everything is read.

  • External: There are no plans to add support for anything under this tab. The stuff here is really just for Raspberry Pis with XBMC and stuff.

Building

cargo build --release

License

AGPLv3

Copyright (C) 2019 Johan Johansson

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

See LICENSE

Commit count: 86

cargo fmt