Functional version of IrixCLJpegCompressor. This commit includes modifications used to test this class without hardware compressors available via Irix CL.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2376 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/JpegEncoder.cxx b/common/rfb/JpegEncoder.cxx
index 054a5ef..1d9b3c7 100644
--- a/common/rfb/JpegEncoder.cxx
+++ b/common/rfb/JpegEncoder.cxx
@@ -23,6 +23,9 @@
 #include <rfb/ConnParams.h>
 #include <rfb/LogWriter.h>
 
+#ifdef HAVE_CL
+#include <rfb/IrixCLJpegCompressor.h>
+#endif
 #ifdef HAVE_DMEDIA
 #include <rfb/IrixDMJpegCompressor.h>
 #endif
@@ -42,24 +45,37 @@
 
 JpegEncoder::JpegEncoder(SMsgWriter* writer_) : writer(writer_), jcomp(0)
 {
-#ifdef HAVE_DMEDIA
-  if (useHardwareJPEG) {
-    vlog.debug("trying IRIX DM JPEG compressor");
-    IrixDMJpegCompressor *irixComp = new IrixDMJpegCompressor;
-    if (irixComp->isValid()) {
-      vlog.debug("initialized IRIX DM JPEG compressor successfully");
-      jcomp = irixComp;
+  // FIXME: DM should be preferred over CL.
+#ifdef HAVE_CL
+  if (!jcomp && useHardwareJPEG) {
+    vlog.debug("trying IRIX CL JPEG compressor");
+    IrixCLJpegCompressor *clComp = new IrixCLJpegCompressor;
+    if (clComp->isValid()) {
+      vlog.debug("initialized IRIX CL JPEG compressor successfully");
+      jcomp = clComp;
     } else {
-      vlog.error("warning: could not create IRIX DM JPEG compressor");
-      delete irixComp;
+      vlog.error("warning: could not create IRIX CL JPEG compressor");
+      delete clComp;
     }
   }
-#else
-  if (useHardwareJPEG) {
-    vlog.info("no hardware JPEG compressor available");
+#endif
+#ifdef HAVE_DMEDIA
+  if (!jcomp && useHardwareJPEG) {
+    vlog.debug("trying IRIX DM JPEG compressor");
+    IrixDMJpegCompressor *dmComp = new IrixDMJpegCompressor;
+    if (dmComp->isValid()) {
+      vlog.debug("initialized IRIX DM JPEG compressor successfully");
+      jcomp = dmComp;
+    } else {
+      vlog.error("warning: could not create IRIX DM JPEG compressor");
+      delete dmComp;
+    }
   }
 #endif
   if (!jcomp) {
+    if (useHardwareJPEG) {
+      vlog.info("no hardware JPEG compressor available");
+    }
     vlog.debug("using software JPEG compressor");
     jcomp = new StandardJpegCompressor;
   }