Fix inheritance of asset::Unknown, fix broken test, enable MakeClip_test

This commit is contained in:
Fischlurch 2007-11-20 05:20:01 +01:00
parent 5dcb9cf343
commit 49459b4bf7
29 changed files with 144 additions and 144 deletions

View file

@ -16,7 +16,7 @@
<!-- ============================================================= -->
<a name="refclass136709"></a>
<p>Declaration :</p><ul><li>C++ : class Media : public <a href="class136453.html#refclass136453"><b>Asset</b></a> </li></ul><p>Directly inherited by : <a href="class137349.html#refclass137349"><b>Clip</b></a> <a href="class138501.html#refclass138501"><b>CompoundMedia</b></a> <a href="class137605.html#refclass137605"><b>Preview</b></a> </p>
<p>Declaration :</p><ul><li>C++ : class Media : public <a href="class136453.html#refclass136453"><b>Asset</b></a> </li></ul><p>Directly inherited by : <a href="class137349.html#refclass137349"><b>Clip</b></a> <a href="class138501.html#refclass138501"><b>CompoundMedia</b></a> <a href="class137477.html#refclass137477"><b>Unknown</b></a> </p>
<p>key abstraction: media-like assets<br /></p><p>Artifact : <a href="index.html#refartifact136453"><b>media</b></a></p><div class="sub">
<a name="refoperation133253"></a>
<table><tr><td><div class="element">Operation <b>createClip</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : + createClip() : <a href="class128901.html#refclass128901"><b>Clip</b></a></li><li>C++ : public: <a href="class128901.html#refclass128901"><b>Clip</b></a> createClip () </li></ul><p>create a (possibly compound) Clip refering to this media, ready to be added to the EDL.<br /></p><a name="refoperation133381"></a>

View file

@ -16,7 +16,8 @@
<!-- ============================================================= -->
<a name="refclass137477"></a>
<p>Declaration :</p><ul><li>C++ : class Unknown : public <a href="class137605.html#refclass137605"><b>Preview</b></a> </li></ul><p>placeholder for unknown or unavailable media source<br /></p><p>Artifact : <a href="index.html#refartifact137093"><b>unknown</b></a></p><div class="sub">
<p>Declaration :</p><ul><li>C++ : class Unknown : public <a href="class136709.html#refclass136709"><b>Media</b></a> </li></ul><p>Directly inherited by : <a href="class137605.html#refclass137605"><b>Preview</b></a> </p>
<p>placeholder for unknown or unavailable media source<br /></p><p>Artifact : <a href="index.html#refartifact137093"><b>unknown</b></a></p><div class="sub">
</div>
<p>All public operations : <a href="class136709.html#refoperation133253"><b>createClip</b></a> , <a href="class136453.html#refoperation132997"><b>enable</b></a> , <a href="class136453.html#refoperation132229"><b>getDependant</b></a> , <a href="class136453.html#refoperation132101"><b>getParents</b></a> , <a href="class136709.html#refoperation133381"><b>howtoProc</b></a> , <a href="class136453.html#refoperation132869"><b>isActive</b></a> </p>
</body>

View file

@ -16,8 +16,7 @@
<!-- ============================================================= -->
<a name="refclass137605"></a>
<p>Declaration :</p><ul><li>C++ : class Preview : public <a href="class136709.html#refclass136709"><b>Media</b></a> </li></ul><p>Directly inherited by : <a href="class137477.html#refclass137477"><b>Unknown</b></a> </p>
<p>alternative version of the media data, probably with lower resolution<br /></p><p>Artifact : <a href="index.html#refartifact136965"><b>preview</b></a></p><div class="sub">
<p>Declaration :</p><ul><li>C++ : class Preview : public <a href="class137477.html#refclass137477"><b>Unknown</b></a> </li></ul><p>alternative version of the media data, probably with lower resolution<br /></p><p>Artifact : <a href="index.html#refartifact136965"><b>preview</b></a></p><div class="sub">
</div>
<p>All public operations : <a href="class136709.html#refoperation133253"><b>createClip</b></a> , <a href="class136453.html#refoperation132997"><b>enable</b></a> , <a href="class136453.html#refoperation132229"><b>getDependant</b></a> , <a href="class136453.html#refoperation132101"><b>getParents</b></a> , <a href="class136709.html#refoperation133381"><b>howtoProc</b></a> , <a href="class136453.html#refoperation132869"><b>isActive</b></a> </p>
</body>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View file

