Deleted Added
sdiff udiff text old ( 9330:4a3269a11230 ) new ( 10839:10cac0f0f419 )
full compact
1/*
2 * Copyright (c) 2010, 2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

--- 30 unchanged lines hidden (view full) ---

41/** @file
42 * Declaration of a VNC input
43 */
44
45#ifndef __BASE_VNC_VNC_INPUT_HH__
46#define __BASE_VNC_VNC_INPUT_HH__
47
48#include <iostream>
49#include <memory>
50
51#include "base/bitmap.hh"
52#include "params/VncInput.hh"
53#include "sim/sim_object.hh"
54
55/**
56 * A device that expects to receive input from the vnc server should derrive
57 * (through mulitple inheritence if necessary from VncKeyboard or VncMouse
58 * and call setKeyboard() or setMouse() respectively on the vnc server.

--- 96 unchanged lines hidden (view full) ---

155 typedef VncInputParams Params;
156 VncInput(const Params *p);
157
158 /** Set the address of the frame buffer we are going to show.
159 * To avoid copying, just have the display controller
160 * tell us where the data is instead of constanly copying it around
161 * @param rfb frame buffer that we're going to use
162 */
163 virtual void setFrameBuffer(const FrameBuffer *rfb);
164
165 /** Set up the device that would like to receive notifications when keys are
166 * pressed in the vnc client keyboard
167 * @param _keyboard an object that derrives from VncKeyboard
168 */
169 void setKeyboard(VncKeyboard *_keyboard) { keyboard = _keyboard; }
170
171 /** Setup the device that would like to receive notifications when mouse

--- 15 unchanged lines hidden (view full) ---

187 * @return the height of the simulated screen
188 */
189 uint16_t videoHeight() const { return _videoHeight; }
190
191 /** The frame buffer uses this call to notify the vnc server that
192 * the frame buffer has been updated and a new image needs to be sent to the
193 * client
194 */
195 virtual void setDirty();
196
197 protected:
198 virtual void frameBufferResized() {};
199
200 /** The device to notify when we get key events */
201 VncKeyboard *keyboard;
202
203 /** The device to notify when we get mouse events */
204 VncMouse *mouse;
205
206 /** pointer to the actual data that is stored in the frame buffer device */
207 const FrameBuffer *fb;
208
209 /** the width of the frame buffer we are sending to the client */
210 uint16_t _videoWidth;
211
212 /** the height of the frame buffer we are sending to the client */
213 uint16_t _videoHeight;
214
215 /** Flag indicating whether to capture snapshots of frame buffer or not */
216 bool captureEnabled;
217
218 /** Current frame number being captured to a file */
219 int captureCurrentFrame;
220
221 /** Directory to store captured frames to */
222 std::string captureOutputDirectory;
223
224 /** Computed hash of the last captured frame */
225 uint64_t captureLastHash;
226
227 /** Cached bitmap object for writing out frame buffers to file */
228 std::unique_ptr<Bitmap> captureBitmap;
229
230 /** Captures the current frame buffer to a file */
231 void captureFrameBuffer();
232};
233#endif