tomwalters@397
|
1 // Copyright 2006-2010, Willem van Engen, Thomas Walters
|
tomwalters@397
|
2 //
|
tomwalters@397
|
3 // AIM-C: A C++ implementation of the Auditory Image Model
|
tomwalters@397
|
4 // http://www.acousticscale.org/AIMC
|
tomwalters@397
|
5 //
|
tomwalters@397
|
6 // Licensed under the Apache License, Version 2.0 (the "License");
|
tomwalters@397
|
7 // you may not use this file except in compliance with the License.
|
tomwalters@397
|
8 // You may obtain a copy of the License at
|
tomwalters@397
|
9 //
|
tomwalters@397
|
10 // http://www.apache.org/licenses/LICENSE-2.0
|
tomwalters@397
|
11 //
|
tomwalters@397
|
12 // Unless required by applicable law or agreed to in writing, software
|
tomwalters@397
|
13 // distributed under the License is distributed on an "AS IS" BASIS,
|
tomwalters@397
|
14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
tomwalters@397
|
15 // See the License for the specific language governing permissions and
|
tomwalters@397
|
16 // limitations under the License.
|
tomwalters@397
|
17
|
tomwalters@397
|
18 /*!
|
tomwalters@397
|
19 * \file
|
tomwalters@397
|
20 * \brief Output device for output to a movie
|
tomwalters@397
|
21 *
|
tomwalters@397
|
22 * \author Willem van Engen <cnbh@willem.engen.nl>
|
tomwalters@397
|
23 * \date created 2006/10/16
|
tomwalters@397
|
24 * \version \$Id: $
|
tomwalters@397
|
25 */
|
tomwalters@397
|
26
|
tomwalters@397
|
27 #ifndef __GRAPHICS_OUTPUT_DEVICE_MOVIE_H__
|
tomwalters@397
|
28 #define __GRAPHICS_OUTPUT_DEVICE_MOVIE_H__
|
tomwalters@397
|
29
|
tomwalters@397
|
30 #include "Support/util.h"
|
tomwalters@397
|
31 //#include "Modules/Output/Graphics/Devices/GraphicsOutputDevicePlotutils.h"
|
tomwalters@397
|
32 #include "Modules/Output/Graphics/Devices/GraphicsOutputDeviceCairo.h"
|
tomwalters@397
|
33
|
tomwalters@397
|
34 /*!
|
tomwalters@397
|
35 * \class GraphicsOutputDeviceMovie "Output/GraphicsOutputDeviceMovie.h"
|
tomwalters@397
|
36 * \brief Output class for output to a movie
|
tomwalters@397
|
37 */
|
tomwalters@397
|
38 // GraphicsOutputDevicePlotutils is also possible here
|
tomwalters@397
|
39 class GraphicsOutputDeviceMovie : public GraphicsOutputDeviceCairo {
|
tomwalters@397
|
40 public:
|
tomwalters@397
|
41 GraphicsOutputDeviceMovie(AimParameters *pParam);
|
tomwalters@398
|
42 virtual ~GraphicsOutputDeviceMovie() { };
|
tomwalters@397
|
43
|
tomwalters@398
|
44 /*! \brief Initializes this output device, prepares plotting tools.
|
tomwalters@398
|
45 * \param sSoundFile Sound file for the movie
|
tomwalters@398
|
46 * \param sMovieFile Movie filename to produce
|
tomwalters@398
|
47 * \return true on success, false on failure.
|
tomwalters@398
|
48 *
|
tomwalters@398
|
49 * As usual, make sure to call this function before any other. If this
|
tomwalters@398
|
50 * Initialize() failed, you shouldn't try the other functions either.
|
tomwalters@398
|
51 */
|
tomwalters@398
|
52 bool Initialize(const char *sSoundFile, const char *sMovieFile);
|
tomwalters@397
|
53
|
tomwalters@398
|
54 void Start();
|
tomwalters@398
|
55 //! \brief This function now also generates the output movie.
|
tomwalters@398
|
56 void Stop();
|
tomwalters@397
|
57
|
tomwalters@397
|
58 protected:
|
tomwalters@398
|
59 /*! \brief Plots a summary of relevant parameters on the output
|
tomwalters@398
|
60 *
|
tomwalters@398
|
61 * This is intended for use in a movie as the first frame, which has no
|
tomwalters@398
|
62 * interesting data anyway, since at least one buffer of data is needed
|
tomwalters@398
|
63 * to be able to show someting.
|
tomwalters@398
|
64 *
|
tomwalters@398
|
65 * The caller must do the gGrab() and gRelease().
|
tomwalters@398
|
66 */
|
tomwalters@398
|
67 void PlotParameterScreen();
|
tomwalters@397
|
68
|
tomwalters@398
|
69 //! \brief Name of the sound file to be merged with the video
|
tomwalters@398
|
70 char m_sSoundFile[PATH_MAX];
|
tomwalters@398
|
71 //! \brief Name of the movie file to produce
|
tomwalters@398
|
72 char m_sMovieFile[PATH_MAX];
|
tomwalters@397
|
73 };
|
tomwalters@397
|
74
|
tomwalters@397
|
75 #endif /* __GRAPHICS_OUTPUT_DEVICE_MOVIE_H__ */
|