@ -112,7 +112,7 @@ Documentation</title>
<a name="refartifact128005"></a>
<table><tr><td><div class="element">Artifact <b>Cinelerra3</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#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>tool</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#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#refartifact133509"><b>vrender</b></a></p>
<p><i>executable</i> associated with : <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>tool</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#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#refartifact133509"><b>vrender</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></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>

View file

@ -33,8 +33,8 @@
<tr bgcolor=#f0f0f0><td><a href="class129285.html#refclass129285" target = "projectFrame"><b>FixedLocation</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refactivity object128005" target = "projectFrame"><b>Fixture</b></a></td><td>activity object</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact128773" target = "projectFrame"><b>fixture</b></a></td><td>artifact</td><td>the (low level) representation of the EDL with concrete placement data</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent128517" target = "projectFrame"><b>Fixture</b></a></td><td>component</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128261.html#refclass128261" target = "projectFrame"><b>Fixture</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent128517" target = "projectFrame"><b>Fixture</b></a></td><td>component</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation128261" target = "projectFrame"><b>fixture</b></a></td><td>relation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#reffork activity node129029" target = "projectFrame"><b>fork activity node</b></a></td><td>fork activity node</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128821.html#refclass128821" target = "projectFrame"><b>Frame</b></a></td><td>class</td><td>Frames are just a low level lump of continous memory, most parts are opaque. Frames are memory sensitive, they will be small constant sized structures which can be efficently managed in a pool.</td></tr>

View file

@ -20,9 +20,9 @@
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute130437" target = "projectFrame"><b>id</b></a></td><td>attribute</td><td>Asset primary key.</td></tr>
<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 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 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#refoperation131461" target = "projectFrame"><b>instance</b></a></td><td>operation</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>

View file

@ -19,9 +19,9 @@
<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#refattribute129029" target = "projectFrame"><b>offset</b></a></td><td>attribute</td><td>Offset the actual position by this (time) value relative to the anchor point. TODO: Representation?</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute130821" target = "projectFrame"><b>org</b></a></td><td>attribute</td><td>origin or authorship id. Can be a project abbreviation, a package id or just the authors nickname or UID. This allows for the compnent name to be more generic (e.g. "blur"). Default for all assets provided by the core cinelerra-3 codebase is "cin3".</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133125" target = "projectFrame"><b>ouput</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134405" target = "projectFrame"><b>ouput</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131333" target = "projectFrame"><b>ouput</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133125" target = "projectFrame"><b>ouput</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class138117.html#refclass138117" target = "projectFrame"><b>OutPort</b></a></td><td>class</td><td>structural asset corresponding to some port generating media output</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact137605" target = "projectFrame"><b>outport</b></a></td><td>artifact</td><td>structural asset corresponding to some port generating media output</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation132613" target = "projectFrame"><b>output</b></a></td><td>relation</td><td></td></tr>

View file

@ -21,8 +21,8 @@
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation134149" target = "projectFrame"><b>save</b></a></td><td>operation</td><td>create a complete, serialized representation<br />of the current session config and contents.<br />@todo how to serialize, prameters, return value?</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class129205.html#refclass129205" target = "projectFrame"><b>Scheduler</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact135045" target = "projectFrame"><b>segment</b></a></td><td>artifact</td><td>Segment of the Timeline.<br />Used at the moment (7/07) for partitioning the timeline/fixture into segments<br />to be rendered by a specialized render node network for each, without the need<br />to change any connections within a given segment. <br />Note this concept may be superfluos alltogether; is a draft and the real<br />use still needs to be worked out...</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refactivity object128005" target = "projectFrame"><b>segment Tool</b></a></td><td>activity object</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class135173.html#refclass135173" target = "projectFrame"><b>Segment</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refactivity object128005" target = "projectFrame"><b>segment Tool</b></a></td><td>activity object</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class134277.html#refclass134277" target = "projectFrame"><b>SegmentationTool</b></a></td><td>class</td><td>Tool implementation for deriving a partitioning of the current timeline such, that each segement has a constant configuration. "Constant" means here, that any remaining changes over time can be represented by automation solely, without the need to change the node connections.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact131333" target = "projectFrame"><b>segmentationtool</b></a></td><td>artifact</td><td>Tool for creating a partitioning of the current timeline</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refactivity object128389" target = "projectFrame"><b>segments</b></a></td><td>activity object</td><td></td></tr>
@ -46,8 +46,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#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="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="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

