ScreenDump: Renderers: add screenId in doScreenShot function
[profile/ivi/layer-management.git] / LayerManagerPlugins / Renderers / Platform / TextRenderer / src / TextRenderer.cpp
1 /***************************************************************************
2 *
3 * Copyright 2012 BMW Car IT GmbH
4 *
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 *        http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 ****************************************************************************/
19
20 #include "TextRenderer.h"
21 #include "Configuration.h"
22 #include "Log.h"
23 #include <string.h>
24 #include <fstream>
25
26 TextRenderer::TextRenderer(ICommandExecutor& executor, Configuration& config)
27 : BaseRenderer(executor, config)
28 , m_width(0)
29 , m_height(0)
30 {
31     LOG_DEBUG("TextRenderer", "created");
32 }
33
34 bool TextRenderer::start(int width, int height, const char* displayname, int maxIterationDurationInMS)
35 {
36     (void)maxIterationDurationInMS;
37     
38     m_height = height;
39     m_width = width;
40
41     // add default screen
42     LmScreenList& screenList = m_pScene->getScreenList();
43     LmScreen* lmScreen = new LmScreen();
44     screenList.push_back(lmScreen);
45
46     LOG_DEBUG("TextRenderer", "start("
47                 << "width=" << width
48                 << ", height=" << height
49                 << ", displayname=" << displayname << ")");
50     return true;
51 }
52
53 void TextRenderer::stop()
54 {
55     LOG_DEBUG("TextRenderer", "stop");
56 }
57
58 TextRenderer::~TextRenderer()
59 {
60     LOG_DEBUG("TextRenderer", "destroyed");
61 }
62
63 void TextRenderer::doScreenShot(std::string fileToSave, uint screen_id)
64 {
65     LOG_DEBUG("TextRenderer", "doScreenShot("
66                 << "fileToSave=" << fileToSave
67                 << ", screenID=" << screen_id <<")");
68     std::fstream file(fileToSave.c_str());
69 }
70
71 void TextRenderer::doScreenShotOfLayer(std::string fileToSave, uint id)
72 {
73     LOG_DEBUG("TextRenderer", "doScreenShotOfLayer("
74                 << "fileToSave=" << fileToSave
75                 << ", id=" << id << ")");
76     std::fstream file(fileToSave.c_str());
77 }
78
79 void TextRenderer::doScreenShotOfSurface(std::string fileToSave, uint id, uint layer_id)
80 {
81     LOG_DEBUG("TextRenderer", "doScreenShotOfSurface("
82                 << "fileToSave=" << fileToSave
83                 << ", id=" << id
84                 << ", layer_id=" << layer_id << ")");
85     std::fstream file(fileToSave.c_str());
86 }
87
88 uint TextRenderer::getNumberOfHardwareLayers(uint screenID)
89 {
90     LOG_DEBUG("TextRenderer", "getNumberOfHardwareLayers(screenID=" << screenID << ")");
91     return 0;
92 }
93
94 uint* TextRenderer::getScreenResolution(uint screenID)
95 {
96     LOG_DEBUG("TextRenderer", "getScreenResolution(screenID=" << screenID << ")");
97
98     uint * resolution = new uint[2];
99     resolution[0] = m_width;
100     resolution[1] = m_height;
101     return resolution;
102 }
103
104 uint* TextRenderer::getScreenIDs(uint* length)
105 {
106     LOG_DEBUG("TextRenderer", "getScreenIDs");
107
108     // Screens in X11 can be addresses/accessed by just the number - we must only know how many there are
109     uint numberOfScreens = 1;
110     uint* screenIDS = new uint[numberOfScreens];
111     for (uint i = 0; i < numberOfScreens; i++)
112     {
113         screenIDS[i] = i;
114     }
115     *length = numberOfScreens;
116     return screenIDS;
117 }
118
119 void TextRenderer::signalWindowSystemRedraw()
120 {
121     LOG_DEBUG("TextRenderer", "signalWindowSystemRedraw");
122 }
123
124 void TextRenderer::forceCompositionWindowSystem()
125 {
126     LOG_DEBUG("TextRenderer", "forceCompositionWindowSystem");
127 }
128
129 bool TextRenderer::setOptimizationMode(OptimizationType id, OptimizationModeType mode)
130 {
131     LOG_DEBUG("TextRenderer", "setOptimizationMode("
132                 << "id=" << id
133                 << ", mode=" << mode << ")");
134     m_optimizationMode = mode;
135     return true;
136 }
137
138 bool TextRenderer::getOptimizationMode(OptimizationType id, OptimizationModeType* mode)
139 {
140     (void)mode;
141     LOG_DEBUG("TextRenderer", "getOptimizationMode("
142                 << "id=" << id << ")");
143     *mode = m_optimizationMode;
144     return true;
145 }
146
147 t_ilm_const_string TextRenderer::pluginGetName() const
148 {
149     return "TextRenderer";
150 }
151
152 int TextRenderer::getIterationCounter()
153 {
154     // no internal thread, fake thread iterations
155     static int i = 0;
156     return ++i;
157 }
158
159 DECLARE_LAYERMANAGEMENT_PLUGIN(TextRenderer)