Expand description
GadgetDeck - USB Gadget Stream Deck Emulator Library
This library provides functionality to emulate Stream Deck devices as USB gadgets on Linux systems.
§Quick Start
The easiest way to use this library is through the GadgetDeck struct:
use gadgetdeck::{GadgetDeck, GadgetDeckConfig, StreamDeckModel};
let config = GadgetDeckConfig::new(StreamDeckModel::Mini, "ZZZZZZZZZZZZZZ");
let mut deck = GadgetDeck::new(config).expect("Failed to create GadgetDeck");
deck.start().expect("Failed to start");
// Access button state and image store through the deck
let buttons = deck.button_state();
let images = deck.image_store();§Module Organization
gadgetdeck- Main entry point struct for managing the USB gadgetusb- USB gadget functionality (HID, descriptors, custom HID)device- Device state management (buttons, images)
Re-exports§
pub use gadgetdeck::GadgetDeck;pub use gadgetdeck::GadgetDeckConfig;pub use gadgetdeck::GadgetDeckError;pub use device::ButtonImage;pub use device::ButtonState;pub use device::ImageError;pub use device::ImageEvent;pub use device::ImageEventReceiver;pub use device::ImagePacket;pub use device::ImagePacketHeader;pub use device::ImageStats;pub use device::ImageStore;pub use device::PlusInputState;pub use device::TouchEvent;pub use device::TouchEventType;pub use device::KnobEvent;pub use device::KnobIndex;pub use device::KnobDirection;pub use usb::CustomHid;pub use usb::StreamDeckModel;pub use usb::run_input_report_sender;pub use usb::run_output_report_receiver;
Modules§
- device
- Device module - Stream Deck device state management
- gadgetdeck
- GadgetDeck - Main entry point for USB gadget Stream Deck emulation
- usb
- USB module - USB gadget and device handling