Overview
+Overview
The top-level entry point are =typelink('ARDOUR:Session')?> and =typelink('ArdourUI:Editor')?>. Most other Classes are used indirectly starting with a Session function. e.g. Session:get_routes(). @@ -696,7 +700,7 @@ A few classes are dedicated to certain script types, e.g. Lua DSP processors hav
Detailed documentation (parameter names, method description) is not yet available. Please stay tuned.
-Short introduction to Ardour classes
+Short introduction to Ardour classes
Ardour's structure is object oriented. The main object is the Session. A Session contains Audio Tracks, Midi Tracks and Busses.
Audio and Midi tracks are derived from a more general "Track" Object, which in turn is derived from a "Route" (aka Bus).
@@ -711,7 +715,7 @@ e.g obj = Session:route_by_name("Audio") obj:set_name("Guitar")
.
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 factory methods for object creation or removal.
Pass by Reference
+Pass by Reference
Since lua functions are closures, C++ methods that pass arguments by reference cannot be used as-is. All parameters passed to a C++ method which uses references are returned as Lua Table. @@ -762,7 +766,7 @@ print (rv, ref[1], ref[2])
Pointer Classes
+Pointer Classes
Libardour makes extensive use of reference counted boost::shared_ptr
to manage lifetimes.
The Lua bindings provide a complete abstration of this. There are no pointers in lua.
@@ -795,7 +799,7 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to C
#################################
# Main output function -- Classes
-echo '
Class Documentation
'.NL; +echo 'Class Documentation
'.NL; foreach ($classlist as $ns => $cl) { $dups = array (); $tbl = format_class_members ($ns, $cl, $dups); @@ -803,23 +807,23 @@ foreach ($classlist as $ns => $cl) { # format class title - depending on type if (empty ($tbl)) { # classes with no members (no ctor, no methods, no data) - echo '∅ '.htmlentities ($ns).'
'.NL; + echo '∅ '.htmlentities ($ns).'
'.NL; } else if (isset ($classlist[$ns]['free'])) { # free functions (no class) - echo 'ℕ '.ctorname($ns).'
'.NL; + echo 'ℕ '.ctorname($ns).'
'.NL; } else if (isset ($classlist[$ns]['arr'])) { # C Arrays - echo '⋯ '.htmlentities ($ns).'
'.NL; + echo '⋯ '.htmlentities ($ns).'
'.NL; } else if (isset ($classlist[$ns]['ptr'])) { # Pointer Classes - echo '↠ '. htmlentities ($ns).'
'.NL; + echo '↠ '. htmlentities ($ns).'
'.NL; } else { # Normal Class - echo '∁ '.htmlentities ($ns).'
'.NL; + echo '∁ '.htmlentities ($ns).'
'.NL; } # show original C++ declaration @@ -852,7 +856,7 @@ foreach ($classlist as $ns => $cl) { foreach ($inherited as $pns => $pcl) { $tbl = format_class_members ($pns, $pcl, $dups); if (!empty ($tbl)) { - echo 'Inherited from '.$pns.'
'.NL; + echo 'Inherited from '.$pns.'
'.NL; echo 'Enum/Constants
'.NL; +echo 'Enum/Constants
'.NL; foreach ($constlist as $ns => $cs) { - echo '∈ '.ctorname ($ns).'
'.NL; + echo '∈ '.ctorname ($ns).'
'.NL; echo '- '.NL;
foreach ($cs as $c) {
echo '
- '.ctorname ($c['lua']).' '.NL; @@ -876,7 +880,7 @@ foreach ($constlist as $ns => $cs) { ###################### # Index of all classes -echo '
- '.typelink($ns).' '.NL; @@ -889,6 +893,9 @@ fwrite (STDERR, "Found $dox_found annotations. missing: $dox_miss\n"); ?>
Class Index
'.NL; +echo 'Class Index
'.NL; echo '- '.NL;
foreach ($classlist as $ns => $cl) {
echo '