Added AAC seeking. Basic AAC support is finished.

CQTexperiment
vspader 2005-06-05 18:52:35 +00:00
parent f9d007c21d
commit 013332edb1
27 changed files with 2578 additions and 526 deletions

View File

@ -9,6 +9,17 @@
IBOutlet PlaylistController *playlistController;
IBOutlet NSPanel *infoPanel;
IBOutlet NSWindow *mainWindow;
IBOutlet NSButton *playButton;
IBOutlet NSButton *stopButton;
IBOutlet NSButton *prevButton;
IBOutlet NSButton *nextButton;
IBOutlet NSButton *addButton;
IBOutlet NSButton *remButton;
IBOutlet NSButton *infoButton;
IBOutlet NSButton *shuffleButton;
IBOutlet NSButton *repeatButton;
}
- (IBAction)addFiles:(id)sender;
- (IBAction)delEntries:(id)sender;

View File

@ -55,6 +55,17 @@
- (void)awakeFromNib
{
// DBLog(@"AWAKe");
[playButton setToolTip:@"Play"];
[stopButton setToolTip:@"Stop"];
[prevButton setToolTip:@"Previous"];
[nextButton setToolTip:@"Next"];
[addButton setToolTip:@"Add files"];
[remButton setToolTip:@"Remove selected files"];
[infoButton setToolTip:@"Information on the selected file."];
[shuffleButton setToolTip:@"Shuffle mode"];
[repeatButton setToolTip:@"Repeat mode"];
NSString *filename = @"~/Library/Application Support/Cog/Default.playlist";
[playlistController loadPlaylist:[filename stringByExpandingTildeInPath]];
}

View File

@ -559,12 +559,6 @@
refType = 4;
sourceTree = "<group>";
};
8E14E47B084CF1A200246BCC = {
fileRef = 8E14E479084CF1A200246BCC;
isa = PBXBuildFile;
settings = {
};
};
8E14E47C084CF1A200246BCC = {
fileRef = 8E14E47A084CF1A200246BCC;
isa = PBXBuildFile;
@ -1657,7 +1651,6 @@
8EFFB6D4083302A500C53833,
8EFFB6D5083302A500C53833,
8EFFB6D6083302A500C53833,
8E14E47B084CF1A200246BCC,
);
isa = PBXCopyFilesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;

View File

