Skip to main content

Crate gadgetdeck

Crate gadgetdeck 

Source
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 gadget
  • usb - 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