X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fport_insert.h;h=657c2c0de6f5dedbd69526e7517db4d20b472d92;hb=6fa6514cfdb0ce38d93b51197f599dfd091bad1d;hp=7447c5b3e8485adba46d12c6ba2dce95497f521c;hpb=6e9b9294e1e7a22f31eabbafa39cee5844b3449a;p=ardour.git diff --git a/libs/ardour/ardour/port_insert.h b/libs/ardour/ardour/port_insert.h index 7447c5b3e8..657c2c0de6 100644 --- a/libs/ardour/ardour/port_insert.h +++ b/libs/ardour/ardour/port_insert.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2000,2007 Paul Davis + Copyright (C) 2000,2007 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -24,12 +24,12 @@ #include #include -#include #include "ardour/ardour.h" #include "ardour/io_processor.h" #include "ardour/types.h" class XMLNode; +class MTDM; namespace ARDOUR { @@ -37,38 +37,54 @@ class Session; class IO; class Delivery; class MuteMaster; +class Pannable; /** Port inserts: send output to a Jack port, pick up input at a Jack port */ class PortInsert : public IOProcessor { public: - PortInsert (Session&, boost::shared_ptr mm); - PortInsert (Session&, boost::shared_ptr mm, const XMLNode&); + PortInsert (Session&, boost::shared_ptr, boost::shared_ptr mm); ~PortInsert (); XMLNode& state(bool full); XMLNode& get_state(void); - int set_state(const XMLNode&); + int set_state (const XMLNode&, int version); - void run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes); + void run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, pframes_t nframes, bool); - nframes_t signal_latency() const; + framecnt_t signal_latency () const; bool set_name (const std::string& name); - + bool can_support_io_configuration (const ChanCount& in, ChanCount& out) const; bool configure_io (ChanCount in, ChanCount out); - uint32_t bit_slot() const { return bitslot; } + void activate (); + void deactivate (); + + uint32_t bit_slot() const { return _bitslot; } + + void start_latency_detection (); + void stop_latency_detection (); + + MTDM* mtdm () const { return _mtdm; } + void set_measured_latency (framecnt_t); + framecnt_t latency () const; + + static std::string name_and_id_new_insert (Session&, uint32_t&); private: /* disallow copy construction */ PortInsert (const PortInsert&); boost::shared_ptr _out; - - uint32_t bitslot; + + uint32_t _bitslot; + MTDM* _mtdm; + bool _latency_detect; + framecnt_t _latency_flush_frames; + framecnt_t _measured_latency; }; } // namespace ARDOUR