logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

hcl: tools testdbv2.c,1.3,1.4: msg#00590

Subject: hcl: tools testdbv2.c,1.3,1.4
Update of /cvsroot/rockbox/tools
In directory labb:/tmp/cvs-serv27902

Modified Files:
        testdbv2.c 
Log Message:
runtime database support for the tester..



Index: testdbv2.c
===================================================================
RCS file: /cvsroot/rockbox/tools/testdbv2.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- testdbv2.c  4 Jun 2005 19:15:53 -0000       1.3
+++ testdbv2.c  30 Jun 2005 20:34:03 -0000      1.4
@@ -1,13 +1,13 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#define ARTISTLEN        32
-#define ALBUMLEN         68
-#define SONGLEN          92
-#define GENRELEN         20
-#define FILELEN          212
-#define SONGARRAYLEN     48
-#define ALBUMARRAYLEN    38
+#define ARTISTLEN        60
+#define ALBUMLEN         64
+#define SONGLEN          120
+#define GENRELEN         28
+#define FILELEN          176
+#define SONGARRAYLEN     715
+#define ALBUMARRAYLEN    186
 
 
 #define BE32(_x_) (((_x_ & 0xff000000) >> 24) | \
@@ -64,7 +64,21 @@
    int song[SONGARRAYLEN];
 } AlbumEntry;
 
-FILE *fp;
+struct RundbHeader {
+   int version;
+   int entrycount;
+} RundbHeader;
+
+struct RundbEntry {
+   int file;
+   int hash;
+   short rating;
+   short voladj;
+   int playcount;
+   int lastplayed;
+} RundbEntry;
+
+FILE *fp,*fp2;
 
 void showsong(int offset) {
    fseek(fp,offset,SEEK_SET);
@@ -111,8 +125,21 @@
    }
 }
 
+void showrundb(int offset) {
+    fseek(fp2,offset,SEEK_SET);
+    fread(&RundbEntry,sizeof(struct RundbEntry),1,fp2);
+   RundbEntry.hash=BE32(RundbEntry.hash);
+   RundbEntry.playcount=BE32(RundbEntry.playcount);
+   RundbEntry.lastplayed=BE32(RundbEntry.lastplayed);
+   RundbEntry.rating=BE16(RundbEntry.rating);
+   RundbEntry.voladj=BE16(RundbEntry.voladj);
+    printf("Offset: 0x%x\nHash: 0x%x\nRating: %d\nVoladj: 
0x%x\n",offset,RundbEntry.hash,RundbEntry.rating,RundbEntry.voladj);
+    printf("Playcount: 0x%x\nLastplayed: 
%d\n",RundbEntry.playcount,RundbEntry.lastplayed);
+}
+
 int main() {
-   fp=fopen("rockbox.id3db","r");
+   fp=fopen("rockbox.tagdb","r");
+   fp2=fopen("rockbox.rundb","r");
    int *p,i,temp,temp2,temp3,temp4;
    if(fp<0) return -1;
    fread(&header,sizeof(header),1,fp);
@@ -121,6 +148,14 @@
           *p=BE32(*p);
           p++;
    }
+   if(fp2>=0) {
+       fread(&RundbHeader,sizeof(RundbHeader),1,fp2);
+       p=&RundbHeader;
+       for(i=0;i<2;i++) {
+           *p=BE32(*p);
+           p++;
+       }
+   }
    printf("db version    : 0x%x\n",header.version&0xFF);
    printf("Artist start  : 0x%x\n",header.artiststart);
    printf("Album start   : 0x%x\n",header.albumstart);
@@ -138,6 +173,10 @@
    printf("Songarraylen  : %d\n",header.songarraylen);
    printf("Albumarraylen : %d\n",header.albumarraylen);
    printf("Rundb dirty   : %d\n",header.rundbdirty);
+   if(fp2>=0) {
+       printf("Rundb version : 0x%x\n",RundbHeader.version&0xFF);
+       printf("Rundb entrys  : %d\n",RundbHeader.entrycount);
+   }
    if( sizeof(struct SongEntry)!=(header.songlen+header.genrelen+16)) {
                printf("Song Entry Size mismatch.. update the code to correct 
size.\n");
               return;
@@ -156,7 +195,9 @@
    }
 
    do {
-     printf("\n\nShow artist(1)/album(2)/song(3)/file(4) ? ");
+     printf("\n\nShow artist(1)/album(2)/song(3)/file(4)");
+     if(fp2>=0) printf("/rundb(5)");
+     printf(" ? ");
      fflush(stdout);
      temp=temp2=temp3=0;
      scanf("%d",&temp);
@@ -197,6 +238,11 @@
                              showfile(header.filestart +
                                              temp2*sizeof(struct FileEntry));
                     break;
+         case 5:    if(temp2==-1)
+                             showrundb(temp3);
+                    else
+                             showrundb(8+temp2*sizeof(struct RundbEntry));
+             break;
              default:
                     return;
                     break;

_______________________________________________
http://cool.haxx.se/mailman/listinfo/rockbox-cvs



<Prev in Thread] Current Thread [Next in Thread>