project.pbxproj 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729
  1. // !$*UTF8*$!
  2. {
  3. archiveVersion = 1;
  4. classes = {
  5. };
  6. objectVersion = 77;
  7. objects = {
  8. /* Begin PBXBuildFile section */
  9. 0475F2DDF3E2B282DDD32730 /* ChadMusicTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BB9760CCC20660A8525CE39 /* ChadMusicTests.swift */; };
  10. 05250104065AC9F86AED7640 /* AppState.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF15B7B75D512A726CA44646 /* AppState.swift */; };
  11. 062F31FB5DC04601FA178F29 /* SyncWatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5EB33906D8B83B47907EB73 /* SyncWatcher.swift */; };
  12. 0B7C4BD3AC54C81F59D95769 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01D496B90B255DE7A6A04105 /* SettingsView.swift */; };
  13. 1085C4BC3C8EFE23DD89A7F9 /* Track.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E9F79CCE61D166936929A38 /* Track.swift */; };
  14. 1528E4838F567A508BE4A11D /* PlaylistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C20156249966253CB0BC01 /* PlaylistView.swift */; };
  15. 155361528270AA0A5BC10857 /* DAWProjectExporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0748BB9CDD4597683EDBECF6 /* DAWProjectExporter.swift */; };
  16. 19D734917A3D1D41990795E6 /* IntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9F57CB69E8B6679DC46ED57 /* IntegrationTests.swift */; };
  17. 1F5879AF2B534B9D146D4AEC /* M3UExporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045D280E779E9AC3182F56BA /* M3UExporter.swift */; };
  18. 2018533194941BADC392CCD0 /* GroupTemplateEditorSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A61463B001623599676BEB7 /* GroupTemplateEditorSheet.swift */; };
  19. 262570671DF03442758075E0 /* AppIconConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0775318FF25759713C3063D /* AppIconConfig.swift */; };
  20. 2897F9B97E53C752BC8291EC /* TestHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9F35D9EB91C21D126300620 /* TestHelpers.swift */; };
  21. 289A2312A2E8CAC34308F7FB /* MixBoardApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 936532443A34B992B646634D /* MixBoardApp.swift */; };
  22. 31450D9ABC6BD3AD4BC160E2 /* CloudBrowserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 962F30B9B736FF54E9E787D3 /* CloudBrowserView.swift */; };
  23. 37471C3642A075ED661A2DB9 /* PlayerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8170FF8C225BE2DC9F0040 /* PlayerViewModel.swift */; };
  24. 3777ADCCD94A17218C335EE2 /* OGGDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEA3BE9F559194BD6A8DBFC1 /* OGGDecoder.swift */; };
  25. 3B76CF2335562FD54CAD71BE /* AuditionExporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3E447D0302B2F806372CD26 /* AuditionExporter.swift */; };
  26. 3F3163BC5FFAA0EC64603580 /* ServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F83BB564B9EDF998724C368F /* ServiceTests.swift */; };
  27. 42D7ED2A29566B252DADFC2D /* ExporterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D66878FD3A9BC9745050D13 /* ExporterTests.swift */; };
  28. 45C89316C5AB16272EC76D9F /* TrackRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 971D04012F71444725BB1846 /* TrackRow.swift */; };
  29. 461A7875FBC20ADCE231103E /* AudioStitcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00A953E02F7201CEC5A42DBE /* AudioStitcher.swift */; };
  30. 48D625A899FB4CD97A1CAC48 /* GroupTemplateResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01A4B3C692C3BA27C29C084B /* GroupTemplateResolver.swift */; };
  31. 57994E3E18195FD31CBDC82B /* SidebarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10686F358CF00951BE31A568 /* SidebarView.swift */; };
  32. 58718BAD0FD35D0D999F7C43 /* LyricsParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24ADE9A538A9797BE2D7862B /* LyricsParser.swift */; };
  33. 5AA97C256D3B08ABF017DD0E /* PlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DB6892183CB93C7DD0FD546 /* PlayerView.swift */; };
  34. 5DBAFF76FB86E768FF8324C4 /* AppTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD3B309F0338E5A9412826E2 /* AppTheme.swift */; };
  35. 60B4E444C175C98B6F762762 /* WaveformGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ADC80456B47393CD4584C99 /* WaveformGenerator.swift */; };
  36. 638D763E72DC3774160E414F /* ChadMusic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7536C7BBF54B0B5B718D370F /* ChadMusic.swift */; };
  37. 690AA870FCF9B4A26EED8725 /* stb_vorbis.c in Sources */ = {isa = PBXBuildFile; fileRef = B95A4AD1717E86B37F7FD836 /* stb_vorbis.c */; };
  38. 691A0746845CBD34C766E634 /* PlaylistViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F39B366B5B7D28F1310EE4C4 /* PlaylistViewModel.swift */; };
  39. 6C71B39EA00C5E9579EF6C7C /* NowPlayingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C91BFDC4EF6125CE0A92C365 /* NowPlayingView.swift */; };
  40. 6E8E6342167F74728BB11860 /* DAWExporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7043BDA9D01825F1EF0F92D2 /* DAWExporter.swift */; };
  41. 735062052406557AD5EA269A /* MediaKeyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5CB9510A25DFF0B3E7AA99E /* MediaKeyHandler.swift */; };
  42. 7FD8DC64107B2249CD5BEF1E /* ModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CF5F229E82115FB2EBC61D6 /* ModelTests.swift */; };
  43. 88BFFA594A1BB6BFF3D0AA82 /* StreamingPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 586499B8088E26103E29799F /* StreamingPlayer.swift */; };
  44. 8A96CC1E8CC532F3ADB6ECE7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D29A1F4EF5FB5ACA4CCA4BBF /* Assets.xcassets */; };
  45. 8CEE003726D0A7A94B0F2A62 /* LibraryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B942F3DDAA7611C76AA6287B /* LibraryManager.swift */; };
  46. 97CD156068E3A732B75A822D /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39DB5455D6BE460BC4F73953 /* ContentView.swift */; };
  47. 9C5A7DDD55E5367DB6E2AE96 /* FileNameTemplateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39571508168CC254BEB95639 /* FileNameTemplateTests.swift */; };
  48. 9EAB929A4063EF9BCBCC1E05 /* FileNameTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B949F4466F0B81596C5C405 /* FileNameTemplate.swift */; };
  49. A7A5B8BB3004AB1F33924352 /* PlaylistViewConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = A94FB676F44A50F2145C19B5 /* PlaylistViewConfig.swift */; };
  50. AD8102FED08EEBF9E7CD5AE4 /* CuePoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9063834E1B4AA86F958A1F6C /* CuePoint.swift */; };
  51. AFB70F19181547ABB1AFEE0A /* EDLExporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A72E397F6C553FA244F7EFD8 /* EDLExporter.swift */; };
  52. B071D5E1F39AA70316FA4FDF /* BPMDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83791DE60BF73B44B44CF598 /* BPMDetector.swift */; };
  53. B1168E099BF810B143F9CECD /* E2EWorkflowTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A1CD85068EDFB342EF0A571 /* E2EWorkflowTests.swift */; };
  54. B19F5B2E4587252976BE904E /* SyncImporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3051FEE675462F2B77A356FC /* SyncImporter.swift */; };
  55. BCCEA4536EF1E4EDC85047B9 /* ArtworkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8FB0A5037D57F0F5FED2E3E /* ArtworkView.swift */; };
  56. C5176BA733BF12E3469B0EAC /* Playlist.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7E85070877C451ADE587391 /* Playlist.swift */; };
  57. C6C8A67458FC5DCFD06A1C5D /* ChadMusicAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0CD0921C8C90DA6D317E092 /* ChadMusicAPIClient.swift */; };
  58. C95509E70051622AE49B65E3 /* KeyboardShortcutConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8DDF2236DA6D1B1E0471E14 /* KeyboardShortcutConfig.swift */; };
  59. CC8BC49C6AF43733936E3A4C /* KeychainService.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDEBC9A0E0A3C3ED59388601 /* KeychainService.swift */; };
  60. CD58E38E196F93425131B213 /* WaveformView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4024DF6E47B81EE988794DA3 /* WaveformView.swift */; };
  61. CDFAF9F75CAEFD3091DE95D9 /* AudioEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = F953CCDD5C91DE428195E31D /* AudioEngine.swift */; };
  62. DD7452BB415E285D2D39A667 /* ExportSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 261573F9B9AABB23402AB3F2 /* ExportSheet.swift */; };
  63. DD8CAE7B23CD799AF8D4934F /* MetadataService.swift in Sources */ = {isa = PBXBuildFile; fileRef = C186E4E5E5FE2F3C87A1B03C /* MetadataService.swift */; };
  64. E60123D4FFD92FBD9B3B4E69 /* PlaylistFolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CBC0258B1C5E76582465F5 /* PlaylistFolder.swift */; };
  65. EAC68B369B8957C0809C767A /* LRCLIBService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2330A5CD9FEB6CF1200D4E8A /* LRCLIBService.swift */; };
  66. EC0DD99AFFFDA7D25407E991 /* ArtworkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB242ECEFF0FFF4427B42BC0 /* ArtworkService.swift */; };
  67. EE13D90C3C2ACF1348391C69 /* KeyDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0457B660537DC8CAD1B6120 /* KeyDetector.swift */; };
  68. F2E4BE62D73171D8E7D63006 /* CueSheetExporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C8A672BB52C77A8E83F3FFF /* CueSheetExporter.swift */; };
  69. F7058DDE85BB601CBB7C9BD9 /* GlobalSearchSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D80C9BACD548FF942E79C82F /* GlobalSearchSheet.swift */; };
  70. /* End PBXBuildFile section */
  71. /* Begin PBXContainerItemProxy section */
  72. 25C442C870895C13C18E6E2D /* PBXContainerItemProxy */ = {
  73. isa = PBXContainerItemProxy;
  74. containerPortal = 1493F43231E452AC09121B22 /* Project object */;
  75. proxyType = 1;
  76. remoteGlobalIDString = 33EFC91F348AC0E1F8512ECA;
  77. remoteInfo = MixBoard;
  78. };
  79. /* End PBXContainerItemProxy section */
  80. /* Begin PBXFileReference section */
  81. 00A953E02F7201CEC5A42DBE /* AudioStitcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioStitcher.swift; sourceTree = "<group>"; };
  82. 01A4B3C692C3BA27C29C084B /* GroupTemplateResolver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupTemplateResolver.swift; sourceTree = "<group>"; };
  83. 01D496B90B255DE7A6A04105 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
  84. 045D280E779E9AC3182F56BA /* M3UExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = M3UExporter.swift; sourceTree = "<group>"; };
  85. 0748BB9CDD4597683EDBECF6 /* DAWProjectExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DAWProjectExporter.swift; sourceTree = "<group>"; };
  86. 0ADC80456B47393CD4584C99 /* WaveformGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaveformGenerator.swift; sourceTree = "<group>"; };
  87. 0B949F4466F0B81596C5C405 /* FileNameTemplate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileNameTemplate.swift; sourceTree = "<group>"; };
  88. 10686F358CF00951BE31A568 /* SidebarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarView.swift; sourceTree = "<group>"; };
  89. 1108B34F3CB9DD25F292F8ED /* stb_vorbis_wrapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = stb_vorbis_wrapper.h; sourceTree = "<group>"; };
  90. 12C20156249966253CB0BC01 /* PlaylistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaylistView.swift; sourceTree = "<group>"; };
  91. 1A61463B001623599676BEB7 /* GroupTemplateEditorSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupTemplateEditorSheet.swift; sourceTree = "<group>"; };
  92. 1BB9760CCC20660A8525CE39 /* ChadMusicTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChadMusicTests.swift; sourceTree = "<group>"; };
  93. 1D66878FD3A9BC9745050D13 /* ExporterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExporterTests.swift; sourceTree = "<group>"; };
  94. 2330A5CD9FEB6CF1200D4E8A /* LRCLIBService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LRCLIBService.swift; sourceTree = "<group>"; };
  95. 2422CD2089E7C1331772CB63 /* MixBoard-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MixBoard-Bridging-Header.h"; sourceTree = "<group>"; };
  96. 24ADE9A538A9797BE2D7862B /* LyricsParser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LyricsParser.swift; sourceTree = "<group>"; };
  97. 261573F9B9AABB23402AB3F2 /* ExportSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExportSheet.swift; sourceTree = "<group>"; };
  98. 3051FEE675462F2B77A356FC /* SyncImporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncImporter.swift; sourceTree = "<group>"; };
  99. 33CBC0258B1C5E76582465F5 /* PlaylistFolder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaylistFolder.swift; sourceTree = "<group>"; };
  100. 372A8DCF8420A7B0C8835D0F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
  101. 39571508168CC254BEB95639 /* FileNameTemplateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileNameTemplateTests.swift; sourceTree = "<group>"; };
  102. 39DB5455D6BE460BC4F73953 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
  103. 3B8170FF8C225BE2DC9F0040 /* PlayerViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerViewModel.swift; sourceTree = "<group>"; };
  104. 4024DF6E47B81EE988794DA3 /* WaveformView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaveformView.swift; sourceTree = "<group>"; };
  105. 586499B8088E26103E29799F /* StreamingPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StreamingPlayer.swift; sourceTree = "<group>"; };
  106. 5A1CD85068EDFB342EF0A571 /* E2EWorkflowTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = E2EWorkflowTests.swift; sourceTree = "<group>"; };
  107. 6C8A672BB52C77A8E83F3FFF /* CueSheetExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CueSheetExporter.swift; sourceTree = "<group>"; };
  108. 6CF5F229E82115FB2EBC61D6 /* ModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModelTests.swift; sourceTree = "<group>"; };
  109. 7043BDA9D01825F1EF0F92D2 /* DAWExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DAWExporter.swift; sourceTree = "<group>"; };
  110. 7536C7BBF54B0B5B718D370F /* ChadMusic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChadMusic.swift; sourceTree = "<group>"; };
  111. 7DB6892183CB93C7DD0FD546 /* PlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerView.swift; sourceTree = "<group>"; };
  112. 7E9F79CCE61D166936929A38 /* Track.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Track.swift; sourceTree = "<group>"; };
  113. 83791DE60BF73B44B44CF598 /* BPMDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BPMDetector.swift; sourceTree = "<group>"; };
  114. 9063834E1B4AA86F958A1F6C /* CuePoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CuePoint.swift; sourceTree = "<group>"; };
  115. 936532443A34B992B646634D /* MixBoardApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MixBoardApp.swift; sourceTree = "<group>"; };
  116. 962F30B9B736FF54E9E787D3 /* CloudBrowserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudBrowserView.swift; sourceTree = "<group>"; };
  117. 971D04012F71444725BB1846 /* TrackRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackRow.swift; sourceTree = "<group>"; };
  118. A72E397F6C553FA244F7EFD8 /* EDLExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EDLExporter.swift; sourceTree = "<group>"; };
  119. A762EFB3375064E7873C8A41 /* MixBoard.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MixBoard.app; sourceTree = BUILT_PRODUCTS_DIR; };
  120. A94FB676F44A50F2145C19B5 /* PlaylistViewConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaylistViewConfig.swift; sourceTree = "<group>"; };
  121. A9F57CB69E8B6679DC46ED57 /* IntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntegrationTests.swift; sourceTree = "<group>"; };
  122. AD3B309F0338E5A9412826E2 /* AppTheme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTheme.swift; sourceTree = "<group>"; };
  123. B5EB33906D8B83B47907EB73 /* SyncWatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncWatcher.swift; sourceTree = "<group>"; };
  124. B942F3DDAA7611C76AA6287B /* LibraryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryManager.swift; sourceTree = "<group>"; };
  125. B95A4AD1717E86B37F7FD836 /* stb_vorbis.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = stb_vorbis.c; sourceTree = "<group>"; };
  126. B9F35D9EB91C21D126300620 /* TestHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestHelpers.swift; sourceTree = "<group>"; };
  127. BEA3BE9F559194BD6A8DBFC1 /* OGGDecoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OGGDecoder.swift; sourceTree = "<group>"; };
  128. C186E4E5E5FE2F3C87A1B03C /* MetadataService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetadataService.swift; sourceTree = "<group>"; };
  129. C3E447D0302B2F806372CD26 /* AuditionExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuditionExporter.swift; sourceTree = "<group>"; };
  130. C91BFDC4EF6125CE0A92C365 /* NowPlayingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NowPlayingView.swift; sourceTree = "<group>"; };
  131. D0775318FF25759713C3063D /* AppIconConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppIconConfig.swift; sourceTree = "<group>"; };
  132. D29A1F4EF5FB5ACA4CCA4BBF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
  133. D5CB9510A25DFF0B3E7AA99E /* MediaKeyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaKeyHandler.swift; sourceTree = "<group>"; };
  134. D7E85070877C451ADE587391 /* Playlist.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Playlist.swift; sourceTree = "<group>"; };
  135. D80C9BACD548FF942E79C82F /* GlobalSearchSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlobalSearchSheet.swift; sourceTree = "<group>"; };
  136. D8DDF2236DA6D1B1E0471E14 /* KeyboardShortcutConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardShortcutConfig.swift; sourceTree = "<group>"; };
  137. D8FB0A5037D57F0F5FED2E3E /* ArtworkView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArtworkView.swift; sourceTree = "<group>"; };
  138. DB242ECEFF0FFF4427B42BC0 /* ArtworkService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArtworkService.swift; sourceTree = "<group>"; };
  139. DDEBC9A0E0A3C3ED59388601 /* KeychainService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainService.swift; sourceTree = "<group>"; };
  140. E0457B660537DC8CAD1B6120 /* KeyDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyDetector.swift; sourceTree = "<group>"; };
  141. EC342C71B1DC290341B225A6 /* MixBoardTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MixBoardTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
  142. F0CD0921C8C90DA6D317E092 /* ChadMusicAPIClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChadMusicAPIClient.swift; sourceTree = "<group>"; };
  143. F39B366B5B7D28F1310EE4C4 /* PlaylistViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaylistViewModel.swift; sourceTree = "<group>"; };
  144. F83BB564B9EDF998724C368F /* ServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceTests.swift; sourceTree = "<group>"; };
  145. F953CCDD5C91DE428195E31D /* AudioEngine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioEngine.swift; sourceTree = "<group>"; };
  146. FF15B7B75D512A726CA44646 /* AppState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppState.swift; sourceTree = "<group>"; };
  147. /* End PBXFileReference section */
  148. /* Begin PBXGroup section */
  149. 0900F76AAF6D8DBA644C9A7F /* OGG */ = {
  150. isa = PBXGroup;
  151. children = (
  152. 2422CD2089E7C1331772CB63 /* MixBoard-Bridging-Header.h */,
  153. 1108B34F3CB9DD25F292F8ED /* stb_vorbis_wrapper.h */,
  154. B95A4AD1717E86B37F7FD836 /* stb_vorbis.c */,
  155. );
  156. path = OGG;
  157. sourceTree = "<group>";
  158. };
  159. 155CC32D9CC923835331A730 /* E2E */ = {
  160. isa = PBXGroup;
  161. children = (
  162. 5A1CD85068EDFB342EF0A571 /* E2EWorkflowTests.swift */,
  163. A9F57CB69E8B6679DC46ED57 /* IntegrationTests.swift */,
  164. );
  165. path = E2E;
  166. sourceTree = "<group>";
  167. };
  168. 2065C399681DFF04F205D900 /* Sources */ = {
  169. isa = PBXGroup;
  170. children = (
  171. 936532443A34B992B646634D /* MixBoardApp.swift */,
  172. 826272262ECC8CDB287517A2 /* Export */,
  173. AEFB9A1AA893BC7836E7508A /* Models */,
  174. 0900F76AAF6D8DBA644C9A7F /* OGG */,
  175. D57D9707742273A13691CA34 /* Resources */,
  176. 63981D0EE4FF6BDBF1E43EAF /* Services */,
  177. 4F79A8B50E208ADF86DB366D /* ViewModels */,
  178. D0069E94602D44443678A7B9 /* Views */,
  179. );
  180. path = Sources;
  181. sourceTree = "<group>";
  182. };
  183. 3168D3CDC38D28D748B9F95E /* Unit */ = {
  184. isa = PBXGroup;
  185. children = (
  186. 1BB9760CCC20660A8525CE39 /* ChadMusicTests.swift */,
  187. 1D66878FD3A9BC9745050D13 /* ExporterTests.swift */,
  188. 39571508168CC254BEB95639 /* FileNameTemplateTests.swift */,
  189. 6CF5F229E82115FB2EBC61D6 /* ModelTests.swift */,
  190. F83BB564B9EDF998724C368F /* ServiceTests.swift */,
  191. );
  192. path = Unit;
  193. sourceTree = "<group>";
  194. };
  195. 4F79A8B50E208ADF86DB366D /* ViewModels */ = {
  196. isa = PBXGroup;
  197. children = (
  198. 3B8170FF8C225BE2DC9F0040 /* PlayerViewModel.swift */,
  199. F39B366B5B7D28F1310EE4C4 /* PlaylistViewModel.swift */,
  200. );
  201. path = ViewModels;
  202. sourceTree = "<group>";
  203. };
  204. 63981D0EE4FF6BDBF1E43EAF /* Services */ = {
  205. isa = PBXGroup;
  206. children = (
  207. DB242ECEFF0FFF4427B42BC0 /* ArtworkService.swift */,
  208. F953CCDD5C91DE428195E31D /* AudioEngine.swift */,
  209. 83791DE60BF73B44B44CF598 /* BPMDetector.swift */,
  210. F0CD0921C8C90DA6D317E092 /* ChadMusicAPIClient.swift */,
  211. DDEBC9A0E0A3C3ED59388601 /* KeychainService.swift */,
  212. E0457B660537DC8CAD1B6120 /* KeyDetector.swift */,
  213. B942F3DDAA7611C76AA6287B /* LibraryManager.swift */,
  214. 2330A5CD9FEB6CF1200D4E8A /* LRCLIBService.swift */,
  215. 24ADE9A538A9797BE2D7862B /* LyricsParser.swift */,
  216. D5CB9510A25DFF0B3E7AA99E /* MediaKeyHandler.swift */,
  217. C186E4E5E5FE2F3C87A1B03C /* MetadataService.swift */,
  218. BEA3BE9F559194BD6A8DBFC1 /* OGGDecoder.swift */,
  219. 586499B8088E26103E29799F /* StreamingPlayer.swift */,
  220. 3051FEE675462F2B77A356FC /* SyncImporter.swift */,
  221. B5EB33906D8B83B47907EB73 /* SyncWatcher.swift */,
  222. 0ADC80456B47393CD4584C99 /* WaveformGenerator.swift */,
  223. );
  224. path = Services;
  225. sourceTree = "<group>";
  226. };
  227. 826272262ECC8CDB287517A2 /* Export */ = {
  228. isa = PBXGroup;
  229. children = (
  230. 00A953E02F7201CEC5A42DBE /* AudioStitcher.swift */,
  231. C3E447D0302B2F806372CD26 /* AuditionExporter.swift */,
  232. 6C8A672BB52C77A8E83F3FFF /* CueSheetExporter.swift */,
  233. 7043BDA9D01825F1EF0F92D2 /* DAWExporter.swift */,
  234. 0748BB9CDD4597683EDBECF6 /* DAWProjectExporter.swift */,
  235. A72E397F6C553FA244F7EFD8 /* EDLExporter.swift */,
  236. 045D280E779E9AC3182F56BA /* M3UExporter.swift */,
  237. );
  238. path = Export;
  239. sourceTree = "<group>";
  240. };
  241. 909567D1FC5A795E5CB36B78 /* Products */ = {
  242. isa = PBXGroup;
  243. children = (
  244. A762EFB3375064E7873C8A41 /* MixBoard.app */,
  245. EC342C71B1DC290341B225A6 /* MixBoardTests.xctest */,
  246. );
  247. name = Products;
  248. sourceTree = "<group>";
  249. };
  250. AEFB9A1AA893BC7836E7508A /* Models */ = {
  251. isa = PBXGroup;
  252. children = (
  253. D0775318FF25759713C3063D /* AppIconConfig.swift */,
  254. FF15B7B75D512A726CA44646 /* AppState.swift */,
  255. AD3B309F0338E5A9412826E2 /* AppTheme.swift */,
  256. 7536C7BBF54B0B5B718D370F /* ChadMusic.swift */,
  257. 9063834E1B4AA86F958A1F6C /* CuePoint.swift */,
  258. 0B949F4466F0B81596C5C405 /* FileNameTemplate.swift */,
  259. 01A4B3C692C3BA27C29C084B /* GroupTemplateResolver.swift */,
  260. D8DDF2236DA6D1B1E0471E14 /* KeyboardShortcutConfig.swift */,
  261. D7E85070877C451ADE587391 /* Playlist.swift */,
  262. 33CBC0258B1C5E76582465F5 /* PlaylistFolder.swift */,
  263. A94FB676F44A50F2145C19B5 /* PlaylistViewConfig.swift */,
  264. 7E9F79CCE61D166936929A38 /* Track.swift */,
  265. );
  266. path = Models;
  267. sourceTree = "<group>";
  268. };
  269. C6269FF23223813DA8E6C454 /* Helpers */ = {
  270. isa = PBXGroup;
  271. children = (
  272. B9F35D9EB91C21D126300620 /* TestHelpers.swift */,
  273. );
  274. path = Helpers;
  275. sourceTree = "<group>";
  276. };
  277. D0069E94602D44443678A7B9 /* Views */ = {
  278. isa = PBXGroup;
  279. children = (
  280. D8FB0A5037D57F0F5FED2E3E /* ArtworkView.swift */,
  281. 962F30B9B736FF54E9E787D3 /* CloudBrowserView.swift */,
  282. 39DB5455D6BE460BC4F73953 /* ContentView.swift */,
  283. 261573F9B9AABB23402AB3F2 /* ExportSheet.swift */,
  284. D80C9BACD548FF942E79C82F /* GlobalSearchSheet.swift */,
  285. 1A61463B001623599676BEB7 /* GroupTemplateEditorSheet.swift */,
  286. C91BFDC4EF6125CE0A92C365 /* NowPlayingView.swift */,
  287. 7DB6892183CB93C7DD0FD546 /* PlayerView.swift */,
  288. 12C20156249966253CB0BC01 /* PlaylistView.swift */,
  289. 01D496B90B255DE7A6A04105 /* SettingsView.swift */,
  290. 10686F358CF00951BE31A568 /* SidebarView.swift */,
  291. 971D04012F71444725BB1846 /* TrackRow.swift */,
  292. 4024DF6E47B81EE988794DA3 /* WaveformView.swift */,
  293. );
  294. path = Views;
  295. sourceTree = "<group>";
  296. };
  297. D57D9707742273A13691CA34 /* Resources */ = {
  298. isa = PBXGroup;
  299. children = (
  300. 372A8DCF8420A7B0C8835D0F /* Info.plist */,
  301. );
  302. path = Resources;
  303. sourceTree = "<group>";
  304. };
  305. EE18FFF82E10AF7470023A4D /* Tests */ = {
  306. isa = PBXGroup;
  307. children = (
  308. 155CC32D9CC923835331A730 /* E2E */,
  309. C6269FF23223813DA8E6C454 /* Helpers */,
  310. 3168D3CDC38D28D748B9F95E /* Unit */,
  311. );
  312. path = Tests;
  313. sourceTree = "<group>";
  314. };
  315. EFB07E5C4FD2AFAD6F8AD1A5 = {
  316. isa = PBXGroup;
  317. children = (
  318. D29A1F4EF5FB5ACA4CCA4BBF /* Assets.xcassets */,
  319. 2065C399681DFF04F205D900 /* Sources */,
  320. EE18FFF82E10AF7470023A4D /* Tests */,
  321. 909567D1FC5A795E5CB36B78 /* Products */,
  322. );
  323. sourceTree = "<group>";
  324. };
  325. /* End PBXGroup section */
  326. /* Begin PBXNativeTarget section */
  327. 33EFC91F348AC0E1F8512ECA /* MixBoard */ = {
  328. isa = PBXNativeTarget;
  329. buildConfigurationList = DFC1DA5FC46C11C509725EB9 /* Build configuration list for PBXNativeTarget "MixBoard" */;
  330. buildPhases = (
  331. 13CBA3E22A579B71FAD6F230 /* Sources */,
  332. 19BD8F4060DEB818EF6B53D4 /* Resources */,
  333. );
  334. buildRules = (
  335. );
  336. dependencies = (
  337. );
  338. name = MixBoard;
  339. packageProductDependencies = (
  340. );
  341. productName = MixBoard;
  342. productReference = A762EFB3375064E7873C8A41 /* MixBoard.app */;
  343. productType = "com.apple.product-type.application";
  344. };
  345. 3CCC52C463BB895802789743 /* MixBoardTests */ = {
  346. isa = PBXNativeTarget;
  347. buildConfigurationList = 54EA94000DA7B2E23947C31C /* Build configuration list for PBXNativeTarget "MixBoardTests" */;
  348. buildPhases = (
  349. FD3BC3A2C6095A051DFDC56F /* Sources */,
  350. );
  351. buildRules = (
  352. );
  353. dependencies = (
  354. E6079E5A6C41D14651270BF4 /* PBXTargetDependency */,
  355. );
  356. name = MixBoardTests;
  357. packageProductDependencies = (
  358. );
  359. productName = MixBoardTests;
  360. productReference = EC342C71B1DC290341B225A6 /* MixBoardTests.xctest */;
  361. productType = "com.apple.product-type.bundle.unit-test";
  362. };
  363. /* End PBXNativeTarget section */
  364. /* Begin PBXProject section */
  365. 1493F43231E452AC09121B22 /* Project object */ = {
  366. isa = PBXProject;
  367. attributes = {
  368. BuildIndependentTargetsInParallel = YES;
  369. LastUpgradeCheck = 1600;
  370. };
  371. buildConfigurationList = 4884383C090DF98ADA109D6F /* Build configuration list for PBXProject "MixBoard" */;
  372. compatibilityVersion = "Xcode 14.0";
  373. developmentRegion = en;
  374. hasScannedForEncodings = 0;
  375. knownRegions = (
  376. Base,
  377. en,
  378. );
  379. mainGroup = EFB07E5C4FD2AFAD6F8AD1A5;
  380. minimizedProjectReferenceProxies = 1;
  381. preferredProjectObjectVersion = 77;
  382. projectDirPath = "";
  383. projectRoot = "";
  384. targets = (
  385. 33EFC91F348AC0E1F8512ECA /* MixBoard */,
  386. 3CCC52C463BB895802789743 /* MixBoardTests */,
  387. );
  388. };
  389. /* End PBXProject section */
  390. /* Begin PBXResourcesBuildPhase section */
  391. 19BD8F4060DEB818EF6B53D4 /* Resources */ = {
  392. isa = PBXResourcesBuildPhase;
  393. buildActionMask = 2147483647;
  394. files = (
  395. 8A96CC1E8CC532F3ADB6ECE7 /* Assets.xcassets in Resources */,
  396. );
  397. runOnlyForDeploymentPostprocessing = 0;
  398. };
  399. /* End PBXResourcesBuildPhase section */
  400. /* Begin PBXSourcesBuildPhase section */
  401. 13CBA3E22A579B71FAD6F230 /* Sources */ = {
  402. isa = PBXSourcesBuildPhase;
  403. buildActionMask = 2147483647;
  404. files = (
  405. 262570671DF03442758075E0 /* AppIconConfig.swift in Sources */,
  406. 05250104065AC9F86AED7640 /* AppState.swift in Sources */,
  407. 5DBAFF76FB86E768FF8324C4 /* AppTheme.swift in Sources */,
  408. EC0DD99AFFFDA7D25407E991 /* ArtworkService.swift in Sources */,
  409. BCCEA4536EF1E4EDC85047B9 /* ArtworkView.swift in Sources */,
  410. CDFAF9F75CAEFD3091DE95D9 /* AudioEngine.swift in Sources */,
  411. 461A7875FBC20ADCE231103E /* AudioStitcher.swift in Sources */,
  412. 3B76CF2335562FD54CAD71BE /* AuditionExporter.swift in Sources */,
  413. B071D5E1F39AA70316FA4FDF /* BPMDetector.swift in Sources */,
  414. 638D763E72DC3774160E414F /* ChadMusic.swift in Sources */,
  415. C6C8A67458FC5DCFD06A1C5D /* ChadMusicAPIClient.swift in Sources */,
  416. 31450D9ABC6BD3AD4BC160E2 /* CloudBrowserView.swift in Sources */,
  417. 97CD156068E3A732B75A822D /* ContentView.swift in Sources */,
  418. AD8102FED08EEBF9E7CD5AE4 /* CuePoint.swift in Sources */,
  419. F2E4BE62D73171D8E7D63006 /* CueSheetExporter.swift in Sources */,
  420. 6E8E6342167F74728BB11860 /* DAWExporter.swift in Sources */,
  421. 155361528270AA0A5BC10857 /* DAWProjectExporter.swift in Sources */,
  422. AFB70F19181547ABB1AFEE0A /* EDLExporter.swift in Sources */,
  423. DD7452BB415E285D2D39A667 /* ExportSheet.swift in Sources */,
  424. 9EAB929A4063EF9BCBCC1E05 /* FileNameTemplate.swift in Sources */,
  425. F7058DDE85BB601CBB7C9BD9 /* GlobalSearchSheet.swift in Sources */,
  426. 2018533194941BADC392CCD0 /* GroupTemplateEditorSheet.swift in Sources */,
  427. 48D625A899FB4CD97A1CAC48 /* GroupTemplateResolver.swift in Sources */,
  428. EE13D90C3C2ACF1348391C69 /* KeyDetector.swift in Sources */,
  429. C95509E70051622AE49B65E3 /* KeyboardShortcutConfig.swift in Sources */,
  430. CC8BC49C6AF43733936E3A4C /* KeychainService.swift in Sources */,
  431. EAC68B369B8957C0809C767A /* LRCLIBService.swift in Sources */,
  432. 8CEE003726D0A7A94B0F2A62 /* LibraryManager.swift in Sources */,
  433. 58718BAD0FD35D0D999F7C43 /* LyricsParser.swift in Sources */,
  434. 1F5879AF2B534B9D146D4AEC /* M3UExporter.swift in Sources */,
  435. 735062052406557AD5EA269A /* MediaKeyHandler.swift in Sources */,
  436. DD8CAE7B23CD799AF8D4934F /* MetadataService.swift in Sources */,
  437. 289A2312A2E8CAC34308F7FB /* MixBoardApp.swift in Sources */,
  438. 6C71B39EA00C5E9579EF6C7C /* NowPlayingView.swift in Sources */,
  439. 3777ADCCD94A17218C335EE2 /* OGGDecoder.swift in Sources */,
  440. 5AA97C256D3B08ABF017DD0E /* PlayerView.swift in Sources */,
  441. 37471C3642A075ED661A2DB9 /* PlayerViewModel.swift in Sources */,
  442. C5176BA733BF12E3469B0EAC /* Playlist.swift in Sources */,
  443. E60123D4FFD92FBD9B3B4E69 /* PlaylistFolder.swift in Sources */,
  444. 1528E4838F567A508BE4A11D /* PlaylistView.swift in Sources */,
  445. A7A5B8BB3004AB1F33924352 /* PlaylistViewConfig.swift in Sources */,
  446. 691A0746845CBD34C766E634 /* PlaylistViewModel.swift in Sources */,
  447. 0B7C4BD3AC54C81F59D95769 /* SettingsView.swift in Sources */,
  448. 57994E3E18195FD31CBDC82B /* SidebarView.swift in Sources */,
  449. 88BFFA594A1BB6BFF3D0AA82 /* StreamingPlayer.swift in Sources */,
  450. B19F5B2E4587252976BE904E /* SyncImporter.swift in Sources */,
  451. 062F31FB5DC04601FA178F29 /* SyncWatcher.swift in Sources */,
  452. 1085C4BC3C8EFE23DD89A7F9 /* Track.swift in Sources */,
  453. 45C89316C5AB16272EC76D9F /* TrackRow.swift in Sources */,
  454. 60B4E444C175C98B6F762762 /* WaveformGenerator.swift in Sources */,
  455. CD58E38E196F93425131B213 /* WaveformView.swift in Sources */,
  456. 690AA870FCF9B4A26EED8725 /* stb_vorbis.c in Sources */,
  457. );
  458. runOnlyForDeploymentPostprocessing = 0;
  459. };
  460. FD3BC3A2C6095A051DFDC56F /* Sources */ = {
  461. isa = PBXSourcesBuildPhase;
  462. buildActionMask = 2147483647;
  463. files = (
  464. 0475F2DDF3E2B282DDD32730 /* ChadMusicTests.swift in Sources */,
  465. B1168E099BF810B143F9CECD /* E2EWorkflowTests.swift in Sources */,
  466. 42D7ED2A29566B252DADFC2D /* ExporterTests.swift in Sources */,
  467. 9C5A7DDD55E5367DB6E2AE96 /* FileNameTemplateTests.swift in Sources */,
  468. 19D734917A3D1D41990795E6 /* IntegrationTests.swift in Sources */,
  469. 7FD8DC64107B2249CD5BEF1E /* ModelTests.swift in Sources */,
  470. 3F3163BC5FFAA0EC64603580 /* ServiceTests.swift in Sources */,
  471. 2897F9B97E53C752BC8291EC /* TestHelpers.swift in Sources */,
  472. );
  473. runOnlyForDeploymentPostprocessing = 0;
  474. };
  475. /* End PBXSourcesBuildPhase section */
  476. /* Begin PBXTargetDependency section */
  477. E6079E5A6C41D14651270BF4 /* PBXTargetDependency */ = {
  478. isa = PBXTargetDependency;
  479. target = 33EFC91F348AC0E1F8512ECA /* MixBoard */;
  480. targetProxy = 25C442C870895C13C18E6E2D /* PBXContainerItemProxy */;
  481. };
  482. /* End PBXTargetDependency section */
  483. /* Begin XCBuildConfiguration section */
  484. 1B9CCD89D83C172231368ADA /* Release */ = {
  485. isa = XCBuildConfiguration;
  486. buildSettings = {
  487. ALWAYS_SEARCH_USER_PATHS = NO;
  488. CLANG_ANALYZER_NONNULL = YES;
  489. CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  490. CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
  491. CLANG_CXX_LIBRARY = "libc++";
  492. CLANG_ENABLE_MODULES = YES;
  493. CLANG_ENABLE_OBJC_ARC = YES;
  494. CLANG_ENABLE_OBJC_WEAK = YES;
  495. CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  496. CLANG_WARN_BOOL_CONVERSION = YES;
  497. CLANG_WARN_COMMA = YES;
  498. CLANG_WARN_CONSTANT_CONVERSION = YES;
  499. CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  500. CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  501. CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  502. CLANG_WARN_EMPTY_BODY = YES;
  503. CLANG_WARN_ENUM_CONVERSION = YES;
  504. CLANG_WARN_INFINITE_RECURSION = YES;
  505. CLANG_WARN_INT_CONVERSION = YES;
  506. CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  507. CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
  508. CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  509. CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  510. CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
  511. CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  512. CLANG_WARN_STRICT_PROTOTYPES = YES;
  513. CLANG_WARN_SUSPICIOUS_MOVE = YES;
  514. CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
  515. CLANG_WARN_UNREACHABLE_CODE = YES;
  516. CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  517. COPY_PHASE_STRIP = NO;
  518. DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  519. ENABLE_NS_ASSERTIONS = NO;
  520. ENABLE_STRICT_OBJC_MSGSEND = YES;
  521. GCC_C_LANGUAGE_STANDARD = gnu11;
  522. GCC_NO_COMMON_BLOCKS = YES;
  523. GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  524. GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  525. GCC_WARN_UNDECLARED_SELECTOR = YES;
  526. GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  527. GCC_WARN_UNUSED_FUNCTION = YES;
  528. GCC_WARN_UNUSED_VARIABLE = YES;
  529. MACOSX_DEPLOYMENT_TARGET = 14.0;
  530. MTL_ENABLE_DEBUG_INFO = NO;
  531. MTL_FAST_MATH = YES;
  532. PRODUCT_NAME = "$(TARGET_NAME)";
  533. SDKROOT = macosx;
  534. SWIFT_COMPILATION_MODE = wholemodule;
  535. SWIFT_OPTIMIZATION_LEVEL = "-O";
  536. SWIFT_VERSION = 5.9;
  537. };
  538. name = Release;
  539. };
  540. 21DC24B16F3B58685674049B /* Debug */ = {
  541. isa = XCBuildConfiguration;
  542. buildSettings = {
  543. BUNDLE_LOADER = "$(TEST_HOST)";
  544. CODE_SIGN_IDENTITY = "-";
  545. COMBINE_HIDPI_IMAGES = YES;
  546. GENERATE_INFOPLIST_FILE = YES;
  547. LD_RUNPATH_SEARCH_PATHS = (
  548. "$(inherited)",
  549. "@executable_path/../Frameworks",
  550. "@loader_path/../Frameworks",
  551. );
  552. PRODUCT_BUNDLE_IDENTIFIER = com.mixboard.MixBoardTests;
  553. SDKROOT = macosx;
  554. TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MixBoard.app/Contents/MacOS/MixBoard";
  555. };
  556. name = Debug;
  557. };
  558. 24D35514AD0D97CAAA38C4D2 /* Debug */ = {
  559. isa = XCBuildConfiguration;
  560. buildSettings = {
  561. ALWAYS_SEARCH_USER_PATHS = NO;
  562. CLANG_ANALYZER_NONNULL = YES;
  563. CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  564. CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
  565. CLANG_CXX_LIBRARY = "libc++";
  566. CLANG_ENABLE_MODULES = YES;
  567. CLANG_ENABLE_OBJC_ARC = YES;
  568. CLANG_ENABLE_OBJC_WEAK = YES;
  569. CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  570. CLANG_WARN_BOOL_CONVERSION = YES;
  571. CLANG_WARN_COMMA = YES;
  572. CLANG_WARN_CONSTANT_CONVERSION = YES;
  573. CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  574. CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  575. CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  576. CLANG_WARN_EMPTY_BODY = YES;
  577. CLANG_WARN_ENUM_CONVERSION = YES;
  578. CLANG_WARN_INFINITE_RECURSION = YES;
  579. CLANG_WARN_INT_CONVERSION = YES;
  580. CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  581. CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
  582. CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  583. CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  584. CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
  585. CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  586. CLANG_WARN_STRICT_PROTOTYPES = YES;
  587. CLANG_WARN_SUSPICIOUS_MOVE = YES;
  588. CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
  589. CLANG_WARN_UNREACHABLE_CODE = YES;
  590. CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  591. COPY_PHASE_STRIP = NO;
  592. DEBUG_INFORMATION_FORMAT = dwarf;
  593. ENABLE_STRICT_OBJC_MSGSEND = YES;
  594. ENABLE_TESTABILITY = YES;
  595. GCC_C_LANGUAGE_STANDARD = gnu11;
  596. GCC_DYNAMIC_NO_PIC = NO;
  597. GCC_NO_COMMON_BLOCKS = YES;
  598. GCC_OPTIMIZATION_LEVEL = 0;
  599. GCC_PREPROCESSOR_DEFINITIONS = (
  600. "$(inherited)",
  601. "DEBUG=1",
  602. );
  603. GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  604. GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  605. GCC_WARN_UNDECLARED_SELECTOR = YES;
  606. GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  607. GCC_WARN_UNUSED_FUNCTION = YES;
  608. GCC_WARN_UNUSED_VARIABLE = YES;
  609. MACOSX_DEPLOYMENT_TARGET = 14.0;
  610. MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
  611. MTL_FAST_MATH = YES;
  612. ONLY_ACTIVE_ARCH = YES;
  613. PRODUCT_NAME = "$(TARGET_NAME)";
  614. SDKROOT = macosx;
  615. SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
  616. SWIFT_OPTIMIZATION_LEVEL = "-Onone";
  617. SWIFT_VERSION = 5.9;
  618. };
  619. name = Debug;
  620. };
  621. 8F60504DD4F1A90D1B98AA58 /* Debug */ = {
  622. isa = XCBuildConfiguration;
  623. buildSettings = {
  624. ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  625. CODE_SIGN_ENTITLEMENTS = "";
  626. COMBINE_HIDPI_IMAGES = YES;
  627. CURRENT_PROJECT_VERSION = 1;
  628. ENABLE_HARDENED_RUNTIME = YES;
  629. GENERATE_INFOPLIST_FILE = NO;
  630. INFOPLIST_FILE = Sources/Resources/Info.plist;
  631. INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.music";
  632. LD_RUNPATH_SEARCH_PATHS = (
  633. "$(inherited)",
  634. "@executable_path/../Frameworks",
  635. );
  636. MARKETING_VERSION = 1.0.0;
  637. PRODUCT_BUNDLE_IDENTIFIER = com.mixboard.MixBoard;
  638. PRODUCT_NAME = MixBoard;
  639. SDKROOT = macosx;
  640. SWIFT_EMIT_LOC_STRINGS = YES;
  641. SWIFT_OBJC_BRIDGING_HEADER = "Sources/OGG/MixBoard-Bridging-Header.h";
  642. };
  643. name = Debug;
  644. };
  645. B66C8C9AD9C8CFC483BCCBB9 /* Release */ = {
  646. isa = XCBuildConfiguration;
  647. buildSettings = {
  648. ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  649. CODE_SIGN_ENTITLEMENTS = "";
  650. COMBINE_HIDPI_IMAGES = YES;
  651. CURRENT_PROJECT_VERSION = 1;
  652. ENABLE_HARDENED_RUNTIME = YES;
  653. GENERATE_INFOPLIST_FILE = NO;
  654. INFOPLIST_FILE = Sources/Resources/Info.plist;
  655. INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.music";
  656. LD_RUNPATH_SEARCH_PATHS = (
  657. "$(inherited)",
  658. "@executable_path/../Frameworks",
  659. );
  660. MARKETING_VERSION = 1.0.0;
  661. PRODUCT_BUNDLE_IDENTIFIER = com.mixboard.MixBoard;
  662. PRODUCT_NAME = MixBoard;
  663. SDKROOT = macosx;
  664. SWIFT_EMIT_LOC_STRINGS = YES;
  665. SWIFT_OBJC_BRIDGING_HEADER = "Sources/OGG/MixBoard-Bridging-Header.h";
  666. };
  667. name = Release;
  668. };
  669. C9318D7BE959F0CE4CE98DE9 /* Release */ = {
  670. isa = XCBuildConfiguration;
  671. buildSettings = {
  672. BUNDLE_LOADER = "$(TEST_HOST)";
  673. COMBINE_HIDPI_IMAGES = YES;
  674. GENERATE_INFOPLIST_FILE = YES;
  675. LD_RUNPATH_SEARCH_PATHS = (
  676. "$(inherited)",
  677. "@executable_path/../Frameworks",
  678. "@loader_path/../Frameworks",
  679. );
  680. PRODUCT_BUNDLE_IDENTIFIER = com.mixboard.MixBoardTests;
  681. SDKROOT = macosx;
  682. TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MixBoard.app/Contents/MacOS/MixBoard";
  683. };
  684. name = Release;
  685. };
  686. /* End XCBuildConfiguration section */
  687. /* Begin XCConfigurationList section */
  688. 4884383C090DF98ADA109D6F /* Build configuration list for PBXProject "MixBoard" */ = {
  689. isa = XCConfigurationList;
  690. buildConfigurations = (
  691. 24D35514AD0D97CAAA38C4D2 /* Debug */,
  692. 1B9CCD89D83C172231368ADA /* Release */,
  693. );
  694. defaultConfigurationIsVisible = 0;
  695. defaultConfigurationName = Debug;
  696. };
  697. 54EA94000DA7B2E23947C31C /* Build configuration list for PBXNativeTarget "MixBoardTests" */ = {
  698. isa = XCConfigurationList;
  699. buildConfigurations = (
  700. 21DC24B16F3B58685674049B /* Debug */,
  701. C9318D7BE959F0CE4CE98DE9 /* Release */,
  702. );
  703. defaultConfigurationIsVisible = 0;
  704. defaultConfigurationName = Debug;
  705. };
  706. DFC1DA5FC46C11C509725EB9 /* Build configuration list for PBXNativeTarget "MixBoard" */ = {
  707. isa = XCConfigurationList;
  708. buildConfigurations = (
  709. 8F60504DD4F1A90D1B98AA58 /* Debug */,
  710. B66C8C9AD9C8CFC483BCCBB9 /* Release */,
  711. );
  712. defaultConfigurationIsVisible = 0;
  713. defaultConfigurationName = Debug;
  714. };
  715. /* End XCConfigurationList section */
  716. };
  717. rootObject = 1493F43231E452AC09121B22 /* Project object */;
  718. }