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@411
|
30 #include <string>
|
sness@613
|
31 #include <unistd.h>
|
tomwalters@397
|
32 #include "Modules/Output/Graphics/Devices/GraphicsOutputDeviceCairo.h"
|
tomwalters@397
|
33
|
tom@400
|
34 namespace aimc {
|
tom@400
|
35
|
tomwalters@397
|
36 /*!
|
tomwalters@397
|
37 * \class GraphicsOutputDeviceMovie "Output/GraphicsOutputDeviceMovie.h"
|
tomwalters@397
|
38 * \brief Output class for output to a movie
|
tomwalters@397
|
39 */
|
tomwalters@397
|
40 // GraphicsOutputDevicePlotutils is also possible here
|
tomwalters@397
|
41 class GraphicsOutputDeviceMovie : public GraphicsOutputDeviceCairo {
|
tomwalters@397
|
42 public:
|
tomwalters@411
|
43 GraphicsOutputDeviceMovie(Parameters *parameters);
|
tomwalters@398
|
44 virtual ~GraphicsOutputDeviceMovie() { };
|
tomwalters@397
|
45
|
tomwalters@398
|
46 /*! \brief Initializes this output device, prepares plotting tools.
|
tomwalters@398
|
47 * \param sSoundFile Sound file for the movie
|
tomwalters@398
|
48 * \param sMovieFile Movie filename to produce
|
tomwalters@398
|
49 * \return true on success, false on failure.
|
tomwalters@398
|
50 *
|
tomwalters@398
|
51 * As usual, make sure to call this function before any other. If this
|
tomwalters@398
|
52 * Initialize() failed, you shouldn't try the other functions either.
|
tomwalters@398
|
53 */
|
tomwalters@411
|
54 bool Initialize(Parameters *global_parameters);
|
tomwalters@397
|
55
|
tomwalters@398
|
56 void Start();
|
tomwalters@398
|
57 //! \brief This function now also generates the output movie.
|
tomwalters@398
|
58 void Stop();
|
tomwalters@418
|
59
|
tomwalters@418
|
60 void Reset(Parameters* global_parameters);
|
tomwalters@418
|
61
|
tomwalters@397
|
62
|
tomwalters@397
|
63 protected:
|
tomwalters@398
|
64 /*! \brief Plots a summary of relevant parameters on the output
|
tomwalters@398
|
65 *
|
tomwalters@398
|
66 * This is intended for use in a movie as the first frame, which has no
|
tomwalters@398
|
67 * interesting data anyway, since at least one buffer of data is needed
|
tomwalters@398
|
68 * to be able to show someting.
|
tomwalters@398
|
69 *
|
tomwalters@398
|
70 * The caller must do the gGrab() and gRelease().
|
tomwalters@398
|
71 */
|
tomwalters@398
|
72 void PlotParameterScreen();
|
tomwalters@397
|
73
|
tomwalters@398
|
74 //! \brief Name of the sound file to be merged with the video
|
tomwalters@411
|
75 string sound_filename_;
|
tomwalters@398
|
76 //! \brief Name of the movie file to produce
|
tomwalters@411
|
77 string movie_filename_;
|
tomwalters@397
|
78 };
|
tom@400
|
79 } // namespace aimc
|
tomwalters@397
|
80 #endif /* __GRAPHICS_OUTPUT_DEVICE_MOVIE_H__ */
|