diff options
Diffstat (limited to 'remoting/host/screen_capturer_fake.h')
-rw-r--r-- | remoting/host/screen_capturer_fake.h | 60 |
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_ |