diff options
author | Pierre Ossman <ossman@cendio.se> | 2014-03-17 14:42:10 +0100 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2014-07-07 13:27:09 +0200 |
commit | a22459d356be884aca3f4a1974de3e005da8ce7c (patch) | |
tree | aab8e831fd93b7038cfd1b25ed85645578d68d42 | |
parent | 6bcf137779ee884f27d53d667558524d3413812e (diff) | |
download | tigervnc-a22459d356be884aca3f4a1974de3e005da8ce7c.tar.gz tigervnc-a22459d356be884aca3f4a1974de3e005da8ce7c.zip |
Remove magic JPEG variables from ConnParams
Custom compression level and JPEG on/off are not inherent parts of
the protocol negotiation so they do not belong in ConnParams. Let the
UI frontend handle such things instead.
-rw-r--r-- | common/rfb/CMsgWriter.cxx | 4 | ||||
-rw-r--r-- | common/rfb/ConnParams.cxx | 11 | ||||
-rw-r--r-- | common/rfb/ConnParams.h | 2 | ||||
-rw-r--r-- | vncviewer/CConn.cxx | 25 |
4 files changed, 19 insertions, 23 deletions
diff --git a/common/rfb/CMsgWriter.cxx b/common/rfb/CMsgWriter.cxx index 0ebd33e7..9ee7a02f 100644 --- a/common/rfb/CMsgWriter.cxx +++ b/common/rfb/CMsgWriter.cxx @@ -114,9 +114,9 @@ void CMsgWriter::writeSetEncodings(int preferredEncoding, bool useCopyRect) } } - if (cp->customCompressLevel && cp->compressLevel >= 0 && cp->compressLevel <= 9) + if (cp->compressLevel >= 0 && cp->compressLevel <= 9) encodings[nEncodings++] = pseudoEncodingCompressLevel0 + cp->compressLevel; - if (!cp->noJpeg && cp->qualityLevel >= 0 && cp->qualityLevel <= 9) + if (cp->qualityLevel >= 0 && cp->qualityLevel <= 9) encodings[nEncodings++] = pseudoEncodingQualityLevel0 + cp->qualityLevel; writeSetEncodings(nEncodings, encodings); diff --git a/common/rfb/ConnParams.cxx b/common/rfb/ConnParams.cxx index be9d48c0..6fd6668e 100644 --- a/common/rfb/ConnParams.cxx +++ b/common/rfb/ConnParams.cxx @@ -36,8 +36,7 @@ ConnParams::ConnParams() supportsDesktopRename(false), supportsLastRect(false), supportsSetDesktopSize(false), supportsFence(false), supportsContinuousUpdates(false), - customCompressLevel(false), compressLevel(2), - noJpeg(false), qualityLevel(-1), fineQualityLevel(-1), + compressLevel(2), qualityLevel(-1), fineQualityLevel(-1), subsampling(subsampleUndefined), name_(0), currentEncoding_(encodingRaw), verStrPos(0) { @@ -95,9 +94,7 @@ void ConnParams::setEncodings(int nEncodings, const rdr::S32* encodings) supportsExtendedDesktopSize = false; supportsLocalXCursor = false; supportsLastRect = false; - customCompressLevel = false; compressLevel = -1; - noJpeg = true; qualityLevel = -1; fineQualityLevel = -1; subsampling = subsampleUndefined; @@ -167,10 +164,4 @@ void ConnParams::setEncodings(int nEncodings, const rdr::S32* encodings) if (Encoder::supported(encodings[i])) currentEncoding_ = encodings[i]; } - - if (compressLevel != -1) - customCompressLevel = true; - if ((qualityLevel != -1) || (fineQualityLevel != -1) || - (subsampling != subsampleUndefined)) - noJpeg = false; } diff --git a/common/rfb/ConnParams.h b/common/rfb/ConnParams.h index 68e20754..43267ffd 100644 --- a/common/rfb/ConnParams.h +++ b/common/rfb/ConnParams.h @@ -91,9 +91,7 @@ namespace rfb { bool supportsFence; bool supportsContinuousUpdates; - bool customCompressLevel; int compressLevel; - bool noJpeg; int qualityLevel; int fineQualityLevel; int subsampling; diff --git a/vncviewer/CConn.cxx b/vncviewer/CConn.cxx index c5cd4a45..789cf09e 100644 --- a/vncviewer/CConn.cxx +++ b/vncviewer/CConn.cxx @@ -89,11 +89,15 @@ CConn::CConn(const char* vncServerName, network::Socket* socket=NULL) cp.supportsExtendedDesktopSize = true; cp.supportsDesktopRename = true; - cp.customCompressLevel = customCompressLevel; - cp.compressLevel = compressLevel; + if (customCompressLevel) + cp.compressLevel = compressLevel; + else + cp.compressLevel = -1; - cp.noJpeg = noJpeg; - cp.qualityLevel = qualityLevel; + if (!noJpeg) + cp.qualityLevel = qualityLevel; + else + cp.qualityLevel = -1; if(sock == NULL) { try { @@ -619,16 +623,19 @@ void CConn::handleOptions(void *data) if (encNum != -1) self->currentEncoding = encNum; - - self->cp.qualityLevel = qualityLevel; } self->cp.supportsLocalCursor = true; - self->cp.customCompressLevel = customCompressLevel; - self->cp.compressLevel = compressLevel; + if (customCompressLevel) + self->cp.compressLevel = compressLevel; + else + self->cp.compressLevel = -1; - self->cp.noJpeg = noJpeg; + if (!noJpeg && !autoSelect) + self->cp.qualityLevel = qualityLevel; + else + self->cp.qualityLevel = -1; self->encodingChange = true; |