diff --git a/doc/devel/uml/class128645.html b/doc/devel/uml/class128645.html index a00dfada6..b87a32e2c 100644 --- a/doc/devel/uml/class128645.html +++ b/doc/devel/uml/class128645.html @@ -16,7 +16,7 @@ -

Declaration :

Directly inherited by : Allocation DirectPlacement ExplicitPlacement RelativePlacement

+

Declaration :

Directly inherited by : Allocation ExplicitPlacement FixedPlacement RelativePlacement

Artifact : placement

Relation subject (<association>)

Declaration :

diff --git a/doc/devel/uml/class129285.html b/doc/devel/uml/class129285.html index 9278b48ae..0091fcd2d 100644 --- a/doc/devel/uml/class129285.html +++ b/doc/devel/uml/class129285.html @@ -4,19 +4,19 @@ -Class DirectPlacement +Class FixedPlacement -
Class DirectPlacement
+
Class FixedPlacement

-

Declaration :

Artifact : fixedplacement

+

Declaration :

Artifact : fixedplacement

All public operations : resolve

diff --git a/doc/devel/uml/class129797.html b/doc/devel/uml/class129797.html index 7af02f3ea..a68f76325 100644 --- a/doc/devel/uml/class129797.html +++ b/doc/devel/uml/class129797.html @@ -16,7 +16,7 @@ -

Declaration :

Directly inherited by : DirectPlacement

+

Declaration :

Directly inherited by : FixedPlacement

Artifact : explicitplacement

Attribut time
diff --git a/doc/devel/uml/class139653.html b/doc/devel/uml/class139653.html index d23ad4ec8..cfdc8392a 100644 --- a/doc/devel/uml/class139653.html +++ b/doc/devel/uml/class139653.html @@ -20,7 +20,8 @@

Primary Interface for all editing tasks.
The session contains defaults, all the assets being edited, and a set of EDL with the individual MObjects to be manipulated and rendered.

Artifact : session

Operation currEDL

Declaration :

  • Uml : + currEDL() : EDL
  • C++ : public: EDL currEDL ()

The EDL currently in focus. In most cases, Session and EDL are almost the same, just EDL emphasizes the collection aspect. But generally (for larger editing projects) one Session can contain several EDLs, which may even be nested. At any given time, only one of these EDLs has focus and recieves the editing commands.

-
Operation getFixture

Declaration :

  • Uml : + getFixture() : Fixture&
  • C++ : public: Fixture& getFixture ()

While the session can be comprised of several EDLs,
there is only one Fixture, which represents the actual
configuration of all Objects to be rendered

+
Operation getFixture

Declaration :

  • Uml : + getFixture() : Fixture&
  • C++ : public: Fixture& getFixture ()

While the session can be comprised of several EDLs,
there is only one Fixture, which represents the actual
configuration of all Objects to be rendered

+
Relation current (<unidirectional association>)

Declaration :

Standard access path to get at the current session via the Session Manager, which acts as a "PImpl" smart pointer

All public operations : currEDL , getFixture

diff --git a/doc/devel/uml/class139781.html b/doc/devel/uml/class139781.html new file mode 100644 index 000000000..60bd83878 --- /dev/null +++ b/doc/devel/uml/class139781.html @@ -0,0 +1,27 @@ + + + + + + +Class SessManager + + + + + +
Class SessManager
+

+ + + + +

Declaration :

Artifact : sessmanager

+ +
Operation clear

Declaration :

  • Uml : + clear() : void
  • C++ : public: void clear ()

clear current session contents
without resetting overall session config.
Afterwards, the session will contain only one
empty EDL, while all Assets are retained.

+
Operation reset

Declaration :

  • Uml : + reset() : void
  • C++ : public: void reset ()

reset all session config and
start with a pristine default session.

+
Operation load

Declaration :

  • Uml : + load() : void
  • C++ : public: void load ()

replace the current session by a new
session loaded from serialized state.

+
Operation save

Declaration :

  • Uml : + save() : void
  • C++ : public: void save ()

create a complete, serialized representation
of the current session config and contents.
@todo how to serialize, prameters, return value?

+

All public operations : clear , load , reset , save

