49 void register_callbacks()
override;
51 void start()
override;
52 void pause()
override;
53 void resume()
override;
55 void shutdown()
override;
58 [[nodiscard]]
bool is_ready()
const override {
return m_ready.load(); }
59 [[nodiscard]]
bool is_running()
const override {
return m_running.load(); }
72 bool add_backend(std::unique_ptr<IInputBackend> backend);
82 [[nodiscard]] std::vector<IInputBackend*> get_backends()
const;
91 [[nodiscard]] std::vector<InputDeviceInfo> get_all_devices()
const;
96 bool open_device(
InputType backend_type, uint32_t device_id);
101 void close_device(
InputType backend_type, uint32_t device_id);
120 [[nodiscard]] std::optional<InputDeviceInfo> get_device_info(
122 uint32_t device_id)
const;
129 uint16_t product_id)
const;
136 std::atomic<bool> m_ready {
false };
137 std::atomic<bool> m_running {
false };
140 std::unordered_map<InputType, std::unique_ptr<IInputBackend>>
m_backends;
143 void initialize_hid_backend();
144 void initialize_midi_backend();
145 void initialize_osc_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.