upgrade to libremidi 5.1, raylib and raygui latest
This commit is contained in:
@@ -11,6 +11,7 @@ namespace libremidi::winmidi
|
||||
class midi_out_impl final
|
||||
: public midi2::out_api
|
||||
, public error_handler
|
||||
, public winmidi_shared_data
|
||||
{
|
||||
public:
|
||||
struct
|
||||
@@ -21,7 +22,9 @@ public:
|
||||
|
||||
midi_out_impl(libremidi::output_configuration&& conf, winmidi::output_configuration&& apiconf)
|
||||
: configuration{std::move(conf), std::move(apiconf)}
|
||||
, m_session{MidiSession::CreateSession(L"libremidi session")}
|
||||
, m_session{
|
||||
configuration.context ? *configuration.context
|
||||
: MidiSession::Create(to_hstring(configuration.client_name))}
|
||||
{
|
||||
this->client_open_ = stdx::error{};
|
||||
}
|
||||
@@ -35,11 +38,15 @@ public:
|
||||
|
||||
stdx::error open_port(const output_port& port, std::string_view) override
|
||||
{
|
||||
auto ep = get_port_by_name(port.port_name);
|
||||
if (!ep)
|
||||
auto device_id = std::get_if<std::string>(&port.device);
|
||||
if (!device_id)
|
||||
return std::errc::invalid_argument;
|
||||
|
||||
auto [ep, gp] = get_port(*device_id, port.port);
|
||||
if (!ep || !gp)
|
||||
return std::errc::address_not_available;
|
||||
|
||||
m_endpoint = m_session.CreateEndpointConnection(ep.Id());
|
||||
m_endpoint = m_session.CreateEndpointConnection(ep.EndpointDeviceId());
|
||||
m_endpoint.Open();
|
||||
|
||||
return stdx::error{};
|
||||
@@ -83,7 +90,7 @@ public:
|
||||
|
||||
private:
|
||||
MidiSession m_session;
|
||||
winrt::Windows::Devices::Midi2::MidiEndpointConnection m_endpoint{nullptr};
|
||||
winrt::Microsoft::Windows::Devices::Midi2::MidiEndpointConnection m_endpoint{nullptr};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user