Add Virtual-Keyboard MIDI port
This commit is contained in:
parent
f4ebb5995d
commit
f961fd4687
@ -93,6 +93,12 @@ public:
|
|||||||
return _midi_clock_output_port;
|
return _midi_clock_output_port;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Virtual MIDI keyboard output */
|
||||||
|
boost::shared_ptr<ARDOUR::Port> vkbd_output_port () const
|
||||||
|
{
|
||||||
|
return boost::dynamic_pointer_cast<MidiPort> (_vkbd_out);
|
||||||
|
}
|
||||||
|
|
||||||
void set_midi_port_states (const XMLNodeList&);
|
void set_midi_port_states (const XMLNodeList&);
|
||||||
std::list<XMLNode*> get_midi_port_states () const;
|
std::list<XMLNode*> get_midi_port_states () const;
|
||||||
|
|
||||||
@ -106,6 +112,7 @@ protected:
|
|||||||
boost::shared_ptr<Port> _mmc_out;
|
boost::shared_ptr<Port> _mmc_out;
|
||||||
boost::shared_ptr<Port> _scene_in;
|
boost::shared_ptr<Port> _scene_in;
|
||||||
boost::shared_ptr<Port> _scene_out;
|
boost::shared_ptr<Port> _scene_out;
|
||||||
|
boost::shared_ptr<Port> _vkbd_out;
|
||||||
|
|
||||||
/* synchronously handled ports: ARDOUR::MidiPort */
|
/* synchronously handled ports: ARDOUR::MidiPort */
|
||||||
boost::shared_ptr<MidiPort> _mtc_output_port;
|
boost::shared_ptr<MidiPort> _mtc_output_port;
|
||||||
|
@ -1200,6 +1200,7 @@ public:
|
|||||||
boost::shared_ptr<Port> mmc_input_port () const;
|
boost::shared_ptr<Port> mmc_input_port () const;
|
||||||
boost::shared_ptr<Port> scene_input_port () const;
|
boost::shared_ptr<Port> scene_input_port () const;
|
||||||
boost::shared_ptr<Port> scene_output_port () const;
|
boost::shared_ptr<Port> scene_output_port () const;
|
||||||
|
boost::shared_ptr<Port> vkbd_output_port () const;
|
||||||
|
|
||||||
/* synchronous MIDI ports used for synchronization */
|
/* synchronous MIDI ports used for synchronization */
|
||||||
|
|
||||||
|
@ -593,6 +593,7 @@ ARDOUR::init (bool use_windows_vst, bool try_optimization, const char* localedir
|
|||||||
reserved_io_names[_("Monitor")] = true;
|
reserved_io_names[_("Monitor")] = true;
|
||||||
reserved_io_names[_("Master")] = true;
|
reserved_io_names[_("Master")] = true;
|
||||||
reserved_io_names["auditioner"] = true; // auditioner.cc Track (s, "auditioner",...)
|
reserved_io_names["auditioner"] = true; // auditioner.cc Track (s, "auditioner",...)
|
||||||
|
reserved_io_names[_("Virtual Keyboard")] = false;
|
||||||
|
|
||||||
/* pure I/O */
|
/* pure I/O */
|
||||||
reserved_io_names[X_("Click")] = false; // session.cc ClickIO (*this, X_("Click")
|
reserved_io_names[X_("Click")] = false; // session.cc ClickIO (*this, X_("Click")
|
||||||
|
@ -77,6 +77,9 @@ MidiPortManager::create_ports ()
|
|||||||
_scene_in = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("Scene in"), true);
|
_scene_in = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("Scene in"), true);
|
||||||
_scene_out = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("Scene out"), true);
|
_scene_out = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("Scene out"), true);
|
||||||
|
|
||||||
|
_vkbd_out = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("Virtual Keyboard"), true);
|
||||||
|
boost::dynamic_pointer_cast<AsyncMIDIPort>(_vkbd_out)->set_flush_at_cycle_start (true);
|
||||||
|
|
||||||
/* Now register ports used to send positional sync data (MTC and MIDI Clock) */
|
/* Now register ports used to send positional sync data (MTC and MIDI Clock) */
|
||||||
|
|
||||||
boost::shared_ptr<ARDOUR::Port> p;
|
boost::shared_ptr<ARDOUR::Port> p;
|
||||||
@ -102,6 +105,7 @@ MidiPortManager::set_midi_port_states (const XMLNodeList&nodes)
|
|||||||
ports.insert (make_pair (_midi_out->name(), _midi_out));
|
ports.insert (make_pair (_midi_out->name(), _midi_out));
|
||||||
ports.insert (make_pair (_mmc_in->name(), _mmc_in));
|
ports.insert (make_pair (_mmc_in->name(), _mmc_in));
|
||||||
ports.insert (make_pair (_mmc_out->name(), _mmc_out));
|
ports.insert (make_pair (_mmc_out->name(), _mmc_out));
|
||||||
|
ports.insert (make_pair (_vkbd_out->name(), _vkbd_out));
|
||||||
ports.insert (make_pair (_scene_out->name(), _scene_out));
|
ports.insert (make_pair (_scene_out->name(), _scene_out));
|
||||||
ports.insert (make_pair (_scene_in->name(), _scene_in));
|
ports.insert (make_pair (_scene_in->name(), _scene_in));
|
||||||
|
|
||||||
@ -132,6 +136,7 @@ MidiPortManager::get_midi_port_states () const
|
|||||||
ports.insert (make_pair (_midi_out->name(), _midi_out));
|
ports.insert (make_pair (_midi_out->name(), _midi_out));
|
||||||
ports.insert (make_pair (_mmc_in->name(), _mmc_in));
|
ports.insert (make_pair (_mmc_in->name(), _mmc_in));
|
||||||
ports.insert (make_pair (_mmc_out->name(), _mmc_out));
|
ports.insert (make_pair (_mmc_out->name(), _mmc_out));
|
||||||
|
ports.insert (make_pair (_vkbd_out->name(), _vkbd_out));
|
||||||
ports.insert (make_pair (_scene_out->name(), _scene_out));
|
ports.insert (make_pair (_scene_out->name(), _scene_out));
|
||||||
ports.insert (make_pair (_scene_in->name(), _scene_in));
|
ports.insert (make_pair (_scene_in->name(), _scene_in));
|
||||||
|
|
||||||
|
@ -692,13 +692,18 @@ Session::scene_input_port () const
|
|||||||
return _midi_ports->scene_input_port ();
|
return _midi_ports->scene_input_port ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boost::shared_ptr<ARDOUR::Port>
|
||||||
|
Session::vkbd_output_port () const
|
||||||
|
{
|
||||||
|
return _midi_ports->vkbd_output_port ();
|
||||||
|
}
|
||||||
|
|
||||||
boost::shared_ptr<MidiPort>
|
boost::shared_ptr<MidiPort>
|
||||||
Session::midi_clock_output_port () const
|
Session::midi_clock_output_port () const
|
||||||
{
|
{
|
||||||
return _midi_ports->midi_clock_output_port ();
|
return _midi_ports->midi_clock_output_port ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
boost::shared_ptr<MidiPort>
|
boost::shared_ptr<MidiPort>
|
||||||
Session::mtc_output_port () const
|
Session::mtc_output_port () const
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user