DummyPlayer finished. General Documentation regarding Layer Interfaces and DummyPlayer

This commit is contained in:
Fischlurch 2009-02-09 05:20:58 +01:00
parent 0e5314e0cf
commit ea56841389
25 changed files with 1021 additions and 185 deletions

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 85 KiB

View file

@ -0,0 +1,21 @@
<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Class Facade</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body bgcolor="#ffffff">
<div class = "title">Class Facade</div>
<p></p>
<!-- ============================================================= -->
<a name="refclass146565"></a>
<p>Declaration :</p><ul><li>C++ : class Facade </li><li>Java : package interface Facade </li></ul><p>Directly inherited by : <a href="class146693.html#refclass146693"><b>Proxy</b></a> <a href="class146821.html#refclass146821"><b>ServiceImpl</b></a> </p>
</body>
</html>

View file

@ -0,0 +1,23 @@
<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Class Proxy</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body bgcolor="#ffffff">
<div class = "title">Class Proxy</div>
<p></p>
<!-- ============================================================= -->
<a name="refclass146693"></a>
<p>Declaration :</p><ul><li>C++ : class Proxy : public <a href="class146565.html#refclass146565"><b>Facade</b></a> </li></ul><div class="sub">
<a name="refrelation162181"></a>
<table><tr><td><div class="element">Relation <b>&lt;unidirectional association&gt;</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class146949.html#refclass146949"><b>C_Interface</b></a></li><li>C++ : protected: <a href="class146949.html#refclass146949"><b>C_Interface</b></a>* </li></ul></div>
</body>
</html>

View file

@ -0,0 +1,23 @@
<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Class ServiceImpl</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body bgcolor="#ffffff">
<div class = "title">Class ServiceImpl</div>
<p></p>
<!-- ============================================================= -->
<a name="refclass146821"></a>
<p>Declaration :</p><ul><li>C++ : class ServiceImpl : public <a href="class146565.html#refclass146565"><b>Facade</b></a> </li></ul><div class="sub">
<a name="refrelation162437"></a>
<table><tr><td><div class="element">Relation <b>&lt;unidirectional association&gt;</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class147205.html#refclass147205"><b>InstanceHandle</b></a></li><li>C++ : protected: <a href="class147205.html#refclass147205"><b>InstanceHandle</b></a>* </li></ul></div>
</body>
</html>

View file

@ -0,0 +1,21 @@
<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Class C_Interface</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body bgcolor="#ffffff">
<div class = "title">Class C_Interface</div>
<p></p>
<!-- ============================================================= -->
<a name="refclass146949"></a>
<p>Declaration :</p><ul><li>C++ : class C_Interface </li></ul><p>Directly inherited by : <a href="class147077.html#refclass147077"><b>C_Instance</b></a> </p>
</body>
</html>

View file

@ -0,0 +1,23 @@
<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Class C_Instance</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body bgcolor="#ffffff">
<div class = "title">Class C_Instance</div>
<p></p>
<!-- ============================================================= -->
<a name="refclass147077"></a>
<p>Declaration :</p><ul><li>C++ : class C_Instance : public <a href="class146949.html#refclass146949"><b>C_Interface</b></a> </li></ul><div class="sub">
<a name="refrelation162309"></a>
<table><tr><td><div class="element">Relation <b>&lt;unidirectional association&gt;</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class146821.html#refclass146821"><b>ServiceImpl</b></a></li><li>C++ : protected: <a href="class146821.html#refclass146821"><b>ServiceImpl</b></a>* </li></ul></div>
</body>
</html>

View file

@ -0,0 +1,22 @@
<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Class InstanceHandle</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body bgcolor="#ffffff">
<div class = "title">Class InstanceHandle</div>
<p></p>
<!-- ============================================================= -->
<a name="refclass147205"></a>
<p>Declaration :</p><ul><li>C++ : template&lt;class C_Interface, class Facade&gt; class InstanceHandle </li></ul><div class="sub">
</div>
</body>
</html>

View file

@ -24,6 +24,7 @@
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram130181" target = "projectFrame"><b>Hierarchy</b></a></td><td></td><td>Lumiera Exception hierarchy</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram128309" target = "projectFrame"><b>In Memory Database</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram130949" target = "projectFrame"><b>interface components</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram132869" target = "projectFrame"><b>Layer Separation Interface</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram130437" target = "projectFrame"><b>Media-Asset Relations</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram131077" target = "projectFrame"><b>Proc-Asset Relations</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram128389" target = "projectFrame"><b>Render Entities</b></a></td><td></td><td></td></tr>

View file

@ -32,6 +32,8 @@
<tr bgcolor=#f0f0f0><td><a href="class130565.html#refclass130565" target = "projectFrame"><b>BuilderFacade</b></a></td><td>boundary</td><td>Provides unified access to the builder functionality. While individual components of the builder subsystem may be called if necessary or suitable, it is usually better to do all extern invocations via the high level methods of this Facade</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class134149.html#refclass134149" target = "projectFrame"><b>BuilderTool</b></a></td><td>interface</td><td>Used according to the visitor pattern: each Tool contains the concrete implementation for one task to be done to the various MObject classes</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class139013.html#refclass139013" target = "projectFrame"><b>BuildInstruct</b></a></td><td></td><td>(Interface) building instructions to be executed by the Builder on the render node network under construction.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class147077.html#refclass147077" target = "projectFrame"><b>C_Instance</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class146949.html#refclass146949" target = "projectFrame"><b>C_Interface</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class143237.html#refclass143237" target = "projectFrame"><b>Caller</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class137221.html#refclass137221" target = "projectFrame"><b>Category</b></a></td><td></td><td>tree like classification of Assets</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class137349.html#refclass137349" target = "projectFrame"><b>Clip</b></a></td><td></td><td>bookkeeping (asset) view of a media clip.</td></tr>
@ -58,6 +60,7 @@
<tr bgcolor=#f0f0f0><td><a href="class131589.html#refclass131589" target = "projectFrame"><b>ExitNode</b></a></td><td></td><td>The output of the render pipeline. Pulling from such exit nodes actually ivokes the render process</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class129797.html#refclass129797" target = "projectFrame"><b>ExplicitPlacement</b></a></td><td>interface</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class136197.html#refclass136197" target = "projectFrame"><b>External</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class146565.html#refclass146565" target = "projectFrame"><b>Facade</b></a></td><td>interface</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class135301.html#refclass135301" target = "projectFrame"><b>Factory</b></a></td><td></td><td>a template for generating functor-like Factory objects, used to encapsulate object creation and providing access via smart-pointers only.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class144645.html#refclass144645" target = "projectFrame"><b>FeedCache</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128181.html#refclass128181" target = "projectFrame"><b>File</b></a></td><td></td><td></td></tr>
@ -75,6 +78,7 @@
<tr bgcolor=#f0f0f0><td><a href="class128225.html#refclass128225" target = "projectFrame"><b>FrameReference</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class133637.html#refclass133637" target = "projectFrame"><b>GLBuf</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class145029.html#refclass145029" target = "projectFrame"><b>ImplFacade</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class147205.html#refclass147205" target = "projectFrame"><b>InstanceHandle</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class134789.html#refclass134789" target = "projectFrame"><b>Interpolator</b></a></td><td></td><td>Provides the implementation for getting the acutal value of a time varying or automated effect/plugin parameter</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class136069.html#refclass136069" target = "projectFrame"><b>Invalid</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class144261.html#refclass144261" target = "projectFrame"><b>Invocation</b></a></td><td></td><td></td></tr>
@ -117,6 +121,7 @@
<tr bgcolor=#f0f0f0><td><a href="class145669.html#refclass145669" target = "projectFrame"><b>Project</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class132229.html#refclass132229" target = "projectFrame"><b>Projector</b></a></td><td></td><td>Special video processing node used to scale and translate image data.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class144901.html#refclass144901" target = "projectFrame"><b>Prototype</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class146693.html#refclass146693" target = "projectFrame"><b>Proxy</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class143749.html#refclass143749" target = "projectFrame"><b>PullInput</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class143621.html#refclass143621" target = "projectFrame"><b>QueryCache</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class140677.html#refclass140677" target = "projectFrame"><b>QueryHandler</b></a></td><td>interface</td><td></td></tr>
@ -134,6 +139,7 @@
<tr bgcolor=#f0f0f0><td><a href="class128133.html#refclass128133" target = "projectFrame"><b>Seq</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class146309.html#refclass146309" target = "projectFrame"><b>Sequence</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class141829.html#refclass141829" target = "projectFrame"><b>Serializer</b></a></td><td>actor</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class146821.html#refclass146821" target = "projectFrame"><b>ServiceImpl</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class139653.html#refclass139653" target = "projectFrame"><b>Session</b></a></td><td></td><td>Primary Interface for all editing tasks.<br />The session contains defaults, all the assets being edited, and a set of EDL with the individual MObjects to be manipulated and rendered.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128005.html#refclass128005" target = "projectFrame"><b>SessionImpl</b></a></td><td></td><td>Implementation class for the Session interface</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class139781.html#refclass139781" target = "projectFrame"><b>SessManager</b></a></td><td></td><td></td></tr>