+ + diff --git a/doc/devel/uml/classes.html b/doc/devel/uml/classes.html index f3008a1a0..39a63ddb4 100644 --- a/doc/devel/uml/classes.html +++ b/doc/devel/uml/classes.html @@ -42,7 +42,6 @@ ControllerFacadeboundaryProvides unified access to the Proc-Subsystem Controller. Especially, this Facade class provides the functions to get a render engine to carry out actual renderings. Datasetmeta asset describing a collection of control data DBImplementation of the registry holding all Asset instances known to the Asset Manager subsystem. As of 8/2007 implemented by a hashtable. -DirectPlacement DoAttach DoRecurse EDL @@ -60,6 +59,7 @@ FileMapCache FileProviderThis is the Factory for Files, whenever something wants to use some file (or temporary storage), This Factory will hand out some smart/shared pointer to a File object which will be used to retrieve Frames. FileReference +FixedPlacement Fixture FrameFrames 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. FrameinterfaceTODO: how to relate to Cehteh's Frame entity in the Backend?
The latter is the fundamental Frame entity, wheras this Object rather represents a buffer set containing frame date @@ -107,6 +107,7 @@ SegmentationToolTool 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. SessionPrimary Interface for all editing tasks.
The session contains defaults, all the assets being edited, and a set of EDL with the individual MObjects to be manipulated and rendered. SessionImplImplementation class for the Session interface +SessManager SimpleClipElementary clip consisting of only one media stream SmartPointerauxiliary SourceSource Node: represents a media source to pull data from. diff --git a/doc/devel/uml/classes_list.html b/doc/devel/uml/classes_list.html index a97c2af5b..44865f171 100644 --- a/doc/devel/uml/classes_list.html +++ b/doc/devel/uml/classes_list.html @@ -43,7 +43,6 @@ ControllerFacade
Dataset
DB
-DirectPlacement
DoAttach
DoRecurse
EDL
@@ -61,6 +60,7 @@ FileMapCache
FileProvider
FileReference
+FixedPlacement
Fixture
Frame
Frame
@@ -108,6 +108,7 @@ SegmentationTool
Session
SessionImpl
+SessManager
SimpleClip
SmartPointer
Source
diff --git a/doc/devel/uml/fig128133.png b/doc/devel/uml/fig128133.png index 68a34623f..70b2dd611 100644 Binary files a/doc/devel/uml/fig128133.png and b/doc/devel/uml/fig128133.png differ diff --git a/doc/devel/uml/index.html b/doc/devel/uml/index.html index fdd9b2654..95d9a7166 100644 --- a/doc/devel/uml/index.html +++ b/doc/devel/uml/index.html @@ -112,7 +112,7 @@ Documentation
Artifact Cinelerra3

Depends on common

Depends on gui

Depends on proc

Depends on backend

the main executable to be built

-

executable associated with : main, conmanager, clip, meta, fixedplacement, relativeplacement, vrender, mobject, source, frame, placement, sessionimpl, builderfacade, controllerfacade, processor, pluginadapter, effect, tool, segmentationtool, aframe, assembler, trafo, explicitplacement, auto, glrender, link, parameter, renderengine, allocation, vframe, toolfactory, arender, renderstate, label, glbuf, procnode, stateproxy, hub, buildable, abstractmo, nodecreatertool, projector, interpolator, edl, fixture, glpipe, exitnode, pathmanager, track, paramprovider, mask

+

executable associated with : exitnode, pathmanager, track, paramprovider, mask, main, conmanager, clip, meta, fixedplacement, relativeplacement, vrender, mobject, source, frame, placement, sessionimpl, builderfacade, controllerfacade, processor, pluginadapter, effect, tool, segmentationtool, aframe, assembler, trafo, explicitplacement, auto, glrender, link, parameter, renderengine, allocation, vframe, toolfactory, arender, renderstate, label, glbuf, procnode, stateproxy, hub, buildable, abstractmo, nodecreatertool, projector, interpolator, edl, fixture, glpipe

Artifact main

Artifact source

@@ -334,6 +334,10 @@ Documentation
Artifact sessionimpl

holds the complete session data to be edited by the user

Artifact source associated with : SessionImpl

+ +
Artifact sessmanager
+

global session access and lifecycle

+

Artifact source associated with : SessManager

Artifact edl

the (high level) Edit Decision List within the current Session

@@ -376,7 +380,7 @@ Documentation

Artifact source associated with : Meta

Artifact fixedplacement
-

Artifact source associated with : DirectPlacement

+

Artifact source associated with : FixedPlacement

Artifact relativeplacement

Placement implemnetaion providing various ways of attaching a MObject to another one

@@ -614,6 +618,7 @@ Documentation

Session structure



