CQTexperiment
vspader 2005-06-20 18:50:59 +00:00
parent deb5d66f6d
commit 474a5236a4
9 changed files with 1073 additions and 418 deletions

View File

@ -1,3 +1,11 @@
0.0.3
-----
Fixed bug where Default.playlist referred to non-existent files, resulting in a crash.
Clicking on the time display will now alternate between current time, and time to go.
Now makes ham.
0.0.2
-----
Awesomized id3v2 and tagging support courtesy of TagLib.
Dramatically improved performance of monkeys audio codec.
SHN and Wavpack support.
@ -7,3 +15,7 @@ Added tooltips and control menu.
Fixed play button so it now plays the currently selected song if no song is playing. Otherwise, it does pause/resume.
Changed info panel to a drawer.
Misc UI fixes.
0.0.1
-----
Initial release.

View File

@ -36,6 +36,8 @@
8E5A90B1084CBC2F00AE6D62 /* Changelog in Resources */ = {isa = PBXBuildFile; fileRef = 8E5A90B0084CBC2F00AE6D62 /* Changelog */; };
8E652A02083D93EB00A7AF1B /* TrackingSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E652A00083D93EB00A7AF1B /* TrackingSlider.m */; };
8E6F2A1908480D010011F126 /* wheel.icns in Resources */ = {isa = PBXBuildFile; fileRef = 8E6F2A1808480D010011F126 /* wheel.icns */; };
8E7DAB4F0867423900615930 /* ClickField.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8E7DAB4D0867423900615930 /* ClickField.h */; };
8E7DAB500867423900615930 /* ClickField.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E7DAB4E0867423900615930 /* ClickField.m */; };
8E81BC33083673ED0025A375 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E81BC31083673ED0025A375 /* AudioToolbox.framework */; };
8E81BC34083673ED0025A375 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E81BC32083673ED0025A375 /* AudioUnit.framework */; };
8E8BAE5408548BD500E9F14D /* WavPackFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E8BAE5208548BD500E9F14D /* WavPackFile.m */; };
@ -143,6 +145,7 @@
8EFFB6D5083302A500C53833 /* FLAC.framework in CopyFiles */,
8EFFB6D6083302A500C53833 /* DecMPA.framework in CopyFiles */,
8E287E4A0855F2EC00562C66 /* InfoView.h in CopyFiles */,
8E7DAB4F0867423900615930 /* ClickField.h in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -198,6 +201,8 @@
8E6529FF083D93EB00A7AF1B /* TrackingSlider.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TrackingSlider.h; sourceTree = "<group>"; };
8E652A00083D93EB00A7AF1B /* TrackingSlider.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = TrackingSlider.m; sourceTree = "<group>"; };
8E6F2A1808480D010011F126 /* wheel.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = wheel.icns; path = Icons/wheel.icns; sourceTree = "<group>"; };
8E7DAB4D0867423900615930 /* ClickField.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ClickField.h; sourceTree = "<group>"; };
8E7DAB4E0867423900615930 /* ClickField.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ClickField.m; sourceTree = "<group>"; };
8E81BC31083673ED0025A375 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
8E81BC32083673ED0025A375 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
8E8BAE5108548BD500E9F14D /* WavPackFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WavPackFile.h; sourceTree = "<group>"; };
@ -285,7 +290,7 @@
8E267D080837F7A6004ACBC5 /* Updates */,
8E47215C08318D12001F89FA /* Playlist */,
8EF6FA64082DA525006F7BE6 /* SoundFile */,
8E6529F8083D93AF00A7AF1B /* Slider */,
8E6529F8083D93AF00A7AF1B /* Custom */,
8E287E480855F2EC00562C66 /* InfoView.h */,
8E287E490855F2EC00562C66 /* InfoView.m */,
8E2871080836934A0013CE39 /* VirtualRingBuffer.h */,
@ -424,15 +429,17 @@
name = Playlist;
sourceTree = "<group>";
};
8E6529F8083D93AF00A7AF1B /* Slider */ = {
8E6529F8083D93AF00A7AF1B /* Custom */ = {
isa = PBXGroup;
children = (
8E297908083D891500F2C55A /* TrackingCell.m */,
8E297909083D891500F2C55A /* TrackingCell.h */,
8E6529FF083D93EB00A7AF1B /* TrackingSlider.h */,
8E652A00083D93EB00A7AF1B /* TrackingSlider.m */,
8E7DAB4D0867423900615930 /* ClickField.h */,
8E7DAB4E0867423900615930 /* ClickField.m */,
);
name = Slider;
name = Custom;
sourceTree = "<group>";
};
8EAFD26D08465E4500107BA5 /* Icons */ = {
@ -637,6 +644,7 @@
8E8BAE5408548BD500E9F14D /* WavPackFile.m in Sources */,
8E8BAE5808548BE800E9F14D /* ShnFile.m in Sources */,
8E287E4B0855F2EC00562C66 /* InfoView.m in Sources */,
8E7DAB500867423900615930 /* ClickField.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@ -254,19 +254,21 @@
<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
<array>
<string>29B97314FDCFA39411CA2CEA</string>
<string>080E96DDFE201D6D7F000001</string>
<string>8E6529F8083D93AF00A7AF1B</string>
<string>29B97317FDCFA39411CA2CEA</string>
<string>1C37FABC05509CD000000102</string>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
<integer>7</integer>
<integer>3</integer>
<integer>32</integer>
<integer>24</integer>
<integer>0</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
<string>{{0, 0}, {186, 565}}</string>
<string>{{0, 51}, {186, 565}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
@ -285,7 +287,7 @@
<real>186</real>
</array>
<key>RubberWindowFrame</key>
<string>2 122 1024 624 0 0 1024 746 </string>
<string>1 122 1024 624 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@ -303,7 +305,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CE0B20306471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>Info.plist</string>
<string>Changelog</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@ -311,11 +313,11 @@
<key>PBXProjectModuleGUID</key>
<string>1CE0B20406471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>Info.plist</string>
<string>Changelog</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>8EE558090866A24B009E7F50</string>
<string>8E7DABA50867470600615930</string>
<key>history</key>
<array>
<string>8EF6FACD082DAA2B006F7BE6</string>
@ -324,10 +326,6 @@
<string>8E267DDB0837FE5F004ACBC5</string>
<string>8E1A1826083806B700AEA302</string>
<string>8E6082C7083920310017AECF</string>
<string>8E652A33083E1A7900A7AF1B</string>
<string>8E652A34083E1A7900A7AF1B</string>
<string>8E652A35083E1A7900A7AF1B</string>
<string>8E652A36083E1A7900A7AF1B</string>
<string>8EDC88A90842F8DE007D1532</string>
<string>8EDC88B50842F936007D1532</string>
<string>8ED833CD08457E6B0033CDBD</string>
@ -356,11 +354,7 @@
<string>8E4D67D40854E7B100816BEE</string>
<string>8E8F3F59085546B300BCF803</string>
<string>8E8F3F780855483300BCF803</string>
<string>8E8F3FA408554B8000BCF803</string>
<string>8EF45A7A08557C4D00D2D5D0</string>
<string>8E287CDC0855D60A00562C66</string>
<string>8E287CDD0855D60A00562C66</string>
<string>8E287E7F0855F60E00562C66</string>
<string>8EAB7544085621B10021C2BF</string>
<string>8EAB7545085621B10021C2BF</string>
<string>8EAB7549085621B10021C2BF</string>
@ -369,15 +363,11 @@
<string>8EAB754C085621B10021C2BF</string>
<string>8EABE78408562281004DF882</string>
<string>8EABE7C308562FF3004DF882</string>
<string>8EABE7C408562FF3004DF882</string>
<string>8EABE7C508562FF3004DF882</string>
<string>8E5CC5020856316C00A299E0</string>
<string>8E98E5D308563D1B0078CAA1</string>
<string>8E65357F08563F6A00E468D9</string>
<string>8E65358008563F6A00E468D9</string>
<string>8E65359E0856401D00E468D9</string>
<string>8E5F6DB1085781B900A111D9</string>
<string>8E5F6DB2085781B900A111D9</string>
<string>8E63F6C808587FD400C79B72</string>
<string>8E63F6C908587FD400C79B72</string>
<string>8E63F6CA08587FD400C79B72</string>
@ -389,11 +379,25 @@
<string>8E8C7C85085EA5E30086DAC7</string>
<string>8E8C7D35085EAD460086DAC7</string>
<string>8E8C7D36085EAD460086DAC7</string>
<string>8E657299086085E400A0DAC4</string>
<string>8E65729A086085E400A0DAC4</string>
<string>8E94AFB2086639760038E585</string>
<string>8EE558070866A24B009E7F50</string>
<string>8E657298086085E400A0DAC4</string>
<string>8E7DAAA808673DF600615930</string>
<string>8E7DAAF70867402D00615930</string>
<string>8E7DAAF80867402D00615930</string>
<string>8E7DAAF90867402D00615930</string>
<string>8E7DAAFB0867402D00615930</string>
<string>8E7DAAFC0867402D00615930</string>
<string>8E7DAAFD0867402D00615930</string>
<string>8E7DAAFE0867402D00615930</string>
<string>8E7DAAFF0867402D00615930</string>
<string>8E7DAB430867421200615930</string>
<string>8E7DAB440867421200615930</string>
<string>8E7DAB78086742EB00615930</string>
<string>8E7DAB79086742EB00615930</string>
<string>8E7DAB7A086742EB00615930</string>
<string>8E7DAB9D0867470600615930</string>
<string>8E7DAB9E0867470600615930</string>
<string>8E7DAB9F0867470600615930</string>
<string>8E7DABA00867470600615930</string>
</array>
<key>prevStack</key>
<array>
@ -473,7 +477,53 @@
<string>8E8C7C90085EA5E30086DAC7</string>
<string>8E8C7C92085EA5E30086DAC7</string>
<string>8E8C7C98085EA5E30086DAC7</string>
<string>8EE558080866A24B009E7F50</string>
<string>8E7DAAAA08673DF600615930</string>
<string>8E7DAAAB08673DF600615930</string>
<string>8E7DAB020867402D00615930</string>
<string>8E7DAB030867402D00615930</string>
<string>8E7DAB040867402D00615930</string>
<string>8E7DAB050867402D00615930</string>
<string>8E7DAB060867402D00615930</string>
<string>8E7DAB070867402D00615930</string>
<string>8E7DAB080867402D00615930</string>
<string>8E7DAB090867402D00615930</string>
<string>8E7DAB0A0867402D00615930</string>
<string>8E7DAB0B0867402D00615930</string>
<string>8E7DAB0C0867402D00615930</string>
<string>8E7DAB0D0867402D00615930</string>
<string>8E7DAB0E0867402D00615930</string>
<string>8E7DAB0F0867402D00615930</string>
<string>8E7DAB100867402D00615930</string>
<string>8E7DAB110867402D00615930</string>
<string>8E7DAB320867412700615930</string>
<string>8E7DAB330867412700615930</string>
<string>8E7DAB340867412700615930</string>
<string>8E7DAB350867412700615930</string>
<string>8E7DAB360867412700615930</string>
<string>8E7DAB470867421200615930</string>
<string>8E7DAB480867421200615930</string>
<string>8E7DAB490867421200615930</string>
<string>8E7DAB4A0867421200615930</string>
<string>8E7DAB4B0867421200615930</string>
<string>8E7DAB540867424400615930</string>
<string>8E7DAB550867424400615930</string>
<string>8E7DAB560867424400615930</string>
<string>8E7DAB570867424400615930</string>
<string>8E7DAB580867424400615930</string>
<string>8E7DAB7C086742EB00615930</string>
<string>8E7DAB7D086742EB00615930</string>
<string>8E7DAB7E086742EB00615930</string>
<string>8E7DAB7F086742EB00615930</string>
<string>8E7DAB80086742EB00615930</string>
<string>8E7DAB81086742EB00615930</string>
<string>8E7DAB82086742EB00615930</string>
<string>8E7DAB83086742EB00615930</string>
<string>8E7DAB84086742EB00615930</string>
<string>8E7DAB85086742EB00615930</string>
<string>8E7DABA10867470600615930</string>
<string>8E7DABA20867470600615930</string>
<string>8E7DABA30867470600615930</string>
<string>8E7DABA40867470600615930</string>
</array>
</dict>
<key>SplitCount</key>
@ -487,7 +537,7 @@
<key>Frame</key>
<string>{{0, 0}, {816, 405}}</string>
<key>RubberWindowFrame</key>
<string>2 122 1024 624 0 0 1024 746 </string>
<string>1 122 1024 624 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@ -507,7 +557,7 @@
<key>Frame</key>
<string>{{0, 410}, {816, 173}}</string>
<key>RubberWindowFrame</key>
<string>2 122 1024 624 0 0 1024 746 </string>
<string>1 122 1024 624 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@ -531,9 +581,9 @@
</array>
<key>TableOfContents</key>
<array>
<string>8EE5580A0866A24B009E7F50</string>
<string>8E7DAAAD08673DF600615930</string>
<string>1CE0B1FE06471DED0097A5F4</string>
<string>8EE5580B0866A24B009E7F50</string>
<string>8E7DAAAE08673DF600615930</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@ -667,10 +717,13 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
<string>1C0AD2B3069F1EA900FABCE6</string>
<string>1C530D57069F1CE1000CFCEE</string>
<string>8EF6FAA6082DA951006F7BE6</string>
<string>/Users/xugg/Projects/Cog/Cog.xcodeproj</string>
</array>
<key>WindowString</key>
<string>2 122 1024 624 0 0 1024 746 </string>
<string>1 122 1024 624 0 0 1024 746 </string>
<key>WindowTools</key>
<array>
<dict>
@ -686,14 +739,12 @@
<key>Dock</key>
<array>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
<string>Sound.m</string>
<string>SoundController.m</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@ -710,6 +761,8 @@
<string>342pt</string>
</dict>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@ -749,7 +802,7 @@
<key>TableOfContents</key>
<array>
<string>8EF6FAA6082DA951006F7BE6</string>
<string>8E98E5B808563ADC0078CAA1</string>
<string>8E7DAAB408673E1600615930</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
@ -889,14 +942,12 @@
<key>Dock</key>
<array>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CDD528C0622207200134675</string>
<key>PBXProjectModuleLabel</key>
<string>SoundController.m</string>
<string>SoundFile.m</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@ -952,8 +1003,8 @@
<key>TableOfContents</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
<string>8E8C7C27085E9DC50086DAC7</string>
<string>8E8C7C28085E9DC50086DAC7</string>
<string>8E7DAABB08673E5400615930</string>
<string>8E7DAABC08673E5400615930</string>
<string>1CDD528C0622207200134675</string>
<string>1CD0528E0623707200166675</string>
</array>
@ -1111,9 +1162,9 @@
<key>TableOfContents</key>
<array>
<string>1C0AD2B3069F1EA900FABCE6</string>
<string>8E0914FC08661F200039FDAA</string>
<string>8E7DAB1B086740D100615930</string>
<string>1CD0528B0623707200166675</string>
<string>8E0914FD08661F200039FDAA</string>
<string>8E7DAB1C086740D100615930</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.run</string>

File diff suppressed because it is too large Load Diff

View File

@ -26,6 +26,12 @@
};
SUPERCLASS = NSObject;
},
{
CLASS = ClickField;
LANGUAGE = ObjC;
OUTLETS = {soundController = SoundController; };
SUPERCLASS = NSTextField;
},
{
CLASS = DNDArrayController;
LANGUAGE = ObjC;
@ -72,6 +78,7 @@
resume = id;
seek = id;
stop = id;
toggleShowTimeRemaining = id;
};
CLASS = SoundController;
LANGUAGE = ObjC;

View File

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>IBDocumentLocation</key>
<string>349 139 356 240 0 0 1024 746 </string>
<string>288 118 356 240 0 0 1024 746 </string>
<key>IBEditorPositions</key>
<dict>
<key>29</key>
@ -20,8 +20,8 @@
<key>IBOpenObjects</key>
<array>
<integer>463</integer>
<integer>29</integer>
<integer>21</integer>
<integer>29</integer>
</array>
<key>IBSystem Version</key>
<string>8B15</string>

Binary file not shown.

View File

@ -25,11 +25,15 @@
int playbackStatus;
BOOL showTimeRemaining;
//For communication with the sound
NSPort *sendPort;
NSPort *distantPort;
}
- (IBAction)toggleShowTimeRemaining:(id)sender;
- (IBAction)playPauseResume:(id)sender;
- (IBAction)pauseResume:(id)sender;

View File

@ -15,6 +15,8 @@
{
sound = [[Sound alloc] init];
playbackStatus = kCogStatusStopped;
showTimeRemaining = NO;
}
return self;
@ -207,6 +209,25 @@
[playButton setAlternateImage:alt];
}
- (IBAction)toggleShowTimeRemaining:(id)sender
{
NSString *text;
showTimeRemaining = !showTimeRemaining;
if (showTimeRemaining == NO)
{
int sec = (int)([positionSlider doubleValue]/1000.0);
text = [NSString stringWithFormat:@"%i:%02i", sec/60, sec%60];
}
else
{
int sec = (int)(([positionSlider maxValue] - [positionSlider doubleValue])/1000.0);
text = [NSString stringWithFormat:@"%i:%02i", sec/60, sec%60];
}
[timeField setStringValue:text];
}
- (void)handlePortMessage:(NSPortMessage *)portMessage
{
@ -287,9 +308,17 @@
[positionSlider setDoubleValue:pos];
}
int sec = (int)(pos/1000.0);
NSString *text;
text = [NSString stringWithFormat:@"%i:%02i", sec/60, sec%60];
if (showTimeRemaining == NO)
{
int sec = (int)(pos/1000.0);
text = [NSString stringWithFormat:@"%i:%02i", sec/60, sec%60];
}
else
{
int sec = (int)(([positionSlider maxValue] - pos)/1000.0);
text = [NSString stringWithFormat:@"%i:%02i", sec/60, sec%60];
}
[timeField setStringValue:text];
}
else if (message == kCogStatusUpdateMessage)