diff --git a/LeCountdown.xcodeproj/project.pbxproj b/LeCountdown.xcodeproj/project.pbxproj index f6fc68f..1a0f37b 100644 --- a/LeCountdown.xcodeproj/project.pbxproj +++ b/LeCountdown.xcodeproj/project.pbxproj @@ -139,6 +139,8 @@ C4A16DC729D311C800143D5E /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A16DC429D311C800143D5E /* Extensions.swift */; }; C4A16DC829D311C800143D5E /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A16DC429D311C800143D5E /* Extensions.swift */; }; C4A16DC929D311C800143D5E /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A16DC429D311C800143D5E /* Extensions.swift */; }; + C4A67AAB29DC167E0098D692 /* rose1.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = C4A67AAA29DC167E0098D692 /* rose1.mp3 */; }; + C4A67AAD29DC16890098D692 /* trancoso_bowl1.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = C4A67AAC29DC16890098D692 /* trancoso_bowl1.mp3 */; }; C4BA2AD62993F62700CB4FBA /* SoundSelectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4BA2AD52993F62700CB4FBA /* SoundSelectionView.swift */; }; C4BA2ADB299549BC00CB4FBA /* TimerModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4BA2ADA299549BC00CB4FBA /* TimerModel.swift */; }; C4BA2ADE2995ABA800CB4FBA /* MatriarchFxs_Loop2_Collider.wav in Resources */ = {isa = PBXBuildFile; fileRef = C4BA2ADD2995ABA800CB4FBA /* MatriarchFxs_Loop2_Collider.wav */; }; @@ -400,6 +402,8 @@ C4A16DBD29D1C9DE00143D5E /* LeCountdown.0.6.3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = LeCountdown.0.6.3.xcdatamodel; sourceTree = ""; }; C4A16DC429D311C800143D5E /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; C4A16DCA29D323CF00143D5E /* LeCountdown.0.6.4.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = LeCountdown.0.6.4.xcdatamodel; sourceTree = ""; }; + C4A67AAA29DC167E0098D692 /* rose1.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = rose1.mp3; sourceTree = ""; }; + C4A67AAC29DC16890098D692 /* trancoso_bowl1.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = trancoso_bowl1.mp3; sourceTree = ""; }; C4BA2AD52993F62700CB4FBA /* SoundSelectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoundSelectionView.swift; sourceTree = ""; }; C4BA2AD72993F7D200CB4FBA /* LeCountdown.0.5.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = LeCountdown.0.5.xcdatamodel; sourceTree = ""; }; C4BA2ADA299549BC00CB4FBA /* TimerModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimerModel.swift; sourceTree = ""; }; @@ -612,6 +616,7 @@ C415D3CC29C0B13A0037B215 /* Relax */ = { isa = PBXGroup; children = ( + C4A67AAC29DC16890098D692 /* trancoso_bowl1.mp3 */, C415D3DF29C0B22C0037B215 /* FF_SH_bowl_drone_tapping_C.wav */, C415D3DD29C0B2230037B215 /* FF_SH_flute_melody_ambient_stacked_profound_Dmin.wav */, C415D3DA29C0B1EA0037B215 /* FF_SH_bowl_drone_tap_hold_E.wav */, @@ -779,6 +784,7 @@ C4BA2ADC2995AB7600CB4FBA /* Stephan_Bodzin */ = { isa = PBXGroup; children = ( + C4A67AAA29DC167E0098D692 /* rose1.mp3 */, C4E5D67B29B8D4A5008E7465 /* Low_Tom_Disto_Earth.wav */, C4BA2AE92995AD1C00CB4FBA /* SEM_Synths_Loop4_Nothing_Like_You.wav */, C4BA2AE52995AC3E00CB4FBA /* Loop_ToneSD_Boavista.wav */, @@ -1074,6 +1080,7 @@ C415D3D529C0B1AB0037B215 /* EX_ATSM_160_Metal_Tonal_Percussion_Sansula_Loop_Call_Am.wav in Resources */, C4BA2AEA2995AD1C00CB4FBA /* SEM_Synths_Loop4_Nothing_Like_You.wav in Resources */, C4A16D8C29C4A5BA00143D5E /* GoogleService-Info.plist in Resources */, + C4A67AAD29DC16890098D692 /* trancoso_bowl1.mp3 in Resources */, C4A16D9B29D0A7D300143D5E /* MRKRSTPHR_synth_one_shot_bleep_G.wav in Resources */, C415D3CE29C0B1430037B215 /* EX_ATSM_20_Inch_Highwall_Bowl_Hit_Ring_Ab.wav in Resources */, C415D3ED29C3765B0037B215 /* QP01 0011 Rain soft.wav in Resources */, @@ -1086,6 +1093,7 @@ C415D3D029C0B1510037B215 /* EX_ATSM_125_Metal_Percussion_Wing_Loop_Chimey_Dm.wav in Resources */, C415D3E029C0B22C0037B215 /* FF_SH_bowl_drone_tapping_C.wav in Resources */, C415D3F529C378230037B215 /* QP01 0028 Insect crickets isolated.wav in Resources */, + C4A67AAB29DC167E0098D692 /* rose1.mp3 in Resources */, C4E5D68229B93583008E7465 /* PVP_Stab_Oneshot_Bleep_Em.wav in Resources */, C4BA2AE42995AC0D00CB4FBA /* Arpeggio_Loop_River.wav in Resources */, C4BA2AE22995ABE700CB4FBA /* SquareArp_Loop_River.wav in Resources */, diff --git a/LeCountdown/Sound/Sound.swift b/LeCountdown/Sound/Sound.swift index e3fe4aa..8c63dd1 100644 --- a/LeCountdown/Sound/Sound.swift +++ b/LeCountdown/Sound/Sound.swift @@ -122,6 +122,8 @@ enum Sound: Int, CaseIterable, Identifiable, Localized { case riparianZone // Shorts case ESM_Ambient_Game_Menu_Soft_Wood + case sbRose + case trancosoBowl static var `default`: Sound { .sbSEM_Synths_Loop4_Nothing_Like_You } @@ -151,6 +153,8 @@ enum Sound: Int, CaseIterable, Identifiable, Localized { case .wetland: return "Wetland" case .riparianZone: return "Riparian Zone" case .ESM_Ambient_Game_Menu_Soft_Wood: return "Wood percussion" + case .sbRose: return "Rose" + case .trancosoBowl: return "Bowl 4" } } @@ -180,14 +184,16 @@ enum Sound: Int, CaseIterable, Identifiable, Localized { case .wetland: return "QP01 0096 Wetland lake early morning.wav" case .riparianZone: return "QP01 0096 Wetland lake early morning.wav" case .ESM_Ambient_Game_Menu_Soft_Wood: return "ESM_Ambient_Game_Menu_Soft_Wood_Confirm_1_Notification_Button_Settings_UI.wav" + case .sbRose: return "rose1.mp3" + case .trancosoBowl: return "trancoso_bowl1.mp3" } } var playlist: Playlist { switch self { - case .sbSEM_Synths_Loop4_Nothing_Like_You, .sbLoop_ToneSD_Boavista, .sbArpeggio_Loop_River, .sbSquareArp_Loop_River, .sbHighChords_Loop_River, .sbMatriarchFxs_Loop2_Collider: + case .sbSEM_Synths_Loop4_Nothing_Like_You, .sbLoop_ToneSD_Boavista, .sbArpeggio_Loop_River, .sbSquareArp_Loop_River, .sbHighChords_Loop_River, .sbMatriarchFxs_Loop2_Collider, .sbRose: return .stephanBodzin - case .FF_SH_bowl_drone_tapping_C, .FF_SH_bowl_drone_tap_hold_E, .EX_ATSM_Koshi_Chimes_Aria_Tuning_Texture_Longer_Dm, .EX_ATSM_Bell_Binaural_Flam_Eb, .EX_ATSM_160_Metal_Tonal_Percussion_Sansula_Loop_Call_Am, .EX_ATSM_125_Metal_Percussion_Wing_Loop_Chimey_Dm, .EX_ATSM_140_Koshi_Chimes_Aria_Tuning_Loop_Wondering_Am, .EX_ATSM_20_Inch_Highwall_Bowl_Hit_Ring_Ab: + case .FF_SH_bowl_drone_tapping_C, .FF_SH_bowl_drone_tap_hold_E, .EX_ATSM_Koshi_Chimes_Aria_Tuning_Texture_Longer_Dm, .EX_ATSM_Bell_Binaural_Flam_Eb, .EX_ATSM_160_Metal_Tonal_Percussion_Sansula_Loop_Call_Am, .EX_ATSM_125_Metal_Percussion_Wing_Loop_Chimey_Dm, .EX_ATSM_140_Koshi_Chimes_Aria_Tuning_Loop_Wondering_Am, .EX_ATSM_20_Inch_Highwall_Bowl_Hit_Ring_Ab, .trancosoBowl: return .relax case .rain_soft, .stream1, .stream2, .surf1, .crickets, .tropicalForestMorning, .deciduousForestMorning, .wetland, .riparianZone: return .nature diff --git a/LeCountdown/Sound_Assets/Relax/trancoso_bowl1.mp3 b/LeCountdown/Sound_Assets/Relax/trancoso_bowl1.mp3 new file mode 100644 index 0000000..aa1e480 Binary files /dev/null and b/LeCountdown/Sound_Assets/Relax/trancoso_bowl1.mp3 differ diff --git a/LeCountdown/Sound_Assets/Stephan_Bodzin/rose1.mp3 b/LeCountdown/Sound_Assets/Stephan_Bodzin/rose1.mp3 new file mode 100644 index 0000000..2067dc4 Binary files /dev/null and b/LeCountdown/Sound_Assets/Stephan_Bodzin/rose1.mp3 differ diff --git a/LeCountdown/Views/PresetsView.swift b/LeCountdown/Views/PresetsView.swift index 2c189db..af1c9d5 100644 --- a/LeCountdown/Views/PresetsView.swift +++ b/LeCountdown/Views/PresetsView.swift @@ -139,6 +139,7 @@ struct TimerItemView: View { VStack(alignment: .leading) { Text(self.name.uppercased()) Text(self.duration) + .foregroundColor(Color.accentColor) Text(self.sound.uppercased()).foregroundColor(Color(white: 0.7)) }.padding() .multilineTextAlignment(.leading) diff --git a/LeCountdown/Views/Stats/RecordsView.swift b/LeCountdown/Views/Stats/RecordsView.swift index edaa12e..f2f7980 100644 --- a/LeCountdown/Views/Stats/RecordsView.swift +++ b/LeCountdown/Views/Stats/RecordsView.swift @@ -89,9 +89,7 @@ struct RecordsSectionView: View { HStack { Text(record.formattedDay) Spacer() - if let duration = record.duration { - Text(duration.minuteSecond) - } + Text(record.duration.minuteSecond) } }.onDelete(perform: _deleteItem) }.onAppear {