#pragma once #include #include #include #include namespace libremidi { class observer_emscripten final : public observer_api { using device = webmidi_helpers::device_information; public: struct : observer_configuration , emscripten_observer_configuration { } configuration; explicit observer_emscripten( observer_configuration&& conf, emscripten_observer_configuration&& apiconf); ~observer_emscripten(); void update(const std::vector& current_inputs, const std::vector& current_outputs); libremidi::API get_current_api() const noexcept override; std::vector get_input_ports() const noexcept override; std::vector get_output_ports() const noexcept override; private: std::vector m_known_inputs; std::vector m_known_outputs; }; }