View file

@ -33,6 +33,8 @@
<a href="class130565.html#refclass130565" target = "projectFrame"><b>BuilderFacade</b></a><br />
<a href="class134149.html#refclass134149" target = "projectFrame"><b>BuilderTool</b></a><br />
<a href="class139013.html#refclass139013" target = "projectFrame"><b>BuildInstruct</b></a><br />
<a href="class147077.html#refclass147077" target = "projectFrame"><b>C_Instance</b></a><br />
<a href="class146949.html#refclass146949" target = "projectFrame"><b>C_Interface</b></a><br />
<a href="class143237.html#refclass143237" target = "projectFrame"><b>Caller</b></a><br />
<a href="class137221.html#refclass137221" target = "projectFrame"><b>Category</b></a><br />
<a href="class137349.html#refclass137349" target = "projectFrame"><b>Clip</b></a><br />
@ -59,6 +61,7 @@
<a href="class131589.html#refclass131589" target = "projectFrame"><b>ExitNode</b></a><br />
<a href="class129797.html#refclass129797" target = "projectFrame"><b>ExplicitPlacement</b></a><br />
<a href="class136197.html#refclass136197" target = "projectFrame"><b>External</b></a><br />
<a href="class146565.html#refclass146565" target = "projectFrame"><b>Facade</b></a><br />
<a href="class135301.html#refclass135301" target = "projectFrame"><b>Factory</b></a><br />
<a href="class144645.html#refclass144645" target = "projectFrame"><b>FeedCache</b></a><br />
<a href="class128181.html#refclass128181" target = "projectFrame"><b>File</b></a><br />
@ -76,6 +79,7 @@
<a href="class128225.html#refclass128225" target = "projectFrame"><b>FrameReference</b></a><br />
<a href="class133637.html#refclass133637" target = "projectFrame"><b>GLBuf</b></a><br />
<a href="class145029.html#refclass145029" target = "projectFrame"><b>ImplFacade</b></a><br />
<a href="class147205.html#refclass147205" target = "projectFrame"><b>InstanceHandle</b></a><br />
<a href="class134789.html#refclass134789" target = "projectFrame"><b>Interpolator</b></a><br />
<a href="class136069.html#refclass136069" target = "projectFrame"><b>Invalid</b></a><br />
<a href="class144261.html#refclass144261" target = "projectFrame"><b>Invocation</b></a><br />
@ -118,6 +122,7 @@
<a href="class145669.html#refclass145669" target = "projectFrame"><b>Project</b></a><br />
<a href="class132229.html#refclass132229" target = "projectFrame"><b>Projector</b></a><br />
<a href="class144901.html#refclass144901" target = "projectFrame"><b>Prototype</b></a><br />
<a href="class146693.html#refclass146693" target = "projectFrame"><b>Proxy</b></a><br />
<a href="class143749.html#refclass143749" target = "projectFrame"><b>PullInput</b></a><br />
<a href="class143621.html#refclass143621" target = "projectFrame"><b>QueryCache</b></a><br />
<a href="class140677.html#refclass140677" target = "projectFrame"><b>QueryHandler</b></a><br />
@ -135,6 +140,7 @@
<a href="class128133.html#refclass128133" target = "projectFrame"><b>Seq</b></a><br />
<a href="class146309.html#refclass146309" target = "projectFrame"><b>Sequence</b></a><br />
<a href="class141829.html#refclass141829" target = "projectFrame"><b>Serializer</b></a><br />
<a href="class146821.html#refclass146821" target = "projectFrame"><b>ServiceImpl</b></a><br />
<a href="class139653.html#refclass139653" target = "projectFrame"><b>Session</b></a><br />
<a href="class128005.html#refclass128005" target = "projectFrame"><b>SessionImpl</b></a><br />
<a href="class139781.html#refclass139781" target = "projectFrame"><b>SessManager</b></a><br />

