import SwiftUI
import Observation
import SoundAnalysis

@Observable class ApplicationData {
   var result: String = ""
   
   static let shared: ApplicationData = ApplicationData()
   private init() { }
   
   func analyzeSound() async {
      do {
         guard let fileURL = Bundle.main.url(forResource: "dogbark", withExtension: "mp3") else { return }

         let analyzer = try SNAudioFileAnalyzer(url: fileURL)
         let request = try SNClassifySoundRequest(classifierIdentifier: .version1)
         let observer = AudioObserver()
         try analyzer.add(request, withObserver: observer)
         await analyzer.analyze()

         result = observer.findings.joined(separator: "\n")
      } catch {
         print("Error: \(error)")
      }
   }
}