@ -32,8 +32,8 @@
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact130565" target = "projectFrame"><b>toolfactory</b></a></td><td>artifact</td><td>supply of Tool implementations for the Builder</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class137989.html#refclass137989" target = "projectFrame"><b>Track</b></a></td><td>class</td><td>structural asset holding the configuration of a track in the EDL</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute128389" target = "projectFrame"><b>track</b></a></td><td>attribute</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact137477" target = "projectFrame"><b>track</b></a></td><td>artifact</td><td>structural asset holding the configuration of a track in the EDL</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact128901" target = "projectFrame"><b>track</b></a></td><td>artifact</td><td>descriptor for one track in the Session</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact137477" target = "projectFrame"><b>track</b></a></td><td>artifact</td><td>structural asset holding the configuration of a track in the EDL</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128389.html#refclass128389" target = "projectFrame"><b>Track</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation142341" target = "projectFrame"><b>tracks</b></a></td><td>relation</td><td>elementary media assets comprising this compound</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation128645" target = "projectFrame"><b>tracks</b></a></td><td>relation</td><td></td></tr>

View file

@ -177,6 +177,6 @@ namespace util
/** shortcut for subclass test, intended for assertions only.
* @note it is considered bad style to use such in non-assertion code,
* and we probably will enforce this design rule in future. */
#define INSTANCEOF(CLASS, EXPR) (dynamic_cast<const CLASS*> (EXPR))
#define INSTANCEOF(CLASS, EXPR) (dynamic_cast<const CLASS*> (EXPR))
#endif /*UTIL_HPP_*/

View file

@ -50,28 +50,16 @@ namespace asset
/** create a preview placeholder ("proxy media") for the given
* media asset
* media asset. The name of the created media asset is derived
* by decorating the original media's name.
*/
Preview::Preview (const Media& mediaref)
: Media (createProxyIdent (mediaref.ident),
mediaref.getFilename(),
mediaref.getLength())
: Unknown (createProxyIdent (mediaref.ident),
mediaref.getFilename(),
mediaref.getLength())
{
UNIMPLEMENTED ("do something to setup proxy media");
}
/** create a dummy placeholder
* @internal for use by asset::Unknown
* @todo better design!
*/
Preview::Preview (const Asset::Ident& idi, string name, Time length)
: Media (createProxyIdent (idi),
name, length)
{
TODO ("work out how to handle unknown media placheholder");
}

View file

