WIP: start implementing the new entities

This commit is contained in:
Fischlurch 2007-09-22 16:44:50 +02:00
parent cc3d3397a7
commit 02b1926840
19 changed files with 812 additions and 32 deletions

View file

@ -0,0 +1,33 @@
/*
MediaAccessFacade - functions for querying media file and channels.
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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 "backend/mediaaccessfacade.hpp"
namespace backend_interface
{
/** */
} // namespace backend_interface

View file

@ -0,0 +1,45 @@
/*
MEDIAACCESSFACADE.hpp - functions for querying media file and channels.
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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 BACKEND_INTERFACE_MEDIAACCESSFACADE_H
#define BACKEND_INTERFACE_MEDIAACCESSFACADE_H
namespace backend_interface
{
/**
* provides functions for querying (opening) a media file,
* detecting the channels or streams found within this file etc.
* Delegating to the actual backend functions
*/
class MediaAccessFacade
{
};
} // namespace backend_interface
#endif

View file

@ -0,0 +1,35 @@
/*
BuildInstruct - Instructions for building some configuration of render nodes.
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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/asset/buildinstruct.hpp"
#include "proc/asset/procpatt.hpp"
#include "proc/asset/proc.hpp"
namespace asset
{
/** */
} // namespace asset

View file

@ -0,0 +1,71 @@
/*
BUILDINSTRUCT.hpp - Instructions for building some configuration of render nodes.
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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 ASSET_BUILDINSTRUCT_H
#define ASSET_BUILDINSTRUCT_H
#include <string>
using std::string;
namespace asset
{
class Proc;
class ProcPatt;
/**
* (Interface) building instructions to be executed by the Builder
* on the render node network under construction.
*/
class BuildInstruct
{
};
class DoRecurse : public BuildInstruct
{
protected:
const ProcPatt* subPattern;
};
class DoAttach : public BuildInstruct
{
public:
const Proc* nodes;
/** identifying the point where the nodes should be attached */
const string point;
};
} // namespace asset
#endif

View file

@ -0,0 +1,33 @@
/*
CompoundMedia - multichannel media
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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/asset/compoundmedia.hpp"
namespace asset
{
/** */
} // namespace asset

View file

@ -0,0 +1,54 @@
/*
COMPOUNDMEDIA.hpp - multichannel media
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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 ASSET_COMPOUNDMEDIA_H
#define ASSET_COMPOUNDMEDIA_H
#include "proc/asset/media.hpp"
#include <vector>
using std::vector;
namespace asset
{
/**
* compound of several elementary media tracks,
* e.g. the individual media streams found in one media file
*/
class CompoundMedia : public Media
{
protected:
/** elementary media assets comprising this compound */
vector<Media *> tracks;
};
} // namespace asset
#endif

View file

@ -0,0 +1,34 @@
/*
ProcPatt - template for building some render processing network
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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/asset/procpatt.hpp"
#include "proc/asset/buildinstruct.hpp"
namespace asset
{
/** */
} // namespace asset

View file

@ -0,0 +1,56 @@
/*
PROCPATT.hpp - template for building some render processing network
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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 ASSET_PROCPATT_H
#define ASSET_PROCPATT_H
#include "proc/asset/struct.hpp"
#include <vector>
using std::vector;
namespace asset
{
class BuildInstruct;
/**
* special type of structural Asset
* representing information how to build some part
* of the render engine's processing nodes network.
*/
class ProcPatt : public Struct
{
protected:
const vector<BuildInstruct> instructions;
};
} // namespace asset
#endif

View file

@ -0,0 +1,38 @@
/*
CompoundClip - compound of several clips (multichannel)
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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/compoundclip.hpp"
namespace mobject
{
namespace session
{
/** */
} // namespace mobject::session
} // namespace mobject

View file

@ -0,0 +1,53 @@
/*
COMPOUNDCLIP.hpp - compound of several clips (multichannel)
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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_COMPOUNDCLIP_H
#define MOBJECT_SESSION_COMPOUNDCLIP_H
#include "proc/mobject/session/clip.hpp"
namespace mobject
{
namespace session
{
/**
* Clip MObject which is actually a compound of several elementary clips,
* e.g. the several streams found within multichannels media.
*/
class CompoundClip : public Clip
{
protected:
Clip* components;
};
} // namespace mobject::session
} // namespace mobject
#endif

View file

@ -0,0 +1,38 @@
/*
SimpleClip - Elementary clip (single media stream only)
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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/simpleclip.hpp"
namespace mobject
{
namespace session
{
/** */
} // namespace mobject::session
} // namespace mobject

View file

@ -0,0 +1,50 @@
/*
SIMPLECLIP.hpp - Elementary clip (single media stream only)
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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_SIMPLECLIP_H
#define MOBJECT_SESSION_SIMPLECLIP_H
#include "proc/mobject/session/clip.hpp"
namespace mobject
{
namespace session
{
/**
* Elementary clip consisting of only one media stream
*/
class SimpleClip : public Clip
{
};
} // namespace mobject::session
} // namespace mobject
#endif

View file

