Fixed crashing playlist bug

CQTexperiment
vspader 2005-06-20 18:09:19 +00:00
parent 4adcc751a6
commit deb5d66f6d
10 changed files with 575 additions and 510 deletions

View File

@ -254,21 +254,19 @@
<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
<array> <array>
<string>29B97314FDCFA39411CA2CEA</string> <string>29B97314FDCFA39411CA2CEA</string>
<string>080E96DDFE201D6D7F000001</string>
<string>8EF6FA64082DA525006F7BE6</string>
<string>29B97317FDCFA39411CA2CEA</string> <string>29B97317FDCFA39411CA2CEA</string>
<string>1C37FABC05509CD000000102</string> <string>1C37FABC05509CD000000102</string>
</array> </array>
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array> <array>
<array> <array>
<integer>36</integer> <integer>7</integer>
<integer>1</integer> <integer>3</integer>
<integer>0</integer> <integer>0</integer>
</array> </array>
</array> </array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
<string>{{0, 438}, {186, 565}}</string> <string>{{0, 0}, {186, 565}}</string>
</dict> </dict>
<key>PBXTopSmartGroupGIDs</key> <key>PBXTopSmartGroupGIDs</key>
<array/> <array/>
@ -305,7 +303,7 @@
<key>PBXProjectModuleGUID</key> <key>PBXProjectModuleGUID</key>
<string>1CE0B20306471E060097A5F4</string> <string>1CE0B20306471E060097A5F4</string>
<key>PBXProjectModuleLabel</key> <key>PBXProjectModuleLabel</key>
<string>Sound.m</string> <string>Info.plist</string>
<key>PBXSplitModuleInNavigatorKey</key> <key>PBXSplitModuleInNavigatorKey</key>
<dict> <dict>
<key>Split0</key> <key>Split0</key>
@ -313,11 +311,11 @@
<key>PBXProjectModuleGUID</key> <key>PBXProjectModuleGUID</key>
<string>1CE0B20406471E060097A5F4</string> <string>1CE0B20406471E060097A5F4</string>
<key>PBXProjectModuleLabel</key> <key>PBXProjectModuleLabel</key>
<string>Sound.m</string> <string>Info.plist</string>
<key>_historyCapacity</key> <key>_historyCapacity</key>
<integer>0</integer> <integer>0</integer>
<key>bookmark</key> <key>bookmark</key>
<string>8E6535B60856432F00E468D9</string> <string>8EE558090866A24B009E7F50</string>
<key>history</key> <key>history</key>
<array> <array>
<string>8EF6FACD082DAA2B006F7BE6</string> <string>8EF6FACD082DAA2B006F7BE6</string>
@ -335,13 +333,8 @@
<string>8ED833CD08457E6B0033CDBD</string> <string>8ED833CD08457E6B0033CDBD</string>
<string>8E94D9D2084BEA32007F0AEB</string> <string>8E94D9D2084BEA32007F0AEB</string>
<string>8E94D9D3084BEA32007F0AEB</string> <string>8E94D9D3084BEA32007F0AEB</string>
<string>8E14E4A5084D089100246BCC</string>
<string>8EC156F5084FEB8900BB24E8</string>
<string>8E2752B70850A92E001618CD</string>
<string>8EE2A5B808511A1800367489</string>
<string>8E72BC640851408F00E34F1D</string> <string>8E72BC640851408F00E34F1D</string>
<string>8EFC6D18085376D100C67D06</string> <string>8EFC6D18085376D100C67D06</string>
<string>8EFC6DE7085380B800C67D06</string>
<string>8EFC6DE8085380B800C67D06</string> <string>8EFC6DE8085380B800C67D06</string>
<string>8EFC6DF0085380B800C67D06</string> <string>8EFC6DF0085380B800C67D06</string>
<string>8EFC6E29085386CE00C67D06</string> <string>8EFC6E29085386CE00C67D06</string>
@ -360,11 +353,7 @@
<string>8EB30E1F0854C36A009EA87F</string> <string>8EB30E1F0854C36A009EA87F</string>
<string>8E4D66E90854CD2C00816BEE</string> <string>8E4D66E90854CD2C00816BEE</string>
<string>8E4D66EA0854CD2C00816BEE</string> <string>8E4D66EA0854CD2C00816BEE</string>
<string>8E4D67210854D2E700816BEE</string>
<string>8E4D67D40854E7B100816BEE</string> <string>8E4D67D40854E7B100816BEE</string>
<string>8E8F3F20085543D700BCF803</string>
<string>8E8F3F21085543D700BCF803</string>
<string>8E8F3F22085543D700BCF803</string>
<string>8E8F3F59085546B300BCF803</string> <string>8E8F3F59085546B300BCF803</string>
<string>8E8F3F780855483300BCF803</string> <string>8E8F3F780855483300BCF803</string>
<string>8E8F3FA408554B8000BCF803</string> <string>8E8F3FA408554B8000BCF803</string>
@ -372,7 +361,6 @@
<string>8E287CDC0855D60A00562C66</string> <string>8E287CDC0855D60A00562C66</string>
<string>8E287CDD0855D60A00562C66</string> <string>8E287CDD0855D60A00562C66</string>
<string>8E287E7F0855F60E00562C66</string> <string>8E287E7F0855F60E00562C66</string>
<string>8E287E830855F60E00562C66</string>
<string>8EAB7544085621B10021C2BF</string> <string>8EAB7544085621B10021C2BF</string>
<string>8EAB7545085621B10021C2BF</string> <string>8EAB7545085621B10021C2BF</string>
<string>8EAB7549085621B10021C2BF</string> <string>8EAB7549085621B10021C2BF</string>
@ -383,15 +371,29 @@
<string>8EABE7C308562FF3004DF882</string> <string>8EABE7C308562FF3004DF882</string>
<string>8EABE7C408562FF3004DF882</string> <string>8EABE7C408562FF3004DF882</string>
<string>8EABE7C508562FF3004DF882</string> <string>8EABE7C508562FF3004DF882</string>
<string>8EABE7C608562FF3004DF882</string>
<string>8E5CC5020856316C00A299E0</string> <string>8E5CC5020856316C00A299E0</string>
<string>8E98E5D308563D1B0078CAA1</string> <string>8E98E5D308563D1B0078CAA1</string>
<string>8E65357F08563F6A00E468D9</string> <string>8E65357F08563F6A00E468D9</string>
<string>8E65358008563F6A00E468D9</string> <string>8E65358008563F6A00E468D9</string>
<string>8E65358108563F6A00E468D9</string>
<string>8E65359D0856401D00E468D9</string>
<string>8E65359E0856401D00E468D9</string> <string>8E65359E0856401D00E468D9</string>
<string>8E65357E08563F6A00E468D9</string> <string>8E5F6DB1085781B900A111D9</string>
<string>8E5F6DB2085781B900A111D9</string>
<string>8E63F6C808587FD400C79B72</string>
<string>8E63F6C908587FD400C79B72</string>
<string>8E63F6CA08587FD400C79B72</string>
<string>8E8C7BFB085E9CD50086DAC7</string>
<string>8E8C7C14085E9DA50086DAC7</string>
<string>8E8C7C7F085EA5E30086DAC7</string>
<string>8E8C7C81085EA5E30086DAC7</string>
<string>8E8C7C83085EA5E30086DAC7</string>
<string>8E8C7C85085EA5E30086DAC7</string>
<string>8E8C7D35085EAD460086DAC7</string>
<string>8E8C7D36085EAD460086DAC7</string>
<string>8E657299086085E400A0DAC4</string>
<string>8E65729A086085E400A0DAC4</string>
<string>8E94AFB2086639760038E585</string>
<string>8EE558070866A24B009E7F50</string>
<string>8E657298086085E400A0DAC4</string>
</array> </array>
<key>prevStack</key> <key>prevStack</key>
<array> <array>
@ -448,10 +450,8 @@
<string>8E0EBF59084BAA56003A6E64</string> <string>8E0EBF59084BAA56003A6E64</string>
<string>8E10DC08084BBE490013815C</string> <string>8E10DC08084BBE490013815C</string>
<string>8E5A90BB084CC25900AE6D62</string> <string>8E5A90BB084CC25900AE6D62</string>
<string>8E14E4B3084D089100246BCC</string>
<string>8E14E4B4084D089100246BCC</string> <string>8E14E4B4084D089100246BCC</string>
<string>8E14E4B5084D089100246BCC</string> <string>8E14E4B5084D089100246BCC</string>
<string>8EC18EBD084E57D500AE0BA9</string>
<string>8EC156F9084FEB8900BB24E8</string> <string>8EC156F9084FEB8900BB24E8</string>
<string>8E8BAEB208548C9600E9F14D</string> <string>8E8BAEB208548C9600E9F14D</string>
<string>8E8BAEB308548C9600E9F14D</string> <string>8E8BAEB308548C9600E9F14D</string>
@ -467,13 +467,13 @@
<string>8EAB755D085621B10021C2BF</string> <string>8EAB755D085621B10021C2BF</string>
<string>8EABE78808562281004DF882</string> <string>8EABE78808562281004DF882</string>
<string>8EABE7CA08562FF3004DF882</string> <string>8EABE7CA08562FF3004DF882</string>
<string>8E65358208563F6A00E468D9</string> <string>8E63F6CB08587FD400C79B72</string>
<string>8E65358308563F6A00E468D9</string> <string>8E8C7C8C085EA5E30086DAC7</string>
<string>8E65358408563F6A00E468D9</string> <string>8E8C7C8E085EA5E30086DAC7</string>
<string>8E65358508563F6A00E468D9</string> <string>8E8C7C90085EA5E30086DAC7</string>
<string>8E65358608563F6A00E468D9</string> <string>8E8C7C92085EA5E30086DAC7</string>
<string>8E65359F0856401D00E468D9</string> <string>8E8C7C98085EA5E30086DAC7</string>
<string>8E6535A00856401D00E468D9</string> <string>8EE558080866A24B009E7F50</string>
</array> </array>
</dict> </dict>
<key>SplitCount</key> <key>SplitCount</key>
@ -485,14 +485,14 @@
<key>GeometryConfiguration</key> <key>GeometryConfiguration</key>
<dict> <dict>
<key>Frame</key> <key>Frame</key>
<string>{{0, 0}, {816, 578}}</string> <string>{{0, 0}, {816, 405}}</string>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>2 122 1024 624 0 0 1024 746 </string> <string>2 122 1024 624 0 0 1024 746 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>PBXNavigatorGroup</string> <string>PBXNavigatorGroup</string>
<key>Proportion</key> <key>Proportion</key>
<string>578pt</string> <string>405pt</string>
</dict> </dict>
<dict> <dict>
<key>ContentConfiguration</key> <key>ContentConfiguration</key>
@ -505,14 +505,14 @@
<key>GeometryConfiguration</key> <key>GeometryConfiguration</key>
<dict> <dict>
<key>Frame</key> <key>Frame</key>
<string>{{0, 583}, {816, 0}}</string> <string>{{0, 410}, {816, 173}}</string>
<key>RubberWindowFrame</key> <key>RubberWindowFrame</key>
<string>2 122 1024 624 0 0 1024 746 </string> <string>2 122 1024 624 0 0 1024 746 </string>
</dict> </dict>
<key>Module</key> <key>Module</key>
<string>XCDetailModule</string> <string>XCDetailModule</string>
<key>Proportion</key> <key>Proportion</key>
<string>0pt</string> <string>173pt</string>
</dict> </dict>
</array> </array>
<key>Proportion</key> <key>Proportion</key>
@ -531,9 +531,9 @@
</array> </array>
<key>TableOfContents</key> <key>TableOfContents</key>
<array> <array>
<string>8E65358808563F6A00E468D9</string> <string>8EE5580A0866A24B009E7F50</string>
<string>1CE0B1FE06471DED0097A5F4</string> <string>1CE0B1FE06471DED0097A5F4</string>
<string>8E65358908563F6A00E468D9</string> <string>8EE5580B0866A24B009E7F50</string>
<string>1CE0B20306471E060097A5F4</string> <string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string> <string>1CE0B20506471E060097A5F4</string>
</array> </array>
@ -667,12 +667,6 @@
<integer>5</integer> <integer>5</integer>
<key>WindowOrderList</key> <key>WindowOrderList</key>
<array> <array>
<string>8E65359208563F6A00E468D9</string>
<string>8E65359308563F6A00E468D9</string>
<string>8E7A9371083675B600771E14</string>
<string>1CD10A99069EF8BA00B06720</string>
<string>8E65359008563F6A00E468D9</string>
<string>1C0AD2B3069F1EA900FABCE6</string>
<string>/Users/xugg/Projects/Cog/Cog.xcodeproj</string> <string>/Users/xugg/Projects/Cog/Cog.xcodeproj</string>
</array> </array>
<key>WindowString</key> <key>WindowString</key>
@ -797,8 +791,8 @@
<string>yes</string> <string>yes</string>
<key>sizes</key> <key>sizes</key>
<array> <array>
<string>{{0, 0}, {163, 194}}</string> <string>{{0, 0}, {143, 190}}</string>
<string>{{163, 0}, {861, 194}}</string> <string>{{143, 0}, {881, 190}}</string>
</array> </array>
</dict> </dict>
<key>VerticalSplitView</key> <key>VerticalSplitView</key>
@ -813,8 +807,8 @@
<string>yes</string> <string>yes</string>
<key>sizes</key> <key>sizes</key>
<array> <array>
<string>{{0, 0}, {1024, 194}}</string> <string>{{0, 0}, {1024, 190}}</string>
<string>{{0, 194}, {1024, 390}}</string> <string>{{0, 190}, {1024, 394}}</string>
</array> </array>
</dict> </dict>
</dict> </dict>
@ -861,14 +855,14 @@
<key>TableOfContents</key> <key>TableOfContents</key>
<array> <array>
<string>1CD10A99069EF8BA00B06720</string> <string>1CD10A99069EF8BA00B06720</string>
<string>8E65358A08563F6A00E468D9</string> <string>8EC12F0608566E3A00FC8AE7</string>
<string>1C162984064C10D400B95A72</string> <string>1C162984064C10D400B95A72</string>
<string>8E65358B08563F6A00E468D9</string> <string>8EC12F0708566E3A00FC8AE7</string>
<string>8E65358C08563F6A00E468D9</string> <string>8EC12F0808566E3A00FC8AE7</string>
<string>8E65358D08563F6A00E468D9</string> <string>8EC12F0908566E3A00FC8AE7</string>
<string>8E65358E08563F6A00E468D9</string> <string>8EC12F0A08566E3A00FC8AE7</string>
<string>8E65358F08563F6A00E468D9</string> <string>8EC12F0B08566E3A00FC8AE7</string>
<string>8E65359008563F6A00E468D9</string> <string>8EC12F0C08566E3A00FC8AE7</string>
</array> </array>
<key>ToolbarConfiguration</key> <key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debug</string> <string>xcode.toolbar.config.debug</string>
@ -895,12 +889,14 @@
<key>Dock</key> <key>Dock</key>
<array> <array>
<dict> <dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key> <key>ContentConfiguration</key>
<dict> <dict>
<key>PBXProjectModuleGUID</key> <key>PBXProjectModuleGUID</key>
<string>1CDD528C0622207200134675</string> <string>1CDD528C0622207200134675</string>
<key>PBXProjectModuleLabel</key> <key>PBXProjectModuleLabel</key>
<string>DBLog.c</string> <string>SoundController.m</string>
<key>StatusBarVisibility</key> <key>StatusBarVisibility</key>
<true/> <true/>
</dict> </dict>
@ -921,8 +917,6 @@
<string>342pt</string> <string>342pt</string>
</dict> </dict>
<dict> <dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key> <key>ContentConfiguration</key>
<dict> <dict>
<key>PBXProjectModuleGUID</key> <key>PBXProjectModuleGUID</key>
@ -958,8 +952,8 @@
<key>TableOfContents</key> <key>TableOfContents</key>
<array> <array>
<string>1C530D57069F1CE1000CFCEE</string> <string>1C530D57069F1CE1000CFCEE</string>
<string>8E37C10A0856312D00A0FFA6</string> <string>8E8C7C27085E9DC50086DAC7</string>
<string>8E37C10B0856312D00A0FFA6</string> <string>8E8C7C28085E9DC50086DAC7</string>
<string>1CDD528C0622207200134675</string> <string>1CDD528C0622207200134675</string>
<string>1CD0528E0623707200166675</string> <string>1CD0528E0623707200166675</string>
</array> </array>
@ -968,7 +962,7 @@
<key>WindowToolGUID</key> <key>WindowToolGUID</key>
<string>1C530D57069F1CE1000CFCEE</string> <string>1C530D57069F1CE1000CFCEE</string>
<key>WindowToolIsVisible</key> <key>WindowToolIsVisible</key>
<true/> <false/>
</dict> </dict>
<dict> <dict>
<key>Identifier</key> <key>Identifier</key>
@ -1022,7 +1016,7 @@
<key>TableOfContents</key> <key>TableOfContents</key>
<array> <array>
<string>8E7A9371083675B600771E14</string> <string>8E7A9371083675B600771E14</string>
<string>8E65359108563F6A00E468D9</string> <string>8EC12F0D08566E3A00FC8AE7</string>
<string>1C78EAAC065D492600B07095</string> <string>1C78EAAC065D492600B07095</string>
</array> </array>
<key>WindowString</key> <key>WindowString</key>
@ -1067,8 +1061,8 @@
<string>yes</string> <string>yes</string>
<key>sizes</key> <key>sizes</key>
<array> <array>
<string>{{0, 0}, {493, 168}}</string> <string>{{0, 0}, {367, 168}}</string>
<string>{{0, 173}, {493, 270}}</string> <string>{{0, 173}, {367, 270}}</string>
</array> </array>
</dict> </dict>
<key>VerticalSplitView</key> <key>VerticalSplitView</key>
@ -1117,9 +1111,9 @@
<key>TableOfContents</key> <key>TableOfContents</key>
<array> <array>
<string>1C0AD2B3069F1EA900FABCE6</string> <string>1C0AD2B3069F1EA900FABCE6</string>
<string>8E65356C08563D5600E468D9</string> <string>8E0914FC08661F200039FDAA</string>
<string>1CD0528B0623707200166675</string> <string>1CD0528B0623707200166675</string>
<string>8E65356D08563D5600E468D9</string> <string>8E0914FD08661F200039FDAA</string>
</array> </array>
<key>ToolbarConfiguration</key> <key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.run</string> <string>xcode.toolbar.config.run</string>

