tap on sound row to play it

release
Laurent 3 years ago
parent f6777f4cb4
commit a3b72fb95f
  1. 12
      LeCountdown/Conductor.swift
  2. 6
      LeCountdown/Views/Components/SoundSelectionView.swift

@ -192,8 +192,15 @@ class Conductor: ObservableObject {
} }
if let coolSound { if let coolSound {
self.playSound(coolSound)
} else {
print("No sound to play!")
}
}
func playSound(_ sound: Sound) {
do { do {
let soundFile = try coolSound.soundFile() let soundFile = try sound.soundFile()
let soundPlayer = SoundPlayer() let soundPlayer = SoundPlayer()
self.soundPlayer = soundPlayer self.soundPlayer = soundPlayer
try soundPlayer.playSound(soundFile: soundFile, repeats: false) try soundPlayer.playSound(soundFile: soundFile, repeats: false)
@ -201,9 +208,6 @@ class Conductor: ObservableObject {
print("error = \(error)") print("error = \(error)")
// TODO: manage error // TODO: manage error
} }
} else {
print("No sound to play!")
}
} }
func stopSoundIfPossible() { func stopSoundIfPossible() {

@ -95,6 +95,8 @@ struct PlaylistSectionView: View {
ForEach(sounds) { sound in ForEach(sounds) { sound in
ToggleRow(item: sound, selected: self.model.binding(sound: sound)) { selected in ToggleRow(item: sound, selected: self.model.binding(sound: sound)) { selected in
self.model.selectSound(sound, selected: selected) self.model.selectSound(sound, selected: selected)
}.onTapGesture {
self._playSound(sound)
} }
} }
} header: { } header: {
@ -105,6 +107,10 @@ struct PlaylistSectionView: View {
} }
fileprivate func _playSound(_ sound: Sound) {
Conductor.maestro.playSound(sound)
}
} }
struct ToggleRow<T : Localized>: View { struct ToggleRow<T : Localized>: View {

Loading…
Cancel
Save