@ -255,18 +255,16 @@
<array>
<string>29B97314FDCFA39411CA2CEA</string>
<string>080E96DDFE201D6D7F000001</string>
<string>8E267D080837F7A6004ACBC5</string>
<string>8E47215C08318D12001F89FA</string>
<string>8EF6FA64082DA525006F7BE6</string>
<string>29B97323FDCFA39411CA2CEA</string>
<string>1C37FBAC04509CD000000102</string>
<string>8EFC6D17085376D100C67D06</string>
<string>1C37FABC05509CD000000102</string>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
<integer>7</integer>
<integer>3</integer>
<integer>5</integer>
<integer>1</integer>
<integer>0</integer>
</array>
@ -291,7 +289,7 @@
<real>186</real>
</array>
<key>RubberWindowFrame</key>
<string>1 122 1024 624 0 0 1024 746 </string>
<string>2 122 1024 624 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@ -309,7 +307,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CE0B20306471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>UpdateController.m</string>
<string>AACFile.m</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@ -317,18 +315,17 @@
<key>PBXProjectModuleGUID</key>
<string>1CE0B20406471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>UpdateController.m</string>
<string>AACFile.m</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>8E9E2E85084FA7E400599965</string>
<string>8EFC6E1B085380B800C67D06</string>
<key>history</key>
<array>
<string>8EF6FACD082DAA2B006F7BE6</string>
<string>8EF6FAD1082DAA2B006F7BE6</string>
<string>8E9BF100082FEF6B00B26943</string>
<string>8E267DDB0837FE5F004ACBC5</string>
<string>8E267E0008380176004ACBC5</string>
<string>8E1A1826083806B700AEA302</string>
<string>8E6082C7083920310017AECF</string>
<string>8E25B5E5083CDD4A0064353E</string>
@ -340,49 +337,49 @@
<string>8EC8FBD20842932A00DF2C98</string>
<string>8EDC88A90842F8DE007D1532</string>
<string>8EDC88B50842F936007D1532</string>
<string>8E1BDA7908430E7700A08868</string>
<string>8ED833CD08457E6B0033CDBD</string>
<string>8E6F2A2708480D900011F126</string>
<string>8E6F2A2808480D900011F126</string>
<string>8E10DC00084BBE490013815C</string>
<string>8E10DC01084BBE490013815C</string>
<string>8E10DC02084BBE490013815C</string>
<string>8E94D973084BE3D1007F0AEB</string>
<string>8E94D9D2084BEA32007F0AEB</string>
<string>8E94D9D3084BEA32007F0AEB</string>
<string>8E94DA67084BF01F007F0AEB</string>
<string>8E94DA68084BF01F007F0AEB</string>
<string>8E5A8EA4084CB19900AE6D62</string>
<string>8E5A9054084CB7FE00AE6D62</string>
<string>8E5A90B7084CC25900AE6D62</string>
<string>8E5A90B8084CC25900AE6D62</string>
<string>8EA0A215084CC43F008DFEC9</string>
<string>8EA0A216084CC43F008DFEC9</string>
<string>8EA0A217084CC43F008DFEC9</string>
<string>8EA0A218084CC43F008DFEC9</string>
<string>8EA0A21A084CC43F008DFEC9</string>
<string>8E14E4A5084D089100246BCC</string>
<string>8E14E4A6084D089100246BCC</string>
<string>8E14E4A7084D089100246BCC</string>
<string>8E14E4AD084D089100246BCC</string>
<string>8E14E4B0084D089100246BCC</string>
<string>8E74C915084D451C00DF47F3</string>
<string>8E74C916084D451C00DF47F3</string>
<string>8E74C919084D451C00DF47F3</string>
<string>8E74C91A084D451C00DF47F3</string>
<string>8E74C91B084D451C00DF47F3</string>
<string>8EC18D9D084E3D8200AE0BA9</string>
<string>8EC18D9E084E3D8200AE0BA9</string>
<string>8EC18D9F084E3D8200AE0BA9</string>
<string>8EC18DDB084E403100AE0BA9</string>
<string>8EC18EA5084E55A800AE0BA9</string>
<string>8EC18EB8084E57D500AE0BA9</string>
<string>8EC7DA89084E672F00A079A7</string>
<string>8EC7DA8A084E672F00A079A7</string>
<string>8E9E2E7F084FA7E400599965</string>
<string>8E9E2E80084FA7E400599965</string>
<string>8E9E2E81084FA7E400599965</string>
<string>8ED3C9B1084915CE00BB7797</string>
<string>8EC156F4084FEB8900BB24E8</string>
<string>8EC156F5084FEB8900BB24E8</string>
<string>8E2752B70850A92E001618CD</string>
<string>8E2BC83D0850F56200BEAC36</string>
<string>8EE2A5B808511A1800367489</string>
<string>8EE2A5B908511A1800367489</string>
<string>8E72BC630851408F00E34F1D</string>
<string>8E72BC640851408F00E34F1D</string>
<string>8E72BC650851408F00E34F1D</string>
<string>8EFC6CC00853721700C67D06</string>
<string>8EFC6D18085376D100C67D06</string>
<string>8EFC6D1A085376D100C67D06</string>
<string>8EFC6DE7085380B800C67D06</string>
<string>8EFC6DE8085380B800C67D06</string>
<string>8EFC6DE9085380B800C67D06</string>
<string>8EFC6DEA085380B800C67D06</string>
<string>8EFC6DEB085380B800C67D06</string>
<string>8EFC6DEC085380B800C67D06</string>
<string>8EFC6DED085380B800C67D06</string>
<string>8EFC6DEE085380B800C67D06</string>
<string>8EFC6DEF085380B800C67D06</string>
<string>8EFC6DF0085380B800C67D06</string>
<string>8EFC6DF1085380B800C67D06</string>
<string>8EFC6DF2085380B800C67D06</string>
<string>8EFC6DF3085380B800C67D06</string>
<string>8EFC6DF4085380B800C67D06</string>
<string>8EFC6DF5085380B800C67D06</string>
</array>
<key>prevStack</key>
<array>
@ -442,12 +439,80 @@
<string>8E14E4B3084D089100246BCC</string>
<string>8E14E4B4084D089100246BCC</string>
<string>8E14E4B5084D089100246BCC</string>
<string>8E14E4CB084D089100246BCC</string>
<string>8EC18EAA084E55A800AE0BA9</string>
<string>8EC18EBD084E57D500AE0BA9</string>
<string>8E9E2E82084FA7E400599965</string>
<string>8E9E2E83084FA7E400599965</string>
<string>8E9E2E84084FA7E400599965</string>
<string>8EC156F9084FEB8900BB24E8</string>
<string>8EFC6CC30853721700C67D06</string>
<string>8EFC6CC40853721700C67D06</string>
<string>8EFC6CC50853721700C67D06</string>
<string>8EFC6CD5085372A800C67D06</string>
<string>8EFC6CD6085372A800C67D06</string>
<string>8EFC6D21085376D100C67D06</string>
<string>8EFC6D22085376D100C67D06</string>
<string>8EFC6D23085376D100C67D06</string>
<string>8EFC6D24085376D100C67D06</string>
<string>8EFC6D25085376D100C67D06</string>
<string>8EFC6D26085376D100C67D06</string>
<string>8EFC6D27085376D100C67D06</string>
<string>8EFC6D28085376D100C67D06</string>
<string>8EFC6D29085376D100C67D06</string>
<string>8EFC6D2A085376D100C67D06</string>
<string>8EFC6D2B085376D100C67D06</string>
<string>8EFC6D2C085376D100C67D06</string>
<string>8EFC6D2D085376D100C67D06</string>
<string>8EFC6D2E085376D100C67D06</string>
<string>8EFC6D2F085376D100C67D06</string>
<string>8EFC6D30085376D100C67D06</string>
<string>8EFC6D31085376D100C67D06</string>
<string>8EFC6D32085376D100C67D06</string>
<string>8EFC6D33085376D100C67D06</string>
<string>8EFC6D34085376D100C67D06</string>
<string>8EFC6D35085376D100C67D06</string>
<string>8EFC6D36085376D100C67D06</string>
<string>8EFC6D37085376D100C67D06</string>
<string>8EFC6D38085376D100C67D06</string>
<string>8EFC6D39085376D100C67D06</string>
<string>8EFC6D3A085376D100C67D06</string>
<string>8EFC6D3B085376D100C67D06</string>
<string>8EFC6D3C085376D100C67D06</string>
<string>8EFC6D3D085376D100C67D06</string>
<string>8EFC6D3E085376D100C67D06</string>
<string>8EFC6DF6085380B800C67D06</string>
<string>8EFC6DF7085380B800C67D06</string>
<string>8EFC6DF8085380B800C67D06</string>
<string>8EFC6DF9085380B800C67D06</string>
<string>8EFC6DFA085380B800C67D06</string>
<string>8EFC6DFB085380B800C67D06</string>
<string>8EFC6DFC085380B800C67D06</string>
<string>8EFC6DFD085380B800C67D06</string>
<string>8EFC6DFE085380B800C67D06</string>
<string>8EFC6DFF085380B800C67D06</string>
<string>8EFC6E00085380B800C67D06</string>
<string>8EFC6E01085380B800C67D06</string>
<string>8EFC6E02085380B800C67D06</string>
<string>8EFC6E03085380B800C67D06</string>
<string>8EFC6E04085380B800C67D06</string>
<string>8EFC6E05085380B800C67D06</string>
<string>8EFC6E06085380B800C67D06</string>
<string>8EFC6E07085380B800C67D06</string>
<string>8EFC6E08085380B800C67D06</string>
<string>8EFC6E09085380B800C67D06</string>
<string>8EFC6E0A085380B800C67D06</string>
<string>8EFC6E0B085380B800C67D06</string>
<string>8EFC6E0C085380B800C67D06</string>
<string>8EFC6E0D085380B800C67D06</string>
<string>8EFC6E0E085380B800C67D06</string>
<string>8EFC6E0F085380B800C67D06</string>
<string>8EFC6E10085380B800C67D06</string>
<string>8EFC6E11085380B800C67D06</string>
<string>8EFC6E12085380B800C67D06</string>
<string>8EFC6E13085380B800C67D06</string>
<string>8EFC6E14085380B800C67D06</string>
<string>8EFC6E15085380B800C67D06</string>
<string>8EFC6E16085380B800C67D06</string>
<string>8EFC6E17085380B800C67D06</string>
<string>8EFC6E18085380B800C67D06</string>
<string>8EFC6E19085380B800C67D06</string>
<string>8EFC6E1A085380B800C67D06</string>
</array>
</dict>
<key>SplitCount</key>
@ -461,7 +526,7 @@
<key>Frame</key>
<string>{{0, 0}, {816, 404}}</string>
<key>RubberWindowFrame</key>
<string>1 122 1024 624 0 0 1024 746 </string>
<string>2 122 1024 624 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@ -481,7 +546,7 @@
<key>Frame</key>
<string>{{0, 409}, {816, 174}}</string>
<key>RubberWindowFrame</key>
<string>1 122 1024 624 0 0 1024 746 </string>
<string>2 122 1024 624 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@ -505,9 +570,9 @@
</array>
<key>TableOfContents</key>
<array>
<string>8E9E2E86084FA7E400599965</string>
<string>8EFC6CC70853721700C67D06</string>
<string>1CE0B1FE06471DED0097A5F4</string>
<string>8E9E2E87084FA7E400599965</string>
<string>8EFC6CC80853721700C67D06</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@ -642,10 +707,11 @@
<key>WindowOrderList</key>
<array>
<string>1C0AD2B3069F1EA900FABCE6</string>
<string>8EF6FAA6082DA951006F7BE6</string>
<string>/Users/xugg/Projects/Cog/Cog.xcode</string>
</array>
<key>WindowString</key>
<string>1 122 1024 624 0 0 1024 746 </string>
<string>2 122 1024 624 0 0 1024 746 </string>
<key>WindowTools</key>
<array>
<dict>
@ -661,14 +727,12 @@
<key>Dock</key>
<array>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
<string>MusepackFile.m</string>
<string>AACFile.m</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@ -685,6 +749,8 @@
<string>342pt</string>
</dict>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBuildLogShowsTranscriptDefaultKey</key>
@ -726,7 +792,7 @@
<key>TableOfContents</key>
<array>
<string>8EF6FAA6082DA951006F7BE6</string>
<string>8E2BC808084F8A05004518D1</string>
<string>8EFC6CE5085372F200C67D06</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
@ -1038,8 +1104,8 @@
<string>yes</string>
<key>sizes</key>
<array>
<string>{{0, 0}, {493, 168}}</string>
<string>{{0, 173}, {493, 270}}</string>
<string>{{0, 0}, {367, 168}}</string>
<string>{{0, 173}, {367, 270}}</string>
</array>
</dict>
<key>VerticalSplitView</key>
@ -1065,7 +1131,7 @@
<key>Frame</key>
<string>{{0, 0}, {1024, 583}}</string>
<key>RubberWindowFrame</key>
<string>0 123 1024 623 0 0 1024 746 </string>
<string>4 123 1024 623 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>PBXRunSessionModule</string>
@ -1088,14 +1154,14 @@
<key>TableOfContents</key>
<array>
<string>1C0AD2B3069F1EA900FABCE6</string>
<string>8E9E2E7D084FA1E200599965</string>
<string>8EFC6CFB0853745400C67D06</string>
<string>1CD0528B0623707200166675</string>
<string>8E9E2E7E084FA1E200599965</string>
<string>8EFC6CFC0853745400C67D06</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.run</string>
<key>WindowString</key>
<string>0 123 1024 623 0 0 1024 746 </string>
<string>4 123 1024 623 0 0 1024 746 </string>
<key>WindowToolGUID</key>
<string>1C0AD2B3069F1EA900FABCE6</string>
<key>WindowToolIsVisible</key>

