]> git.vomp.tv Git - vompclient.git/commitdiff
New dump function in Util, removal of old
authorChris Tallon <chris@vomp.tv>
Wed, 29 Apr 2020 17:26:05 +0000 (18:26 +0100)
committerChris Tallon <chris@vomp.tv>
Wed, 29 Apr 2020 17:26:05 +0000 (18:26 +0100)
inputudp.cc
util.cc
util.h
vdrresponsepacket.cc

index 6b26064fea77409d7316fd6742684b0c6a1aed30..6b707780b700be06533bb2bb16778fef584e17c1 100644 (file)
@@ -163,150 +163,3 @@ std::string InputUDP::getHardwareKeyName(HWC_TYPE /* hardwareKey */)
   std::string retval;
   return retval;
 }
-
-
-
-
-
-
-/*
-
-//void dump(unsigned char* data, USHORT size);
-//unsigned char dcc(UCHAR c);
-
-void dump(unsigned char* data, USHORT size)
-{
-  printf("Size = %u\n", size);
-
-  USHORT c = 0;
-  while(c < size)
-  {
-    if ((size - c) > 15)
-    {
-      printf(" %02X %02X %02X %02X  %02X %02X %02X %02X  %02X %02X %02X %02X  %02X %02X %02X %02X  %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",
-        data[c], data[c+1], data[c+2], data[c+3], data[c+4], data[c+5], data[c+6], data[c+7],
-        data[c+8], data[c+9], data[c+10], data[c+11], data[c+12], data[c+13], data[c+14], data[c+15],
-        dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]), dcc(data[c+4]), dcc(data[c+5]), dcc(data[c+6]), dcc(data[c+7]),
-        dcc(data[c+8]), dcc(data[c+9]), dcc(data[c+10]), dcc(data[c+11]), dcc(data[c+12]), dcc(data[c+13]), dcc(data[c+14]), dcc(data[c+15]));
-      c += 16;
-    }
-    else
-    {
-      switch (size - c)
-      {
-        case 15:
-          printf(" %02X %02X %02X %02X  %02X %02X %02X %02X  %02X %02X %02X %02X  %02X %02X %02X     %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",
-            data[c], data[c+1], data[c+2], data[c+3], data[c+4], data[c+5], data[c+6], data[c+7],
-            data[c+8], data[c+9], data[c+10], data[c+11], data[c+12], data[c+13], data[c+14],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]), dcc(data[c+4]), dcc(data[c+5]), dcc(data[c+6]), dcc(data[c+7]),
-            dcc(data[c+8]), dcc(data[c+9]), dcc(data[c+10]), dcc(data[c+11]), dcc(data[c+12]), dcc(data[c+13]), dcc(data[c+14]));
-          c += 15;
-          break;
-        case 14:
-          printf(" %02X %02X %02X %02X  %02X %02X %02X %02X  %02X %02X %02X %02X  %02X %02X        %c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",
-            data[c], data[c+1], data[c+2], data[c+3], data[c+4], data[c+5], data[c+6], data[c+7],
-            data[c+8], data[c+9], data[c+10], data[c+11], data[c+12], data[c+13],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]), dcc(data[c+4]), dcc(data[c+5]), dcc(data[c+6]), dcc(data[c+7]),
-            dcc(data[c+8]), dcc(data[c+9]), dcc(data[c+10]), dcc(data[c+11]), dcc(data[c+12]), dcc(data[c+13]));
-          c += 14;
-          break;
-        case 13:
-          printf(" %02X %02X %02X %02X  %02X %02X %02X %02X  %02X %02X %02X %02X  %02X           %c%c%c%c%c%c%c%c%c%c%c%c%c\n",
-            data[c], data[c+1], data[c+2], data[c+3], data[c+4], data[c+5], data[c+6], data[c+7],
-            data[c+8], data[c+9], data[c+10], data[c+11], data[c+12],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]), dcc(data[c+4]), dcc(data[c+5]), dcc(data[c+6]), dcc(data[c+7]),
-            dcc(data[c+8]), dcc(data[c+9]), dcc(data[c+10]), dcc(data[c+11]), dcc(data[c+12]));
-          c += 13;
-          break;
-        case 12:
-          printf(" %02X %02X %02X %02X  %02X %02X %02X %02X  %02X %02X %02X %02X               %c%c%c%c%c%c%c%c%c%c%c%c\n",
-            data[c], data[c+1], data[c+2], data[c+3], data[c+4], data[c+5], data[c+6], data[c+7],
-            data[c+8], data[c+9], data[c+10], data[c+11],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]), dcc(data[c+4]), dcc(data[c+5]), dcc(data[c+6]), dcc(data[c+7]),
-            dcc(data[c+8]), dcc(data[c+9]), dcc(data[c+10]), dcc(data[c+11]));
-          c += 12;
-          break;
-        case 11:
-          printf(" %02X %02X %02X %02X  %02X %02X %02X %02X  %02X %02X %02X                  %c%c%c%c%c%c%c%c%c%c%c\n",
-            data[c], data[c+1], data[c+2], data[c+3], data[c+4], data[c+5], data[c+6], data[c+7],
-            data[c+8], data[c+9], data[c+10],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]), dcc(data[c+4]), dcc(data[c+5]), dcc(data[c+6]), dcc(data[c+7]),
-            dcc(data[c+8]), dcc(data[c+9]), dcc(data[c+10]));
-          c += 11;
-          break;
-        case 10:
-          printf(" %02X %02X %02X %02X  %02X %02X %02X %02X  %02X %02X                     %c%c%c%c%c%c%c%c%c%c\n",
-            data[c], data[c+1], data[c+2], data[c+3], data[c+4], data[c+5], data[c+6], data[c+7],
-            data[c+8], data[c+9],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]), dcc(data[c+4]), dcc(data[c+5]), dcc(data[c+6]), dcc(data[c+7]),
-            dcc(data[c+8]), dcc(data[c+9]));
-          c += 10;
-          break;
-        case 9:
-          printf(" %02X %02X %02X %02X  %02X %02X %02X %02X  %02X                        %c%c%c%c%c%c%c%c%c\n",
-            data[c], data[c+1], data[c+2], data[c+3], data[c+4], data[c+5], data[c+6], data[c+7],
-            data[c+8],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]), dcc(data[c+4]), dcc(data[c+5]), dcc(data[c+6]), dcc(data[c+7]),
-            dcc(data[c+8]));
-          c += 9;
-          break;
-        case 8:
-          printf(" %02X %02X %02X %02X  %02X %02X %02X %02X                            %c%c%c%c%c%c%c%c\n",
-            data[c], data[c+1], data[c+2], data[c+3], data[c+4], data[c+5], data[c+6], data[c+7],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]), dcc(data[c+4]), dcc(data[c+5]), dcc(data[c+6]), dcc(data[c+7]));
-          c += 8;
-          break;
-        case 7:
-          printf(" %02X %02X %02X %02X  %02X %02X %02X                               %c%c%c%c%c%c%c\n",
-            data[c], data[c+1], data[c+2], data[c+3], data[c+4], data[c+5], data[c+6],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]), dcc(data[c+4]), dcc(data[c+5]), dcc(data[c+6]));
-          c += 7;
-          break;
-        case 6:
-          printf(" %02X %02X %02X %02X  %02X %02X                                  %c%c%c%c%c%c\n",
-            data[c], data[c+1], data[c+2], data[c+3], data[c+4], data[c+5],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]), dcc(data[c+4]), dcc(data[c+5]));
-          c += 6;
-          break;
-        case 5:
-          printf(" %02X %02X %02X %02X  %02X                                     %c%c%c%c%c\n",
-            data[c], data[c+1], data[c+2], data[c+3], data[c+4],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]), dcc(data[c+4]));
-          c += 5;
-          break;
-        case 4:
-          printf(" %02X %02X %02X %02X                                         %c%c%c%c\n",
-            data[c], data[c+1], data[c+2], data[c+3],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]), dcc(data[c+3]));
-          c += 4;
-          break;
-        case 3:
-          printf(" %02X %02X %02X                                            %c%c%c\n",
-            data[c], data[c+1], data[c+2],
-            dcc(data[c]), dcc(data[c+1]), dcc(data[c+2]));
-          c += 3;
-          break;
-        case 2:
-          printf(" %02X %02X                                               %c%c\n",
-            data[c], data[c+1],
-            dcc(data[c]), dcc(data[c+1]));
-          c += 2;
-          break;
-        case 1:
-          printf(" %02X                                                  %c\n",
-            data[c],
-            dcc(data[c]));
-          c += 1;
-          break;
-      }
-    }
-  }
-}
-
-unsigned char dcc(UCHAR c)
-{
-  if (isspace(c)) return ' ';
-  if (isprint(c)) return c;
-  return '.';
-}
-*/
diff --git a/util.cc b/util.cc
index 550de1fc47611c33316ccf93053952e23b536924..8d5320879f8e1a529e801e9ae5e01be839a5de6c 100644 (file)
--- a/util.cc
+++ b/util.cc
 */
 
 #include <time.h>
