namespace ARDOUR {
class AutomationControl;
+ class Port;
}
namespace MIDI {
enum ViewMode {
Mixer,
- Loop,
AudioTracks,
MidiTracks,
Busses,
+ Auxes,
+ Selected,
+ Plugins,
};
enum PotMode {
- Tracks,
+ Trim,
Send,
Pan,
- PlugIn,
- EQ,
- Instrument,
};
enum FlipMode {
Mackie::DeviceProfile& device_profile() { return _device_profile; }
PBD::Signal0<void> DeviceChanged;
+ PBD::Signal1<void,boost::shared_ptr<Mackie::Surface> > ConnectionChange;
void device_ready ();
int set_active (bool yn);
- int set_device (const std::string&);
+ int set_device (const std::string&, bool force);
void set_profile (const std::string&);
FlipMode flip_mode () const { return _flip_mode; }
bool zoom_mode () const { return modifier_state() & MODIFIER_ZOOM; }
bool metering_active () const { return _metering_active; }
+ bool is_track (boost::shared_ptr<ARDOUR::Route>) const;
+ bool is_audio_track (boost::shared_ptr<ARDOUR::Route>) const;
+ bool is_midi_track (boost::shared_ptr<ARDOUR::Route>) const;
+ bool selected (boost::shared_ptr<ARDOUR::Route>) const;
+
void set_view_mode (ViewMode);
void set_flip_mode (FlipMode);
void set_pot_mode (PotMode);
+ void display_view_mode ();
XMLNode& get_state ();
int set_state (const XMLNode&, int version);
typedef std::list<boost::shared_ptr<Mackie::Surface> > Surfaces;
Surfaces surfaces;
+ boost::shared_ptr<Mackie::Surface> get_surface_by_raw_pointer (void*) const;
boost::shared_ptr<Mackie::Surface> nth_surface (uint32_t) const;
std::list<boost::shared_ptr<ARDOUR::Bundle> > bundles ();
int16_t ipmidi_base() const { return _ipmidi_base; }
void set_ipmidi_base (int16_t);
- bool session_load () { return _session_load; }
- void not_session_load () { _session_load = false; }
-
void ping_devices ();
protected:
Mackie::Timer _frm_left_last;
// last written timecode string
std::string _timecode_last;
+ framepos_t _frame_last;
// Which timecode are we displaying? BBT or Timecode
ARDOUR::AnyTime::Type _timecode_type;
// Bundle to represent our input ports
bool _metering_active;
bool _initialized;
ARDOUR::RouteNotificationList _last_selected_routes;
- XMLNode* _surfaces_state;
- int _surfaces_version;
- bool _session_load;
+ XMLNode* configuration_state;
+ int state_version;
+ int _last_bank[9];
+
boost::shared_ptr<ArdourSurface::Mackie::Surface> _master_surface;
struct ipMIDIHandler {
int ipmidi_restart ();
void initialize ();
int set_device_info (const std::string& device_name);
+ void update_configuration_state ();
+
+ /* MIDI port connection management */
+
+ PBD::ScopedConnection port_connection;
+ void connection_handler (boost::weak_ptr<ARDOUR::Port>, std::string name1, boost::weak_ptr<ARDOUR::Port>, std::string name2, bool);
/* BUTTON HANDLING */