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