+#include <iostream>
 #include <iomanip>
+#include <sstream>
+#include <cctype>
 
 #ifdef WIN32
 #include <windows.h>
@@ -51,6 +54,34 @@ std::string tp2str(const std::chrono::time_point<std::chrono::system_clock>& tp)
   return ss.str();
 }
 
+void dump(void* vdata, int remaining)
+{
+  UCHAR* data = reinterpret_cast<UCHAR*>(vdata);
+  int pos{}, ntp, spaces;
+  std::stringstream ascii;
+
+  while(remaining)
+  {
+    ascii.str(std::string());
+    ntp = 16;
+    if (ntp > remaining) ntp = remaining;
+    std::cout << " " << std::hex << std::setfill('0');
+    for (int i = 0; i < ntp; i++)
+    {
+      std::cout << std::setw(2) << int(data[pos + i]) << " " << (i == 7 ? "  " : "");
+      if      (std::isspace(data[pos + i])) ascii << " ";
+      else if (std::isprint(data[pos + i])) ascii << data[pos + i];
+      else ascii << '.';
+    }
+    spaces = (16 - ntp) * 3 + 3;
+    if (ntp < 8) spaces += 2;
+    std::cout << std::setfill(' ') << std::setw(spaces) << "" << ascii.str() << std::endl;
+    pos += ntp;
+    remaining -= ntp;
+  }
+  std::cout << std::endl << std::endl;
+}
+
 /*
 ULLONG htonll(ULLONG a)
 {
diff --git a/util.h b/util.h
index 67010481b6fa544b04128bf0221d4dc0a0b690f6..b4a9153c505920395cb7366871dc4c1152d5860d 100644 (file)
--- a/util.h
+++ b/util.h
@@ -27,7 +27,7 @@
 
 void MILLISLEEP(ULONG a);
 std::string tp2str(const std::chrono::time_point<std::chrono::system_clock>& tp);
-
+void dump(void* data, int length);
 
 //ULLONG htonll(ULLONG a);
 //ULLONG ntohll(ULLONG a);
index 26e2302d7fbc2a4cdf07082f2045348d460fdb4c..83713c1290d8be5c90573c0997bbb24c796012d0 100644 (file)
     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */
 
+// FIXME
+
 #include "vdrresponsepacket.h"
 
 #include "vdr.h"
 
+#include "util.h"
+
 VDR_ResponsePacket::VDR_ResponsePacket()
 {
   userDataLength = 0;
@@ -68,7 +72,7 @@ bool VDR_ResponsePacket::end()
 
 void VDR_ResponsePacket::dumpUD()
 {
-  // FIXME TODO - use generic stdout hex printer for userData, userDataLength
+  dump(userData, userDataLength);
 }
 
 int VDR_ResponsePacket::serverError()