---
<p class="warning">
-This documention is far from complete may be inaccurate and subject to change.
+This documentation is far from complete may be inaccurate and subject to change.
</p>
e.g <code>obj = Session:route_by_name("Audio") obj:set_name("Guitar")</code>.
</p>
<p>
+Lua automatically follows C++ class inheritance. e.g one can directly call all SessionObject and Route methods on Track object. However lua does not automatically promote objects. A Route object which just happens to be a Track needs to be explicily cast to a Track. Methods for casts are provided with each class. Note that the cast may fail and return a <em>nil</em> reference.
+</p>
+<p>
+Likewise multiple inheritance is a <a href="http://www.lua.org/pil/16.3.html">non-trivial issue</a> in lua. To avoid performance penalties involved with lookups, explicit casts are required in this case. One example is <a class="" href="#ARDOUR:SessionObject">ARDOUR:SessionObject</a> which is-a StatefulDestructible which inhertis from both Stateful and Destructible.
+</p>
+<p>
Object lifetimes are managed by the Session. Most Objects cannot be directly created, but one asks the Session to create or destroy them. This is mainly due to realtime constrains:
you cannot simply remove a track that is currently processing audio. There are various <em>factory</em> methods for object creation or removal.
</p>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::Amp >, boost::weak_ptr< ARDOUR::Amp ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:Processor">ARDOUR:Processor</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> Applies a declick operation to all audio inputs, passing the same number of audio outputs, and passing through any other types unchanged.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><a class="" href="#ARDOUR:GainControl">GainControl</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::GainControl> (ARDOUR::Amp::*)()">gain_control</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#Evoral:Control">Control</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<Evoral::Control> (Evoral::ControlSet::*)(Evoral::Parameter const&, bool)">control</abbr></span><span class="functionargs"> (<a class="" href="#Evoral:Parameter">Parameter</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Processor::*)()">deactivate</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Processor::*)() const">display_name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Automatable">Automatable</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Automatable (ARDOUR::Processor::*)()">to_automatable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:PluginInsert">PluginInsert</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::PluginInsert (ARDOUR::Processor::*)()">to_insert</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:IOProcessor">IOProcessor</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::IOProcessor (ARDOUR::Processor::*)()">to_ioprocessor</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:SessionObject">SessionObject</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::SessionObject (ARDOUR::Processor::*)()">to_sessionobject</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:SideChain">SideChain</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::SideChain (ARDOUR::Processor::*)()">to_sidechain</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
+<h4 class="cls">Inherited from ARDOUR:SessionObject</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+</table>
<h3 id="ARDOUR:AudioBackend" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:AudioBackend</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::AudioBackend >, boost::weak_ptr< ARDOUR::AudioBackend ></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> AudioBackend is an high-level abstraction for interacting with the operating system's audio and midi I/O.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">unsigned int</span></td><td class="decl"><span class="functionname"><abbr title="unsigned int (ARDOUR::AudioBackend::*)() const">buffer_size</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> check buffer for silence </p><dl><dt class="param-name-index-0">nframes</dt><dd class="param-descr-index-0"> number of frames to check </dd><dt class="param-name-index-1">n</dt><dd class="param-descr-index-1"> first non zero sample (if any) </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if all samples are zero</p></div></div></td></tr>
<tr><td class="def"><a class="" href="#C:FloatArray">FloatArray</a></td><td class="decl"><span class="functionname"><abbr title="float* (ARDOUR::AudioBuffer::*)(long)">data</abbr></span><span class="functionargs"> (<span class="em">long</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::AudioBuffer::*)(float const*, long, long, long)">read_from</abbr></span><span class="functionargs"> (<a class="" href="#C:FloatArray">FloatArray</a>, <span class="em">long</span>, <span class="em">long</span>, <span class="em">long</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)(ARDOUR::AudioBuffer)">sameinstance</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:AudioBuffer">AudioBuffer</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::AudioBuffer::*)(long, long)">silence</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> silence buffer </p><dl><dt class="param-name-index-0">len</dt><dd class="param-descr-index-0"> number of samples to clear </dd><dt class="param-name-index-1">offset</dt><dd class="param-descr-index-1"> start offset</dd></dl></div></td></tr>
</table>
<h3 id="ARDOUR:AudioEngine" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:AudioEngine</h3>
<p class="cdecl"><em>C‡</em>: ARDOUR::AudioEngine</p>
+ <p class="classinfo">is-a: <a class="" href="#ARDOUR:PortManager">ARDOUR:PortManager</a></p>
<div class="clear"></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::AudioEngine::*)(bool)">start</abbr></span><span class="functionargs"> (<span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::AudioEngine::*)(bool)">stop</abbr></span><span class="functionargs"> (<span class="em">bool</span>)</span></td><td class="fill"></td></tr>
</table>
+<h4 class="cls">Inherited from ARDOUR:PortManager</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(std::string const&, std::string const&)">connect</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::PortManager::*)(std::string const&)">connected</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(std::string const&, std::string const&)">disconnect</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(boost::shared_ptr<ARDOUR::Port>)">disconnect_port</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Port">Port</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaTable</em>(<span class="em">int</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(std::string const&, ARDOUR::DataType, ARDOUR::PortFlags, std::vector<std::string >&)">get_backend_ports</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#ARDOUR.PortFlags">PortFlags</a>, <a class="" href="#C:StringVector">StringVector&</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaTable</em>(<span class="em">int</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(std::string const&, std::vector<std::string >&)">get_connections</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <a class="" href="#C:StringVector">StringVector&</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortManager::*)(ARDOUR::DataType, std::vector<std::string >&)">get_physical_inputs</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#C:StringVector">StringVector&</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortManager::*)(ARDOUR::DataType, std::vector<std::string >&)">get_physical_outputs</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#C:StringVector">StringVector&</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Port">Port</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Port> (ARDOUR::PortManager::*)(std::string const&)">get_port_by_name</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><dl><dt class="param-name-index-invalid">name</dt><dd class="param-descr-index-invalid"> Full or short name of port </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> Corresponding Port or 0.</p></div></div></td></tr>
+ <tr><td class="def"><em>LuaTable</em>(<span class="em">int</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(ARDOUR::DataType, std::list<boost::shared_ptr<ARDOUR::Port> >&)">get_ports</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#ARDOUR:PortList">PortList&</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::PortManager::*)(std::string const&) const">get_pretty_name_by_name</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::PortManager::*)() const">n_physical_inputs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::PortManager::*)() const">n_physical_outputs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::PortManager::*)(std::string const&)">physically_connected</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">--MISSING (ARDOUR::PortEngine&)--</span></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::PortEngine& (ARDOUR::PortManager::*)()">port_engine</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::PortManager::*)(std::string const&) const">port_is_physical</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+</table>
<h3 id="ARDOUR:AudioPort" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:AudioPort</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::AudioPort >, boost::weak_ptr< ARDOUR::AudioPort ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:Port">ARDOUR:Port</a></p>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::AudioSource >, boost::weak_ptr< ARDOUR::AudioSource ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:Source">ARDOUR:Source</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A named object associated with a Session. Objects derived from this class are expected to be destroyed before the session calls drop_references().</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::AudioTrack >, boost::weak_ptr< ARDOUR::AudioTrack ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:Track">ARDOUR:Track</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A track is an route (bus) with a recordable diskstream and related objects relevant to tracking, playback and editing.</p><p> Specifically a track has regions and playlist objects.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<h4 class="cls">Inherited from ARDOUR:Track</h4>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:Region">Region</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Region> (ARDOUR::Track::*)(long, long, ARDOUR::InterThreadInfo&, boost::shared_ptr<ARDOUR::Processor>, bool)">bounce</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long</span>, <a class="" href="#ARDOUR:InterThreadInfo">InterThreadInfo&</a>, <a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Region">Region</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Region> (ARDOUR::Track::*)(ARDOUR::InterThreadInfo&)">bounce</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:InterThreadInfo">InterThreadInfo&</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> bounce track from session start to session end to new region</p><dl><dt class="param-name-index-0">itt</dt><dd class="param-descr-index-0"> asynchronous progress report and cancel </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> a new audio region (or nil in case of error)</p></div></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Region">Region</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Region> (ARDOUR::Track::*)(long, long, ARDOUR::InterThreadInfo&, boost::shared_ptr<ARDOUR::Processor>, bool)">bounce_range</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long</span>, <a class="" href="#ARDOUR:InterThreadInfo">InterThreadInfo&</a>, <a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Bounce the given range to a new audio region. </p><dl><dt class="param-name-index-0">start</dt><dd class="param-descr-index-0"> start time (in samples) </dd><dt class="param-name-index-1">end</dt><dd class="param-descr-index-1"> end time (in samples) </dd><dt class="param-name-index-2">itt</dt><dd class="param-descr-index-2"> asynchronous progress report and cancel </dd><dt class="param-name-index-3">endpoint</dt><dd class="param-descr-index-3"> the processor to tap the signal off (or nil for the top) </dd><dt class="param-name-index-4">include_endpoint</dt><dd class="param-descr-index-4"> include the given processor in the bounced audio. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> a new audio region (or nil in case of error)</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Track::*)(boost::shared_ptr<ARDOUR::Processor>, bool) const">bounceable</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Test if the track can be bounced with the given settings. If sends/inserts/returns are present in the signal path or the given track has no audio outputs bouncing is not possible.</p><dl><dt class="param-name-index-0">endpoint</dt><dd class="param-descr-index-0"> the processor to tap the signal off (or nil for the top) </dd><dt class="param-name-index-1">include_endpoint</dt><dd class="param-descr-index-1"> include the given processor in the bounced audio. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if the track can be bounced, or false otherwise.</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Track::*)()">can_record</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Playlist">Playlist</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Playlist> (ARDOUR::Track::*)()">playlist</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Track::*)() const">record_enabled</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Track::*)(std::string const&)">set_name</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Track::*)(bool, PBD::Controllable::GroupControlDisposition)">set_record_enabled</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <a class="" href="#PBD.Controllable.GroupControlDisposition">GroupControlDisposition</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Track::*)(bool, PBD::Controllable::GroupControlDisposition)">set_record_safe</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <a class="" href="#PBD.Controllable.GroupControlDisposition">GroupControlDisposition</a>)</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
<tr><td class="def"><a class="" href="#ARDOUR:AudioTrack">AudioTrack</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::AudioTrack (ARDOUR::Track::*)()">to_audio_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:MidiTrack">MidiTrack</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::MidiTrack (ARDOUR::Track::*)()">to_midi_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">active</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, int, ARDOUR::Route::ProcessorStreams*, bool)">add_processor_by_index</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">int</span>, <a class="" href="#ARDOUR:Route:ProcessorStreams">ProcessorStreams</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Add a processor to a route such that it ends up with a given index into the visible processors. </p><dl><dt class="param-name-index-1">index</dt><dd class="param-descr-index-1"> Index to add the processor at, or -1 to add at the end of the list. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 0 on success, non-0 on failure.</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>)">add_sidechain</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Amp">Amp</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Amp> (ARDOUR::Route::*)() const">amp</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Route::*)()">comment</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, unsigned int, ARDOUR::ChanCount)">customize_plugin_insert</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">unsigned int</span>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, unsigned int, ARDOUR::ChanCount, ARDOUR::ChanCount)">customize_plugin_insert</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">unsigned int</span>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> enable custom plugin-insert configuration </p><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> Processor to customize </dd><dt class="param-name-index-1">count</dt><dd class="param-descr-index-1"> number of plugin instances to use (if zero, reset to default) </dd><dt class="param-name-index-2">outs</dt><dd class="param-descr-index-2"> output port customization </dd><dt class="param-name-index-3">sinks</dt><dd class="param-descr-index-3"> input pins for variable-I/O plugins </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if successful</p></div></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Delivery">Delivery</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Delivery> (ARDOUR::Route::*)() const">main_outs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> the signal processorat at end of the processing chain which produces output </p></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">muted</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::Route::*)() const">n_inputs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::Route::*)() const">n_outputs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Processor">Processor</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Processor> (ARDOUR::Route::*)(unsigned int) const">nth_plugin</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, ARDOUR::Route::ProcessorStreams*, bool)">remove_processor</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <a class="" href="#ARDOUR:Route:ProcessorStreams">ProcessorStreams</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> remove plugin/processor</p><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> processor to remove </dd><dt class="param-name-index-1">err</dt><dd class="param-descr-index-1"> error report (index where removal vailed, channel-count why it failed) may be nil </dd><dt class="param-name-index-2">need_process_lock</dt><dd class="param-descr-index-2"> if locking is required (set to true, unless called from RT context with lock) </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 0 on success</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>)">remove_sidechain</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, boost::shared_ptr<ARDOUR::Processor>, ARDOUR::Route::ProcessorStreams*)">replace_processor</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <a class="" href="#ARDOUR:Processor">Processor</a>, <a class="" href="#ARDOUR:Route:ProcessorStreams">ProcessorStreams</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> replace plugin/processor with another</p><dl><dt class="param-name-index-0">old</dt><dd class="param-descr-index-0"> processor to remove </dd><dt class="param-name-index-1">sub</dt><dd class="param-descr-index-1"> processor to substitute the old one with </dd><dt class="param-name-index-2">err</dt><dd class="param-descr-index-2"> error report (index where removal vailed, channel-count why it failed) may be nil </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 0 on success</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>)">reset_plugin_insert</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> reset plugin-insert configuration to default, disable customizations.</p><p> This is equivalent to calling </p><pre> customize_plugin_insert (proc, 0, unused)</pre><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> Processor to reset </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if successful</p></div></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Route::*)(bool, void*)">set_active</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <span class="em">void*</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Route::*)(std::string, void*)">set_comment</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <span class="em">void*</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(bool)">set_strict_io</abbr></span><span class="functionargs"> (<span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">soloed</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">strict_io</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Track (ARDOUR::Route::*)()">to_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Amp">Amp</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Amp> (ARDOUR::Route::*)() const">trim</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Track (ARDOUR::Route::*)()">to_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h4 class="cls">Inherited from ARDOUR:SessionObject</h4>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
<tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
-<h4 class="cls">Inherited from PBD:StatefulPtr</h4>
-<table class="classmembers">
- <tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-</table>
<h3 id="ARDOUR:AudioTrackList" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:AudioTrackList</h3>
<p class="cdecl"><em>C‡</em>: std::list<boost::shared_ptr<ARDOUR::AudioTrack> ></p>
<div class="clear"></div>
</table>
<h3 id="ARDOUR:AutomationControl" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:AutomationControl</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::AutomationControl >, boost::weak_ptr< ARDOUR::AutomationControl ></p>
- <p class="classinfo">is-a: <a class="" href="#Evoral:Control">Evoral:Control</a></p>
+ <p class="classinfo">is-a: <a class="" href="#PBD:Controllable">PBD:Controllable</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A PBD::Controllable with associated automation data (AutomationList)</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><a class="" href="#ARDOUR:AutomationList">AutomationList</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::AutomationList> (ARDOUR::AutomationControl::*)() const">alist</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Get and Set `internal' value</p><p> All derived classes must implement this.</p><p> Basic derived classes will ignore </p><dl><dt class="param-name-index-invalid">group_override,</dt><dd class="param-descr-index-invalid"> but more sophisticated children, notably those that proxy the value setting logic via an object that is aware of group relationships between this control and others, will find it useful.</dd></dl></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::AutomationControl::*)(double)">start_touch</abbr></span><span class="functionargs"> (<span class="em">double</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::AutomationControl::*)(bool, double)">stop_touch</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <span class="em">double</span>)</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#Evoral:Control">Control</a></td><td class="decl"><span class="functionname"><abbr title="Evoral::Control (ARDOUR::AutomationControl::*)()">to_ctrl</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::AutomationControl::*)() const">writable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#Evoral:Control">Control</a></td><td class="decl"><span class="functionname"><abbr title="Evoral::Control (ARDOUR::AutomationControl::*)()">to_ctrl</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
-<h4 class="cls">Inherited from Evoral:Control</h4>
+<h4 class="cls">Inherited from PBD:Controllable</h4>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><a class="" href="#Evoral:ControlList">ControlList</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<Evoral::ControlList> (Evoral::Control::*)()">list</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (PBD::Controllable::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+</table>
+<h4 class="cls">Inherited from PBD:StatefulPtr</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="ARDOUR:AutomationList" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:AutomationList</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::AutomationList >, boost::weak_ptr< ARDOUR::AutomationList ></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> AutomationList is a stateful wrapper around Evoral::ControlList. It includes session-specifics (such as automation state), control logic (e.g. touch, signals) and acts as proxy to the underlying ControlList which holds the actual data.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><a class="" href="#PBD:XMLNode">XMLNode</a></td><td class="decl"><span class="functionname"><abbr title="XMLNode& (ARDOUR::AutomationList::*)()">get_state</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#Evoral:ControlList">ControlList</a></td><td class="decl"><span class="functionname"><abbr title="Evoral::ControlList (ARDOUR::AutomationList::*)()">list</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#PBD:Command">Command</a></td><td class="decl"><span class="functionname"><abbr title="Command* (ARDOUR::AutomationList::*)(XMLNode*, XMLNode*)">memento_command</abbr></span><span class="functionargs"> (<a class="" href="#PBD:XMLNode">XMLNode</a>, <a class="" href="#PBD:XMLNode">XMLNode</a>)</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::AutomationList::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::AutomationList::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::AutomationList::*)() const">touch_enabled</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::AutomationList::*)() const">touching</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::AutomationList::*)() const">writing</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#Evoral:ControlList">ControlList</a></td><td class="decl"><span class="functionname"><abbr title="Evoral::ControlList (ARDOUR::AutomationList::*)()">list</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::AutomationList::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::AutomationList::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="ARDOUR:BackendVector" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:BackendVector</h3>
<p class="cdecl"><em>C‡</em>: std::vector<ARDOUR::AudioBackendInfo const* ></p>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount const& (ARDOUR::BufferSet::*)() const">count</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:AudioBuffer">AudioBuffer</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::AudioBuffer& (ARDOUR::BufferSet::*)(unsigned long)">get_audio</abbr></span><span class="functionargs"> (<span class="em">unsigned long</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)(ARDOUR::BufferSet)">sameinstance</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:BufferSet">BufferSet</a>)</span></td><td class="fill"></td></tr>
</table>
<h3 id="ARDOUR:ChanCount" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:ChanCount</h3>
<p class="cdecl"><em>C‡</em>: ARDOUR::ChanCount</p>
<tr><td class="def">ℂ</td><td class="decl"><span class="functionname">ARDOUR.DSP.Biquad</span><span class="functionargs"> (<span class="em">double</span>)</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::DSP::BiQuad::*)(ARDOUR::DSP::BiQuad::Type, double, double, double)">compute</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR.DSP.BiQuad.Type">Type</a>, <span class="em">double</span>, <span class="em">double</span>, <span class="em">double</span>)</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> setup filter, compute coefficients</p><dl><dt class="param-name-index-0">t</dt><dd class="param-descr-index-0"> filter type (LowPass, HighPass, etc) </dd><dt class="param-name-index-1">freq</dt><dd class="param-descr-index-1"> filter frequency </dd><dt class="param-name-index-2">Q</dt><dd class="param-descr-index-2"> filter quality </dd><dt class="param-name-index-3">gain</dt><dd class="param-descr-index-3"> filter gain</dd></dl></div></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> setup filter, compute coefficients</p><dl><dt class="param-name-index-0">type</dt><dd class="param-descr-index-0"> filter type (LowPass, HighPass, etc) </dd><dt class="param-name-index-1">freq</dt><dd class="param-descr-index-1"> filter frequency </dd><dt class="param-name-index-2">Q</dt><dd class="param-descr-index-2"> filter quality </dd><dt class="param-name-index-3">gain</dt><dd class="param-descr-index-3"> filter gain</dd></dl></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::DSP::BiQuad::*)()">reset</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> reset filter state </p></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::DSP::BiQuad::*)(float*, unsigned int)">run</abbr></span><span class="functionargs"> (<a class="" href="#C:FloatArray">FloatArray</a>, <span class="em">unsigned int</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def">ℂ</td><td class="decl"><span class="functionname">ARDOUR.DataType</span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><a class="" href="#ARDOUR:DataType">DataType</a></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">audio</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> convenience contructor for DataType::AUDIO </p><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> DataType::AUDIO</p></div></div></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> convenience constructor for DataType::AUDIO with managed lifetime </p><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> DataType::AUDIO</p></div></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:DataType">DataType</a></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">midi</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> convenience contructor for DataType::MIDI </p><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> DataType::MIDI</p></div></div></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> convenience constructor for DataType::MIDI with managed lifetime </p><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> DataType::MIDI</p></div></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:DataType">DataType</a></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">null</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> convenience contructor for DataType::NIL </p><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> DataType::NIL</p></div></div></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> convenience constructor for DataType::NIL with managed lifetime </p><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> DataType::NIL</p></div></div></td></tr>
<tr><td class="def"><span class="em">char*</span></td><td class="decl"><span class="functionname"><abbr title="char const* (ARDOUR::DataType::*)() const">to_string</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Inverse of the from-string constructor </p></div></td></tr>
</table>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::Delivery >, boost::weak_ptr< ARDOUR::Delivery ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:IOProcessor">ARDOUR:IOProcessor</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A mixer strip element (Processor) with 1 or 2 IO elements.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#Evoral:Control">Control</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<Evoral::Control> (Evoral::ControlSet::*)(Evoral::Parameter const&, bool)">control</abbr></span><span class="functionargs"> (<a class="" href="#Evoral:Parameter">Parameter</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Processor::*)()">deactivate</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Processor::*)() const">display_name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Automatable">Automatable</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Automatable (ARDOUR::Processor::*)()">to_automatable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:PluginInsert">PluginInsert</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::PluginInsert (ARDOUR::Processor::*)()">to_insert</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:IOProcessor">IOProcessor</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::IOProcessor (ARDOUR::Processor::*)()">to_ioprocessor</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:SessionObject">SessionObject</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::SessionObject (ARDOUR::Processor::*)()">to_sessionobject</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:SideChain">SideChain</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::SideChain (ARDOUR::Processor::*)()">to_sidechain</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
+<h4 class="cls">Inherited from ARDOUR:SessionObject</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+</table>
<h3 id="ARDOUR:DeviceStatus" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:DeviceStatus</h3>
<p class="cdecl"><em>C‡</em>: ARDOUR::AudioBackend::DeviceStatus</p>
<div class="clear"></div>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::GainControl >, boost::weak_ptr< ARDOUR::GainControl ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:AutomationControl">ARDOUR:AutomationControl</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A PBD::Controllable with associated automation data (AutomationList)</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Get and Set `internal' value</p><p> All derived classes must implement this.</p><p> Basic derived classes will ignore </p><dl><dt class="param-name-index-invalid">group_override,</dt><dd class="param-descr-index-invalid"> but more sophisticated children, notably those that proxy the value setting logic via an object that is aware of group relationships between this control and others, will find it useful.</dd></dl></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::AutomationControl::*)(double)">start_touch</abbr></span><span class="functionargs"> (<span class="em">double</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::AutomationControl::*)(bool, double)">stop_touch</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <span class="em">double</span>)</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#Evoral:Control">Control</a></td><td class="decl"><span class="functionname"><abbr title="Evoral::Control (ARDOUR::AutomationControl::*)()">to_ctrl</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::AutomationControl::*)() const">writable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#Evoral:Control">Control</a></td><td class="decl"><span class="functionname"><abbr title="Evoral::Control (ARDOUR::AutomationControl::*)()">to_ctrl</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
-<h4 class="cls">Inherited from Evoral:Control</h4>
+<h4 class="cls">Inherited from PBD:Controllable</h4>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><a class="" href="#Evoral:ControlList">ControlList</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<Evoral::ControlList> (Evoral::Control::*)()">list</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (PBD::Controllable::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+</table>
+<h4 class="cls">Inherited from PBD:StatefulPtr</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="ARDOUR:IO" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:IO</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::IO >, boost::weak_ptr< ARDOUR::IO ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:SessionObject">ARDOUR:SessionObject</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A collection of ports (all input or all output) with connections.</p><p> An IO can contain ports of varying types, making routes/inserts/etc with varied combinations of types (eg MIDI and audio) possible.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::IO::*)() const">active</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
<tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
-<h4 class="cls">Inherited from PBD:StatefulPtr</h4>
-<table class="classmembers">
- <tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-</table>
<h3 id="ARDOUR:IOProcessor" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:IOProcessor</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::IOProcessor >, boost::weak_ptr< ARDOUR::IOProcessor ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:Processor">ARDOUR:Processor</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A mixer strip element (Processor) with 1 or 2 IO elements.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><a class="" href="#ARDOUR:IO">IO</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::IO> (ARDOUR::IOProcessor::*)()">input</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#Evoral:Control">Control</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<Evoral::Control> (Evoral::ControlSet::*)(Evoral::Parameter const&, bool)">control</abbr></span><span class="functionargs"> (<a class="" href="#Evoral:Parameter">Parameter</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Processor::*)()">deactivate</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Processor::*)() const">display_name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Automatable">Automatable</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Automatable (ARDOUR::Processor::*)()">to_automatable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:PluginInsert">PluginInsert</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::PluginInsert (ARDOUR::Processor::*)()">to_insert</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:IOProcessor">IOProcessor</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::IOProcessor (ARDOUR::Processor::*)()">to_ioprocessor</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:SessionObject">SessionObject</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::SessionObject (ARDOUR::Processor::*)()">to_sessionobject</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:SideChain">SideChain</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::SideChain (ARDOUR::Processor::*)()">to_sidechain</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
+<h4 class="cls">Inherited from ARDOUR:SessionObject</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+</table>
<h3 id="ARDOUR:InterThreadInfo" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:InterThreadInfo</h3>
<p class="cdecl"><em>C‡</em>: ARDOUR::InterThreadInfo</p>
<div class="clear"></div>
<tr><th colspan="3">Constructor</th></tr>
<tr><td class="def">ℂ</td><td class="decl"><span class="functionname">ARDOUR.InterThreadInfo</span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Data Members</th></tr>
- <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname">cancel</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname">done</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">float</span></td><td class="decl"><span class="functionname">progress</span></td><td class="fill"></td></tr>
</table>
<h3 id="ARDOUR:Location" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:Location</h3>
-<p class="cdecl"><em>C‡</em>: ARDOUR::Locations</p>
+<p class="cdecl"><em>C‡</em>: ARDOUR::Location</p>
<p class="classinfo">is-a: <a class="" href="#PBD:StatefulDestructible">PBD:StatefulDestructible</a></p>
<div class="clear"></div>
-<div class="classdox"><p class="para-brief"> Base class for objects with saveable and undoable state with destruction notification </p></div>
+<div class="classdox"><p class="para-brief"> Location on Timeline - abstract representation for Markers, Loop/Punch Ranges, CD-Markers etc. </p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:Location">Location</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Location* (ARDOUR::Locations::*)() const">auto_loop_location</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:Location">Location</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Location* (ARDOUR::Locations::*)() const">auto_punch_location</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Location::*)() const">end</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Locations::*)(long, bool)">first_mark_after</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
- <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Locations::*)(long, bool)">first_mark_after</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Location::*)() const">length</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Location::*)()">lock</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Location::*)() const">locked</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Location::*)(long)">move_to</abbr></span><span class="functionargs"> (<span class="em">long</span>)</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:Location">Location</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Location* (ARDOUR::Locations::*)() const">session_range_location</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Location::*)(long, bool, bool)">set_end</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">bool</span>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Set end position. </p><dl><dt class="param-name-index-1">force</dt><dd class="param-descr-index-1"> true to force setting, even if the given new end is before the current start. </dd><dt class="param-name-index-2">allow_bbt_recompute</dt><dd class="param-descr-index-2"> True to recompute BBT end time from the new given end time.</dd><dt class="param-name-index-invalid">s</dt><dd class="param-descr-index-invalid"> New end. </dd></dl></div></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Location::*)(long, long, bool)">set_length</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long</span>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="ARDOUR:LocationList" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:LocationList</h3>
<tr><td class="def"><span class="em">unsigned long</span></td><td class="decl"><span class="functionname"><abbr title="unsigned long (std::list<ARDOUR::Location* >::*)() const">size</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><em>LuaTable</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">table</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
+<h3 id="ARDOUR:Locations" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:Locations</h3>
+<p class="cdecl"><em>C‡</em>: ARDOUR::Locations</p>
+ <p class="classinfo">is-a: <a class="" href="#PBD:StatefulDestructible">PBD:StatefulDestructible</a></p>
+<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A collection of session locations including unique dedicated locations (loop, punch, etc) </p></div>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Location">Location</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Location* (ARDOUR::Locations::*)() const">auto_loop_location</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Location">Location</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Location* (ARDOUR::Locations::*)() const">auto_punch_location</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaTable</em>(...)</td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Locations::*)(long, long, std::list<ARDOUR::Location* >&, ARDOUR::Location::Flags)">find_all_between</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long</span>, <a class="" href="#ARDOUR:LocationList">LocationList&</a>, <a class="" href="#ARDOUR.Location.Flags">Flags</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Locations::*)(long, bool)">first_mark_after</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Location">Location</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Location* (ARDOUR::Locations::*)(long, long) const">first_mark_at</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Locations::*)(long, bool)">first_mark_before</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaTable</em>(...)</td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Locations::*)(long, long&, long&) const">marks_either_side</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long&</span>, <span class="em">long&</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Look for the `marks' (either locations which are marks, or start/end points of range markers) either side of a frame. Note that if frame is exactly on a `mark', that mark will not be considered for returning as before/after. </p><dl><dt class="param-name-index-0">frame</dt><dd class="param-descr-index-0"> Frame to look for. </dd><dt class="param-name-index-1">before</dt><dd class="param-descr-index-1"> Filled in with the position of the last `mark' before `frame' (or max_framepos if none exists) </dd><dt class="param-name-index-2">after</dt><dd class="param-descr-index-2"> Filled in with the position of the next `mark' after `frame' (or max_framepos if none exists)</dd></dl></div></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Location">Location</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Location* (ARDOUR::Locations::*)() const">session_range_location</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ </table>
+<h4 class="cls">Inherited from PBD:Stateful</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+</table>
<h3 id="ARDOUR:LuaAPI" class="cls freeclass"><abbr title="Namespace">ℕ</abbr> ARDOUR.LuaAPI</h3>
<div class="clear"></div>
<table class="classmembers">
<tr><td class="def"><a class="" href="#ARDOUR:Processor">Processor</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Processor> (*)()">nil_proc</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">LuaTable</span></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">plugin_automation</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> A convenience function to get a Automation Lists and ParamaterDescriptor for a given plugin control.</p><p> This is equivalent to the following lua code </p><pre> function (processor, param_id)
- local plugininsert = processor:to_insert ()
- local plugin = plugininsert:plugin(0)
+ local plugininsert = processor:to_insert ()
+ local plugin = plugininsert:plugin(0)
local _, t = plugin:get_parameter_descriptor(param_id, ARDOUR.ParameterDescriptor ())
local ctrl = Evoral.Parameter (ARDOUR.AutomationType.PluginAutomation, 0, param_id)
local ac = pi:automation_control (ctrl, false)
local acl = ac:alist()
return ac:alist(), ac:to_ctrl():list(), t[2]
- end</pre><p> Example usage: get 3rd input parameter of first plugin on the given route (Ardour starts counting at zero). </p><pre> local al, cl, pd = ARDOUR.LuaAPI.plugin_automation (route:nth_plugin (0), 3)</pre><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 3 parameters: AutomationList, ControlList, ParamaterDescriptor</p></div></div></td></tr>
+ end</pre><p> Example usage: get the third input parameter of first plugin on the given route (Ardour starts counting at zero). </p><pre> local al, cl, pd = ARDOUR.LuaAPI.plugin_automation (route:nth_plugin (0), 3)</pre><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 3 parameters: AutomationList, ControlList, ParamaterDescriptor</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (*)(boost::shared_ptr<ARDOUR::PluginInsert>, unsigned int, float)">set_plugin_insert_param</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:PluginInsert">PluginInsert</a>, <span class="em">unsigned int</span>, <span class="em">float</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> set a plugin control-input parameter value</p><p> This is a wrapper around set_processor_param which looks up the Processor by plugin-insert.</p><dl><dt class="param-name-index-1">which</dt><dd class="param-descr-index-1"> control-input to set (starting at 0) </dd><dt class="param-name-index-invalid">proc</dt><dd class="param-descr-index-invalid"> Plugin-Insert </dd><dt class="param-name-index-invalid">value</dt><dd class="param-descr-index-invalid"> value to set </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true on success, false on error or out-of-bounds value</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (*)(boost::shared_ptr<ARDOUR::Processor>, unsigned int, float)">set_processor_param</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">unsigned int</span>, <span class="em">float</span>)</span></td><td class="fill"></td></tr>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::MidiBuffer::*)() const">empty</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)(ARDOUR::MidiBuffer)">sameinstance</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:MidiBuffer">MidiBuffer</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::MidiBuffer::*)(long, long)">silence</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long</span>)</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Clear (eg zero, or empty) buffer </p></div></td></tr>
</table>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::MidiTrack >, boost::weak_ptr< ARDOUR::MidiTrack ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:Track">ARDOUR:Track</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A track is an route (bus) with a recordable diskstream and related objects relevant to tracking, playback and editing.</p><p> Specifically a track has regions and playlist objects.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<h4 class="cls">Inherited from ARDOUR:Track</h4>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:Region">Region</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Region> (ARDOUR::Track::*)(long, long, ARDOUR::InterThreadInfo&, boost::shared_ptr<ARDOUR::Processor>, bool)">bounce</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long</span>, <a class="" href="#ARDOUR:InterThreadInfo">InterThreadInfo&</a>, <a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Region">Region</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Region> (ARDOUR::Track::*)(ARDOUR::InterThreadInfo&)">bounce</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:InterThreadInfo">InterThreadInfo&</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> bounce track from session start to session end to new region</p><dl><dt class="param-name-index-0">itt</dt><dd class="param-descr-index-0"> asynchronous progress report and cancel </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> a new audio region (or nil in case of error)</p></div></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Region">Region</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Region> (ARDOUR::Track::*)(long, long, ARDOUR::InterThreadInfo&, boost::shared_ptr<ARDOUR::Processor>, bool)">bounce_range</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long</span>, <a class="" href="#ARDOUR:InterThreadInfo">InterThreadInfo&</a>, <a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Bounce the given range to a new audio region. </p><dl><dt class="param-name-index-0">start</dt><dd class="param-descr-index-0"> start time (in samples) </dd><dt class="param-name-index-1">end</dt><dd class="param-descr-index-1"> end time (in samples) </dd><dt class="param-name-index-2">itt</dt><dd class="param-descr-index-2"> asynchronous progress report and cancel </dd><dt class="param-name-index-3">endpoint</dt><dd class="param-descr-index-3"> the processor to tap the signal off (or nil for the top) </dd><dt class="param-name-index-4">include_endpoint</dt><dd class="param-descr-index-4"> include the given processor in the bounced audio. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> a new audio region (or nil in case of error)</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Track::*)(boost::shared_ptr<ARDOUR::Processor>, bool) const">bounceable</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Test if the track can be bounced with the given settings. If sends/inserts/returns are present in the signal path or the given track has no audio outputs bouncing is not possible.</p><dl><dt class="param-name-index-0">endpoint</dt><dd class="param-descr-index-0"> the processor to tap the signal off (or nil for the top) </dd><dt class="param-name-index-1">include_endpoint</dt><dd class="param-descr-index-1"> include the given processor in the bounced audio. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if the track can be bounced, or false otherwise.</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Track::*)()">can_record</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Playlist">Playlist</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Playlist> (ARDOUR::Track::*)()">playlist</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Track::*)() const">record_enabled</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Track::*)(std::string const&)">set_name</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Track::*)(bool, PBD::Controllable::GroupControlDisposition)">set_record_enabled</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <a class="" href="#PBD.Controllable.GroupControlDisposition">GroupControlDisposition</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Track::*)(bool, PBD::Controllable::GroupControlDisposition)">set_record_safe</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <a class="" href="#PBD.Controllable.GroupControlDisposition">GroupControlDisposition</a>)</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
<tr><td class="def"><a class="" href="#ARDOUR:AudioTrack">AudioTrack</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::AudioTrack (ARDOUR::Track::*)()">to_audio_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:MidiTrack">MidiTrack</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::MidiTrack (ARDOUR::Track::*)()">to_midi_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">active</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, int, ARDOUR::Route::ProcessorStreams*, bool)">add_processor_by_index</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">int</span>, <a class="" href="#ARDOUR:Route:ProcessorStreams">ProcessorStreams</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Add a processor to a route such that it ends up with a given index into the visible processors. </p><dl><dt class="param-name-index-1">index</dt><dd class="param-descr-index-1"> Index to add the processor at, or -1 to add at the end of the list. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 0 on success, non-0 on failure.</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>)">add_sidechain</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Amp">Amp</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Amp> (ARDOUR::Route::*)() const">amp</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Route::*)()">comment</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, unsigned int, ARDOUR::ChanCount)">customize_plugin_insert</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">unsigned int</span>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, unsigned int, ARDOUR::ChanCount, ARDOUR::ChanCount)">customize_plugin_insert</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">unsigned int</span>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> enable custom plugin-insert configuration </p><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> Processor to customize </dd><dt class="param-name-index-1">count</dt><dd class="param-descr-index-1"> number of plugin instances to use (if zero, reset to default) </dd><dt class="param-name-index-2">outs</dt><dd class="param-descr-index-2"> output port customization </dd><dt class="param-name-index-3">sinks</dt><dd class="param-descr-index-3"> input pins for variable-I/O plugins </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if successful</p></div></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Delivery">Delivery</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Delivery> (ARDOUR::Route::*)() const">main_outs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> the signal processorat at end of the processing chain which produces output </p></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">muted</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::Route::*)() const">n_inputs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::Route::*)() const">n_outputs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Processor">Processor</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Processor> (ARDOUR::Route::*)(unsigned int) const">nth_plugin</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, ARDOUR::Route::ProcessorStreams*, bool)">remove_processor</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <a class="" href="#ARDOUR:Route:ProcessorStreams">ProcessorStreams</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> remove plugin/processor</p><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> processor to remove </dd><dt class="param-name-index-1">err</dt><dd class="param-descr-index-1"> error report (index where removal vailed, channel-count why it failed) may be nil </dd><dt class="param-name-index-2">need_process_lock</dt><dd class="param-descr-index-2"> if locking is required (set to true, unless called from RT context with lock) </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 0 on success</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>)">remove_sidechain</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, boost::shared_ptr<ARDOUR::Processor>, ARDOUR::Route::ProcessorStreams*)">replace_processor</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <a class="" href="#ARDOUR:Processor">Processor</a>, <a class="" href="#ARDOUR:Route:ProcessorStreams">ProcessorStreams</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> replace plugin/processor with another</p><dl><dt class="param-name-index-0">old</dt><dd class="param-descr-index-0"> processor to remove </dd><dt class="param-name-index-1">sub</dt><dd class="param-descr-index-1"> processor to substitute the old one with </dd><dt class="param-name-index-2">err</dt><dd class="param-descr-index-2"> error report (index where removal vailed, channel-count why it failed) may be nil </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 0 on success</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>)">reset_plugin_insert</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> reset plugin-insert configuration to default, disable customizations.</p><p> This is equivalent to calling </p><pre> customize_plugin_insert (proc, 0, unused)</pre><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> Processor to reset </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if successful</p></div></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Route::*)(bool, void*)">set_active</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <span class="em">void*</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Route::*)(std::string, void*)">set_comment</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <span class="em">void*</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(bool)">set_strict_io</abbr></span><span class="functionargs"> (<span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">soloed</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">strict_io</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Track (ARDOUR::Route::*)()">to_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Amp">Amp</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Amp> (ARDOUR::Route::*)() const">trim</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Track (ARDOUR::Route::*)()">to_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h4 class="cls">Inherited from ARDOUR:SessionObject</h4>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
<tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
-<h4 class="cls">Inherited from PBD:StatefulPtr</h4>
-<table class="classmembers">
- <tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-</table>
<h3 id="ARDOUR:MidiTrackList" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:MidiTrackList</h3>
<p class="cdecl"><em>C‡</em>: std::list<boost::shared_ptr<ARDOUR::MidiTrack> ></p>
<div class="clear"></div>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::Playlist >, boost::weak_ptr< ARDOUR::Playlist ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:SessionObject">ARDOUR:SessionObject</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A named object associated with a Session. Objects derived from this class are expected to be destroyed before the session calls drop_references().</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Playlist::*)(boost::shared_ptr<ARDOUR::Region>, long, float, bool)">add_region</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Region">Region</a>, <span class="em">long</span>, <span class="em">float</span>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Note: this calls set_layer (..., DBL_MAX) so it will reset the layering index of region </p></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Region">Region</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Region> (ARDOUR::Playlist::*)(std::list<boost::shared_ptr<ARDOUR::Region> > const&)">combine</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:RegionList">RegionList</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">unsigned int</span></td><td class="decl"><span class="functionname"><abbr title="unsigned int (ARDOUR::Playlist::*)(long) const">count_regions_at</abbr></span><span class="functionargs"> (<span class="em">long</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Playlist">Playlist</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Playlist> (ARDOUR::Playlist::*)(std::list<ARDOUR::AudioRange >&, bool)">cut</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:AudioRangeList">AudioRangeList&</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:DataType">DataType</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::DataType const& (ARDOUR::Playlist::*)() const">data_type</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Playlist::*)(boost::shared_ptr<ARDOUR::Region>, long, long, float)">duplicate</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Region">Region</a>, <span class="em">long</span>, <span class="em">long</span>, <span class="em">float</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><dl><dt class="param-name-index-2">gap</dt><dd class="param-descr-index-2"> from the beginning of the region to the next beginning </dd></dl></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Playlist::*)(ARDOUR::AudioRange&, float)">duplicate_range</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:AudioRange">AudioRange&</a>, <span class="em">float</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Playlist::*)(boost::shared_ptr<ARDOUR::Region>, long, long, long)">duplicate_until</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Region">Region</a>, <span class="em">long</span>, <span class="em">long</span>, <span class="em">long</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><dl><dt class="param-name-index-2">gap</dt><dd class="param-descr-index-2"> from the beginning of the region to the next beginning </dd><dt class="param-name-index-3">end</dt><dd class="param-descr-index-3"> the first frame that does _not_ contain a duplicated frame </dd></dl></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Region">Region</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Region> (ARDOUR::Playlist::*)(long, ARDOUR::RegionPoint, int)">find_next_region</abbr></span><span class="functionargs"> (<span class="em">long</span>, <a class="" href="#ARDOUR.RegionPoint">RegionPoint</a>, <span class="em">int</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Playlist::*)(long, int)">find_next_region_boundary</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">int</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
<tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
-<h4 class="cls">Inherited from PBD:StatefulPtr</h4>
-<table class="classmembers">
- <tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-</table>
<h3 id="ARDOUR:Plugin" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:Plugin</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::Plugin >, boost::weak_ptr< ARDOUR::Plugin ></p>
<p class="classinfo">is-a: <a class="" href="#PBD:StatefulDestructiblePtr">PBD:StatefulDestructiblePtr</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A plugin is an external module (usually 3rd party provided) loaded into Ardour for the purpose of digital signal processing.</p><p> This class provides an abstraction for methords provided by all supported plugin standards such as presets, name, parameters etc.</p><p> Plugins are not used directly in Ardour but always wrapped by a PluginInsert.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Plugin::*)() const">get_docs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="ARDOUR:PluginControl" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:PluginControl</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::PluginInsert::PluginControl >, boost::weak_ptr< ARDOUR::PluginInsert::PluginControl ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:AutomationControl">ARDOUR:AutomationControl</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A control that manipulates a plugin parameter (control port). </p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Get and Set `internal' value</p><p> All derived classes must implement this.</p><p> Basic derived classes will ignore </p><dl><dt class="param-name-index-invalid">group_override,</dt><dd class="param-descr-index-invalid"> but more sophisticated children, notably those that proxy the value setting logic via an object that is aware of group relationships between this control and others, will find it useful.</dd></dl></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::AutomationControl::*)(double)">start_touch</abbr></span><span class="functionargs"> (<span class="em">double</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::AutomationControl::*)(bool, double)">stop_touch</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <span class="em">double</span>)</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#Evoral:Control">Control</a></td><td class="decl"><span class="functionname"><abbr title="Evoral::Control (ARDOUR::AutomationControl::*)()">to_ctrl</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::AutomationControl::*)() const">writable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#Evoral:Control">Control</a></td><td class="decl"><span class="functionname"><abbr title="Evoral::Control (ARDOUR::AutomationControl::*)()">to_ctrl</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
-<h4 class="cls">Inherited from Evoral:Control</h4>
+<h4 class="cls">Inherited from PBD:Controllable</h4>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><a class="" href="#Evoral:ControlList">ControlList</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<Evoral::ControlList> (Evoral::Control::*)()">list</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (PBD::Controllable::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+</table>
+<h4 class="cls">Inherited from PBD:StatefulPtr</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="ARDOUR:PluginInfo" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:PluginInfo</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::PluginInfo >, boost::weak_ptr< ARDOUR::PluginInfo ></p>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::PluginInsert >, boost::weak_ptr< ARDOUR::PluginInsert ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:Processor">ARDOUR:Processor</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> Plugin inserts: send data through a plugin</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PluginInsert::*)()">activate</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Plugin">Plugin</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Plugin> (ARDOUR::PluginInsert::*)(unsigned int) const">plugin</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PluginInsert::*)(unsigned int, ARDOUR::ChanMapping)">set_input_map</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>, <a class="" href="#ARDOUR:ChanMapping">ChanMapping</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PluginInsert::*)(unsigned int, ARDOUR::ChanMapping)">set_output_map</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>, <a class="" href="#ARDOUR:ChanMapping">ChanMapping</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:IO">IO</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::IO> (ARDOUR::PluginInsert::*)() const">sidechain_input</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::PluginInsert::*)() const">strict_io_configured</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h4 class="cls">Inherited from ARDOUR:Processor</h4>
<tr><td class="def"><a class="" href="#ARDOUR:AutomationControl">AutomationControl</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::AutomationControl> (ARDOUR::Automatable::*)(Evoral::Parameter const&, bool)">automation_control</abbr></span><span class="functionargs"> (<a class="" href="#Evoral:Parameter">Parameter</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#Evoral:Control">Control</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<Evoral::Control> (Evoral::ControlSet::*)(Evoral::Parameter const&, bool)">control</abbr></span><span class="functionargs"> (<a class="" href="#Evoral:Parameter">Parameter</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Processor::*)() const">display_name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Automatable">Automatable</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Automatable (ARDOUR::Processor::*)()">to_automatable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:PluginInsert">PluginInsert</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::PluginInsert (ARDOUR::Processor::*)()">to_insert</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:IOProcessor">IOProcessor</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::IOProcessor (ARDOUR::Processor::*)()">to_ioprocessor</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:SessionObject">SessionObject</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::SessionObject (ARDOUR::Processor::*)()">to_sessionobject</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:SideChain">SideChain</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::SideChain (ARDOUR::Processor::*)()">to_sidechain</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
+<h4 class="cls">Inherited from ARDOUR:SessionObject</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+</table>
<h3 id="ARDOUR:Port" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:Port</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::Port >, boost::weak_ptr< ARDOUR::Port ></p>
<div class="clear"></div>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Port::*)() const">sends_output</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if this Port sends output, otherwise false </p></div></div></td></tr>
</table>
+<h3 id="ARDOUR:PortList" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:PortList</h3>
+<p class="cdecl"><em>C‡</em>: std::list<boost::shared_ptr<ARDOUR::Port> ></p>
+<div class="clear"></div>
+<table class="classmembers">
+ <tr><th colspan="3">Constructor</th></tr>
+ <tr><td class="def">ℂ</td><td class="decl"><span class="functionname">ARDOUR.PortList</span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (std::list<boost::shared_ptr<ARDOUR::Port> >::*)() const">empty</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaIter</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">iter</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (std::list<boost::shared_ptr<ARDOUR::Port> >::*)()">reverse</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">unsigned long</span></td><td class="decl"><span class="functionname"><abbr title="unsigned long (std::list<boost::shared_ptr<ARDOUR::Port> >::*)() const">size</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaTable</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">table</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ </table>
+<h3 id="ARDOUR:PortManager" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:PortManager</h3>
+<p class="cdecl"><em>C‡</em>: ARDOUR::PortManager</p>
+<div class="clear"></div>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(std::string const&, std::string const&)">connect</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::PortManager::*)(std::string const&)">connected</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(std::string const&, std::string const&)">disconnect</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(boost::shared_ptr<ARDOUR::Port>)">disconnect_port</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Port">Port</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaTable</em>(<span class="em">int</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(std::string const&, ARDOUR::DataType, ARDOUR::PortFlags, std::vector<std::string >&)">get_backend_ports</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#ARDOUR.PortFlags">PortFlags</a>, <a class="" href="#C:StringVector">StringVector&</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaTable</em>(<span class="em">int</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(std::string const&, std::vector<std::string >&)">get_connections</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <a class="" href="#C:StringVector">StringVector&</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortManager::*)(ARDOUR::DataType, std::vector<std::string >&)">get_physical_inputs</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#C:StringVector">StringVector&</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortManager::*)(ARDOUR::DataType, std::vector<std::string >&)">get_physical_outputs</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#C:StringVector">StringVector&</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Port">Port</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Port> (ARDOUR::PortManager::*)(std::string const&)">get_port_by_name</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><dl><dt class="param-name-index-invalid">name</dt><dd class="param-descr-index-invalid"> Full or short name of port </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> Corresponding Port or 0.</p></div></div></td></tr>
+ <tr><td class="def"><em>LuaTable</em>(<span class="em">int</span>, ...)</td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::PortManager::*)(ARDOUR::DataType, std::list<boost::shared_ptr<ARDOUR::Port> >&)">get_ports</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:DataType">DataType</a>, <a class="" href="#ARDOUR:PortList">PortList&</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::PortManager::*)(std::string const&) const">get_pretty_name_by_name</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::PortManager::*)() const">n_physical_inputs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::PortManager::*)() const">n_physical_outputs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::PortManager::*)(std::string const&)">physically_connected</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">--MISSING (ARDOUR::PortEngine&)--</span></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::PortEngine& (ARDOUR::PortManager::*)()">port_engine</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::PortManager::*)(std::string const&) const">port_is_physical</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+ </table>
<h3 id="ARDOUR:PortSet" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:PortSet</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::PortSet >, boost::weak_ptr< ARDOUR::PortSet ></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> An ordered list of Ports, possibly of various types.</p><p> This allows access to all the ports as a list, ignoring type, or accessing the nth port of a given type. Note that port(n) and nth_audio_port(n) may NOT return the same port.</p><p> Each port is held twice; once in a per-type vector of vectors (_ports) and once in a vector of all port (_all_ports). This is to speed up the fairly common case of iterating over all ports.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::PortSet::*)(boost::shared_ptr<ARDOUR::Port>)">add</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Port">Port</a>)</span></td><td class="fill"></td></tr>
<p class="cdecl"><em>C‡</em>: ARDOUR::Plugin::PresetRecord</p>
<div class="clear"></div>
<table class="classmembers">
+ <tr><th colspan="3">Constructor</th></tr>
+ <tr><td class="def">ℂ</td><td class="decl"><span class="functionname">ARDOUR.PresetRecord</span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Data Members</th></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname">label</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname">uri</span></td><td class="fill"></td></tr>
</table>
<h3 id="ARDOUR:Processor" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:Processor</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::Processor >, boost::weak_ptr< ARDOUR::Processor ></p>
- <p class="classinfo">is-a: <a class="" href="#ARDOUR:Automatable">ARDOUR:Automatable</a></p>
+ <p class="classinfo">is-a: <a class="" href="#ARDOUR:SessionObject">ARDOUR:SessionObject</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A mixer strip element - plugin, send, meter, etc </p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Processor::*)()">activate</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Processor::*)()">deactivate</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Processor::*)() const">display_name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Automatable">Automatable</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Automatable (ARDOUR::Processor::*)()">to_automatable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:PluginInsert">PluginInsert</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::PluginInsert (ARDOUR::Processor::*)()">to_insert</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:IOProcessor">IOProcessor</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::IOProcessor (ARDOUR::Processor::*)()">to_ioprocessor</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:SessionObject">SessionObject</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::SessionObject (ARDOUR::Processor::*)()">to_sessionobject</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:SideChain">SideChain</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::SideChain (ARDOUR::Processor::*)()">to_sidechain</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
+<h4 class="cls">Inherited from ARDOUR:SessionObject</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+</table>
<h3 id="ARDOUR:Properties:BoolProperty" class="cls opaque"><abbr title="Opaque Object">∅</abbr> ARDOUR:Properties:BoolProperty</h3>
<p class="cdecl"><em>C‡</em>: PBD::PropertyDescriptor<bool></p>
<div class="clear"></div>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::Region >, boost::weak_ptr< ARDOUR::Region ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:SessionObject">ARDOUR:SessionObject</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A named object associated with a Session. Objects derived from this class are expected to be destroyed before the session calls drop_references().</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Region::*)() const">at_natural_position</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><dl><dt class="param-name-index-0">new_endpoint</dt><dd class="param-descr-index-0"> New region end point, such that, for example, a region at 0 of length 10 has an endpoint of 9.</dd></dl></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Region::*)(long)">trim_front</abbr></span><span class="functionargs"> (<span class="em">long</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Region::*)(long, long)">trim_to</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long</span>)</span></td><td class="fill"></td></tr>
- <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Region::*)() const">valid_transients</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Region::*)() const">video_locked</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Region::*)() const">whole_file</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
<tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
-<h4 class="cls">Inherited from PBD:StatefulPtr</h4>
-<table class="classmembers">
- <tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-</table>
<h3 id="ARDOUR:RegionFactory" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:RegionFactory</h3>
<p class="cdecl"><em>C‡</em>: ARDOUR::RegionFactory</p>
<div class="clear"></div>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::Route >, boost::weak_ptr< ARDOUR::Route ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:SessionObject">ARDOUR:SessionObject</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A named object associated with a Session. Objects derived from this class are expected to be destroyed before the session calls drop_references().</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">active</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, int, ARDOUR::Route::ProcessorStreams*, bool)">add_processor_by_index</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">int</span>, <a class="" href="#ARDOUR:Route:ProcessorStreams">ProcessorStreams</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Add a processor to a route such that it ends up with a given index into the visible processors. </p><dl><dt class="param-name-index-1">index</dt><dd class="param-descr-index-1"> Index to add the processor at, or -1 to add at the end of the list. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 0 on success, non-0 on failure.</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>)">add_sidechain</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Amp">Amp</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Amp> (ARDOUR::Route::*)() const">amp</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Route::*)()">comment</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, unsigned int, ARDOUR::ChanCount)">customize_plugin_insert</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">unsigned int</span>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, unsigned int, ARDOUR::ChanCount, ARDOUR::ChanCount)">customize_plugin_insert</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">unsigned int</span>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> enable custom plugin-insert configuration </p><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> Processor to customize </dd><dt class="param-name-index-1">count</dt><dd class="param-descr-index-1"> number of plugin instances to use (if zero, reset to default) </dd><dt class="param-name-index-2">outs</dt><dd class="param-descr-index-2"> output port customization </dd><dt class="param-name-index-3">sinks</dt><dd class="param-descr-index-3"> input pins for variable-I/O plugins </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if successful</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Delivery">Delivery</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Delivery> (ARDOUR::Route::*)() const">main_outs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> the signal processorat at end of the processing chain which produces output </p></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">muted</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::Route::*)() const">n_inputs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::Route::*)() const">n_outputs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Processor">Processor</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Processor> (ARDOUR::Route::*)(unsigned int) const">nth_plugin</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, ARDOUR::Route::ProcessorStreams*, bool)">remove_processor</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <a class="" href="#ARDOUR:Route:ProcessorStreams">ProcessorStreams</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> remove plugin/processor</p><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> processor to remove </dd><dt class="param-name-index-1">err</dt><dd class="param-descr-index-1"> error report (index where removal vailed, channel-count why it failed) may be nil </dd><dt class="param-name-index-2">need_process_lock</dt><dd class="param-descr-index-2"> if locking is required (set to true, unless called from RT context with lock) </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 0 on success</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>)">remove_sidechain</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, boost::shared_ptr<ARDOUR::Processor>, ARDOUR::Route::ProcessorStreams*)">replace_processor</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <a class="" href="#ARDOUR:Processor">Processor</a>, <a class="" href="#ARDOUR:Route:ProcessorStreams">ProcessorStreams</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> replace plugin/processor with another</p><dl><dt class="param-name-index-0">old</dt><dd class="param-descr-index-0"> processor to remove </dd><dt class="param-name-index-1">sub</dt><dd class="param-descr-index-1"> processor to substitute the old one with </dd><dt class="param-name-index-2">err</dt><dd class="param-descr-index-2"> error report (index where removal vailed, channel-count why it failed) may be nil </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 0 on success</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>)">reset_plugin_insert</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> reset plugin-insert configuration to default, disable customizations.</p><p> This is equivalent to calling </p><pre> customize_plugin_insert (proc, 0, unused)</pre><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> Processor to reset </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if successful</p></div></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Route::*)(bool, void*)">set_active</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <span class="em">void*</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Route::*)(std::string, void*)">set_comment</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <span class="em">void*</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(std::string const&)">set_name</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(bool)">set_strict_io</abbr></span><span class="functionargs"> (<span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">soloed</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">strict_io</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Track (ARDOUR::Route::*)()">to_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Amp">Amp</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Amp> (ARDOUR::Route::*)() const">trim</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Track (ARDOUR::Route::*)()">to_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h4 class="cls">Inherited from ARDOUR:SessionObject</h4>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
<tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
-<h4 class="cls">Inherited from PBD:StatefulPtr</h4>
-<table class="classmembers">
- <tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-</table>
<h3 id="ARDOUR:Route:ProcessorStreams" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:Route:ProcessorStreams</h3>
<p class="cdecl"><em>C‡</em>: ARDOUR::Route::ProcessorStreams</p>
<div class="clear"></div>
<tr><th colspan="3">Constructor</th></tr>
<tr><td class="def">ℂ</td><td class="decl"><span class="functionname">ARDOUR.Route.ProcessorStreams</span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
+<h3 id="ARDOUR:RouteGroup" class="cls opaque"><abbr title="Opaque Object">∅</abbr> ARDOUR:RouteGroup</h3>
+<p class="cdecl"><em>C‡</em>: ARDOUR::RouteGroup</p>
+<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A group identifier for routes.</p><p> RouteGroups permit to define properties which are shared among all Routes that use the given identifier.</p><p> A route can at most be in one group.</p></div>
+<p class="classinfo">This class object is only used indirectly as return-value and function-parameter. It provides no methods by itself.</p>
<h3 id="ARDOUR:RouteList" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:RouteList</h3>
<p class="cdecl"><em>C‡</em>: std::list<boost::shared_ptr<ARDOUR::Route> ></p>
<div class="clear"></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Session::*)()">abort_reversible_command</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> abort an open undo command This must only be called after begin_reversible_command ()</p></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Session::*)() const">actively_recording</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Session::*)(Command*)">add_command</abbr></span><span class="functionargs"> (<a class="" href="#PBD:Command">Command</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#PBD:StatefulDiffCommand">StatefulDiffCommand</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDiffCommand* (ARDOUR::Session::*)(boost::shared_ptr<PBD::StatefulDestructible>)">add_stateful_diff_command</abbr></span><span class="functionargs"> (<a class="" href="#PBD:StatefulDestructiblePtr">StatefulDestructiblePtr</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> create an StatefulDiffCommand from the given object and add it to the stack.</p><p> This function must only be called after begin_reversible_command. Failing to do so may lead to a crash.</p><dl><dt class="param-name-index-0">sfd</dt><dd class="param-descr-index-0"> the object to diff </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> the allocated StatefulDiffCommand (already added via add_command)</p></div></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Session::*)(std::string const&)">begin_reversible_command</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> begin collecting undo information</p><p> This call must always be followed by either begin_reversible_command() or commit_reversible_command()</p><dl><dt class="param-name-index-0">cmd_name</dt><dd class="param-descr-index-0"> human readable name for the undo operation</dd></dl></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Session::*)(Command*)">commit_reversible_command</abbr></span><span class="functionargs"> (<a class="" href="#PBD:Command">Command</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> finalize an undo command and commit pending transactions</p><p> This must only be called after begin_reversible_command () </p><dl><dt class="param-name-index-0">cmd</dt><dd class="param-descr-index-0"> (additional) command to add</dd></dl></div></td></tr>
<tr><td class="def"><a class="" href="#PBD:Controllable">Controllable</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<PBD::Controllable> (ARDOUR::Session::*)(PBD::ID const&)">controllable_by_id</abbr></span><span class="functionargs"> (<a class="" href="#PBD:ID">ID</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">current_end_frame</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">current_start_frame</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:AudioEngine">AudioEngine</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::AudioEngine& (ARDOUR::Session::*)()">engine</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">frame_rate</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> "actual" sample rate of session, set by current audioengine rate, pullup/down etc. </p></div></td></tr>
<tr><td class="def"><span class="em">double</span></td><td class="decl"><span class="functionname"><abbr title="double (ARDOUR::Session::*)() const">frames_per_timecode_frame</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">unsigned int</span></td><td class="decl"><span class="functionname"><abbr title="unsigned int (ARDOUR::Session::*)() const">get_block_size</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:RouteListPtr">RouteListPtr</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<std::list<boost::shared_ptr<ARDOUR::Route> > > (ARDOUR::Session::*)() const">get_routes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:BufferSet">BufferSet</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::BufferSet& (ARDOUR::Session::*)(ARDOUR::ChanCount, bool)">get_scratch_buffers</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:ChanCount">ChanCount</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:BufferSet">BufferSet</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::BufferSet& (ARDOUR::Session::*)(ARDOUR::ChanCount)">get_silent_buffers</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:ChanCount">ChanCount</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Session::*)()">goto_end</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Session::*)()">goto_start</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">last_transport_start</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:Location">Location</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Locations* (ARDOUR::Session::*)()">locations</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Locations">Locations</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Locations* (ARDOUR::Session::*)()">locations</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Route">Route</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Route> (ARDOUR::Session::*)() const">master_out</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Route">Route</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Route> (ARDOUR::Session::*)() const">monitor_out</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Session::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:RouteList">RouteList</a></td><td class="decl"><span class="functionname"><abbr title="std::list<boost::shared_ptr<ARDOUR::Route> > (ARDOUR::Session::*)(int, int, ARDOUR::RouteGroup*, unsigned int, std::string)">new_audio_route</abbr></span><span class="functionargs"> (<span class="em">int</span>, <span class="em">int</span>, <a class="" href="#ARDOUR:RouteGroup">RouteGroup</a>, <span class="em">unsigned int</span>, <span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Caller must not hold process lock. </p><dl><dt class="param-name-index-4">name_template</dt><dd class="param-descr-index-4"> string to use for the start of the name, or "" to use "Bus".</dd></dl></div></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:AudioTrackList">AudioTrackList</a></td><td class="decl"><span class="functionname"><abbr title="std::list<boost::shared_ptr<ARDOUR::AudioTrack> > (ARDOUR::Session::*)(int, int, ARDOUR::TrackMode, ARDOUR::RouteGroup*, unsigned int, std::string)">new_audio_track</abbr></span><span class="functionargs"> (<span class="em">int</span>, <span class="em">int</span>, <a class="" href="#ARDOUR.TrackMode">TrackMode</a>, <a class="" href="#ARDOUR:RouteGroup">RouteGroup</a>, <span class="em">unsigned int</span>, <span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Caller must not hold process lock </p><dl><dt class="param-name-index-5">name_template</dt><dd class="param-descr-index-5"> string to use for the start of the name, or "" to use "Audio".</dd></dl></div></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:RouteList">RouteList</a></td><td class="decl"><span class="functionname"><abbr title="std::list<boost::shared_ptr<ARDOUR::Route> > (ARDOUR::Session::*)(ARDOUR::RouteGroup*, unsigned int, std::string, boost::shared_ptr<ARDOUR::PluginInfo>, ARDOUR::Plugin::PresetRecord*)">new_midi_route</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:RouteGroup">RouteGroup</a>, <span class="em">unsigned int</span>, <span class="em">std::string</span>, <a class="" href="#ARDOUR:PluginInfo">PluginInfo</a>, <a class="" href="#ARDOUR:PresetRecord">PresetRecord</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:MidiTrackList">MidiTrackList</a></td><td class="decl"><span class="functionname"><abbr title="std::list<boost::shared_ptr<ARDOUR::MidiTrack> > (ARDOUR::Session::*)(ARDOUR::ChanCount const&, ARDOUR::ChanCount const&, boost::shared_ptr<ARDOUR::PluginInfo>, ARDOUR::TrackMode, ARDOUR::RouteGroup*, unsigned int, std::string, ARDOUR::Plugin::PresetRecord*)">new_midi_track</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:ChanCount">ChanCount</a>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>, <a class="" href="#ARDOUR:PluginInfo">PluginInfo</a>, <a class="" href="#ARDOUR.TrackMode">TrackMode</a>, <a class="" href="#ARDOUR:RouteGroup">RouteGroup</a>, <span class="em">unsigned int</span>, <span class="em">std::string</span>, <a class="" href="#ARDOUR:PresetRecord">PresetRecord</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:RouteList">RouteList</a></td><td class="decl"><span class="functionname"><abbr title="std::list<boost::shared_ptr<ARDOUR::Route> > (ARDOUR::Session::*)(unsigned int, std::string const&, std::string const&, ARDOUR::PlaylistDisposition)">new_route_from_template</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>, <span class="em">std::string</span>, <span class="em">std::string</span>, <a class="" href="#ARDOUR.PlaylistDisposition">PlaylistDisposition</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> create a new track or bus from a template (XML path) </p><dl><dt class="param-name-index-0">how_many</dt><dd class="param-descr-index-0"> how many tracks or busses to create </dd><dt class="param-name-index-1">template_path</dt><dd class="param-descr-index-1"> path to xml template file </dd><dt class="param-name-index-2">name</dt><dd class="param-descr-index-2"> name (prefix) of the route to create </dd><dt class="param-name-index-3">pd</dt><dd class="param-descr-index-3"> Playlist disposition </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> list of newly created routes</p></div></div></td></tr>
<tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">nominal_frame_rate</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> "native" sample rate of session, regardless of current audioengine rate, pullup/down etc </p></div></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Session::*)() const">path</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Route">Route</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Route> (ARDOUR::Session::*)(std::string)">route_by_name</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Route">Route</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Route> (ARDOUR::Session::*)(unsigned int)">route_by_remote_id</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Session::*)(std::string, bool, bool, bool)">save_state</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <span class="em">bool</span>, <span class="em">bool</span>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><dl><dt class="param-name-index-0">snapshot_name</dt><dd class="param-descr-index-0"> Name to save under, without .ardour / .pending prefix </dd></dl></div></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> save session </p><dl><dt class="param-name-index-0">snapshot_name</dt><dd class="param-descr-index-0"> name of the session (use an empty string for the current name) </dd><dt class="param-name-index-1">pending</dt><dd class="param-descr-index-1"> save a 'recovery', not full state (default: false) </dd><dt class="param-name-index-2">switch_to_snapshot</dt><dd class="param-descr-index-2"> switch to given snapshot after saving (default: false) </dd><dt class="param-name-index-3">template_only</dt><dd class="param-descr-index-3"> save a session template (default: false) </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> zero on success</p></div></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Session::*)()">scripts_changed</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Session::*)()">set_dirty</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Session::*)() const">snap_name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Session::*)() const">transport_rolling</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">double</span></td><td class="decl"><span class="functionname"><abbr title="double (ARDOUR::Session::*)() const">transport_speed</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#C:StringList">StringList</a></td><td class="decl"><span class="functionname"><abbr title="std::list<std::string > (ARDOUR::Session::*)() const">unknown_processors</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">worst_input_latency</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">worst_output_latency</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">worst_playback_latency</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ARDOUR::Session::*)() const">worst_track_latency</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="ARDOUR:SessionObject" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:SessionObject</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::SessionObject >, boost::weak_ptr< ARDOUR::SessionObject ></p>
- <p class="classinfo">is-a: <a class="" href="#PBD:StatefulDestructiblePtr">PBD:StatefulDestructiblePtr</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A named object associated with a Session. Objects derived from this class are expected to be destroyed before the session calls drop_references().</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
<tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
-<h4 class="cls">Inherited from PBD:StatefulPtr</h4>
-<table class="classmembers">
- <tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-</table>
<h3 id="ARDOUR:SideChain" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:SideChain</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::SideChain >, boost::weak_ptr< ARDOUR::SideChain ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:IOProcessor">ARDOUR:IOProcessor</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A mixer strip element (Processor) with 1 or 2 IO elements.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#Evoral:Control">Control</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<Evoral::Control> (Evoral::ControlSet::*)(Evoral::Parameter const&, bool)">control</abbr></span><span class="functionargs"> (<a class="" href="#Evoral:Parameter">Parameter</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Processor::*)()">deactivate</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Processor::*)() const">display_name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Automatable">Automatable</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Automatable (ARDOUR::Processor::*)()">to_automatable</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:PluginInsert">PluginInsert</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::PluginInsert (ARDOUR::Processor::*)()">to_insert</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:IOProcessor">IOProcessor</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::IOProcessor (ARDOUR::Processor::*)()">to_ioprocessor</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:SessionObject">SessionObject</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::SessionObject (ARDOUR::Processor::*)()">to_sessionobject</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:SideChain">SideChain</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::SideChain (ARDOUR::Processor::*)()">to_sidechain</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
+<h4 class="cls">Inherited from ARDOUR:SessionObject</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+</table>
<h3 id="ARDOUR:Source" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> ARDOUR:Source</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::Source >, boost::weak_ptr< ARDOUR::Source ></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A named object associated with a Session. Objects derived from this class are expected to be destroyed before the session calls drop_references().</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< ARDOUR::Track >, boost::weak_ptr< ARDOUR::Track ></p>
<p class="classinfo">is-a: <a class="" href="#ARDOUR:Route">ARDOUR:Route</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A track is an route (bus) with a recordable diskstream and related objects relevant to tracking, playback and editing.</p><p> Specifically a track has regions and playlist objects.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:Region">Region</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Region> (ARDOUR::Track::*)(long, long, ARDOUR::InterThreadInfo&, boost::shared_ptr<ARDOUR::Processor>, bool)">bounce</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long</span>, <a class="" href="#ARDOUR:InterThreadInfo">InterThreadInfo&</a>, <a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Region">Region</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Region> (ARDOUR::Track::*)(ARDOUR::InterThreadInfo&)">bounce</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:InterThreadInfo">InterThreadInfo&</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> bounce track from session start to session end to new region</p><dl><dt class="param-name-index-0">itt</dt><dd class="param-descr-index-0"> asynchronous progress report and cancel </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> a new audio region (or nil in case of error)</p></div></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Region">Region</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Region> (ARDOUR::Track::*)(long, long, ARDOUR::InterThreadInfo&, boost::shared_ptr<ARDOUR::Processor>, bool)">bounce_range</abbr></span><span class="functionargs"> (<span class="em">long</span>, <span class="em">long</span>, <a class="" href="#ARDOUR:InterThreadInfo">InterThreadInfo&</a>, <a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Bounce the given range to a new audio region. </p><dl><dt class="param-name-index-0">start</dt><dd class="param-descr-index-0"> start time (in samples) </dd><dt class="param-name-index-1">end</dt><dd class="param-descr-index-1"> end time (in samples) </dd><dt class="param-name-index-2">itt</dt><dd class="param-descr-index-2"> asynchronous progress report and cancel </dd><dt class="param-name-index-3">endpoint</dt><dd class="param-descr-index-3"> the processor to tap the signal off (or nil for the top) </dd><dt class="param-name-index-4">include_endpoint</dt><dd class="param-descr-index-4"> include the given processor in the bounced audio. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> a new audio region (or nil in case of error)</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Track::*)(boost::shared_ptr<ARDOUR::Processor>, bool) const">bounceable</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Test if the track can be bounced with the given settings. If sends/inserts/returns are present in the signal path or the given track has no audio outputs bouncing is not possible.</p><dl><dt class="param-name-index-0">endpoint</dt><dd class="param-descr-index-0"> the processor to tap the signal off (or nil for the top) </dd><dt class="param-name-index-1">include_endpoint</dt><dd class="param-descr-index-1"> include the given processor in the bounced audio. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if the track can be bounced, or false otherwise.</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Track::*)()">can_record</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Playlist">Playlist</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Playlist> (ARDOUR::Track::*)()">playlist</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Track::*)(std::string const&)">set_name</abbr></span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Track::*)(bool, PBD::Controllable::GroupControlDisposition)">set_record_enabled</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <a class="" href="#PBD.Controllable.GroupControlDisposition">GroupControlDisposition</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Track::*)(bool, PBD::Controllable::GroupControlDisposition)">set_record_safe</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <a class="" href="#PBD.Controllable.GroupControlDisposition">GroupControlDisposition</a>)</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
<tr><td class="def"><a class="" href="#ARDOUR:AudioTrack">AudioTrack</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::AudioTrack (ARDOUR::Track::*)()">to_audio_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:MidiTrack">MidiTrack</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::MidiTrack (ARDOUR::Track::*)()">to_midi_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">active</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, int, ARDOUR::Route::ProcessorStreams*, bool)">add_processor_by_index</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">int</span>, <a class="" href="#ARDOUR:Route:ProcessorStreams">ProcessorStreams</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Add a processor to a route such that it ends up with a given index into the visible processors. </p><dl><dt class="param-name-index-1">index</dt><dd class="param-descr-index-1"> Index to add the processor at, or -1 to add at the end of the list. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 0 on success, non-0 on failure.</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>)">add_sidechain</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Amp">Amp</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Amp> (ARDOUR::Route::*)() const">amp</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::Route::*)()">comment</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, unsigned int, ARDOUR::ChanCount)">customize_plugin_insert</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">unsigned int</span>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, unsigned int, ARDOUR::ChanCount, ARDOUR::ChanCount)">customize_plugin_insert</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <span class="em">unsigned int</span>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>, <a class="" href="#ARDOUR:ChanCount">ChanCount</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> enable custom plugin-insert configuration </p><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> Processor to customize </dd><dt class="param-name-index-1">count</dt><dd class="param-descr-index-1"> number of plugin instances to use (if zero, reset to default) </dd><dt class="param-name-index-2">outs</dt><dd class="param-descr-index-2"> output port customization </dd><dt class="param-name-index-3">sinks</dt><dd class="param-descr-index-3"> input pins for variable-I/O plugins </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if successful</p></div></div></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Delivery">Delivery</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Delivery> (ARDOUR::Route::*)() const">main_outs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> the signal processorat at end of the processing chain which produces output </p></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">muted</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::Route::*)() const">n_inputs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:ChanCount">ChanCount</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::ChanCount (ARDOUR::Route::*)() const">n_outputs</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Processor">Processor</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Processor> (ARDOUR::Route::*)(unsigned int) const">nth_plugin</abbr></span><span class="functionargs"> (<span class="em">unsigned int</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, ARDOUR::Route::ProcessorStreams*, bool)">remove_processor</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <a class="" href="#ARDOUR:Route:ProcessorStreams">ProcessorStreams</a>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> remove plugin/processor</p><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> processor to remove </dd><dt class="param-name-index-1">err</dt><dd class="param-descr-index-1"> error report (index where removal vailed, channel-count why it failed) may be nil </dd><dt class="param-name-index-2">need_process_lock</dt><dd class="param-descr-index-2"> if locking is required (set to true, unless called from RT context with lock) </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 0 on success</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>)">remove_sidechain</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">int</span></td><td class="decl"><span class="functionname"><abbr title="int (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>, boost::shared_ptr<ARDOUR::Processor>, ARDOUR::Route::ProcessorStreams*)">replace_processor</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>, <a class="" href="#ARDOUR:Processor">Processor</a>, <a class="" href="#ARDOUR:Route:ProcessorStreams">ProcessorStreams</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> replace plugin/processor with another</p><dl><dt class="param-name-index-0">old</dt><dd class="param-descr-index-0"> processor to remove </dd><dt class="param-name-index-1">sub</dt><dd class="param-descr-index-1"> processor to substitute the old one with </dd><dt class="param-name-index-2">err</dt><dd class="param-descr-index-2"> error report (index where removal vailed, channel-count why it failed) may be nil </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> 0 on success</p></div></div></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(boost::shared_ptr<ARDOUR::Processor>)">reset_plugin_insert</abbr></span><span class="functionargs"> (<a class="" href="#ARDOUR:Processor">Processor</a>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> reset plugin-insert configuration to default, disable customizations.</p><p> This is equivalent to calling </p><pre> customize_plugin_insert (proc, 0, unused)</pre><dl><dt class="param-name-index-0">proc</dt><dd class="param-descr-index-0"> Processor to reset </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if successful</p></div></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Route::*)(bool, void*)">set_active</abbr></span><span class="functionargs"> (<span class="em">bool</span>, <span class="em">void*</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (ARDOUR::Route::*)(std::string, void*)">set_comment</abbr></span><span class="functionargs"> (<span class="em">std::string</span>, <span class="em">void*</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)(bool)">set_strict_io</abbr></span><span class="functionargs"> (<span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">soloed</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (ARDOUR::Route::*)() const">strict_io</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Track (ARDOUR::Route::*)()">to_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:Amp">Amp</a></td><td class="decl"><span class="functionname"><abbr title="boost::shared_ptr<ARDOUR::Amp> (ARDOUR::Route::*)() const">trim</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
+ <tr><td class="def"><a class="" href="#ARDOUR:Track">Track</a></td><td class="decl"><span class="functionname"><abbr title="ARDOUR::Track (ARDOUR::Route::*)()">to_track</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h4 class="cls">Inherited from ARDOUR:SessionObject</h4>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ARDOUR::SessionObject::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Cast</th></tr>
<tr><td class="def"><a class="" href="#PBD:Stateful">Stateful</a></td><td class="decl"><span class="functionname"><abbr title="PBD::Stateful (ARDOUR::SessionObject::*)()">to_stateful</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#PBD:StatefulDestructible">StatefulDestructible</a></td><td class="decl"><span class="functionname"><abbr title="PBD::StatefulDestructible (ARDOUR::SessionObject::*)()">to_statefuldestructible</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
-<h4 class="cls">Inherited from PBD:StatefulPtr</h4>
-<table class="classmembers">
- <tr><th colspan="3">Methods</th></tr>
- <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
- <tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
-</table>
<h3 id="ARDOUR:WeakAudioSourceList" class="cls class"><abbr title="Class">∁</abbr> ARDOUR:WeakAudioSourceList</h3>
<p class="cdecl"><em>C‡</em>: std::list<boost::weak_ptr<ARDOUR::AudioSource> ></p>
<div class="clear"></div>
<tr><td class="def"><span class="em">unsigned long</span></td><td class="decl"><span class="functionname"><abbr title="unsigned long (std::list<boost::weak_ptr<ARDOUR::Source> >::*)() const">size</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><em>LuaTable</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">table</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
-<h3 id="ArdourUI:ArdourMarker" class="cls opaque"><abbr title="Opaque Object">∅</abbr> ArdourUI:ArdourMarker</h3>
+<h3 id="ArdourUI:ArdourMarker" class="cls class"><abbr title="Class">∁</abbr> ArdourUI:ArdourMarker</h3>
<p class="cdecl"><em>C‡</em>: ArdourMarker</p>
<div class="clear"></div>
<div class="classdox"><p class="para-brief"> Location Marker</p><p> Editor ruler representation of a location marker or range on the timeline.</p></div>
-<p class="classinfo">This class object is only used indirectly as return-value and function-parameter. It provides no methods by itself.</p>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (ArdourMarker::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (ArdourMarker::*)() const">position</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ArdourMarker.Type">Type</a></td><td class="decl"><span class="functionname"><abbr title="ArdourMarker::Type (ArdourMarker::*)()">type</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ </table>
+<h3 id="ArdourUI:ArdourMarkerList" class="cls class"><abbr title="Class">∁</abbr> ArdourUI:ArdourMarkerList</h3>
+<p class="cdecl"><em>C‡</em>: std::list<ArdourMarker* ></p>
+<div class="clear"></div>
+<table class="classmembers">
+ <tr><th colspan="3">Constructor</th></tr>
+ <tr><td class="def">ℂ</td><td class="decl"><span class="functionname">ArdourUI.ArdourMarkerList</span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><em>LuaTable</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">add</abbr></span><span class="functionargs"> (<em>LuaTable</em> {<span class="em">ArdourMarker* </span>})</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (std::list<ArdourMarker* >::*)() const">empty</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaIter</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">iter</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (std::list<ArdourMarker* >::*)(ArdourMarker* const&)">push_back</abbr></span><span class="functionargs"> (<a class="" href="#ArdourUI:ArdourMarker">ArdourMarker</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (std::list<ArdourMarker* >::*)()">reverse</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">unsigned long</span></td><td class="decl"><span class="functionname"><abbr title="unsigned long (std::list<ArdourMarker* >::*)() const">size</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaTable</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">table</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (std::list<ArdourMarker* >::*)()">unique</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ </table>
<h3 id="ArdourUI:Editor" class="cls class"><abbr title="Class">∁</abbr> ArdourUI:Editor</h3>
<p class="cdecl"><em>C‡</em>: PublicEditor</p>
<div class="clear"></div>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Undo some transactions. </p><dl><dt class="param-name-index-0">n</dt><dd class="param-descr-index-0"> Number of transactions to undo.</dd></dl></div></td></tr>
<tr><td class="def"><span class="em">double</span></td><td class="decl"><span class="functionname"><abbr title="double (PublicEditor::*)() const">visible_canvas_height</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
+<h3 id="ArdourUI:MarkerSelection" class="cls opaque"><abbr title="Opaque Object">∅</abbr> ArdourUI:MarkerSelection</h3>
+<p class="cdecl"><em>C‡</em>: MarkerSelection</p>
+ <p class="classinfo">is-a: <a class="" href="#ArdourUI:ArdourMarkerList">ArdourUI:ArdourMarkerList</a></p>
+<div class="clear"></div>
+<p class="classinfo">This class object is only used indirectly as return-value and function-parameter. It provides no methods by itself.</p>
+<h4 class="cls">Inherited from ArdourUI:ArdourMarkerList</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Constructor</th></tr>
+ <tr><td class="def">ℂ</td><td class="decl"><span class="functionname">ArdourUI.ArdourMarkerList</span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><em>LuaTable</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">add</abbr></span><span class="functionargs"> (<em>LuaTable</em> {<span class="em">ArdourMarker* </span>})</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (std::list<ArdourMarker* >::*)() const">empty</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaIter</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">iter</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (std::list<ArdourMarker* >::*)(ArdourMarker* const&)">push_back</abbr></span><span class="functionargs"> (<a class="" href="#ArdourUI:ArdourMarker">ArdourMarker</a>)</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (std::list<ArdourMarker* >::*)()">reverse</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">unsigned long</span></td><td class="decl"><span class="functionname"><abbr title="unsigned long (std::list<ArdourMarker* >::*)() const">size</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaTable</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">table</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (std::list<ArdourMarker* >::*)()">unique</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+</table>
<h3 id="ArdourUI:RegionSelection" class="cls class"><abbr title="Class">∁</abbr> ArdourUI:RegionSelection</h3>
<p class="cdecl"><em>C‡</em>: RegionSelection</p>
<div class="clear"></div>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (Selection::*)()">clear</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Clear everything from the Selection </p></div></td></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (Selection::*)()">clear_all</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (Selection::*)(bool)">empty</abbr></span><span class="functionargs"> (<span class="em">bool</span>)</span></td><td class="fill"></td></tr>
+<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> check if all selections are empty </p><dl><dt class="param-name-index-0">internal_selection</dt><dd class="param-descr-index-0"> also check object internals (e.g midi notes, automation points), when false only check objects. </dd></dl><div class="result-discussion"><p class="para-returns"><span class="word-returns">Returns</span> true if nothing is selected.</p></div></div></td></tr>
<tr><th colspan="3">Data Members</th></tr>
+ <tr><td class="def"><a class="" href="#ArdourUI:MarkerSelection">ArdourUI:MarkerSelection</a></td><td class="decl"><span class="functionname">markers</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ArdourUI:RegionSelection">ArdourUI:RegionSelection</a></td><td class="decl"><span class="functionname">regions</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><a class="" href="#ArdourUI:TimeSelection">ArdourUI:TimeSelection</a></td><td class="decl"><span class="functionname">time</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ArdourUI:TrackSelection">ArdourUI:TrackSelection</a></td><td class="decl"><span class="functionname">tracks</span></td><td class="fill"></td></tr>
</table>
+<h3 id="ArdourUI:TimeSelection" class="cls class"><abbr title="Class">∁</abbr> ArdourUI:TimeSelection</h3>
+<p class="cdecl"><em>C‡</em>: TimeSelection</p>
+ <p class="classinfo">is-a: <a class="" href="#ARDOUR:AudioRangeList">ARDOUR:AudioRangeList</a></p>
+<div class="clear"></div>
+<table class="classmembers">
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (TimeSelection::*)()">end_frame</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (TimeSelection::*)()">length</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">long</span></td><td class="decl"><span class="functionname"><abbr title="long (TimeSelection::*)()">start</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ </table>
+<h4 class="cls">Inherited from ARDOUR:AudioRangeList</h4>
+<table class="classmembers">
+ <tr><th colspan="3">Constructor</th></tr>
+ <tr><td class="def">ℂ</td><td class="decl"><span class="functionname">ARDOUR.AudioRangeList</span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><th colspan="3">Methods</th></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="bool (std::list<ARDOUR::AudioRange >::*)() const">empty</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaIter</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">iter</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (std::list<ARDOUR::AudioRange >::*)()">reverse</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">unsigned long</span></td><td class="decl"><span class="functionname"><abbr title="unsigned long (std::list<ARDOUR::AudioRange >::*)() const">size</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><em>LuaTable</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*) const">table</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+</table>
<h3 id="ArdourUI:TrackSelection" class="cls opaque"><abbr title="Opaque Object">∅</abbr> ArdourUI:TrackSelection</h3>
<p class="cdecl"><em>C‡</em>: TrackSelection</p>
<p class="classinfo">is-a: <a class="" href="#ArdourUI:TrackViewList">ArdourUI:TrackViewList</a></p>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><em>LuaMetaTable</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*)">array</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><em>LuaTable</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*)">get_table</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)(float*)">sameinstance</abbr></span><span class="functionargs"> (<a class="" href="#C:FloatArray">FloatArray</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><em>void</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*)">set_table</abbr></span><span class="functionargs"> (<span class="em">LuaTable {float}</span>)</span></td><td class="fill"></td></tr>
</table>
<h3 id="C:IntArray" class="cls array"><abbr title="C Array">⋯</abbr> C:IntArray</h3>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><em>LuaMetaTable</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*)">array</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><em>LuaTable</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*)">get_table</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)(int*)">sameinstance</abbr></span><span class="functionargs"> (<a class="" href="#C:IntArray">IntArray</a>)</span></td><td class="fill"></td></tr>
<tr><td class="def"><em>void</em></td><td class="decl"><span class="functionname"><abbr title="int (*)(lua_State*)">set_table</abbr></span><span class="functionargs"> (<span class="em">LuaTable {int}</span>)</span></td><td class="fill"></td></tr>
</table>
<h3 id="C:StringList" class="cls class"><abbr title="Class">∁</abbr> C:StringList</h3>
<h3 id="Evoral:Control" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> Evoral:Control</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< Evoral::Control >, boost::weak_ptr< Evoral::Control ></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> Base class representing some kind of (automatable) control; a fader's gain, for example, or a compressor plugin's threshold.</p><p> The class knows the Evoral::Parameter that it is controlling, and has a list of values for automation.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<h3 id="Evoral:ControlList" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> Evoral:ControlList</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< Evoral::ControlList >, boost::weak_ptr< Evoral::ControlList ></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> A list (sequence) of time-stamped values for a control</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (Evoral::ControlList::*)(double, double, bool, bool)">add</abbr></span><span class="functionargs"> (<span class="em">double</span>, <span class="em">double</span>, <span class="em">bool</span>, <span class="em">bool</span>)</span></td><td class="fill"></td></tr>
<p class="cdecl"><em>C‡</em>: Command</p>
<p class="classinfo">is-a: <a class="" href="#PBD:StatefulDestructible">PBD:StatefulDestructible</a></p>
<div class="clear"></div>
-<div class="classdox"><p class="para-brief"> Base class for objects with saveable and undoable state with destruction notification </p></div>
+<div class="classdox"><p class="para-brief"> Base class for Undo/Redo commands and changesets </p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string const& (Command::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="PBD:Controllable" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> PBD:Controllable</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< PBD::Controllable >, boost::weak_ptr< PBD::Controllable ></p>
<p class="classinfo">is-a: <a class="" href="#PBD:StatefulDestructiblePtr">PBD:StatefulDestructiblePtr</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> This is a pure virtual class to represent a scalar control.</p><p> Note that it contains no storage/state for the controllable thing that it represents. Derived classes must provide set_value()/get_value() methods, which will involve (somehow) an actual location to store the value.</p><p> In essence, this is an interface, not a class.</p><p> Without overriding upper() and lower(), a derived class will function as a control whose value can range between 0 and 1.0.</p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">double</span></td><td class="decl"><span class="functionname"><abbr title="double (PBD::Controllable::*)() const">get_value</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
+ <tr><td class="def"><span class="em">std::string</span></td><td class="decl"><span class="functionname"><abbr title="std::string (PBD::Controllable::*)() const">name</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h4 class="cls">Inherited from PBD:StatefulPtr</h4>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="PBD:ID" class="cls class"><abbr title="Class">∁</abbr> PBD:ID</h3>
<p class="cdecl"><em>C‡</em>: PBD::ID</p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> a unique ID to identify objects numerically </p></div>
<table class="classmembers">
<tr><th colspan="3">Constructor</th></tr>
<tr><td class="def">ℂ</td><td class="decl"><span class="functionname">PBD.ID</span><span class="functionargs"> (<span class="em">std::string</span>)</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="PBD:StatefulDestructible" class="cls opaque"><abbr title="Opaque Object">∅</abbr> PBD:StatefulDestructible</h3>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="PBD:StatefulDestructiblePtr" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> PBD:StatefulDestructiblePtr</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< PBD::StatefulDestructible >, boost::weak_ptr< PBD::StatefulDestructible ></p>
<p class="classinfo">is-a: <a class="" href="#PBD:StatefulPtr">PBD:StatefulPtr</a></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> Base class for objects with saveable and undoable state with destruction notification </p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="PBD:StatefulDiffCommand" class="cls class"><abbr title="Class">∁</abbr> PBD:StatefulDiffCommand</h3>
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<h3 id="PBD:StatefulPtr" class="cls pointerclass"><abbr title="Pointer Class">↠</abbr> PBD:StatefulPtr</h3>
<p class="cdecl"><em>C‡</em>: boost::shared_ptr< PBD::Stateful >, boost::weak_ptr< PBD::Stateful ></p>
<div class="clear"></div>
+<div class="classdox"><p class="para-brief"> Base class for objects with saveable and undoable state </p></div>
<table class="classmembers">
<tr><th colspan="3">Methods</th></tr>
<tr><td class="def"><span class="em">void</span></td><td class="decl"><span class="functionname"><abbr title="void (PBD::Stateful::*)()">clear_changes</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td></td><td class="doc" colspan="2"><div class="dox"><p class="para-brief"> Forget about any changes to this object's properties </p></div></td></tr>
+ <tr><td class="def"><a class="" href="#PBD:ID">ID</a></td><td class="decl"><span class="functionname"><abbr title="PBD::ID const& (PBD::Stateful::*)() const">id</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><span class="em">bool</span></td><td class="decl"><span class="functionname"><abbr title="void (*)()">isnil</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
<tr><td class="def"><a class="" href="#ARDOUR:OwnedPropertyList">OwnedPropertyList</a></td><td class="decl"><span class="functionname"><abbr title="PBD::OwnedPropertyList const& (PBD::Stateful::*)() const">properties</abbr></span><span class="functionargs"> ()</span></td><td class="fill"></td></tr>
</table>
<ul class="enum">
<li class="const">ARDOUR.SrcQuality.SrcBest</li>
</ul>
+<h3 id="ARDOUR.PortFlags" class="cls enum"><abbr title="Enum">∈</abbr> ARDOUR.PortFlags</h3>
+<ul class="enum">
+<li class="const">ARDOUR.PortFlags.IsInput</li>
+<li class="const">ARDOUR.PortFlags.IsOutput</li>
+<li class="const">ARDOUR.PortFlags.IsPhysical</li>
+<li class="const">ARDOUR.PortFlags.CanMonitor</li>
+<li class="const">ARDOUR.PortFlags.IsTerminal</li>
+</ul>
<h3 id="ARDOUR.PlaylistDisposition" class="cls enum"><abbr title="Enum">∈</abbr> ARDOUR.PlaylistDisposition</h3>
<ul class="enum">
<li class="const">ARDOUR.PlaylistDisposition.CopyPlaylist</li>
<li class="const">ARDOUR.RegionPoint.End</li>
<li class="const">ARDOUR.RegionPoint.SyncPoint</li>
</ul>
+<h3 id="ARDOUR.TrackMode" class="cls enum"><abbr title="Enum">∈</abbr> ARDOUR.TrackMode</h3>
+<ul class="enum">
+<li class="const">ARDOUR.TrackMode.Normal</li>
+<li class="const">ARDOUR.TrackMode.NonLayered</li>
+<li class="const">ARDOUR.TrackMode.Destructive</li>
+</ul>
<h3 id="ARDOUR.Session.RecordState" class="cls enum"><abbr title="Enum">∈</abbr> ARDOUR.Session.RecordState</h3>
<ul class="enum">
<li class="const">ARDOUR.Session.RecordState.Disabled</li>
<li class="const">ARDOUR.Session.RecordState.Enabled</li>
<li class="const">ARDOUR.Session.RecordState.Recording</li>
</ul>
+<h3 id="ARDOUR.Location.Flags" class="cls enum"><abbr title="Enum">∈</abbr> ARDOUR.Location.Flags</h3>
+<ul class="enum">
+<li class="const">ARDOUR.LocationFlags.IsMark</li>
+<li class="const">ARDOUR.LocationFlags.IsAutoPunch</li>
+<li class="const">ARDOUR.LocationFlags.IsAutoLoop</li>
+<li class="const">ARDOUR.LocationFlags.IsHidden</li>
+<li class="const">ARDOUR.LocationFlags.IsCDMarker</li>
+<li class="const">ARDOUR.LocationFlags.IsRangeMarker</li>
+<li class="const">ARDOUR.LocationFlags.IsSessionRange</li>
+<li class="const">ARDOUR.LocationFlags.IsSkip</li>
+<li class="const">ARDOUR.LocationFlags.IsSkipping</li>
+</ul>
<h3 id="Cairo.LineCap" class="cls enum"><abbr title="Enum">∈</abbr> Cairo.LineCap</h3>
<ul class="enum">
<li class="const">Cairo.LineCap.Butt</li>
<li class="const">LuaSignal.DiskUnderrun</li>
<li class="const">LuaSignal.RegionPropertyChanged</li>
</ul>
+<h3 id="ArdourMarker.Type" class="cls enum"><abbr title="Enum">∈</abbr> ArdourMarker.Type</h3>
+<ul class="enum">
+<li class="const">ArdourUI.MarkerType.Mark</li>
+<li class="const">ArdourUI.MarkerType.Tempo</li>
+<li class="const">ArdourUI.MarkerType.Meter</li>
+<li class="const">ArdourUI.MarkerType.SessionStart</li>
+<li class="const">ArdourUI.MarkerType.SessionEnd</li>
+<li class="const">ArdourUI.MarkerType.RangeStart</li>
+<li class="const">ArdourUI.MarkerType.RangeEnd</li>
+<li class="const">ArdourUI.MarkerType.LoopStart</li>
+<li class="const">ArdourUI.MarkerType.LoopEnd</li>
+<li class="const">ArdourUI.MarkerType.PunchIn</li>
+<li class="const">ArdourUI.MarkerType.PunchOut</li>
+</ul>
<h3 id="Editing.SnapType" class="cls enum"><abbr title="Enum">∈</abbr> Editing.SnapType</h3>
<ul class="enum">
<li class="const">Editing.SnapToCDFrame</li>
<li><a class="" href="#ARDOUR:InterThreadInfo">ARDOUR:InterThreadInfo</a></li>
<li><a class="" href="#ARDOUR:Location">ARDOUR:Location</a></li>
<li><a class="" href="#ARDOUR:LocationList">ARDOUR:LocationList</a></li>
+<li><a class="" href="#ARDOUR:Locations">ARDOUR:Locations</a></li>
<li><a class="" href="#ARDOUR:LuaAPI">ARDOUR.LuaAPI</a></li>
<li><a class="" href="#ARDOUR:LuaOSC:Address">ARDOUR:LuaOSC:Address</a></li>
<li><a class="" href="#ARDOUR:Meter">ARDOUR:Meter</a></li>
<li><a class="" href="#ARDOUR:PluginInfo">ARDOUR:PluginInfo</a></li>
<li><a class="" href="#ARDOUR:PluginInsert">ARDOUR:PluginInsert</a></li>
<li><a class="" href="#ARDOUR:Port">ARDOUR:Port</a></li>
+<li><a class="" href="#ARDOUR:PortList">ARDOUR:PortList</a></li>
+<li><a class="" href="#ARDOUR:PortManager">ARDOUR:PortManager</a></li>
<li><a class="" href="#ARDOUR:PortSet">ARDOUR:PortSet</a></li>
<li><a class="" href="#ARDOUR:PresetRecord">ARDOUR:PresetRecord</a></li>
<li><a class="" href="#ARDOUR:Processor">ARDOUR:Processor</a></li>
<li><a class="" href="#ARDOUR:RegionListPtr">ARDOUR:RegionListPtr</a></li>
<li><a class="" href="#ARDOUR:Route">ARDOUR:Route</a></li>
<li><a class="" href="#ARDOUR:Route:ProcessorStreams">ARDOUR:Route:ProcessorStreams</a></li>
+<li><a class="" href="#ARDOUR:RouteGroup">ARDOUR:RouteGroup</a></li>
<li><a class="" href="#ARDOUR:RouteList">ARDOUR:RouteList</a></li>
<li><a class="" href="#ARDOUR:RouteListPtr">ARDOUR:RouteListPtr</a></li>
<li><a class="" href="#ARDOUR:Session">ARDOUR:Session</a></li>
<li><a class="" href="#ARDOUR:WeakRouteList">ARDOUR:WeakRouteList</a></li>
<li><a class="" href="#ARDOUR:WeakSourceList">ARDOUR:WeakSourceList</a></li>
<li><a class="" href="#ArdourUI:ArdourMarker">ArdourUI:ArdourMarker</a></li>
+<li><a class="" href="#ArdourUI:ArdourMarkerList">ArdourUI:ArdourMarkerList</a></li>
<li><a class="" href="#ArdourUI:Editor">ArdourUI:Editor</a></li>
+<li><a class="" href="#ArdourUI:MarkerSelection">ArdourUI:MarkerSelection</a></li>
<li><a class="" href="#ArdourUI:RegionSelection">ArdourUI:RegionSelection</a></li>
<li><a class="" href="#ArdourUI:Selection">ArdourUI:Selection</a></li>
+<li><a class="" href="#ArdourUI:TimeSelection">ArdourUI:TimeSelection</a></li>
<li><a class="" href="#ArdourUI:TrackSelection">ArdourUI:TrackSelection</a></li>
<li><a class="" href="#ArdourUI:TrackViewList">ArdourUI:TrackViewList</a></li>
<li><a class="" href="#C:DoubleVector">C:DoubleVector</a></li>
<li><a class="" href="#PBD:XMLNode">PBD:XMLNode</a></li>
<li><a class="" href="#Timecode:BBT_TIME">Timecode:BBT_TIME</a></li>
</ul>
-<!-- 207 / 860 !-->
+<!-- 281 / 907 !-->
</div>
-<div class="luafooter">Ardour 4.7-669-g49656a2 - Sun, 10 Apr 2016 23:34:17 +0200</div>
+<div class="luafooter">Ardour 4.7-1011-g1968f94 - Sun, 15 May 2016 13:59:13 +0200</div>