File diff suppressed because it is too large Load Diff

View File

@ -12,9 +12,18 @@
CLASS = AppController;
LANGUAGE = ObjC;
OUTLETS = {
addButton = NSButton;
infoButton = NSButton;
infoPanel = NSPanel;
mainWindow = NSWindow;
nextButton = NSButton;
playButton = NSButton;
playlistController = PlaylistController;
prevButton = NSButton;
remButton = NSButton;
repeatButton = NSButton;
shuffleButton = NSButton;
stopButton = NSButton;
};
SUPERCLASS = NSObject;
},

View File

@ -13,8 +13,8 @@
<string>437.0</string>
<key>IBOpenObjects</key>
<array>
<integer>21</integer>
<integer>29</integer>
<integer>21</integer>
</array>
<key>IBSystem Version</key>
<string>8B15</string>

Binary file not shown.

View File

@ -23,7 +23,11 @@
- (void)alertDidEnd:(NSAlert *)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo
{
[feedbackWindow close];
NSLog(@"CONTEXT: %i", contextInfo);
if (contextInfo == YES)
{
[feedbackWindow close];
}
}
- (void)FeedbackErrorOccurred:(NSNotification *)aNotification
@ -36,7 +40,7 @@
[alert setMessageText:@"Failed"];
[alert setInformativeText:@"Feedback failed to send."];
[alert beginSheetModalForWindow:feedbackWindow modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:NULL];
[alert beginSheetModalForWindow:feedbackWindow modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:NO];
}
- (void)FeedbackSent:(NSNotification *)aNotification
@ -49,7 +53,7 @@
[alert setMessageText:@"Success"];
[alert setInformativeText:@"Feedback successfully sent!"];
[alert beginSheetModalForWindow:feedbackWindow modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:NULL];
[alert beginSheetModalForWindow:feedbackWindow modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:YES];
}

View File

