Home | History | Annotate | Download | only in host
      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.
      4 
      5 #ifndef REMOTING_HOST_DESKTOP_SHAPE_TRACKER_H_
      6 #define REMOTING_HOST_DESKTOP_SHAPE_TRACKER_H_
      7 
      8 #include "base/memory/scoped_ptr.h"
      9 
     10 namespace webrtc {
     11 class DesktopCaptureOptions;
     12 class DesktopRegion;
     13 }  // namespace webrtc
     14 
     15 namespace remoting {
     16 
     17 // Tracks changes in the area of the desktop that is occupied by windows.
     18 class DesktopShapeTracker {
     19  public:
     20   static scoped_ptr<DesktopShapeTracker> Create(
     21       webrtc::DesktopCaptureOptions options);
     22 
     23   DesktopShapeTracker() {}
     24   virtual ~DesktopShapeTracker() {}
     25 
     26   // Recalculates the desktop shape, as returned by desktop_shape();
     27   virtual void RefreshDesktopShape() = 0;
     28 
     29   // Returns a reference to the most recently capture desktop shape.
     30   virtual const webrtc::DesktopRegion& desktop_shape() = 0;
     31 
     32  private:
     33   DISALLOW_COPY_AND_ASSIGN(DesktopShapeTracker);
     34 };
     35 
     36 }  // namespace remoting
     37 
     38 #endif  // REMOTING_HOST_DESKTOP_SHAPE_TRACKER_H_
     39