MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
Input.cpp
Go to the documentation of this file.
1#include "Input.hpp"
2
3#include "Core.hpp"
7
8namespace MayaFlux {
9
11{
13 return *std::dynamic_pointer_cast<Core::InputSubsystem>(subsystem);
14}
15
20
21void register_input_node(const std::shared_ptr<Nodes::Input::InputNode>& node, const Core::InputBinding& binding)
22{
23 get_input_manager().register_node(node, binding);
24}
25
26void unregister_input_node(const std::shared_ptr<Nodes::Input::InputNode>& node)
27{
29}
30
31std::vector<Core::InputDeviceInfo> get_hid_devices()
32{
34}
35
36std::vector<Core::InputDeviceInfo> get_midi_devices()
37{
39}
40
41std::vector<Core::InputDeviceInfo> get_all_input_devices()
42{
44}
45
46std::optional<Core::InputDeviceInfo> find_hid_device(
47 uint16_t vendor_id,
48 uint16_t product_id)
49{
50 return get_input_subsystem().find_hid_device(vendor_id, product_id);
51}
52
53Core::InputBinding bind_hid(uint32_t device_id)
54{
55 return Core::InputBinding::hid(device_id);
56}
57
58Core::InputBinding bind_hid(uint16_t vid, uint16_t pid)
59{
61}
62
63Core::InputBinding bind_midi(uint32_t device_id, std::optional<uint8_t> channel)
64{
65 return Core::InputBinding::midi(device_id, channel);
66}
67
69 std::optional<uint8_t> cc_number,
70 std::optional<uint8_t> channel,
71 uint32_t device_id)
72{
73 return Core::InputBinding::midi_cc(cc_number, channel, device_id);
74}
75
77 std::optional<uint8_t> channel,
78 uint32_t device_id)
79{
80 return Core::InputBinding::midi_note_on(channel, device_id);
81}
82
84 std::optional<uint8_t> channel,
85 uint32_t device_id)
86{
87 return Core::InputBinding::midi_note_off(channel, device_id);
88}
89
91 std::optional<uint8_t> channel,
92 uint32_t device_id)
93{
94 return Core::InputBinding::midi_pitch_bend(channel, device_id);
95}
96
97Core::InputBinding bind_osc(const std::string& pattern)
98{
99 return Core::InputBinding::osc(pattern);
100}
101
103{
104 return Core::InputBinding::serial(device_id);
105}
106
107}
Core engine lifecycle and configuration API.
std::shared_ptr< ISubsystem > get_subsystem(SubsystemType type)
Get typed access to a specific subsystem.
Definition Engine.hpp:331
std::shared_ptr< InputManager > get_input_manager()
Gets the input manager.
Definition Engine.hpp:294
void register_node(const std::shared_ptr< Nodes::Input::InputNode > &node, InputBinding binding)
Register a node to receive input.
void unregister_node(const std::shared_ptr< Nodes::Input::InputNode > &node)
Unregister a node.
Manages input processing thread and node dispatch.
std::vector< InputDeviceInfo > get_all_devices() const
Get all available input devices across all backends.
std::vector< InputDeviceInfo > get_midi_devices() const
Get all MIDI devices.
std::vector< InputDeviceInfo > get_hid_devices() const
Get all HID devices.
std::optional< InputDeviceInfo > find_hid_device(uint16_t vendor_id, uint16_t product_id) const
Find HID device by vendor/product ID.
Input processing subsystem for external devices.
void register_input_node(const std::shared_ptr< Nodes::Input::InputNode > &node, const Core::InputBinding &binding)
Register an input node with specified binding.
Definition Input.cpp:21
std::vector< Core::InputDeviceInfo > get_midi_devices()
Get a list of connected MIDI devices.
Definition Input.cpp:36
void unregister_input_node(const std::shared_ptr< Nodes::Input::InputNode > &node)
Unregister an input node.
Definition Input.cpp:26
Core::InputBinding bind_midi_note_off(std::optional< uint8_t > channel, uint32_t device_id)
Create binding for MIDI Note Off messages.
Definition Input.cpp:83
Core::InputBinding bind_midi_note_on(std::optional< uint8_t > channel, uint32_t device_id)
Create binding for MIDI Note On messages.
Definition Input.cpp:76
Core::InputBinding bind_osc(const std::string &pattern)
Create binding for OSC messages.
Definition Input.cpp:97
std::optional< Core::InputDeviceInfo > find_hid_device(uint16_t vendor_id, uint16_t product_id)
Find a HID device by vendor and product ID.
Definition Input.cpp:46
const Core::InputSubsystem & get_input_subsystem()
Gets the input subsystem.
Definition Input.cpp:10
Core::InputManager & get_input_manager()
Gets a handle to default input manager.
Definition Input.cpp:16
Core::InputBinding bind_serial(uint32_t device_id)
Create binding for Serial device.
Definition Input.cpp:102
std::vector< Core::InputDeviceInfo > get_all_input_devices()
Get a list of connected MIDI devices.
Definition Input.cpp:41
Core::InputBinding bind_midi(uint32_t device_id, std::optional< uint8_t > channel)
Create binding for MIDI device.
Definition Input.cpp:63
Core::InputBinding bind_midi_pitch_bend(std::optional< uint8_t > channel, uint32_t device_id)
Create binding for MIDI Pitch Bend messages.
Definition Input.cpp:90
Core::InputBinding bind_hid(uint32_t device_id)
Create binding for HID device.
Definition Input.cpp:53
std::vector< Core::InputDeviceInfo > get_hid_devices()
Get a list of connected HID devices.
Definition Input.cpp:31
Core::InputBinding bind_midi_cc(std::optional< uint8_t > cc_number, std::optional< uint8_t > channel, uint32_t device_id)
Create binding for MIDI Control Change messages.
Definition Input.cpp:68
Core::Engine & get_context()
Gets the default engine instance.
Definition Core.cpp:58
Main namespace for the Maya Flux audio engine.
Definition LiveAid.hpp:6
static InputBinding hid_by_vid_pid(uint16_t vid, uint16_t pid)
Bind to HID device by vendor/product ID.
static InputBinding midi_note_on(std::optional< uint8_t > channel={}, uint32_t device_id=0)
Bind to MIDI Note On messages.
static InputBinding midi_cc(std::optional< uint8_t > cc_number={}, std::optional< uint8_t > channel={}, uint32_t device_id=0)
Bind to MIDI Control Change messages.
static InputBinding midi(uint32_t device_id=0, std::optional< uint8_t > channel={})
Bind to MIDI device.
static InputBinding midi_pitch_bend(std::optional< uint8_t > channel={}, uint32_t device_id=0)
Bind to MIDI Pitch Bend messages.
static InputBinding serial(uint32_t device_id=0)
Bind to Serial device.
static InputBinding midi_note_off(std::optional< uint8_t > channel={}, uint32_t device_id=0)
Bind to MIDI Note Off messages.
static InputBinding osc(const std::string &pattern="")
Bind to OSC messages.
static InputBinding hid(uint32_t device_id=0)
Bind to HID device (any or specific)
Specifies what input an InputNode wants to receive.