BIN
doc/devel/uml/fig132869.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -129,7 +129,7 @@ Documentation</title>
<a name="refartifact128005"></a>
<table><tr><td><div class="element">Artifact <b>Lumiera</b></div></td></tr></table>
<p>Depends on <a href="index.html#refpackage129413"><b>common</b></a></p><p>Depends on <a href="index.html#refpackage129797"><b>gui</b></a></p><p>Depends on <a href="index.html#refpackage129669"><b>proc</b></a></p><p>Depends on <a href="index.html#refpackage129541"><b>backend</b></a></p><p>the main executable to be built<br /></p>
<p><i>executable</i> associated with : <a href="index.html#refartifact134149"><b>glbuf</b></a>, <a href="index.html#refartifact132357"><b>procnode</b></a>, <a href="index.html#refartifact130949"><b>stateproxy</b></a>, <a href="index.html#refartifact132741"><b>hub</b></a>, <a href="index.html#refartifact131077"><b>buildable</b></a>, <a href="index.html#refartifact129285"><b>abstractmo</b></a>, <a href="index.html#refartifact131461"><b>nodecreatertool</b></a>, <a href="index.html#refartifact132869"><b>projector</b></a>, <a href="index.html#refartifact134661"><b>interpolator</b></a>, <a href="index.html#refartifact128645"><b>edl</b></a>, <a href="index.html#refartifact128773"><b>fixture</b></a>, <a href="index.html#refartifact133253"><b>glpipe</b></a>, <a href="index.html#refartifact133509"><b>vrender</b></a>, <a href="index.html#refartifact132229"><b>exitnode</b></a>, <a href="index.html#refartifact131717"><b>pathmanager</b></a>, <a href="index.html#refartifact128901"><b>track</b></a>, <a href="index.html#refartifact134533"><b>paramprovider</b></a>, <a href="index.html#refartifact132997"><b>mask</b></a>, <a href="index.html#refartifact128133"><b>main</b></a>, <a href="index.html#refartifact130693"><b>conmanager</b></a>, <a href="index.html#refartifact129413"><b>clip</b></a>, <a href="index.html#refartifact129669"><b>meta</b></a>, <a href="index.html#refartifact129797"><b>fixedlocation</b></a>, <a href="index.html#refartifact129925"><b>relativelocation</b></a>, <a href="index.html#refartifact128261"><b>mobject</b></a>, <a href="index.html#refartifact134277"><b>source</b></a>, <a href="index.html#refartifact133765"><b>frame</b></a>, <a href="index.html#refartifact129029"><b>placement</b></a>, <a href="index.html#refartifact128517"><b>sessionimpl</b></a>, <a href="index.html#refartifact130437"><b>builderfacade</b></a>, <a href="index.html#refartifact131589"><b>controllerfacade</b></a>, <a href="index.html#refartifact132101"><b>processor</b></a>, <a href="index.html#refartifact133125"><b>pluginadapter</b></a>, <a href="index.html#refartifact129541"><b>effect</b></a>, <a href="index.html#refartifact131205"><b>buildertool</b></a>, <a href="index.html#refartifact131333"><b>segmentationtool</b></a>, <a href="index.html#refartifact133893"><b>aframe</b></a>, <a href="index.html#refartifact130821"><b>assembler</b></a>, <a href="index.html#refartifact132485"><b>trafo</b></a>, <a href="index.html#refartifact129157"><b>explicitplacement</b></a>, <a href="index.html#refartifact130309"><b>auto</b></a>, <a href="index.html#refartifact133637"><b>glrender</b></a>, <a href="index.html#refartifact132613"><b>link</b></a>, <a href="index.html#refartifact134405"><b>parameter</b></a>, <a href="index.html#refartifact131973"><b>renderengine</b></a>, <a href="index.html#refartifact130053"><b>allocation</b></a>, <a href="index.html#refartifact134021"><b>vframe</b></a>, <a href="index.html#refartifact130565"><b>toolfactory</b></a>, <a href="index.html#refartifact133381"><b>arender</b></a>, <a href="index.html#refartifact131845"><b>renderstate</b></a>, <a href="index.html#refartifact130181"><b>label</b></a></p>
<p><i>executable</i> associated with : <a href="index.html#refartifact131589"><b>controllerfacade</b></a>, <a href="index.html#refartifact132101"><b>processor</b></a>, <a href="index.html#refartifact133125"><b>pluginadapter</b></a>, <a href="index.html#refartifact129541"><b>effect</b></a>, <a href="index.html#refartifact131205"><b>buildertool</b></a>, <a href="index.html#refartifact131333"><b>segmentationtool</b></a>, <a href="index.html#refartifact133893"><b>aframe</b></a>, <a href="index.html#refartifact130821"><b>assembler</b></a>, <a href="index.html#refartifact132485"><b>trafo</b></a>, <a href="index.html#refartifact129157"><b>explicitplacement</b></a>, <a href="index.html#refartifact130309"><b>auto</b></a>, <a href="index.html#refartifact133637"><b>glrender</b></a>, <a href="index.html#refartifact132613"><b>link</b></a>, <a href="index.html#refartifact134405"><b>parameter</b></a>, <a href="index.html#refartifact131973"><b>renderengine</b></a>, <a href="index.html#refartifact130053"><b>allocation</b></a>, <a href="index.html#refartifact134021"><b>vframe</b></a>, <a href="index.html#refartifact130565"><b>toolfactory</b></a>, <a href="index.html#refartifact133381"><b>arender</b></a>, <a href="index.html#refartifact131845"><b>renderstate</b></a>, <a href="index.html#refartifact130181"><b>label</b></a>, <a href="index.html#refartifact134149"><b>glbuf</b></a>, <a href="index.html#refartifact132357"><b>procnode</b></a>, <a href="index.html#refartifact130949"><b>stateproxy</b></a>, <a href="index.html#refartifact132741"><b>hub</b></a>, <a href="index.html#refartifact131077"><b>buildable</b></a>, <a href="index.html#refartifact129285"><b>abstractmo</b></a>, <a href="index.html#refartifact131461"><b>nodecreatertool</b></a>, <a href="index.html#refartifact132869"><b>projector</b></a>, <a href="index.html#refartifact134661"><b>interpolator</b></a>, <a href="index.html#refartifact128645"><b>edl</b></a>, <a href="index.html#refartifact128773"><b>fixture</b></a>, <a href="index.html#refartifact133253"><b>glpipe</b></a>, <a href="index.html#refartifact133509"><b>vrender</b></a>, <a href="index.html#refartifact132229"><b>exitnode</b></a>, <a href="index.html#refartifact131717"><b>pathmanager</b></a>, <a href="index.html#refartifact128901"><b>track</b></a>, <a href="index.html#refartifact134533"><b>paramprovider</b></a>, <a href="index.html#refartifact132997"><b>mask</b></a>, <a href="index.html#refartifact128133"><b>main</b></a>, <a href="index.html#refartifact130693"><b>conmanager</b></a>, <a href="index.html#refartifact129413"><b>clip</b></a>, <a href="index.html#refartifact129669"><b>meta</b></a>, <a href="index.html#refartifact129797"><b>fixedlocation</b></a>, <a href="index.html#refartifact129925"><b>relativelocation</b></a>, <a href="index.html#refartifact128261"><b>mobject</b></a>, <a href="index.html#refartifact134277"><b>source</b></a>, <a href="index.html#refartifact133765"><b>frame</b></a>, <a href="index.html#refartifact129029"><b>placement</b></a>, <a href="index.html#refartifact128517"><b>sessionimpl</b></a>, <a href="index.html#refartifact130437"><b>builderfacade</b></a></p>
<a name="refartifact128133"></a>
<table><tr><td><div class="element">Artifact <b>main</b></div></td></tr></table>
<p>Artifact <i>source</i></p>
@ -1180,8 +1180,21 @@ reuse exiting Engine</pre></li></ul><p>Selection :</p><ul></ul><p>Transformation
<p>GUI is here just a container to hold any entities considered to be User Interface related, which is not in focus for this Design draft<br /></p><a name="refpackage128517"></a>
<h1 class ="package">5 Package CommonLib</h1>
<div class="sub">
<a name="refclass view129541"></a>
<h2 class ="view">5.1 Class View InterfaceSystem</h2>
<div class="sub">
<a name="refclass diagram132869"></a>
<p align="center"><img src="fig132869.png" alt="" /></p>
<p align="center"><b>Layer Separation Interface</b></p><p><br /></p><p><br /></p>
<table><tr><td><div class="element">Class <b><a href="class146565.html#refclass146565"><b>Facade</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class146693.html#refclass146693"><b>Proxy</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class146821.html#refclass146821"><b>ServiceImpl</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class146949.html#refclass146949"><b>C_Interface</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class147077.html#refclass147077"><b>C_Instance</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class147205.html#refclass147205"><b>InstanceHandle</b></a></b></div></td></tr></table>
</div>
<a name="refclass view129285"></a>
<h2 class ="view">5.1 Class View StreamType</h2>
<h2 class ="view">5.2 Class View StreamType</h2>
<div class="sub">
<a name="refclass diagram132485"></a>
<p align="center"><img src="fig132485.png" alt="" /></p>
@ -1193,10 +1206,10 @@ reuse exiting Engine</pre></li></ul><p>Selection :</p><ul></ul><p>Transformation
<table><tr><td><div class="element">Class <b><a href="class145285.html#refclass145285"><b>MediaKind</b></a></b></div></td></tr></table>
</div>
<a name="refpackage131077"></a>
<h2 class ="package">5.2 Package ConfigQuery</h2>
<h2 class ="package">5.3 Package ConfigQuery</h2>
<div class="sub">
<a name="refcomponent view128261"></a>
<h3 class ="view">5.2.1 Component View Query System overview</h3>
<h3 class ="view">5.3.1 Component View Query System overview</h3>
<div class="sub">
<a name="refcomponent diagram131589"></a>
<p align="center"><img src="fig131589.png" alt="" /></p>
@ -1212,7 +1225,7 @@ reuse exiting Engine</pre></li></ul><p>Selection :</p><ul></ul><p>Transformation
<table><tr><td><div class="element">Component <b>DefaultsManager</b></div></td></tr></table>
</div>
<a name="refclass view129157"></a>
<h3 class ="view">5.2.2 Class View query</h3>
<h3 class ="view">5.3.2 Class View query</h3>
<div class="sub">
<a name="refclass diagram131461"></a>
<p align="center"><img src="fig131461.png" alt="" /></p>
@ -1228,27 +1241,27 @@ reuse exiting Engine</pre></li></ul><p>Selection :</p><ul></ul><p>Transformation
<table><tr><td><div class="element">Class <b><a href="class141573.html#refclass141573"><b>DefaultsRegistry</b></a></b></div></td></tr></table>
</div>
<a name="refuse case view128389"></a>
<h3 class ="view">5.2.3 Use Case View query use</h3>
<h3 class ="view">5.3.3 Use Case View query use</h3>
<div class="sub">
<a name="refuse case diagram131717"></a>
<p align="center"><img src="fig131717.png" alt="" /></p>
<p align="center"><b>when to query</b></p><p><br /></p><p><br /></p>
<a name="refuse case128517"></a>
<h4 class ="usecase">5.2.3.1 Use Case create specific object</h4>
<h4 class ="usecase">5.3.3.1 Use Case create specific object</h4>
<a name="refuse case128645"></a>
<h4 class ="usecase">5.2.3.2 Use Case use "default" object</h4>
<h4 class ="usecase">5.3.3.2 Use Case use "default" object</h4>
<div class="sub">
</div>
<a name="refuse case128773"></a>
<h4 class ="usecase">5.2.3.3 Use Case load object from session</h4>
<h4 class ="usecase">5.3.3.3 Use Case load object from session</h4>
<a name="refuse case128901"></a>
<h4 class ="usecase">5.2.3.4 Use Case add new object to session</h4>
<h4 class ="usecase">5.3.3.4 Use Case add new object to session</h4>
<table><tr><td><div class="element">Class <b><a href="class141701.html#refclass141701"><b>User</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class141829.html#refclass141829"><b>Serializer</b></a></b></div></td></tr></table>
<a name="refuse case129029"></a>
<h4 class ="usecase">5.2.3.5 Use Case ConfigQuery</h4>
<h4 class ="usecase">5.3.3.5 Use Case ConfigQuery</h4>
<a name="refuse case129157"></a>
<h4 class ="usecase">5.2.3.6 Use Case need sub object</h4>
<h4 class ="usecase">5.3.3.6 Use Case need sub object</h4>
<a name="refcollaboration diagram131845"></a>
<p align="center"><img src="fig131845.png" alt="" /></p>
<p align="center"><b>"default" object</b></p><p><br /></p><p><br /></p>
@ -1256,7 +1269,7 @@ reuse exiting Engine</pre></li></ul><p>Selection :</p><ul></ul><p>Transformation
<table><tr><td><div class="element">Class instance <b>predicate impl</div></td></tr></table><p>type :<a href="class140805.html#refclass140805"><b>TypeHandler</b></a></p></div>
</div>
<a name="refclass view128773"></a>
<h2 class ="view">5.3 Class View error</h2>
<h2 class ="view">5.4 Class View error</h2>
<div class="sub">
<a name="refclass diagram130181"></a>
<p align="center"><img src="fig130181.png" alt="" /></p>
@ -1270,7 +1283,7 @@ reuse exiting Engine</pre></li></ul><p>Selection :</p><ul></ul><p>Transformation
<table><tr><td><div class="element">Class <b><a href="class136325.html#refclass136325"><b>std::exception</b></a></b></div></td></tr></table>
</div>
<a name="refclass view128645"></a>
<h2 class ="view">5.4 Class View Service Components</h2>
<h2 class ="view">5.5 Class View Service Components</h2>
<div class="sub">
<table><tr><td><div class="element">Class <b><a href="class140293.html#refclass140293"><b>Applicable</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class140037.html#refclass140037"><b>Tool</b></a></b></div></td></tr></table>
@ -1280,7 +1293,7 @@ reuse exiting Engine</pre></li></ul><p>Selection :</p><ul></ul><p>Transformation
<table><tr><td><div class="element">Class <b><a href="class135429.html#refclass135429"><b>Appconfig</b></a></b></div></td></tr></table>
</div>
<a name="refclass view128138"></a>
<h2 class ="view">5.5 Class View Posix Threads Abstraction</h2>
<h2 class ="view">5.6 Class View Posix Threads Abstraction</h2>
<p>C++ wrapers for pthreads<br /></p>
<div class="sub">
<table><tr><td><div class="element">Class <b><a href="class128138.html#refclass128138"><b>Thread</b></a></b></div></td></tr></table>
@ -1288,7 +1301,7 @@ reuse exiting Engine</pre></li></ul><p>Selection :</p><ul></ul><p>Transformation
<table><tr><td><div class="element">Class <b><a href="class128394.html#refclass128394"><b>Mutex</b></a></b></div></td></tr></table>
</div>
<a name="refclass view128266"></a>
<h2 class ="view">5.6 Class View SmartPointers</h2>
<h2 class ="view">5.7 Class View SmartPointers</h2>
<div class="sub">
<table><tr><td><div class="element">Class <b><a href="class128906.html#refclass128906"><b>SmartPointer</b></a></b></div></td></tr></table>
</div>

