OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MEDIA_VIDEO_CAPTURE_SCREEN_SCREEN_CAPTURER_FAKE_H_ | 5 #ifndef MEDIA_VIDEO_CAPTURE_SCREEN_SCREEN_CAPTURER_FAKE_H_ |
6 #define MEDIA_VIDEO_CAPTURE_SCREEN_SCREEN_CAPTURER_FAKE_H_ | 6 #define MEDIA_VIDEO_CAPTURE_SCREEN_SCREEN_CAPTURER_FAKE_H_ |
7 | 7 |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "media/base/media_export.h" | 9 #include "media/base/media_export.h" |
| 10 #include "media/video/capture/screen/screen_capture_frame_queue.h" |
10 #include "media/video/capture/screen/screen_capturer.h" | 11 #include "media/video/capture/screen/screen_capturer.h" |
11 #include "media/video/capture/screen/screen_capturer_helper.h" | 12 #include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h" |
12 | 13 |
13 namespace media { | 14 namespace media { |
14 | 15 |
15 // A ScreenCapturerFake generates artificial image for testing purpose. | 16 // A ScreenCapturerFake generates artificial image for testing purpose. |
16 // | 17 // |
17 // ScreenCapturerFake is double-buffered as required by ScreenCapturer. | 18 // ScreenCapturerFake is double-buffered as required by ScreenCapturer. |
18 class MEDIA_EXPORT ScreenCapturerFake : public ScreenCapturer { | 19 class MEDIA_EXPORT ScreenCapturerFake : public ScreenCapturer { |
19 public: | 20 public: |
20 // ScreenCapturerFake generates a picture of size kWidth x kHeight. | 21 // ScreenCapturerFake generates a picture of size kWidth x kHeight. |
21 static const int kWidth = 800; | 22 static const int kWidth = 800; |
22 static const int kHeight = 600; | 23 static const int kHeight = 600; |
23 | 24 |
24 ScreenCapturerFake(); | 25 ScreenCapturerFake(); |
25 virtual ~ScreenCapturerFake(); | 26 virtual ~ScreenCapturerFake(); |
26 | 27 |
27 // Overridden from ScreenCapturer: | 28 // webrtc::DesktopCapturer interface. |
28 virtual void Start(Delegate* delegate) OVERRIDE; | 29 virtual void Start(Callback* callback) OVERRIDE; |
29 virtual void CaptureFrame() OVERRIDE; | 30 virtual void Capture(const webrtc::DesktopRegion& rect) OVERRIDE; |
| 31 |
| 32 // ScreenCapturer interface. |
| 33 virtual void SetMouseShapeObserver( |
| 34 MouseShapeObserver* mouse_shape_observer) OVERRIDE; |
30 | 35 |
31 private: | 36 private: |
32 // Generates an image in the front buffer. | 37 // Generates an image in the front buffer. |
33 void GenerateImage(); | 38 void GenerateImage(); |
34 | 39 |
35 // Called when the screen configuration is changed. | 40 // Called when the screen configuration is changed. |
36 void ScreenConfigurationChanged(); | 41 void ScreenConfigurationChanged(); |
37 | 42 |
38 Delegate* delegate_; | 43 Callback* callback_; |
| 44 MouseShapeObserver* mouse_shape_observer_; |
39 | 45 |
40 SkISize size_; | 46 webrtc::DesktopSize size_; |
41 int bytes_per_row_; | 47 int bytes_per_row_; |
42 int box_pos_x_; | 48 int box_pos_x_; |
43 int box_pos_y_; | 49 int box_pos_y_; |
44 int box_speed_x_; | 50 int box_speed_x_; |
45 int box_speed_y_; | 51 int box_speed_y_; |
46 | 52 |
47 ScreenCapturerHelper helper_; | 53 ScreenCaptureFrameQueue queue_; |
48 | |
49 // We have two buffers for the screen images as required by Capturer. | |
50 static const int kNumBuffers = 2; | |
51 uint8* buffers_[kNumBuffers]; | |
52 | |
53 // The current buffer with valid data for reading. | |
54 int current_buffer_; | |
55 | |
56 // Used when |delegate_| implements CreateSharedBuffer(). | |
57 scoped_refptr<SharedBuffer> shared_buffers_[kNumBuffers]; | |
58 | |
59 // Used when |delegate_| does not implement CreateSharedBuffer(). | |
60 scoped_ptr<uint8[]> private_buffers_[kNumBuffers]; | |
61 | 54 |
62 DISALLOW_COPY_AND_ASSIGN(ScreenCapturerFake); | 55 DISALLOW_COPY_AND_ASSIGN(ScreenCapturerFake); |
63 }; | 56 }; |
64 | 57 |
65 } // namespace media | 58 } // namespace media |
66 | 59 |
67 #endif // MEDIA_VIDEO_CAPTURE_SCREEN_SCREEN_CAPTURER_FAKE_H_ | 60 #endif // MEDIA_VIDEO_CAPTURE_SCREEN_SCREEN_CAPTURER_FAKE_H_ |
OLD | NEW |