summaryrefslogtreecommitdiffstats
path: root/remoting/host/screen_capturer_fake.h
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/host/screen_capturer_fake.h')
-rw-r--r--remoting/host/screen_capturer_fake.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/remoting/host/screen_capturer_fake.h b/remoting/host/screen_capturer_fake.h
new file mode 100644
index 0000000..ab99146
--- /dev/null
+++ b/remoting/host/screen_capturer_fake.h
@@ -0,0 +1,60 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef REMOTING_HOST_SCREEN_CAPTURER_FAKE_H_
+#define REMOTING_HOST_SCREEN_CAPTURER_FAKE_H_
+
+#include "base/memory/scoped_ptr.h"
+#include "media/base/media_export.h"
+#include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
+#include "third_party/webrtc/modules/desktop_capture/screen_capture_frame_queue.h"
+#include "third_party/webrtc/modules/desktop_capture/screen_capturer.h"
+
+namespace remoting {
+
+// A ScreenCapturerFake generates artificial image for testing purpose.
+//
+// ScreenCapturerFake is double-buffered as required by ScreenCapturer.
+class ScreenCapturerFake : public webrtc::ScreenCapturer {
+ public:
+ // ScreenCapturerFake generates a picture of size kWidth x kHeight.
+ static const int kWidth = 800;
+ static const int kHeight = 600;
+
+ ScreenCapturerFake();
+ virtual ~ScreenCapturerFake();
+
+ // webrtc::DesktopCapturer interface.
+ virtual void Start(Callback* callback) OVERRIDE;
+ virtual void Capture(const webrtc::DesktopRegion& rect) OVERRIDE;
+
+ // ScreenCapturer interface.
+ virtual void SetMouseShapeObserver(
+ MouseShapeObserver* mouse_shape_observer) OVERRIDE;
+
+ private:
+ // Generates an image in the front buffer.
+ void GenerateImage();
+
+ // Called when the screen configuration is changed.
+ void ScreenConfigurationChanged();
+
+ Callback* callback_;
+ MouseShapeObserver* mouse_shape_observer_;
+
+ webrtc::DesktopSize size_;
+ int bytes_per_row_;
+ int box_pos_x_;
+ int box_pos_y_;
+ int box_speed_x_;
+ int box_speed_y_;
+
+ webrtc::ScreenCaptureFrameQueue queue_;
+
+ DISALLOW_COPY_AND_ASSIGN(ScreenCapturerFake);
+};
+
+} // namespace remoting
+
+#endif // REMOTING_HOST_SCREEN_CAPTURER_FAKE_H_