** Start Coding ** Renderengine sources generated, reformatted and made compilable.
This commit is contained in:
parent
014106f2a8
commit
ebb4da6cc7
123 changed files with 5409 additions and 1562 deletions
|
|
@ -60,7 +60,7 @@ def srcSubtree(env,tree,isShared=False, **args):
|
|||
|
||||
|
||||
|
||||
SRCPATTERNS = ['*.c','*.Cpp','*.cc']
|
||||
SRCPATTERNS = ['*.c','*.cpp','*.cc']
|
||||
|
||||
def scanSrcSubtree(root):
|
||||
""" scan the given subtree for source filesnames
|
||||
|
|
|
|||
31
src/common/time.cpp
Normal file
31
src/common/time.cpp
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
Time - unified representation of a time point, including conversion functions
|
||||
|
||||
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 "common/time.hpp"
|
||||
|
||||
namespace cinelerra
|
||||
{
|
||||
|
||||
|
||||
|
||||
} // namespace cinelerra
|
||||
42
src/common/time.hpp
Normal file
42
src/common/time.hpp
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
TIME.hpp - unified representation of a time point, including conversion functions
|
||||
|
||||
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 CINELERRA_TIME_H
|
||||
#define CINELERRA_TIME_H
|
||||
|
||||
|
||||
|
||||
namespace cinelerra
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* denotes a temporal position (time point), based on timeline start.
|
||||
*
|
||||
* investigate posix.4 realtime timers, wrap these here
|
||||
*/
|
||||
class Time
|
||||
{};
|
||||
|
||||
} // namespace cinelerra
|
||||
#endif
|
||||
|
|
@ -21,11 +21,12 @@
|
|||
*/
|
||||
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <stdio.h>
|
||||
using std::cout;
|
||||
|
||||
int main (int argc, char* argv[])
|
||||
{
|
||||
printf("hello cinelerra again\n");
|
||||
cout << "hello cinelerra again\n";
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
33
src/proc/controllerfacade.cpp
Normal file
33
src/proc/controllerfacade.cpp
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
ControllerFacade - Facade and service access point for the Proc Layer Controller
|
||||
|
||||
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/controllerfacade.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc
|
||||
46
src/proc/controllerfacade.hpp
Normal file
46
src/proc/controllerfacade.hpp
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
CONTROLLERFACADE.hpp - Facade and service access point for the Proc Layer Controller
|
||||
|
||||
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 PROC_CONTROLLERFACADE_H
|
||||
#define PROC_CONTROLLERFACADE_H
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Interface providing unified access to the Proc-Subsystem Controller.
|
||||
* Especially, this Facade class exports the functions to get a render
|
||||
* engine for carrying out actual renderings.
|
||||
*/
|
||||
class ControllerFacade
|
||||
{
|
||||
//////////
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
38
src/proc/engine/aframe.cpp
Normal file
38
src/proc/engine/aframe.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
AFrame - buffer holding a Audio samples for the render process
|
||||
|
||||
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/engine/aframe.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
45
src/proc/engine/aframe.hpp
Normal file
45
src/proc/engine/aframe.hpp
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
AFRAME.hpp - buffer holding a Audio samples for the render process
|
||||
|
||||
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 PROC_ENGINE_AFRAME_H
|
||||
#define PROC_ENGINE_AFRAME_H
|
||||
|
||||
#include "proc/frame.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
class AFrame : public proc::Frame
|
||||
{};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
38
src/proc/engine/arender.cpp
Normal file
38
src/proc/engine/arender.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
ARender - Representation of a Audio Render process
|
||||
|
||||
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/engine/arender.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
49
src/proc/engine/arender.hpp
Normal file
49
src/proc/engine/arender.hpp
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
ARENDER.hpp - Representation of a Audio Render process
|
||||
|
||||
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 PROC_ENGINE_ARENDER_H
|
||||
#define PROC_ENGINE_ARENDER_H
|
||||
|
||||
#include "proc/stateproxy.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Representation of a Audio render process
|
||||
*/
|
||||
class ARender : public proc::StateProxy
|
||||
{};
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
36
src/proc/engine/codecadapter.cpp
Normal file
36
src/proc/engine/codecadapter.cpp
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/*
|
||||
CodecAdapter - Processing Node for (de)coding media data
|
||||
|
||||
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/engine/codecadapter.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
53
src/proc/engine/codecadapter.hpp
Normal file
53
src/proc/engine/codecadapter.hpp
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
CODECADAPTER.hpp - Processing Node for (de)coding media data
|
||||
|
||||
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 PROC_ENGINE_CODECADAPTER_H
|
||||
#define PROC_ENGINE_CODECADAPTER_H
|
||||
|
||||
#include "proc/engine/trafo.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Adapter for wiring an externally loaded
|
||||
* codec into the render pipeline. The decoding
|
||||
* process thus is integrated into the framework
|
||||
* of the Renderengine, while the actual implementation
|
||||
* can be delegated to an external library accessed
|
||||
* through Cinelerra's datat backend.
|
||||
*/
|
||||
class CodecAdapter : public Trafo
|
||||
{};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
37
src/proc/engine/exitnode.cpp
Normal file
37
src/proc/engine/exitnode.cpp
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
ExitNode - special Processing Node providing "pullable" output
|
||||
|
||||
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/engine/exitnode.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
49
src/proc/engine/exitnode.hpp
Normal file
49
src/proc/engine/exitnode.hpp
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
EXITNODE.hpp - special Processing Node providing "pullable" output
|
||||
|
||||
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 PROC_ENGINE_EXITNODE_H
|
||||
#define PROC_ENGINE_EXITNODE_H
|
||||
|
||||
#include "proc/engine/procnode.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The output end of each render pipeline.
|
||||
* Pulling from such exit nodes actually ivokes the render process
|
||||
*/
|
||||
class ExitNode : public ProcNode
|
||||
{};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
38
src/proc/engine/glbuf.cpp
Normal file
38
src/proc/engine/glbuf.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
GLBuf - a buffer and render process holding a Video frame for OpenGL rendering
|
||||
|
||||
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/engine/glbuf.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
45
src/proc/engine/glbuf.hpp
Normal file
45
src/proc/engine/glbuf.hpp
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
GLBUF.hpp - a buffer and render process holding a Video frame for OpenGL rendering
|
||||
|
||||
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 PROC_ENGINE_GLBUF_H
|
||||
#define PROC_ENGINE_GLBUF_H
|
||||
|
||||
#include "proc/frame.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
class GLBuf : public proc::Frame
|
||||
{};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
38
src/proc/engine/glpipe.cpp
Normal file
38
src/proc/engine/glpipe.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
GLPipe - specialized connection element for handling OpenGL implementation details
|
||||
|
||||
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/engine/glpipe.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
50
src/proc/engine/glpipe.hpp
Normal file
50
src/proc/engine/glpipe.hpp
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
OPENGLPIPE.hpp - specialized connection element for handling OpenGL implementation details
|
||||
|
||||
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 PROC_ENGINE_OPENGLPIPE_H
|
||||
#define PROC_ENGINE_OPENGLPIPE_H
|
||||
|
||||
#include "proc/engine/link.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* specialized connection node used to handle the transfer of OpenGL data
|
||||
* from a image bitmap into texture form.
|
||||
*/
|
||||
class GLPipe : public Link
|
||||
{};
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
37
src/proc/engine/glrender.cpp
Normal file
37
src/proc/engine/glrender.cpp
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
GLRender - Representation of a OpenGL accellerated Video render process
|
||||
|
||||
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/engine/glrender.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
48
src/proc/engine/glrender.hpp
Normal file
48
src/proc/engine/glrender.hpp
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
GLRENDER.hpp - Representation of a OpenGL accellerated Video render process
|
||||
|
||||
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 PROC_ENGINE_GLRENDER_H
|
||||
#define PROC_ENGINE_GLRENDER_H
|
||||
|
||||
#include "proc/stateproxy.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Representation of a OpenGL accelerated Video render process
|
||||
*/
|
||||
class GLRender : public StateProxy
|
||||
{};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
38
src/proc/engine/hub.cpp
Normal file
38
src/proc/engine/hub.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
Hub - special ProcNode used to build data distributing connections
|
||||
|
||||
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/engine/hub.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
48
src/proc/engine/hub.hpp
Normal file
48
src/proc/engine/hub.hpp
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
HUB.hpp - special ProcNode used to build data distributing connections
|
||||
|
||||
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 PROC_ENGINE_HUB_H
|
||||
#define PROC_ENGINE_HUB_H
|
||||
|
||||
#include "proc/engine/procnode.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
class Hub : public ProcNode
|
||||
{};
|
||||
///TODO: seems rather we don't need this one anymore??
|
||||
//////// to be decided after the implementing the basic render engine....
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
38
src/proc/engine/link.cpp
Normal file
38
src/proc/engine/link.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
Link - forwarding, adapting or connecting ProcNode
|
||||
|
||||
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/engine/link.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
54
src/proc/engine/link.hpp
Normal file
54
src/proc/engine/link.hpp
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
PIPE.hpp - forwarding, adapting or connecting ProcNode
|
||||
|
||||
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 PROC_ENGINE_PIPE_H
|
||||
#define PROC_ENGINE_PIPE_H
|
||||
|
||||
#include "proc/engine/procnode.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Abstraction of all sorts of connecting Elements with
|
||||
* special functionality. For example the coneections enabling
|
||||
* to mix OpenGL implemented Effects/Previews with normal CPU based
|
||||
* processing in one render pipeline.
|
||||
*/
|
||||
class Link : public ProcNode
|
||||
{
|
||||
///////TODO: flatten hierarchy if we don't have common functionallity for all Link-Subclasses
|
||||
///////TODO: can be decdiede when we know more how to handle OpenGL rendering
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
38
src/proc/engine/mask.cpp
Normal file
38
src/proc/engine/mask.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
Mask - Video ProcNode for masking regions of the image (automatable)
|
||||
|
||||
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/engine/mask.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
46
src/proc/engine/mask.hpp
Normal file
46
src/proc/engine/mask.hpp
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
MASK.hpp - Video ProcNode for masking regions of the image (automatable)
|
||||
|
||||
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 PROC_ENGINE_MASK_H
|
||||
#define PROC_ENGINE_MASK_H
|
||||
|
||||
#include "proc/engine/trafo.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
class Mask : public Trafo
|
||||
{};
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
38
src/proc/engine/pluginadapter.cpp
Normal file
38
src/proc/engine/pluginadapter.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
PluginAdapter - Adapter for integrating various Effect processors in the render pipeline
|
||||
|
||||
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/engine/pluginadapter.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
52
src/proc/engine/pluginadapter.hpp
Normal file
52
src/proc/engine/pluginadapter.hpp
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
PLUGINADAPTER.hpp - Adapter for integrating various Effect processors in the render pipeline
|
||||
|
||||
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 PROC_ENGINE_PLUGINADAPTER_H
|
||||
#define PROC_ENGINE_PLUGINADAPTER_H
|
||||
|
||||
#include "proc/engine/trafo.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Adapter used to integrate an effects processor in the render pipeline.
|
||||
* Effects processors are typically defined in a separate library and
|
||||
* will be loaded at runtime using Cinelerra's plugin interface.
|
||||
*/
|
||||
class PluginAdapter : public Trafo
|
||||
{
|
||||
/////////////
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
40
src/proc/engine/processor.cpp
Normal file
40
src/proc/engine/processor.cpp
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
Processor - a single render pipeline for one segment of the timeline
|
||||
|
||||
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/engine/processor.hpp"
|
||||
#include "proc/engine/exitnode.hpp"
|
||||
#include "proc/stateproxy.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
58
src/proc/engine/processor.hpp
Normal file
58
src/proc/engine/processor.hpp
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
PROCESSOR.hpp - a single render pipeline for one segment of the timeline
|
||||
|
||||
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 PROC_ENGINE_PROCESSOR_H
|
||||
#define PROC_ENGINE_PROCESSOR_H
|
||||
|
||||
#include "common/time.hpp"
|
||||
#include "proc/stateproxy.hpp"
|
||||
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
class ExitNode;
|
||||
|
||||
class Processor
|
||||
{
|
||||
protected:
|
||||
ExitNode * output;
|
||||
|
||||
/** begin of the timerange covered by this processor */
|
||||
cinelerra::Time start;
|
||||
|
||||
/**end (exclusive) of the timerange */
|
||||
cinelerra::Time end;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
37
src/proc/engine/procnode.cpp
Normal file
37
src/proc/engine/procnode.cpp
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
ProcNode - Key abstraction of the Render Engine: a Processing Node
|
||||
|
||||
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/engine/procnode.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
63
src/proc/engine/procnode.hpp
Normal file
63
src/proc/engine/procnode.hpp
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
PROCNODE.hpp - Key abstraction of the Render Engine: a Processing Node
|
||||
|
||||
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 PROC_ENGINE_PROCNODE_H
|
||||
#define PROC_ENGINE_PROCNODE_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "proc/mobject/parameter.hpp"
|
||||
|
||||
|
||||
using std::vector;
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Key abstraction of the Render Engine: A Data processing Node
|
||||
*/
|
||||
class ProcNode
|
||||
{
|
||||
protected:
|
||||
typedef proc::mobject::Parameter<double> Param;
|
||||
|
||||
/** The predecessor in a processing pipeline.
|
||||
* I.e. a source to get data to be processed
|
||||
*/
|
||||
ProcNode * datasrc;
|
||||
|
||||
vector<Param> params;
|
||||
|
||||
};
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
38
src/proc/engine/projector.cpp
Normal file
38
src/proc/engine/projector.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
Projector - video ProcNode for scaling and translating image data
|
||||
|
||||
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/engine/projector.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
50
src/proc/engine/projector.hpp
Normal file
50
src/proc/engine/projector.hpp
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
PROJECTOR.hpp - video ProcNode for scaling and translating image data
|
||||
|
||||
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 PROC_ENGINE_PROJECTOR_H
|
||||
#define PROC_ENGINE_PROJECTOR_H
|
||||
|
||||
#include "proc/engine/trafo.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Special video processing node used to scale and translate image data.
|
||||
*/
|
||||
class Projector : public Trafo
|
||||
{
|
||||
////////////
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
45
src/proc/engine/renderengine.cpp
Normal file
45
src/proc/engine/renderengine.cpp
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
RenderEngine - a complete network of processing nodes usable for rendering
|
||||
|
||||
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/engine/renderengine.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* TODO: will probably be handled differently (see Cehteh)
|
||||
*/
|
||||
void
|
||||
RenderEngine::play ()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
58
src/proc/engine/renderengine.hpp
Normal file
58
src/proc/engine/renderengine.hpp
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
RENDERENGINE.hpp - a complete network of processing nodes usable for rendering
|
||||
|
||||
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 PROC_ENGINE_RENDERENGINE_H
|
||||
#define PROC_ENGINE_RENDERENGINE_H
|
||||
|
||||
#include <list>
|
||||
|
||||
#include "proc/engine/processor.hpp"
|
||||
|
||||
|
||||
using std::list;
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
class RenderEngine : public Processor
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* TODO: will probably be handled differently (see Cehteh)
|
||||
*/
|
||||
void play () ;
|
||||
|
||||
private:
|
||||
list<Processor> renderSegments;
|
||||
|
||||
};
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
38
src/proc/engine/source.cpp
Normal file
38
src/proc/engine/source.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
Source - Representation of a Media source
|
||||
|
||||
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/engine/source.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
53
src/proc/engine/source.hpp
Normal file
53
src/proc/engine/source.hpp
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
SOURCE.hpp - Representation of a Media source
|
||||
|
||||
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 PROC_ENGINE_SOURCE_H
|
||||
#define PROC_ENGINE_SOURCE_H
|
||||
|
||||
#include "proc/engine/procnode.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Source Node: represents a media source to pull data from.
|
||||
* Source is special, because it has no predecessor nodes,
|
||||
* but rather makes calls down to the data backend internally
|
||||
* to get at the raw data.
|
||||
*/
|
||||
class Source : public ProcNode
|
||||
{
|
||||
/////////////////TODO
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
37
src/proc/engine/trafo.cpp
Normal file
37
src/proc/engine/trafo.cpp
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
Trafo - transforming processing Node
|
||||
|
||||
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/engine/trafo.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
55
src/proc/engine/trafo.hpp
Normal file
55
src/proc/engine/trafo.hpp
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
TRAFO.hpp - transforming processing Node
|
||||
|
||||
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 PROC_ENGINE_TRAFO_H
|
||||
#define PROC_ENGINE_TRAFO_H
|
||||
|
||||
#include "proc/engine/procnode.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* abstraction of the most important kind of Processing node,
|
||||
* which really works on the media data and transforms input
|
||||
* into ouput. Subclasses include the (Video) Projector
|
||||
* for scaling/translating, all sorts of effects (Plugins),
|
||||
* as well as the low level codecs used to decode the raw
|
||||
* media at the source end of the render pipeline(s)
|
||||
*/
|
||||
class Trafo : public ProcNode
|
||||
{
|
||||
///////////
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
38
src/proc/engine/vframe.cpp
Normal file
38
src/proc/engine/vframe.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
VFrame - a buffer holding a Video frame for the render process
|
||||
|
||||
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/engine/vframe.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
47
src/proc/engine/vframe.hpp
Normal file
47
src/proc/engine/vframe.hpp
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
VFRAME.hpp - a buffer holding a Video frame for the render process
|
||||
|
||||
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 PROC_ENGINE_VFRAME_H
|
||||
#define PROC_ENGINE_VFRAME_H
|
||||
|
||||
#include "proc/frame.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
class VFrame : public proc::Frame
|
||||
{
|
||||
///////////////////////
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
37
src/proc/engine/vrender.cpp
Normal file
37
src/proc/engine/vrender.cpp
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
VRender - Representation of a Video render process
|
||||
|
||||
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/engine/vrender.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
51
src/proc/engine/vrender.hpp
Normal file
51
src/proc/engine/vrender.hpp
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
VRENDER.hpp - Representation of a Video render process
|
||||
|
||||
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 PROC_ENGINE_VRENDER_H
|
||||
#define PROC_ENGINE_VRENDER_H
|
||||
|
||||
#include "proc/stateproxy.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace engine
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Representation of a Video render process.
|
||||
* (Encapsulates the video buffers for the actual calculations)
|
||||
*/
|
||||
class VRender : public proc::StateProxy
|
||||
{
|
||||
/////////////
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::engine
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
33
src/proc/frame.cpp
Normal file
33
src/proc/frame.cpp
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
Frame - Key Abstraction: render process and buffer holding frame data.
|
||||
|
||||
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/frame.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc
|
||||
46
src/proc/frame.hpp
Normal file
46
src/proc/frame.hpp
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
FRAME.hpp - Key Abstraction: render process and buffer holding frame data.
|
||||
|
||||
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 PROC_FRAME_H
|
||||
#define PROC_FRAME_H
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* TODO: 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.
|
||||
*/
|
||||
class Frame
|
||||
{
|
||||
/////////////////
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
47
src/proc/mobject/buildable.cpp
Normal file
47
src/proc/mobject/buildable.cpp
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
Buildable - marker interface denoting any MObject able to be treated by Tools
|
||||
|
||||
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/buildable.hpp"
|
||||
#include "proc/mobject/builder/tool.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
|
||||
/** typically the provided actual Tool class will
|
||||
* contain overloaded fuctions for treating
|
||||
* different Buildable subclasses specifically
|
||||
*/
|
||||
void
|
||||
Buildable::apply (builder::Tool& provided_tool)
|
||||
{
|
||||
provided_tool.treat( *this); //// TODO: how to call??? (ref or pointer??)
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
55
src/proc/mobject/buildable.hpp
Normal file
55
src/proc/mobject/buildable.hpp
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
BUILDABLE.hpp - marker interface denoting any (M)Object able to be treated by Tools
|
||||
|
||||
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 PROC_MOBJECT_BUILDABLE_H
|
||||
#define PROC_MOBJECT_BUILDABLE_H
|
||||
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
|
||||
namespace builder{ class Tool; }
|
||||
|
||||
|
||||
/**
|
||||
* All Buidables support double-dispatch of given Tool operations.
|
||||
* The actual operation is thus selected at runtime based both on the
|
||||
* actual type of the Tool class /and/ the actual type of the Buildabele.
|
||||
*/
|
||||
class Buildable
|
||||
{
|
||||
public:
|
||||
void apply (builder::Tool& provided_tool) ;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
47
src/proc/mobject/builder/assembler.cpp
Normal file
47
src/proc/mobject/builder/assembler.cpp
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
Assembler - building facility (implementation of the build process)
|
||||
|
||||
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/builder/assembler.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace builder
|
||||
{
|
||||
|
||||
|
||||
|
||||
proc::engine::RenderEngine &
|
||||
Assembler::build ()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::builder
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
58
src/proc/mobject/builder/assembler.hpp
Normal file
58
src/proc/mobject/builder/assembler.hpp
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
ASSEMBLER.hpp - building facility (implementation of the build process)
|
||||
|
||||
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 PROC_MOBJECT_BUILDER_ASSEMBLER_H
|
||||
#define PROC_MOBJECT_BUILDER_ASSEMBLER_H
|
||||
|
||||
#include "proc/engine/renderengine.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace builder
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* This is the actual building facility:
|
||||
* provided the correct tools and associations,
|
||||
* it serves to build and connect the individual ProcNode objects
|
||||
*/
|
||||
class Assembler
|
||||
{
|
||||
public:
|
||||
proc::engine::RenderEngine & build () ;
|
||||
// TODO: allocation, GC???
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::builder
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
49
src/proc/mobject/builder/conmanager.cpp
Normal file
49
src/proc/mobject/builder/conmanager.cpp
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
ConManager - manages the creation of additional ProcNode connections for the Renderengine
|
||||
|
||||
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/builder/conmanager.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace builder
|
||||
{
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* TODO !!!!!!!!!!!!!!!!!!
|
||||
*/
|
||||
int
|
||||
ConManager::getConnection ()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::builder
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
59
src/proc/mobject/builder/conmanager.hpp
Normal file
59
src/proc/mobject/builder/conmanager.hpp
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
CONMANAGER.hpp - manages the creation of additional ProcNode connections for the Renderengine
|
||||
|
||||
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 PROC_MOBJECT_BUILDER_CONMANAGER_H
|
||||
#define PROC_MOBJECT_BUILDER_CONMANAGER_H
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace builder
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Connection Manager: used to build the connections between render engine nodes
|
||||
* if these nodes need to cooperate besides the normal "data pull" operation.
|
||||
* Esp. the Connection Manager knows how to wire up the effect's parameters
|
||||
* with the corresponding ParamProviders (autmation) in the Session.
|
||||
*/
|
||||
class ConManager
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* TODO just a design sketch, work out signatures etc...
|
||||
*/
|
||||
int getConnection () ;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::builder
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
74
src/proc/mobject/builder/nodecreatertool.cpp
Normal file
74
src/proc/mobject/builder/nodecreatertool.cpp
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
/*
|
||||
NodeCreaterTool - central Tool implementing the Renderengine building
|
||||
|
||||
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/builder/nodecreatertool.hpp"
|
||||
#include "proc/mobject/buildable.hpp"
|
||||
#include "proc/mobject/session/clip.hpp"
|
||||
#include "proc/mobject/session/effect.hpp"
|
||||
#include "proc/mobject/session/auto.hpp"
|
||||
|
||||
|
||||
using proc::mobject::Buildable;
|
||||
using proc::mobject::session::Clip;
|
||||
using proc::mobject::session::Effect;
|
||||
using proc::mobject::session::Auto;
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace builder
|
||||
{
|
||||
|
||||
|
||||
|
||||
void
|
||||
NodeCreatorTool::treat (Buildable& something)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
NodeCreatorTool::treat (Clip& clip)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
NodeCreatorTool::treat (Effect& effect)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
NodeCreatorTool::treat (Auto<double>& automation)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::builder
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
82
src/proc/mobject/builder/nodecreatertool.hpp
Normal file
82
src/proc/mobject/builder/nodecreatertool.hpp
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
/*
|
||||
NODECREATERTOOL.hpp - central Tool implementing the Renderengine building
|
||||
|
||||
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 PROC_MOBJECT_BUILDER_NODECREATERTOOL_H
|
||||
#define PROC_MOBJECT_BUILDER_NODECREATERTOOL_H
|
||||
|
||||
#include "proc/mobject/builder/tool.hpp"
|
||||
#include "proc/mobject/buildable.hpp"
|
||||
#include "proc/engine/processor.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
// Forward declarations
|
||||
class Effect;
|
||||
class Clip;
|
||||
template<class VAL> class Auto;
|
||||
}
|
||||
|
||||
namespace builder
|
||||
{
|
||||
|
||||
|
||||
|
||||
// TODO: define Lifecycle...
|
||||
|
||||
/**
|
||||
* This Tool implementation plays the central role in the buld process:
|
||||
* given a MObject from Session, it is able to attach ProcNodes to the
|
||||
* render engine under construction such as to reflect the properties
|
||||
* of the MObject in the actual render.
|
||||
*/
|
||||
class NodeCreatorTool : public Tool
|
||||
{
|
||||
public:
|
||||
virtual void treat (proc::mobject::session::Clip& clip) ;
|
||||
virtual void treat (proc::mobject::session::Effect& effect) ;
|
||||
virtual void treat (proc::mobject::session::Auto<double>& automation) ; //TODO: the automation-type-problem
|
||||
virtual void treat (proc::mobject::Buildable& something) ;
|
||||
|
||||
|
||||
protected:
|
||||
/** holds the Processor (Render Engine Element)
|
||||
* to be built by the current build step
|
||||
*/
|
||||
proc::engine::Processor* proc;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::builder
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
67
src/proc/mobject/builder/segmentationtool.cpp
Normal file
67
src/proc/mobject/builder/segmentationtool.cpp
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
SegmentationTool - Tool for creating a partitioning of the current timeline
|
||||
|
||||
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/builder/segmentationtool.hpp"
|
||||
#include "proc/mobject/buildable.hpp"
|
||||
#include "proc/mobject/session/clip.hpp"
|
||||
#include "proc/mobject/session/effect.hpp"
|
||||
#include "proc/mobject/session/segment.hpp"
|
||||
|
||||
using proc::mobject::Buildable;
|
||||
using proc::mobject::session::Clip;
|
||||
using proc::mobject::session::Effect;
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace builder
|
||||
{
|
||||
|
||||
|
||||
|
||||
void
|
||||
SegmentationTool::treat (Buildable& something)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
SegmentationTool::treat (Clip& clip)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
SegmentationTool::treat (Effect& effect)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::builder
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
83
src/proc/mobject/builder/segmentationtool.hpp
Normal file
83
src/proc/mobject/builder/segmentationtool.hpp
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
SEGMENTATIONTOOL.hpp - Tool for creating a partitioning of the current timeline
|
||||
|
||||
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 PROC_MOBJECT_BUILDER_SEGMENTATIONTOOL_H
|
||||
#define PROC_MOBJECT_BUILDER_SEGMENTATIONTOOL_H
|
||||
|
||||
#include <list>
|
||||
|
||||
#include "proc/mobject/buildable.hpp"
|
||||
#include "proc/mobject/builder/tool.hpp"
|
||||
#include "proc/mobject/session/segment.hpp"
|
||||
|
||||
using std::list;
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
// Forward declarations
|
||||
class Clip;
|
||||
class Effect;
|
||||
}
|
||||
|
||||
namespace builder
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Tool implementation for deriving a partitioning of the current
|
||||
* timeline, such that each segement has a constant configuration.
|
||||
* "Constant" means here, that any remaining changes over time
|
||||
* can be represented by automation solely, without the need
|
||||
* to change the node connections.
|
||||
*/
|
||||
class SegmentationTool : public Tool
|
||||
{
|
||||
public:
|
||||
void treat (proc::mobject::session::Clip& clip) ;
|
||||
void treat (proc::mobject::session::Effect& effect) ;
|
||||
|
||||
void treat (proc::mobject::Buildable& something) ;
|
||||
|
||||
protected:
|
||||
typedef proc::mobject::session::Segment Segment;
|
||||
|
||||
/** Partitioning of the Timeline to be created by this tool. */
|
||||
list<Segment*> segments;
|
||||
// TODO handle alloc!!!!
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::builder
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
44
src/proc/mobject/builder/tool.cpp
Normal file
44
src/proc/mobject/builder/tool.cpp
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
Tool - Interface, any tool for processing MObjects
|
||||
|
||||
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/builder/tool.hpp"
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace builder
|
||||
{
|
||||
|
||||
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::builder
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
61
src/proc/mobject/builder/tool.hpp
Normal file
61
src/proc/mobject/builder/tool.hpp
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
TOOL.hpp - Interface, any tool for processing MObjects
|
||||
|
||||
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 PROC_MOBJECT_BUILDER_TOOL_H
|
||||
#define PROC_MOBJECT_BUILDER_TOOL_H
|
||||
|
||||
#include "proc/mobject/buildable.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace builder
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Used according to the visitor pattern: each Tool contains
|
||||
* the concrete implementation for one task to be done to the various MObject classes
|
||||
*/
|
||||
class Tool
|
||||
{
|
||||
protected:
|
||||
typedef proc::mobject::Buildable Buildable;
|
||||
|
||||
public:
|
||||
/** This operation is to be overloaded for specific MObject subclasses to be treated.
|
||||
*/
|
||||
virtual void treat (Buildable& mElement) = 0;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::builder
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
46
src/proc/mobject/builder/toolfactory.cpp
Normal file
46
src/proc/mobject/builder/toolfactory.cpp
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
ToolFactory - supply of Tool implementations for the Builder
|
||||
|
||||
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/builder/toolfactory.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace builder
|
||||
{
|
||||
|
||||
|
||||
|
||||
Tool&
|
||||
ToolFactory::configure ()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::builder
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
52
src/proc/mobject/builder/toolfactory.hpp
Normal file
52
src/proc/mobject/builder/toolfactory.hpp
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
TOOLFACTORY.hpp - supply of Tool implementations for the Builder
|
||||
|
||||
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 PROC_MOBJECT_BUILDER_TOOLFACTORY_H
|
||||
#define PROC_MOBJECT_BUILDER_TOOLFACTORY_H
|
||||
|
||||
#include "proc/mobject/builder/tool.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace builder
|
||||
{
|
||||
|
||||
|
||||
class ToolFactory
|
||||
{
|
||||
public:
|
||||
Tool & configure () ;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::builder
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
46
src/proc/mobject/builderfacade.cpp
Normal file
46
src/proc/mobject/builderfacade.cpp
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
BuilderFacade - Facade and service access point for the Builder Subsystem
|
||||
|
||||
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/builderfacade.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Main Operation of the Builder:
|
||||
* create a render engine for a given part of the timeline
|
||||
*/
|
||||
proc::engine::RenderEngine &
|
||||
BuilderFacade::buildEngine ()
|
||||
{
|
||||
//////////////////////TODO
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
59
src/proc/mobject/builderfacade.hpp
Normal file
59
src/proc/mobject/builderfacade.hpp
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
BUILDERFACADE.hpp - Facade and service access point for the Builder Subsystem
|
||||
|
||||
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 PROC_MOBJECT_BUILDERFACADE_H
|
||||
#define PROC_MOBJECT_BUILDERFACADE_H
|
||||
|
||||
#include "proc/engine/renderengine.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Provides unified access to the builder functionality.
|
||||
* While individual components of the builder subsystem may be called
|
||||
* if necessary or suitable, it is usually better to do all extern invocations
|
||||
* via the high level methods of this Facade.
|
||||
*/
|
||||
class BuilderFacade
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Main Operation of the Builder:
|
||||
* create a render engine for a given part of the timeline
|
||||
*/
|
||||
proc::engine::RenderEngine & buildEngine () ;
|
||||
// TODO: allocation, GC??????
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
47
src/proc/mobject/controller/pathmanager.cpp
Normal file
47
src/proc/mobject/controller/pathmanager.cpp
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
PathManager - Manager for deciding the actual render strategy
|
||||
|
||||
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/controller/pathmanager.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace controller
|
||||
{
|
||||
|
||||
|
||||
|
||||
proc::engine::Processor *
|
||||
PathManager::buildProcessor ()
|
||||
{
|
||||
return 0;//////////////////TODO
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::controller
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
58
src/proc/mobject/controller/pathmanager.hpp
Normal file
58
src/proc/mobject/controller/pathmanager.hpp
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
PATHMANAGER.hpp - Manager for deciding the actual render strategy
|
||||
|
||||
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 PROC_MOBJECT_CONTROLLER_PATHMANAGER_H
|
||||
#define PROC_MOBJECT_CONTROLLER_PATHMANAGER_H
|
||||
|
||||
#include "proc/engine/processor.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace controller
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* While building a render engine, this Strategy class
|
||||
* decides on the actual render strategy in accordance
|
||||
* to the current controller settings (system state)
|
||||
*/
|
||||
class PathManager
|
||||
{
|
||||
public:
|
||||
proc::engine::Processor* buildProcessor () ;
|
||||
// TODO: allocation, GC??
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::controller
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
47
src/proc/mobject/controller/renderstate.cpp
Normal file
47
src/proc/mobject/controller/renderstate.cpp
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
RenderState - renderengine state manager
|
||||
|
||||
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/controller/renderstate.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace controller
|
||||
{
|
||||
|
||||
|
||||
|
||||
StateProxy&
|
||||
RenderState::getStateProxy ()
|
||||
{
|
||||
//////////////TODO
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::controller
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
59
src/proc/mobject/controller/renderstate.hpp
Normal file
59
src/proc/mobject/controller/renderstate.hpp
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
RENDERSTATE.hpp - renderengine state manager
|
||||
|
||||
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 PROC_MOBJECT_CONTROLLER_RENDERSTATE_H
|
||||
#define PROC_MOBJECT_CONTROLLER_RENDERSTATE_H
|
||||
|
||||
#include "proc/stateproxy.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace controller
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Encapsulates the logic used to get a "current render process"
|
||||
* in accordance to the currently 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.
|
||||
*/
|
||||
class RenderState
|
||||
{
|
||||
public:
|
||||
StateProxy& getStateProxy () ;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::controller
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
37
src/proc/mobject/explicitplacement.cpp
Normal file
37
src/proc/mobject/explicitplacement.cpp
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
ExplicitPlacement - special Placement yielding an absolute location (Time,Track)-location for a MObject
|
||||
|
||||
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/explicitplacement.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
55
src/proc/mobject/explicitplacement.hpp
Normal file
55
src/proc/mobject/explicitplacement.hpp
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
EXPLICITPLACEMENT.hpp - special Placement yielding an absolute location (Time,Track)-location for a MObject
|
||||
|
||||
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 PROC_MOBJECT_EXPLICITPLACEMENT_H
|
||||
#define PROC_MOBJECT_EXPLICITPLACEMENT_H
|
||||
|
||||
#include "proc/mobject/placement.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
namespace session{ class Track; }
|
||||
|
||||
|
||||
// TODO: need Garbage Collector for this class!!!!!
|
||||
|
||||
class ExplicitPlacement : public Placement
|
||||
{
|
||||
protected:
|
||||
|
||||
Time time;
|
||||
Track* track;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
37
src/proc/mobject/interpolator.cpp
Normal file
37
src/proc/mobject/interpolator.cpp
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
Interpolator - denotes a facility to get (continuously interpolated) parameter values
|
||||
|
||||
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/interpolator.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
50
src/proc/mobject/interpolator.hpp
Normal file
50
src/proc/mobject/interpolator.hpp
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
INTERPOLATOR.hpp - denotes a facility to get (continuously interpolated) parameter values
|
||||
|
||||
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 PROC_MOBJECT_INTERPOLATOR_H
|
||||
#define PROC_MOBJECT_INTERPOLATOR_H
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Provides the implementation for getting the acutal value
|
||||
* of a time varying or automated effect/plugin parameter
|
||||
*/
|
||||
template<class VAL>
|
||||
class Interpolator
|
||||
{
|
||||
///////////////
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
37
src/proc/mobject/mobject.cpp
Normal file
37
src/proc/mobject/mobject.cpp
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
MObject - Key Abstraction: A Media Object in the Session
|
||||
|
||||
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/mobject.hpp"
|
||||
#include "proc/mobject/placement.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
67
src/proc/mobject/mobject.hpp
Normal file
67
src/proc/mobject/mobject.hpp
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
MOBJECT.hpp - Key Abstraction: A Media Object in the Session
|
||||
|
||||
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 PROC_MOBJECT_MOBJECT_H
|
||||
#define PROC_MOBJECT_MOBJECT_H
|
||||
|
||||
#include <list>
|
||||
|
||||
#include "common/time.hpp"
|
||||
#include "proc/mobject/buildable.hpp"
|
||||
|
||||
|
||||
using std::list;
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
class Placement;
|
||||
|
||||
|
||||
/**
|
||||
* MObject is the interface class for all "Media Objects".
|
||||
* All the contents and elements that can be placed and
|
||||
* manipulated and finally rendered within Cinelerra's EDL
|
||||
* are MObjects.
|
||||
*/
|
||||
class MObject : public Buildable
|
||||
{
|
||||
protected:
|
||||
typedef cinelerra::Time Time;
|
||||
|
||||
// TODO: how to represent time intervals best?
|
||||
Time length;
|
||||
|
||||
list<Placement *> placement;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
43
src/proc/mobject/parameter.cpp
Normal file
43
src/proc/mobject/parameter.cpp
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
Parameter - representation of an automatable effect/plugin parameter
|
||||
|
||||
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/parameter.hpp"
|
||||
#include "proc/mobject/paramprovider.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
template<class VAL>
|
||||
VAL
|
||||
Parameter<VAL>::getValue ()
|
||||
{
|
||||
////////////TODO
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
59
src/proc/mobject/parameter.hpp
Normal file
59
src/proc/mobject/parameter.hpp
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
PARAMETER.hpp - representation of an automatable effect/plugin parameter
|
||||
|
||||
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 PROC_MOBJECT_PARAMETER_H
|
||||
#define PROC_MOBJECT_PARAMETER_H
|
||||
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
template<class VAL> class ParamProvider;
|
||||
|
||||
|
||||
/**
|
||||
* Descriptor and access object for a plugin parameter.
|
||||
* Parameters may be provided with values from the session,
|
||||
* and this values may be automated.
|
||||
*/
|
||||
template<class VAL>
|
||||
class Parameter
|
||||
{
|
||||
public:
|
||||
VAL getValue () ;
|
||||
|
||||
protected:
|
||||
ParamProvider<VAL>* provider;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
44
src/proc/mobject/paramprovider.cpp
Normal file
44
src/proc/mobject/paramprovider.cpp
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
ParamProvider - interface denoting a source for actual Parameter values
|
||||
|
||||
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/paramprovider.hpp"
|
||||
#include "proc/mobject/parameter.hpp"
|
||||
#include "proc/mobject/interpolator.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
|
||||
template<class VAL>
|
||||
VAL
|
||||
ParamProvider<VAL>::getValue ()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
59
src/proc/mobject/paramprovider.hpp
Normal file
59
src/proc/mobject/paramprovider.hpp
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
PARAMPROVIDER.hpp - interface denoting a source for actual Parameter values
|
||||
|
||||
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 PROC_MOBJECT_PARAMPROVIDER_H
|
||||
#define PROC_MOBJECT_PARAMPROVIDER_H
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
template<class VAL> class Parameter;
|
||||
template<class VAL> class Interpolator;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* A facility to get the actual value of a plugin/effect parameter
|
||||
*/
|
||||
template<class VAL>
|
||||
class ParamProvider
|
||||
{
|
||||
protected:
|
||||
Parameter<VAL>* param;
|
||||
Interpolator<VAL>* ipo;
|
||||
|
||||
|
||||
public:
|
||||
virtual VAL getValue () ;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
47
src/proc/mobject/placement.cpp
Normal file
47
src/proc/mobject/placement.cpp
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
Placement - Key Abstraction: a way to place and locate a Media Object
|
||||
|
||||
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/placement.hpp"
|
||||
#include "proc/mobject/explicitplacement.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
|
||||
|
||||
/** create an actual (explicit) placement while trying to
|
||||
* satisfy the network of adjacent objects and placements.
|
||||
* TODO: need GC!!!!!!!!!!!
|
||||
*/
|
||||
ExplicitPlacement&
|
||||
Placement::resolve ()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
61
src/proc/mobject/placement.hpp
Normal file
61
src/proc/mobject/placement.hpp
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
PLACEMENT.hpp - Key Abstraction: a way to place and locate a Media Object
|
||||
|
||||
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 PROC_MOBJECT_PLACEMENT_H
|
||||
#define PROC_MOBJECT_PLACEMENT_H
|
||||
|
||||
#include "proc/mobject/mobject.hpp"
|
||||
#include "proc/mobject/session/track.hpp"
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
|
||||
|
||||
class ExplicitPlacement;
|
||||
|
||||
|
||||
class Placement
|
||||
{
|
||||
protected:
|
||||
typedef cinelerra::Time Time;
|
||||
typedef proc::mobject::session::Track Track;
|
||||
|
||||
MObject* subject;
|
||||
|
||||
|
||||
public:
|
||||
/** resolve the network of placement and
|
||||
* provide the resulting (explicit) placement.
|
||||
*/
|
||||
ExplicitPlacement& resolve () ;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
41
src/proc/mobject/session/abstractmo.cpp
Normal file
41
src/proc/mobject/session/abstractmo.cpp
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
AbstractMO - abstract base class for all Media Objects
|
||||
|
||||
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/abstractmo.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
51
src/proc/mobject/session/abstractmo.hpp
Normal file
51
src/proc/mobject/session/abstractmo.hpp
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
ABSTRACTMO.hpp - abstract base class for all Media Objects
|
||||
|
||||
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 PROC_MOBJECT_SESSION_ABSTRACTMO_H
|
||||
#define PROC_MOBJECT_SESSION_ABSTRACTMO_H
|
||||
|
||||
#include "proc/mobject/mobject.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
|
||||
class AbstractMO : public MObject
|
||||
{
|
||||
////////////// TODO: work out common services to provide!!!!
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
41
src/proc/mobject/session/allocation.cpp
Normal file
41
src/proc/mobject/session/allocation.cpp
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
Allocation - directive to place a MObject in a specific way
|
||||
|
||||
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/allocation.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
66
src/proc/mobject/session/allocation.hpp
Normal file
66
src/proc/mobject/session/allocation.hpp
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
ALLOCATION.hpp - directive to place a MObject in a specific way
|
||||
|
||||
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 PROC_MOBJECT_SESSION_ALLOCATION_H
|
||||
#define PROC_MOBJECT_SESSION_ALLOCATION_H
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "proc/mobject/placement.hpp"
|
||||
|
||||
|
||||
using std::string;
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* a directive to place a MObject in a specific way
|
||||
*/
|
||||
class Allocation : public Placement
|
||||
{
|
||||
protected:
|
||||
/** human readable representation of the condition
|
||||
* characterizing this allocaton, e.g. "t >= 10"
|
||||
*/
|
||||
string repr;
|
||||
|
||||
public:
|
||||
const string& getRepr () const { return repr; }
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
48
src/proc/mobject/session/auto.cpp
Normal file
48
src/proc/mobject/session/auto.cpp
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
Auto - Media Object holding automation data
|
||||
|
||||
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/auto.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
|
||||
template<class VAL>
|
||||
VAL
|
||||
Auto<VAL>::getValue ()
|
||||
{
|
||||
return 0; //////////////TODO
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
58
src/proc/mobject/session/auto.hpp
Normal file
58
src/proc/mobject/session/auto.hpp
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
AUTO.hpp - Media Object holding automation data
|
||||
|
||||
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 PROC_MOBJECT_SESSION_AUTO_H
|
||||
#define PROC_MOBJECT_SESSION_AUTO_H
|
||||
|
||||
#include "proc/mobject/session/meta.hpp"
|
||||
#include "proc/mobject/paramprovider.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Automation data for some parameter
|
||||
* (i.e. the parameter is a time varying function)
|
||||
*/
|
||||
template<class VAL>
|
||||
class Auto : public Meta, public ParamProvider<VAL>
|
||||
{
|
||||
public:
|
||||
virtual VAL getValue () ;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
41
src/proc/mobject/session/clip.cpp
Normal file
41
src/proc/mobject/session/clip.cpp
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
Clip - a Media Clip
|
||||
|
||||
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/clip.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
68
src/proc/mobject/session/clip.hpp
Normal file
68
src/proc/mobject/session/clip.hpp
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
/*
|
||||
CLIP.hpp - a Media Clip
|
||||
|
||||
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 PROC_MOBJECT_SESSION_CLIP_H
|
||||
#define PROC_MOBJECT_SESSION_CLIP_H
|
||||
|
||||
#include "proc/mobject/session/abstractmo.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
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
|
||||
* into the ouput. The actual media type of a clip will be derived
|
||||
* at runtime by resolving this reference to the underlying Asset.
|
||||
*
|
||||
* TODO: define how to denote Time positions /lengths. This is tricky,
|
||||
* because it depends on the actual media type, and we wand to encapsulate
|
||||
* all these details as much as possible.
|
||||
*/
|
||||
class Clip : public AbstractMO
|
||||
{
|
||||
protected:
|
||||
/** startpos in source */
|
||||
Time start;
|
||||
|
||||
//TODO: where to put the duration ???
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
43
src/proc/mobject/session/edl.cpp
Normal file
43
src/proc/mobject/session/edl.cpp
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
EDL - the (high level) Edit Decision List within the current Session
|
||||
|
||||
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/edl.hpp"
|
||||
#include "proc/mobject/session/track.hpp"
|
||||
#include "proc/mobject/mobject.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
59
src/proc/mobject/session/edl.hpp
Normal file
59
src/proc/mobject/session/edl.hpp
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
EDL.hpp - the (high level) Edit Decision List within the current Session
|
||||
|
||||
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 PROC_MOBJECT_SESSION_EDL_H
|
||||
#define PROC_MOBJECT_SESSION_EDL_H
|
||||
|
||||
#include <list>
|
||||
|
||||
#include "proc/mobject/mobject.hpp"
|
||||
#include "proc/mobject/session/track.hpp"
|
||||
|
||||
|
||||
using std::list;
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
|
||||
class EDL
|
||||
{
|
||||
protected:
|
||||
list<Track *> tracks;
|
||||
list<MObject *> clips;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
41
src/proc/mobject/session/effect.cpp
Normal file
41
src/proc/mobject/session/effect.cpp
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
Effect - EDL representation of a pluggable and automatable effect.
|
||||
|
||||
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/effect.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
58
src/proc/mobject/session/effect.hpp
Normal file
58
src/proc/mobject/session/effect.hpp
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
EFFECT.hpp - EDL representation of a pluggable and automatable effect.
|
||||
|
||||
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 PROC_MOBJECT_SESSION_EFFECT_H
|
||||
#define PROC_MOBJECT_SESSION_EFFECT_H
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "proc/mobject/session/abstractmo.hpp"
|
||||
|
||||
|
||||
using std::string;
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
|
||||
class Effect : public AbstractMO
|
||||
{
|
||||
protected:
|
||||
/** Identifier of the Plugin to be used */
|
||||
string plugID;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
41
src/proc/mobject/session/fixedplacement.cpp
Normal file
41
src/proc/mobject/session/fixedplacement.cpp
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
${Name} - ???????????? needed any longer?
|
||||
|
||||
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/fixedplacement.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
53
src/proc/mobject/session/fixedplacement.hpp
Normal file
53
src/proc/mobject/session/fixedplacement.hpp
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
FIXEDPLACEMENT.hpp - TODO: didn't we plan to rename ExplicitPlacement to DirectPlacement??
|
||||
|
||||
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 PROC_MOBJECT_SESSION_FIXEDPLACEMENT_H
|
||||
#define PROC_MOBJECT_SESSION_FIXEDPLACEMENT_H
|
||||
|
||||
#include "proc/mobject/placement.hpp"
|
||||
#include "proc/mobject/explicitplacement.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
// TODO: didn't we plan to rename ExplicitPlacement to DirectPlacement??
|
||||
|
||||
class DirectPlacement : public ExplicitPlacement
|
||||
{
|
||||
///////////
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
57
src/proc/mobject/session/fixture.cpp
Normal file
57
src/proc/mobject/session/fixture.cpp
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
Fixture - the (low level) representation of the EDL with concrete placement data
|
||||
|
||||
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/fixture.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
|
||||
|
||||
list<ExplicitPlacement*> &
|
||||
Fixture::getPlaylistForRender ()
|
||||
{
|
||||
abort();/////////////////////TODO
|
||||
}
|
||||
|
||||
|
||||
/** TODO: a placeholder for the Operation needed for
|
||||
* wiring the Automation providers in the Build process
|
||||
*/
|
||||
Auto<double>*
|
||||
Fixture::getAutomation ()
|
||||
{
|
||||
return 0;/////////////////////TODO
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
66
src/proc/mobject/session/fixture.hpp
Normal file
66
src/proc/mobject/session/fixture.hpp
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
FIXTURE.hpp - the (low level) representation of the EDL with concrete placement data
|
||||
|
||||
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 PROC_MOBJECT_SESSION_FIXTURE_H
|
||||
#define PROC_MOBJECT_SESSION_FIXTURE_H
|
||||
|
||||
#include <list>
|
||||
|
||||
#include "proc/mobject/session/edl.hpp"
|
||||
#include "proc/mobject/session/track.hpp"
|
||||
#include "proc/mobject/explicitplacement.hpp"
|
||||
#include "proc/mobject/session/auto.hpp"
|
||||
|
||||
|
||||
using std::list;
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
|
||||
|
||||
class Fixture : public EDL
|
||||
{
|
||||
protected:
|
||||
Track tracks;
|
||||
list<ExplicitPlacement*> timeline;
|
||||
|
||||
|
||||
public:
|
||||
list<ExplicitPlacement*> & getPlaylistForRender () ;
|
||||
Auto<double>* getAutomation () ; /////TODO: just a placeholder at the moment!!!
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
41
src/proc/mobject/session/label.cpp
Normal file
41
src/proc/mobject/session/label.cpp
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
Label - a user visible Marker or Tag
|
||||
|
||||
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/label.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
56
src/proc/mobject/session/label.hpp
Normal file
56
src/proc/mobject/session/label.hpp
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
/*
|
||||
LABEL.hpp - a user visible Marker or Tag
|
||||
|
||||
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 PROC_MOBJECT_SESSION_LABEL_H
|
||||
#define PROC_MOBJECT_SESSION_LABEL_H
|
||||
|
||||
#include "proc/mobject/session/meta.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Any sort of User visible Marker or Tag, used
|
||||
* to mark time positions and ranges, or specific
|
||||
* locations to attach other MObjects to.
|
||||
*/
|
||||
class Label : public Meta
|
||||
{
|
||||
///////////TODO: timespan fields here or already in class Meta??
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
41
src/proc/mobject/session/meta.cpp
Normal file
41
src/proc/mobject/session/meta.cpp
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
Meta - abstract base class of all MObjects representing meta data or processing instructions
|
||||
|
||||
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/meta.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
57
src/proc/mobject/session/meta.hpp
Normal file
57
src/proc/mobject/session/meta.hpp
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
META.hpp - abstract base class of all MObjects representing meta data or processing instructions
|
||||
|
||||
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 PROC_MOBJECT_SESSION_META_H
|
||||
#define PROC_MOBJECT_SESSION_META_H
|
||||
|
||||
#include "proc/mobject/session/abstractmo.hpp"
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
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.
|
||||
*/
|
||||
class Meta : public AbstractMO
|
||||
{
|
||||
///////////
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
40
src/proc/mobject/session/relativeplacement.cpp
Normal file
40
src/proc/mobject/session/relativeplacement.cpp
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
RelativePlacement - Placement implemnetaion providing various ways of attaching a MObject to another one
|
||||
|
||||
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/relativeplacement.hpp"
|
||||
#include "proc/mobject/mobject.hpp"
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
73
src/proc/mobject/session/relativeplacement.hpp
Normal file
73
src/proc/mobject/session/relativeplacement.hpp
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
/*
|
||||
RELATIVEPLACEMENT.hpp - Placement implemnetaion providing various ways of attaching a MObject to another one
|
||||
|
||||
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 PROC_MOBJECT_SESSION_RELATIVEPLACEMENT_H
|
||||
#define PROC_MOBJECT_SESSION_RELATIVEPLACEMENT_H
|
||||
|
||||
#include "proc/mobject/placement.hpp"
|
||||
#include "common/time.hpp"
|
||||
|
||||
|
||||
|
||||
|
||||
namespace proc
|
||||
{
|
||||
namespace mobject
|
||||
{
|
||||
namespace session
|
||||
{
|
||||
|
||||
|
||||
|
||||
class RelativePlacement : public proc::mobject::Placement
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* the possible kinds of RelativePlacements
|
||||
*/
|
||||
enum RelType
|
||||
{ SAMETIME /** place subject at the same time as the anchor */
|
||||
, ATTACH /** attach subject to anchor (e.g. an effect to a clip) */
|
||||
};
|
||||
|
||||
protected:
|
||||
MObject* anchor;
|
||||
|
||||
/** the kind of relation denoted by this Placement */
|
||||
RelType relType;
|
||||
|
||||
/** Offset the actual position by this (time) value relative to the anchor point. */
|
||||
cinelerra::Time offset;
|
||||
//TODO: suitable representation?
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc::mobject::session
|
||||
|
||||
} // namespace proc::mobject
|
||||
|
||||
} // namespace proc
|
||||
#endif
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue