- profiles: configurations for the app which will reflect all devices
- Profile 1: using streamdeck and streamdeck+
- Profile 2: using streamdeck and streamdeck mini
- Profile 3: using streamdeck xl only
- actions: commands that will be called through the API
- Get Available Modules
- Set Module Configuration
- workers: background tasks that will be listening for events from:
- StreamDeck!!
- OBS !!
- integrations: third party integrations for the app configuration
- OBS
- OS
- Lighstrip
- W/e
- When Select which device: useFetchDevices
- HID Devices from specific vendors
- Saving the Settings: useSaveProfile
- POST to the API
- [StreamDeck Worker]
- Hardware button is pressed (Rust-StreamDeck)
- Event is sent to the StreamDeck Worker
- Worker Checks into the Profile Configuration
- Worker Checks into available Modules/Actions
- Worker Executes the action based on PROFILE CONFIGURATION
- [Tauri App]
- [Setting new Functionality] // Wizard? Drag and Drop?
- User click in the trigger that wants to change
- Tauri fetch the trigger profile configuration tab
- Tauri fetch the available modules and actions
- User selects the action and switch to the configuration tab 5. Fields are populated based on the action settings object
- User sets the configuration
- [Setting new Functionality] // Wizard? Drag and Drop?
Goal: bring an "Action" to some specific Key.
- Global Context for React DND
- Lock features per type (Button, Knob, Touch)
[
{
"name": "StreamDeck+",
"type": "streamdeckplus",
"keys": 8,
"knobs": 4,
"touch": 1
}
]
{
"name": "Streaming Profile",
"devices": [
{
"device_type": "StreamDeckPlus",
"settings": [
{
"trigger_type": "Button",
"key_code": 1,
"module": "OBS",
"action": "StartStreaming",
"arguments": {}
},
{
"trigger_type": "Knob",
"key_code": 1,
"module": "Spotify",
"action": "Volume",
"arguments": {}
},
{
"trigger_type": "Button",
"key_code": 2,
"module": "OBS",
"action": "ToggleSourceItem",
"arguments": {
"scene": "scene-uuid",
"source": "camera-source-uuid"
}
}
]
}
]
}