View file

@ -17,6 +17,8 @@
<table>
<tr bgcolor=#f0f0f0><td align=center><b>Name</b></td><td align=center><b>Kind</b></td><td align=center><b>Description</b></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class147077.html#refclass147077" target = "projectFrame"><b>C_Instance</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class146949.html#refclass146949" target = "projectFrame"><b>C_Interface</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent129157" target = "projectFrame"><b>Cache</b></a></td><td>component</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent view128138" target = "projectFrame"><b>Cache</b></a></td><td>component view</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation136581" target = "projectFrame"><b>callDown</b></a></td><td>operation</td><td></td></tr>
@ -30,39 +32,39 @@
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation134277" target = "projectFrame"><b>chain</b></a></td><td>operation</td><td>create and add another Placement for this media object, thus increasingly constraining the (possible) position of this object.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation129633" target = "projectFrame"><b>checked_in</b></a></td><td>relation</td><td>checked_in objects are subject of cache aging and must be not in use</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation129290" target = "projectFrame"><b>checked_out</b></a></td><td>relation</td><td>this list keeps all mappings which are in use, and thus prevents them from Cache aging</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135301" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135429" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135173" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134917" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135685" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135045" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134789" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134661" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135813" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135685" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135173" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134917" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135301" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135557" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135429" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135045" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130693" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130309" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130437" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128261" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129029" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128005" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132229" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132357" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133509" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129797" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132229" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133509" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130309" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129029" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130693" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131589" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128133" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132357" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132485" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130053" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130181" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129285" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132485" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130565" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130437" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129541" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129285" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128133" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128005" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128261" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130565" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation133765" target = "projectFrame"><b>clear</b></a></td><td>operation</td><td>clear current session contents <br />without resetting overall session config.<br />Afterwards, the session will contain only one <br />empty EDL, while all Assets are retained.<br /></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent131077" target = "projectFrame"><b>client code</b></a></td><td>component</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class137349.html#refclass137349" target = "projectFrame"><b>Clip</b></a></td><td>class</td><td>bookkeeping (asset) view of a media clip.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact129413" target = "projectFrame"><b>clip</b></a></td><td>artifact</td><td>a Media Clip</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact136325" target = "projectFrame"><b>clip</b></a></td><td>artifact</td><td>bookkeeping (asset) view of a media clip.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact129413" target = "projectFrame"><b>clip</b></a></td><td>artifact</td><td>a Media Clip</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128901.html#refclass128901" target = "projectFrame"><b>Clip</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation128901" target = "projectFrame"><b>clips</b></a></td><td>relation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class137861.html#refclass137861" target = "projectFrame"><b>Codec</b></a></td><td>class</td><td>description of some media data decoder or encoder facility</td></tr>

View file

@ -17,6 +17,7 @@
<table>
<tr bgcolor=#f0f0f0><td align=center><b>Name</b></td><td align=center><b>Kind</b></td><td align=center><b>Description</b></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class146565.html#refclass146565" target = "projectFrame"><b>Facade</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class135301.html#refclass135301" target = "projectFrame"><b>Factory</b></a></td><td>class</td><td>a template for generating functor-like Factory objects, used to encapsulate object creation and providing access via smart-pointers only.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class144645.html#refclass144645" target = "projectFrame"><b>FeedCache</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation135813" target = "projectFrame"><b>fetch</b></a></td><td>operation</td><td></td></tr>

View file

@ -22,13 +22,15 @@
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram128309" target = "projectFrame"><b>In Memory Database</b></a></td><td>class diagram</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refactivity action pin128133" target = "projectFrame"><b>inFixture</b></a></td><td>activity action pin</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131461" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134149" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132869" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134149" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation131461" target = "projectFrame"><b>instance</b></a></td><td>operation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class147205.html#refclass147205" target = "projectFrame"><b>InstanceHandle</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation143621" target = "projectFrame"><b>instructions</b></a></td><td>relation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view129029" target = "projectFrame"><b>Interface</b></a></td><td>class view</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram130949" target = "projectFrame"><b>interface components</b></a></td><td>class diagram</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent view128133" target = "projectFrame"><b>interfaces</b></a></td><td>component view</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view129541" target = "projectFrame"><b>InterfaceSystem</b></a></td><td>class view</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact134661" target = "projectFrame"><b>interpolator</b></a></td><td>artifact</td><td>denotes a facility to get (continuously interpolated) parameter values</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class134789.html#refclass134789" target = "projectFrame"><b>Interpolator</b></a></td><td>class</td><td>Provides the implementation for getting the acutal value of a time varying or automated effect/plugin parameter</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class136069.html#refclass136069" target = "projectFrame"><b>Invalid</b></a></td><td>class</td><td></td></tr>

View file