@ -1,6 +1,6 @@
format 40
"Asset" // ProcessingLayer::Asset
revision 12
revision 13
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -433,7 +433,7 @@ ${inlines}
classrelation 144261 // <dependency>
relation 142341 -_->
a default
cpp default "Generated"
cpp default "#include in header"
classrelation_ref 144261 // <dependency>
b multiplicity "" parent class_ref 139525 // MediaAccessFacade
end
@ -727,6 +727,7 @@ ${inlines}
idl_decl ""
explicit_switch_type ""
comment "special type of structural Asset representing information how to build some part of the render engine's processing nodes network."
classrelation 143109 // <generalisation>
relation 141189 ---|>
a public
@ -781,26 +782,6 @@ ${inlines}
comment "Implementation of the registry holding all Asset instances known to the Asset Manager subsystem. As of 8/2007 implemented by a hashtable."
end
class 138885 "SimpleClip"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 143365 // <generalisation>
relation 141445 ---|>
a public
cpp default "${type}"
classrelation_ref 143365 // <generalisation>
b multiplicity "" parent class_ref 128901 // Clip
end
end
class 139013 "BuildInstruct"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
@ -812,6 +793,7 @@ ${inlines}
idl_decl ""
explicit_switch_type ""
comment "(Interface) building instructions to be executed by the Builder on the render node network under construction."
end
class 139141 "DoAttach"

View file

@ -1,6 +1,6 @@
format 40
"MObject" // ProcessingLayer::MObject
revision 19
revision 20
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -426,6 +426,27 @@ ${inlines}
end
end
class 138885 "SimpleClip"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
comment "Elementary clip consisting of only one media stream"
classrelation 143365 // <generalisation>
relation 141445 ---|>
a public
cpp default "${type}"
classrelation_ref 143365 // <generalisation>
b multiplicity "" parent class_ref 128901 // Clip
end
end
class 138629 "CompoundClip"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
@ -438,6 +459,8 @@ ${inlines}
explicit_switch_type ""
associated_diagram classdiagram_ref 128133 // Session structure
comment "Clip MObject which is actually a compound of several elementary clips,
e.g. the several streams found within multichannels media."
classrelation 142597 // <generalisation>
relation 140805 ---|>
a public

View file

@ -1,6 +1,6 @@
format 40
"backend" // design::codegen::backend
revision 5
revision 6
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -29,7 +29,7 @@ format 40
stereotype "src"
cpp_h_dir "backend"
cpp_src_dir "backend"
cpp_namespace "data"
cpp_namespace "backend_interface"
comment "sourcecode package
Data backend classes here..."
@ -37,5 +37,43 @@ Data backend classes here..."
//deployment diagram settings
package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
draw_component_as_icon default show_component_req_prov default show_component_rea default
artifact 138629 "mediaaccessfacade"
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 139525 // MediaAccessFacade
end
comment "functions for querying media file and channels."
end
end
end

View file

@ -1,6 +1,6 @@
format 40
"asset" // design::codegen::proc::asset
revision 6
revision 7
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -312,6 +312,46 @@ ${namespace_end}"
comment "bookkeeping (asset) view of a media clip."
end
artifact 138245 "compoundmedia"
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 138501 // CompoundMedia
end
comment "a special clip as a compound of several elementary media tracks,
e.g. the individual media streams found in one media file"
end
artifact 136965 "preview"
stereotype "source"
cpp_h "/*
@ -546,6 +586,86 @@ ${namespace_end}"
comment "structural asset holding the configuration of a track in the EDL"
end
artifact 137989 "procpatt"
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 138757 // ProcPatt
end
comment "template for building some render processing network"
end
artifact 138117 "buildinstruct"
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 139013 // BuildInstruct
class_ref 139269 // DoRecurse
class_ref 139141 // DoAttach
end
comment "Instructions for building some configuration of render nodes."
end
artifact 137861 "db"
stereotype "source"
cpp_h "/*

View file

@ -1,6 +1,6 @@
format 40
"session" // design::codegen::proc::mobject::session
revision 6
revision 7
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -316,6 +316,84 @@ ${namespace_end}"
comment "a Media Clip"
end
artifact 138373 "simpleclip"
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 138885 // SimpleClip
end
comment "Elementary clip (single media stream only)"
end
artifact 138501 "compoundclip"
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 138629 // CompoundClip
end
comment "compound of several clips (multichannel)"
end
artifact 129541 "effect"
stereotype "source"
cpp_h "/*

View file

@ -221,7 +221,7 @@ relationcanvas 140549 relation_ref 141573 // <directional aggregation>
multiplicity_a_pos 160 260 3000 multiplicity_b_pos 142 268 3000
relationcanvas 140933 relation_ref 141701 // <directional aggregation by value>
from ref 139013 z 1999 stereotype "<<vector>>" xyz 713 174 3000 to ref 140805
role_a_pos 745 206 3000 no_role_b
role_a_pos 748 206 3000 no_role_b
multiplicity_a_pos 712 206 3000 multiplicity_b_pos 733 164 3000
relationcanvas 141445 relation_ref 141829 // <generalisation>
geometry VHV
@ -241,11 +241,11 @@ relationcanvas 142213 relation_ref 142085 // <unidirectional association>
from ref 141317 z 1999 to point 812 270
line 142341 z 1999 to point 812 131
line 142469 z 1999 to ref 139013
role_a_pos 780 159 3000 no_role_b
role_a_pos 794 109 3000 no_role_b
multiplicity_a_pos 794 142 3000 multiplicity_b_pos 794 299 3000
relationcanvas 142597 relation_ref 142213 // <directional aggregation>
from ref 141189 z 1999 stereotype "<<vector>>" xyz 656 360 3000 to ref 141061
role_a_pos 643 374 3000 no_role_b
role_a_pos 650 367 3000 no_role_b
multiplicity_a_pos 614 367 3000 no_multiplicity_b
relationcanvas 142853 relation_ref 139269 // <generalisation>
from ref 142725 z 1999 to ref 141061

View file

@ -16,8 +16,7 @@ open
package_ref 128005 // design
classview_ref 128901 // Assets
classview_ref 128133 // Engine Workings
classview_ref 128005 // Session
classview_ref 129029 // Interface
componentview_ref 128266 // FileMapping
end
end