- XMLNode *pending_state_node;
- int ports_became_legal ();
-
- private:
- mutable Glib::Mutex io_lock;
-
- protected:
- Session& _session;
- Panner* _panner;
- gain_t _gain;
- gain_t _effective_gain;
- gain_t _desired_gain;
- Glib::Mutex declick_lock;
- vector<Port*> _outputs;
- vector<Port*> _inputs;
- vector<float> _peak_power;
- vector<float> _visible_peak_power;
- string _name;
- Connection* _input_connection;
- Connection* _output_connection;
- id_t _id;
- bool no_panner_reset;
- XMLNode* deferred_state;
-
- virtual void set_deferred_state() {}
-
- void reset_peak_meters();
- void reset_panner ();
-
- virtual uint32_t pans_required() const { return _ninputs; }
-
- static void apply_declick (vector<Sample*>&, uint32_t nbufs, jack_nframes_t nframes,
- gain_t initial, gain_t target, bool invert_polarity);
-
- struct MIDIGainControl : public MIDI::Controllable {
- MIDIGainControl (IO&, MIDI::Port *);
- void set_value (float);
-
- void send_feedback (gain_t);
- MIDI::byte* write_feedback (MIDI::byte* buf, int32_t& bufsize, gain_t val, bool force = false);
-
- IO& io;
- bool setting;
- MIDI::byte last_written;
-
- gain_t (*midi_to_gain) (double val);
- double (*gain_to_midi) (gain_t gain);
- };
-
- MIDIGainControl _midi_gain_control;
-
- /* state management */