Class Session
+
Class EDL
Class Fixture
Class Segment
@@ -627,7 +632,7 @@ Documentation
Class Effect
Class Meta
-
+
Class Label
diff --git a/doc/devel/uml/index_67.html b/doc/devel/uml/index_67.html index b81c28c53..dc1b39579 100644 --- a/doc/devel/uml/index_67.html +++ b/doc/devel/uml/index_67.html @@ -27,24 +27,25 @@ checked_outrelationthis list keeps all mappings which are in use, and thus prevents them from Cache aging Cinelerra3artifactthe main executable to be built cinelerra3package +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance class instanceclass instance class instanceclass instance class instanceclass instance -class instanceclass instance class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance class instanceclass instance -class instanceclass instance class instanceclass instance class instanceclass instance -class instanceclass instance -class instanceclass instance +class instanceclass instance +clearoperationclear current session contents
without resetting overall session config.
Afterwards, the session will contain only one
empty EDL, while all Assets are retained.
Clipclassbookkeeping (asset) view of a media clip. clipartifacta Media Clip clipartifactbookkeeping (asset) view of a media clip. @@ -75,8 +76,8 @@ connectopaque activity action Constraintclass Controllercomponent -Controllerpackage controllerpackagesourcecode package

The Processing and Render Controller,
located within the MObject Subsystem +Controllerpackage Controller Entitiesclass diagram Controller Workingsclass view ControllerFacadeclassProvides unified access to the Proc-Subsystem Controller. Especially, this Facade class provides the functions to get a render engine to carry out actual renderings. @@ -85,6 +86,7 @@ create ProcNodeopaque activity action createClipoperationcreate a (possibly compound) Clip refering to this media, ready to be added to the EDL. currEDLoperationThe EDL currently in focus. In most cases, Session and EDL are almost the same, just EDL emphasizes the collection aspect. But generally (for larger editing projects) one Session can contain several EDLs, which may even be nested. At any given time, only one of these EDLs has focus and recieves the editing commands. +currentrelationStandard access path to get at the current session via the Session Manager, which acts as a "PImpl" smart pointer currFramerelation diff --git a/doc/devel/uml/index_68.html b/doc/devel/uml/index_68.html index 75c620c08..cdeda3e68 100644 --- a/doc/devel/uml/index_68.html +++ b/doc/devel/uml/index_68.html @@ -31,7 +31,6 @@ determine Render Paramsexpansion region determine Render Paramsopaque activity action devnullclass instance -DirectPlacementclass Dispatchercomponent DoAttachclass DoRecurseclass diff --git a/doc/devel/uml/index_70.html b/doc/devel/uml/index_70.html index 242d89493..94fe56f77 100644 --- a/doc/devel/uml/index_70.html +++ b/doc/devel/uml/index_70.html @@ -30,6 +30,7 @@ FileReferenceclass filesrelation fixedplacementartifact +FixedPlacementclass Fixtureactivity object fixtureartifactthe (low level) representation of the EDL with concrete placement data Fixturecomponent diff --git a/doc/devel/uml/index_73.html b/doc/devel/uml/index_73.html index 496421c53..0f82f3fd9 100644 --- a/doc/devel/uml/index_73.html +++ b/doc/devel/uml/index_73.html @@ -20,8 +20,8 @@ idattributeAsset primary key. In Memory Databaseclass diagram inFixtureactivity action pin -inputclass instance inputclass instance +inputclass instance inputclass instance instanceoperation instructionsrelation diff --git a/doc/devel/uml/index_76.html b/doc/devel/uml/index_76.html index 9403a79d7..8fa1f472c 100644 --- a/doc/devel/uml/index_76.html +++ b/doc/devel/uml/index_76.html @@ -23,6 +23,7 @@ lengthattributeduration (span) of this timeline segment. Linkclass linkartifactforwarding, adapting or connecting ProcNode +loadoperationreplace the current session by a new
session loaded from serialized state. load Mediause case Lockclass Lockclass diff --git a/doc/devel/uml/index_77.html b/doc/devel/uml/index_77.html index 997d703b9..d83661f51 100644 --- a/doc/devel/uml/index_77.html +++ b/doc/devel/uml/index_77.html @@ -32,8 +32,8 @@ MediaFactoryclassspecialized Asset Factory for configuring (new) media asset instances based on existing media files on disk; can create placeholder assets as well merge activity nodemerge activity node Metaclasskey abstraction: metadata and organisational asset -metaartifactabstract base class of all MObjects representing meta data or processing instructions metaartifactkey abstraction: metadata and organisational asset +metaartifactabstract base class of all MObjects representing meta data or processing instructions Metaclass mobjectartifactKey Abstraction: A Media Object in the Session mobjectpackagesourcecode package

