Hi
Here's a patch I applied to the Ubuntu package, and tested that the
button refuses to work. Would be nicer to disable the button altogether..
--
t
diff --git a/GNUmakefile.preamble b/GNUmakefile.preamble
index c4c0f10..c655893 100644
--- a/GNUmakefile.preamble
+++ b/GNUmakefile.preamble
@@ -25,7 +25,7 @@ ifeq ($(local-build), yes)
ADDITIONAL_CPPFLAGS += -DLOCALBUILD=1
endif
-ADDITIONAL_GUI_LIBS += -L/MingW/bin -lmusicbrainz
+ADDITIONAL_GUI_LIBS += -L/MingW/bin
ifneq (mingw32, $(GNUSTEP_TARGET_OS))
ifeq ($(debug), yes)
diff --git a/SongInspectorController.m b/SongInspectorController.m
index 52b3de6..6374c13 100644
--- a/SongInspectorController.m
+++ b/SongInspectorController.m
@@ -34,8 +34,6 @@
#import <Foundation/NSString.h>
#import <Foundation/NSThread.h>
-#import <musicbrainz/mb_c.h>
-
#import <Cynthiune/Format.h>
#import <Cynthiune/NSViewExtensions.h>
#import <Cynthiune/utils.h>
@@ -156,10 +154,10 @@ FreeQis (char *qis[])
{
if (!threadRunning)
{
- [lookupButton setEnabled: YES];
- [lookupButton setImage: [NSImage imageNamed: @"lookup-mb-on"]];
+ [lookupButton setEnabled: NO];
+ [lookupButton setImage: [NSImage imageNamed: @"lookup-mb-off"]];
[lookupAnimation setImage: nil];
- [lookupStatusLabel setStringValue: @""];
+ [lookupStatusLabel setStringValue: @"MB lookup doesn't work!"];
}
}
else
@@ -320,39 +318,6 @@ FreeQis (char *qis[])
forKey: @"song"]];
}
-- (char *) _generateTrmId
-{
- id <Format> stream;
- trm_t trmGen;
- int size;
- char sig[17];
- unsigned char buffer[4096];
- char *trmId;
-
- stream = [song openStreamForSong];
- if (stream)
- {
- trmGen = trm_New ();
- trm_SetPCMDataInfo (trmGen,
- [stream readRate], [stream readChannels], 16);
- trm_SetSongLength (trmGen, [stream readDuration]);
- size = [stream readNextChunk: buffer withSize: 4096];
- while (!trm_GenerateSignature (trmGen, (char *) buffer, size))
- size = [stream readNextChunk: buffer withSize: 4096];
-
- trm_FinalizeSignature (trmGen, sig, NULL);
-
- trmId = malloc (37);
- trm_ConvertSigToASCII (trmGen, sig, trmId);
- trm_Delete (trmGen);
- [stream streamClose];
- }
- else
- trmId = NULL;
-
- return trmId;
-}
-
- (void) updateField: (NSTextField *) field
withString: (NSString *) string
{
@@ -418,131 +383,6 @@ FreeQis (char *qis[])
selector: @selector (_updateFieldsWithTrackInfos:)];
}
-- (NSDictionary *) readMB: (musicbrainz_t) mb
- track: (int) track
-{
- NSMutableDictionary *trackInfos;
- NSString *string;
- char cString[100];
- int releases;
-
- trackInfos = [NSMutableDictionary new];
- [trackInfos autorelease];
-
- mb_Select1 (mb, MBS_SelectTrack, track);
- if (mb_GetResultData (mb, MBE_TrackGetTrackName, cString, 100))
- {
- string = [NSString stringWithUTF8String: cString];
- [trackInfos setObject: string forKey: @"title"];
- }
-
- if (mb_GetResultData (mb, MBE_TrackGetArtistName, cString, 100))
- {
- string = [NSString stringWithUTF8String: cString];
- [trackInfos setObject: string forKey: @"artist"];
- }
-
- if (mb_GetResultData (mb, MBE_TrackGetTrackNum, cString, 100))
- {
- string = [NSString stringWithUTF8String: cString];
- [trackInfos setObject: string forKey: @"trackNumber"];
- }
-
- if (mb_Select (mb, MBS_SelectTrackAlbum))
- {
- if (mb_GetResultData (mb, MBE_AlbumGetAlbumName, cString, 100))
- {
- string = [NSString stringWithUTF8String: cString];
- [trackInfos setObject: string forKey: @"album"];
- }
-#ifdef MBE_AlbumGetNumReleaseDates
- releases = mb_GetResultInt (mb, MBE_AlbumGetNumReleaseDates);
- if (releases)
- {
- mb_Select1 (mb, MBS_SelectReleaseDate, 1);
- if (mb_GetResultData (mb, MBE_ReleaseGetDate, cString, 100))
- {
- *(cString + 4) = 0;
- string = [NSString stringWithUTF8String: cString];
- [trackInfos setObject: string forKey: @"year"];
- }
- mb_Select (mb, MBS_Back);
- }
-#endif
-
- mb_Select (mb, MBS_Back);
- }
-
- mb_Select (mb, MBS_Rewind);
-
- return trackInfos;
-}
-
-- (void) _parseMB: (musicbrainz_t) mb
-{
- int count, results;
- NSMutableArray *allTrackInfos;
-
- results = mb_GetResultInt (mb, MBE_GetNumTracks);
- allTrackInfos = [[NSMutableArray alloc] initWithCapacity: results];
- [allTrackInfos autorelease];
-
- for (count = 0; count < results; count++)
- [allTrackInfos addObject: [self readMB: mb track: count + 1]];
-
- [self performSelectorOnMainThread: @selector (_updateSongFields:)
- withObject: allTrackInfos
- waitUntilDone: YES];
-}
-
-- (void) lookupThread
-{
- NSAutoreleasePool *pool;
- char *trmId;
- musicbrainz_t mb;
- char **qis;
- char error[80];
-
- pool = [NSAutoreleasePool new];
-
- [self updateField: lookupStatusLabel
- withString: LOCALIZED(@"Generating TRM...")];
- trmId = [self _generateTrmId];
- if (trmId && !threadShouldDie)
- {
- qis = MakeQis (trmId, song);
-
- if (strcasecmp (trmId, busyTrmId))
- {
- [self updateField: lookupStatusLabel
- withString: LOCALIZED (@"Querying MusicBrainz server...")];
- mb = mb_New ();
- mb_UseUTF8 (mb, YES);
- if (mb_QueryWithArgs (mb, MBQ_TrackInfoFromTRMId, qis))
- [self _parseMB: mb];
- else
- {
-// FIXME: there should be an accurate error message here...
- [self updateField: lookupStatusLabel
- withString: @""];
- mb_GetQueryError (mb, error, 80);
- NSLog (@"Musicbrainz error: %s (%s)", error, trmId);
- }
- mb_Delete (mb);
- }
- else
- [self updateField: lookupStatusLabel
- withString: LOCALIZED (@"The MusicBrainz server was too busy")];
-
- FreeQis (qis);
- }
-
- [self performSelectorOnMainThread: @selector (lookupThreadEnded)
- withObject: nil
- waitUntilDone: NO];
-
- [pool release];
-}
- (void) mbLookup: (id)sender
{