Browse Source

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.
tags/v1.3.90
Pierre Ossman 10 years ago
parent
commit
a22459d356
4 changed files with 19 additions and 23 deletions
  1. 2
    2
      common/rfb/CMsgWriter.cxx
  2. 1
    10
      common/rfb/ConnParams.cxx
  3. 0
    2
      common/rfb/ConnParams.h
  4. 16
    9
      vncviewer/CConn.cxx

+ 2
- 2
common/rfb/CMsgWriter.cxx View File

@@ -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);

+ 1
- 10
common/rfb/ConnParams.cxx View File

@@ -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;
}

+ 0
- 2
common/rfb/ConnParams.h View File

@@ -91,9 +91,7 @@ namespace rfb {
bool supportsFence;
bool supportsContinuousUpdates;

bool customCompressLevel;
int compressLevel;
bool noJpeg;
int qualityLevel;
int fineQualityLevel;
int subsampling;

+ 16
- 9
vncviewer/CConn.cxx View File

@@ -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;


Loading…
Cancel
Save