@ -42,7 +42,7 @@ NSString *encodeForURL(NSString *s)
NSURLResponse* response;
NSData* resultData = [NSURLConnection sendSynchronousRequest:post returningResponse:&response error:&error];
NSString *resultString = [[[NSString alloc] initWithData:resultData encoding:NSASCIIStringEncoding] autorelease];
NSLog(@"RESULT: %@", resultString);
if ([resultString caseInsensitiveCompare:@"SUCCESS"] == NSOrderedSame)
{
[self performSelectorOnMainThread:@selector(returnSuccess:) withObject:nil waitUntilDone:NO];

View File

@ -42,6 +42,7 @@
};
0867D691FE84028FC02AAC07 = {
children = (
8E64758F08536C4B007B91CB,
8E3852DB084CEC6A00D715B8,
08FB77ACFE841707C02AAC07,
089C1665FE841158C02AAC07,
@ -243,7 +244,7 @@
GCC_OPTIMIZATION_LEVEL = 3;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
HEADER_SEARCH_PATHS = Files/libfaad/;
HEADER_SEARCH_PATHS = "Files/libfaad/ Files/common/faad";
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "@executable_path/../Frameworks";
LIBRARY_STYLE = DYNAMIC;
@ -327,6 +328,7 @@
8E3852DF084CEC7B00D715B8,
8E3852E0084CEC7B00D715B8,
8E3852ED084CED5500D715B8,
8EFC6C1E08536C9D00C67D06,
);
isa = PBXHeadersBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@ -386,6 +388,7 @@
8E3852D3084CEC6200D715B8,
8E3852D6084CEC6200D715B8,
8E3852D8084CEC6200D715B8,
8EFC6C1D08536C9D00C67D06,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@ -1986,6 +1989,238 @@
settings = {
};
};
8E64758F08536C4B007B91CB = {
children = (
8EFC6BFF08536C9D00C67D06,
8EFC6C0808536C9D00C67D06,
);
isa = PBXGroup;
name = Common;
refType = 4;
sourceTree = "<group>";
};
8EFC6BFF08536C9D00C67D06 = {
children = (
8EFC6C0008536C9D00C67D06,
8EFC6C0108536C9D00C67D06,
8EFC6C0208536C9D00C67D06,
8EFC6C0308536C9D00C67D06,
8EFC6C0408536C9D00C67D06,
8EFC6C0508536C9D00C67D06,
8EFC6C0608536C9D00C67D06,
8EFC6C0708536C9D00C67D06,
);
isa = PBXGroup;
name = faad;
path = Files/common/faad;
refType = 4;
sourceTree = "<group>";
};
8EFC6C0008536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
path = aacinfo.c;
refType = 4;
sourceTree = "<group>";
};
8EFC6C0108536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
path = aacinfo.h;
refType = 4;
sourceTree = "<group>";
};
8EFC6C0208536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
path = filestream.c;
refType = 4;
sourceTree = "<group>";
};
8EFC6C0308536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
path = filestream.h;
refType = 4;
sourceTree = "<group>";
};
8EFC6C0408536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
path = getopt.c;
refType = 4;
sourceTree = "<group>";
};
8EFC6C0508536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
path = getopt.h;
refType = 4;
sourceTree = "<group>";
};
8EFC6C0608536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
path = id3v2tag.c;
refType = 4;
sourceTree = "<group>";
};
8EFC6C0708536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
path = id3v2tag.h;
refType = 4;
sourceTree = "<group>";
};
8EFC6C0808536C9D00C67D06 = {
children = (
8EFC6C0908536C9D00C67D06,
8EFC6C1108536C9D00C67D06,
8EFC6C1208536C9D00C67D06,
8EFC6C1308536C9D00C67D06,
8EFC6C1408536C9D00C67D06,
8EFC6C1508536C9D00C67D06,
8EFC6C1608536C9D00C67D06,
8EFC6C1708536C9D00C67D06,
8EFC6C1808536C9D00C67D06,
8EFC6C1908536C9D00C67D06,
8EFC6C1A08536C9D00C67D06,
8EFC6C1B08536C9D00C67D06,
8EFC6C1C08536C9D00C67D06,
);
isa = PBXGroup;
name = mp4ff;
path = Files/common/mp4ff;
refType = 4;
sourceTree = "<group>";
};
8EFC6C0908536C9D00C67D06 = {
children = (
);
isa = PBXGroup;
path = .deps;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1108536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
path = drms.c;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1208536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
path = drms.h;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1308536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
path = drmstables.h;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1408536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
path = mp4atom.c;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1508536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
path = mp4ff.c;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1608536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
path = mp4ff.h;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1708536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
path = mp4ff_int_types.h;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1808536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
path = mp4ffint.h;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1908536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
path = mp4meta.c;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1A08536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
path = mp4sample.c;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1B08536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
path = mp4tagupdate.c;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1C08536C9D00C67D06 = {
fileEncoding = 30;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
path = mp4util.c;
refType = 4;
sourceTree = "<group>";
};
8EFC6C1D08536C9D00C67D06 = {
fileRef = 8EFC6C0008536C9D00C67D06;
isa = PBXBuildFile;
settings = {
};
};
8EFC6C1E08536C9D00C67D06 = {
fileRef = 8EFC6C0108536C9D00C67D06;
isa = PBXBuildFile;
settings = {
ATTRIBUTES = (
Public,
);
};
};
};
rootObject = 0867D690FE84028FC02AAC07;
}

View File