MObject Subsystem
including the Session (EDL), Builder and Processing Controller diff --git a/doc/devel/uml/index_79.html b/doc/devel/uml/index_79.html index b34c12000..863a630ae 100644 --- a/doc/devel/uml/index_79.html +++ b/doc/devel/uml/index_79.html @@ -19,9 +19,9 @@ NameKindDescription offsetattributeOffset the actual position by this (time) value relative to the anchor point. TODO: Representation? orgattributeorigin 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". -ouputclass instance ouputclass instance ouputclass instance +ouputclass instance OutPortclassstructural asset corresponding to some port generating media output outportartifactstructural asset corresponding to some port generating media output outputrelation diff --git a/doc/devel/uml/index_82.html b/doc/devel/uml/index_82.html index db5b9dc39..40cc37dd5 100644 --- a/doc/devel/uml/index_82.html +++ b/doc/devel/uml/index_82.html @@ -36,6 +36,7 @@ RenderStateclassEncapsulates the logic used to get a "current render process" in accordance to the currentyl applicable controller settings. The provided StateProxy serves to hold any mutalbe state used in the render process, so the rest of the render engine can be stateless. renderstateartifactrenderengine state manager reprattributehuman readable representation of the condition characterizing this allocaton, e.g. "t >= 10" +resetoperationreset all session config and
start with a pristine default session. resolveoperationcreate an actual (explicit) placement while trying to satisfy the network of adjacent objects and placements. rootCauseoperationIf this exception was caused by a chain of further exceptions,
return the first one registered in this throw sequence.
This works only, if every exceptions thrown as a consequence
of another exception is propperly constructed by passing
the original exception to the constructor diff --git a/doc/devel/uml/index_83.html b/doc/devel/uml/index_83.html index c3a049c32..847982657 100644 --- a/doc/devel/uml/index_83.html +++ b/doc/devel/uml/index_83.html @@ -18,6 +18,7 @@ + @@ -36,6 +37,8 @@ + + @@ -43,8 +46,8 @@ - + diff --git a/doc/devel/uml/index_84.html b/doc/devel/uml/index_84.html index 686d34aef..98fe8201c 100644 --- a/doc/devel/uml/index_84.html +++ b/doc/devel/uml/index_84.html @@ -32,20 +32,20 @@ - + + - - +
NameKindDescription
SAMETIMEattributeplace subject at the sime time as the anchor
saveoperationcreate a complete, serialized representation
of the current session config and contents.
@todo how to serialize, prameters, return value?
Schedulerclass
segmentartifactSegment of the Timeline.
Used at the moment (7/07) for partitioning the timeline/fixture into segments
to be rendered by a specialized render node network for each, without the need
to change any connections within a given segment.
Note this concept may be superfluos alltogether; is a draft and the real
use still needs to be worked out...
Segmentclass
Session structureclass diagram
sessionimplartifactholds the complete session data to be edited by the user
SessionImplclassImplementation class for the Session interface
sessmanagerartifactglobal session access and lifecycle
SessManagerclass
setup Build Paramsopaque activity action
setup StateProxyopaque activity action
shortDescattributeuser visible Name-ID. To be localized.
SimpleClipclassElementary clip consisting of only one media stream
SmartPointerclass
SmartPointersclass view
sourcerelationmedia source of this clip
sourcerelationthe media source this clip referes to
sourcerelationmedia source of this clip
SourceclassSource Node: represents a media source to pull data from.
sourceartifactRepresentation of a Media source
Source Overviewdeployment diagram
toolfactoryartifactsupply of Tool implementations for the Builder
Trackclassstructural asset holding the configuration of a track in the EDL
trackattribute
trackartifactdescriptor for one track in the Session
trackartifactstructural asset holding the configuration of a track in the EDL
trackartifactdescriptor for one track in the Session
Trackclass
tracksrelationelementary media assets comprising this compound
tracksrelation
tracksrelation
Trafoclass
trafoartifacttransforming processing Node
treatoperation
treatoperation
treatoperation
treatoperation
treatoperation
treatoperation
treatoperation
treatoperation
treatoperation
treatoperationThis operation is to be overloaded for the specific MObject subclasses to be treated.
diff --git a/doc/devel/uml/index_86.html b/doc/devel/uml/index_86.html index ce992fef4..4eb1f6d88 100644 --- a/doc/devel/uml/index_86.html +++ b/doc/devel/uml/index_86.html @@ -25,18 +25,18 @@ vid_Aclass instance vid_Aclass instance vid_aclass instance -vid_Aclass instance vid_aclass instance -videoclass instance +vid_Aclass instance videoclass instance +videoclass instance videoclass instance videoclass instance -video1class instance +video1class instance video1class instance video1class instance -video1class instance video1class instance -video1class instance +video1class instance +video1class instance VRenderclassRepresentation of a Video render process. (Encapsulates the video buffers for the actual calculations) vrenderartifactRepresentation of a Video render process diff --git a/doc/devel/uml/public_operations.html b/doc/devel/uml/public_operations.html index ed11e213b..3143920e2 100644 --- a/doc/devel/uml/public_operations.html +++ b/doc/devel/uml/public_operations.html @@ -21,6 +21,7 @@ buildAssembler buildEngineBuilderFacadeMain Operation of the Builder: create a render engine for a given part of the timeline buildProcessorPathManager +clearSessManagerclear current session contents
without resetting overall session config.
Afterwards, the session will contain only one
empty EDL, while all Assets are retained.
configureToolFactory createClipMediacreate a (possibly compound) Clip refering to this media, ready to be added to the EDL. currEDLSessionThe EDL currently in focus. In most cases, Session and EDL are almost the same, just EDL emphasizes the collection aspect. But generally (for larger editing projects) one Session can contain several EDLs, which may even be nested. At any given time, only one of these EDLs has focus and recieves the editing commands. @@ -43,17 +44,20 @@ howtoProcMedia@return descriptor how to build a render pipeline corresponding to this media isActiveAssetweather this asset is swithced on and consequently included in the fixture and participates in rendering knownAssetManager@return true if the given id is registered in the internal asset DB +loadSessManagerreplace the current session by a new
session loaded from serialized state. playRenderEngineTODO: will probably be handled differently (see Cehteh) removeAssetManagerremove the given asset <i>together with all its dependants</i> from the internal DB +resetSessManagerreset all session config and
start with a pristine default session. resolvePlacementcreate an actual (explicit) placement while trying to satisfy the network of adjacent objects and placements. rootCauseErrorIf this exception was caused by a chain of further exceptions,
return the first one registered in this throw sequence.
This works only, if every exceptions thrown as a consequence
of another exception is propperly constructed by passing
the original exception to the constructor +saveSessManagercreate a complete, serialized representation
of the current session config and contents.
@todo how to serialize, prameters, return value? treatNodeCreatorTool +treatNodeCreatorTool treatNodeCreatorTool treatNodeCreatorTool -treatNodeCreatorTool +treatSegmentationTool treatSegmentationTool treatSegmentationTool -treatSegmentationTool treatToolThis operation is to be overloaded for the specific MObject subclasses to be treated. useFileFileProviderAnnounces that the application intends to use this file with mode (READ|WRITE|READWRITE) useTemporaryStorageFileProviderProvides a pool for interminate frames diff --git a/doc/devel/uml/public_properties.html b/doc/devel/uml/public_properties.html index d1d591657..6790afee8 100644 --- a/doc/devel/uml/public_properties.html +++ b/doc/devel/uml/public_properties.html @@ -18,6 +18,7 @@ + diff --git a/uml/cinelerra3/128133.diagram b/uml/cinelerra3/128133.diagram index e37cd05e9..c0272f7ed 100644 --- a/uml/cinelerra3/128133.diagram +++ b/uml/cinelerra3/128133.diagram @@ -44,17 +44,17 @@ classcanvas 131973 class_ref 129157 // Meta 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 389 368 2000 end -classcanvas 132229 class_ref 129285 // DirectPlacement +classcanvas 132229 class_ref 129285 // FixedPlacement 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 664 373 2000 + xyz 665 373 2000 end classcanvas 132869 class_ref 129413 // RelativePlacement 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 471 346 2000 + xyz 479 276 2000 end classcanvas 134149 class_ref 129541 // Allocation 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 590 359 2000 + xyz 590 373 2000 end classcanvas 134405 class_ref 129669 // Label 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 @@ -98,6 +98,10 @@ classcanvas 139269 class_ref 139653 // Session 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 458 2000 end +classcanvas 139653 class_ref 139781 // SessManager + 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 101 301 2000 + end relationcanvas 128389 relation_ref 128005 // from ref 128005 z 1999 to ref 128133 role_a_pos 201 603 3000 no_role_b @@ -120,8 +124,8 @@ relationcanvas 129157 relation_ref 128389 // multiplicity_a_pos 314 687 3000 no_multiplicity_b relationcanvas 129797 relation_ref 128645 // from ref 129413 z 1999 stereotype "<>" xyz 471 143 3000 to ref 129669 - role_a_pos 513 144 3000 role_b_pos 401 144 3000 - multiplicity_a_pos 547 177 3000 multiplicity_b_pos 401 177 3000 + role_a_pos 513 144 3000 role_b_pos 404 145 3000 + multiplicity_a_pos 547 177 3000 multiplicity_b_pos 393 145 3000 relationcanvas 130181 relation_ref 129029 // geometry HV from ref 128261 z 1999 stereotype "<>" xyz 334 914 3000 to point 339 931 @@ -157,16 +161,17 @@ relationcanvas 132485 relation_ref 129797 // no_role_a no_role_b no_multiplicity_a no_multiplicity_b relationcanvas 132997 relation_ref 129925 // - from ref 132869 z 1999 to point 486 247 + from ref 132869 z 1999 to point 529 240 line 133893 z 1999 to ref 129413 - role_a_pos 401 172 3000 no_role_b - multiplicity_a_pos 401 205 3000 multiplicity_b_pos 495 321 3000 + role_a_pos 439 215 3000 no_role_b + multiplicity_a_pos 401 197 3000 multiplicity_b_pos 515 251 3000 relationcanvas 134533 relation_ref 130309 // from ref 134405 z 1999 to ref 131973 no_role_a no_role_b no_multiplicity_a no_multiplicity_b relationcanvas 135173 relation_ref 130565 // - from ref 134149 z 1999 to ref 129669 + from ref 134149 z 1999 to point 610 312 + line 140037 z 1999 to ref 129669 no_role_a no_role_b no_multiplicity_a no_multiplicity_b relationcanvas 135301 relation_ref 130693 // @@ -218,4 +223,10 @@ relationcanvas 139525 relation_ref 142725 // from ref 128005 z 1999 stereotype "<>" xyz 57 558 3000 to ref 139269 no_role_a no_role_b no_multiplicity_a no_multiplicity_b +relationcanvas 139781 relation_ref 142853 // + geometry HV + from ref 139269 z 1999 to point 140 494 + line 139909 z 1999 to ref 139653 + role_a_pos 152 426 3000 no_role_b + multiplicity_a_pos 126 426 3000 no_multiplicity_b end diff --git a/uml/cinelerra3/128261 b/uml/cinelerra3/128261 index 528bee399..48dbcaf73 100644 --- a/uml/cinelerra3/128261 +++ b/uml/cinelerra3/128261 @@ -1,6 +1,6 @@ format 40 "MObject" // ProcessingLayer::MObject - revision 21 + revision 22 modified_by 5 "hiv" // class settings //class diagram settings @@ -94,6 +94,16 @@ ${class}::${name} ${(}${)}${const}${volatile} ${throw}${staticnl} there is only one Fixture, which represents the actual configuration of all Objects to be rendered" end + + classrelation 144773 // current () + relation 142853 ---> + a role_name "current" multiplicity "1" class_relation public + comment "Standard access path to get at the current session via the Session Manager, which acts as a \"PImpl\" smart pointer" + cpp default " ${comment}${static}${mutable}${volatile}${const}${type}& ${name}${value}; +" + classrelation_ref 144773 // current () + b multiplicity "" parent class_ref 139781 // SessManager + end end class 128005 "SessionImpl" @@ -136,6 +146,90 @@ ${inlines} end end + class 139781 "SessManager" + visibility package + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + idl_decl "" + explicit_switch_type "" + + operation 133765 "clear" + public explicit_return_type "void" + nparams 0 + cpp_decl " ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${)}${const}${volatile} ${throw}${abstract};" + cpp_def "${comment}${inline}${type} +${class}::${name} ${(}${)}${const}${volatile} ${throw}${staticnl} +{ + ${body} +} + +" + + + comment "clear current session contents +without resetting overall session config. +Afterwards, the session will contain only one +empty EDL, while all Assets are retained. +" + end + + operation 133893 "reset" + public explicit_return_type "void" + nparams 0 + cpp_decl " ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${)}${const}${volatile} ${throw}${abstract};" + cpp_def "${comment}${inline}${type} +${class}::${name} ${(}${)}${const}${volatile} ${throw}${staticnl} +{ + ${body} +} + +" + + + comment "reset all session config and +start with a pristine default session." + end + + operation 134021 "load" + public explicit_return_type "void" + nparams 0 + cpp_decl " ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${)}${const}${volatile} ${throw}${abstract};" + cpp_def "${comment}${inline}${type} +${class}::${name} ${(}${)}${const}${volatile} ${throw}${staticnl} +{ + ${body} +} + +" + + + comment "replace the current session by a new +session loaded from serialized state." + end + + operation 134149 "save" + public explicit_return_type "void" + nparams 0 + cpp_decl " ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${)}${const}${volatile} ${throw}${abstract};" + cpp_def "${comment}${inline}${type} +${class}::${name} ${(}${)}${const}${volatile} ${throw}${staticnl} +{ + ${body} +} + +" + + + comment "create a complete, serialized representation +of the current session config and contents. +@todo how to serialize, prameters, return value?" + end + end + class 128133 "EDL" visibility package cpp_decl "${comment}${template}class ${name}${inherit} @@ -585,7 +679,7 @@ ${inlines} end end - class 129285 "DirectPlacement" + class 129285 "FixedPlacement" visibility package cpp_decl "${comment}${template}class ${name}${inherit} { diff --git a/uml/cinelerra3/130437 b/uml/cinelerra3/130437 index e5790e68f..514cc634e 100644 --- a/uml/cinelerra3/130437 +++ b/uml/cinelerra3/130437 @@ -1,6 +1,6 @@ format 40 "session" // design::codegen::proc::mobject::session - revision 8 + revision 9 modified_by 5 "hiv" // class settings //class diagram settings @@ -77,6 +77,45 @@ ${namespace_end}" comment "holds the complete session data to be edited by the user" end + artifact 138885 "sessmanager" + stereotype "source" + cpp_h "/* + ${NAME}.hpp - ${description} +@{CopyrightClaim}@{GPLHeader} +*/ + + +#ifndef ${NAMESPACE}_${NAME}_H +#define ${NAMESPACE}_${NAME}_H + +${includes} +${declarations} + + +${namespace_start} + +${definition} +${namespace_end} +#endif +" + cpp_src "/* + ${Name} - ${description} +@{CopyrightClaim}@{GPLHeader} +* *****************************************************/ + + +${includes} +${namespace_start} + + +${members} +${namespace_end}" + associated_classes + class_ref 139781 // SessManager + end + comment "global session access and lifecycle" + end + artifact 128645 "edl" stereotype "source" cpp_h "/* @@ -506,7 +545,7 @@ ${namespace_start} ${members} ${namespace_end}" associated_classes - class_ref 129285 // DirectPlacement + class_ref 129285 // FixedPlacement end end diff --git a/uml/cinelerra3/5.session b/uml/cinelerra3/5.session index dd61f6409..6811c0673 100644 --- a/uml/cinelerra3/5.session +++ b/uml/cinelerra3/5.session @@ -3,7 +3,7 @@ diagrams classdiagram_ref 130309 // Asset Kinds 860 633 100 4 0 0 active classdiagram_ref 128133 // Session structure - 860 633 100 4 581 0 + 860 633 100 4 120 0 classdiagram_ref 130437 // Media-Asset Relations 860 633 100 4 0 0 classdiagram_ref 128389 // Render Entities @@ -16,7 +16,7 @@ open package_ref 128005 // design classview_ref 128901 // Assets - classview_ref 128005 // Session + class_ref 139781 // SessManager classview_ref 129029 // Interface end end diff --git a/uml/cinelerra3/cinelerra3.prj b/uml/cinelerra3/cinelerra3.prj index 26a25ad00..48d706651 100644 --- a/uml/cinelerra3/cinelerra3.prj +++ b/uml/cinelerra3/cinelerra3.prj @@ -1,6 +1,6 @@ format 40 "cinelerra3" - revision 30 + revision 31 modified_by 5 "hiv" cpp_root_dir "../../src/" diff --git a/wiki/renderengine.html b/wiki/renderengine.html index 90d649411..294dda752 100644 --- a/wiki/renderengine.html +++ b/wiki/renderengine.html @@ -741,6 +741,13 @@ This is an very important external Interface, because it links together all thre +
+
The question is where to put all the state-like information [[associated with the current session|SessionOverview]]. Because this is certainly "global", but may depend on the session or need to be configured differently when loading another session. At the moment (9/07) Ichthyo considers the following solution:
+* represent all configuration as [[Asset]]s
+* find a way {{red{TODO}}} how to reload the contents of the [[AssetManager]].
+* completely hide the Session object behind a ''~PImpl'' smart pointer, so the session object can be switched when reloading.
+* the [[Fixture]] acts as isolation layer, and all objects refered from the Fixture are refcounting smart pointers. So, even when the session gets switched, the old objects remain valid as long as needed.
+
RenderEngine
 
