From 676b220430b3b87ae55a3eee04187f3f168cea8c Mon Sep 17 00:00:00 2001 From: vspader Date: Tue, 4 Apr 2006 01:08:21 +0000 Subject: [PATCH] Bug fixes: 1463532, 1463513 --- AppController.h | 8 ++++++ AppController.m | 22 +++++++++++++++ Changelog | 17 ++++++++++-- Credits.html | 6 +++-- English.lproj/InfoPlist.strings | Bin 240 -> 250 bytes English.lproj/MainMenu.nib/classes.nib | 4 ++- English.lproj/MainMenu.nib/info.nib | 7 ++--- English.lproj/MainMenu.nib/keyedobjects.nib | Bin 46827 -> 49437 bytes Info.plist | 4 +-- PlaybackController.h | 2 ++ PlaybackController.m | 24 +++++++++-------- Playlist/DNDArrayController.m | 1 - Playlist/PlaylistController.m | 1 - Playlist/PlaylistEntry.m | 4 +-- README | 28 ++++---------------- Sound/InputNode.m | 2 +- Sound/OutputCoreAudio.m | 8 +++--- Sound/OutputNode.m | 4 +-- Sound/SoundController.m | 6 ++--- Sound/SoundFile/VorbisFile.m | 4 --- 20 files changed, 90 insertions(+), 62 deletions(-) diff --git a/AppController.h b/AppController.h index 5585282ef..c8d9193d3 100644 --- a/AppController.h +++ b/AppController.h @@ -18,6 +18,8 @@ IBOutlet NSButton *infoButton; IBOutlet NSButton *shuffleButton; IBOutlet NSButton *repeatButton; + + IBOutlet NSDrawer *infoDrawer; } - (IBAction)addFiles:(id)sender; @@ -28,6 +30,12 @@ - (void)openPanelDidEnd:(NSOpenPanel *)panel returnCode:(int)returnCode contextInfo:(void *)contextInfo; +- (IBAction)donate:(id)sender; + +- (IBAction)toggleInfoDrawer:(id)sender; +- (void)drawerDidOpen:(NSNotification *)notification; +- (void)drawerDidClose:(NSNotification *)notification; + //Fun stuff - (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag; - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename; diff --git a/AppController.m b/AppController.m index 12e5a3b1a..0f654b222 100644 --- a/AppController.m +++ b/AppController.m @@ -150,4 +150,26 @@ [theApplication replyToOpenOrPrint:NSApplicationDelegateReplySuccess]; } +- (IBAction)toggleInfoDrawer:(id)sender +{ + [mainWindow makeKeyAndOrderFront:self]; + + [infoDrawer toggle:self]; +} + +- (void)drawerDidOpen:(NSNotification *)notification +{ + [infoButton setState:NSOnState]; +} + +- (void)drawerDidClose:(NSNotification *)notification +{ + [infoButton setState:NSOffState]; +} + +- (IBAction)donate:(id)sender +{ + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://sourceforge.net/project/project_donations.php?group_id=140003"]]; +} + @end diff --git a/Changelog b/Changelog index ea6921ff4..45d0ac53c 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,15 @@ -0.05 ----- +0.05 alpha 2 +------------ +Fixed dock menu connections, and menu connections for play/stop/next/prev. +Fixed bindings for tag/info drawer. +Volume settings are now consistent across songs. +Window remembers its location. +Info button now turns off when manually dragging the info drawer closed. +Fixed weirdness when displaying the info drawer after closing the window (via menu or keyboard shortcut). Performing Get info now makes the window visible. +Added a donation menu item. ($) + +0.05 alpha 1 +------------ Dragging to the dock icon now works in 10.3. Selection now selects the first song added when adding new files. Now seeds the random number generator for shuffle mode. @@ -12,6 +22,9 @@ Seekbar now updates the time field as you drag it, Simon Savary Window is now brought to the front when opening a playlist. Should work with 3rd party audio devices. +Gapless playback. +New core which should feature better performance. +New bugs and crashes! 0.04 ---- diff --git a/Credits.html b/Credits.html index 71afa4ef4..71d5575a3 100644 --- a/Credits.html +++ b/Credits.html @@ -1,5 +1,7 @@ - -Cog is dedicated to satan. Some guys just get a bad rap. + +Cog is dedicated to snacos, the ungodly combination of snacks and tacos. +