@ -19,6 +19,7 @@
<tr bgcolor=#f0f0f0><td align=center><b>Name</b></td><td align=center><b>Kind</b></td><td align=center><b>Description</b></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact130181" target = "projectFrame"><b>label</b></a></td><td>artifact</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class129669.html#refclass129669" target = "projectFrame"><b>Label</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram132869" target = "projectFrame"><b>Layer Separation Interface</b></a></td><td>class diagram</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute128517" target = "projectFrame"><b>length</b></a></td><td>attribute</td><td>TODO: how to represent time intervals?</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute130053" target = "projectFrame"><b>length</b></a></td><td>attribute</td><td>duration (span) of this timeline segment.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class131973.html#refclass131973" target = "projectFrame"><b>Link</b></a></td><td>class</td><td></td></tr>

View file

@ -71,6 +71,7 @@
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact132869" target = "projectFrame"><b>projector</b></a></td><td>artifact</td><td>video ProcNode for scaling and translating image data</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class144901.html#refclass144901" target = "projectFrame"><b>Prototype</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation138629" target = "projectFrame"><b>provider</b></a></td><td>relation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class146693.html#refclass146693" target = "projectFrame"><b>Proxy</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation135685" target = "projectFrame"><b>pull</b></a></td><td>operation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class143749.html#refclass143749" target = "projectFrame"><b>PullInput</b></a></td><td>class</td><td></td></tr>
</table>

View file

@ -32,10 +32,11 @@
<tr bgcolor=#f0f0f0><td><a href="class146309.html#refclass146309" target = "projectFrame"><b>Sequence</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class141829.html#refclass141829" target = "projectFrame"><b>Serializer</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view128645" target = "projectFrame"><b>Service Components</b></a></td><td>class view</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class146821.html#refclass146821" target = "projectFrame"><b>ServiceImpl</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent128133" target = "projectFrame"><b>Session</b></a></td><td>component</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact138757" target = "projectFrame"><b>session</b></a></td><td>artifact</td><td>Interface: the session edited by the user</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage130437" target = "projectFrame"><b>session</b></a></td><td>package</td><td>sourcecode package<br /><br />Everything concerning the EDL and Session, within the MObject Subsystem</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view128005" target = "projectFrame"><b>Session</b></a></td><td>class view</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage130437" target = "projectFrame"><b>session</b></a></td><td>package</td><td>sourcecode package<br /><br />Everything concerning the EDL and Session, within the MObject Subsystem</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class139653.html#refclass139653" target = "projectFrame"><b>Session</b></a></td><td>class</td><td>Primary Interface for all editing tasks.<br />The session contains defaults, all the assets being edited, and a set of EDL with the individual MObjects to be manipulated and rendered.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram128133" target = "projectFrame"><b>Session structure</b></a></td><td>class diagram</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact128517" target = "projectFrame"><b>sessionimpl</b></a></td><td>artifact</td><td>holds the complete session data to be edited by the user</td></tr>
@ -49,8 +50,8 @@
<tr bgcolor=#f0f0f0><td><a href="class138885.html#refclass138885" target = "projectFrame"><b>SimpleClip</b></a></td><td>class</td><td>Elementary clip consisting of only one media stream</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128906.html#refclass128906" target = "projectFrame"><b>SmartPointer</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view128266" target = "projectFrame"><b>SmartPointers</b></a></td><td>class view</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation142469" target = "projectFrame"><b>source</b></a></td><td>relation</td><td>the media source this clip referes to</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation141957" target = "projectFrame"><b>source</b></a></td><td>relation</td><td>media source of this clip</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation142469" target = "projectFrame"><b>source</b></a></td><td>relation</td><td>the media source this clip referes to</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class133765.html#refclass133765" target = "projectFrame"><b>Source</b></a></td><td>class</td><td>Source Node: represents a media source to pull data from.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact134277" target = "projectFrame"><b>source</b></a></td><td>artifact</td><td>Representation of a Media source</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refdeployment diagram129797" target = "projectFrame"><b>Source Overview</b></a></td><td>deployment diagram</td><td></td></tr>

View file

@ -1,6 +1,6 @@
format 40
"CommonLib" // CommonLib
revision 13
revision 14
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -26,6 +26,184 @@ format 40
package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
show_infonote default drawing_language default
classview 129541 "InterfaceSystem"
//class diagram settings
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
//collaboration diagram settings
show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default
//object diagram settings
write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
//sequence diagram settings
show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default
//state diagram settings
package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
show_activities default region_horizontally default drawing_language default
//class settings
//activity diagram settings
package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
show_infonote default drawing_language default
classdiagram 132869 "Layer Separation Interface"
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
size A4
end
class 146565 "Facade"
visibility package stereotype "interface"
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl "${comment}${@}${visibility}interface ${name}${extends} {
${members}}
"
idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
${members}};
"
explicit_switch_type ""
end
class 146693 "Proxy"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 161797 // <realization>
relation 157189 -_-|>
a public
cpp default "${type}"
classrelation_ref 161797 // <realization>
b multiplicity "" parent class_ref 146565 // Facade
end
classrelation 162181 // <unidirectional association>
relation 157573 --->
stereotype "uses"
a role_name "" multiplicity "" protected
cpp default " ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
classrelation_ref 162181 // <unidirectional association>
b multiplicity "" parent class_ref 146949 // C_Interface
end
end
class 146821 "ServiceImpl"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 161925 // <realization>
relation 157317 -_-|>
a public
cpp default "${type}"
classrelation_ref 161925 // <realization>
b multiplicity "" parent class_ref 146565 // Facade
end
classrelation 162437 // <unidirectional association>
relation 157829 --->
stereotype "has_a"
a role_name "" multiplicity "" protected
cpp default " ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
classrelation_ref 162437 // <unidirectional association>
b multiplicity "" parent class_ref 147205 // InstanceHandle
end
end
class 146949 "C_Interface"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
end
class 147077 "C_Instance"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 162053 // <realization>
relation 157445 -_-|>
a public
cpp default "${type}"
classrelation_ref 162053 // <realization>
b multiplicity "" parent class_ref 146949 // C_Interface
end
classrelation 162309 // <unidirectional association>
relation 157701 --->
stereotype "calls"
a role_name "" multiplicity "" protected
cpp default " ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
classrelation_ref 162309 // <unidirectional association>
b multiplicity "" parent class_ref 146821 // ServiceImpl
end
end
class 147205 "InstanceHandle"
visibility package
nformals 2
formal name "C_Interface" type "class" explicit_default_value ""
explicit_extends ""
formal name "Facade" type "class" explicit_default_value ""
explicit_extends ""
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 162565 // <dependency>
relation 157957 -_->
stereotype "opens"
a package
cpp default "#include in source"
classrelation_ref 162565 // <dependency>
b multiplicity "" parent class_ref 147077 // C_Instance
end
classrelation 162693 // <dependency>
relation 158085 -_->
stereotype "creates"
a package
cpp default "#include in source"
classrelation_ref 162693 // <dependency>
b multiplicity "" parent class_ref 146693 // Proxy
end
end
end
classview 129285 "StreamType"
//class diagram settings
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
@ -127,7 +305,7 @@ ${inlines}
classrelation 158341 // <dependency>
relation 154245 -_->
a default
cpp default "Generated"
cpp default "#include in header"
classrelation_ref 158341 // <dependency>
b multiplicity "" parent class_ref 144773 // StreamType
end

View file

@ -1,6 +1,6 @@
format 40
"ProcessingLayer" // ProcessingLayer
revision 24
revision 25
modified_by 5 "hiv"
// class settings
//class diagram settings

View file

