debian/rules: drop pointless get-orig-source target.
[debian/cdck.git] / src / lib_cdinfo.cpp
index 23fbf1493c453e058237b384daa96b53279f3cbe..d9deebe9a380eb0ab3b9c691524b4035fe44fc82 100644 (file)
@@ -1,7 +1,13 @@
 /*
  * $RCSfile: lib_cdinfo.cpp,v $
  * $Author: swaj $
- * $Revision: 1.1 $
+ * $Revision: 1.4 $
+ */
+
+/*
+ * This code is from cdinfo and has the following copyrights:
+ * (c) 1996,1997  Gerd Knorr <kraxel@cs.tu-berlin.de>
+ * and Heiko Eissfeldt <heiko@colossus.escape.de>
  */
 
 #ifdef HAVE_CONFIG_H
 #include "lib_cdinfo.h"
 #include "lib_main.h"
 
+static 
+void cannibalize_buffer (char *buff)
+{
+       int len = strlen(buff);
+
+       if (!len)
+               return;
+
+       int i;
+       for (i=len-1; i>0; i--)
+       {
+               switch (buff[i]) {
+               case 0x20:
+                       buff[i] = 0x0;
+                       break;
+               default:
+                       return;
+               }
+       }
+}
+
+void Ccdrom::read_creation_data (void)
+{
+       memset (buffer6, 0, 2048);
+       memset (sbuffer, 0, 256);
+       memset (sbuffer2, 0, 256);
+       memset (sbuffer3, 0, 256);
+
+       lseek (fd, 2048*16, SEEK_SET);
+       read (fd, buffer6, 2048);
 
-// this code taken quickly from cdinfo -->
-// (c) 1996,1997  Gerd Knorr <kraxel@cs.tu-berlin.de>
-// and Heiko Eissfeldt <heiko@colossus.escape.de>
+       memcpy (sbuffer,  buffer6 + PUBLISHER_OFFSET, PUBLISHER_LEN);
+       memcpy (sbuffer2, buffer6 + PREPARER_OFFSET , PREPARER_LEN);
+       memcpy (sbuffer3, buffer6 + SOFTWARE_OFFSET, SOFTWARE_LEN);
+
+       cannibalize_buffer (sbuffer);
+       cannibalize_buffer (sbuffer2);
+       cannibalize_buffer (sbuffer3);
+}
 
 void Ccdrom::read_super(int offset)
 {
@@ -62,6 +103,7 @@ void Ccdrom::read_super4(int offset)
     memset(buffer4,0,2048);
     lseek(fd,2048*(offset+17),SEEK_SET);
     read(fd,buffer4,2048);
+    read_creation_data();
 }
 
 void Ccdrom::read_super5(int offset)
@@ -246,3 +288,9 @@ int Ccdrom::guess_filesystem(int start_session)
 /*
  * __END__
  */
+
+
+
+
+
+