Define playlists for presets

main
Laurent 3 years ago
parent c7780497a6
commit 47d17734c1
  1. 2
      LeCountdown.xcodeproj/project.pbxproj
  2. 2
      LeCountdown/Sound/Sound.swift
  3. 25
      LeCountdown/Views/PresetsView.swift
  4. 4
      LeCountdown/Views/Reusable/TimerModel.swift

@ -1475,7 +1475,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO; COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES; ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;

@ -181,7 +181,7 @@ enum Sound: Int, CaseIterable, Identifiable, Localized {
var isRestricted: Bool { var isRestricted: Bool {
switch self { switch self {
case .sbSEM_Synths_Loop4_Nothing_Like_You, .sbLoop_ToneSD_Boavista, .FF_SH_bowl_drone_tapping_C, .EX_ATSM_Bell_Binaural_Flam_Eb, .tropicalForestMorning, .rain_soft: case .sbSEM_Synths_Loop4_Nothing_Like_You, .sbLoop_ToneSD_Boavista, .FF_SH_bowl_drone_tapping_C, .EX_ATSM_Bell_Binaural_Flam_Eb, .tropicalForestMorning, .rain_soft, .ESM_Ambient_Game_Menu_Soft_Wood:
return false return false
default: default:
return true return true

@ -250,20 +250,19 @@ enum Preset: Int, Identifiable, CaseIterable {
} }
} }
var sound: Set<Sound> { var playlist: Playlist {
switch self { switch self {
case .softBoiled: return [] case .softBoiled, .mediumBoiledEggs, .hardBoiledEggs, .pasta, .rice, .runningSplits, .toothbrushing:
case .mediumBoiledEggs: return [] return .stephanBodzin
case .hardBoiledEggs: return [] case .meditation, .blackTea, .greenTea:
case .meditation: return [] return .relax
case .nap: return [] case .nap:
case .runningSplits: return [] return .nature
case .toothbrushing: return [] }
case .blackTea: return []
case .greenTea: return []
case .pasta: return []
case .rice: return []
} }
var sound: Set<Sound> {
return Set(SoundCatalog.main.sounds(for: self.playlist))
} }
var formattedDuration: String { var formattedDuration: String {
@ -283,7 +282,7 @@ enum Preset: Int, Identifiable, CaseIterable {
} }
var soundTitle: String { var soundTitle: String {
return "Great sound" return self.playlist.localizedString
} }
} }

@ -81,7 +81,7 @@ class SoundModel: ObservableObject, SoundHolder {
fileprivate func _togglePlaylist(_ playlist: Playlist) { fileprivate func _togglePlaylist(_ playlist: Playlist) {
// toggle playlist if necessary // toggle playlist if necessary
let playlistSounds: [Sound] = SoundCatalog.main.sounds(for: playlist) let playlistSounds = SoundCatalog.main.sounds(for: playlist)
if self.sounds.isSuperset(of: playlistSounds) { if self.sounds.isSuperset(of: playlistSounds) {
self.playlists.insert(playlist) self.playlists.insert(playlist)
} else { } else {
@ -92,7 +92,7 @@ class SoundModel: ObservableObject, SoundHolder {
func selectPlaylist(_ playlist: Playlist, selected: Bool) { func selectPlaylist(_ playlist: Playlist, selected: Bool) {
let sounds: [Sound] = SoundCatalog.main.sounds(for: playlist) let sounds = SoundCatalog.main.sounds(for: playlist)
if selected { if selected {
self.playlists.insert(playlist) self.playlists.insert(playlist)
self.sounds.formUnion(sounds) self.sounds.formUnion(sounds)

Loading…
Cancel
Save