Copy the (early prototype of) remoting in Chrome into the public tree.

At the moment, this is a semi-functional demo.

BUG=none
TEST=build/run all unittests on linux

Review URL: http://codereview.chromium.org/2690003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49087 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/remoting/host/capturer_linux.cc b/remoting/host/capturer_linux.cc
new file mode 100644
index 0000000..f5c89ee
--- /dev/null
+++ b/remoting/host/capturer_linux.cc
@@ -0,0 +1,54 @@
+// Copyright (c) 2010 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.
+
+#include "remoting/host/capturer_linux.h"
+
+namespace remoting {
+
+// TODO(dmaclach): Implement this class.
+CapturerLinux::CapturerLinux() {
+}
+
+CapturerLinux::~CapturerLinux() {
+}
+
+void CapturerLinux::CaptureFullScreen(Task* done_task) {
+  dirty_rects_.clear();
+
+  CaptureImage();
+  dirty_rects_.push_back(gfx::Rect(width_, height_));
+
+  FinishCapture(done_task);
+}
+
+void CapturerLinux::CaptureDirtyRects(Task* done_task) {
+  dirty_rects_.clear();
+
+  CaptureImage();
+  // TODO(garykac): Diff old/new images and generate |dirty_rects_|.
+  // Currently, this just marks the entire screen as dirty.
+  dirty_rects_.push_back(gfx::Rect(width_, height_));
+
+  FinishCapture(done_task);
+}
+
+void CapturerLinux::CaptureRect(const gfx::Rect& rect, Task* done_task) {
+  dirty_rects_.clear();
+
+  CaptureImage();
+  dirty_rects_.push_back(rect);
+
+  FinishCapture(done_task);
+}
+
+void CapturerLinux::GetData(const uint8* planes[]) const {
+}
+
+void CapturerLinux::GetDataStride(int strides[]) const {
+}
+
+void CapturerLinux::CaptureImage() {
+}
+
+}  // namespace remoting