@ -24,7 +24,7 @@
#ifndef ASSET_PREVIEW_H
#define ASSET_PREVIEW_H
#include "proc/asset/media.hpp"
#include "proc/asset/unknown.hpp"
@ -32,13 +32,13 @@ namespace asset
{
/**
* alternative version of the media data, probably with lower resolution
* special placeholder denoting an alternative version of the media data,
* typically with lower resolution ("proxy media")
*/
class Preview : public Media
class Preview : public Unknown
{
protected:
Preview (const Media& mediaref);
Preview (const Asset::Ident& idi, string name, Time length);
friend class MediaFactory;
};

View file

@ -22,19 +22,44 @@
#include "proc/asset/unknown.hpp"
#include <boost/format.hpp>
using boost::format;
namespace asset
{
const cinelerra::Time DUMMY_TIME (25);
/** */
Unknown::Unknown (const Asset::Ident& idi)
: Preview (idi, "", DUMMY_TIME)
/** create a placeholder for a media with the given identity.
* the denoted original media (identity) can be accessed later
* on using the Unknown::getOrg() function */
Unknown::Unknown (const Asset::Ident& idi, string name, Time length)
: Media (idi, name, length)
{
TODO ("do something sensible with the »unknown media« placeholder...");
TODO ("implement some sensible behaviour for the »unknown media« placeholder...");
}
/** using the information stored in this placeholder asset,
* try to access the "real" media it stands for.
*/
Media::PMedia
Unknown::getOrg() throw(cinelerra::error::Invalid)
{
UNIMPLEMENTED ("how to get at the original media from a »Unknown« placeholder");
if (1==0)
throw cinelerra::error::Invalid (str(format("Unable to locate original media "
"for ID=%s, filename=\"%s\".")
% string(this->ident)
% string(this->getFilename()))
,CINELERRA_ERROR_ORIG_NOT_FOUND
);
}
CINELERRA_ERROR_DEFINE (ORIG_NOT_FOUND, "Media refered by placeholder not found");
} // namespace asset

View file

@ -24,24 +24,35 @@
#ifndef ASSET_UNKNOWN_H
#define ASSET_UNKNOWN_H
#include "proc/asset/preview.hpp"
#include "proc/asset/media.hpp"
namespace asset
{
const cinelerra::Time DUMMY_TIME (25); ///< @todo solve konfig management
/**
* Placeholder Asset for unknown or unavailable media source.
* @todo maybe do special handling of the media length, allowing
* it to support existing clips even if the media length
* is not known?
*/
class Unknown : public Preview
class Unknown : public Media
{
protected:
Unknown (const Asset::Ident& idi);
Unknown (const Asset::Ident& idi, string name="", Time length=DUMMY_TIME);
friend class MediaFactory;
public:
virtual Media::PMedia getOrg() throw(cinelerra::error::Invalid);
};
CINELERRA_ERROR_DECLARE (ORIG_NOT_FOUND);

View file

@ -130,12 +130,26 @@ namespace mobject
/* === defining specialisations to be subclasses === */
/////TODO: define Macro for specialisations here
#define DEFINE_SPECIALIZED_PLACEMENT(SUBCLASS) \
template<> \
class Placement<SUBCLASS> : public Placement<MObject> \
{ \
protected: \
Placement (SUBCLASS & m, void (*moKiller)(MObject*)) \
: Placement<MObject>::Placement (m, moKiller) \
{ }; \
friend class session::MObjectFactory; \
\
public: \
virtual SUBCLASS* \
operator-> () const \
{ \
ENSURE (INSTANCEOF (SUBCLASS, this->get())); \
return static_cast<SUBCLASS*> \
(shared_ptr<MObject>::operator-> ()); \
} \
};
/* a note to the maintainer: please don't add any fields or methods to
* these subclasses which aren't also present in Placement<MObject>!

View file

@ -50,7 +50,8 @@ namespace mobject
bool
Clip::isValid () const
{
UNIMPLEMENTED ("check consistency of clip length def, implies accessing the underlying media def");
TODO ("check consistency of clip length def, implies accessing the underlying media def");
return length > 0;
}

View file

@ -82,25 +82,8 @@ namespace mobject
} // namespace mobject::session
///////////////////////////TODO use macro for specialsation...
template<>
class Placement<session::Clip> : public Placement<MObject>
{
protected:
Placement (session::Clip & m, void (*moKiller)(MObject*))
: Placement<MObject>::Placement (m, moKiller)
{ };
friend class session::MObjectFactory;
public:
virtual session::Clip*
operator-> () const
{
ENSURE (INSTANCEOF(session::Clip, &(*this)));
return static_cast<session::Clip*> (shared_ptr<MObject>::operator-> ());
}
};
/** Placement<Clip> defined to be subclass of Placement<MObject> */
DEFINE_SPECIALIZED_PLACEMENT (session::Clip);
} // namespace mobject

View file

@ -50,22 +50,8 @@ namespace mobject
} // namespace mobject::session
///////////////////////////TODO use macro for specialsation...
template<>
class Placement<session::Effect> : public Placement<MObject>
{
Placement (session::Effect & m, void (*moKiller)(MObject*))
: Placement<MObject>::Placement (m, moKiller)
{ };
public:
virtual session::Effect*
operator-> () const
{
ENSURE (INSTANCEOF(session::Effect, &(*this)));
return static_cast<session::Effect*> (shared_ptr<MObject>::operator-> ());
}
};
/** Placement<Effect> defined to be subclass of Placement<MObject> */
DEFINE_SPECIALIZED_PLACEMENT (session::Effect);
} // namespace mobject
#endif

View file

@ -49,22 +49,8 @@ namespace mobject
} // namespace mobject::session
//////////////////////////////////TODO
template<>
class Placement<session::Meta> : public Placement<MObject>
{
Placement (session::Meta & m, void (*moKiller)(MObject*))
: Placement<MObject>::Placement (m, moKiller)
{ };
public:
virtual session::Meta*
operator-> () const
{
ENSURE (INSTANCEOF(session::Meta, &(*this)));
return static_cast<session::Meta*> (shared_ptr<MObject>::operator-> ());
}
};
/** Placement<Meta> defined to be subclass of Placement<MObject> */
DEFINE_SPECIALIZED_PLACEMENT (session::Meta);
} // namespace mobject
#endif

