49 void register_callbacks()
override;
51 void start()
override;
52 void pause()
override;
53 void resume()
override;
55 void shutdown()
override;
56 void wait_until_running()
override;
59 [[nodiscard]]
bool is_ready()
const override {
return m_ready.load(); }
60 [[nodiscard]]
bool is_running()
const override {
return m_running.load(); }
73 bool add_backend(std::unique_ptr<IInputBackend> backend);
83 [[nodiscard]] std::vector<IInputBackend*> get_backends()
const;
92 [[nodiscard]] std::vector<InputDeviceInfo> get_all_devices()
const;
97 bool open_device(
InputType backend_type, uint32_t device_id);
102 void close_device(
InputType backend_type, uint32_t device_id);
121 [[nodiscard]] std::optional<InputDeviceInfo> get_device_info(
123 uint32_t device_id)
const;
130 uint16_t product_id)
const;
137 std::atomic<bool> m_ready {
false };
138 std::atomic<bool> m_running {
false };
141 std::unordered_map<InputType, std::unique_ptr<IInputBackend>>
m_backends;
144 void initialize_hid_backend();
145 void initialize_midi_backend();
146 void initialize_serial_backend();
150 void register_backend_service();
Base interface for all subsystems in the MayaFlux processing architecture.
Unified interface combining buffer and node processing for subsystems.
InputType
Input backend type enumeration.
std::vector< Core::InputDeviceInfo > get_midi_devices()
Get a list of connected MIDI devices.
std::optional< Core::InputDeviceInfo > find_hid_device(uint16_t vendor_id, uint16_t product_id)
Find a HID device by vendor and product ID.
std::vector< Core::InputDeviceInfo > get_hid_devices()
Get a list of connected HID devices.
Processing token configuration for subsystem operation.