From 092ea07b762751d0f81a117d1b1eb10c8d3b1354 Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Mon, 22 Feb 2010 03:52:52 +0100 Subject: [PATCH] kill "the EDL" --- src/proc/asset/clip.cpp | 2 +- src/proc/asset/media.cpp | 4 +- src/proc/asset/media.hpp | 2 +- src/proc/asset/struct.hpp | 8 +- src/proc/asset/track.cpp | 2 +- src/proc/asset/track.hpp | 6 +- src/proc/common.hpp | 2 +- src/proc/mobject/builder/buildertool.hpp | 2 +- src/proc/mobject/explicitplacement.hpp | 4 +- src/proc/mobject/mobject.hpp | 4 +- src/proc/mobject/placement.hpp | 6 +- src/proc/mobject/session.hpp | 6 +- src/proc/mobject/session/clip.hpp | 2 +- src/proc/mobject/session/edl.cpp | 90 ------------------- src/proc/mobject/session/edl.hpp | 76 ---------------- src/proc/mobject/session/effect.cpp | 2 +- src/proc/mobject/session/effect.hpp | 2 +- src/proc/mobject/session/fixedlocation.hpp | 2 +- src/proc/mobject/session/fixture.cpp | 62 ++++++------- src/proc/mobject/session/fixture.hpp | 73 +++++++-------- src/proc/mobject/session/locatingpin.hpp | 2 +- src/proc/mobject/session/meta.hpp | 2 +- src/proc/mobject/session/mobjectfactory.cpp | 17 ++-- src/proc/mobject/session/session-impl.cpp | 25 ++---- src/proc/mobject/session/session-impl.hpp | 5 -- src/proc/mobject/session/track.cpp | 2 +- src/proc/mobject/session/track.hpp | 10 +-- tests/43session.tests | 2 +- tests/components/proc/asset/testasset.cpp | 2 +- .../proc/mobject/builder/buildsegmenttest.cpp | 4 +- .../mobject/controller/rendersegmenttest.cpp | 8 +- .../proc/mobject/placement-basic-test.cpp | 1 - .../proc/mobject/session/addcliptest.cpp | 7 +- .../proc/mobject/session/deletecliptest.cpp | 15 ++-- .../mobject/session/rebuildfixturetest.cpp | 7 +- .../session/session-structure-test.cpp | 82 +++++++++++++++++ .../mobject/session/sessionmanagertest.cpp | 2 +- .../mobject/session/sessionstructuretest.cpp | 86 ------------------ .../proc/mobject/session/testclip.cpp | 2 +- .../proc/mobject/session/testclip.hpp | 4 +- .../proc/mobject/session/testroot.hpp | 2 +- tests/lib/visitingtoolconcept.cpp | 6 +- 42 files changed, 228 insertions(+), 422 deletions(-) delete mode 100644 src/proc/mobject/session/edl.cpp delete mode 100644 src/proc/mobject/session/edl.hpp create mode 100644 tests/components/proc/mobject/session/session-structure-test.cpp delete mode 100644 tests/components/proc/mobject/session/sessionstructuretest.cpp diff --git a/src/proc/asset/clip.cpp b/src/proc/asset/clip.cpp index b5052a718..68bb96d14 100644 --- a/src/proc/asset/clip.cpp +++ b/src/proc/asset/clip.cpp @@ -75,7 +75,7 @@ namespace asset * asset::Clip internally holds a Clip-MO, which has * been created alongside. This Clip-MO may have several * Placements or no placement at all (meaning it need not - * be placed within the EDL) + * be placed within the session) */ Media::PClipMO Clip::createClip () const diff --git a/src/proc/asset/media.cpp b/src/proc/asset/media.cpp index 198e8ed2e..4f3ffddc4 100644 --- a/src/proc/asset/media.cpp +++ b/src/proc/asset/media.cpp @@ -213,8 +213,8 @@ namespace asset /** Factory method for creating a Clip asset based * on the given Media asset. This asset::Clip can be used - * to create clip in the EDL covering the whole length of - * this media. + * to create a clip in the session covering the whole length + * of this media. * @note creates a dependency between media and new clip * @throw Invalid if the given media asset is not top-level, * but rather part or a multichannel (compound) media diff --git a/src/proc/asset/media.hpp b/src/proc/asset/media.hpp index 8f92525e4..fc3bf8cd1 100644 --- a/src/proc/asset/media.hpp +++ b/src/proc/asset/media.hpp @@ -96,7 +96,7 @@ namespace asset { PProcPatt howtoProc () const; /** Service Access Point for creating a Clip entity usable within - * the EDL/Session from a given Media or Clip Asset. As a sideeffect, + * the Session from a given Media or Clip Asset. As a sideeffect, * a corresponding asset::Clip is created as well if necessary. * It is OK to use and throw away the returned Clip-MO, because * it can be regenerated from the corresponding asset::Clip diff --git a/src/proc/asset/struct.hpp b/src/proc/asset/struct.hpp index 5c8e5accf..18e56450e 100644 --- a/src/proc/asset/struct.hpp +++ b/src/proc/asset/struct.hpp @@ -22,11 +22,11 @@ /** @file struct.hpp - ** Structural facilities of the EDL (e.g. Tracks) can be treated in the - ** "bookkeeping view" as a specific Kind of Asset. - ** For the different Kinds of Assets, we use sub-intefaces inheriting + ** Structural parts of the Session (e.g. Tracks) can be reflected + ** into the "bookkeeping view" as a specific Kind of Asset. + ** For the different Kinds of Assets, we use sub-interfaces inheriting ** from the general Asset interface. To be able to get asset::Struct instances - ** directly from the AssetManager, we define a specialization of the Asset ID. + ** directly from the AssetManager, we define a specialisation of the Asset ID. ** ** @see asset.hpp for explanation ** @see StructFactory creating concrete asset::Struct instances diff --git a/src/proc/asset/track.cpp b/src/proc/asset/track.cpp index 0eac2b10f..0ef3e0b86 100644 --- a/src/proc/asset/track.cpp +++ b/src/proc/asset/track.cpp @@ -1,5 +1,5 @@ /* - Track - structural asset holding the configuration of a track in the EDL + Track - structural asset holding the configuration of a track in the Session Copyright (C) Lumiera.org 2008, Hermann Vosseler diff --git a/src/proc/asset/track.hpp b/src/proc/asset/track.hpp index 01abe5e8e..a68e9ffe2 100644 --- a/src/proc/asset/track.hpp +++ b/src/proc/asset/track.hpp @@ -35,10 +35,10 @@ namespace asset /** * Structural Asset using as a global identifier for placing * some object onto a given track. Not to be confused with the "track-MO": - * To actually use a track within an EDL, we need to attach a - * Placement to the tree-of-tracks of this EDL. + * To actually use a track within an Sequence, we need to attach a + * Placement to the tree-of-tracks of this Sequence. * Thus, we have one global track-identifier (this class here), but - * maybe several instances (track-MO) within various EDLs + * maybe several instances (track-MO) within various Sequences */ class Track : public Struct { diff --git a/src/proc/common.hpp b/src/proc/common.hpp index c7da68e24..e1352a308 100644 --- a/src/proc/common.hpp +++ b/src/proc/common.hpp @@ -105,7 +105,7 @@ namespace mobject { /** - * Namespace of Session, EDL and user visible high-level objects. + * Namespace of Session and user visible high-level objects. */ namespace session { } diff --git a/src/proc/mobject/builder/buildertool.hpp b/src/proc/mobject/builder/buildertool.hpp index 9f6a06a25..93086ac4c 100644 --- a/src/proc/mobject/builder/buildertool.hpp +++ b/src/proc/mobject/builder/buildertool.hpp @@ -23,7 +23,7 @@ /** @file buildertool.hpp ** Visiting-tool mechanism configured specifically for the Builder. ** The Builder creates the render nodes network by applying several Builder Tools - ** to the objects found in the Session, EDL and Fixture. These BuilderTool instances + ** to the objects found in the Session and Fixture. These BuilderTool instances ** contain the details of the builder implementation. ** ** As the objects to be treated are normally handled by smart-ptrs, BuilderTool provides diff --git a/src/proc/mobject/explicitplacement.hpp b/src/proc/mobject/explicitplacement.hpp index a4b947473..7fc3ec5dc 100644 --- a/src/proc/mobject/explicitplacement.hpp +++ b/src/proc/mobject/explicitplacement.hpp @@ -35,8 +35,8 @@ namespace mobject { /** * Special kind of Placement, where the location of the * MObject has been nailed down to a fixed position. - * The Session allways contains one special EDL, which - * actually is a snapshot of all EDLs contents fixed + * The Session maintains a special list of Placements, + * which actually is a snapshot of all Session contents fixed * and reduced to simple positions. This so called Fixture * contains only ExplicitPlacement objects and is processed * by the Builder to create the render engine node network. diff --git a/src/proc/mobject/mobject.hpp b/src/proc/mobject/mobject.hpp index f73fb33c8..c8f831bf2 100644 --- a/src/proc/mobject/mobject.hpp +++ b/src/proc/mobject/mobject.hpp @@ -59,8 +59,8 @@ namespace mobject { /** * MObject is the interface class for all "Media Objects". * All the contents and elements that can be placed and - * manipulated and finally rendered within Lumiera's EDL - * are MObjects. + * manipulated and finally rendered within Lumiera's + * high-level model and Session are MObjects. */ class MObject : public Buildable, diff --git a/src/proc/mobject/placement.hpp b/src/proc/mobject/placement.hpp index 6c884d7d1..27ac94003 100644 --- a/src/proc/mobject/placement.hpp +++ b/src/proc/mobject/placement.hpp @@ -24,7 +24,7 @@ /** @file placement.hpp ** Placements are at the very core of all editing operations, ** because they act as handles to access the media objects to be manipulated. - ** Moreover, Placements are the actual content of the EDL(s) and Fixture and thus + ** Moreover, Placements are the actual "content" of the Session and Fixture and thus ** are small handle like objects. Many editing tasks include locating some Placement ** within the Session or directly take a ref to a Placement. ** @@ -35,7 +35,7 @@ ** which takes ownership of the MObject. ** ** Besides being a handle, Placements define the logical position where some MObject is - ** supposed to be located within the EDL or Fixture. The way in which this placing happens + ** supposed to be located within the Session or Fixture. The way in which this placing happens ** is controlled and parametrised by a collection (chain) of LocatingPin objects. By adding ** to this chain, the position of the MObject is increasingly constrained. The simplest ** case of such constraining is to add a FixedLocation, thus placing the MObject at one @@ -92,7 +92,7 @@ namespace mobject { /** * A refcounting Handle to an MObject of type MO, * used to constrain or explicitly specify the location - * where the MObject is supposed to be within the Session/EDL. + * where the MObject is supposed to be within the Session/Model. * Placements are copyable (like values), but may be distinguished * by their identity (reference semantics), which is based on an * \link lib::HashIndexed hash-ID \endlink. diff --git a/src/proc/mobject/session.hpp b/src/proc/mobject/session.hpp index 987d2503b..4c55b45bf 100644 --- a/src/proc/mobject/session.hpp +++ b/src/proc/mobject/session.hpp @@ -60,7 +60,6 @@ namespace mobject { namespace session { class SessManager; - class EDL; class Fixture; typedef std::tr1::shared_ptr PFix; } @@ -104,9 +103,6 @@ namespace mobject { virtual void add (PMO& placement) = 0; virtual bool remove (PMO& placement) = 0; - /// @deprecated Ichthyo doubts it is good design to hand out the EDL?? - virtual session::EDL& currEDL () = 0; - virtual session::PFix& getFixture () = 0; virtual void rebuildFixture () = 0; @@ -134,7 +130,7 @@ namespace mobject { /** clear current session contents * without resetting overall session config. * Afterwards, the session will contain only one - * empty EDL, while all Assets are retained. + * empty Sequence, while all Assets are retained. */ virtual void clear () =0; diff --git a/src/proc/mobject/session/clip.hpp b/src/proc/mobject/session/clip.hpp index 54cc146b0..4674e0003 100644 --- a/src/proc/mobject/session/clip.hpp +++ b/src/proc/mobject/session/clip.hpp @@ -44,7 +44,7 @@ namespace session { * A user visible/editable Clip is a reference to a contiguous * sequence of media data loaded as Asset into the current Session. * As such, it is a virtual (non destructive) cut or edit of the - * source material and can be placed into the EDL to be rendered + * source material and can be placed into the Session to be rendered * into the output. The actual media type of a clip will be derived * at runtime by resolving this reference to the underlying Asset. * diff --git a/src/proc/mobject/session/edl.cpp b/src/proc/mobject/session/edl.cpp deleted file mode 100644 index da131eee2..000000000 --- a/src/proc/mobject/session/edl.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/* - EDL - the (high level) Edit Decision List within the current Session - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -* *****************************************************/ - - -#include "proc/mobject/session/edl.hpp" -#include "proc/mobject/session/track.hpp" -#include "proc/mobject/placement.hpp" -#include "proc/mobject/session/mobjectfactory.hpp" -#include "proc/asset/track.hpp" - -namespace mobject - { - namespace session - { - - namespace // Implementation details - { - using asset::Query; - - /** helper: create a default configured track asset */ - const Placement - makeDefaultTrack () - { - PTrackAsset tA = asset::Struct::create (Query ("dummy()")); - return MObject::create (tA); - } - - } - - - - - /** create an empty default configured EDL */ - EDL::EDL () - : track (makeDefaultTrack ()), - clips (0) - { - - } - - - /** @deprecated not sure if it is a good idea - * to have this on the interface - */ - bool - EDL::contains (const PMO& placement) - { - UNIMPLEMENTED ("test if a given placement is contained within this EDL"); - } - - - PMO& - EDL::find (const string& id) - { - UNIMPLEMENTED ("serch for a given 'thing' within the EDL"); - } - - - bool - EDL::validate() - { - UNIMPLEMENTED ("self-check"); - return false; - } - - - - - } // namespace mobject::session - -} // namespace mobject diff --git a/src/proc/mobject/session/edl.hpp b/src/proc/mobject/session/edl.hpp deleted file mode 100644 index f6e3db000..000000000 --- a/src/proc/mobject/session/edl.hpp +++ /dev/null @@ -1,76 +0,0 @@ -/* - EDL.hpp - the (high level) Edit Decision List within the current Session - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - - -#ifndef MOBJECT_SESSION_EDL_H -#define MOBJECT_SESSION_EDL_H - -#include -#include - -#include "proc/mobject/mobject.hpp" -#include "proc/mobject/placement.hpp" -#include "proc/mobject/session/track.hpp" - -using proc_interface::PAsset; // TODO better way to refer to a track? - -using std::vector; -using std::string; - -namespace mobject { - namespace session { - - - class EDL ///////////////////////////TICKET #152 EDL will be renamed to "Sequence". - ///////////////////////////TODO: Should be converted to an facade interface - ///////////////////////////TODO: what follows is dummy code and will be dropped! - { - protected: - Placement track; - vector clips; - - public: - EDL(); - - bool contains (const PMO& placement); - PMO& find (const string& id); ///< @todo how to refer to clips? using asset IDs?? - - Placement& getTracks () { return track; } ///< @todo work out the correct use of tracks! make const correct! - size_t size () - { - UNIMPLEMENTED ("what is the 'size' of an EDL?"); - return 0; - } - - bool isValid() { return this->validate(); } - - private: - virtual bool validate(); - - }; - - - - } // namespace mobject::session - -} // namespace mobject -#endif diff --git a/src/proc/mobject/session/effect.cpp b/src/proc/mobject/session/effect.cpp index ef856c0ff..de2bfe18a 100644 --- a/src/proc/mobject/session/effect.cpp +++ b/src/proc/mobject/session/effect.cpp @@ -1,5 +1,5 @@ /* - Effect - EDL representation of a pluggable and automatable effect. + Effect - Model representation of a pluggable and automatable effect. Copyright (C) Lumiera.org 2008, Hermann Vosseler diff --git a/src/proc/mobject/session/effect.hpp b/src/proc/mobject/session/effect.hpp index 6696558f1..e3845c6ad 100644 --- a/src/proc/mobject/session/effect.hpp +++ b/src/proc/mobject/session/effect.hpp @@ -1,5 +1,5 @@ /* - EFFECT.hpp - EDL representation of a pluggable and automatable effect. + EFFECT.hpp - Model representation of a pluggable and automatable effect. Copyright (C) Lumiera.org 2008, Hermann Vosseler diff --git a/src/proc/mobject/session/fixedlocation.hpp b/src/proc/mobject/session/fixedlocation.hpp index c3b176d2e..6b6d981c3 100644 --- a/src/proc/mobject/session/fixedlocation.hpp +++ b/src/proc/mobject/session/fixedlocation.hpp @@ -37,7 +37,7 @@ namespace mobject /** * The most common case of positioning a MObject - * in the EDL: directly specifying a constant position. + * in the Session: directly specifying a constant position. * @todo use a subclass to represent the LocatingSolution? * would solve the construction of a ExplicitPlacement * much more natural. (ichthyo: siehe trac #100) diff --git a/src/proc/mobject/session/fixture.cpp b/src/proc/mobject/session/fixture.cpp index d4c40162d..9c8209000 100644 --- a/src/proc/mobject/session/fixture.cpp +++ b/src/proc/mobject/session/fixture.cpp @@ -1,5 +1,5 @@ /* - Fixture - the (low level) representation of the EDL with explicit placement data + Fixture - the (low level) representation of the Session with explicit placement data Copyright (C) Lumiera.org 2008, Hermann Vosseler @@ -25,37 +25,37 @@ #include "include/logging.h" namespace mobject { - namespace session { +namespace session { + + + + list & + Fixture::getPlaylistForRender () + { + UNIMPLEMENTED ("get Playlist For Render"); + } + + + /** TODO: a placeholder for the Operation needed for + * wiring the Automation providers in the Build process + */ + Auto* + Fixture::getAutomation () + { + UNIMPLEMENTED ("getAutomation from Fixture"); + return 0; + } + + + /** @todo self-verification of the fixture? necessary? */ + bool + Fixture::isValid() const + { + TODO ("actually do a self-verification of the Fixture"); + return true; + } - list & - Fixture::getPlaylistForRender () - { - UNIMPLEMENTED ("get Playlist For Render"); - } - - /** TODO: a placeholder for the Operation needed for - * wiring the Automation providers in the Build process - */ - Auto* - Fixture::getAutomation () - { - UNIMPLEMENTED ("getAutomation from Fixture"); - return 0; - } - - - - } // namespace mobject::session - -} // namespace mobject - -/* -// Local Variables: -// mode: C++ -// c-file-style: "gnu" -// indent-tabs-mode: nil -// End: -*/ +}} // namespace mobject::session diff --git a/src/proc/mobject/session/fixture.hpp b/src/proc/mobject/session/fixture.hpp index b4d98c04a..c2f2ada55 100644 --- a/src/proc/mobject/session/fixture.hpp +++ b/src/proc/mobject/session/fixture.hpp @@ -1,5 +1,5 @@ /* - FIXTURE.hpp - the (low level) representation of the EDL with explicit placement data + FIXTURE.hpp - the (low level) representation of the Session with explicit placement data Copyright (C) Lumiera.org 2008, Hermann Vosseler @@ -24,15 +24,15 @@ #ifndef MOBJECT_SESSION_FIXTURE_H #define MOBJECT_SESSION_FIXTURE_H -#include -#include - -#include "proc/mobject/session/edl.hpp" #include "proc/mobject/session/segmentation.hpp" #include "proc/mobject/session/track.hpp" #include "proc/mobject/explicitplacement.hpp" #include "proc/mobject/session/auto.hpp" +#include +#include +#include + using std::list; using std::tr1::shared_ptr; @@ -40,38 +40,39 @@ using std::tr1::shared_ptr; namespace mobject { - namespace session { +namespace session { - class Fixture : public EDL - { - protected: - list content_; - boost::scoped_ptr partitioning_; - - /////////////TODO: who creates this? - - public: - list & getPlaylistForRender () ; - Auto* getAutomation () ; ///< @todo: just a placeholder at the moment!!! - - private: - virtual bool validate() - { - TODO ("how to validate a Fixture?"); - return false; - } - - }; - - - - typedef shared_ptr PFix; - - - - } // namespace mobject::session - -} // namespace mobject + class Fixture + : boost::noncopyable + { + protected: + list content_; + boost::scoped_ptr partitioning_; + + /////////////TODO: who creates this? + + public: + list & getPlaylistForRender () ; + Auto* getAutomation () ; ///< @todo: just a placeholder at the moment!!! + + bool isValid() const; + + private: + virtual bool validate() + { + TODO ("how to validate a Fixture?"); + return false; + } + + }; + + + + typedef shared_ptr PFix; + + + +}} // namespace mobject::session #endif diff --git a/src/proc/mobject/session/locatingpin.hpp b/src/proc/mobject/session/locatingpin.hpp index ebe3620a8..945947a75 100644 --- a/src/proc/mobject/session/locatingpin.hpp +++ b/src/proc/mobject/session/locatingpin.hpp @@ -23,7 +23,7 @@ /** @file locatingpin.hpp ** Implementing the Placement mechanics. The various specifications how - ** some MObject is to be placed (logically) within the EDL are given by small + ** to place some MObject (logically) within the Session are given by small ** LocatingPin objects forming a chain. For resolving the actual position, at the ** moment (10/07) we use a preliminary implementation to support the most common ** Placement types (fixed and relative). It is comprised of the nested LocatingSolution diff --git a/src/proc/mobject/session/meta.hpp b/src/proc/mobject/session/meta.hpp index dffd8610c..3f3f02ec9 100644 --- a/src/proc/mobject/session/meta.hpp +++ b/src/proc/mobject/session/meta.hpp @@ -36,7 +36,7 @@ namespace session { * Meta-MObject doesn't represent real Media Content, * but rather all sorts of Processing Instructions * and other metadata, which can be placed and - * attached within the EDL/Session. + * attached within the Model/Session. * @todo do we need this abstract baseclass? */ class Meta : public AbstractMO diff --git a/src/proc/mobject/session/mobjectfactory.cpp b/src/proc/mobject/session/mobjectfactory.cpp index 8b4cf5d89..ff694edd8 100644 --- a/src/proc/mobject/session/mobjectfactory.cpp +++ b/src/proc/mobject/session/mobjectfactory.cpp @@ -53,18 +53,17 @@ namespace session { } - /** creating a Clip-MObject to be placed within - * the EDL, based on a clip asset, which typically - * is obtained by calling the createClip()-function - * on some asset::Media. The newly created Clip-MO is - * internally linked with this media Asset and wrapped - * into a Placement, which takes ownership. So, when the - * render engine gets across this Clip-MO, it is able to - * obtain the media information contained in the corresponding + /** creating a Clip-MObject to be placed within the Session, + * based on a clip asset, which typically is obtained by calling + * the createClip()-function on some asset::Media. + * The newly created Clip-MO is (back)linked with this media Asset + * internally and wrapped into a Placement, which takes ownership. + * So, when the render engine gets across this Clip-MO, it is able + * to obtain the media information contained in the corresponding * media asset. Note this will create a single track clip. * @param mediaDef the actual asset::Media to be used * created Clip could be a compound (multichannel) clip - * comprised of several SimpleClip subobjects. + * comprised of several SimpleClip sub-objects. */ Placement MObjectFactory::operator() (const asset::Clip& clipRef, const asset::Media& mediaDef) diff --git a/src/proc/mobject/session/session-impl.cpp b/src/proc/mobject/session/session-impl.cpp index 526698ea9..1b1f1eb5f 100644 --- a/src/proc/mobject/session/session-impl.cpp +++ b/src/proc/mobject/session/session-impl.cpp @@ -52,8 +52,6 @@ namespace session { SessionImpl::SessionImpl () : Session( getDummyDefaultsManager() ) ///////TODO temporary hack , pIdx_( MObject::create (getDummyDefaultsManager())) ////TODO temporary hack - , focusEDL_(0) - , edls() /////////// this is dummy code. How to initialise the default session? ///////TICKET #497 , fixture(new Fixture) { INFO (session, "new Session created."); @@ -61,22 +59,19 @@ namespace session { /** @internal used by SessionManager#clear - * discard all EDL content, without - * touching global configuration. + * discard all Session content, + * without touching global configuration. */ void SessionImpl::clear () { try { - edls.clear(); - edls.resize(1); //////////////////////////////////////////////////////////////////////////TICKET #513 - focusEDL_ = 0; + //////////////////////////////////////////////////////////////////////////TICKET #496 } catch (...) { - focusEDL_ = 0; - throw lumiera::error::Fatal ("unexpected exception while clearing EDLs"); + throw lumiera::error::Fatal ("unexpected exception while clearing the session"); ///////////TODO still required?? } } @@ -92,25 +87,17 @@ namespace session { void SessionImpl::add (PMO& placement) { - UNIMPLEMENTED ("add Placement to the current EDL"); + UNIMPLEMENTED ("add Placement to the current Session"); } bool SessionImpl::remove (PMO& placement) { - UNIMPLEMENTED ("search and remove a given Placement from current EDL"); + UNIMPLEMENTED ("search and remove a given Placement from current Session"); return false; // TODO } - /// @deprecated should not grant direct access to EDL objects - EDL& - SessionImpl::currEDL () - { - ASSERT (focusEDL_ < edls.size()); - return edls[focusEDL_]; - } - PFix& SessionImpl::getFixture () diff --git a/src/proc/mobject/session/session-impl.hpp b/src/proc/mobject/session/session-impl.hpp index 1c1a255aa..6fb3e25b3 100644 --- a/src/proc/mobject/session/session-impl.hpp +++ b/src/proc/mobject/session/session-impl.hpp @@ -47,7 +47,6 @@ #define MOBJECT_SESSION_SESSIONIMPL_H #include "proc/mobject/session.hpp" -#include "proc/mobject/session/edl.hpp" #include "proc/mobject/session/fixture.hpp" #include "proc/mobject/session/placement-index.hpp" #include "proc/mobject/session/session-services.hpp" @@ -80,8 +79,6 @@ namespace session { { PlacementIndex pIdx_; - uint focusEDL_; - vector edls; /////////////////////TICKET #500 #513 #514 PFix fixture; @@ -93,8 +90,6 @@ namespace session { virtual void add (PMO& placement); virtual bool remove (PMO& placement); - virtual EDL& currEDL (); - virtual PFix& getFixture (); virtual void rebuildFixture (); diff --git a/src/proc/mobject/session/track.cpp b/src/proc/mobject/session/track.cpp index eb08a3c1c..c64627e4d 100644 --- a/src/proc/mobject/session/track.cpp +++ b/src/proc/mobject/session/track.cpp @@ -1,5 +1,5 @@ /* - Track - A grouping device within the EDL. + Track - A grouping device within the Session. Copyright (C) Lumiera.org 2008, Hermann Vosseler diff --git a/src/proc/mobject/session/track.hpp b/src/proc/mobject/session/track.hpp index 7b3222bdb..f6ca570fe 100644 --- a/src/proc/mobject/session/track.hpp +++ b/src/proc/mobject/session/track.hpp @@ -1,5 +1,5 @@ /* - TRACK.hpp - A grouping device within the EDL. + TRACK.hpp - A grouping device within the Session. Copyright (C) Lumiera.org 2008, Hermann Vosseler @@ -43,7 +43,7 @@ namespace session { /** - * A Track is grouping device within the EDL. + * A Track is grouping device within the Session. * The corresponding Placement by which this Track object is referred * defines fallback placing properties to be used by all objects placed on this track * in case they don't specify more concrete placements. @@ -52,11 +52,11 @@ namespace session { * of clips. Note tracks are grouped in a tree like fashion. * \par * This Media Object (often referred to as "track-MO") is always dealt with - * locally within one EDL. Client code normally doesn't have to care for creating + * locally within one Sequence. Client code normally doesn't have to care for creating * or retrieving track-MO. Rather, it refers to the global track-asset-ID. The same * holds true when placing some other Media Object onto a track: the corresponding - * placement just refers the global trackID, while the builder automatically retrieves - * the matching track-MO for the EDL in question. If some EDL contains several instances + * placement just refers the global trackID, while the builder automatically retrieves the + * matching track-MO for the Sequence in question. If the Session contains several instances * (track-MO) referring to the same trackID (asset), then this causes all objects placed * onto this track to be included several times in the resulting render nodes network * (possibly with varying placement properties) diff --git a/tests/43session.tests b/tests/43session.tests index fb021b2fe..ddea876ce 100644 --- a/tests/43session.tests +++ b/tests/43session.tests @@ -1,4 +1,4 @@ -TESTING "Component Test Suite: MObjects and Session/EDL" ./test-components --group=session +TESTING "Component Test Suite: MObjects and Session/Model" ./test-components --group=session diff --git a/tests/components/proc/asset/testasset.cpp b/tests/components/proc/asset/testasset.cpp index 42ddff7ad..3a6ffb61d 100644 --- a/tests/components/proc/asset/testasset.cpp +++ b/tests/components/proc/asset/testasset.cpp @@ -1,5 +1,5 @@ /* - TestClip - test clip (stub) for checking EDL/Session functionality + TestClip - test clip (stub) for checking Model/Session functionality Copyright (C) Lumiera.org 2008, Hermann Vosseler diff --git a/tests/components/proc/mobject/builder/buildsegmenttest.cpp b/tests/components/proc/mobject/builder/buildsegmenttest.cpp index 1983d8c29..f47f7fbe0 100644 --- a/tests/components/proc/mobject/builder/buildsegmenttest.cpp +++ b/tests/components/proc/mobject/builder/buildsegmenttest.cpp @@ -1,5 +1,5 @@ /* - BuildSegment(Test) - building the render-tree for a segment of the EDL + BuildSegment(Test) - building the render-tree for a segment of the Timeline Copyright (C) Lumiera.org 2008, Hermann Vosseler @@ -44,7 +44,7 @@ namespace mobject /******************************************************************* * @test the builder core functionality: create a render pipeline - * for a given segment of the EDL. + * for a given segment of the Session/Timeline. */ class BuildSegment_test : public Test { diff --git a/tests/components/proc/mobject/controller/rendersegmenttest.cpp b/tests/components/proc/mobject/controller/rendersegmenttest.cpp index c8fd4b4b6..ba20b4754 100644 --- a/tests/components/proc/mobject/controller/rendersegmenttest.cpp +++ b/tests/components/proc/mobject/controller/rendersegmenttest.cpp @@ -42,10 +42,10 @@ namespace mobject - /******************************************************************* - * @test create a render process from a given segment of the EDL. + /******************************************************************** + * @test create a render process from a given segment of the Session. * Basically this includes cooperation of all parts of the - * Lumiera Proc Layer. For a prepared test-EDL we invoke the + * Lumiera Proc Layer. For a prepared test-Session we invoke the * controller to create a render process. This includes building * the render pipeline. Finally, we analyze all the created * Structures. @@ -56,7 +56,7 @@ namespace mobject { virtual void run(Arg arg) { - UNIMPLEMENTED ("complete render process for a given test segment of the EDL"); + UNIMPLEMENTED ("complete render process for a given test segment of the Session"); } }; diff --git a/tests/components/proc/mobject/placement-basic-test.cpp b/tests/components/proc/mobject/placement-basic-test.cpp index 21c663b74..b020173cc 100644 --- a/tests/components/proc/mobject/placement-basic-test.cpp +++ b/tests/components/proc/mobject/placement-basic-test.cpp @@ -24,7 +24,6 @@ #include "lib/test/run.hpp" #include "proc/asset/media.hpp" #include "proc/mobject/session.hpp" -#include "proc/mobject/session/edl.hpp" #include "proc/mobject/session/testclip.hpp" #include "proc/mobject/placement.hpp" #include "proc/mobject/explicitplacement.hpp" diff --git a/tests/components/proc/mobject/session/addcliptest.cpp b/tests/components/proc/mobject/session/addcliptest.cpp index e3b9f2b36..a692fccf7 100644 --- a/tests/components/proc/mobject/session/addcliptest.cpp +++ b/tests/components/proc/mobject/session/addcliptest.cpp @@ -1,5 +1,5 @@ /* - AddClip(Test) - adding an Clip-MObject to the EDL/Session + AddClip(Test) - adding an Clip-MObject to the Model/Session Copyright (C) Lumiera.org 2008, Hermann Vosseler @@ -23,7 +23,6 @@ #include "lib/test/run.hpp" #include "proc/mobject/session.hpp" -#include "proc/mobject/session/edl.hpp" #include "proc/mobject/session/testclip.hpp" #include "proc/mobject/placement.hpp" #include "lib/util.hpp" @@ -49,9 +48,9 @@ namespace mobject /******************************************************************* - * @test adding an test clip to the EDL/Session. + * @test adding an test clip to the Model/Session. * @see mobject::session::Clip - * @see mobject::session::EDL + * @see mobject::Session */ class AddClip_test : public Test { diff --git a/tests/components/proc/mobject/session/deletecliptest.cpp b/tests/components/proc/mobject/session/deletecliptest.cpp index 10b6bb3df..e1179b882 100644 --- a/tests/components/proc/mobject/session/deletecliptest.cpp +++ b/tests/components/proc/mobject/session/deletecliptest.cpp @@ -24,7 +24,6 @@ #include "lib/test/run.hpp" #include "proc/assetmanager.hpp" #include "proc/mobject/session.hpp" -#include "proc/mobject/session/edl.hpp" // TODO: really neded? #include "proc/mobject/session/testsession1.hpp" #include "proc/mobject/session/clip.hpp" // TODO: really neded? //#include "lib/util.hpp" @@ -51,9 +50,11 @@ namespace test { /******************************************************************* - * @test removing a test clip from the EDL. + * @test removing a test clip from the Session/Model. * @see mobject::session::Clip - * @see mobject::session::EDL + * @see mobject::Session + * + * @todo ////////////////////////////////////////////////TICKET #499 */ class DeleteClip_test : public Test { @@ -64,13 +65,13 @@ namespace test { PSess sess = Session::current; AssetManager& aMang = AssetManager::instance(); - UNIMPLEMENTED("typesafe searching for MObjects in the EDL"); + UNIMPLEMENTED("typesafe searching for MObjects in the Session"); -#if false /////////////////////////////////////////////////////////////////////////////////////////////////////TODO: work out how to search within EDL!! +#if false /////////////////////////////////////////////////////////////////////////////////////////////////////TODO: work out how to search within the Model!! PClipMO clipPlacement = sess->currEDL().find(SESSION1_CLIP); - // global Var asigned in buildTestsession1() + // global Var assigned in buildTestsession1() PMedia media = clipPlacement->getMedia(); IDA clipAID = media->getID(); ASSERT (clipPlacement); @@ -80,7 +81,7 @@ namespace test { ASSERT (!sess->currEDL().find(SESSION1_CLIP)); // EDL forgot the Clip/Placement ASSERT (!aMang.known (clipAID)); // corresponding Clip Asset has disappeared ASSERT (!clipPlacement->getMedia()); // internal cross-links removed -#endif /////////////////////////////////////////////////////////////////////////////////////////////////////TODO: work out how to search within EDL!! +#endif /////////////////////////////////////////////////////////////////////////////////////////////////////TODO: work out how to search within the Model!! } }; diff --git a/tests/components/proc/mobject/session/rebuildfixturetest.cpp b/tests/components/proc/mobject/session/rebuildfixturetest.cpp index a0970ff8b..43a77ef07 100644 --- a/tests/components/proc/mobject/session/rebuildfixturetest.cpp +++ b/tests/components/proc/mobject/session/rebuildfixturetest.cpp @@ -23,16 +23,13 @@ #include "lib/test/run.hpp" #include "proc/mobject/session.hpp" -#include "proc/mobject/session/edl.hpp" #include "proc/mobject/session/testsession1.hpp" #include "lib/util-foreach.hpp" #include "lib/util.hpp" -//#include #include #include -//using boost::format; using std::tr1::bind; using util::contains; using util::for_each; @@ -49,7 +46,7 @@ namespace test { /******************************************************************* * @test (re)building the ExplicitPlacement objects from the objects - * placed into the Session/EDL. + * placed into the Session/Model. * @see mobject::session::Fixture * @see mobject::ExplicitPlacement */ @@ -63,6 +60,7 @@ namespace test { buildTestsession1(); ASSERT (sess->isValid()); sess->rebuildFixture(); +#if false ////////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #548 TODO ("check the fixture has been touched. e.g. by hash."); TODO ("query all Placements of all Clips (via AssetManager). Verify explicit plac contained in Fixture."); @@ -82,6 +80,7 @@ namespace test { // PMO originalPlacement = explicitPlacement->subject->getPlacement(); // ASSERT (edl.contains(originalPlacement)); +#endif ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #548 } }; diff --git a/tests/components/proc/mobject/session/session-structure-test.cpp b/tests/components/proc/mobject/session/session-structure-test.cpp new file mode 100644 index 000000000..94ef73607 --- /dev/null +++ b/tests/components/proc/mobject/session/session-structure-test.cpp @@ -0,0 +1,82 @@ +/* + SessionStructure(Test) - verifying basic Session/Model structure + + Copyright (C) Lumiera.org + 2008-2010, Hermann Vosseler + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +* *****************************************************/ + + +#include "lib/test/run.hpp" +#include "proc/mobject/session.hpp" +#include "proc/mobject/session/fixture.hpp" // TODO only temporarily needed +#include "proc/assetmanager.hpp" +//#include "lib/util.hpp" + +#include + +using std::string; +using std::cout; + + +namespace mobject { +namespace session { +namespace test { + + using proc_interface::AssetManager; + using proc_interface::PAsset; + + + /******************************************************************************* + * @test access the current session and verify the correct + * structure of the most important components: The session + * contains an Sequence, we can get at the Fixture, we have at least + * one Track and the corresponding Track asset is available. + * @todo define further criteria to be checked + * @todo implement Sequence, Fixture, Session#rebuildFixture, asset::Track + */ + class SessionStructure_test : public Test + { + virtual void + run (Arg arg) + { + PSess sess = Session::current; + + UNIMPLEMENTED("the real standard structure of the session"); //////////////////////////TICKET #499 + +#if false //////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #546 + + ASSERT (0 <= sess->currEDL().size()); // TODO implement + ASSERT (0 <= sess->getFixture()->size()); // TODO implement + ASSERT (sess->currEDL().getTracks()->isValid()); + +// PAsset track = sess->currEDL().getTracks()[0]; +// AssetManager& aMang = AssetManager::instance(); +// ASSERT (track == aMang.getAsset (track->getID())); + +#endif //////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #546 + UNIMPLEMENTED ("how to refer to tracks..."); + } + }; + + + /** Register this test class... */ + LAUNCHER (SessionStructure_test, "unit session"); + + + +}}} // namespace mobject::session::test diff --git a/tests/components/proc/mobject/session/sessionmanagertest.cpp b/tests/components/proc/mobject/session/sessionmanagertest.cpp index 7611c9ae5..eb6162e26 100644 --- a/tests/components/proc/mobject/session/sessionmanagertest.cpp +++ b/tests/components/proc/mobject/session/sessionmanagertest.cpp @@ -1,5 +1,5 @@ /* - SessionManager(Test) - accessing, loading and saving the Session/EDL + SessionManager(Test) - accessing, loading and saving the Session/Model Copyright (C) Lumiera.org 2008, Hermann Vosseler diff --git a/tests/components/proc/mobject/session/sessionstructuretest.cpp b/tests/components/proc/mobject/session/sessionstructuretest.cpp deleted file mode 100644 index 173127dd6..000000000 --- a/tests/components/proc/mobject/session/sessionstructuretest.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - SessionStructure(Test) - verifying basic Session/EDL structure - - Copyright (C) Lumiera.org - 2008, Hermann Vosseler - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -* *****************************************************/ - - -#include "lib/test/run.hpp" -#include "proc/mobject/session.hpp" -#include "proc/mobject/session/edl.hpp" // TODO only temporarily needed -#include "proc/mobject/session/fixture.hpp" // TODO only temporarily needed -#include "proc/assetmanager.hpp" -//#include "lib/util.hpp" -//#include -#include - -//using boost::format; -using std::string; -using std::cout; - - -namespace mobject - { - namespace session - { - namespace test - { - using proc_interface::AssetManager; - using proc_interface::PAsset; - - - /******************************************************************************* - * @test access the current session and verify the correct - * structure of the most important components: The session - * contains an EDL, we can get at the Fixture, we have at least - * one Track and the corresponding Track asset is available. - * @todo define further criteria to be checked - * @todo implement EDL, Fixture, Session#rebuildFixture, asset::Track - */ - class SessionStructure_test : public Test - { - virtual void - run (Arg arg) - { - PSess sess = Session::current; - - UNIMPLEMENTED("the real standard structure of the session"); //////////////////////////TICKET #499 - - ASSERT (0 <= sess->currEDL().size()); // TODO implement - ASSERT (0 <= sess->getFixture()->size()); // TODO implement - ASSERT (sess->currEDL().getTracks()->isValid()); - -// PAsset track = sess->currEDL().getTracks()[0]; -// AssetManager& aMang = AssetManager::instance(); -// ASSERT (track == aMang.getAsset (track->getID())); - UNIMPLEMENTED ("how to refer to tracks..."); - } - }; - - - /** Register this test class... */ - LAUNCHER (SessionStructure_test, "unit session"); - - - - } // namespace test - - } // namespace session - -} // namespace mobject diff --git a/tests/components/proc/mobject/session/testclip.cpp b/tests/components/proc/mobject/session/testclip.cpp index a94e3b0ec..a721d8e1c 100644 --- a/tests/components/proc/mobject/session/testclip.cpp +++ b/tests/components/proc/mobject/session/testclip.cpp @@ -1,5 +1,5 @@ /* - TestClip - test clip (stub) for checking EDL/Session functionality + TestClip - test clip (stub) for checking Model/Session functionality Copyright (C) Lumiera.org 2008, Hermann Vosseler diff --git a/tests/components/proc/mobject/session/testclip.hpp b/tests/components/proc/mobject/session/testclip.hpp index 7b4b66108..fadaf7e58 100644 --- a/tests/components/proc/mobject/session/testclip.hpp +++ b/tests/components/proc/mobject/session/testclip.hpp @@ -1,5 +1,5 @@ /* - TESTCLIP.hpp - test clip (stub) for checking EDL/Session functionality + TESTCLIP.hpp - test clip (stub) for checking Model/Session functionality Copyright (C) Lumiera.org 2008, Hermann Vosseler @@ -43,7 +43,7 @@ namespace test { /** * Sample or Test Clip for checking - * various EDL, session and builder operations. + * various model, session and builder operations. * @todo maybe use this as Mock object to record invoked operations? * */ diff --git a/tests/components/proc/mobject/session/testroot.hpp b/tests/components/proc/mobject/session/testroot.hpp index a5402ea5a..0b0585f79 100644 --- a/tests/components/proc/mobject/session/testroot.hpp +++ b/tests/components/proc/mobject/session/testroot.hpp @@ -1,5 +1,5 @@ /* - TESTROOT.hpp - test dummy model root for checking EDL/Session functionality + TESTROOT.hpp - test dummy model root for checking Model/Session functionality Copyright (C) Lumiera.org 2009, Hermann Vosseler diff --git a/tests/lib/visitingtoolconcept.cpp b/tests/lib/visitingtoolconcept.cpp index 352273358..21effbf41 100644 --- a/tests/lib/visitingtoolconcept.cpp +++ b/tests/lib/visitingtoolconcept.cpp @@ -22,7 +22,7 @@ /** @file visitingtoolconept.cpp - ** While laying the foundations for EDL and Builder, Ichthyo came accross + ** While laying the foundations for Session and Builder, Ichthyo came across ** the necessity to create a custom implementation of the Visitor Pattern ** optimally suited for Lumiera's needs. This implementation file was ** used for the draft and is self-contained. The final solution was then @@ -35,7 +35,7 @@ **
  • Visitor is about double dispatch, thus we can't avoid ** using some table lookup implementation, and we can't avoid using ** some of the cooperating classes vtables. Besides that, the - ** implementation should not be too wastefull...
  • + ** implementation should not be too wasteful... **
  • individual Visiting Tool implementation classes should be able ** to opt in or opt out on implementing functions treating some of ** the visitable subclasses.
  • @@ -48,7 +48,7 @@ ** ** @see visitor.hpp the final lib implementation ** @see visitingtooltest.cpp test cases using our lib implementation - ** @see BuilderTool one especially important instantiiation + ** @see BuilderTool one especially important instantiation ** */