View file

@ -33,7 +33,8 @@ return: 0
END
PLANNED "MakeClip_test" MakeClip_test <<END
TEST "MakeClip_test" MakeClip_test <<END
return: 0
END

View file

@ -65,7 +65,8 @@ namespace asset
ASSERT (0 < cc->getLength());
ASSERT (cm->ident.category.hasKind (VIDEO));
ASSERT (cm->getFilename() == mm->getFilename());
ASSERT (cm->howtoProc() == mm->howtoProc());
TODO ("implement Processing Pattern!!!");
// ASSERT (cm->howtoProc() == mm->howtoProc());
ASSERT (cm->ident.org == mm->ident.org);
ASSERT (dependencyCheck (mm,cm));

View file

@ -1,6 +1,6 @@
format 40
"Asset" // ProcessingLayer::Asset
revision 14
revision 15
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -593,12 +593,12 @@ ${inlines}
explicit_switch_type ""
comment "placeholder for unknown or unavailable media source"
classrelation 140933 // <generalisation>
relation 139141 ---|>
classrelation 146181 // <generalisation>
relation 144005 ---|>
a public
cpp default "${type}"
classrelation_ref 140933 // <generalisation>
b multiplicity "" parent class_ref 137605 // Preview
classrelation_ref 146181 // <generalisation>
b multiplicity "" parent class_ref 136709 // Media
end
end
@ -614,12 +614,12 @@ ${inlines}
explicit_switch_type ""
comment "alternative version of the media data, probably with lower resolution"
classrelation 140805 // <generalisation>
relation 139013 ---|>
classrelation 146309 // <generalisation>
relation 144133 ---|>
a public
cpp default "${type}"
classrelation_ref 140805 // <generalisation>
b multiplicity "" parent class_ref 136709 // Media
classrelation_ref 146309 // <generalisation>
b multiplicity "" parent class_ref 137477 // Unknown
end
end

View file

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

View file

@ -37,11 +37,11 @@ classcanvas 131077 class_ref 137349 // Clip
end
classcanvas 131333 class_ref 137477 // Unknown
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 381 529 2000
xyz 381 445 2000
end
classcanvas 131461 class_ref 137605 // Preview
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 386 445 2005
xyz 386 529 2005
end
classcanvas 131973 class_ref 137733 // Effect
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
@ -126,17 +126,6 @@ relationcanvas 131205 relation_ref 138757 // <generalisation>
line 134405 z 1999 to ref 128645
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 131717 relation_ref 139013 // <generalisation>
geometry VHV
from ref 131461 z 2004 to point 410 423
line 134021 z 2004 to point 292 423
line 134149 z 2004 to ref 128645
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 131845 relation_ref 139141 // <generalisation>
from ref 131333 z 1999 to ref 131461
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 132229 relation_ref 139269 // <generalisation>
from ref 131973 z 1999 to ref 128773
no_role_a no_role_b
@ -168,7 +157,7 @@ relationcanvas 134533 relation_ref 140421 // <generalisation>
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 134917 relation_ref 140549 // <directional aggregation>
from ref 133765 z 2004 stereotype "<<vector>>" xyz 228 493 3000 to point 225 545
from ref 133765 z 2004 stereotype "<<vector>>" xyz 230 500 3000 to point 225 545
line 135301 z 2004 to point 225 365
line 135173 z 2004 to ref 128645
role_a_pos 216 343 3000 no_role_b
@ -207,6 +196,17 @@ relationcanvas 137861 relation_ref 142213 // <directional aggregation>
line 137989 z 1999 to ref 128773
role_a_pos 556 343 3000 no_role_b
multiplicity_a_pos 556 376 3000 no_multiplicity_b
relationcanvas 138117 relation_ref 144005 // <generalisation>
geometry VHV
from ref 131333 z 1999 to point 410 423
line 138245 z 1999 to point 292 423
line 138373 z 1999 to ref 128645
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 138501 relation_ref 144133 // <generalisation>
from ref 131461 z 1999 to ref 131333
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
line 128261 -_-_ geometry HV
from ref 128005 z 1999 to point 331 150
line 128389 z 1999 to ref 128133

