NAP
midiinputport.h
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4 
5 #pragma once
6 
7 #include "midiservice.h"
8 #include "midiportinfo.h"
9 
10 // Nap includes
11 #include <rtti/object.h>
12 #include <utility/dllexport.h>
13 #include <nap/device.h>
14 
15 namespace nap
16 {
22  class NAPAPI MidiInputPort : public Device
23  {
24  RTTI_ENABLE(Device)
25  public:
26  MidiInputPort() = default;
27  MidiInputPort(MidiService& service);
28 
34  virtual bool start(utility::ErrorState& errorState) override;
35 
39  virtual void stop() override;
40 
44  MidiService& getService();
45 
49  void receiveEvent(std::unique_ptr<MidiEvent> event) { mService->enqueueEvent(std::move(event)); }
50 
54  const std::vector<int> getPortNumbers() const { return mPortNumbers; }
55 
59  std::string getPortNames() const;
60 
65  std::vector<std::string> mPortNames;
66  bool mDebugOutput = false;
67 
68  private:
69  std::vector<std::unique_ptr<RtMidiIn>> mMidiIns;
70  MidiService* mService = nullptr;
71  std::vector<int> mPortNumbers;
72  };
73 
74  // Object creator used for constructing the the OSC receiver
76 
77 }
nap::MidiInputPort::receiveEvent
void receiveEvent(std::unique_ptr< MidiEvent > event)
Definition: midiinputport.h:49
nap::MidiInputPort::getPortNumbers
const std::vector< int > getPortNumbers() const
Definition: midiinputport.h:54
nap::MidiInputPort::mPortNames
std::vector< std::string > mPortNames
Property: 'Ports' names of ports this object opens and listens to. When left empty all ports are open...
Definition: midiinputport.h:65
nap::rtti::ObjectCreator
Definition: factory.h:49
nap::utility::ErrorState
Definition: errorstate.h:19
nap::MidiService
Definition: midiservice.h:26
nap
Definition: templateapp.h:17
nap::MidiInputPort
Definition: midiinputport.h:22
nap::Device
Definition: device.h:20