You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
687B

  1. #pragma once
  2. #include "midi.hpp"
  3. #include <map>
  4. namespace rack {
  5. #define VST_DRIVER (-0x4489)
  6. struct VSTMidiInputDevice : MidiInputDevice {
  7. VSTMidiInputDevice(int driverId, int deviceId);
  8. ~VSTMidiInputDevice();
  9. };
  10. struct VSTMidiDriver : MidiDriver {
  11. VSTMidiInputDevice *device;
  12. VSTMidiDriver(int driverId);
  13. ~VSTMidiDriver();
  14. std::string getName() override;
  15. std::vector<int> getInputDeviceIds() override;
  16. std::string getInputDeviceName(int deviceId) override;
  17. MidiInputDevice *subscribeInputDevice(int deviceId, MidiInput *midiInput) override;
  18. void unsubscribeInputDevice(int deviceId, MidiInput *midiInput) override;
  19. };
  20. void vstmidiInit();
  21. } // namespace rack