View file

@ -10,11 +10,11 @@ classcanvas 128133 class_ref 136709 // Media
end
classcanvas 128261 class_ref 137477 // Unknown
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 530 231 2000
xyz 530 147 2000
end
classcanvas 128389 class_ref 137605 // Preview
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 535 147 2005
xyz 535 215 2005
end
classcanvas 128901 class_ref 128901 // Clip
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
@ -108,18 +108,10 @@ classcanvas 142981 class_ref 137861 // Codec
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 618 480 2004
end
relationcanvas 128517 relation_ref 139141 // <generalisation>
from ref 128261 z 1999 to ref 128389
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 128645 relation_ref 138757 // <generalisation>
from ref 128005 z 1999 to ref 128133
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 128773 relation_ref 139013 // <generalisation>
from ref 128389 z 2004 to ref 128133
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 129541 relation_ref 129413 // <generalisation>
from ref 128901 z 1999 to ref 129157
no_role_a no_role_b
@ -186,9 +178,9 @@ relationcanvas 137349 relation_ref 140421 // <generalisation>
no_multiplicity_a no_multiplicity_b
relationcanvas 137477 relation_ref 140549 // <directional aggregation>
from ref 137221 z 1999 to point 648 76
line 137733 z 1999 stereotype "<<vector>>" xyz 652 122 3000 to ref 128133
role_a_pos 609 54 3000 no_role_b
multiplicity_a_pos 584 121 3000 multiplicity_b_pos 636 122 3000
line 137733 z 1999 stereotype "<<vector>>" xyz 634 112 3000 to ref 128133
role_a_pos 634 60 3000 no_role_b
multiplicity_a_pos 611 60 3000 multiplicity_b_pos 636 122 3000
relationcanvas 137861 relation_ref 140677 // <unidirectional association>
from ref 128901 z 1999 to point 218 232
line 138245 z 1999 to point 377 48
@ -241,11 +233,11 @@ relationcanvas 142213 relation_ref 142085 // <unidirectional association>
from ref 141317 z 1999 to point 812 270
line 142341 z 1999 to point 812 131
line 142469 z 1999 to ref 139013
role_a_pos 794 109 3000 no_role_b
role_a_pos 776 272 3000 no_role_b
multiplicity_a_pos 794 142 3000 multiplicity_b_pos 794 299 3000
relationcanvas 142597 relation_ref 142213 // <directional aggregation>
from ref 141189 z 1999 stereotype "<<vector>>" xyz 656 360 3000 to ref 141061
role_a_pos 650 367 3000 no_role_b
from ref 141189 z 1999 stereotype "<<vector>>" xyz 660 352 3000 to ref 141061
role_a_pos 645 374 3000 no_role_b
multiplicity_a_pos 614 367 3000 no_multiplicity_b
relationcanvas 142853 relation_ref 139269 // <generalisation>
from ref 142725 z 1999 to ref 141061
@ -255,4 +247,12 @@ relationcanvas 143109 relation_ref 139397 // <generalisation>
from ref 142981 z 1999 to ref 141061
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 143237 relation_ref 144133 // <generalisation>
from ref 128389 z 1999 to ref 128261
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 143365 relation_ref 144005 // <generalisation>
from ref 128261 z 1999 to ref 128133
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
end

View file

@ -1,16 +1,20 @@
window_sizes 1140 783 270 860 633 71
diagrams
classdiagram_ref 130309 // Asset Kinds
860 633 100 4 0 0
active classdiagram_ref 128133 // Session structure
860 633 100 4 120 0
classdiagram_ref 128133 // Session structure
860 633 100 4 0 0
classdiagram_ref 128389 // Render Entities
688 506 100 4 120 0
active classdiagram_ref 130437 // Media-Asset Relations
859 616 100 4 0 0
end
show_stereotypes
selected
package_ref 129 // cinelerra3
open
class_ref 137477 // Unknown
class_ref 137605 // Preview
class_ref 128645 // Placement
class_ref 129413 // RelativeLocation
class_ref 129541 // Allocation

View file

@ -1,6 +1,6 @@
format 40
"cinelerra3"
revision 36
revision 37
modified_by 5 "hiv"
cpp_root_dir "../../src/"