@@ -755,18 +762,12 @@ 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 "internal-multi" 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.
-
+
''EDL'' is a short-hand for __E__dit __D__ecision __L__ist. The use of this term can be confusing; for the usual meaning see the definition in [[Wikipedia|http://en.wikipedia.org/wiki/Edit_decision_list]]
 
 Cinelerra uses this term in a related manner but with a somewhat shifted focus (and we just stick to this usage here): In Cinelerra the EDL is comprised of the whole set of clips and other media objects parametrized and placed onto the tracks by the user. It is the result of the user's //editing efforts.//
 
-In this usage, the EDL in most cases will be almost synonymous to the ''Session'', just the latter emphasizes more the state aspect, as it can be thought as the current EDL contents contained in a file or data structure together with additional Option values and settings for the GUI. The Session is what you save and load, while the EDL rather denotes a structured collection of Objects placed in time.
-
-!!!larger projects
-For larger editing projects the simple structure of a session containing "the" timeline is not sufficient. Rather, we have several timelines, e.g. one for each scene. Or we could have several layered or nested timelines (compositional work, multimedia productions). To support these cases without making the default case more complicated, Cinelerra-3 introduces a //focus// for selecting the //current EDL,// which will receive all editing operations.
-
-!!!the definitive state
-With all the structural complexities possible within such a session, we need an isolation layer to provide __one__ definitive state where all configuration has been made explicit. Thus the session manages one special object list, the [[Fixture]], which can be seen as all currently active object placed onto a single timeline.
+In this usage, the EDL in most cases will be almost synonymous to the [[Session|SessionOverview]], just the latter emphasizes more the state aspect, as it can be thought as the current EDL contents contained in a file or data structure together with additional Option values and settings for the GUI. The Session is what you save and load, while the EDL rather denotes a structured collection of Objects placed in time.
 
@@ -986,7 +987,7 @@ For this Cinelerra3 design, we could consider making GOP just another raw media &rarr;see in [[Wikipedia|http://en.wikipedia.org/wiki/Group_of_pictures]]
-
+
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 Cinelerra Renderengine, the Builder and the related parts.
 
 * [[Packages, Interfaces and Namespaces|InterfaceNamespaces]]
@@ -995,6 +996,7 @@ For this Cinelerra3 design, we could consider making GOP just another raw media
 * [[Creating new Objects|ObjectCreation]]
 * [[Multichannel Media|MultichannelMedia]]
 * [[Editing Operations|EditingOperations]]
+* [[Handling of the current Session|CurrentSession]]
 
 
@@ -2394,6 +2396,16 @@ The design of Cinelerra 2 basically follows this design, but __fails because of * see also the [[Entities involved in Rendering|RenderEntities]]
+
+
The Session (sometimes also called //Project//) contains all informations and objects to be edited by the User. It can be saved and loaded. The individual Objects within the Session, i.e. Clips, Media, Effects, are contained in one (or several) collections within the Session, which we call [[EDL (Edit Decision List)|EDL]]. Moreover, the sesion contains references to all the Media files used, and it contains various default or user defined configuration. At any given time, there is //only one current session// opened within the application.
+
+!!!larger projects
+For larger editing projects the simple structure of a session containing "the" timeline is not sufficient. Rather, we have several timelines, e.g. one for each scene. Or we could have several layered or nested timelines (compositional work, multimedia productions). To support these cases without making the default case more complicated, Cinelerra-3 introduces a //focus// for selecting the //current EDL,// which will receive all editing operations.
+
+!!!the definitive state
+With all the structural complexities possible within such a session, we need an isolation layer to provide __one__ definitive state where all configuration has been made explicit. Thus the session manages one special object list, the [[Fixture]], which can be seen as all currently active object placed onto a single timeline.
+
+
<<search>><<closeAll>><<permaview>><<newTiddler>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options ยป" "Change TiddlyWiki advanced options">>
PropertyClassDescription
categoryAssetprimary tree like classification of the asset
currentSessionStandard access path to get at the current session via the Session Manager, which acts as a "PImpl" smart pointer
idAssetAsset primary key.
nameAssetelement ID, comprehensible but sanitized. The tuple (category, name, org) is unique.
nodesDoAttach