1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef REMOTING_HOST_SCREEN_CAPTURER_FAKE_H_
6 #define REMOTING_HOST_SCREEN_CAPTURER_FAKE_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "media/base/media_export.h"
10 #include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
11 #include "third_party/webrtc/modules/desktop_capture/screen_capture_frame_queue.h"
12 #include "third_party/webrtc/modules/desktop_capture/screen_capturer.h"
16 // A ScreenCapturerFake generates artificial image for testing purpose.
18 // ScreenCapturerFake is double-buffered as required by ScreenCapturer.
19 class ScreenCapturerFake
: public webrtc::ScreenCapturer
{
21 // ScreenCapturerFake generates a picture of size kWidth x kHeight.
22 static const int kWidth
= 800;
23 static const int kHeight
= 600;
26 virtual ~ScreenCapturerFake();
28 // webrtc::DesktopCapturer interface.
29 virtual void Start(Callback
* callback
) OVERRIDE
;
30 virtual void Capture(const webrtc::DesktopRegion
& rect
) OVERRIDE
;
32 // ScreenCapturer interface.
33 virtual void SetMouseShapeObserver(
34 MouseShapeObserver
* mouse_shape_observer
) OVERRIDE
;
37 // Generates an image in the front buffer.
40 // Called when the screen configuration is changed.
41 void ScreenConfigurationChanged();
44 MouseShapeObserver
* mouse_shape_observer_
;
46 webrtc::DesktopSize size_
;
53 webrtc::ScreenCaptureFrameQueue queue_
;
55 DISALLOW_COPY_AND_ASSIGN(ScreenCapturerFake
);
58 } // namespace remoting
60 #endif // REMOTING_HOST_SCREEN_CAPTURER_FAKE_H_