summaryrefslogtreecommitdiffstats
path: root/remoting/client/chromoting_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/client/chromoting_view.cc')
-rw-r--r--remoting/client/chromoting_view.cc92
1 files changed, 3 insertions, 89 deletions
diff --git a/remoting/client/chromoting_view.cc b/remoting/client/chromoting_view.cc
index 95d2dfa..ba34a5d 100644
--- a/remoting/client/chromoting_view.cc
+++ b/remoting/client/chromoting_view.cc
@@ -4,8 +4,9 @@
#include "remoting/client/chromoting_view.h"
-#include "remoting/base/decoder_verbatim.h"
-#include "remoting/base/decoder_zlib.h"
+#include "base/message_loop.h"
+#include "base/waitable_event.h"
+#include "remoting/base/tracer.h"
namespace remoting {
@@ -14,7 +15,6 @@ ChromotingView::ChromotingView()
frame_height_(0) {
}
-
// TODO(garykac): This assumes a single screen. This will need to be adjusted
// to add support for mulitple monitors.
void ChromotingView::GetScreenSize(int* width, int* height) {
@@ -22,90 +22,4 @@ void ChromotingView::GetScreenSize(int* width, int* height) {
*height = frame_height_;
}
-bool ChromotingView::SetupDecoder(UpdateStreamEncoding encoding) {
- if (encoding == EncodingInvalid) {
- LOG(ERROR) << "Cannot create encoder for EncodingInvalid";
- return false;
- }
-
- // If we're in the middle of decoding a stream, then we need to make sure
- // that that all packets in that stream match the encoding of the first
- // packet.
- //
- // If we decide to relax this constraint in the future, we'll need to
- // update this to keep a set of decoders around.
- if (decoder_.get() && decoder_->IsStarted()) {
- // Verify that the encoding matches the decoder. Once we've started
- // decoding, we can't switch to another decoder.
- if (decoder_->Encoding() != encoding) {
- LOG(ERROR) << "Encoding mismatch: Set up to handle "
- << "UpdateStreamEncoding=" << decoder_->Encoding()
- << " but received request for "
- << encoding;
- return false;
- }
- return true;
- }
-
- // Lazily initialize a new decoder.
- // We create a new decoder if we don't currently have a decoder or if the
- // decoder doesn't match the desired encoding.
- if (!decoder_.get() || decoder_->Encoding() != encoding) {
- // Initialize a new decoder based on this message encoding.
- if (encoding == EncodingNone) {
- decoder_.reset(new DecoderVerbatim());
- } else if (encoding == EncodingZlib) {
- decoder_.reset(new DecoderZlib());
- }
- // Make sure we successfully allocated a decoder of the correct type.
- DCHECK(decoder_.get());
- DCHECK(decoder_->Encoding() == encoding);
- }
-
- return true;
-}
-
-bool ChromotingView::BeginDecoding(Task* partial_decode_done,
- Task* decode_done) {
- if (decoder_->IsStarted()) {
- LOG(ERROR) << "BeginDecoding called without ending previous decode.";
- return false;
- }
-
- decoder_->BeginDecode(frame_, &update_rects_,
- partial_decode_done, decode_done);
-
- if (!decoder_->IsStarted()) {
- LOG(ERROR) << "Unable to start decoding.";
- return false;
- }
-
- return true;
-}
-
-bool ChromotingView::Decode(ChromotingHostMessage* msg) {
- if (!decoder_->IsStarted()) {
- LOG(ERROR) << "Attempt to decode payload before calling BeginDecode.";
- return false;
- }
-
- return decoder_->PartialDecode(msg);
-}
-
-bool ChromotingView::EndDecoding() {
- if (!decoder_->IsStarted()) {
- LOG(ERROR) << "Attempt to end decode when none has been started.";
- return false;
- }
-
- decoder_->EndDecode();
-
- if (decoder_->IsStarted()) {
- LOG(ERROR) << "Unable to properly end decoding.\n";
- return false;
- }
-
- return true;
-}
-
} // namespace remoting