mas01cr@386: #include "audioDB.h" mas01cr@386: mas01cr@386: void audioDB::liszt(const char* dbName, unsigned offset, unsigned numLines, adb__lisztResponse* adbLisztResponse){ mas01cr@386: if(!dbH) { mas01cr@386: initTables(dbName, 0); mas01cr@386: } mas01cr@386: mas01cr@386: assert(trackTable && fileTable); mas01cr@386: mas01cr@386: if(offset>dbH->numFiles){ mas01cr@386: char tmpStr[MAXSTR]; mas01cr@386: sprintf(tmpStr, "numFiles=%u, lisztOffset=%u", dbH->numFiles, offset); mas01cr@386: error("listKeys offset out of range", tmpStr); mas01cr@386: } mas01cr@386: mas01cr@386: if(!adbLisztResponse){ mas01cr@386: for(Uns32T k=0; knumFiles; k++){ mas01cr@386: fprintf(stdout, "[%d] %s (%d)\n", offset+k, fileTable+(offset+k)*O2_FILETABLE_ENTRY_SIZE, trackTable[offset+k]); mas01cr@386: } mas01cr@386: } mas01cr@386: else{ mas01cr@386: adbLisztResponse->result.Rkey = new char*[numLines]; mas01cr@386: adbLisztResponse->result.Rlen = new unsigned int[numLines]; mas01cr@386: Uns32T k = 0; mas01cr@386: for( ; knumFiles; k++){ mas01cr@386: adbLisztResponse->result.Rkey[k] = new char[MAXSTR]; mas01cr@386: snprintf(adbLisztResponse->result.Rkey[k], O2_MAXFILESTR, "%s", fileTable+(offset+k)*O2_FILETABLE_ENTRY_SIZE); mas01cr@386: adbLisztResponse->result.Rlen[k] = trackTable[offset+k]; mas01cr@386: } mas01cr@386: adbLisztResponse->result.__sizeRkey = k; mas01cr@386: adbLisztResponse->result.__sizeRlen = k; mas01cr@386: } mas01cr@386: mas01cr@386: }