@ -166,7 +166,7 @@
<key>FavBarConfig</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>8E3852EB084CECAD00D715B8</string>
<string>8EFC6C4708536D2500C67D06</string>
<key>XCBarModuleItemNames</key>
<dict/>
<key>XCBarModuleItems</key>
@ -254,19 +254,22 @@
<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
<array>
<string>0867D691FE84028FC02AAC07</string>
<string>034768DDFF38A45A11DB9C8B</string>
<string>8D07F2C80486CC7A007CD1D0</string>
<string>8E64758F08536C4B007B91CB</string>
<string>8EFC6BFF08536C9D00C67D06</string>
<string>1C37FBAC04509CD000000102</string>
<string>1C37FABC05509CD000000102</string>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
<integer>3</integer>
<integer>2</integer>
<integer>1</integer>
<integer>0</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
<string>{{0, 0}, {186, 338}}</string>
<string>{{0, 0}, {186, 567}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
@ -278,14 +281,14 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {203, 356}}</string>
<string>{{0, 0}, {203, 585}}</string>
<key>GroupTreeTableConfiguration</key>
<array>
<string>MainColumn</string>
<real>186</real>
</array>
<key>RubberWindowFrame</key>
<string>167 339 690 397 0 0 1024 746 </string>
<string>-1 120 1024 626 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@ -296,12 +299,14 @@
<key>Dock</key>
<array>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CE0B20306471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>MyNewFile14.java</string>
<string>aacinfo.c</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@ -309,7 +314,25 @@
<key>PBXProjectModuleGUID</key>
<string>1CE0B20406471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>MyNewFile14.java</string>
<string>aacinfo.c</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>8EFC6D8908537AB900C67D06</string>
<key>history</key>
<array>
<string>8EFC6C7308536F3A00C67D06</string>
<string>8EFC6D6F08537A5300C67D06</string>
<string>8EFC6D7008537A5300C67D06</string>
<string>8EFC6D7908537A5300C67D06</string>
</array>
<key>prevStack</key>
<array>
<string>8EFC6C4208536D2500C67D06</string>
<string>8EFC6C4308536D2500C67D06</string>
<string>8EFC6C7708536F3A00C67D06</string>
<string>8EFC6D7308537A5300C67D06</string>
</array>
</dict>
<key>SplitCount</key>
<string>1</string>
@ -320,18 +343,16 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {482, 0}}</string>
<string>{{0, 0}, {816, 406}}</string>
<key>RubberWindowFrame</key>
<string>167 339 690 397 0 0 1024 746 </string>
<string>-1 120 1024 626 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
<string>0pt</string>
<string>406pt</string>
</dict>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@ -342,18 +363,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 5}, {482, 351}}</string>
<string>{{0, 411}, {816, 174}}</string>
<key>RubberWindowFrame</key>
<string>167 339 690 397 0 0 1024 746 </string>
<string>-1 120 1024 626 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
<key>Proportion</key>
<string>351pt</string>
<string>174pt</string>
</dict>
</array>
<key>Proportion</key>
<string>482pt</string>
<string>816pt</string>
</dict>
</array>
<key>Name</key>
@ -368,9 +389,9 @@
</array>
<key>TableOfContents</key>
<array>
<string>8ED1CC1B084F86C700771E1E</string>
<string>8EFC6D8A08537AB900C67D06</string>
<string>1CE0B1FE06471DED0097A5F4</string>
<string>8ED1CC1C084F86C700771E1E</string>
<string>8EFC6D8B08537AB900C67D06</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@ -507,7 +528,7 @@
<string>/Users/xugg/Projects/Cog/Libraries/FAAD2/FAAD2.xcode</string>
</array>
<key>WindowString</key>
<string>167 339 690 397 0 0 1024 746 </string>
<string>-1 120 1024 626 0 0 1024 746 </string>
<key>WindowTools</key>
<array>
<dict>
@ -523,30 +544,30 @@
<key>Dock</key>
<array>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
<string>huffman.c</string>
<string>mp4ff.c</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {1024, 343}}</string>
<string>{{0, 0}, {500, 218}}</string>
<key>RubberWindowFrame</key>
<string>0 121 1024 625 0 0 1024 746 </string>
<string>31 223 500 500 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
<string>343pt</string>
<string>218pt</string>
</dict>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@ -561,9 +582,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 348}, {1024, 236}}</string>
<string>{{0, 223}, {500, 236}}</string>
<key>RubberWindowFrame</key>
<string>0 121 1024 625 0 0 1024 746 </string>
<string>31 223 500 500 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@ -572,7 +593,7 @@
</dict>
</array>
<key>Proportion</key>
<string>584pt</string>
<string>459pt</string>
</dict>
</array>
<key>Name</key>
@ -585,17 +606,17 @@
<true/>
<key>TableOfContents</key>
<array>
<string>8E3852E7084CECAC00D715B8</string>
<string>8E45D7BA084E82EF00867D39</string>
<string>8EFC6C5508536DA800C67D06</string>
<string>8EFC6C5608536DA800C67D06</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.build</string>
<key>WindowString</key>
<string>0 121 1024 625 0 0 1024 746 </string>
<string>31 223 500 500 0 0 1024 746 </string>
<key>WindowToolGUID</key>
<string>8E3852E7084CECAC00D715B8</string>
<string>8EFC6C5508536DA800C67D06</string>
<key>WindowToolIsVisible</key>
<false/>
</dict>
@ -702,12 +723,8 @@
<integer>0</integer>
</dict>
<dict>
<key>FirstTimeWindowDisplayed</key>
<false/>
<key>Identifier</key>
<string>windowTool.find</string>
<key>IsVertical</key>
<true/>
<key>Layout</key>
<array>
<dict>
@ -722,16 +739,26 @@
<key>PBXProjectModuleGUID</key>
<string>1CDD528C0622207200134675</string>
<key>PBXProjectModuleLabel</key>
<string></string>
<string>&lt;No Editor&gt;</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CD0528D0623707200166675</string>
</dict>
<key>SplitCount</key>
<string>1</string>
</dict>
<key>StatusBarVisibility</key>
<true/>
<integer>1</integer>
</dict>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {781, 212}}</string>
<string>{{0, 0}, {781, 167}}</string>
<key>RubberWindowFrame</key>
<string>188 243 781 470 0 0 1024 746 </string>
<string>62 385 781 470 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@ -740,9 +767,11 @@
</dict>
</array>
<key>Proportion</key>
<string>212pt</string>
<string>50%</string>
</dict>
<dict>
<key>BecomeActive</key>
<integer>1</integer>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@ -753,18 +782,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 217}, {781, 212}}</string>
<string>{{8, 0}, {773, 254}}</string>
<key>RubberWindowFrame</key>
<string>188 243 781 470 0 0 1024 746 </string>
<string>62 385 781 470 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXProjectFindModule</string>
<key>Proportion</key>
<string>212pt</string>
<string>50%</string>
</dict>
</array>
<key>Proportion</key>
<string>429pt</string>
<string>428pt</string>
</dict>
</array>
<key>Name</key>
@ -774,21 +803,23 @@
<string>PBXProjectFindModule</string>
</array>
<key>StatusbarIsVisible</key>
<true/>
<integer>1</integer>
<key>TableOfContents</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
<string>8E146003084CEE5800DB7064</string>
<string>8E146004084CEE5800DB7064</string>
<string>1C530D58069F1CE1000CFCEE</string>
<string>1C530D59069F1CE1000CFCEE</string>
<string>1CDD528C0622207200134675</string>
<string>1C530D5A069F1CE1000CFCEE</string>
<string>1CE0B1FE06471DED0097A5F4</string>
<string>1CD0528E0623707200166675</string>
</array>
<key>WindowString</key>
<string>188 243 781 470 0 0 1024 746 </string>
<string>62 385 781 470 0 0 1440 878 </string>
<key>WindowToolGUID</key>
<string>1C530D57069F1CE1000CFCEE</string>
<key>WindowToolIsVisible</key>
<false/>
<integer>0</integer>
</dict>
<dict>
<key>Identifier</key>
@ -847,8 +878,12 @@
<string>650 41 440 400 0 0 1280 1002 </string>
</dict>
<dict>
<key>FirstTimeWindowDisplayed</key>
<false/>
<key>Identifier</key>
<string>windowTool.run</string>
<key>IsVertical</key>
<true/>
<key>Layout</key>
<array>
<dict>
@ -877,8 +912,8 @@
<string>yes</string>
<key>sizes</key>
<array>
<string>{{0, 0}, {493, 167}}</string>
<string>{{0, 176}, {493, 267}}</string>
<string>{{0, 0}, {493, 168}}</string>
<string>{{0, 173}, {493, 270}}</string>
</array>
</dict>
<key>VerticalSplitView</key>
@ -893,8 +928,8 @@
<string>yes</string>
<key>sizes</key>
<array>
<string>{{0, 0}, {405, 443}}</string>
<string>{{414, 0}, {514, 443}}</string>
<string>{{0, 0}, {406, 443}}</string>
<string>{{411, 0}, {517, 443}}</string>
</array>
</dict>
</dict>
@ -902,9 +937,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {460, 159}}</string>
<string>{{0, 0}, {459, 159}}</string>
<key>RubberWindowFrame</key>
<string>316 696 459 200 0 0 1280 1002 </string>
<string>41 523 459 200 0 0 1024 746 </string>
</dict>
<key>Module</key>
<string>PBXRunSessionModule</string>
@ -923,22 +958,22 @@
<string>PBXRunSessionModule</string>
</array>
<key>StatusbarIsVisible</key>
<integer>1</integer>
<true/>
<key>TableOfContents</key>
<array>
<string>1C0AD2B3069F1EA900FABCE6</string>
<string>1C0AD2B4069F1EA900FABCE6</string>
<string>8EFC6C7108536F2C00C67D06</string>
<string>1CD0528B0623707200166675</string>
<string>1C0AD2B5069F1EA900FABCE6</string>
<string>8EFC6C7208536F2C00C67D06</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.run</string>
<key>WindowString</key>
<string>316 696 459 200 0 0 1280 1002 </string>
<string>41 523 459 200 0 0 1024 746 </string>
<key>WindowToolGUID</key>
<string>1C0AD2B3069F1EA900FABCE6</string>
<key>WindowToolIsVisible</key>
<integer>0</integer>
<false/>
</dict>
<dict>
<key>Identifier</key>

View File