@ -0,0 +1,75 @@
format 40
classcanvas 128005 class_ref 146565 // Facade
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 66 14 2000
end
classcanvas 128133 class_ref 146693 // Proxy
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 23 116 2000
end
classcanvas 128261 class_ref 146821 // ServiceImpl
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 271 198 2000
end
classcanvas 128389 class_ref 146949 // C_Interface
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 136 117 2000
end
classcanvas 128517 class_ref 147077 // C_Instance
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 137 197 2000
end
classcanvas 128645 class_ref 147205 // InstanceHandle
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 171 277 2000
end
textcanvas 130309 "conceptually equivalent"
xyzwh 165 11 2000 115 18
relationcanvas 128773 relation_ref 157189 // <realization>
geometry VHV
from ref 128133 z 1999 to point 43 95
line 129157 z 1999 to point 103 95
line 129285 z 1999 to ref 128005
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 128901 relation_ref 157317 // <realization>
geometry VHV unfixed
from ref 128261 z 1999 to point 305 95
line 129413 z 1999 to point 103 95
line 129541 z 1999 to ref 128005
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 129029 relation_ref 157445 // <realization>
from ref 128517 z 1999 to ref 128389
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 129669 relation_ref 157573 // <unidirectional association>
from ref 128133 z 1999 stereotype "<<uses>>" xyz 75 135 3000 to ref 128389
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 129797 relation_ref 157701 // <unidirectional association>
from ref 128517 z 1999 stereotype "<<calls>>" xyz 213 216 3000 to ref 128261
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 130437 relation_ref 157829 // <unidirectional association>
geometry HVr
from ref 128261 z 1999 stereotype "<<has_a>>" xyz 279 305 3000 to point 305 305
line 130565 z 1999 to ref 128645
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 130693 relation_ref 157957 // <dependency>
from ref 128645 z 1999 stereotype "<<opens>>" xyz 112 281 3000 to point 104 296
line 130821 z 1999 to point 104 213
line 130949 z 1999 to ref 128517
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 131077 relation_ref 158085 // <dependency>
from ref 128645 z 1999 stereotype "<<creates>>" xyz 88 306 3000 to point 89 305
line 131205 z 1999 to ref 128133
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
line 130053 -_-_
from ref 128005 z 1999 to point 224 27
line 130181 z 1999 to ref 128389
end

View file

@ -2,8 +2,10 @@ window_sizes 1302 1004 270 1022 854 71
diagrams
classdiagram_ref 128133 // Session structure
853 742 100 4 120 0
active classdiagram_ref 132741 // TimelineSequences
classdiagram_ref 132741 // TimelineSequences
585 732 100 4 0 0
active classdiagram_ref 132869 // Layer Separation Interface
373 417 100 4 0 0
end
show_stereotypes
selected
@ -38,6 +40,7 @@ open
class_ref 144517 // Strategy
class_ref 144005 // BuffTable
class_ref 144261 // Invocation
classview_ref 129541 // InterfaceSystem
classview_ref 129285 // StreamType
classview_ref 128773 // error
class_ref 140165 // Visitable

View file

@ -1,6 +1,6 @@
format 40
"lumiera"
revision 49
revision 50
modified_by 5 "hiv"
cpp_root_dir "../../src/"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View file

