define asset::Viewer

This commit is contained in:
Fischlurch 2011-05-28 02:22:57 +02:00
parent e497f0a41e
commit 5e8a9b50d1
10 changed files with 126 additions and 55 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -36,33 +36,31 @@ namespace asset {
/** @todo anything significant to do here??? */
Timeline::Timeline (const Asset::Ident& idi, RBinding const& sequenceBinding)
Viewer::Viewer (const Asset::Ident& idi)
: Struct (idi)
, boundSequence_(sequenceBinding)
{
REQUIRE (boundSequence_);
UNIMPLEMENTED ("anything regarding Viewer Assets");
}
PTimeline
Timeline::create (Asset::Ident const& idi, RBinding const& sequenceBinding)
{
REQUIRE (getRegistry, "can't create a Timeline prior to session initialisation");
PTimeline newElement (AssetManager::instance().wrap (*new Timeline(idi, sequenceBinding)));
getRegistry().append (newElement);
ENSURE (newElement);
ENSURE (getRegistry().isRegistered (*newElement));
return newElement;
}
//PViewer
//Viewer::create (Asset::Ident const& idi)
//{
// REQUIRE (getRegistry, "can't create a Timeline prior to session initialisation");
//
// PTimeline newElement (AssetManager::instance().wrap (*new Viewer(idi)));
// getRegistry().append (newElement);
//
// ENSURE (newElement);
// ENSURE (getRegistry().isRegistered (*newElement));
// return newElement;
//}
void
Timeline::unlink ()
Viewer::unlink ()
{
AutoRegistered<Timeline>::detach();
boundSequence_.purge();
// AutoRegistered<Timeline>::detach();
Struct::unlink();
}

View file

@ -22,11 +22,23 @@
/** @file viewer.hpp
** structural element within the session.
** \c "timeline(theTimelineName),bindSequence(theTimelineName,sequenceID)."
** structural element corresponding to a viewer in the GUI.
** This Asset marks an attachment point, allowing other (output producing)
** elements to be connected to ("viewer attachment"). The typical standard case
** is a Timeline: It features a set of global pipes (busses), which collect all
** produced data. Yet without an explicit output connection, this data can't be
** generated, because in Lumiera, actual output is always retrieved ("pulled")
** starting from an output sink. Thus, in order to \em perform (play, render)
** the timeline, an "view connection" needs to be established: this connection
** is represented by an session::BindingMO, linking the Timeline to an
** asset::Viewer. Consequently, the same output mapping and translation
** mechanism used for Sequence-Timeline- (and VirtualClip-)Bindings
** is employed in this situation to figure out the real output port.
**
** @todo WIP-WIP-WIP as of 5/11
**
** @see Session
** @see Sequence
** @see Timeline
** @see StructFactory
**
*/
@ -61,27 +73,24 @@ namespace session {
namespace asset {
// using lumiera::P;
class Timeline;
typedef lumiera::P<Timeline> PTimeline;
using lumiera::P;
class Viewer;
typedef lumiera::P<Viewer> PViewer;
/**
* TODO type comment
*/
class Timeline
class Viewer
: public Struct
, public lib::AutoRegistered<Timeline>
// , public lib::AutoRegistered<Viewer>
{
typedef mobject::session::RBinding RBinding;
RBinding boundSequence_;
Timeline (Ident const&, RBinding const&);
Viewer (Ident const&); /////TODO ctor params????
public:
/** create and register a new Timeline instance */
static PTimeline create (Asset::Ident const& idi, RBinding const& sequenceBinding);
// static PTimeline create (Asset::Ident const& idi, RBinding const& sequenceBinding);
protected:
virtual void unlink ();

View file

@ -1,6 +1,6 @@
format 58
"Asset" // ProcessingLayer::Asset
revision 22
revision 23
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -773,6 +773,28 @@ ${inlines}
end
end
class 174981 "Viewer"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
php_decl ""
python_2_2 python_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 214277 // <generalisation>
relation 203141 ---|>
a public
cpp default "${type}"
classrelation_ref 214277 // <generalisation>
b parent class_ref 136965 // Struct
end
end
class 138117 "Pipe"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}

View file

@ -42,11 +42,11 @@ classcanvas 131461 class_ref 137605 // Preview
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_members_multiplicity default show_members_initialization default member_max_width 0 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 show_stereotype_properties default
xyz 412 416 2000
xyz 412 419 2000
end
classcanvas 132101 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_members_multiplicity default show_members_initialization default member_max_width 0 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 show_stereotype_properties default
xyz 464 417 2000
xyz 464 419 2000
end
classcanvas 132613 class_ref 138117 // Pipe
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 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 show_stereotype_properties default
@ -96,6 +96,10 @@ classcanvas 140805 class_ref 160901 // Timeline
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 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 show_stereotype_properties default
xyz 622 419 2000
end
classcanvas 141445 class_ref 174981 // Viewer
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 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 show_stereotype_properties default
xyz 545 419 2000
end
relationcanvas 129157 relation_ref 138117 // <realization>
geometry VHV
from ref 128645 z 1999 to point 289 293
@ -135,16 +139,16 @@ relationcanvas 130949 relation_ref 138629 // <unidirectional association>
end
relationcanvas 132229 relation_ref 139269 // <generalisation>
geometry VHV
from ref 131973 z 1999 to point 432 390
line 139269 z 1999 to point 448 390
from ref 131973 z 1999 to point 432 391
line 139269 z 1999 to point 448 391
line 139397 z 1999 to ref 128773
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
end
relationcanvas 132357 relation_ref 139397 // <generalisation>
geometry VHV
from ref 132101 z 1999 to point 484 390
line 139525 z 1999 to point 448 390
from ref 132101 z 1999 to point 484 391
line 139525 z 1999 to point 448 391
line 139653 z 1999 to ref 128773
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
@ -270,6 +274,13 @@ relationcanvas 141189 relation_ref 185349 // <generalisation>
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
end
relationcanvas 141573 relation_ref 203141 // <generalisation>
geometry HV
from ref 141445 z 1999 to point 601 436
line 141701 z 1999 to ref 128901
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
end
line 128261 -_-_ geometry HV
from ref 128005 z 1999 to point 328 149
line 128389 z 1999 to ref 128133

View file

@ -24,10 +24,6 @@ classcanvas 128645 class_ref 139141 // DoAttach
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 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 show_stereotype_properties default
xyz 337 431 2000
end
classcanvas 128773 class_ref 137989 // Track
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 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 show_stereotype_properties default
xyz 328 168 2000
end
classcanvas 128901 class_ref 139269 // DoRecurse
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 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 show_stereotype_properties default
xyz 409 431 2000
@ -36,6 +32,18 @@ classcanvas 129029 class_ref 136965 // Struct
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 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 show_stereotype_properties default
xyz 425 73 2005
end
classcanvas 132101 class_ref 152197 // Sequence
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 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 show_stereotype_properties default
xyz 121 217 2000
end
classcanvas 132229 class_ref 160901 // Timeline
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 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 show_stereotype_properties default
xyz 87 168 2000
end
classcanvas 132357 class_ref 174981 // Viewer
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 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 show_stereotype_properties default
xyz 162 168 2000
end
relationcanvas 129157 relation_ref 139653 // <generalisation>
geometry VHV
from ref 128517 z 1999 to point 260 139
@ -50,14 +58,6 @@ relationcanvas 129285 relation_ref 141189 // <generalisation>
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
end
relationcanvas 129413 relation_ref 139525 // <generalisation>
geometry VHV
from ref 128773 z 1999 to point 348 139
line 130181 z 1999 to point 445 139
line 130309 z 1999 to ref 129029
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
end
relationcanvas 129541 relation_ref 141701 // <directional composition>
from ref 128389 z 1999 stereotype "<<vector>>" xyz 367 290 3000 to ref 128133
role_a_pos 364 301 3000 no_role_b
@ -91,5 +91,29 @@ relationcanvas 131589 relation_ref 146053 // <unidirectional association>
role_a_pos 328 250 3000 no_role_b
multiplicity_a_pos 379 273 3000 no_multiplicity_b
end
relationcanvas 132485 relation_ref 185349 // <generalisation>
geometry VHV unfixed
from ref 132229 z 1999 to point 112 139
line 133125 z 1999 to point 445 139
line 133253 z 1999 to ref 129029
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
end
relationcanvas 132613 relation_ref 203141 // <generalisation>
geometry VHV unfixed
from ref 132357 z 1999 to point 183 139
line 133381 z 1999 to point 445 139
line 133509 z 1999 to ref 129029
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
end
relationcanvas 132741 relation_ref 185221 // <generalisation>
geometry VHV unfixed
from ref 132101 z 1999 to point 149 139
line 132869 z 1999 to point 445 139
line 132997 z 1999 to ref 129029
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
end
preferred_whz 530 608 1
end

View file

@ -4,8 +4,12 @@ diagrams
631 352 100 4 0 0
objectdiagram_ref 138885 // ModelAssetRelations
730 488 100 4 0 0
active classdiagram_ref 142725 // Time flavours
classdiagram_ref 142725 // Time flavours
595 646 100 4 0 0
classdiagram_ref 131205 // Struct-Asset Relations
530 608 100 4 0 0
active classdiagram_ref 130309 // Asset Kinds
855 805 100 4 0 0
end
show_stereotypes
selected
@ -15,7 +19,9 @@ open
package_ref 128005 // design
class_ref 160389 // VirtualMedia
class_ref 136837 // Proc
class_ref 152197 // Sequence
class_ref 160901 // Timeline
class_ref 174981 // Viewer
class_ref 139269 // DoRecurse
class_ref 162821 // TypedID::Link
classview_ref 128389 // Controller Workings
@ -31,9 +37,9 @@ open
class_ref 152453 // PlacementRef
classrelation_ref 178437 // <realization>
class_ref 153733 // QueryFocusStack
expansionregion_ref 128133 // establish partitioning
usecaseview_ref 128261 // config examples
classview_ref 128133 // Engine Workings
package_ref 128389 // RenderEngine
classdiagram_ref 142725 // Time flavours
class_ref 134917 // Time
class_ref 169221 // TimeGrid

View file

@ -5579,13 +5579,14 @@ Instead, we should try to just connect the various subsystems via Interfaces and
* to shield the rendering code of all complexities of thread communication and synchronization, we use the StateProxy
</pre>
</div>
<div title="StructAsset" modifier="Ichthyostega" modified="201011060513" created="200709221353" tags="def classes img" changecount="20">
<div title="StructAsset" modifier="Ichthyostega" modified="201105280022" created="200709221353" tags="def classes img" changecount="22">
<pre>Structural Assets are intended mainly for internal use, but the user should be able to see and query them. They are not &quot;loaded&quot; or &quot;created&quot; directly, rather they //leap into existence // by creating or extending some other structures in the session, hence the name. Some of the structural Asset parametrisation can be modified to exert control on some aspects of the Proc Layer's (default) behaviour.
* [[Processing Patterns|ProcPatt]] encode information how to set up some parts of the render network to be created automatically: for example, when building a clip, we use the processing pattern how to decode and pre-process the actual media data.
* [[Tracks|Track]] are one of the dimensions used for organizing the session data. They serve as an Anchor to attach parametrisation of output pipe, overlay mode etc. By [[placing|Placement]] to a track, a media object inherits placement properties from this track.
* [[Pipes|Pipe]] form &amp;mdash; at least as visible to the user &amp;mdash; the basic building block of the render network, because the latter appears to be a collection of interconnected processing pipelines. (this is the //outward view; // in fact the render network consists of [[nodes|ProcNode]] and is [[built|Builder]] from the Pipes, clips, effects...)[&gt;img[Asset Classess|uml/fig131205.png]]
* [[Sequence]] assets act as a façade to the fundamental compound building blocks within the model, a sequence being a collection of clips placed onto a tree of tracks. Sequences, as well as the top-level tracks enclosed will be created automatically on demand. Of course you may create them deliberately. Without binding it to a timeline or meta-clip, a sequence remains invisible.
* [[Timeline]] assets are the top level structures to access the model; similar to the sequences, they act as façade to relevant parts of the model (BindingMO) and will be created on demand, alongside with a new session if necessary, bound to the new timeline. Likewise, they can be referred by their name-ID
* [[Viewer|ViewerAsset]] assets correspond to the available viewer elements in the GUI. By [[connecting to a viewer|ViewConnection]], session elements derive a concrete (physical) output and gain the ability to be [[played|PlayService]].