@ -1,19 +1,21 @@
// !$*UTF8*$!
{
0867D690FE84028FC02AAC07 = {
activeBuildStyle = 4F0BB7ED011F40E904CA0E50;
activeBuildStyle = 4F0BB7EC011F40E904CA0E50;
activeTarget = 8D07F2BC0486CC7A007CD1D0;
addToTargets = (
8D07F2BC0486CC7A007CD1D0,
);
codeSenseManager = 8E3851F6084CEC2000D715B8;
breakpoints = (
);
codeSenseManager = 8EFC6C3908536C9D00C67D06;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
243,
577,
20,
48,
43,
@ -52,17 +54,57 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 139429230;
PBXWorkspaceStateSaveDate = 139429230;
PBXPerProjectTemplateStateSaveDate = 139688536;
PBXWorkspaceStateSaveDate = 139688536;
};
sourceControlManager = 8E3851F5084CEC2000D715B8;
perUserProjectItems = {
8EFC6C4208536D2500C67D06 = 8EFC6C4208536D2500C67D06;
8EFC6C4308536D2500C67D06 = 8EFC6C4308536D2500C67D06;
8EFC6C7308536F3A00C67D06 = 8EFC6C7308536F3A00C67D06;
8EFC6C7708536F3A00C67D06 = 8EFC6C7708536F3A00C67D06;
8EFC6D6F08537A5300C67D06 = 8EFC6D6F08537A5300C67D06;
8EFC6D7008537A5300C67D06 = 8EFC6D7008537A5300C67D06;
8EFC6D7308537A5300C67D06 = 8EFC6D7308537A5300C67D06;
8EFC6D7908537A5300C67D06 = 8EFC6D7908537A5300C67D06;
8EFC6D8908537AB900C67D06 = 8EFC6D8908537AB900C67D06;
};
sourceControlManager = 8EFC6C3808536C9D00C67D06;
userBuildSettings = {
};
};
8D07F2BC0486CC7A007CD1D0 = {
activeExec = 0;
};
8E3851F5084CEC2000D715B8 = {
8EFC6C0008536C9D00C67D06 = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {775, 5124}}";
sepNavSelRange = "{4791, 0}";
sepNavVisRect = "{{0, 1880}, {775, 374}}";
};
};
8EFC6C0108536C9D00C67D06 = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {775, 770}}";
sepNavSelRange = "{1285, 0}";
sepNavVisRect = "{{0, 382}, {775, 374}}";
sepNavWindowFrame = "{{15, 72}, {1017, 669}}";
};
};
8EFC6C0308536C9D00C67D06 = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {775, 798}}";
sepNavSelRange = "{1983, 0}";
sepNavVisRect = "{{0, 250}, {775, 548}}";
};
};
8EFC6C1508536C9D00C67D06 = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {710, 6650}}";
sepNavSelRange = "{3042, 0}";
sepNavVisRect = "{{0, 1356}, {459, 186}}";
};
};
8EFC6C3808536C9D00C67D06 = {
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
isa = PBXSourceControlManager;
@ -70,29 +112,98 @@
};
scmType = "";
};
8E3851F6084CEC2000D715B8 = {
8EFC6C3908536C9D00C67D06 = {
indexTemplatePath = "";
isa = PBXCodeSenseManager;
};
8E3851FC084CEC6100D715B8 = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {983, 2996}}";
sepNavSelRange = "{1209, 0}";
sepNavVisRect = "{{0, 272}, {983, 311}}";
};
8EFC6C4208536D2500C67D06 = {
fRef = 8EFC6C0008536C9D00C67D06;
isa = PBXTextBookmark;
name = "aacinfo.c: read_ADTS_header";
rLen = 0;
rLoc = 2624;
rType = 0;
vrLen = 254;
vrLoc = 9592;
};
8E385210084CEC6100D715B8 = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {983, 5964}}";
sepNavSelRange = "{1253, 13}";
sepNavVisRect = "{{0, 291}, {983, 311}}";
};
8EFC6C4308536D2500C67D06 = {
fRef = 8EFC6C0108536C9D00C67D06;
isa = PBXTextBookmark;
name = "aacinfo.h: 20";
rLen = 0;
rLoc = 961;
rType = 0;
vrLen = 1250;
vrLoc = 658;
};
8E38521D084CEC6100D715B8 = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {983, 7798}}";
sepNavSelRange = "{8543, 47}";
sepNavVisRect = "{{0, 4192}, {983, 311}}";
};
8EFC6C7308536F3A00C67D06 = {
fRef = 8EFC6C0308536C9D00C67D06;
isa = PBXTextBookmark;
name = "filestream.h: 57";
rLen = 0;
rLoc = 1983;
rType = 0;
vrLen = 1114;
vrLoc = 869;
};
8EFC6C7708536F3A00C67D06 = {
fRef = 8EFC6C0308536C9D00C67D06;
isa = PBXTextBookmark;
name = "filestream.h: 57";
rLen = 0;
rLoc = 1983;
rType = 0;
vrLen = 1114;
vrLoc = 869;
};
8EFC6D6F08537A5300C67D06 = {
fRef = 8EFC6C1508536C9D00C67D06;
isa = PBXTextBookmark;
name = "{";
rLen = 2;
rLoc = 3056;
rType = 0;
vrLen = 465;
vrLoc = 2873;
};
8EFC6D7008537A5300C67D06 = {
fRef = 8EFC6C0108536C9D00C67D06;
isa = PBXTextBookmark;
name = "aacinfo.h: 35";
rLen = 0;
rLoc = 1285;
rType = 0;
vrLen = 746;
vrLoc = 1165;
};
8EFC6D7308537A5300C67D06 = {
fRef = 8EFC6C1508536C9D00C67D06;
isa = PBXTextBookmark;
name = "{";
rLen = 2;
rLoc = 3056;
rType = 0;
vrLen = 465;
vrLoc = 2873;
};
8EFC6D7908537A5300C67D06 = {
fRef = 8EFC6C0008536C9D00C67D06;
isa = PBXTextBookmark;
name = "aacinfo.c: 152";
rLen = 0;
rLoc = 4787;
rType = 0;
vrLen = 822;
vrLoc = 4290;
};
8EFC6D8908537AB900C67D06 = {
fRef = 8EFC6C0008536C9D00C67D06;
isa = PBXTextBookmark;
name = "aacinfo.c: 152";
rLen = 0;
rLoc = 4791;
rType = 0;
vrLen = 826;
vrLoc = 4290;
};
}

View File