@ -1121,6 +1121,21 @@ The main tool used to implement this separation is the [[Builder Pattern|http://
Another pertinent theme is to make the basic building blocks simpler, while on the other hand gaining much more flexibility for combining these building blocks. For example we try to unfold any &quot;internal-multi&quot; effects into separate instances (e.g. the possibility of having an arbitrary number of single masks at any point of the pipeline instead of having one special masking facility encompassing multiple sub-masks. Similarly, we treat the Objects in the EDL in a more uniform manner and gain the possibility to [[place|Placement]] them in various ways.
</pre>
</div>
<div title="DisplayFacade" modifier="Ichthyostega" created="200902080703" tags="spec" changecount="1">
<pre>LayerSeparationInterface provided by the GUI.
Access point especially for the playback. A render- or playback process uses the DisplayFacade to push media date up to the GUI for display within a viewer widget of full-screen display. This can be thought off as a callback mechanism. In order to use the DisplayFacade, client code needs a DisplayerSlot (handle), which needs to be set up by the UI first and will be provided when starting the render or playback process.
</pre>
</div>
<div title="DisplayService" modifier="Ichthyostega" created="200902080711" tags="def" changecount="1">
<pre>A service within the GUI to manage output of frames generated by the lower layers of the application.
*providing the actual implementation of the DisplayFacade
*creating and maintaining of [[displayer slots|DisplayerSlot]], connected to viewer widgets or similar
</pre>
</div>
<div title="DisplayerSlot" modifier="Ichthyostega" modified="200902080707" created="200902080705" tags="def" changecount="2">
<pre>An output port wired up to some display facility or viewer widget within the UI. For the client code, each slot is represented by a handle, which can be used to lock into this slot for an continuous output process. Managed by the DisplayService
</pre>
</div>
<div title="EDL" modifier="Ichthyostega" modified="200811011755" created="200706210610" tags="def" changecount="9">
<pre>&lt;&lt;&lt;
{{red{WARNING: Naming is currently being discussed (11/08)}}}
@ -1373,15 +1388,24 @@ Thus, the Proc-Layer exposes (one or several) facade interfaces for the GUI to u
* GuiFacade is implemented by a class //in core// and exposes a notification proxy implementing GuiNotificationFacade, which actually is wired through the InterfaceSystem to forward to the corresponding implementation facade object within the GUI
* similarly, starting the fundamental subsystems within proc installs Interfaces into the InterfaceSystem and exposes them through proxy objects
</pre>
</div>
<div title="GuiFacade" modifier="Ichthyostega" created="200902080719" tags="def spec" changecount="1">
<pre>special LayerSeparationInterface which serves the main purpose to load the GuiStarterPlugin, thus bringing up the Lumiera GTK UI at application start.
</pre>
</div>
<div title="GuiIntegration" modifier="Ichthyostega" modified="200901300207" created="200812050532" tags="overview" changecount="2">
<pre>Considering how to interface to and integrate with the GUI Layer. Running the GUI is //optional,// but it requires to be [[started up|GuiStart]], installing the necessary LayerSeparationInterfaces. As an example how to integrate the GUI with the lower layers, in 1/2009 we created an PlayerDummy, which &quot;pulls&quot; dummy frames from the (not yet existing) engine and displays them within an XV viewer widget.
</pre>
</div>
<div title="GuiStart" modifier="Ichthyostega" modified="200901300205" created="200812050525" tags="GuiIntegration" changecount="8">
<div title="GuiNotificationFacade" modifier="Ichthyostega" created="200902080659" tags="spec" changecount="1">
<pre>LayerSeparationInterface provided by the GUI.
Access point for the lower layers to push information and state changes (aynchronously) to the GUI. Actually, most operations within Lumiera are initiated by the user through the GUI. In the course of such actions, the GUI uses the services of the lower layer and typically recieves an synchronous response. In some exceptional cases, these operations may cause additional changes to happen asynchronously from the GUI's perspective. For example, an edit operation might trigger a re-build of the low-level model, which then detects an error.
</pre>
</div>
<div title="GuiStart" modifier="Ichthyostega" modified="200902080720" created="200812050525" tags="GuiIntegration" changecount="9">
<pre>Starting up the GUI is optional and is considered part of the Application start/stop and lifecycle.
* main and AppState activate the lifecyle methods on the ~GuiSubsysDescriptor
* main and AppState activate the lifecyle methods on the ~GuiSubsysDescriptor, accessible via the GuiFacade
* loading a GuiStarterPlugin actually
** loads the GUI (shared lib)
** creates instances of all the GUI services available through LayerSeparationInterfaces
@ -1400,6 +1424,10 @@ Note that we retain strict isolation in the other direction: no part of the lowe
Now, when invoking an operation on some public interface, the code in the lower layers actually executes an implementation of this operation //on the facade proxy,// which in turn forwards the call through the CL interface into the GUI, where it is actually implemented by the corresponding service object instance.
</pre>
</div>
<div title="GuiStarterPlugin" modifier="Ichthyostega" created="200902080716" tags="def GuiIntegration" changecount="1">
<pre>A specially configured LumieraPlugin, which actually contains or loads the complete code of the (GTK)GUI, and additionally is linked dynamically against the application core lib. During the [[UI startup process|GuiStart]], loading of this Plugin is triggered from {{{main()}}}. Actually this causes spawning of the GTK event thread and execution of the GTK main loop.
</pre>
</div>
<div title="HighLevelModel" modifier="Ichthyostega" modified="200808160329" created="200808152311" tags="spec design discuss" changecount="32">
<pre>While the low-level model holds the data used for carrying out the actual media data processing (=rendering), the high-level model is what the user works upon when performing edit operations through the GUI (or script driven in &amp;raquo;headless mode&amp;laquo;). Its building blocks and combination rules determine largely what structures can be created within the [[Session]].
On the whole, it is a collection of [[media objects|MObjects]] stuck together and arranged by [[placements|Placement]].
@ -1437,7 +1465,7 @@ Besides routing to a global pipe, wiring plugs can also connect to the source po
Finally, this example shows an ''automation'' data set controlling some parameter of an effect contained in one of the global pipes. From the effect's POV, the automation is simply a ParamProvider, i.e a function yielding a scalar value over time. The automation data set may be implemented as a bézier curve, or by a mathematical function (e.g. sine or fractal pseudo random) or by some captured and interpolated data values. Interestingly, in this example the automation data set has been placed relatively to the meta clip (albeit on another track), thus it will follow and adjust when the latter is moved.
</pre>
</div>
<div title="ImplementationDetails" modifier="Ichthyostega" modified="200812050524" created="200708080322" tags="overview" changecount="30">
<div title="ImplementationDetails" modifier="Ichthyostega" modified="200902080723" created="200708080322" tags="overview" changecount="31">
<pre>This wiki page is the entry point to detail notes covering some technical decisions, details and problems encountered in the course of the implementation of the Lumiera Renderengine, the Builder and the related parts.
* [[Packages, Interfaces and Namespaces|InterfaceNamespaces]]
@ -1458,6 +1486,7 @@ Finally, this example shows an ''automation'' data set controlling some paramete
* how to classify and [[describe media stream types|StreamType]] and how to [[use them|StreamTypeUse]]
* the relation of [[Project, Timelines and Sequences|TimelineSequences]]
* how to [[start the GUI|GuiStart]] and how to [[communicate|GuiCommunication]]
* build the first LayerSeparationInterfaces
</pre>
</div>
<div title="ImplementationGuidelines" modifier="Ichthyostega" modified="200711210542" created="200711210531" tags="discuss draft" changecount="7">
@ -1782,6 +1811,16 @@ config.formatters.push( {
} )
//}}}</pre>
</div>
<div title="InstanceHandle" modifier="Ichthyostega" created="200902090320" changecount="2">
<pre>An RAII class, used to manage a [[facade interface between layers|LayerSeparationInterface]].
The InstanceHandle is created by the service implementation and will automatically
* either register and open a ''C Language Interface'', using Lumiera's InterfaceSystem
* or load and open a LumieraPlugin, also by using the InterfaceSystem
* and optionally also create and manage a facade proxy to allow transparent access for client code
&amp;rarr; see [[detailed description here|LayerSeparationInterfaces]]
</pre>
</div>
<div title="InterfaceNamespaces" modifier="Ichthyostega" modified="200708120302" created="200708080338" tags="impl decision discuss" changecount="15">
<pre>Because we rely on strong decoupling and separation into self contained components, there is not much need for a common quasi-global namespace. Operations needing the cooperation of another subsystem will be delegated or even dispatched, consequently implementation code needs only the service acces points from &quot;direct cooperation partner&quot; subsystems. Hierarchical scopes besides classes are needed only when multiple subsystems share a set of common abstractions. Interface and Implementation use separate namespaces.
@ -1814,18 +1853,41 @@ From experiences with other middle scale projects, I prefer having the test code
[img[Example: Interfaces/Namespaces of the ~Session-Subsystems|uml/fig130053.png]]
</pre>
</div>
<div title="LayerSeparationInterfaces" modifier="Ichthyostega" modified="200901300233" created="200812050619" tags="def" changecount="3">
<pre>Lumiera uses a 3-layered architecture. Separation between layers is crucial. Any communication between the layers regarding the normal operation of the application should //at least be initiated// through ''Layer abstraction interfaces''. This is a low-impact version of layering, because, aside from this triggering, direct cooperation of parts within the single Lumiera process is allowed, under the condition that is is implemented using additional abstractions (interfaces with implementation level granularity). We stick to the policy of //disallowing direct coupling of implementations located in different layers.//
<div title="LayerSeparationInterface" modifier="Ichthyostega" created="200902080635" tags="def" changecount="1">
<pre>A major //business interfaces// &amp;mdash; used by the layers for interfacing to each other; also to be invoked externally by scripts.
&amp;rarr; [[overfiew and technical details|LayerSeparationInterfaces]]
</pre>
</div>
<div title="LayerSeparationInterfaces" modifier="Ichthyostega" modified="200902090419" created="200812050619" tags="overview spec" changecount="22">
<pre>Lumiera uses a 3-layered architecture. Separation between layers is crucial. Any communication between the layers regarding the normal operation of the application should //at least be initiated// through ''Layer abstraction interfaces'' (Facade Interfaces). This is a low-impact version of layering, because, aside from this triggering, direct cooperation of parts within the single Lumiera process is allowed, under the condition that is is implemented using additional abstractions (interfaces with implementation level granularity). We stick to the policy of //disallowing direct coupling of implementations located in different layers.//
[&gt;img[Anatomy of a Layer Separation Interface|uml/fig132869.png]]
The goal is for the interface to remain fairly transparent for the client and to get an automatic lifecycle management.
To implement such a structure, each layer separation interface actually is comprised of several parts:
* an C Language Interface (&quot;CL Interface&quot;) to be installed into the InterfaceSystem
* a facade interface defining the respective abstractions in terms of the implementation language (C or C++)
* a implementation object on the service proiding side which is directly addressed by the implementation instantiated within the InterfaceSystem
* a proxy object on the client side, which usually is given inline alongside with the CLI interface definition.
* an C Language Interface (&quot;''CL Interface''&quot;) to be installed into the InterfaceSystem
* a ''facade interface'' defining the respective abstractions in terms of the client side impl. language (C or C++)
* a ''service implementation'' directly addressed by the implementation instantiated within the InterfaceSystem
* a ''facade proxy'' object on the client side, which usually is given inline alongside with the CL interface definition.
!opening and closing
Handling the lifecycle can be tricky, because client- and service-side need to carry out the opening and closing operations in sync and observing a specific call order to ensure calls get blocked already on the client side unless the whole interface compound is really up and running. To add to this complexity, plugins and built-in interfaces are handled differently regarding the question who is in charge of the lifecycle: interfaces are installed on the service side, whereas the loading of plugins is triggered from client side by requesting the plugin from the loader.
Anyway, interfaces are resources which best should be managed automatically. At least within the C++ part of the application we can ensure this by using a handle class. This way the handling of plugins and interfaces can be unified; the only remaining difference is on what side (client or service provider side) the handle is instantiated, with the appropriate ctor parameters.
Anyway, interfaces are resources which best should be managed automatically. At least within the C++ part of the application we can ensure this by using the InstanceHandle template. This way the handling of plugins and interfaces can be unified and the opening and closing of the facade proxy happens automatically.
The general idea is, that each facade interface actually provides access to a specific service; there will always be a single implementation object somewhere, which can be thought of as acting as &quot;the&quot; service. This service-providing object will then contain the mentioned InstanceHandle; thus, its lifecycle becomes identical with the service lifecycle.
* when the service relies on a [[plugin|LumieraPlugin]], this service providing object (containing the InstanceHandle) needs to sit at the service accessing side (as the plugin may not yet be loaded and someone has to pull it up).
* otherwise, when the service is just an interface to an already loaded facility, the service providing object (containing the InstanceHandle) will live on the service providing side, not the client side. Then the ctor of the service providing object needs to be able to access an interface instance definition (&amp;rarr; InterfaceSystem); the only difference to the plugin case is to create the InstanceHandle with a different ctor, passing the interface and the implementing instance.
!outline of the major interfaces
|!Layer|&gt;|!Interface |
|GUI|GuiFacade|UI lifecycle &amp;rarr; GuiStart|
|~|GuiNotificationFacade|status/error messages, asynchronous object status change notifications, trigger shutdown|
|~|DisplayFacade|pushing frames to a display/viewer|
|Proc|SessionFacade|session lifecycle|
|~|EditFacade|edit operations, object mutations|
|~|PlayerDummy|player mockup, maybe move to backend?|
|//Lumiera's major interfaces//|c
</pre>
</div>
<div title="LoadingMedia" modifier="Ichthyostega" modified="200806030203" created="200709220005" tags="design spec" changecount="4">
@ -2797,25 +2859,29 @@ We need a way of addressing existing [[pipes|Pipe]]. Besides, as the Pipes and T
&lt;&lt;tasksum end&gt;&gt;
</pre>
</div>
<div title="PlayerDummy" modifier="Ichthyostega" modified="200902010257" created="200901300209" tags="GuiIntegration dynamic" changecount="9">
<pre>Joelholdsworth and Ichthyo created this player mockup in 1/2009 to find out about the implementation details regarding integration and colaboration between the layers. There is no working render engine yet, thus we use a ~DummyImageGenerator for creating faked yuv frames to display. Within the GUI, there is a ~PlaybackController hooked up with the transport controls on the timeline pane.
<div title="PlayerDummy" modifier="Ichthyostega" modified="200902090408" created="200901300209" tags="GuiIntegration dynamic" changecount="16">
<pre>__Joelholdsworth__ and __Ichthyo__ created this player mockup in 1/2009 to find out about the implementation details regarding integration and colaboration between the layers. There is no working render engine yet, thus we use a ~DummyImageGenerator for creating faked yuv frames to display. Within the GUI, there is a ~PlaybackController hooked up with the transport controls on the timeline pane.
# first everything was contained within ~PlaybackController, which spawns a thread for periodically creating those dummy frames
# then, a ~PlayerService was factored out, now implemented within Proc-Layer (probably to be relocated into the backend for the final version). A new LayerSeparationInterface called ''~DummyPlayer'' was created and set up as a [[Subsystem]] within main().
# the next step was to support multiple playback processes going on in parallel. Now, the ~PlaybackController holds an smart-handle to the ~PlayProcess currently generating output for this viewer, and invokes the transport control functions and the pull frame call on this handle.
# then, also the tick generation (and thus the handling of the thread which pulls the frames) was factored out and pushed down into the mentioned ~PlayProcess. For this to work, the ~PlaybackController now makes a display slot available on the public GUI DisplayFacade interface.
# then, also the tick generation (and thus the handling of the thread which pulls the frames) was factored out and pushed down into the mentioned ~PlayProcess. For this to work, the ~PlaybackController now makes a display slot available on the public GUI DisplayFacade interface, so the ~PlayProcessImpl can push up the frames for display within the GUI
[img[Overview to the dummy player operation|draw/PlayerArch1.png]]
!when playing...
As a prerequisite, a viewer has to be prepared within the GUI. A XV video display widget is wired up to a sigc++ signal slot, using the Glib::Dispatcher to forward calls from the play process thread to the GTK main event loop thread. When doing so, additionally a Displayer slot is created with the DisplayService.
As a prerequisite, a viewer has to be prepared within the GUI. A XV video display widget is wired up to a sigc++ signal slot, using the Glib::Dispatcher to forward calls from the play process thread to the GTK main event loop thread. All of this wiring actually is encapsulated as a DisplayerSlot, created and registered with the DisplayService.
When starting playback, the slot handle created by these preparations is used to create a ~PlayProcess on the ~DummyPlayer interface. Actually
When starting playback, the display slot handle created by these preparations is used to create a ~PlayProcess on the ~DummyPlayer interface. Actually
* a ~PlayProcessImpl object is created down within the player implementation
* this uses the slot handle to actually allocate the display slot via the Display facade
* moreover, it aquires an TickService instance, which is still trotteling (not calling the periodic callback)
* this uses the provided slot handle to actually //allocate// the display slot via the Display facade. Here, //allocating// means registering and preparing it for output by //one single// ~PlayProcess. For the latter, this allocation yields an actually opened display handle.
* moreover, the ~PlayProcessImpl aquires an TickService instance, which is still trotteling (not calling the periodic callback)
* probably, a real player at this point would initiate a rendering process, so he can fetch the actual output frames periodically.
* on the &quot;upper&quot; side of the ~DummyPlayer facade, an lib::Handle object is created to track and manage this ~PlayProcesImpl instance
The handle is returned to the ~PlaybackController within the GUI, which uses this handle for all further interactions with the Player. The handle is ref counting and has value semantics, so it can be stored away, passed as parameter and so on. All such handles corresponding to one ~PlayProcess form a family; when the last goes out of scope, the ~PlayProcess terminates and deallocates any resources. Conceptually, this corresponds to pushing the &quot;stop&quot; button. Handles can be deliberately disconnected by calling {{{handle.close()}}} &amp;mdash; this has the same effect as deleting a handle (when all are closed or deleted the process ends).
The mentioned handle is returned to the ~PlaybackController within the GUI, which uses this handle for all further interactions with the Player. The handle is ref counting and has value semantics, so it can be stored away, passed as parameter and so on. All such handles corresponding to one ~PlayProcess form a family; when the last goes out of scope, the ~PlayProcess terminates and deallocates any resources. Conceptually, this corresponds to pushing the &quot;stop&quot; button. Handles can be deliberately disconnected by calling {{{handle.close()}}} &amp;mdash; this has the same effect as deleting a handle (when all are closed or deleted the process ends).
All the other play control operations are simply forwarded via the handle and the ~PlayProcessImpl. For example, &quot;pause&quot; corresponds to setting the tick frequency to 0 (thus temporarily discontinuing the tick callbacks). When allocating the display slot in the course of creating the ~PlayProcessImpl, the latter only accesses the Display facade. It can't access the display or viewer directly, because the GUI lives within an plugin; lower layers can't call directly into GUI functions. Thus, within the Display facade a functor (proxy) is created to represent the output sink. This (proxy) Displayer can be used within the implementation of the perodic callback function. As usual, the implementation of the (proxy) Displayer can be inlined and doesn't create an indirection at runtime. Thus, each frame output call has to pass though two indirections: the function pointer in the Display facade interface, and the Glib::Dispatcher.
All the other play control operations are simply forwarded via the handle and the ~PlayProcessImpl. For example, &quot;pause&quot; corresponds to setting the tick frequency to 0 (thus temporarily discontinuing the tick callbacks). When allocating the display slot in the course of creating the ~PlayProcessImpl, the latter only accesses the Display facade. It can't access the display or viewer directly, because the GUI lives within an plugin; lower layers aren't allowed to call GUI implementation functions directly. Thus, within the Display facade a functor (proxy) is created to represent the output sink. This (proxy) Displayer can be used within the implementation of the perodic callback function. As usual, the implementation of the (proxy) Displayer can be inlined and doesn't create runtime overhead. Thus, each frame output call has to pass though two indirections: the function pointer in the Display facade interface, and the Glib::Dispatcher.
!rationale
There can be multiple viewer widgets, to be connected dynamically to multiple play-controllers. (the latter are associated with the timeline(s)). Any playback can require multiple playback processes to work in parallel. The playback controller(s) should not be concerned with managing the play processes, which in turn should neither care for the actual rendering, nor manage the display frequency and synchronisation issues. Moreover, the mentioned parts live in different layers and especially the GUI needs to remain separated from the core. And finally, in case of a problem within one play process, it should be able to unwind automatically, without interfering with other ongoing play processes.
</pre>
</div>
<div title="Playlist" modifier="Ichthyostega" modified="200706250727" created="200706220456" tags="def" changecount="3">
@ -4823,6 +4889,14 @@ function addKeyDownHandlers(e)
}
//}}}</pre>
</div>
<div title="TickService" modifier="Ichthyostega" created="200902080629" tags="def" changecount="1">
<pre>A service generating //periodic ticks// &amp;mdash; repetedly invoking a callback with a given frequency.
* defined 1/2009 as part of the PlayerDummy (design sketch)
* probably to be implemented later on based on Posix timers
* will probably be later on integrated into a synchronisation framework (display sync, audio sync, MTC master/slave...)
</pre>
</div>
<div title="TiddlyWiki" modifier="Ichthyostega" created="200706220430" changecount="1">
<pre>http://tiddlywiki.com/</pre>
</div>
@ -5075,6 +5149,9 @@ Wiring requests are small stateful value objects. They will be collected, sorted
[[Automation]] is treated as a function over time. Everything beyond this definition is considered an implementation detail of the [[parameter provider|ParamProvider]] used to yield the value. Thus automation is closely tied to the concept of a [[Parameter]], which also plays an important role in the communication with the GUI and while [[setting up and wiring the render nodes|BuildRenderNode]] in the course of the build process (&amp;rarr; see [[tag:Builder|Builder]])</pre>
</div>
<div title="def" modifier="Ichthyostega" created="200902080726" changecount="1">
<pre>Definition of commonly used terms and facilities...</pre>
</div>
</div>
<!--POST-STOREAREA-->
<!--POST-BODY-START-->