make faderport support report its port bundles as it should
This commit is contained in:
parent
4f427c5f97
commit
b07d86ac61
@ -39,6 +39,7 @@
|
|||||||
#include "ardour/async_midi_port.h"
|
#include "ardour/async_midi_port.h"
|
||||||
#include "ardour/audioengine.h"
|
#include "ardour/audioengine.h"
|
||||||
#include "ardour/amp.h"
|
#include "ardour/amp.h"
|
||||||
|
#include "ardour/bundle.h"
|
||||||
#include "ardour/debug.h"
|
#include "ardour/debug.h"
|
||||||
#include "ardour/filesystem_paths.h"
|
#include "ardour/filesystem_paths.h"
|
||||||
#include "ardour/midi_port.h"
|
#include "ardour/midi_port.h"
|
||||||
@ -90,6 +91,22 @@ FaderPort::FaderPort (Session& s)
|
|||||||
throw failed_constructor();
|
throw failed_constructor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_input_bundle.reset (new ARDOUR::Bundle (_("Faderport Support (Receive)"), true));
|
||||||
|
_output_bundle.reset (new ARDOUR::Bundle (_("Faderport Support (Send) "), false));
|
||||||
|
|
||||||
|
_input_bundle->add_channel (
|
||||||
|
inp->name(),
|
||||||
|
ARDOUR::DataType::MIDI,
|
||||||
|
session->engine().make_port_name_non_relative (inp->name())
|
||||||
|
);
|
||||||
|
|
||||||
|
_output_bundle->add_channel (
|
||||||
|
outp->name(),
|
||||||
|
ARDOUR::DataType::MIDI,
|
||||||
|
session->engine().make_port_name_non_relative (outp->name())
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
TrackSelectionChanged.connect (selection_connection, MISSING_INVALIDATOR, boost::bind (&FaderPort::gui_track_selection_changed, this, _1), this);
|
TrackSelectionChanged.connect (selection_connection, MISSING_INVALIDATOR, boost::bind (&FaderPort::gui_track_selection_changed, this, _1), this);
|
||||||
|
|
||||||
/* Catch port connections and disconnections */
|
/* Catch port connections and disconnections */
|
||||||
@ -1085,7 +1102,7 @@ FaderPort::map_auto ()
|
|||||||
get_button (FP_Off).set_led_state (_output_port, true);
|
get_button (FP_Off).set_led_state (_output_port, true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1203,6 +1220,19 @@ FaderPort::map_route_state ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list<boost::shared_ptr<ARDOUR::Bundle> >
|
||||||
|
FaderPort::bundles ()
|
||||||
|
{
|
||||||
|
list<boost::shared_ptr<ARDOUR::Bundle> > b;
|
||||||
|
|
||||||
|
if (_input_bundle) {
|
||||||
|
b.push_back (_input_bundle);
|
||||||
|
b.push_back (_output_bundle);
|
||||||
|
}
|
||||||
|
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
|
||||||
boost::shared_ptr<Port>
|
boost::shared_ptr<Port>
|
||||||
FaderPort::output_port()
|
FaderPort::output_port()
|
||||||
{
|
{
|
||||||
|
@ -55,6 +55,7 @@ namespace MIDI {
|
|||||||
|
|
||||||
namespace ARDOUR {
|
namespace ARDOUR {
|
||||||
class AsyncMIDIPort;
|
class AsyncMIDIPort;
|
||||||
|
class Bundle;
|
||||||
class Port;
|
class Port;
|
||||||
class Session;
|
class Session;
|
||||||
class MidiPort;
|
class MidiPort;
|
||||||
@ -158,6 +159,8 @@ class FaderPort : public ARDOUR::ControlProtocol, public AbstractUI<FaderPortReq
|
|||||||
void set_action (ButtonID, std::string const& action_name, bool on_press, FaderPort::ButtonState = ButtonState (0));
|
void set_action (ButtonID, std::string const& action_name, bool on_press, FaderPort::ButtonState = ButtonState (0));
|
||||||
std::string get_action (ButtonID, bool on_press, FaderPort::ButtonState = ButtonState (0));
|
std::string get_action (ButtonID, bool on_press, FaderPort::ButtonState = ButtonState (0));
|
||||||
|
|
||||||
|
std::list<boost::shared_ptr<ARDOUR::Bundle> > bundles ();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
boost::shared_ptr<ARDOUR::Route> _current_route;
|
boost::shared_ptr<ARDOUR::Route> _current_route;
|
||||||
boost::weak_ptr<ARDOUR::Route> pre_master_route;
|
boost::weak_ptr<ARDOUR::Route> pre_master_route;
|
||||||
@ -166,6 +169,11 @@ class FaderPort : public ARDOUR::ControlProtocol, public AbstractUI<FaderPortReq
|
|||||||
boost::shared_ptr<ARDOUR::AsyncMIDIPort> _input_port;
|
boost::shared_ptr<ARDOUR::AsyncMIDIPort> _input_port;
|
||||||
boost::shared_ptr<ARDOUR::AsyncMIDIPort> _output_port;
|
boost::shared_ptr<ARDOUR::AsyncMIDIPort> _output_port;
|
||||||
|
|
||||||
|
// Bundle to represent our input ports
|
||||||
|
boost::shared_ptr<ARDOUR::Bundle> _input_bundle;
|
||||||
|
// Bundle to represent our output ports
|
||||||
|
boost::shared_ptr<ARDOUR::Bundle> _output_bundle;
|
||||||
|
|
||||||
PBD::ScopedConnectionList midi_connections;
|
PBD::ScopedConnectionList midi_connections;
|
||||||
|
|
||||||
bool midi_input_handler (Glib::IOCondition ioc, boost::shared_ptr<ARDOUR::AsyncMIDIPort> port);
|
bool midi_input_handler (Glib::IOCondition ioc, boost::shared_ptr<ARDOUR::AsyncMIDIPort> port);
|
||||||
|
Loading…
Reference in New Issue
Block a user