@ -218,6 +218,8 @@
<key>Layout</key>
<array>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@ -263,12 +265,11 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
<integer>69</integer>
<integer>68</integer>
<integer>0</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
<string>{{0, 760}, {231, 566}}</string>
<string>{{0, 0}, {231, 566}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
@ -315,7 +316,7 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>8E2BC800084F898E004518D1</string>
<string>8EFC6BF608536C8300C67D06</string>
<key>history</key>
<array>
<string>8EEBC7F2084F5C3C009FE5BE</string>
@ -338,7 +339,7 @@
<string>8E2BC7F7084F898E004518D1</string>
<string>8E2BC7F8084F898E004518D1</string>
<string>8E2BC7F9084F898E004518D1</string>
<string>8E65785D084F5EDB00F28C07</string>
<string>8E2BC800084F898E004518D1</string>
</array>
<key>prevStack</key>
<array>
@ -363,9 +364,6 @@
<string>8E2BC7FA084F898E004518D1</string>
<string>8E2BC7FB084F898E004518D1</string>
<string>8E2BC7FC084F898E004518D1</string>
<string>8E2BC7FD084F898E004518D1</string>
<string>8E2BC7FE084F898E004518D1</string>
<string>8E2BC7FF084F898E004518D1</string>
</array>
</dict>
<key>SplitCount</key>
@ -387,8 +385,6 @@
<string>109pt</string>
</dict>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@ -425,9 +421,9 @@
</array>
<key>TableOfContents</key>
<array>
<string>8E2BC801084F898E004518D1</string>
<string>8EFC6BF708536C8300C67D06</string>
<string>1CE0B1FE06471DED0097A5F4</string>
<string>8E2BC802084F898E004518D1</string>
<string>8EFC6BF808536C8300C67D06</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>

View File

@ -80,8 +80,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 139430228;
PBXWorkspaceStateSaveDate = 139430228;
PBXPerProjectTemplateStateSaveDate = 139684956;
PBXWorkspaceStateSaveDate = 139684956;
};
perUserProjectItems = {
8E2BC7F4084F898E004518D1 = 8E2BC7F4084F898E004518D1;
@ -93,11 +93,7 @@
8E2BC7FA084F898E004518D1 = 8E2BC7FA084F898E004518D1;
8E2BC7FB084F898E004518D1 = 8E2BC7FB084F898E004518D1;
8E2BC7FC084F898E004518D1 = 8E2BC7FC084F898E004518D1;
8E2BC7FD084F898E004518D1 = 8E2BC7FD084F898E004518D1;
8E2BC7FE084F898E004518D1 = 8E2BC7FE084F898E004518D1;
8E2BC7FF084F898E004518D1 = 8E2BC7FF084F898E004518D1;
8E2BC800084F898E004518D1 = 8E2BC800084F898E004518D1;
8E65785D084F5EDB00F28C07 = 8E65785D084F5EDB00F28C07;
8E65785E084F5EDB00F28C07 = 8E65785E084F5EDB00F28C07;
8E65785F084F5EDB00F28C07 = 8E65785F084F5EDB00F28C07;
8E657860084F5EDB00F28C07 = 8E657860084F5EDB00F28C07;
@ -130,6 +126,7 @@
8EEBC7FE084F5C3C009FE5BE = 8EEBC7FE084F5C3C009FE5BE;
8EEBC7FF084F5C3C009FE5BE = 8EEBC7FF084F5C3C009FE5BE;
8EEBC800084F5C3C009FE5BE = 8EEBC800084F5C3C009FE5BE;
8EFC6BF608536C8300C67D06 = 8EFC6BF608536C8300C67D06;
};
sourceControlManager = 8E4DD23C082DCA1B004B6830;
userBuildSettings = {
@ -228,36 +225,6 @@
vrLen = 195;
vrLoc = 0;
};
8E2BC7FD084F898E004518D1 = {
fRef = 8EEBC75D084F5AF9009FE5BE;
isa = PBXTextBookmark;
name = "m_spIO.Assign(new IO_CLASS_NAME);";
rLen = 39;
rLoc = 783;
rType = 0;
vrLen = 162;
vrLoc = 709;
};
8E2BC7FE084F898E004518D1 = {
fRef = 8EEBC797084F5B65009FE5BE;
isa = PBXTextBookmark;
name = "APEInfo.h: 79";
rLen = 0;
rLoc = 4830;
rType = 0;
vrLen = 86;
vrLoc = 1090;
};
8E2BC7FF084F898E004518D1 = {
fRef = 8EEBC787084F5B30009FE5BE;
isa = PBXTextBookmark;
name = "APETag.h: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 152;
vrLoc = 0;
};
8E2BC800084F898E004518D1 = {
fRef = 8EEBC788084F5B30009FE5BE;
isa = PBXTextBookmark;
@ -280,16 +247,6 @@
indexTemplatePath = "";
isa = PBXCodeSenseManager;
};
8E65785D084F5EDB00F28C07 = {
fRef = 8EEBC788084F5B30009FE5BE;
isa = PBXTextBookmark;
name = "virtual int Open(const wchar_t * pName) = 0;";
rLen = 50;
rLoc = 351;
rType = 0;
vrLen = 669;
vrLoc = 0;
};
8E65785E084F5EDB00F28C07 = {
fRef = 8EEBC7C5084F5BB3009FE5BE;
isa = PBXTextBookmark;
@ -611,7 +568,7 @@
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {730, 700}}";
sepNavSelRange = "{351, 50}";
sepNavVisRect = "{{0, 371}, {730, 77}}";
sepNavVisRect = "{{0, 364}, {730, 77}}";
};
};
8EEBC78B084F5B30009FE5BE = {
@ -771,4 +728,14 @@
vrLen = 648;
vrLoc = 0;
};
8EFC6BF608536C8300C67D06 = {
fRef = 8EEBC788084F5B30009FE5BE;
isa = PBXTextBookmark;
name = "virtual int Open(const wchar_t * pName) = 0;";
rLen = 50;
rLoc = 351;
rType = 0;
vrLen = 268;
vrLoc = 401;
};
}

14
PLANNED
View File

@ -1,10 +1,14 @@
0.0.2
mpeg4 support (FAAD)
shorten support
hotkeys for next/prev/stop/shuffle/repeat & info window
0.0.3
Stream support for shoutcast/oggcast, or just opening files via URL.
0.0.4+
A queue system, in which a user can option+click a song, and it will be placed
in a queue, whcih will pick the next song.
Stream support for shoutcast/oggcast, or just opening via URL.
Audioscrobbler.
Improved tag reading.
mpeg4 support (FAAD)
look into realplayer (cook in mplayer) and wma
find better ape decoder
visualizer? (libvisualizer perhaps?)
hotkeys for next/prev/stop/shuffle/repeat & info window

25
Sound.m
View File

