** 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):
|
def scanSrcSubtree(root):
|
||||||
""" scan the given subtree for source filesnames
|
""" 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[])
|
int main (int argc, char* argv[])
|
||||||
{
|
{
|
||||||
printf("hello cinelerra again\n");
|
cout << "hello cinelerra again\n";
|
||||||
return 0;
|
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