All pastes #42176 Raw Edit

dc

public text v1 · immutable
#42176 ·published 2006-02-20 03:10 UTC
rendered paste body
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -32,12 +9,6 @@
     char          error[256], data[256], temp[256], *args[2];
     int           ret, numTracks, trackNum, i, isMultipleArtist = 0, numDates, albumNum;
 
-    if (argc < 2)
-    {
-        printf("Usage: getalbum <albumid|cdindexid>\n");
-        exit(0);
-    }
-
     // Create the musicbrainz object, which will be needed for subsequent calls
     o = mb_New();
 
@@ -62,16 +33,29 @@
     else
         mb_SetDepth(o, 4);
 
-    // Set up the args for the find album query
-    args[0] = argv[1];
+    ret = mb_Query (o, MBQ_GetCDTOC);
+    if (!ret)
+    {
+        mb_GetQueryError(o, error, 256);
+        printf("Query failed: %s\n", error);
+        mb_Delete(o);
+        return 0;
+    }
+
+    ret = mb_GetResultData(o, MBE_TOCGetCDIndexId, data, 256);
+    if (!ret)
+      {
+        mb_GetQueryError(o, error, 256);
+        printf("Query failed: %s\n", error);
+        mb_Delete(o);
+        return 0;
+      }
+
+    args[0] = data;
     args[1] = NULL;
 
-    if (strlen(argv[1]) != MB_CDINDEX_ID_LEN)
-        // Execute the MB_GetAlbumById query
-        ret = mb_QueryWithArgs(o, MBQ_GetAlbumById, args);
-    else
-        // Execute the MBQ_GetCDInfoFromCDIndexId
-        ret = mb_QueryWithArgs(o, MBQ_GetCDInfoFromCDIndexId, args);
+    // Execute the MBQ_GetCDInfoFromCDIndexId
+    ret = mb_QueryWithArgs(o, MBQ_GetCDInfoFromCDIndexId, args);

     if (!ret)
     {