]> source.dussan.org Git - tigervnc.git/commitdiff
In IRIX, if we could not find a matching DMIC converter, list all available converter...
authorConstantin Kaplinsky <const@tightvnc.com>
Wed, 10 Oct 2007 06:22:34 +0000 (06:22 +0000)
committerConstantin Kaplinsky <const@tightvnc.com>
Wed, 10 Oct 2007 06:22:34 +0000 (06:22 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2359 3789f03b-4d11-0410-bbf8-ca57d06f2519

common/rfb/IrixDMIC_RawToJpeg.cxx
common/rfb/IrixDMIC_RawToJpeg.h

index 0c0a596cf03165cdd9135476352d236dcb075131..afa0d18b4282b0481919fc58545e8b6401c43756 100644 (file)
@@ -8,7 +8,7 @@
 
 using namespace rfb;
 
-static LogWriter vlog("IrixDMIC_RawToJpeg");
+static LogWriter vlog("IrixDMIC");
 
 //
 // Constructor. Find a converter and create a context. Also, create
@@ -57,6 +57,7 @@ IrixDMIC_RawToJpeg::IrixDMIC_RawToJpeg(bool needRealtime)
   }
   if (n < 0) {
     vlog.error("Error: No matching JPEG encoder found");
+    debugListConverters();
     return;
   }
   if (dmICCreate(n, &m_ic) != DM_SUCCESS) {
@@ -84,6 +85,45 @@ IrixDMIC_RawToJpeg::~IrixDMIC_RawToJpeg()
     dmParamsDestroy(m_srcParams);
 }
 
+void
+IrixDMIC_RawToJpeg::debugListConverters()
+{
+  int n = dmICGetNum();
+  vlog.debug("IRIX DMIC converters available (%d):", n);
+  for (int i = 0; i < n; i++) {
+    DMparams *p;
+    if (dmParamsCreate(&p) != DM_SUCCESS) {
+      return;
+    }
+    if (dmICGetDescription(i, p) != DM_SUCCESS) {
+      vlog.debug("  continue");
+      continue;
+    }
+    union {
+      int id;
+      char label[5];
+    } id;
+    id.id = dmParamsGetInt(p, DM_IC_ID);
+    id.label[4] = '\0';
+    int direction = dmParamsGetEnum(p, DM_IC_CODE_DIRECTION);
+    const char *directionLabel = "converter";
+    if (direction == DM_IC_CODE_DIRECTION_ENCODE) {
+      directionLabel = "encoder";
+    } else if (direction == DM_IC_CODE_DIRECTION_DECODE) {
+      directionLabel = "decoder";
+    }
+    int speed = dmParamsGetEnum(p, DM_IC_SPEED);
+    const char *speedLabel = "";
+    if (speed == DM_IC_SPEED_REALTIME) {
+      speedLabel = "realtime ";
+    }
+    const char *engine = dmParamsGetString(p, DM_IC_ENGINE);
+    vlog.debug("  converter %d: '%s' %s%s (%s)",
+              i, id.label, speedLabel, directionLabel, engine);
+    dmParamsDestroy(p);
+  }
+}
+
 //
 // Configure the source and destination formats.
 //
index b067e135820dbbaaaf8c200753a998e64c47a9a9..704682b9bcae8855ae73baf9c9264788d84ef133 100644 (file)
@@ -17,6 +17,8 @@ namespace rfb {
     IrixDMIC_RawToJpeg(bool needRealtime = true);
     virtual ~IrixDMIC_RawToJpeg();
 
+    void debugListConverters();
+
     bool isValid() const { return m_valid_ic; }
 
     bool setImageParams(int w, int h);