upgrade to libremidi 5.1, raylib and raygui latest
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
#pragma once
|
||||
#include <libremidi/config.hpp>
|
||||
|
||||
#include <any>
|
||||
#include <tuple>
|
||||
|
||||
#if !__has_include(<weak_libjack.h>) && !__has_include(<jack/jack.h>)
|
||||
@@ -30,10 +29,14 @@
|
||||
|
||||
#if defined(LIBREMIDI_JACK)
|
||||
#include <libremidi/backends/jack.hpp>
|
||||
#include <libremidi/backends/jack_ump.hpp>
|
||||
#endif
|
||||
|
||||
#if defined(LIBREMIDI_PIPEWIRE)
|
||||
#include <libremidi/backends/pipewire.hpp>
|
||||
#if defined(LIBREMIDI_PIPEWIRE_UMP)
|
||||
#include <libremidi/backends/pipewire_ump.hpp>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(LIBREMIDI_COREMIDI)
|
||||
@@ -163,6 +166,14 @@ static constexpr auto available_backends = make_tl(
|
||||
#if defined(LIBREMIDI_NETWORK)
|
||||
,
|
||||
net_ump::backend{}
|
||||
#endif
|
||||
#if defined(LIBREMIDI_JACK)
|
||||
,
|
||||
jack_ump::backend{}
|
||||
#endif
|
||||
#if defined(LIBREMIDI_PIPEWIRE_UMP)
|
||||
,
|
||||
pipewire_ump::backend{}
|
||||
#endif
|
||||
,
|
||||
dummy_backend{});
|
||||
@@ -173,7 +184,7 @@ static_assert(std::tuple_size_v<decltype(available_backends)> >= 1);
|
||||
template <typename F>
|
||||
auto for_all_backends(F&& f)
|
||||
{
|
||||
std::apply([&](auto&&... x) { (f(x), ...); }, available_backends);
|
||||
std::apply([&](auto&&... x) { ((x.available() && (f(x), true)), ...); }, available_backends);
|
||||
}
|
||||
|
||||
template <typename F>
|
||||
@@ -202,10 +213,10 @@ auto for_backend(libremidi::API api, F&& f)
|
||||
midi2::for_backend(api, f);
|
||||
}
|
||||
|
||||
void for_input_configuration(auto f, std::any& api_conf)
|
||||
void for_input_configuration(auto f, libremidi::input_api_configuration& api_conf)
|
||||
{
|
||||
auto from_api = [&]<typename T>(T& /*backend*/) mutable {
|
||||
if (auto conf = std::any_cast<typename T::midi_in_configuration>(&api_conf))
|
||||
if (auto conf = std::get_if<typename T::midi_in_configuration>(&api_conf))
|
||||
{
|
||||
f(*conf);
|
||||
return true;
|
||||
@@ -217,10 +228,10 @@ void for_input_configuration(auto f, std::any& api_conf)
|
||||
std::apply([&](auto&&... b) { return (from_api(b) || ...); }, midi2::available_backends);
|
||||
}
|
||||
|
||||
void for_output_configuration(auto f, std::any& api_conf)
|
||||
void for_output_configuration(auto f, libremidi::output_api_configuration& api_conf)
|
||||
{
|
||||
auto from_api = [&]<typename T>(T& /*backend*/) mutable {
|
||||
if (auto conf = std::any_cast<typename T::midi_out_configuration>(&api_conf))
|
||||
if (auto conf = std::get_if<typename T::midi_out_configuration>(&api_conf))
|
||||
{
|
||||
f(*conf);
|
||||
return true;
|
||||
@@ -232,10 +243,10 @@ void for_output_configuration(auto f, std::any& api_conf)
|
||||
std::apply([&](auto&&... b) { return (from_api(b) || ...); }, midi2::available_backends);
|
||||
}
|
||||
|
||||
void for_observer_configuration(auto f, std::any& api_conf)
|
||||
void for_observer_configuration(auto f, libremidi::observer_api_configuration& api_conf)
|
||||
{
|
||||
auto from_api = [&]<typename T>(T& /*backend*/) mutable {
|
||||
if (auto conf = std::any_cast<typename T::midi_observer_configuration>(&api_conf))
|
||||
if (auto conf = std::get_if<typename T::midi_observer_configuration>(&api_conf))
|
||||
{
|
||||
f(*conf);
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user