diff --git a/Cog.xcodeproj/project.pbxproj b/Cog.xcodeproj/project.pbxproj index cae3f6555..1a8a1d6b4 100644 --- a/Cog.xcodeproj/project.pbxproj +++ b/Cog.xcodeproj/project.pbxproj @@ -11,29 +11,28 @@ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - 8E0EBF0F084BA776003A6E64 /* DBLog.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E0EBF0D084BA776003A6E64 /* DBLog.c */; }; 8E10DBF0084BBCF00013815C /* Credits.html in Resources */ = {isa = PBXBuildFile; fileRef = 8E10DBEF084BBCF00013815C /* Credits.html */; }; - 8E14E47C084CF1A200246BCC /* AACFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E14E47A084CF1A200246BCC /* AACFile.m */; }; 8E267D0E0837F7A6004ACBC5 /* FeedbackController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E267D050837F7A6004ACBC5 /* FeedbackController.m */; }; 8E267D100837F7A6004ACBC5 /* FeedbackSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E267D070837F7A6004ACBC5 /* FeedbackSocket.m */; }; 8E267D120837F7A6004ACBC5 /* MacPADSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E267D0A0837F7A6004ACBC5 /* MacPADSocket.m */; }; 8E267D140837F7A6004ACBC5 /* UpdateController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E267D0C0837F7A6004ACBC5 /* UpdateController.m */; }; - 8E28710B0836934A0013CE39 /* VirtualRingBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E2871090836934A0013CE39 /* VirtualRingBuffer.m */; }; - 8E45227C0832898A00F8BA7C /* Sound.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E45227B0832898A00F8BA7C /* Sound.m */; }; 8E47218D08318D7A001F89FA /* DNDArrayController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E47218608318D7A001F89FA /* DNDArrayController.m */; }; 8E47218E08318D7A001F89FA /* PlaylistController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E47218808318D7A001F89FA /* PlaylistController.m */; }; 8E47218F08318D7A001F89FA /* PlaylistEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E47218A08318D7A001F89FA /* PlaylistEntry.m */; }; 8E47219008318D7A001F89FA /* PlaylistView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E47218C08318D7A001F89FA /* PlaylistView.m */; }; 8E4721D308319294001F89FA /* AppController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E4721D208319294001F89FA /* AppController.m */; }; - 8E4721D6083192C2001F89FA /* SoundController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E4721D5083192C2001F89FA /* SoundController.m */; }; 8E5A90B1084CBC2F00AE6D62 /* Changelog in Resources */ = {isa = PBXBuildFile; fileRef = 8E5A90B0084CBC2F00AE6D62 /* Changelog */; }; 8E6F2A1908480D010011F126 /* wheel.icns in Resources */ = {isa = PBXBuildFile; fileRef = 8E6F2A1808480D010011F126 /* wheel.icns */; }; + 8E73EF760961084E00B8C998 /* Ogg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E73EF750961084E00B8C998 /* Ogg.framework */; }; + 8E73EF780961086200B8C998 /* Vorbis.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E73EF770961086200B8C998 /* Vorbis.framework */; }; + 8E73EF98096108DC00B8C998 /* Vorbis.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8E73EF770961086200B8C998 /* Vorbis.framework */; }; + 8E73EF99096108DC00B8C998 /* Ogg.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8E73EF750961084E00B8C998 /* Ogg.framework */; }; 8E7FA05608731B49005E8B5F /* TODO in Resources */ = {isa = PBXBuildFile; fileRef = 8E7FA05508731B49005E8B5F /* TODO */; }; 8E7FA05A08731B6F005E8B5F /* COMPILE in Resources */ = {isa = PBXBuildFile; fileRef = 8E7FA05908731B6F005E8B5F /* COMPILE */; }; 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 */; }; - 8E8BAE5808548BE800E9F14D /* ShnFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E8BAE5608548BE800E9F14D /* ShnFile.m */; }; + 8E888D5809795247007E984F /* Shuffle.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8E888D5609795247007E984F /* Shuffle.h */; }; + 8E888D5909795247007E984F /* Shuffle.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E888D5709795247007E984F /* Shuffle.m */; }; 8E8F3F9C0855499500BCF803 /* README in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F3F9B0855499500BCF803 /* README */; }; 8EAB752D0856205B0021C2BF /* repeat_on.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EAB75290856205B0021C2BF /* repeat_on.png */; }; 8EAB752E0856205B0021C2BF /* repeat_off.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EAB752A0856205B0021C2BF /* repeat_off.png */; }; @@ -56,16 +55,55 @@ 8EAFD28F08465E5600107BA5 /* remove_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EAFD27B08465E5600107BA5 /* remove_gray.png */; }; 8EAFD29408465E5600107BA5 /* stop_blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EAFD28008465E5600107BA5 /* stop_blue.png */; }; 8EAFD29508465E5600107BA5 /* stop_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EAFD28108465E5600107BA5 /* stop_gray.png */; }; + 8EB090780976953C00DB1521 /* DBLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090720976953C00DB1521 /* DBLog.m */; }; + 8EB090790976953C00DB1521 /* DBLog.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090730976953C00DB1521 /* DBLog.h */; }; + 8EB0907A0976953C00DB1521 /* Semaphore.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090740976953C00DB1521 /* Semaphore.h */; }; + 8EB0907B0976953C00DB1521 /* Semaphore.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090750976953C00DB1521 /* Semaphore.m */; }; + 8EB0907C0976953C00DB1521 /* VirtualRingBuffer.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090760976953C00DB1521 /* VirtualRingBuffer.h */; }; + 8EB0907D0976953C00DB1521 /* VirtualRingBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090770976953C00DB1521 /* VirtualRingBuffer.m */; }; + 8EB090A70976955800DB1521 /* BufferChain.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB0907E0976955800DB1521 /* BufferChain.h */; }; + 8EB090A80976955800DB1521 /* BufferChain.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB0907F0976955800DB1521 /* BufferChain.m */; }; + 8EB090A90976955800DB1521 /* ConverterNode.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090800976955800DB1521 /* ConverterNode.h */; }; + 8EB090AA0976955800DB1521 /* ConverterNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090810976955800DB1521 /* ConverterNode.m */; }; + 8EB090AB0976955800DB1521 /* InputNode.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090820976955800DB1521 /* InputNode.h */; }; + 8EB090AC0976955800DB1521 /* InputNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090830976955800DB1521 /* InputNode.m */; }; + 8EB090AD0976955800DB1521 /* Node.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090840976955800DB1521 /* Node.h */; }; + 8EB090AE0976955800DB1521 /* Node.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090850976955800DB1521 /* Node.m */; }; + 8EB090AF0976955800DB1521 /* OutputCoreAudio.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090860976955800DB1521 /* OutputCoreAudio.h */; }; + 8EB090B00976955800DB1521 /* OutputCoreAudio.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090870976955800DB1521 /* OutputCoreAudio.m */; }; + 8EB090B10976955800DB1521 /* OutputNode.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090880976955800DB1521 /* OutputNode.h */; }; + 8EB090B20976955800DB1521 /* OutputNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090890976955800DB1521 /* OutputNode.m */; }; + 8EB090B30976955800DB1521 /* SoundController.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB0908A0976955800DB1521 /* SoundController.h */; }; + 8EB090B40976955800DB1521 /* SoundController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB0908B0976955800DB1521 /* SoundController.m */; }; + 8EB090B50976955800DB1521 /* AACFile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB0908D0976955800DB1521 /* AACFile.h */; }; + 8EB090B60976955800DB1521 /* AACFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB0908E0976955800DB1521 /* AACFile.m */; }; + 8EB090B70976955800DB1521 /* FlacFile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB0908F0976955800DB1521 /* FlacFile.h */; }; + 8EB090B80976955800DB1521 /* FlacFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090900976955800DB1521 /* FlacFile.m */; }; + 8EB090B90976955800DB1521 /* MonkeysFile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090910976955800DB1521 /* MonkeysFile.h */; }; + 8EB090BA0976955800DB1521 /* MonkeysFile.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090920976955800DB1521 /* MonkeysFile.mm */; }; + 8EB090BB0976955800DB1521 /* MPEGFile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090930976955800DB1521 /* MPEGFile.h */; }; + 8EB090BC0976955800DB1521 /* MPEGFile.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090940976955800DB1521 /* MPEGFile.mm */; }; + 8EB090BD0976955800DB1521 /* MusepackFile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090950976955800DB1521 /* MusepackFile.h */; }; + 8EB090BE0976955800DB1521 /* MusepackFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090960976955800DB1521 /* MusepackFile.m */; }; + 8EB090BF0976955800DB1521 /* ShnFile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090970976955800DB1521 /* ShnFile.h */; }; + 8EB090C00976955800DB1521 /* ShnFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090980976955800DB1521 /* ShnFile.m */; }; + 8EB090C10976955800DB1521 /* SoundFile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB090990976955800DB1521 /* SoundFile.h */; }; + 8EB090C20976955800DB1521 /* SoundFile.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8EB0909A0976955800DB1521 /* SoundFile.mm */; }; + 8EB090C30976955800DB1521 /* VorbisFile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB0909B0976955800DB1521 /* VorbisFile.h */; }; + 8EB090C40976955800DB1521 /* VorbisFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB0909C0976955800DB1521 /* VorbisFile.m */; }; + 8EB090C50976955800DB1521 /* WaveFile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB0909D0976955800DB1521 /* WaveFile.h */; }; + 8EB090C60976955800DB1521 /* WaveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB0909E0976955800DB1521 /* WaveFile.m */; }; + 8EB090C70976955800DB1521 /* WavPackFile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EB0909F0976955800DB1521 /* WavPackFile.h */; }; + 8EB090C80976955800DB1521 /* WavPackFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EB090A00976955800DB1521 /* WavPackFile.m */; }; + 8EB090C90976955800DB1521 /* SOUNDTODO in Resources */ = {isa = PBXBuildFile; fileRef = 8EB090A10976955800DB1521 /* SOUNDTODO */; }; 8EC4BB7E0872E2FB00ACF986 /* ClickField.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EC4BB760872E2FB00ACF986 /* ClickField.m */; }; 8EC4BB800872E2FB00ACF986 /* InfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EC4BB780872E2FB00ACF986 /* InfoView.m */; }; 8EC4BB820872E2FB00ACF986 /* TrackingCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EC4BB7A0872E2FB00ACF986 /* TrackingCell.m */; }; 8EC4BB840872E2FB00ACF986 /* TrackingSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EC4BB7C0872E2FB00ACF986 /* TrackingSlider.m */; }; 8EC4BCC20872EEB800ACF986 /* WavPack.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC4BCC10872EEB800ACF986 /* WavPack.framework */; }; - 8EC4BCCF0872EEFC00ACF986 /* Vorbis.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC4BCCE0872EEFC00ACF986 /* Vorbis.framework */; }; 8EC4BCD30872EF0C00ACF986 /* TagLib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC4BCD20872EF0C00ACF986 /* TagLib.framework */; }; 8EC4BCD70872EF1600ACF986 /* SndFile.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC4BCD60872EF1600ACF986 /* SndFile.framework */; }; 8EC4BCDB0872EF1F00ACF986 /* Shorten.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC4BCDA0872EF1F00ACF986 /* Shorten.framework */; }; - 8EC4BCDF0872EF3100ACF986 /* Ogg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC4BCDE0872EF3100ACF986 /* Ogg.framework */; }; 8EC4BCE30872EF3A00ACF986 /* MPCDec.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC4BCE20872EF3A00ACF986 /* MPCDec.framework */; }; 8EC4BCE70872EF4400ACF986 /* MAC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC4BCE60872EF4400ACF986 /* MAC.framework */; }; 8EC4BCEB0872EF4D00ACF986 /* FLAC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC4BCEA0872EF4D00ACF986 /* FLAC.framework */; }; @@ -76,22 +114,16 @@ 8EC4BD330872EF6A00ACF986 /* FLAC.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EC4BCEA0872EF4D00ACF986 /* FLAC.framework */; }; 8EC4BD340872EF6A00ACF986 /* MAC.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EC4BCE60872EF4400ACF986 /* MAC.framework */; }; 8EC4BD350872EF6A00ACF986 /* MPCDec.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EC4BCE20872EF3A00ACF986 /* MPCDec.framework */; }; - 8EC4BD360872EF6A00ACF986 /* Ogg.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EC4BCDE0872EF3100ACF986 /* Ogg.framework */; }; 8EC4BD370872EF6A00ACF986 /* Shorten.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EC4BCDA0872EF1F00ACF986 /* Shorten.framework */; }; 8EC4BD380872EF6A00ACF986 /* SndFile.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EC4BCD60872EF1600ACF986 /* SndFile.framework */; }; 8EC4BD390872EF6A00ACF986 /* TagLib.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EC4BCD20872EF0C00ACF986 /* TagLib.framework */; }; - 8EC4BD3A0872EF6A00ACF986 /* Vorbis.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EC4BCCE0872EEFC00ACF986 /* Vorbis.framework */; }; 8EC4BD3B0872EF6A00ACF986 /* WavPack.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EC4BCC10872EEB800ACF986 /* WavPack.framework */; }; 8EDCBDCB0840617B00F5C7E3 /* Cog.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = 8EDCBDCA0840617B00F5C7E3 /* Cog.scriptTerminology */; }; 8EDCBDCD0840618900F5C7E3 /* Cog.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = 8EDCBDCC0840618900F5C7E3 /* Cog.scriptSuite */; }; 8EE90D3908830662002238C8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8EE90D3708830662002238C8 /* Localizable.strings */; }; - 8EF6FA73082DA526006F7BE6 /* FlacFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6FA66082DA526006F7BE6 /* FlacFile.m */; }; - 8EF6FA74082DA526006F7BE6 /* MonkeysFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6FA68082DA526006F7BE6 /* MonkeysFile.m */; }; - 8EF6FA75082DA526006F7BE6 /* MPEGFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6FA6A082DA526006F7BE6 /* MPEGFile.m */; }; - 8EF6FA76082DA526006F7BE6 /* MusepackFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6FA6C082DA526006F7BE6 /* MusepackFile.m */; }; - 8EF6FA77082DA526006F7BE6 /* SoundFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6FA6E082DA526006F7BE6 /* SoundFile.m */; }; - 8EF6FA78082DA526006F7BE6 /* VorbisFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6FA70082DA526006F7BE6 /* VorbisFile.m */; }; - 8EF6FA79082DA526006F7BE6 /* WaveFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6FA72082DA526006F7BE6 /* WaveFile.m */; }; + 8EEBB7130977DF6800D5D854 /* PlaybackController.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EEBB7110977DF6800D5D854 /* PlaybackController.h */; }; + 8EEBB7140977DF6800D5D854 /* PlaybackController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EEBB7120977DF6800D5D854 /* PlaybackController.m */; }; + 8EECB4510979945E005080E6 /* Status.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8EECB4500979945E005080E6 /* Status.h */; }; 8EF7BCF10874708F0012C2F4 /* volume_high.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EF7BCEF0874708F0012C2F4 /* volume_high.png */; }; 8EF7BCF20874708F0012C2F4 /* volume_low.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EF7BCF00874708F0012C2F4 /* volume_low.png */; }; /* End PBXBuildFile section */ @@ -155,17 +187,40 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( + 8E73EF98096108DC00B8C998 /* Vorbis.framework in CopyFiles */, + 8E73EF99096108DC00B8C998 /* Ogg.framework in CopyFiles */, 8EC4BD310872EF6A00ACF986 /* DecMPA.framework in CopyFiles */, 8EC4BD320872EF6A00ACF986 /* FAAD2.framework in CopyFiles */, 8EC4BD330872EF6A00ACF986 /* FLAC.framework in CopyFiles */, 8EC4BD340872EF6A00ACF986 /* MAC.framework in CopyFiles */, 8EC4BD350872EF6A00ACF986 /* MPCDec.framework in CopyFiles */, - 8EC4BD360872EF6A00ACF986 /* Ogg.framework in CopyFiles */, 8EC4BD370872EF6A00ACF986 /* Shorten.framework in CopyFiles */, 8EC4BD380872EF6A00ACF986 /* SndFile.framework in CopyFiles */, 8EC4BD390872EF6A00ACF986 /* TagLib.framework in CopyFiles */, - 8EC4BD3A0872EF6A00ACF986 /* Vorbis.framework in CopyFiles */, 8EC4BD3B0872EF6A00ACF986 /* WavPack.framework in CopyFiles */, + 8EB090790976953C00DB1521 /* DBLog.h in CopyFiles */, + 8EB0907A0976953C00DB1521 /* Semaphore.h in CopyFiles */, + 8EB0907C0976953C00DB1521 /* VirtualRingBuffer.h in CopyFiles */, + 8EB090A70976955800DB1521 /* BufferChain.h in CopyFiles */, + 8EB090A90976955800DB1521 /* ConverterNode.h in CopyFiles */, + 8EB090AB0976955800DB1521 /* InputNode.h in CopyFiles */, + 8EB090AD0976955800DB1521 /* Node.h in CopyFiles */, + 8EB090AF0976955800DB1521 /* OutputCoreAudio.h in CopyFiles */, + 8EB090B10976955800DB1521 /* OutputNode.h in CopyFiles */, + 8EB090B30976955800DB1521 /* SoundController.h in CopyFiles */, + 8EB090B50976955800DB1521 /* AACFile.h in CopyFiles */, + 8EB090B70976955800DB1521 /* FlacFile.h in CopyFiles */, + 8EB090B90976955800DB1521 /* MonkeysFile.h in CopyFiles */, + 8EB090BB0976955800DB1521 /* MPEGFile.h in CopyFiles */, + 8EB090BD0976955800DB1521 /* MusepackFile.h in CopyFiles */, + 8EB090BF0976955800DB1521 /* ShnFile.h in CopyFiles */, + 8EB090C10976955800DB1521 /* SoundFile.h in CopyFiles */, + 8EB090C30976955800DB1521 /* VorbisFile.h in CopyFiles */, + 8EB090C50976955800DB1521 /* WaveFile.h in CopyFiles */, + 8EB090C70976955800DB1521 /* WavPackFile.h in CopyFiles */, + 8EEBB7130977DF6800D5D854 /* PlaybackController.h in CopyFiles */, + 8E888D5809795247007E984F /* Shuffle.h in CopyFiles */, + 8EECB4510979945E005080E6 /* Status.h in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -182,11 +237,7 @@ 32CA4F630368D1EE00C91783 /* Cog_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Cog_Prefix.pch; sourceTree = ""; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 8D1107320486CEB800E47090 /* Cog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Cog.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 8E0EBF0C084BA776003A6E64 /* DBLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBLog.h; sourceTree = ""; }; - 8E0EBF0D084BA776003A6E64 /* DBLog.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = DBLog.c; sourceTree = ""; }; 8E10DBEF084BBCF00013815C /* Credits.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Credits.html; sourceTree = ""; }; - 8E14E479084CF1A200246BCC /* AACFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AACFile.h; sourceTree = ""; }; - 8E14E47A084CF1A200246BCC /* AACFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AACFile.m; sourceTree = ""; }; 8E267D040837F7A6004ACBC5 /* FeedbackController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FeedbackController.h; sourceTree = ""; }; 8E267D050837F7A6004ACBC5 /* FeedbackController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = FeedbackController.m; sourceTree = ""; }; 8E267D060837F7A6004ACBC5 /* FeedbackSocket.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FeedbackSocket.h; sourceTree = ""; }; @@ -195,12 +246,6 @@ 8E267D0A0837F7A6004ACBC5 /* MacPADSocket.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MacPADSocket.m; sourceTree = ""; }; 8E267D0B0837F7A6004ACBC5 /* UpdateController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UpdateController.h; sourceTree = ""; }; 8E267D0C0837F7A6004ACBC5 /* UpdateController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = UpdateController.m; sourceTree = ""; }; - 8E2871080836934A0013CE39 /* VirtualRingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = VirtualRingBuffer.h; sourceTree = ""; }; - 8E2871090836934A0013CE39 /* VirtualRingBuffer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = VirtualRingBuffer.m; sourceTree = ""; }; - 8E2C5C2D08A67867008DA854 /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Controller.h; sourceTree = ""; }; - 8E2C5C2E08A67867008DA854 /* Controller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Controller.m; sourceTree = ""; }; - 8E45227A0832898A00F8BA7C /* Sound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sound.h; sourceTree = ""; }; - 8E45227B0832898A00F8BA7C /* Sound.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = Sound.m; sourceTree = ""; }; 8E47218508318D7A001F89FA /* DNDArrayController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DNDArrayController.h; path = Playlist/DNDArrayController.h; sourceTree = ""; }; 8E47218608318D7A001F89FA /* DNDArrayController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = DNDArrayController.m; path = Playlist/DNDArrayController.m; sourceTree = ""; }; 8E47218708318D7A001F89FA /* PlaylistController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PlaylistController.h; path = Playlist/PlaylistController.h; sourceTree = ""; }; @@ -211,30 +256,18 @@ 8E47218C08318D7A001F89FA /* PlaylistView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = PlaylistView.m; path = Playlist/PlaylistView.m; sourceTree = ""; }; 8E4721D108319294001F89FA /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AppController.h; sourceTree = ""; }; 8E4721D208319294001F89FA /* AppController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = AppController.m; sourceTree = ""; }; - 8E4721D4083192C2001F89FA /* SoundController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SoundController.h; sourceTree = ""; }; - 8E4721D5083192C2001F89FA /* SoundController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SoundController.m; sourceTree = ""; }; 8E546D6808843E7B00E356EE /* French */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = French; path = French.lproj/MainMenu.nib; sourceTree = ""; }; 8E546D6908843E8500E356EE /* French */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = French; path = French.lproj/Localizable.strings; sourceTree = ""; }; 8E5A90B0084CBC2F00AE6D62 /* Changelog */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Changelog; sourceTree = ""; }; 8E6F2A1808480D010011F126 /* wheel.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = wheel.icns; path = Icons/wheel.icns; sourceTree = ""; }; - 8E7D4F0B08A0709C00EBB15A /* OutputCoreAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OutputCoreAudio.h; sourceTree = ""; }; - 8E7D4F0C08A0709C00EBB15A /* OutputCoreAudio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OutputCoreAudio.m; sourceTree = ""; }; - 8E7D4F0F08A070AC00EBB15A /* OutputController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OutputController.h; sourceTree = ""; }; - 8E7D4F1008A070AC00EBB15A /* OutputController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OutputController.m; sourceTree = ""; }; - 8E7D4F1308A070BB00EBB15A /* InputController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InputController.h; sourceTree = ""; }; - 8E7D4F1408A070BB00EBB15A /* InputController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InputController.m; sourceTree = ""; }; - 8E7D4F1808A070D600EBB15A /* Converter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Converter.h; sourceTree = ""; }; - 8E7D4F1908A070D600EBB15A /* Converter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Converter.m; sourceTree = ""; }; - 8E7D4F5A08A0734300EBB15A /* Semaphore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Semaphore.h; sourceTree = ""; }; - 8E7D4F5B08A0734300EBB15A /* Semaphore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Semaphore.m; sourceTree = ""; }; + 8E73EF750961084E00B8C998 /* Ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Ogg.framework; path = Libraries/Ogg/build/Deployment/Ogg.framework; sourceTree = ""; }; + 8E73EF770961086200B8C998 /* Vorbis.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Vorbis.framework; path = Libraries/Vorbis/build/Deployment/Vorbis.framework; sourceTree = ""; }; 8E7FA05508731B49005E8B5F /* TODO */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TODO; sourceTree = ""; }; 8E7FA05908731B6F005E8B5F /* COMPILE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = COMPILE; sourceTree = ""; }; 8E81BC31083673ED0025A375 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; 8E81BC32083673ED0025A375 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = ""; }; - 8E8BAE5108548BD500E9F14D /* WavPackFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WavPackFile.h; sourceTree = ""; }; - 8E8BAE5208548BD500E9F14D /* WavPackFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WavPackFile.m; sourceTree = ""; }; - 8E8BAE5508548BE800E9F14D /* ShnFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShnFile.h; sourceTree = ""; }; - 8E8BAE5608548BE800E9F14D /* ShnFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShnFile.m; sourceTree = ""; }; + 8E888D5609795247007E984F /* Shuffle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Shuffle.h; sourceTree = ""; }; + 8E888D5709795247007E984F /* Shuffle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Shuffle.m; sourceTree = ""; }; 8E8F3F9B0855499500BCF803 /* README */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = README; sourceTree = ""; }; 8EAB75290856205B0021C2BF /* repeat_on.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = repeat_on.png; path = Icons/repeat_on.png; sourceTree = ""; }; 8EAB752A0856205B0021C2BF /* repeat_off.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = repeat_off.png; path = Icons/repeat_off.png; sourceTree = ""; }; @@ -257,6 +290,47 @@ 8EAFD27B08465E5600107BA5 /* remove_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = remove_gray.png; path = Icons/remove_gray.png; sourceTree = ""; }; 8EAFD28008465E5600107BA5 /* stop_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = stop_blue.png; path = Icons/stop_blue.png; sourceTree = ""; }; 8EAFD28108465E5600107BA5 /* stop_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = stop_gray.png; path = Icons/stop_gray.png; sourceTree = ""; }; + 8EB090720976953C00DB1521 /* DBLog.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = DBLog.m; path = Utils/DBLog.m; sourceTree = ""; }; + 8EB090730976953C00DB1521 /* DBLog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DBLog.h; path = Utils/DBLog.h; sourceTree = ""; }; + 8EB090740976953C00DB1521 /* Semaphore.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Semaphore.h; path = Utils/Semaphore.h; sourceTree = ""; }; + 8EB090750976953C00DB1521 /* Semaphore.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = Semaphore.m; path = Utils/Semaphore.m; sourceTree = ""; }; + 8EB090760976953C00DB1521 /* VirtualRingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VirtualRingBuffer.h; path = Utils/VirtualRingBuffer.h; sourceTree = ""; }; + 8EB090770976953C00DB1521 /* VirtualRingBuffer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = VirtualRingBuffer.m; path = Utils/VirtualRingBuffer.m; sourceTree = ""; }; + 8EB0907E0976955800DB1521 /* BufferChain.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = BufferChain.h; path = Sound/BufferChain.h; sourceTree = ""; }; + 8EB0907F0976955800DB1521 /* BufferChain.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = BufferChain.m; path = Sound/BufferChain.m; sourceTree = ""; }; + 8EB090800976955800DB1521 /* ConverterNode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ConverterNode.h; path = Sound/ConverterNode.h; sourceTree = ""; }; + 8EB090810976955800DB1521 /* ConverterNode.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = ConverterNode.m; path = Sound/ConverterNode.m; sourceTree = ""; }; + 8EB090820976955800DB1521 /* InputNode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = InputNode.h; path = Sound/InputNode.h; sourceTree = ""; }; + 8EB090830976955800DB1521 /* InputNode.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = InputNode.m; path = Sound/InputNode.m; sourceTree = ""; }; + 8EB090840976955800DB1521 /* Node.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Node.h; path = Sound/Node.h; sourceTree = ""; }; + 8EB090850976955800DB1521 /* Node.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = Node.m; path = Sound/Node.m; sourceTree = ""; }; + 8EB090860976955800DB1521 /* OutputCoreAudio.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = OutputCoreAudio.h; path = Sound/OutputCoreAudio.h; sourceTree = ""; }; + 8EB090870976955800DB1521 /* OutputCoreAudio.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = OutputCoreAudio.m; path = Sound/OutputCoreAudio.m; sourceTree = ""; }; + 8EB090880976955800DB1521 /* OutputNode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = OutputNode.h; path = Sound/OutputNode.h; sourceTree = ""; }; + 8EB090890976955800DB1521 /* OutputNode.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = OutputNode.m; path = Sound/OutputNode.m; sourceTree = ""; }; + 8EB0908A0976955800DB1521 /* SoundController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SoundController.h; path = Sound/SoundController.h; sourceTree = ""; }; + 8EB0908B0976955800DB1521 /* SoundController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SoundController.m; path = Sound/SoundController.m; sourceTree = ""; }; + 8EB0908D0976955800DB1521 /* AACFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AACFile.h; sourceTree = ""; }; + 8EB0908E0976955800DB1521 /* AACFile.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = AACFile.m; sourceTree = ""; }; + 8EB0908F0976955800DB1521 /* FlacFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FlacFile.h; sourceTree = ""; }; + 8EB090900976955800DB1521 /* FlacFile.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = FlacFile.m; sourceTree = ""; }; + 8EB090910976955800DB1521 /* MonkeysFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MonkeysFile.h; sourceTree = ""; }; + 8EB090920976955800DB1521 /* MonkeysFile.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = MonkeysFile.mm; sourceTree = ""; }; + 8EB090930976955800DB1521 /* MPEGFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MPEGFile.h; sourceTree = ""; }; + 8EB090940976955800DB1521 /* MPEGFile.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = MPEGFile.mm; sourceTree = ""; }; + 8EB090950976955800DB1521 /* MusepackFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MusepackFile.h; sourceTree = ""; }; + 8EB090960976955800DB1521 /* MusepackFile.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MusepackFile.m; sourceTree = ""; }; + 8EB090970976955800DB1521 /* ShnFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ShnFile.h; sourceTree = ""; }; + 8EB090980976955800DB1521 /* ShnFile.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ShnFile.m; sourceTree = ""; }; + 8EB090990976955800DB1521 /* SoundFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SoundFile.h; sourceTree = ""; }; + 8EB0909A0976955800DB1521 /* SoundFile.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SoundFile.mm; sourceTree = ""; }; + 8EB0909B0976955800DB1521 /* VorbisFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = VorbisFile.h; sourceTree = ""; }; + 8EB0909C0976955800DB1521 /* VorbisFile.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = VorbisFile.m; sourceTree = ""; }; + 8EB0909D0976955800DB1521 /* WaveFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WaveFile.h; sourceTree = ""; }; + 8EB0909E0976955800DB1521 /* WaveFile.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WaveFile.m; sourceTree = ""; }; + 8EB0909F0976955800DB1521 /* WavPackFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WavPackFile.h; sourceTree = ""; }; + 8EB090A00976955800DB1521 /* WavPackFile.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WavPackFile.m; sourceTree = ""; }; + 8EB090A10976955800DB1521 /* SOUNDTODO */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = SOUNDTODO; path = Sound/SOUNDTODO; sourceTree = ""; }; 8EC4BB750872E2FB00ACF986 /* ClickField.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ClickField.h; path = Custom/ClickField.h; sourceTree = ""; }; 8EC4BB760872E2FB00ACF986 /* ClickField.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = ClickField.m; path = Custom/ClickField.m; sourceTree = ""; }; 8EC4BB770872E2FB00ACF986 /* InfoView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = InfoView.h; path = Custom/InfoView.h; sourceTree = ""; }; @@ -266,11 +340,9 @@ 8EC4BB7B0872E2FB00ACF986 /* TrackingSlider.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = TrackingSlider.h; path = Custom/TrackingSlider.h; sourceTree = ""; }; 8EC4BB7C0872E2FB00ACF986 /* TrackingSlider.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = TrackingSlider.m; path = Custom/TrackingSlider.m; sourceTree = ""; }; 8EC4BCC10872EEB800ACF986 /* WavPack.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WavPack.framework; path = Libraries/WavPack/build/Deployment/WavPack.framework; sourceTree = ""; }; - 8EC4BCCE0872EEFC00ACF986 /* Vorbis.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Vorbis.framework; path = Libraries/Vorbis/build/Deployment/Vorbis.framework; sourceTree = ""; }; 8EC4BCD20872EF0C00ACF986 /* TagLib.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TagLib.framework; path = Libraries/TagLib/build/Deployment/TagLib.framework; sourceTree = ""; }; 8EC4BCD60872EF1600ACF986 /* SndFile.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SndFile.framework; path = Libraries/SndFile/build/Deployment/SndFile.framework; sourceTree = ""; }; 8EC4BCDA0872EF1F00ACF986 /* Shorten.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Shorten.framework; path = Libraries/Shorten/build/Deployment/Shorten.framework; sourceTree = ""; }; - 8EC4BCDE0872EF3100ACF986 /* Ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Ogg.framework; path = Libraries/Ogg/build/Deployment/Ogg.framework; sourceTree = ""; }; 8EC4BCE20872EF3A00ACF986 /* MPCDec.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MPCDec.framework; path = Libraries/MPCDec/build/Deployment/MPCDec.framework; sourceTree = ""; }; 8EC4BCE60872EF4400ACF986 /* MAC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MAC.framework; path = Libraries/MAC/build/Deployment/MAC.framework; sourceTree = ""; }; 8EC4BCEA0872EF4D00ACF986 /* FLAC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FLAC.framework; path = Libraries/FLAC/build/Deployment/FLAC.framework; sourceTree = ""; }; @@ -279,20 +351,9 @@ 8EDCBDCA0840617B00F5C7E3 /* Cog.scriptTerminology */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.scriptTerminology; path = Cog.scriptTerminology; sourceTree = ""; }; 8EDCBDCC0840618900F5C7E3 /* Cog.scriptSuite */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.scriptSuite; path = Cog.scriptSuite; sourceTree = ""; }; 8EE90D3808830662002238C8 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = ""; }; - 8EF6FA65082DA526006F7BE6 /* FlacFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FlacFile.h; sourceTree = ""; }; - 8EF6FA66082DA526006F7BE6 /* FlacFile.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = FlacFile.m; sourceTree = ""; }; - 8EF6FA67082DA526006F7BE6 /* MonkeysFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MonkeysFile.h; sourceTree = ""; }; - 8EF6FA68082DA526006F7BE6 /* MonkeysFile.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 30; path = MonkeysFile.m; sourceTree = ""; }; - 8EF6FA69082DA526006F7BE6 /* MPEGFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MPEGFile.h; sourceTree = ""; }; - 8EF6FA6A082DA526006F7BE6 /* MPEGFile.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 30; path = MPEGFile.m; sourceTree = ""; }; - 8EF6FA6B082DA526006F7BE6 /* MusepackFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MusepackFile.h; sourceTree = ""; }; - 8EF6FA6C082DA526006F7BE6 /* MusepackFile.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MusepackFile.m; sourceTree = ""; }; - 8EF6FA6D082DA526006F7BE6 /* SoundFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SoundFile.h; sourceTree = ""; }; - 8EF6FA6E082DA526006F7BE6 /* SoundFile.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 30; path = SoundFile.m; sourceTree = ""; }; - 8EF6FA6F082DA526006F7BE6 /* VorbisFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = VorbisFile.h; sourceTree = ""; }; - 8EF6FA70082DA526006F7BE6 /* VorbisFile.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = VorbisFile.m; sourceTree = ""; }; - 8EF6FA71082DA526006F7BE6 /* WaveFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WaveFile.h; sourceTree = ""; }; - 8EF6FA72082DA526006F7BE6 /* WaveFile.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WaveFile.m; sourceTree = ""; }; + 8EEBB7110977DF6800D5D854 /* PlaybackController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PlaybackController.h; sourceTree = ""; }; + 8EEBB7120977DF6800D5D854 /* PlaybackController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PlaybackController.m; sourceTree = ""; }; + 8EECB4500979945E005080E6 /* Status.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Status.h; sourceTree = ""; }; 8EF7BCEF0874708F0012C2F4 /* volume_high.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = volume_high.png; path = Icons/volume_high.png; sourceTree = ""; }; 8EF7BCF00874708F0012C2F4 /* volume_low.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = volume_low.png; path = Icons/volume_low.png; sourceTree = ""; }; /* End PBXFileReference section */ @@ -306,16 +367,16 @@ 8E81BC33083673ED0025A375 /* AudioToolbox.framework in Frameworks */, 8E81BC34083673ED0025A375 /* AudioUnit.framework in Frameworks */, 8EC4BCC20872EEB800ACF986 /* WavPack.framework in Frameworks */, - 8EC4BCCF0872EEFC00ACF986 /* Vorbis.framework in Frameworks */, 8EC4BCD30872EF0C00ACF986 /* TagLib.framework in Frameworks */, 8EC4BCD70872EF1600ACF986 /* SndFile.framework in Frameworks */, 8EC4BCDB0872EF1F00ACF986 /* Shorten.framework in Frameworks */, - 8EC4BCDF0872EF3100ACF986 /* Ogg.framework in Frameworks */, 8EC4BCE30872EF3A00ACF986 /* MPCDec.framework in Frameworks */, 8EC4BCE70872EF4400ACF986 /* MAC.framework in Frameworks */, 8EC4BCEB0872EF4D00ACF986 /* FLAC.framework in Frameworks */, 8EC4BCEF0872EF5600ACF986 /* FAAD2.framework in Frameworks */, 8EC4BCF30872EF6300ACF986 /* DecMPA.framework in Frameworks */, + 8E73EF760961084E00B8C998 /* Ogg.framework in Frameworks */, + 8E73EF780961086200B8C998 /* Vorbis.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -325,20 +386,17 @@ 080E96DDFE201D6D7F000001 /* Classes */ = { isa = PBXGroup; children = ( - 8E7D4F0A08A0708600EBB15A /* New */, + 8EB090700976952700DB1521 /* Utils */, 8E267D030837F7A6004ACBC5 /* Feedback */, 8E267D080837F7A6004ACBC5 /* Updates */, 8E47215C08318D12001F89FA /* Playlist */, - 8EF6FA64082DA525006F7BE6 /* SoundFile */, 8E6529F8083D93AF00A7AF1B /* Custom */, - 8E2871080836934A0013CE39 /* VirtualRingBuffer.h */, - 8E2871090836934A0013CE39 /* VirtualRingBuffer.m */, + 8EB09046097693D700DB1521 /* Sound */, 8E4721D108319294001F89FA /* AppController.h */, 8E4721D208319294001F89FA /* AppController.m */, - 8E4721D4083192C2001F89FA /* SoundController.h */, - 8E4721D5083192C2001F89FA /* SoundController.m */, - 8E45227A0832898A00F8BA7C /* Sound.h */, - 8E45227B0832898A00F8BA7C /* Sound.m */, + 8EEBB7110977DF6800D5D854 /* PlaybackController.h */, + 8EEBB7120977DF6800D5D854 /* PlaybackController.m */, + 8E7FA05508731B49005E8B5F /* TODO */, ); name = Classes; sourceTree = ""; @@ -346,16 +404,16 @@ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { isa = PBXGroup; children = ( + 8E73EF770961086200B8C998 /* Vorbis.framework */, + 8E73EF750961084E00B8C998 /* Ogg.framework */, 8EC4BCF20872EF6300ACF986 /* DecMPA.framework */, 8EC4BCEE0872EF5600ACF986 /* FAAD2.framework */, 8EC4BCEA0872EF4D00ACF986 /* FLAC.framework */, 8EC4BCE60872EF4400ACF986 /* MAC.framework */, 8EC4BCE20872EF3A00ACF986 /* MPCDec.framework */, - 8EC4BCDE0872EF3100ACF986 /* Ogg.framework */, 8EC4BCDA0872EF1F00ACF986 /* Shorten.framework */, 8EC4BCD60872EF1600ACF986 /* SndFile.framework */, 8EC4BCD20872EF0C00ACF986 /* TagLib.framework */, - 8EC4BCCE0872EEFC00ACF986 /* Vorbis.framework */, 8EC4BCC10872EEB800ACF986 /* WavPack.framework */, ); name = "Linked Frameworks"; @@ -399,8 +457,6 @@ children = ( 32CA4F630368D1EE00C91783 /* Cog_Prefix.pch */, 29B97316FDCFA39411CA2CEA /* main.m */, - 8E0EBF0C084BA776003A6E64 /* DBLog.h */, - 8E0EBF0D084BA776003A6E64 /* DBLog.c */, ); name = "Other Sources"; sourceTree = ""; @@ -418,7 +474,6 @@ 8E10DBEF084BBCF00013815C /* Credits.html */, 8E5A90B0084CBC2F00AE6D62 /* Changelog */, 8E8F3F9B0855499500BCF803 /* README */, - 8E7FA05508731B49005E8B5F /* TODO */, 8E7FA05908731B6F005E8B5F /* COMPILE */, ); name = Resources; @@ -466,6 +521,8 @@ 8E47218A08318D7A001F89FA /* PlaylistEntry.m */, 8E47218B08318D7A001F89FA /* PlaylistView.h */, 8E47218C08318D7A001F89FA /* PlaylistView.m */, + 8E888D5609795247007E984F /* Shuffle.h */, + 8E888D5709795247007E984F /* Shuffle.m */, ); name = Playlist; sourceTree = ""; @@ -485,25 +542,6 @@ name = Custom; sourceTree = ""; }; - 8E7D4F0A08A0708600EBB15A /* New */ = { - isa = PBXGroup; - children = ( - 8E7D4F1808A070D600EBB15A /* Converter.h */, - 8E7D4F1908A070D600EBB15A /* Converter.m */, - 8E7D4F0B08A0709C00EBB15A /* OutputCoreAudio.h */, - 8E7D4F0C08A0709C00EBB15A /* OutputCoreAudio.m */, - 8E7D4F0F08A070AC00EBB15A /* OutputController.h */, - 8E7D4F1008A070AC00EBB15A /* OutputController.m */, - 8E7D4F1308A070BB00EBB15A /* InputController.h */, - 8E7D4F1408A070BB00EBB15A /* InputController.m */, - 8E7D4F5A08A0734300EBB15A /* Semaphore.h */, - 8E7D4F5B08A0734300EBB15A /* Semaphore.m */, - 8E2C5C2D08A67867008DA854 /* Controller.h */, - 8E2C5C2E08A67867008DA854 /* Controller.m */, - ); - name = New; - sourceTree = ""; - }; 8EAFD26D08465E4500107BA5 /* Icons */ = { isa = PBXGroup; children = ( @@ -535,31 +573,77 @@ name = Icons; sourceTree = ""; }; - 8EF6FA64082DA525006F7BE6 /* SoundFile */ = { + 8EB09046097693D700DB1521 /* Sound */ = { isa = PBXGroup; children = ( - 8E14E479084CF1A200246BCC /* AACFile.h */, - 8E14E47A084CF1A200246BCC /* AACFile.m */, - 8EF6FA65082DA526006F7BE6 /* FlacFile.h */, - 8EF6FA66082DA526006F7BE6 /* FlacFile.m */, - 8EF6FA67082DA526006F7BE6 /* MonkeysFile.h */, - 8EF6FA68082DA526006F7BE6 /* MonkeysFile.m */, - 8EF6FA69082DA526006F7BE6 /* MPEGFile.h */, - 8EF6FA6A082DA526006F7BE6 /* MPEGFile.m */, - 8EF6FA6B082DA526006F7BE6 /* MusepackFile.h */, - 8EF6FA6C082DA526006F7BE6 /* MusepackFile.m */, - 8EF6FA6F082DA526006F7BE6 /* VorbisFile.h */, - 8EF6FA70082DA526006F7BE6 /* VorbisFile.m */, - 8EF6FA71082DA526006F7BE6 /* WaveFile.h */, - 8EF6FA72082DA526006F7BE6 /* WaveFile.m */, - 8E8BAE5108548BD500E9F14D /* WavPackFile.h */, - 8E8BAE5208548BD500E9F14D /* WavPackFile.m */, - 8E8BAE5508548BE800E9F14D /* ShnFile.h */, - 8E8BAE5608548BE800E9F14D /* ShnFile.m */, - 8EF6FA6D082DA526006F7BE6 /* SoundFile.h */, - 8EF6FA6E082DA526006F7BE6 /* SoundFile.m */, + 8EB090CE0976957700DB1521 /* Chain */, + 8EB0908C0976955800DB1521 /* SoundFile */, + 8EB090800976955800DB1521 /* ConverterNode.h */, + 8EB090810976955800DB1521 /* ConverterNode.m */, + 8EB090820976955800DB1521 /* InputNode.h */, + 8EB090830976955800DB1521 /* InputNode.m */, + 8EB090880976955800DB1521 /* OutputNode.h */, + 8EB090890976955800DB1521 /* OutputNode.m */, + 8EB090860976955800DB1521 /* OutputCoreAudio.h */, + 8EB090870976955800DB1521 /* OutputCoreAudio.m */, + 8EB0908A0976955800DB1521 /* SoundController.h */, + 8EB0908B0976955800DB1521 /* SoundController.m */, + 8EB090A10976955800DB1521 /* SOUNDTODO */, ); - path = SoundFile; + name = Sound; + sourceTree = ""; + }; + 8EB090700976952700DB1521 /* Utils */ = { + isa = PBXGroup; + children = ( + 8EB090720976953C00DB1521 /* DBLog.m */, + 8EB090730976953C00DB1521 /* DBLog.h */, + 8EB090740976953C00DB1521 /* Semaphore.h */, + 8EB090750976953C00DB1521 /* Semaphore.m */, + 8EB090760976953C00DB1521 /* VirtualRingBuffer.h */, + 8EB090770976953C00DB1521 /* VirtualRingBuffer.m */, + 8EECB4500979945E005080E6 /* Status.h */, + ); + name = Utils; + sourceTree = ""; + }; + 8EB0908C0976955800DB1521 /* SoundFile */ = { + isa = PBXGroup; + children = ( + 8EB0908D0976955800DB1521 /* AACFile.h */, + 8EB0908E0976955800DB1521 /* AACFile.m */, + 8EB0908F0976955800DB1521 /* FlacFile.h */, + 8EB090900976955800DB1521 /* FlacFile.m */, + 8EB090910976955800DB1521 /* MonkeysFile.h */, + 8EB090920976955800DB1521 /* MonkeysFile.mm */, + 8EB090930976955800DB1521 /* MPEGFile.h */, + 8EB090940976955800DB1521 /* MPEGFile.mm */, + 8EB090950976955800DB1521 /* MusepackFile.h */, + 8EB090960976955800DB1521 /* MusepackFile.m */, + 8EB090970976955800DB1521 /* ShnFile.h */, + 8EB090980976955800DB1521 /* ShnFile.m */, + 8EB090990976955800DB1521 /* SoundFile.h */, + 8EB0909A0976955800DB1521 /* SoundFile.mm */, + 8EB0909B0976955800DB1521 /* VorbisFile.h */, + 8EB0909C0976955800DB1521 /* VorbisFile.m */, + 8EB0909D0976955800DB1521 /* WaveFile.h */, + 8EB0909E0976955800DB1521 /* WaveFile.m */, + 8EB0909F0976955800DB1521 /* WavPackFile.h */, + 8EB090A00976955800DB1521 /* WavPackFile.m */, + ); + name = SoundFile; + path = Sound/SoundFile; + sourceTree = ""; + }; + 8EB090CE0976957700DB1521 /* Chain */ = { + isa = PBXGroup; + children = ( + 8EB0907E0976955800DB1521 /* BufferChain.h */, + 8EB0907F0976955800DB1521 /* BufferChain.m */, + 8EB090840976955800DB1521 /* Node.h */, + 8EB090850976955800DB1521 /* Node.m */, + ); + name = Chain; sourceTree = ""; }; /* End PBXGroup section */ @@ -678,6 +762,7 @@ 8EF7BCF10874708F0012C2F4 /* volume_high.png in Resources */, 8EF7BCF20874708F0012C2F4 /* volume_low.png in Resources */, 8EE90D3908830662002238C8 /* Localizable.strings in Resources */, + 8EB090C90976955800DB1521 /* SOUNDTODO in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -689,33 +774,41 @@ buildActionMask = 2147483647; files = ( 8D11072D0486CEB800E47090 /* main.m in Sources */, - 8EF6FA73082DA526006F7BE6 /* FlacFile.m in Sources */, - 8EF6FA74082DA526006F7BE6 /* MonkeysFile.m in Sources */, - 8EF6FA75082DA526006F7BE6 /* MPEGFile.m in Sources */, - 8EF6FA76082DA526006F7BE6 /* MusepackFile.m in Sources */, - 8EF6FA77082DA526006F7BE6 /* SoundFile.m in Sources */, - 8EF6FA78082DA526006F7BE6 /* VorbisFile.m in Sources */, - 8EF6FA79082DA526006F7BE6 /* WaveFile.m in Sources */, 8E47218D08318D7A001F89FA /* DNDArrayController.m in Sources */, 8E47218E08318D7A001F89FA /* PlaylistController.m in Sources */, 8E47218F08318D7A001F89FA /* PlaylistEntry.m in Sources */, 8E47219008318D7A001F89FA /* PlaylistView.m in Sources */, 8E4721D308319294001F89FA /* AppController.m in Sources */, - 8E4721D6083192C2001F89FA /* SoundController.m in Sources */, - 8E45227C0832898A00F8BA7C /* Sound.m in Sources */, - 8E28710B0836934A0013CE39 /* VirtualRingBuffer.m in Sources */, 8E267D0E0837F7A6004ACBC5 /* FeedbackController.m in Sources */, 8E267D100837F7A6004ACBC5 /* FeedbackSocket.m in Sources */, 8E267D120837F7A6004ACBC5 /* MacPADSocket.m in Sources */, 8E267D140837F7A6004ACBC5 /* UpdateController.m in Sources */, - 8E0EBF0F084BA776003A6E64 /* DBLog.c in Sources */, - 8E14E47C084CF1A200246BCC /* AACFile.m in Sources */, - 8E8BAE5408548BD500E9F14D /* WavPackFile.m in Sources */, - 8E8BAE5808548BE800E9F14D /* ShnFile.m in Sources */, 8EC4BB7E0872E2FB00ACF986 /* ClickField.m in Sources */, 8EC4BB800872E2FB00ACF986 /* InfoView.m in Sources */, 8EC4BB820872E2FB00ACF986 /* TrackingCell.m in Sources */, 8EC4BB840872E2FB00ACF986 /* TrackingSlider.m in Sources */, + 8EB090780976953C00DB1521 /* DBLog.m in Sources */, + 8EB0907B0976953C00DB1521 /* Semaphore.m in Sources */, + 8EB0907D0976953C00DB1521 /* VirtualRingBuffer.m in Sources */, + 8EB090A80976955800DB1521 /* BufferChain.m in Sources */, + 8EB090AA0976955800DB1521 /* ConverterNode.m in Sources */, + 8EB090AC0976955800DB1521 /* InputNode.m in Sources */, + 8EB090AE0976955800DB1521 /* Node.m in Sources */, + 8EB090B00976955800DB1521 /* OutputCoreAudio.m in Sources */, + 8EB090B20976955800DB1521 /* OutputNode.m in Sources */, + 8EB090B40976955800DB1521 /* SoundController.m in Sources */, + 8EB090B60976955800DB1521 /* AACFile.m in Sources */, + 8EB090B80976955800DB1521 /* FlacFile.m in Sources */, + 8EB090BA0976955800DB1521 /* MonkeysFile.mm in Sources */, + 8EB090BC0976955800DB1521 /* MPEGFile.mm in Sources */, + 8EB090BE0976955800DB1521 /* MusepackFile.m in Sources */, + 8EB090C00976955800DB1521 /* ShnFile.m in Sources */, + 8EB090C20976955800DB1521 /* SoundFile.mm in Sources */, + 8EB090C40976955800DB1521 /* VorbisFile.m in Sources */, + 8EB090C60976955800DB1521 /* WaveFile.m in Sources */, + 8EB090C80976955800DB1521 /* WavPackFile.m in Sources */, + 8EEBB7140977DF6800D5D854 /* PlaybackController.m in Sources */, + 8E888D5909795247007E984F /* Shuffle.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -768,6 +861,8 @@ "$(SRCROOT)/Libraries/WavPack/build/Deployment", "$(SRCROOT)/../Cog/Libraries/FLAC/build/Deployment", "$(SRCROOT)/Libraries/Vorbis/build/Deployment", + "$(SRCROOT)/Libraries/Vorbis/build/Release", + "$(SRCROOT)/Libraries/Ogg/build/Release", ); GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; @@ -810,6 +905,8 @@ "$(SRCROOT)/Libraries/FLAC/build/Deployment", "$(SRCROOT)/Libraries/FAAD2/build/Deployment", "$(SRCROOT)/Libraries/DecMPA/build/Deployment", + "$(SRCROOT)/Libraries/Vorbis/build/Release", + "$(SRCROOT)/Libraries/Ogg/build/Release", ); GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; @@ -863,6 +960,8 @@ "$(SRCROOT)/Libraries/MAC/build/Development", "$(SRCROOT)/../Cog/Libraries/FLAC/build/Deployment", "$(SRCROOT)/Libraries/Vorbis/build/Deployment", + "$(SRCROOT)/Libraries/Vorbis/build/Release", + "$(SRCROOT)/Libraries/Ogg/build/Release", ); GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 3; diff --git a/English.lproj/MainMenu.nib/classes.nib b/English.lproj/MainMenu.nib/classes.nib index 6ba06bcda..c2d2fe599 100644 --- a/English.lproj/MainMenu.nib/classes.nib +++ b/English.lproj/MainMenu.nib/classes.nib @@ -54,6 +54,33 @@ {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, {CLASS = InfoController; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, {CLASS = InfoView; LANGUAGE = ObjC; SUPERCLASS = NSView; }, + { + ACTIONS = { + changeVolume = id; + next = id; + pause = id; + pauseResume = id; + play = id; + playPauseResume = id; + prev = id; + resume = id; + seek = id; + stop = id; + toggleShowTimeRemaining = id; + }; + CLASS = PlaybackController; + LANGUAGE = ObjC; + OUTLETS = { + bitrateField = NSTextField; + lengthField = NSTextField; + playButton = NSButton; + playlistController = PlaylistController; + playlistView = PlaylistView; + positionSlider = TrackingSlider; + timeField = NSTextField; + }; + SUPERCLASS = NSObject; + }, { ACTIONS = {takeRepeatFromObject = id; takeShuffleFromObject = id; }; CLASS = PlaylistController; @@ -64,7 +91,10 @@ { CLASS = PlaylistView; LANGUAGE = ObjC; - OUTLETS = {playlistController = PlaylistController; soundController = SoundController; }; + OUTLETS = { + playbackController = PlaybackController; + playlistController = PlaylistController; + }; SUPERCLASS = NSTableView; }, { diff --git a/English.lproj/MainMenu.nib/info.nib b/English.lproj/MainMenu.nib/info.nib index 251b1913d..f4e82fabc 100644 --- a/English.lproj/MainMenu.nib/info.nib +++ b/English.lproj/MainMenu.nib/info.nib @@ -3,18 +3,18 @@ IBDocumentLocation - 95 143 356 240 0 0 1280 938 + 48 89 617 240 0 0 1024 746 IBEditorPositions 29 - 335 861 346 44 0 0 1280 938 + 243 676 346 44 0 0 1024 746 463 - 464 511 352 268 0 0 1280 938 + 336 385 352 268 0 0 1024 746 513 475 157 109 106 0 0 1024 746 IBFramework Version - 439.0 + 443.0 IBLockedObjects 484 @@ -33,6 +33,6 @@ 29 IBSystem Version - 8C46 + 8G32 diff --git a/English.lproj/MainMenu.nib/keyedobjects.nib b/English.lproj/MainMenu.nib/keyedobjects.nib index 60e64e46d..64a31c811 100644 Binary files a/English.lproj/MainMenu.nib/keyedobjects.nib and b/English.lproj/MainMenu.nib/keyedobjects.nib differ diff --git a/Playlist/PlaylistController.h b/Playlist/PlaylistController.h index bb68b48d2..0bd31c1f9 100644 --- a/Playlist/PlaylistController.h +++ b/Playlist/PlaylistController.h @@ -17,25 +17,24 @@ NSString *playlistFilename; NSMutableArray *shuffleList; - NSMutableArray *history; PlaylistEntry *currentEntry; - PlaylistEntry *nextEntry; - PlaylistEntry *prevEntry; + int shuffleIndex; BOOL shuffle; BOOL repeat; } //All these return the number of things actually added -//PRIVATE ONES -/*- (int)addPath:(NSString *)path; +//Private Methods +- (int)addPath:(NSString *)path; - (int)insertPath:(NSString *)path atIndex:(int)index; - (int)insertFile:(NSString *)filename atIndex:(int)index; - (int)addFile:(NSString *)filename; -*/ -//ONLY PUBLIC ONES +- (void)updateIndexesFromRow:(int) row; + +//PUBLIC METHODS - (int)addPaths:(NSArray *)paths sort:(BOOL)sort; - (int)insertPaths:(NSArray *)paths atIndex:(int)index sort:(BOOL)sort; @@ -50,18 +49,16 @@ - (IBAction)takeRepeatFromObject:(id)sender; //FUN PLAYLIST MANAGEMENT STUFF! -- (void)setCurrentEntry:(PlaylistEntry *)pe addToHistory:(BOOL)h; - (id)currentEntry; -- (void)setCurrentEntry:(id)pe; - -- (void)reset; - -- (void)generateShuffleList; +- (void)setCurrentEntry:(PlaylistEntry *)pe; - (void)next; - (void)prev; -- (PlaylistEntry *)prevEntry; -- (PlaylistEntry *)nextEntry; + +- (PlaylistEntry *)entryAtOffset:(int)offset; +- (void)addShuffledListToBack; +- (void)addShuffledListToFront; +- (void)resetShuffleList; //load/save playlist - (void)loadPlaylist:(NSString *)filename; @@ -71,13 +68,4 @@ - (void)setPlaylistFilename:(NSString *)pf; - (NSArray *)acceptablePlaylistTypes; -//private playlist management stuff..ssshhhh -- (void)getNextEntry; -- (void)getPrevEntry; -- (void)setPrevEntry:(PlaylistEntry *)pe; -- (void)setNextEntry:(PlaylistEntry *)pe; - -//private -- (void)updateIndexesFromRow:(int) row; - @end diff --git a/Playlist/PlaylistController.m b/Playlist/PlaylistController.m index 14bdfdcab..abe5121c3 100644 --- a/Playlist/PlaylistController.m +++ b/Playlist/PlaylistController.m @@ -8,10 +8,11 @@ #import "PlaylistController.h" #import "PlaylistEntry.h" +#import "Shuffle.h" @implementation PlaylistController -#define HISTORY_SIZE 100 +#define SHUFFLE_HISTORY_SIZE 100 - (id)initWithCoder:(NSCoder *)decoder { @@ -21,8 +22,8 @@ { acceptableFileTypes = [[NSArray alloc] initWithObjects:@"shn",@"wv",@"ogg",@"wav",@"mpc",@"flac",@"ape",@"mp3",@"aiff",@"aif",@"aac",nil]; acceptablePlaylistTypes = [[NSArray alloc] initWithObjects:@"playlist",nil]; - history = [[NSMutableArray alloc] init]; shuffleList = [[NSMutableArray alloc] init]; + shuffleIndex = 0; // DBLog(@"DAH BUTTER CHORNAR: %@", history); } @@ -46,7 +47,8 @@ [pe readInfo]; [self insertObject:pe atArrangedObjectIndex:index]; - + [pe release]; + return 1; } @@ -128,7 +130,7 @@ } if (shuffle == YES) - [self generateShuffleList]; + [self resetShuffleList]; [self setSelectionIndex:index]; @@ -193,7 +195,7 @@ [self updateIndexesFromRow:row]; if (shuffle == YES) - [self generateShuffleList]; + [self resetShuffleList]; return YES; } @@ -236,9 +238,7 @@ [self updateIndexesFromRow:[indexes firstIndex]]; if (shuffle == YES) - [self generateShuffleList]; - - [history removeObjectsInArray:a]; + [self resetShuffleList]; [a release]; } @@ -258,139 +258,116 @@ [self setRepeat: [sender state]]; } +- (PlaylistEntry *)entryAtOffset:(int)offset +{ + NSLog(@"SHUFFLE: %i", offset); + if (shuffle == YES) + { + int i = shuffleIndex; + + i += offset; + + while (i < 0) + { + if (repeat == YES) + { + [self addShuffledListToFront]; + //change i appropriately + i += [[self arrangedObjects] count]; + } + else + { + return nil; + } + } + while (i >= [shuffleList count]) + { + if (repeat == YES) + { + [self addShuffledListToBack]; + } + else + { + return nil; + } + } + + return [shuffleList objectAtIndex:i]; + } + else + { + int i; + i = [currentEntry index]; + i += (offset-1); + + if (i < 0) + { + if (repeat == YES) + i += [[self arrangedObjects] count]; + else + return nil; + } + else if (i >= [[self arrangedObjects] count]) + { + if (repeat == YES) + i -= [[self arrangedObjects] count]; + else + return nil; + } + + return [[self arrangedObjects] objectAtIndex:i]; + } +} + - (void)next { PlaylistEntry *pe; - pe = [self nextEntry]; + pe = [self entryAtOffset:1]; if (pe == nil) return; - if (shuffle == YES) - { - [shuffleList removeObject:pe]; - } - [self setCurrentEntry:pe addToHistory:YES]; - [self setNextEntry:nil]; + [self setCurrentEntry:pe]; } - (void)prev { PlaylistEntry *pe; - pe = [self prevEntry]; + pe = [self entryAtOffset:-1]; if (pe == nil) return; - - if (pe != [history objectAtIndex:1]) - DBLog(@"History inconcistency"); - [history removeObjectAtIndex:0]; - [self setCurrentEntry:pe addToHistory:NO]; - [self setPrevEntry:nil]; - - //If one goes back, and goes forward, one shall receive unto thee a new song if (shuffle == YES) - [self generateShuffleList]; -} - -- (PlaylistEntry *)prevEntry -{ - if (prevEntry == nil) - [self getPrevEntry]; + shuffleIndex--; - return prevEntry; + [self setCurrentEntry:pe]; } -- (PlaylistEntry *)nextEntry +- (void)addShuffledListToBack { - if (nextEntry == nil) - [self getNextEntry]; + NSArray *newList = [Shuffle shuffleList:[self arrangedObjects]]; + NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [newList count])]; - return nextEntry; + [self insertObjects:newList atArrangedObjectIndexes:indexSet]; + + [newList release]; } -- (void)reset +- (void)addShuffledListToFront { - nextEntry = nil; - prevEntry = nil; - [self generateShuffleList]; + NSArray *newList = [Shuffle shuffleList:[self arrangedObjects]]; + NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange([[self arrangedObjects] count], [newList count])]; + + [self insertObjects:newList atArrangedObjectIndexes:indexSet]; + + [newList release]; } -- (void)generateShuffleList +- (void)resetShuffleList { -// [shuffleHistory removeAllObjects]; -// DBLog(@"Generated Shuffle List"); [shuffleList removeAllObjects]; - [shuffleList addObjectsFromArray:[self arrangedObjects]]; - if (currentEntry != nil) - [shuffleList removeObject:currentEntry]; -} - -- (void)setCurrentEntry:(PlaylistEntry *)pe addToHistory:(BOOL)h -{ - [self setCurrentEntry:pe]; - - if (h == YES) - { - [history insertObject:pe atIndex:0]; - if ([history count] > HISTORY_SIZE) - [history removeObjectAtIndex:([history count] - 1)]; - - } -} - -- (void)getNextEntry -{ - PlaylistEntry *pe; - - if (nextEntry != nil) - return; - - if (shuffle == YES) - { -// DBLog(@"SHUFFLE IS TEH ON: %i", [shuffleList count]); - if ([shuffleList count] == 0) //out of tuuuunes - { - if (repeat == YES) - { - [self generateShuffleList]; - } - else - { - [self setNextEntry:nil]; - return; - } - } - int r; - - r = random() % [shuffleList count]; -// DBLog(@"PICKING SONG %i FROM SHUFFLE LIST", r); - pe = [shuffleList objectAtIndex:r]; - - [self setNextEntry:pe]; - } - else - { - int i = ([currentEntry index] - 1) + 1; - - if (i >= [[self arrangedObjects] count]) //out of tuuuunes - { - if (repeat == YES) - { - i = 0; - } - else - { - [self setNextEntry:nil]; - return; - } - } - - pe = [[self arrangedObjects] objectAtIndex:i]; - - [self setNextEntry:pe]; - } + shuffleIndex = 0; } - (id)currentEntry @@ -412,51 +389,11 @@ currentEntry = pe; } -- (void)getPrevEntry -{ - PlaylistEntry *pe; - -// DBLog(@"GETTING PREVIOUS ENTRY"); - - if (prevEntry != nil) - return; - //NOTE: 1 contains the current entry - if ([history count] == 1) //Cant go back any further - { -// DBLog(@"HISTORY IS TEH EMPTY"); - [self setPrevEntry:nil]; - return; - } - else - { -// DBLog(@"IN TEH HISTORY"); - - pe = [history objectAtIndex:1]; - [self setPrevEntry:pe]; - - return; - } -} - -- (void)setPrevEntry:(PlaylistEntry *)pe -{ - [pe retain]; - [prevEntry release]; - prevEntry = pe; -} - -- (void)setNextEntry:(PlaylistEntry *)pe -{ - [pe retain]; - [nextEntry release]; - nextEntry = pe; -} - - (void)setShuffle:(BOOL)s { shuffle = s; if (shuffle == YES) - [self generateShuffleList]; + [self resetShuffleList]; } - (BOOL)shuffle { diff --git a/Playlist/PlaylistView.h b/Playlist/PlaylistView.h index a505a749b..e4149967b 100644 --- a/Playlist/PlaylistView.h +++ b/Playlist/PlaylistView.h @@ -8,12 +8,12 @@ #import -#import "SoundController.h" +#import "PlaybackController.h" #import "PlaylistController.h" @interface PlaylistView : NSTableView { - IBOutlet SoundController *soundController; + IBOutlet PlaybackController *playbackController; IBOutlet PlaylistController *playlistController; } diff --git a/Playlist/PlaylistView.m b/Playlist/PlaylistView.m index 9eb055872..1bb6d5b27 100644 --- a/Playlist/PlaylistView.m +++ b/Playlist/PlaylistView.m @@ -7,7 +7,7 @@ // #import "PlaylistView.h" -#import "SoundController.h" +#import "PlaybackController.h" #import "PlaylistController.h" @implementation PlaylistView @@ -31,7 +31,7 @@ // DBLog(@"MOUSE DOWN"); if ([e type] == NSLeftMouseDown && [e clickCount] == 2) { - [soundController play:self]; + [playbackController play:self]; } else { @@ -57,11 +57,11 @@ } else if (c == ' ') { - [soundController pauseResume:self]; + [playbackController playPauseResume:self]; } else if (c == NSEnterCharacter || c == NSCarriageReturnCharacter) { - [soundController play:self]; + [playbackController play:self]; } else {