1 // Copyright (c) 2010 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.
5 #ifndef REMOTING_BASE_ENCODER_ZLIB_H_
6 #define REMOTING_BASE_ENCODER_ZLIB_H_
8 #include "remoting/base/encoder.h"
15 class UpdateStreamPacket
;
17 // EncoderZlib implements an Encoder using Zlib for compression.
18 class EncoderZlib
: public Encoder
{
21 EncoderZlib(int packet_size
);
23 virtual ~EncoderZlib() {}
25 virtual void Encode(scoped_refptr
<CaptureData
> capture_data
,
27 DataAvailableCallback
* data_available_callback
);
30 // Encode a single dirty rect using compressor.
31 void EncodeRect(CompressorZlib
* compressor
, const gfx::Rect
& rect
,
34 // Create a new HostMessage with the right flag and attributes. The message
35 // can be used immediately for output of encoding.
36 HostMessage
* PrepareMessage(const gfx::Rect
* rect
);
38 // Submit |message| to |callback_|.
39 void SubmitMessage(HostMessage
* message
, size_t rect_index
);
41 scoped_refptr
<CaptureData
> capture_data_
;
42 scoped_ptr
<DataAvailableCallback
> callback_
;
43 //size_t current_rect_;
47 } // namespace remoting
49 #endif // REMOTING_BASE_ENCODER_ZLIB_H_