Index: remoting/client/chromoting_view.h |
diff --git a/remoting/client/chromoting_view.h b/remoting/client/chromoting_view.h |
index d785b291f891ac18a63fb771bced157f48c9a8e2..d1c978b145b97bcb0f08648f6ef0ec22bf023fde 100644 |
--- a/remoting/client/chromoting_view.h |
+++ b/remoting/client/chromoting_view.h |
@@ -6,13 +6,19 @@ |
#define REMOTING_CLIENT_CHROMOTING_VIEW_H_ |
#include "base/ref_counted.h" |
-#include "remoting/base/decoder.h" |
+#include "media/base/video_frame.h" |
+ |
+class MessageLoop; |
+ |
+namespace base { |
+class WaitableEvent; |
+} // namespace base |
namespace remoting { |
// ChromotingView defines the behavior of an object that draws a view of the |
-// remote desktop. Its main function is to choose the right decoder and render |
-// the update stream onto the screen. |
+// remote desktop. Its main function is to render the update stream onto the |
+// screen. |
class ChromotingView { |
public: |
ChromotingView(); |
@@ -44,70 +50,13 @@ class ChromotingView { |
// extends past the end of the backing store, it is filled with black. |
virtual void SetViewport(int x, int y, int width, int height) = 0; |
- // Resize the underlying image that contains the host screen buffer. |
- // This should match the size of the output from the decoder. |
- // |
- // TODO(garykac): This handles only 1 screen. We need multi-screen support. |
- virtual void SetHostScreenSize(int width, int height) = 0; |
- |
- // Handle the BeginUpdateStream message. |
- // This method should perform the following tasks: |
- // (1) Perform any platform-specific tasks for start of update stream. |
- // (2) Make sure the |frame_| has been initialized. |
- // (3) Delete the HostMessage. |
- virtual void HandleBeginUpdateStream(ChromotingHostMessage* msg) = 0; |
- |
- // Handle the UpdateStreamPacket message. |
- // This method should perform the following tasks: |
- // (1) Extract the decoding from the update packet message. |
- // (2) Call SetupDecoder with the encoding to lazily initialize the decoder. |
- // We don't do this in BeginUpdateStream because the begin message |
- // doesn't contain the encoding. |
- // (3) Call BeginDecoding if this is the first packet of the stream. |
- // (4) Call the decoder's PartialDecode() method to decode the packet. |
- // This call will delete the HostMessage. |
- // Note: |
- // * For a given begin/end update stream, the encodings specified in the |
- // update packets must all match. We may revisit this constraint at a |
- // later date. |
- virtual void HandleUpdateStreamPacket(ChromotingHostMessage* msg) = 0; |
- |
- // Handle the EndUpdateStream message. |
- // This method should perform the following tasks: |
- // (1) Call EndDecoding(). |
- // (2) Perform any platform-specific tasks for end of update stream. |
- // (3) Delete the HostMessage. |
- virtual void HandleEndUpdateStream(ChromotingHostMessage* msg) = 0; |
- |
protected: |
- // Setup the decoder based on the given encoding. |
- // Returns true if a new decoder has already been started (with a call to |
- // BeginDecoding). |
- bool SetupDecoder(UpdateStreamEncoding encoding); |
- |
- // Prepare the decoder to start decoding a chunk of data. |
- // This needs to be called if SetupDecoder() returns false. |
- bool BeginDecoding(Task* partial_decode_done, Task* decode_done); |
- |
- // Decode the given message. |
- // BeginDecoding() must be called before any calls to Decode(). |
- bool Decode(ChromotingHostMessage* msg); |
- |
- // Finish decoding and send notifications to update the view. |
- bool EndDecoding(); |
- |
- // Decoder used to decode the video frames (or frame fragements). |
- scoped_ptr<Decoder> decoder_; |
- |
// Framebuffer for the decoder. |
scoped_refptr<media::VideoFrame> frame_; |
// Dimensions of |frame_| bitmap. |
int frame_width_; |
int frame_height_; |
- |
- UpdatedRects update_rects_; |
- UpdatedRects all_update_rects_; |
}; |
} // namespace remoting |