Add Tonuino Manager website and Sparkle updates
This commit is contained in:
commit
1cac427ff2
44 files changed
+5861
No files matched your search
@@ -0,0 +1,34 @@
|
||||
import Foundation
|
||||
|
||||
struct MusicFolder: Identifiable, Hashable, Sendable {
|
||||
let number: Int
|
||||
let url: URL
|
||||
var tracks: [MusicTrack]
|
||||
var customName: String? = nil
|
||||
var id: Int { number }
|
||||
var title: String { customName ?? tracks.first(where: { !$0.album.isEmpty })?.album ?? "Ordner \(String(format: "%02d", number))" }
|
||||
}
|
||||
|
||||
struct MusicTrack: Identifiable, Hashable, Sendable {
|
||||
let url: URL
|
||||
var title: String
|
||||
var artist: String
|
||||
var album: String
|
||||
var albumArtist: String = ""
|
||||
var trackNumber: String = ""
|
||||
var discNumber: String = ""
|
||||
var year: String = ""
|
||||
var genre: String = ""
|
||||
var acoustID: String = ""
|
||||
var musicBrainzRecordingID: String = ""
|
||||
var musicBrainzReleaseID: String = ""
|
||||
var id: String { url.path }
|
||||
var displayTitle: String { title.isEmpty ? url.deletingPathExtension().lastPathComponent : title }
|
||||
}
|
||||
|
||||
struct SystemMusicFolder: Identifiable, Hashable, Sendable {
|
||||
let name: String
|
||||
let url: URL
|
||||
var tracks: [MusicTrack]
|
||||
var id: String { name }
|
||||
}
|
||||
Reference in new issue
Block a user