├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ ├── config.yml │ └── feature_request.yml ├── assets │ ├── hero_screenshot.png │ ├── macos_download.png │ ├── screenshot_1.png │ ├── screenshot_2.png │ ├── screenshot_3.png │ ├── screenshot_4.png │ ├── screenshot_5.png │ ├── screenshot_6.png │ └── screenshot_7.png └── workflows │ ├── ci.yml │ └── sponsors.yml ├── .gitignore ├── .swiftlint.yml ├── .vscode ├── launch.json └── tasks.json ├── ACKNOWLEDGEMENTS.md ├── Application ├── AppCoordinator.swift ├── AppDelegate.swift └── WindowDelegate.swift ├── Configuration ├── Info.plist └── Petrichor.entitlements ├── Core ├── ArtistParser.swift ├── AudioPlayer.swift ├── LibrarySearch.swift ├── Logger.swift └── MetadataExtractor.swift ├── LICENSE ├── Managers ├── Database │ ├── DMCategoryQueries.swift │ ├── DMCleanup.swift │ ├── DMFolders.swift │ ├── DMMetadata.swift │ ├── DMNormalization.swift │ ├── DMPinnedItems.swift │ ├── DMPlaylists.swift │ ├── DMQueries.swift │ ├── DMSearchQueries.swift │ ├── DMSetup.swift │ ├── DMSmartPlaylistQueries.swift │ ├── DMTrackProcessing.swift │ ├── DMTrackUpdate.swift │ ├── DatabaseManager.swift │ └── DatabaseMigration.swift ├── FolderHierarchyBuilder.swift ├── Library │ ├── LMDiscover.swift │ ├── LMFolders.swift │ ├── LMLibrary.swift │ ├── LMPinnedItems.swift │ ├── LMQueries.swift │ └── LibraryManager.swift ├── MenuBarManager.swift ├── NowPlayingManager.swift ├── PlaybackManager.swift ├── Playlist │ ├── PMPinnedItems.swift │ ├── PMPlayback.swift │ ├── PMQueue.swift │ ├── PMRegularPlaylists.swift │ ├── PMSmartPlaylistEvaluator.swift │ ├── PMSmartPlaylists.swift │ ├── PMTrackUpdate.swift │ └── PlaylistManager.swift └── PlaylistSortManager.swift ├── Models ├── Core │ ├── Album.swift │ ├── AlbumArtist.swift │ ├── Artist.swift │ ├── Entity.swift │ ├── EqualizerPreset.swift │ ├── ExtendedMetadata.swift │ ├── Folder.swift │ ├── FolderNode.swift │ ├── FullTrack.swift │ ├── Genre.swift │ ├── LibraryFilterItem.swift │ ├── PinnedItem.swift │ ├── PlaybackProgressState.swift │ ├── PlaybackState.swift │ ├── Playlist.swift │ ├── PlaylistTrack.swift │ ├── Track.swift │ ├── TrackArtist.swift │ └── TrackGenre.swift └── Enums │ ├── AutoScanInterval.swift │ ├── ContextMenuItem.swift │ ├── DiscoverUpdateInterval.swift │ ├── LibraryFilterType.swift │ ├── RepeatMode.swift │ ├── Sections.swift │ ├── TableRowSize.swift │ └── TrackTableColumn.swift ├── Petrichor.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── WorkspaceSettings.xcsettings │ │ └── swiftpm │ │ └── Package.resolved └── xcshareddata │ └── xcschemes │ └── Petrichor.xcscheme ├── PetrichorApp.swift ├── README.md ├── Resources ├── AppIcon.icon │ ├── Assets │ │ ├── Dark.png │ │ └── Default.png │ └── icon.json └── Assets.xcassets │ ├── AccentColor.colorset │ └── Contents.json │ ├── Contents.json │ ├── DefaultAppIcon.imageset │ ├── Contents.json │ └── Default.png │ ├── custom.lossless.imageset │ ├── Contents.json │ └── apple-lossless-seeklogo.svg │ ├── custom.music.imageset │ ├── Contents.json │ └── custom.music.svg │ ├── custom.music.note.rectangle.stack.fill.symbolset │ ├── Contents.json │ └── custom.music.note.rectangle.stack.fill.svg │ ├── custom.music.note.rectangle.stack.symbolset │ ├── Contents.json │ └── custom.music.note.rectangle.stack.svg │ ├── sort.ascending.imageset │ ├── Contents.json │ └── custom.sort.ascending.svg │ └── sort.descending.imageset │ ├── Contents.json │ └── custom.sort.descending.svg ├── Scripts └── build-installer.sh ├── Utilities ├── AppInfo.swift ├── Constants.swift ├── FilesystemUtils.swift └── ImageResizer.swift └── Views ├── Components ├── ActivityAnimation.swift ├── EntityGridView.swift ├── EntityView.swift ├── HoverEffect.swift ├── ListHeader.swift ├── NoMusicEmptyStateView.swift ├── PersistentSplitView.swift ├── Sidebar │ ├── SidebarItemRow.swift │ ├── SidebarListView.swift │ └── SidebarProtocol.swift ├── SidebarView.swift ├── TrackContextMenu.swift ├── TrackView.swift ├── TrackViews │ ├── TrackTableOptionsDropdown.swift │ └── TrackTableView.swift └── Widgets │ ├── IconOnlyDropdown.swift │ ├── MarqueeText.swift │ ├── NotificationTray.swift │ ├── SearchInputField.swift │ ├── TabbedButtons.swift │ └── VerticalSlider.swift ├── Folders ├── FolderSidebarView.swift └── FoldersView.swift ├── Home ├── EntityDetailView.swift ├── HomeSidebarView.swift └── HomeView.swift ├── Library ├── LibrarySidebarView.swift └── LibraryView.swift ├── Main ├── ContentView.swift ├── PlayQueueView.swift ├── PlayerView.swift └── TrackDetailView.swift ├── Playlists ├── PlaylistDetailView.swift ├── PlaylistSidebarView.swift ├── PlaylistsView.swift └── Sheets │ └── AddSongsToPlaylistSheet.swift └── Settings ├── AboutTabView.swift ├── EqualizerView.swift ├── GeneralTabView.swift ├── LibraryTabView.swift └── SettingsView.swift /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: kushalpandya -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/ISSUE_TEMPLATE/bug_report.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/ISSUE_TEMPLATE/config.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/ISSUE_TEMPLATE/feature_request.yml -------------------------------------------------------------------------------- /.github/assets/hero_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/assets/hero_screenshot.png -------------------------------------------------------------------------------- /.github/assets/macos_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/assets/macos_download.png -------------------------------------------------------------------------------- /.github/assets/screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/assets/screenshot_1.png -------------------------------------------------------------------------------- /.github/assets/screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/assets/screenshot_2.png -------------------------------------------------------------------------------- /.github/assets/screenshot_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/assets/screenshot_3.png -------------------------------------------------------------------------------- /.github/assets/screenshot_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/assets/screenshot_4.png -------------------------------------------------------------------------------- /.github/assets/screenshot_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/assets/screenshot_5.png -------------------------------------------------------------------------------- /.github/assets/screenshot_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/assets/screenshot_6.png -------------------------------------------------------------------------------- /.github/assets/screenshot_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/assets/screenshot_7.png -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/sponsors.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.github/workflows/sponsors.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.gitignore -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.swiftlint.yml -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/.vscode/tasks.json -------------------------------------------------------------------------------- /ACKNOWLEDGEMENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/ACKNOWLEDGEMENTS.md -------------------------------------------------------------------------------- /Application/AppCoordinator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Application/AppCoordinator.swift -------------------------------------------------------------------------------- /Application/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Application/AppDelegate.swift -------------------------------------------------------------------------------- /Application/WindowDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Application/WindowDelegate.swift -------------------------------------------------------------------------------- /Configuration/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Configuration/Info.plist -------------------------------------------------------------------------------- /Configuration/Petrichor.entitlements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Configuration/Petrichor.entitlements -------------------------------------------------------------------------------- /Core/ArtistParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Core/ArtistParser.swift -------------------------------------------------------------------------------- /Core/AudioPlayer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Core/AudioPlayer.swift -------------------------------------------------------------------------------- /Core/LibrarySearch.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Core/LibrarySearch.swift -------------------------------------------------------------------------------- /Core/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Core/Logger.swift -------------------------------------------------------------------------------- /Core/MetadataExtractor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Core/MetadataExtractor.swift -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/LICENSE -------------------------------------------------------------------------------- /Managers/Database/DMCategoryQueries.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMCategoryQueries.swift -------------------------------------------------------------------------------- /Managers/Database/DMCleanup.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMCleanup.swift -------------------------------------------------------------------------------- /Managers/Database/DMFolders.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMFolders.swift -------------------------------------------------------------------------------- /Managers/Database/DMMetadata.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMMetadata.swift -------------------------------------------------------------------------------- /Managers/Database/DMNormalization.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMNormalization.swift -------------------------------------------------------------------------------- /Managers/Database/DMPinnedItems.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMPinnedItems.swift -------------------------------------------------------------------------------- /Managers/Database/DMPlaylists.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMPlaylists.swift -------------------------------------------------------------------------------- /Managers/Database/DMQueries.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMQueries.swift -------------------------------------------------------------------------------- /Managers/Database/DMSearchQueries.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMSearchQueries.swift -------------------------------------------------------------------------------- /Managers/Database/DMSetup.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMSetup.swift -------------------------------------------------------------------------------- /Managers/Database/DMSmartPlaylistQueries.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMSmartPlaylistQueries.swift -------------------------------------------------------------------------------- /Managers/Database/DMTrackProcessing.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMTrackProcessing.swift -------------------------------------------------------------------------------- /Managers/Database/DMTrackUpdate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DMTrackUpdate.swift -------------------------------------------------------------------------------- /Managers/Database/DatabaseManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DatabaseManager.swift -------------------------------------------------------------------------------- /Managers/Database/DatabaseMigration.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Database/DatabaseMigration.swift -------------------------------------------------------------------------------- /Managers/FolderHierarchyBuilder.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/FolderHierarchyBuilder.swift -------------------------------------------------------------------------------- /Managers/Library/LMDiscover.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Library/LMDiscover.swift -------------------------------------------------------------------------------- /Managers/Library/LMFolders.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Library/LMFolders.swift -------------------------------------------------------------------------------- /Managers/Library/LMLibrary.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Library/LMLibrary.swift -------------------------------------------------------------------------------- /Managers/Library/LMPinnedItems.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Library/LMPinnedItems.swift -------------------------------------------------------------------------------- /Managers/Library/LMQueries.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Library/LMQueries.swift -------------------------------------------------------------------------------- /Managers/Library/LibraryManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Library/LibraryManager.swift -------------------------------------------------------------------------------- /Managers/MenuBarManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/MenuBarManager.swift -------------------------------------------------------------------------------- /Managers/NowPlayingManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/NowPlayingManager.swift -------------------------------------------------------------------------------- /Managers/PlaybackManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/PlaybackManager.swift -------------------------------------------------------------------------------- /Managers/Playlist/PMPinnedItems.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Playlist/PMPinnedItems.swift -------------------------------------------------------------------------------- /Managers/Playlist/PMPlayback.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Playlist/PMPlayback.swift -------------------------------------------------------------------------------- /Managers/Playlist/PMQueue.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Playlist/PMQueue.swift -------------------------------------------------------------------------------- /Managers/Playlist/PMRegularPlaylists.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Playlist/PMRegularPlaylists.swift -------------------------------------------------------------------------------- /Managers/Playlist/PMSmartPlaylistEvaluator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Playlist/PMSmartPlaylistEvaluator.swift -------------------------------------------------------------------------------- /Managers/Playlist/PMSmartPlaylists.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Playlist/PMSmartPlaylists.swift -------------------------------------------------------------------------------- /Managers/Playlist/PMTrackUpdate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Playlist/PMTrackUpdate.swift -------------------------------------------------------------------------------- /Managers/Playlist/PlaylistManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/Playlist/PlaylistManager.swift -------------------------------------------------------------------------------- /Managers/PlaylistSortManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Managers/PlaylistSortManager.swift -------------------------------------------------------------------------------- /Models/Core/Album.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/Album.swift -------------------------------------------------------------------------------- /Models/Core/AlbumArtist.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/AlbumArtist.swift -------------------------------------------------------------------------------- /Models/Core/Artist.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/Artist.swift -------------------------------------------------------------------------------- /Models/Core/Entity.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/Entity.swift -------------------------------------------------------------------------------- /Models/Core/EqualizerPreset.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/EqualizerPreset.swift -------------------------------------------------------------------------------- /Models/Core/ExtendedMetadata.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/ExtendedMetadata.swift -------------------------------------------------------------------------------- /Models/Core/Folder.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/Folder.swift -------------------------------------------------------------------------------- /Models/Core/FolderNode.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/FolderNode.swift -------------------------------------------------------------------------------- /Models/Core/FullTrack.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/FullTrack.swift -------------------------------------------------------------------------------- /Models/Core/Genre.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/Genre.swift -------------------------------------------------------------------------------- /Models/Core/LibraryFilterItem.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/LibraryFilterItem.swift -------------------------------------------------------------------------------- /Models/Core/PinnedItem.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/PinnedItem.swift -------------------------------------------------------------------------------- /Models/Core/PlaybackProgressState.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/PlaybackProgressState.swift -------------------------------------------------------------------------------- /Models/Core/PlaybackState.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/PlaybackState.swift -------------------------------------------------------------------------------- /Models/Core/Playlist.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/Playlist.swift -------------------------------------------------------------------------------- /Models/Core/PlaylistTrack.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/PlaylistTrack.swift -------------------------------------------------------------------------------- /Models/Core/Track.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/Track.swift -------------------------------------------------------------------------------- /Models/Core/TrackArtist.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/TrackArtist.swift -------------------------------------------------------------------------------- /Models/Core/TrackGenre.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Core/TrackGenre.swift -------------------------------------------------------------------------------- /Models/Enums/AutoScanInterval.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Enums/AutoScanInterval.swift -------------------------------------------------------------------------------- /Models/Enums/ContextMenuItem.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Enums/ContextMenuItem.swift -------------------------------------------------------------------------------- /Models/Enums/DiscoverUpdateInterval.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Enums/DiscoverUpdateInterval.swift -------------------------------------------------------------------------------- /Models/Enums/LibraryFilterType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Enums/LibraryFilterType.swift -------------------------------------------------------------------------------- /Models/Enums/RepeatMode.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Enums/RepeatMode.swift -------------------------------------------------------------------------------- /Models/Enums/Sections.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Enums/Sections.swift -------------------------------------------------------------------------------- /Models/Enums/TableRowSize.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Enums/TableRowSize.swift -------------------------------------------------------------------------------- /Models/Enums/TrackTableColumn.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Models/Enums/TrackTableColumn.swift -------------------------------------------------------------------------------- /Petrichor.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Petrichor.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Petrichor.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Petrichor.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Petrichor.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Petrichor.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings -------------------------------------------------------------------------------- /Petrichor.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Petrichor.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved -------------------------------------------------------------------------------- /Petrichor.xcodeproj/xcshareddata/xcschemes/Petrichor.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Petrichor.xcodeproj/xcshareddata/xcschemes/Petrichor.xcscheme -------------------------------------------------------------------------------- /PetrichorApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/PetrichorApp.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/README.md -------------------------------------------------------------------------------- /Resources/AppIcon.icon/Assets/Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/AppIcon.icon/Assets/Dark.png -------------------------------------------------------------------------------- /Resources/AppIcon.icon/Assets/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/AppIcon.icon/Assets/Default.png -------------------------------------------------------------------------------- /Resources/AppIcon.icon/icon.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/AppIcon.icon/icon.json -------------------------------------------------------------------------------- /Resources/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /Resources/Assets.xcassets/DefaultAppIcon.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/DefaultAppIcon.imageset/Contents.json -------------------------------------------------------------------------------- /Resources/Assets.xcassets/DefaultAppIcon.imageset/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/DefaultAppIcon.imageset/Default.png -------------------------------------------------------------------------------- /Resources/Assets.xcassets/custom.lossless.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/custom.lossless.imageset/Contents.json -------------------------------------------------------------------------------- /Resources/Assets.xcassets/custom.lossless.imageset/apple-lossless-seeklogo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/custom.lossless.imageset/apple-lossless-seeklogo.svg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/custom.music.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/custom.music.imageset/Contents.json -------------------------------------------------------------------------------- /Resources/Assets.xcassets/custom.music.imageset/custom.music.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/custom.music.imageset/custom.music.svg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/custom.music.note.rectangle.stack.fill.symbolset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/custom.music.note.rectangle.stack.fill.symbolset/Contents.json -------------------------------------------------------------------------------- /Resources/Assets.xcassets/custom.music.note.rectangle.stack.fill.symbolset/custom.music.note.rectangle.stack.fill.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/custom.music.note.rectangle.stack.fill.symbolset/custom.music.note.rectangle.stack.fill.svg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/custom.music.note.rectangle.stack.symbolset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/custom.music.note.rectangle.stack.symbolset/Contents.json -------------------------------------------------------------------------------- /Resources/Assets.xcassets/custom.music.note.rectangle.stack.symbolset/custom.music.note.rectangle.stack.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/custom.music.note.rectangle.stack.symbolset/custom.music.note.rectangle.stack.svg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/sort.ascending.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/sort.ascending.imageset/Contents.json -------------------------------------------------------------------------------- /Resources/Assets.xcassets/sort.ascending.imageset/custom.sort.ascending.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/sort.ascending.imageset/custom.sort.ascending.svg -------------------------------------------------------------------------------- /Resources/Assets.xcassets/sort.descending.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/sort.descending.imageset/Contents.json -------------------------------------------------------------------------------- /Resources/Assets.xcassets/sort.descending.imageset/custom.sort.descending.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Resources/Assets.xcassets/sort.descending.imageset/custom.sort.descending.svg -------------------------------------------------------------------------------- /Scripts/build-installer.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Scripts/build-installer.sh -------------------------------------------------------------------------------- /Utilities/AppInfo.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Utilities/AppInfo.swift -------------------------------------------------------------------------------- /Utilities/Constants.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Utilities/Constants.swift -------------------------------------------------------------------------------- /Utilities/FilesystemUtils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Utilities/FilesystemUtils.swift -------------------------------------------------------------------------------- /Utilities/ImageResizer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Utilities/ImageResizer.swift -------------------------------------------------------------------------------- /Views/Components/ActivityAnimation.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/ActivityAnimation.swift -------------------------------------------------------------------------------- /Views/Components/EntityGridView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/EntityGridView.swift -------------------------------------------------------------------------------- /Views/Components/EntityView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/EntityView.swift -------------------------------------------------------------------------------- /Views/Components/HoverEffect.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/HoverEffect.swift -------------------------------------------------------------------------------- /Views/Components/ListHeader.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/ListHeader.swift -------------------------------------------------------------------------------- /Views/Components/NoMusicEmptyStateView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/NoMusicEmptyStateView.swift -------------------------------------------------------------------------------- /Views/Components/PersistentSplitView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/PersistentSplitView.swift -------------------------------------------------------------------------------- /Views/Components/Sidebar/SidebarItemRow.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/Sidebar/SidebarItemRow.swift -------------------------------------------------------------------------------- /Views/Components/Sidebar/SidebarListView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/Sidebar/SidebarListView.swift -------------------------------------------------------------------------------- /Views/Components/Sidebar/SidebarProtocol.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/Sidebar/SidebarProtocol.swift -------------------------------------------------------------------------------- /Views/Components/SidebarView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/SidebarView.swift -------------------------------------------------------------------------------- /Views/Components/TrackContextMenu.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/TrackContextMenu.swift -------------------------------------------------------------------------------- /Views/Components/TrackView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/TrackView.swift -------------------------------------------------------------------------------- /Views/Components/TrackViews/TrackTableOptionsDropdown.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/TrackViews/TrackTableOptionsDropdown.swift -------------------------------------------------------------------------------- /Views/Components/TrackViews/TrackTableView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/TrackViews/TrackTableView.swift -------------------------------------------------------------------------------- /Views/Components/Widgets/IconOnlyDropdown.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/Widgets/IconOnlyDropdown.swift -------------------------------------------------------------------------------- /Views/Components/Widgets/MarqueeText.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/Widgets/MarqueeText.swift -------------------------------------------------------------------------------- /Views/Components/Widgets/NotificationTray.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/Widgets/NotificationTray.swift -------------------------------------------------------------------------------- /Views/Components/Widgets/SearchInputField.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/Widgets/SearchInputField.swift -------------------------------------------------------------------------------- /Views/Components/Widgets/TabbedButtons.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/Widgets/TabbedButtons.swift -------------------------------------------------------------------------------- /Views/Components/Widgets/VerticalSlider.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Components/Widgets/VerticalSlider.swift -------------------------------------------------------------------------------- /Views/Folders/FolderSidebarView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Folders/FolderSidebarView.swift -------------------------------------------------------------------------------- /Views/Folders/FoldersView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Folders/FoldersView.swift -------------------------------------------------------------------------------- /Views/Home/EntityDetailView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Home/EntityDetailView.swift -------------------------------------------------------------------------------- /Views/Home/HomeSidebarView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Home/HomeSidebarView.swift -------------------------------------------------------------------------------- /Views/Home/HomeView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Home/HomeView.swift -------------------------------------------------------------------------------- /Views/Library/LibrarySidebarView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Library/LibrarySidebarView.swift -------------------------------------------------------------------------------- /Views/Library/LibraryView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Library/LibraryView.swift -------------------------------------------------------------------------------- /Views/Main/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Main/ContentView.swift -------------------------------------------------------------------------------- /Views/Main/PlayQueueView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Main/PlayQueueView.swift -------------------------------------------------------------------------------- /Views/Main/PlayerView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Main/PlayerView.swift -------------------------------------------------------------------------------- /Views/Main/TrackDetailView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Main/TrackDetailView.swift -------------------------------------------------------------------------------- /Views/Playlists/PlaylistDetailView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Playlists/PlaylistDetailView.swift -------------------------------------------------------------------------------- /Views/Playlists/PlaylistSidebarView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Playlists/PlaylistSidebarView.swift -------------------------------------------------------------------------------- /Views/Playlists/PlaylistsView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Playlists/PlaylistsView.swift -------------------------------------------------------------------------------- /Views/Playlists/Sheets/AddSongsToPlaylistSheet.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Playlists/Sheets/AddSongsToPlaylistSheet.swift -------------------------------------------------------------------------------- /Views/Settings/AboutTabView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Settings/AboutTabView.swift -------------------------------------------------------------------------------- /Views/Settings/EqualizerView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Settings/EqualizerView.swift -------------------------------------------------------------------------------- /Views/Settings/GeneralTabView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Settings/GeneralTabView.swift -------------------------------------------------------------------------------- /Views/Settings/LibraryTabView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Settings/LibraryTabView.swift -------------------------------------------------------------------------------- /Views/Settings/SettingsView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kushalpandya/Petrichor/HEAD/Views/Settings/SettingsView.swift --------------------------------------------------------------------------------