+This program has been made possible through donations from users like you. diff --git a/English.lproj/InfoPlist.strings b/English.lproj/InfoPlist.strings index 210807cd80c547a515b5dc90ba90ab0cd4bac81e..b1bd4c7020d43d902477c5d51e5b1845bcaa21f9 100644 GIT binary patch delta 20 acmeys_=|DETV7oTBL)K?G-FU=um%7{Lj=hH delta 10 Rcmeyx_ IBDocumentLocation - 48 89 617 240 0 0 1024 746 + 91 411 617 240 0 0 1024 746 IBEditorPositions 29 - 243 676 346 44 0 0 1024 746 + 235 637 346 44 0 0 1024 746 463 336 385 352 268 0 0 1024 746 513 - 475 157 109 106 0 0 1024 746 + 85 528 109 106 0 0 1024 746 IBFramework Version 443.0 @@ -28,6 +28,7 @@ 3 IBOpenObjects + 513 463 29 21 diff --git a/English.lproj/MainMenu.nib/keyedobjects.nib b/English.lproj/MainMenu.nib/keyedobjects.nib index 895269de9a6c1513c77dabb7817d3fa5e5d64c41..bd3dbe8f2cc39891d1229c8b46a07eea904c13c1 100644 GIT binary patch literal 49437 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

PpW751XZQ55_jTXIP4X4cUT9)cLaS8c9}U> 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 diff --git a/Info.plist b/Info.plist index 78865cae0..01ba218a9 100644 --- a/Info.plist +++ b/Info.plist @@ -87,7 +87,7 @@ CFBundleIconFile wheel CFBundleIdentifier - com.badahol.cog + com.vspader.cog CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType @@ -95,7 +95,7 @@ CFBundleSignature ???? CFBundleVersion - 0.05 + 0.05 alpha 1 NSAppleScriptEnabled YES NSMainNibFile diff --git a/PlaybackController.h b/PlaybackController.h index ce27aac0b..66bdaa18f 100644 --- a/PlaybackController.h +++ b/PlaybackController.h @@ -27,6 +27,8 @@ int playbackStatus; + float currentVolume; + BOOL showTimeRemaining; } diff --git a/PlaybackController.m b/PlaybackController.m index 1e828835b..3a410f051 100644 --- a/PlaybackController.m +++ b/PlaybackController.m @@ -22,13 +22,13 @@ - (void)awakeFromNib { - + currentVolume = 100.0; } - (IBAction)playPauseResume:(id)sender { - NSLog(@"PLAYING"); + DBLog(@"PLAYING"); if (playbackStatus == kCogStatusStopped) [self play:self]; else @@ -87,24 +87,25 @@ if (playbackStatus != kCogStatusStopped) [self stop:self]; - NSLog(@"LENGTH: %lf", [pe length]); + DBLog(@"LENGTH: %lf", [pe length]); [positionSlider setMaxValue:[pe length]]; [positionSlider setDoubleValue:0.0f]; [self updateTimeField:0.0f]; [soundController play:[pe filename]]; + [soundController setVolume:currentVolume]; } - (IBAction)next:(id)sender { - NSLog(@"CALLING: %i %i", playbackStatus, kCogStatusStopped); + DBLog(@"CALLING: %i %i", playbackStatus, kCogStatusStopped); if ([playlistController next] == NO) return; if (playbackStatus != kCogStatusStopped) { - NSLog(@"STOPPING"); + DBLog(@"STOPPING"); [self stop:self]; [self playEntry:[playlistController currentEntry]]; } @@ -112,7 +113,7 @@ - (IBAction)prev:(id)sender { - NSLog(@"CALLING"); + DBLog(@"CALLING"); if ([playlistController prev] == nil) return; @@ -129,7 +130,7 @@ double time; time = [positionSlider doubleValue]; -// if ([sender tracking] == NO) // check if user stopped sliding before playing audio + if ([sender tracking] == NO) // check if user stopped sliding before playing audio [soundController seekToTime:time]; [self updateTimeField:time]; @@ -156,8 +157,9 @@ - (IBAction)changeVolume:(id)sender { - float v = (float)[sender doubleValue]; - [soundController setVolume:v]; + currentVolume = (float)[sender doubleValue]; + + [soundController setVolume:currentVolume]; } @@ -193,7 +195,7 @@ [soundController setNextSong:nil]; else { - NSLog(@"NEXT SONG: %@", [pe filename]); + DBLog(@"NEXT SONG: %@", [pe filename]); [soundController setNextSong:[pe filename]]; } } @@ -233,7 +235,7 @@ int status = [s intValue]; if (status == kCogStatusStopped || status == kCogStatusPaused) { - NSLog(@"INVALIDATING"); + DBLog(@"INVALIDATING"); if (positionTimer) { [positionTimer invalidate]; diff --git a/Playlist/DNDArrayController.m b/Playlist/DNDArrayController.m index 7b9fd8d79..1bc74f3fb 100755 --- a/Playlist/DNDArrayController.m +++ b/Playlist/DNDArrayController.m @@ -121,7 +121,6 @@ NSString *MovedRowsType = @"MOVED_ROWS_TYPE"; - (NSIndexSet *)indexSetFromRows:(NSArray *)rows { - NSLog(@"HELLO"); NSMutableIndexSet *indexSet = [NSMutableIndexSet indexSet]; NSEnumerator *rowEnumerator = [rows objectEnumerator]; NSNumber *idx; diff --git a/Playlist/PlaylistController.m b/Playlist/PlaylistController.m index c20626e5b..e5a02f408 100644 --- a/Playlist/PlaylistController.m +++ b/Playlist/PlaylistController.m @@ -260,7 +260,6 @@ - (PlaylistEntry *)entryAtOffset:(int)offset { - NSLog(@"SHUFFLE: %i", offset); if (shuffle == YES) { int i = shuffleIndex; diff --git a/Playlist/PlaylistEntry.m b/Playlist/PlaylistEntry.m index 64875c9a3..f16dbef0e 100644 --- a/Playlist/PlaylistEntry.m +++ b/Playlist/PlaylistEntry.m @@ -219,11 +219,11 @@ -(void)readTags { TagLib_File *tagFile = taglib_file_new((const char *)[filename UTF8String]); - NSLog(@"Does it have a file? %i %s", tagFile, (const char *)[filename UTF8String]); + DBLog(@"Does it have a file? %i %s", tagFile, (const char *)[filename UTF8String]); if (tagFile) { TagLib_Tag *tag = taglib_file_tag(tagFile); - NSLog(@"Does it have a tag? %i", tag); + DBLog(@"Does it have a tag? %i", tag); if (tag) { diff --git a/README b/README index 31ba20304..16fed11a8 100644 --- a/README +++ b/README @@ -1,28 +1,10 @@ ---------------------------------------------------------------------------- -10.3 USERS!!! +Cog is released under the GPL. See COPYING for details. -If you are using 10.3.8 or below, I'd like to hear from you. I'm trying to -support all 10.3 systems, as I heard some people have had troubles with -10.3.9, and won't upgrade to it. -I can only fix this if people who actually run those systems wish to help -me debug Cog. Thanks! ---------------------------------------------------------------------------- +The libraries folder contains various decoding and tagging libraries, which i have created Xcode projects for, and possibly modified to make compile on OS X. The various libraries are under each of their own licenses. - Cog is released under the GPL. See COPYING for details. - - The libraries folder contains various decoding and tagging -libraries, which i have created Xcode projects for, and possibly modified -to make compile on OS X. The various libraries are under each of their own -licenses. - - Please note that vulgar language may be contained in the source code. -It is rated M for mature by the ESRB, the MPAA, and whatever else deems it -unsuitable for virgin ears. - - All Cog code is copyrighted by me, and is licensed under the GPL. +All Cog code is copyrighted by me, and is licensed under the GPL. - If you would like the photoshop sources for the various icons and -graphics, please send me an email, and I will be happy to get them to you. +If you would like the photoshop sources for the various icons and graphics, please send me an email, and I will be happy to get them to you. - Share and enjoy. +Share and enjoy. --Vincent Spader (vspader@users.sf.net) diff --git a/Sound/InputNode.m b/Sound/InputNode.m index d0249071f..f011d5850 100644 --- a/Sound/InputNode.m +++ b/Sound/InputNode.m @@ -42,7 +42,7 @@ if (amountRead <= 0) { endOfStream = YES; - NSLog(@"END OF INPUT WAS REACHED"); + DBLog(@"END OF INPUT WAS REACHED"); [controller endOfInputReached]; break; //eof } diff --git a/Sound/OutputCoreAudio.m b/Sound/OutputCoreAudio.m index bd6b05c66..942468154 100644 --- a/Sound/OutputCoreAudio.m +++ b/Sound/OutputCoreAudio.m @@ -33,7 +33,7 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc if ([output->outputController shouldContinue] == NO) { - NSLog(@"STOPPING"); + DBLog(@"STOPPING"); AudioOutputUnitStop(output->outputUnit); // [output stop]; @@ -58,7 +58,7 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc - (BOOL)setup { - NSLog(@"SETUP"); + DBLog(@"SETUP"); if (outputUnit) [self stop]; @@ -153,13 +153,13 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc - (void)start { - NSLog(@"START OUTPUT\n"); + DBLog(@"START OUTPUT\n"); AudioOutputUnitStart(outputUnit); } - (void)stop { - NSLog(@"STOP!"); + DBLog(@"STOP!"); if (outputUnit) { AudioOutputUnitStop(outputUnit); diff --git a/Sound/OutputNode.m b/Sound/OutputNode.m index fd00c76b5..d22dc0bdb 100644 --- a/Sound/OutputNode.m +++ b/Sound/OutputNode.m @@ -52,11 +52,11 @@ // NSLog(@"N: %i %i", n, endOfStream); if (endOfStream == YES) { - NSLog(@"End of stream reached: %i", endOfStream); + DBLog(@"End of stream reached: %i", endOfStream); amountPlayed = 0; [controller endOfInputPlayed]; //Updates shouldContinue appropriately? - NSLog(@"End of stream reached: %i", endOfStream); + DBLog(@"End of stream reached: %i", endOfStream); // return (n + [self readData:ptr amount:(amount-n)]); } diff --git a/Sound/SoundController.m b/Sound/SoundController.m index ab9da4635..b6a2ed162 100644 --- a/Sound/SoundController.m +++ b/Sound/SoundController.m @@ -127,7 +127,7 @@ { [delegate delegateRequestNextSong:[chainQueue count]]; - NSLog(@"END OF INPUT REACHED"); + DBLog(@"END OF INPUT REACHED"); if (nextSong == nil) return; @@ -149,7 +149,7 @@ if ([chainQueue count] <= 0) { //End of playlist - NSLog(@"STOPPED"); + DBLog(@"STOPPED"); [self stop]; return; @@ -157,7 +157,7 @@ // NSLog(@"SWAPPING BUFFERS"); [bufferChain release]; - NSLog(@"END OF INPUT PLAYED"); + DBLog(@"END OF INPUT PLAYED"); bufferChain = [chainQueue objectAtIndex:0]; [bufferChain retain]; diff --git a/Sound/SoundFile/VorbisFile.m b/Sound/SoundFile/VorbisFile.m index f09eb0374..996d68213 100644 --- a/Sound/SoundFile/VorbisFile.m +++ b/Sound/SoundFile/VorbisFile.m @@ -65,10 +65,6 @@ return total; } -- (void)dealloc -{ - NSLog(@"DEALLOCATING VORBIS"); -} - (void)close { ov_clear(&vorbisRef);