File diff suppressed because it is too large Load Diff

View File

@ -19,9 +19,9 @@
</array> </array>
<key>IBOpenObjects</key> <key>IBOpenObjects</key>
<array> <array>
<integer>463</integer>
<integer>29</integer> <integer>29</integer>
<integer>21</integer> <integer>21</integer>
<integer>463</integer>
</array> </array>
<key>IBSystem Version</key> <key>IBSystem Version</key>
<string>8B15</string> <string>8B15</string>

Binary file not shown.

Binary file not shown.

View File

@ -6,3 +6,5 @@ MPCDec: musepack.net
Ogg Vorbis: xiph.org Ogg Vorbis: xiph.org
SndFile: http://www.mega-nerd.com/libsndfile/ SndFile: http://www.mega-nerd.com/libsndfile/
TagLib: http://jakarta.apache.org/taglibs/ TagLib: http://jakarta.apache.org/taglibs/
Wavpack: http://www.wavpack.com
Shorten: http://fondriest.frederic.free.fr/realisations/lamip/files/src/testing/contrib/

View File

@ -36,7 +36,7 @@
- (int)insertFile:(NSString *)filename atIndex:(int)index - (int)insertFile:(NSString *)filename atIndex:(int)index
{ {
if ([acceptableFileTypes containsObject:[filename pathExtension]]) if ([acceptableFileTypes containsObject:[filename pathExtension]] && [[NSFileManager defaultManager] fileExistsAtPath:filename])
{ {
PlaylistEntry *pe = [[PlaylistEntry alloc] init]; PlaylistEntry *pe = [[PlaylistEntry alloc] init];

18
README
View File

@ -1,4 +1,4 @@
------------------------------------------------------------------------------------ ---------------------------------------------------------------------------
NOTE ABOUT BUTTONS: NOTE ABOUT BUTTONS:
If you are under impression that the buttons are acting strange, If you are under impression that the buttons are acting strange,
they actually may be acting as intended. The back button goes through they actually may be acting as intended. The back button goes through
@ -8,8 +8,8 @@ had shuffle mode on, and then turned it off, you could go back through the
songs played during shuffle mode. The forward button acts as expected, where songs played during shuffle mode. The forward button acts as expected, where
if shuffle is on, it will pick a random song, and if not it goes to the next if shuffle is on, it will pick a random song, and if not it goes to the next
song in the playlist. song in the playlist.
Please comment on, whether you like this behaviour or not! Please comment, whether you like this behaviour or not!
------------------------------------------------------------------------------------ ---------------------------------------------------------------------------
Cog is released under the GPL. See COPYING for details. Cog is released under the GPL. See COPYING for details.
@ -18,14 +18,14 @@ libraries, which i have created Xcode projects for, and possibly modified
to make compile on OS X. The various libraries are under each of their own to make compile on OS X. The various libraries are under each of their own
licenses. licenses.
Please note that vulgar language may be contained in the source code. It is rated Please note that vulgar language may be contained in the source code.
M for mature by the ESRB, the MPAA, and whatever else deems it unsuitable for virgin It is rated M for mature by the ESRB, the MPAA, and whatever else deems it
ears. unsuitable for virgin ears.
All Cog code is copywrited by me, and is licensed under the GPL.
All Cog code is copywrited by me, and is licensed under the GPL.
If you would like the photoshop sources for the various icons and If you would like the photoshop sources for the various icons and
graphics, please send me an email, and I will be happy to get them to you. graphics, please send me an email, and I will be happy to get them to you.
Share and enjoy. Share and enjoy.
--Vincent Spader (vspader@users.sf.net) --Vincent Spader (vspader@users.sf.net)

View File

@ -28,7 +28,7 @@
//#define RING_BUFFER_SIZE 1048576 //#define RING_BUFFER_SIZE 1048576
//#define BUFFER_WRITE_CHUNK 32768 //#define BUFFER_WRITE_CHUNK 32768
#define FEEDER_THREAD_IMPORTANCE 4 #define FEEDER_THREAD_IMPORTANCE 10
//timeout should be smaller than the time itd take for the buffer to run dry...looks like were ironclad //timeout should be smaller than the time itd take for the buffer to run dry...looks like were ironclad
#define TIMEOUT 1 #define TIMEOUT 1

View File

@ -108,6 +108,9 @@
- (void)close - (void)close
{ {
if (buffer)
free(buffer);
if (shn_cleanup_decoder(handle)) if (shn_cleanup_decoder(handle))
shn_unload(handle); shn_unload(handle);
} }