@ -306,15 +306,30 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc
NSArray* components = [portMessage components];
NSData *data = [components objectAtIndex:0];
double time;
double newTime;
unsigned long pos;
time = (*(double *)[data bytes]);
pos = [self calculatePos:time];
[soundFile seekToTime:time];
[self resetBuffer];
[readLock lock];
currentPosition = pos;
[readLock unlock];
newTime = [soundFile seekToTime:time];
if (newTime >= 0)
{
[self resetBuffer];
pos = [self calculatePos:newTime];
[readLock lock];
currentPosition = pos;
[readLock unlock];
}
else
{
newTime = [self calculateTime:currentPosition];
}
//send a message with newTime
DBLog(@"RESETING TIME TO: %f", newTime);
[self sendPortMessage:kCogPositionUpdateMessage withData:&newTime ofSize:(sizeof(double))];
}
else if (msgid == kCogEndOfPlaylistMessage)
{

View File

@ -20,6 +20,9 @@
NeAACDecHandle hAac;
NeAACDecFrameInfo hInfo;
unsigned long *seekTable;
int seekTableLength;
char buffer[SAMPLE_BUFFER_SIZE];
int bufferAmount;

View File

@ -7,38 +7,41 @@
//
#import "AACFile.h"
#import <FAAD2/aacinfo.h>
@implementation AACFile
- (BOOL)open:(const char *)filename
{
unsigned long cap = NeAACDecGetCapabilities();
faadAACInfo info;
// unsigned long cap = NeAACDecGetCapabilities();
//Check if decoder has the needed capabilities
inFd = fopen(filename, "r");
if (!inFd)
return NO;
//Open the library
hAac = NeAACDecOpen();
//Get the current config
NeAACDecConfigurationPtr conf = NeAACDecGetCurrentConfiguration(hAac);
// conf->useOldADTSFormat = 1;
DBLog(@"CONFIG: %i", conf->useOldADTSFormat);
//if needed, change some of the values in conf
conf->outputFormat = FAAD_FMT_32BIT;
// conf->downMatrix = 1;
// channels = 1;
bitsPerSample = 32;
//set the new configuration
NeAACDecSetConfiguration(hAac, conf);
inFd = fopen(filename, "r");
if (!inFd)
return NO;
get_AAC_format(inFd, &info, &seekTable, &seekTableLength, 1);
DBLog(@"INFO TIME");
DBLog(@"---------");
DBLog(@"%i %i %i %i %i", info.bitrate, info.channels, info.length, info.sampling_rate, info.version);
DBLog(@"");
fseek(inFd, 0, SEEK_SET);
inputAmount = fread(inputBuffer, 1, INPUT_BUFFER_SIZE, inFd);
unsigned long samplerate;
unsigned char c;
//Initialize the library using one of the initalization functions
@ -49,18 +52,25 @@
DBLog(@"AAC ERRROR");
return NO;
}
inputAmount -= err;
memmove(inputBuffer, &inputBuffer[err], inputAmount);
frequency = (int)samplerate;
channels = c;
bitRate = (int)((float)info.bitrate/1000.0);
totalSize = (long int)(info.length*(double)frequency/1000.0*channels*bitsPerSample/8);
isBigEndian = YES;
return YES;
}
- (BOOL)readInfo:(const char *)filename
{
return [self open:filename]; //they both would do the same damn thing
}
- (int)fillBuffer:(void *)buf ofSize:(UInt32)size
{
int numread = bufferAmount;
@ -132,8 +142,34 @@
return count + numread;
}
- (double)seekToTime:(double)milliseconds
{
int second;
int i;
unsigned long pos;
unsigned long length;
if (seekTableLength <= 1)
return -1;
length = (unsigned long)(totalSize /(frequency * channels*(bitsPerSample/8)));
second = (int)(milliseconds/1000.0);
i = (int)(((float)second/length)*seekTableLength);
DBLog(@"SEEKING TO: %i %i", seekTable, seekTableLength);
pos = seekTable[i];
fseek(inFd, pos, SEEK_SET);
inputAmount = 0;
NeAACDecPostSeekReset(hAac, -1);
return second*1000.0;
}
- (void)close
{
NeAACDecClose(hAac);
fclose(inFd);
}
@end

View File

@ -159,9 +159,11 @@ void ErrorProc(const FLAC__FileDecoder *decoder, FLAC__StreamDecoderErrorStatus
}
- (void)seekToTime:(double)milliseconds
- (double)seekToTime:(double)milliseconds
{
FLAC__file_decoder_seek_absolute(decoder, frequency * ((double)milliseconds/1000.0));
return milliseconds;
}
//bs methods

View File

@ -99,9 +99,11 @@
decoder = NULL;
}
- (void)seekToTime:(double)milliseconds
- (double)seekToTime:(double)milliseconds
{
DecMPA_SeekToTime(decoder, (unsigned long)milliseconds);
return milliseconds;
}
@end

View File

@ -76,11 +76,13 @@
decompress = NULL;
}
- (void)seekToTime:(double)milliseconds
- (double)seekToTime:(double)milliseconds
{
int r;
// DBLog(@"HELLO: %i", int(frequency*((double)milliseconds/1000.0)));
r = decompress->Seek(int(frequency*((double)milliseconds/1000.0)));
return milliseconds;
}
@end

View File

@ -184,7 +184,7 @@ BOOL CanSeekProc(void *data)
fclose(inFd);
}
- (void)seekToTime:(double)milliseconds
- (double)seekToTime:(double)milliseconds
{
BOOL r;
// double n = milliseconds;
@ -193,6 +193,8 @@ BOOL CanSeekProc(void *data)
r = mpc_decoder_seek_sample(&decoder, frequency*((double)milliseconds/1000.0));
// DBLog(@"SEEK RESULT: %i", r);
return milliseconds;
}
//accessors

View File

@ -44,8 +44,8 @@
- (UInt32)fillBuffer:(void *)buf ofSize:(UInt32)size;
- (void)seek:(unsigned long)position;
- (void)seekToTime:(double)milliseconds;
//- (BOOL)seek:(unsigned long)position;
- (double)seekToTime:(double)milliseconds;
- (void)close;
- (void)reset; //START AGAIN

View File

@ -11,7 +11,7 @@
@implementation SoundFile
- (void)seek:(unsigned long)position
/*- (void)seek:(unsigned long)position
{
unsigned long time;
unsigned long frame;
@ -21,9 +21,10 @@
currentPosition = position;
[self seekToTime:time];
time = [self seekToTime:time];
position = time * (frequency/1000.0)*chanels*(bitsPerSample/8)
}
*/
- (double)length
{
return (totalSize/channels/(bitsPerSample/8)/(frequency/1000.0));
@ -119,7 +120,7 @@
- (void)reset
{
[self seek:0];
[self seekToTime:0.0];
}
- (void)getFormat:(AudioStreamBasicDescription *)sourceStreamFormat

View File

@ -71,6 +71,8 @@
- (void)seekToTime:(double)milliseconds
{
ov_time_seek(&vorbisRef, (double)milliseconds/1000.0);
return milliseconds;
}

View File

@ -113,9 +113,11 @@
sndFile = NULL;
}
- (void)seekToTime:(double)milliseconds
- (double)seekToTime:(double)milliseconds
{
sf_seek(sndFile, frequency*((double)milliseconds/1000.0), SEEK_SET);
return milliseconds;
}
@end