Index: remoting/client/x11_view.h |
diff --git a/remoting/client/x11_view.h b/remoting/client/x11_view.h |
index 3ae7f2a8d0f6b08f1b2fe8135fe3ea3f38375e8b..5da6220c6f57d16d7670ca381144f8f2cbf32cf5 100644 |
--- a/remoting/client/x11_view.h |
+++ b/remoting/client/x11_view.h |
@@ -5,9 +5,11 @@ |
#ifndef REMOTING_CLIENT_X11_VIEW_H_ |
#define REMOTING_CLIENT_X11_VIEW_H_ |
-#include "base/basictypes.h" |
#include "base/scoped_ptr.h" |
+#include "base/task.h" |
#include "media/base/video_frame.h" |
+#include "remoting/base/decoder.h" // For UpdatedRects |
+#include "remoting/client/frame_consumer.h" |
#include "remoting/client/chromoting_view.h" |
typedef unsigned long XID; |
@@ -16,7 +18,7 @@ typedef struct _XDisplay Display; |
namespace remoting { |
// A ChromotingView implemented using X11 and XRender. |
-class X11View : public ChromotingView { |
+class X11View : public ChromotingView, public FrameConsumer { |
public: |
X11View(); |
virtual ~X11View(); |
@@ -28,17 +30,25 @@ class X11View : public ChromotingView { |
virtual void SetSolidFill(uint32 color); |
virtual void UnsetSolidFill(); |
virtual void SetViewport(int x, int y, int width, int height); |
- virtual void SetHostScreenSize(int width, int height); |
- virtual void HandleBeginUpdateStream(ChromotingHostMessage* msg); |
- virtual void HandleUpdateStreamPacket(ChromotingHostMessage* msg); |
- virtual void HandleEndUpdateStream(ChromotingHostMessage* msg); |
+ |
+ // FrameConsumer implementation. |
+ virtual void AllocateFrame(media::VideoFrame::Format format, |
+ size_t width, |
+ size_t height, |
+ base::TimeDelta timestamp, |
+ base::TimeDelta duration, |
+ scoped_refptr<media::VideoFrame>* frame_out, |
+ Task* done); |
+ virtual void ReleaseFrame(media::VideoFrame* frame); |
+ virtual void OnPartialFrameOutput(media::VideoFrame* frame, |
+ UpdatedRects* rects, |
+ Task* done); |
Display* display() { return display_; } |
private: |
void InitPaintTarget(); |
- void OnPartialDecodeDone(); |
- void OnDecodeDone(); |
+ void PaintRect(media::VideoFrame* frame, const gfx::Rect& clip); |
Display* display_; |
XID window_; |