X-Git-Url: https://git.toastfreeware.priv.at/debian/cdck.git/blobdiff_plain/0700112e82db1da1804635230603a6b49191906d..c8c0b1ae1a67599714bac71a6f9464d945f5f573:/src/lib_cdinfo.cpp diff --git a/src/lib_cdinfo.cpp b/src/lib_cdinfo.cpp index c7679b9..d9deebe 100644 --- a/src/lib_cdinfo.cpp +++ b/src/lib_cdinfo.cpp @@ -1,7 +1,7 @@ /* * $RCSfile: lib_cdinfo.cpp,v $ * $Author: swaj $ - * $Revision: 1.3 $ + * $Revision: 1.4 $ */ /* @@ -33,6 +33,46 @@ #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__ */ + + + + + +