Load /tmp/tmp.iJANi30786/cdck-0.6.0 into
[debian/cdck.git] / src / lib_cdinfo.cpp
index c7679b9e3ce72b00fa63f4ce5f4c6bca02884b6f..d9deebe9a380eb0ab3b9c691524b4035fe44fc82 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * $RCSfile: lib_cdinfo.cpp,v $
  * $Author: swaj $
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
  */
 
 /*
 #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);
+
+       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)
 {
     /* sector 16, super block */
@@ -63,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)
@@ -247,3 +288,9 @@ int Ccdrom::guess_filesystem(int start_session)
 /*
  * __END__
  */
+
+
+
+
+
+