+ void notify_metering_state_changed();
+ void turn_it_on ();
+
+ void display_message_for (std::string const& msg, uint64_t msecs);
+
+ bool connection_handler (boost::weak_ptr<ARDOUR::Port>, std::string name1, boost::weak_ptr<ARDOUR::Port>, std::string name2, bool);
+
+ void master_monitor_may_have_changed ();
+
+ XMLNode& get_state ();
+ int set_state (const XMLNode&, int version);
+
+ bool get_qcon_flag() { return is_qcon; }
+
+ private:
+ MackieControlProtocol& _mcp;
+ SurfacePort* _port;
+ surface_type_t _stype;
+ uint32_t _number;
+ std::string _name;
+ bool _active;
+ bool _connected;
+ Mackie::JogWheel* _jog_wheel;
+ Fader* _master_fader;
+ float _last_master_gain_written;
+ PBD::ScopedConnection master_connection;
+
+ void handle_midi_sysex (MIDI::Parser&, MIDI::byte *, size_t count);
+ MidiByteArray host_connection_query (MidiByteArray& bytes);
+ MidiByteArray host_connection_confirmation (const MidiByteArray& bytes);
+
+ void say_hello ();
+ void init_controls ();
+ void init_strips (uint32_t n);
+ void setup_master ();
+ void master_gain_changed ();
+
+ enum ConnectionState {
+ InputConnected = 0x1,
+ OutputConnected = 0x2
+ };
+
+ int connection_state;
+
+ // QCon Flag
+ bool is_qcon;
+
+ MidiByteArray display_line (std::string const& msg, int line_num);
+
+ public:
+ /* IP MIDI devices need to keep a handle on this and destroy it */
+ GSource* input_source;