|
MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
|
Input processing subsystem for external devices. More...
#include <InputSubsystem.hpp>
Inheritance diagram for MayaFlux::Core::InputSubsystem:
Collaboration diagram for MayaFlux::Core::InputSubsystem:Public Member Functions | |
| InputSubsystem (GlobalInputConfig &config) | |
| ~InputSubsystem () override | |
| InputSubsystem (const InputSubsystem &)=delete | |
| InputSubsystem & | operator= (const InputSubsystem &)=delete |
| InputSubsystem (InputSubsystem &&)=delete | |
| InputSubsystem & | operator= (InputSubsystem &&)=delete |
| void | register_callbacks () override |
| Register callback hooks for this domain. | |
| void | initialize (SubsystemProcessingHandle &handle) override |
| Initialize with a handle provided by SubsystemManager. | |
| void | start () override |
| Start the subsystem's processing/event loops. | |
| void | pause () override |
| Pause the subsystem's processing/event loops. | |
| void | resume () override |
| Resume the subsystem's processing/event loops. | |
| void | stop () override |
| Stop the subsystem's processing/event loops. | |
| void | shutdown () override |
| Shutdown and cleanup subsystem resources. | |
| SubsystemTokens | get_tokens () const override |
| Get the processing token configuration this subsystem manages. | |
| bool | is_ready () const override |
| Check if subsystem is ready for operation. | |
| bool | is_running () const override |
| Check if subsystem is currently processing. | |
| SubsystemType | get_type () const override |
| Get the type of this subsystem. | |
| SubsystemProcessingHandle * | get_processing_context_handle () override |
| Get the processing context handle for this subsystem. | |
| bool | add_backend (std::unique_ptr< IInputBackend > backend) |
| Add a custom input backend. | |
| IInputBackend * | get_backend (InputType type) const |
| Get a backend by type. | |
| std::vector< IInputBackend * > | get_backends () const |
| Get all active backends. | |
| std::vector< InputDeviceInfo > | get_all_devices () const |
| Get all available input devices across all backends. | |
| bool | open_device (InputType backend_type, uint32_t device_id) |
| Open a device. | |
| void | close_device (InputType backend_type, uint32_t device_id) |
| Close a device. | |
| std::vector< InputDeviceInfo > | get_hid_devices () const |
| Get all HID devices. | |
| std::vector< InputDeviceInfo > | get_midi_devices () const |
| Get all MIDI devices. | |
| std::optional< InputDeviceInfo > | get_device_info (InputType backend_type, uint32_t device_id) const |
| Get device info by backend type and device ID. | |
| std::optional< InputDeviceInfo > | find_hid_device (uint16_t vendor_id, uint16_t product_id) const |
| Find HID device by vendor/product ID. | |
Public Member Functions inherited from MayaFlux::Core::ISubsystem | |
| virtual | ~ISubsystem ()=default |
Private Member Functions | |
| void | initialize_hid_backend () |
| void | initialize_midi_backend () |
| void | initialize_osc_backend () |
| void | initialize_serial_backend () |
| void | wire_backend_to_manager (IInputBackend *backend) |
| void | register_backend_service () |
Private Attributes | |
| GlobalInputConfig & | m_config |
| SubsystemProcessingHandle * | m_handle { nullptr } |
| SubsystemTokens | m_tokens |
| std::atomic< bool > | m_ready { false } |
| std::atomic< bool > | m_running { false } |
| std::shared_mutex | m_backends_mutex |
| std::unordered_map< InputType, std::unique_ptr< IInputBackend > > | m_backends |
| std::shared_ptr< Registry::Service::InputService > | m_input_service |
Input processing subsystem for external devices.
Coordinates input backends (HID, MIDI, OSC, Serial) and InputManager. Follows the same lifecycle patterns as AudioSubsystem and GraphicsSubsystem.
Responsibilities:
Does NOT directly call process_sample on nodes - that's InputManager's job.
Definition at line 34 of file InputSubsystem.hpp.