upgrade to libremidi 5.1, raylib and raygui latest
This commit is contained in:
@@ -61,14 +61,14 @@ convert_midi2_to_midi1_input_configuration(const ump_input_configuration& base_c
|
||||
}
|
||||
|
||||
static LIBREMIDI_INLINE std::unique_ptr<midi_in_api>
|
||||
make_midi_in(auto base_conf, std::any api_conf, auto backends)
|
||||
make_midi_in(auto base_conf, input_api_configuration api_conf, auto backends)
|
||||
{
|
||||
std::unique_ptr<midi_in_api> ptr;
|
||||
|
||||
assert(base_conf.on_message || base_conf.on_raw_data);
|
||||
|
||||
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))
|
||||
{
|
||||
ptr = libremidi::make<typename T::midi_in>(std::move(base_conf), std::move(*conf));
|
||||
return true;
|
||||
@@ -117,8 +117,9 @@ make_midi1_in(const input_configuration& base_conf)
|
||||
return std::make_unique<midi_in_dummy>(input_configuration{}, dummy_configuration{});
|
||||
}
|
||||
|
||||
static LIBREMIDI_INLINE std::unique_ptr<midi_in_api>
|
||||
make_midi1_in(const input_configuration& base_conf, const std::any& api_conf, libremidi::API api)
|
||||
static LIBREMIDI_INLINE std::unique_ptr<midi_in_api> make_midi1_in(
|
||||
const input_configuration& base_conf, const input_api_configuration& api_conf,
|
||||
libremidi::API api)
|
||||
{
|
||||
if (libremidi::is_midi1(api))
|
||||
{
|
||||
@@ -133,13 +134,13 @@ make_midi1_in(const input_configuration& base_conf, const std::any& api_conf, li
|
||||
}
|
||||
|
||||
static LIBREMIDI_INLINE std::unique_ptr<midi_in_api>
|
||||
make_midi1_in(const input_configuration& base_conf, const std::any& api_conf)
|
||||
make_midi1_in(const input_configuration& base_conf, const input_api_configuration& api_conf)
|
||||
{
|
||||
if (!api_conf.has_value())
|
||||
if (std::get_if<unspecified_configuration>(&api_conf))
|
||||
{
|
||||
return make_midi1_in(base_conf);
|
||||
}
|
||||
else if (auto api_p = std::any_cast<libremidi::API>(&api_conf))
|
||||
else if (auto api_p = std::get_if<libremidi::API>(&api_conf))
|
||||
{
|
||||
if (*api_p == libremidi::API::UNSPECIFIED)
|
||||
{
|
||||
@@ -161,19 +162,19 @@ make_midi1_in(const input_configuration& base_conf, const std::any& api_conf)
|
||||
|
||||
/// MIDI 1 constructors
|
||||
LIBREMIDI_INLINE midi_in::midi_in(const input_configuration& base_conf) noexcept
|
||||
: impl_{make_midi1_in(base_conf)}
|
||||
: m_impl{make_midi1_in(base_conf)}
|
||||
{
|
||||
}
|
||||
|
||||
LIBREMIDI_INLINE
|
||||
midi_in::midi_in(input_configuration base_conf, std::any api_conf)
|
||||
: impl_{make_midi1_in(base_conf, api_conf)}
|
||||
midi_in::midi_in(const input_configuration& base_conf, const input_api_configuration& api_conf)
|
||||
: m_impl{make_midi1_in(base_conf, api_conf)}
|
||||
{
|
||||
if (!impl_)
|
||||
if (!m_impl)
|
||||
{
|
||||
error_handler e;
|
||||
e.libremidi_handle_error(base_conf, "Could not open midi in for the given api");
|
||||
impl_ = std::make_unique<midi_in_dummy>(input_configuration{}, dummy_configuration{});
|
||||
m_impl = std::make_unique<midi_in_dummy>(input_configuration{}, dummy_configuration{});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -214,7 +215,8 @@ make_midi2_in(const ump_input_configuration& base_conf)
|
||||
}
|
||||
|
||||
static LIBREMIDI_INLINE std::unique_ptr<midi_in_api> make_midi2_in(
|
||||
const ump_input_configuration& base_conf, const std::any& api_conf, libremidi::API api)
|
||||
const ump_input_configuration& base_conf, const input_api_configuration& api_conf,
|
||||
libremidi::API api)
|
||||
{
|
||||
if (is_midi2(api))
|
||||
{
|
||||
@@ -230,13 +232,13 @@ static LIBREMIDI_INLINE std::unique_ptr<midi_in_api> make_midi2_in(
|
||||
}
|
||||
|
||||
static LIBREMIDI_INLINE std::unique_ptr<midi_in_api>
|
||||
make_midi2_in(const ump_input_configuration& base_conf, const std::any& api_conf)
|
||||
make_midi2_in(const ump_input_configuration& base_conf, const input_api_configuration& api_conf)
|
||||
{
|
||||
if (!api_conf.has_value())
|
||||
if (std::get_if<unspecified_configuration>(&api_conf))
|
||||
{
|
||||
return make_midi2_in(base_conf);
|
||||
}
|
||||
else if (auto api_p = std::any_cast<libremidi::API>(&api_conf))
|
||||
else if (auto api_p = std::get_if<libremidi::API>(&api_conf))
|
||||
{
|
||||
if (*api_p == libremidi::API::UNSPECIFIED)
|
||||
{
|
||||
@@ -257,45 +259,45 @@ make_midi2_in(const ump_input_configuration& base_conf, const std::any& api_conf
|
||||
}
|
||||
|
||||
/// MIDI 2 constructors
|
||||
LIBREMIDI_INLINE midi_in::midi_in(ump_input_configuration base_conf) noexcept
|
||||
: impl_{make_midi2_in(base_conf)}
|
||||
LIBREMIDI_INLINE midi_in::midi_in(const ump_input_configuration& base_conf) noexcept
|
||||
: m_impl{make_midi2_in(base_conf)}
|
||||
{
|
||||
}
|
||||
|
||||
LIBREMIDI_INLINE
|
||||
midi_in::midi_in(ump_input_configuration base_conf, std::any api_conf)
|
||||
: impl_{make_midi2_in(base_conf, api_conf)}
|
||||
midi_in::midi_in(const ump_input_configuration& base_conf, const input_api_configuration& api_conf)
|
||||
: m_impl{make_midi2_in(base_conf, api_conf)}
|
||||
{
|
||||
if (!impl_)
|
||||
if (!m_impl)
|
||||
{
|
||||
error_handler e;
|
||||
e.libremidi_handle_error(base_conf, "Could not open midi in for the given api");
|
||||
impl_ = std::make_unique<midi_in_dummy>(input_configuration{}, dummy_configuration{});
|
||||
m_impl = std::make_unique<midi_in_dummy>(input_configuration{}, dummy_configuration{});
|
||||
}
|
||||
}
|
||||
|
||||
LIBREMIDI_INLINE midi_in::~midi_in() = default;
|
||||
|
||||
LIBREMIDI_INLINE midi_in::midi_in(midi_in&& other) noexcept
|
||||
: impl_{std::move(other.impl_)}
|
||||
: m_impl{std::move(other.m_impl)}
|
||||
{
|
||||
other.impl_
|
||||
other.m_impl
|
||||
= std::make_unique<libremidi::midi_in_dummy>(input_configuration{}, dummy_configuration{});
|
||||
}
|
||||
|
||||
LIBREMIDI_INLINE
|
||||
stdx::error midi_in::set_port_name(std::string_view portName)
|
||||
{
|
||||
if(impl_->is_port_open())
|
||||
return impl_->set_port_name(portName);
|
||||
if (m_impl->is_port_open())
|
||||
return m_impl->set_port_name(portName);
|
||||
|
||||
return std::errc::not_connected;
|
||||
}
|
||||
|
||||
LIBREMIDI_INLINE midi_in& midi_in::operator=(midi_in&& other) noexcept
|
||||
{
|
||||
this->impl_ = std::move(other.impl_);
|
||||
other.impl_
|
||||
this->m_impl = std::move(other.m_impl);
|
||||
other.m_impl
|
||||
= std::make_unique<libremidi::midi_in_dummy>(input_configuration{}, dummy_configuration{});
|
||||
return *this;
|
||||
}
|
||||
@@ -303,23 +305,23 @@ LIBREMIDI_INLINE midi_in& midi_in::operator=(midi_in&& other) noexcept
|
||||
LIBREMIDI_INLINE
|
||||
libremidi::API midi_in::get_current_api() const noexcept
|
||||
{
|
||||
return impl_->get_current_api();
|
||||
return m_impl->get_current_api();
|
||||
}
|
||||
|
||||
LIBREMIDI_INLINE
|
||||
stdx::error midi_in::open_port(const input_port& port, std::string_view portName)
|
||||
{
|
||||
if (auto err = impl_->is_client_open(); err != stdx::error{})
|
||||
if (auto err = m_impl->is_client_open(); err != stdx::error{})
|
||||
return std::errc::not_connected;
|
||||
|
||||
if (impl_->is_port_open())
|
||||
if (m_impl->is_port_open())
|
||||
return std::errc::operation_not_supported;
|
||||
|
||||
auto ret = impl_->open_port(port, portName);
|
||||
auto ret = m_impl->open_port(port, portName);
|
||||
if (ret == stdx::error{})
|
||||
{
|
||||
impl_->connected_ = true;
|
||||
impl_->port_open_ = true;
|
||||
m_impl->connected_ = true;
|
||||
m_impl->port_open_ = true;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@@ -327,28 +329,28 @@ stdx::error midi_in::open_port(const input_port& port, std::string_view portName
|
||||
LIBREMIDI_INLINE
|
||||
stdx::error midi_in::open_virtual_port(std::string_view portName)
|
||||
{
|
||||
if (auto err = impl_->is_client_open(); err != stdx::error{})
|
||||
if (auto err = m_impl->is_client_open(); err != stdx::error{})
|
||||
return std::errc::not_connected;
|
||||
|
||||
if (impl_->is_port_open())
|
||||
if (m_impl->is_port_open())
|
||||
return std::errc::operation_not_supported;
|
||||
|
||||
auto ret = impl_->open_virtual_port(portName);
|
||||
auto ret = m_impl->open_virtual_port(portName);
|
||||
if (ret == stdx::error{})
|
||||
impl_->port_open_ = true;
|
||||
m_impl->port_open_ = true;
|
||||
return ret;
|
||||
}
|
||||
|
||||
LIBREMIDI_INLINE
|
||||
stdx::error midi_in::close_port()
|
||||
{
|
||||
if (auto err = impl_->is_client_open(); err != stdx::error{})
|
||||
if (auto err = m_impl->is_client_open(); err != stdx::error{})
|
||||
return std::errc::not_connected;
|
||||
|
||||
auto ret = impl_->close_port();
|
||||
auto ret = m_impl->close_port();
|
||||
|
||||
impl_->connected_ = false;
|
||||
impl_->port_open_ = false;
|
||||
m_impl->connected_ = false;
|
||||
m_impl->port_open_ = false;
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -356,18 +358,18 @@ stdx::error midi_in::close_port()
|
||||
LIBREMIDI_INLINE
|
||||
bool midi_in::is_port_open() const noexcept
|
||||
{
|
||||
return impl_->is_port_open();
|
||||
return m_impl->is_port_open();
|
||||
}
|
||||
|
||||
LIBREMIDI_INLINE
|
||||
bool midi_in::is_port_connected() const noexcept
|
||||
{
|
||||
return impl_->is_port_connected();
|
||||
return m_impl->is_port_connected();
|
||||
}
|
||||
|
||||
LIBREMIDI_INLINE
|
||||
int64_t midi_in::absolute_timestamp() const noexcept
|
||||
{
|
||||
return impl_->absolute_timestamp();
|
||||
return m_impl->absolute_timestamp();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user