#pragma once #include #if __has_include() #include #endif // Necessary for the versions of ALSA that did have UMP // through snd_seq_event, before snd_seq_ump_event existed. extern "C" { typedef struct snd_seq_ump_event snd_seq_ump_event_t; } namespace libremidi::alsa_seq_ump { struct poll_parameters { snd_seq_addr_t addr{}; std::function callback; }; struct input_configuration { using poll_parameters_type = poll_parameters; std::string client_name = "libremidi client"; snd_seq_t* context{}; std::function manual_poll; std::function stop_poll; static constexpr int midi_version = 2; }; struct output_configuration { std::string client_name = "libremidi client"; snd_seq_t* context{}; static constexpr int midi_version = 2; }; struct observer_configuration { std::string client_name = "libremidi client"; snd_seq_t* context{}; std::function manual_poll; std::function stop_poll; static constexpr int midi_version = 2; }; }