// LoopFollow
// SoundFile.swift

import Foundation

enum SoundFile: String, CaseIterable, Identifiable, Codable {
    case alarmBuzzer = "Alarm_Buzzer"
    case alarmClock = "Alarm_Clock"
    case alertToneBusy = "Alert_Tone_Busy"
    case alertToneRingtone1 = "Alert_Tone_Ringtone_1"
    case alertToneRingtone2 = "Alert_Tone_Ringtone_2"
    case alienSiren = "Alien_Siren"
    case ambulance = "Ambulance"
    case analogWatchAlarm = "Analog_Watch_Alarm"
    case bigClockTicking = "Big_Clock_Ticking"
    case burglarAlarmSiren1 = "Burglar_Alarm_Siren_1"
    case burglarAlarmSiren2 = "Burglar_Alarm_Siren_2"
    case cartoonAscendClimbSneaky = "Cartoon_Ascend_Climb_Sneaky"
    case cartoonAscendThenDescend = "Cartoon_Ascend_Then_Descend"
    case cartoonBounceToCeiling = "Cartoon_Bounce_To_Ceiling"
    case cartoonDreamyGlissandoHarp = "Cartoon_Dreamy_Glissando_Harp"
    case cartoonFailStringsTrumpet = "Cartoon_Fail_Strings_Trumpet"
    case cartoonMachineClumsyLoop = "Cartoon_Machine_Clumsy_Loop"
    case cartoonSiren = "Cartoon_Siren"
    case cartoonTipToeSneakyWalk = "Cartoon_Tip_Toe_Sneaky_Walk"
    case cartoonUhOh = "Cartoon_Uh_Oh"
    case cartoonVillainHorns = "Cartoon_Villain_Horns"
    case cellPhoneRingTone = "Cell_Phone_Ring_Tone"
    case chimesGlassy = "Chimes_Glassy"
    case computerMagic = "Computer_Magic"
    case csfx2Alarm = "CSFX-2_Alarm"
    case cuckooClock = "Cuckoo_Clock"
    case dholShuffleloop = "Dhol_Shuffleloop"
    case discreet = "Discreet"
    case earlySunrise = "Early_Sunrise"
    case emergencyAlarmCarbonMonoxide = "Emergency_Alarm_Carbon_Monoxide"
    case emergencyAlarmSiren = "Emergency_Alarm_Siren"
    case emergencyAlarm = "Emergency_Alarm"
    case endingReached = "Ending_Reached"
    case fly = "Fly"
    case ghostHover = "Ghost_Hover"
    case goodMorning = "Good_Morning"
    case hellYeahSomewhatCalmer = "Hell_Yeah_Somewhat_Calmer"
    case inAHurry = "In_A_Hurry"
    case indeed = "Indeed"
    case insistently = "Insistently"
    case jingleAllTheWay = "Jingle_All_The_Way"
    case laserShoot = "Laser_Shoot"
    case machineCharge = "Machine_Charge"
    case magicalTwinkle = "Magical_Twinkle"
    case marchingHeavyFootedFatElephants = "Marching_Heavy_Footed_Fat_Elephants"
    case marimbaDescend = "Marimba_Descend"
    case marimbaFlutterOrShake = "Marimba_Flutter_or_Shake"
    case martianGun = "Martian_Gun"
    case martianScanner = "Martian_Scanner"
    case metallic = "Metallic"
    case nightguard = "Nightguard"
    case notKiddin = "Not_Kiddin"
    case openYourEyesAndSee = "Open_Your_Eyes_And_See"
    case orchestralHorns = "Orchestral_Horns"
    case oringz = "Oringz"
    case pagerBeeps = "Pager_Beeps"
    case remembersMeOfAsia = "Remembers_Me_Of_Asia"
    case riseAndShine = "Rise_And_Shine"
    case rush = "Rush"
    case sciFiAirRaidAlarm = "Sci-Fi_Air_Raid_Alarm"
    case sciFiAlarmLoop1 = "Sci-Fi_Alarm_Loop_1"
    case sciFiAlarmLoop2 = "Sci-Fi_Alarm_Loop_2"
    case sciFiAlarmLoop3 = "Sci-Fi_Alarm_Loop_3"
    case sciFiAlarmLoop4 = "Sci-Fi_Alarm_Loop_4"
    case sciFiAlarm = "Sci-Fi_Alarm"
    case sciFiComputerConsoleAlarm = "Sci-Fi_Computer_Console_Alarm"
    case sciFiConsoleAlarm = "Sci-Fi_Console_Alarm"
    case sciFiEerieAlarm = "Sci-Fi_Eerie_Alarm"
    case sciFiEngineShutDown = "Sci-Fi_Engine_Shut_Down"
    case sciFiIncomingMessageAlert = "Sci-Fi_Incoming_Message_Alert"
    case sciFiSpaceshipMessage = "Sci-Fi_Spaceship_Message"
    case sciFiSpaceshipWarmUp = "Sci-Fi_Spaceship_Warm_Up"
    case sciFiWarning = "Sci-Fi_Warning"
    case signatureCorporate = "Signature_Corporate"
    case siriAlertCalibrationNeeded = "Siri_Alert_Calibration_Needed"
    case siriAlertDeviceMuted = "Siri_Alert_Device_Muted"
    case siriAlertGlucoseDroppingFast = "Siri_Alert_Glucose_Dropping_Fast"
    case siriAlertGlucoseRisingFast = "Siri_Alert_Glucose_Rising_Fast"
    case siriAlertHighGlucose = "Siri_Alert_High_Glucose"
    case siriAlertLowGlucose = "Siri_Alert_Low_Glucose"
    case siriAlertMissedReadings = "Siri_Alert_Missed_Readings"
    case siriAlertTransmitterBatteryLow = "Siri_Alert_Transmitter_Battery_Low"
    case siriAlertUrgentHighGlucose = "Siri_Alert_Urgent_High_Glucose"
    case siriAlertUrgentLowGlucose = "Siri_Alert_Urgent_Low_Glucose"
    case siriCalibrationNeeded = "Siri_Calibration_Needed"
    case siriDeviceMuted = "Siri_Device_Muted"
    case siriGlucoseDroppingFast = "Siri_Glucose_Dropping_Fast"
    case siriGlucoseRisingFast = "Siri_Glucose_Rising_Fast"
    case siriHighGlucose = "Siri_High_Glucose"
    case siriLowGlucose = "Siri_Low_Glucose"
    case siriMissedReadings = "Siri_Missed_Readings"
    case siriTransmitterBatteryLow = "Siri_Transmitter_Battery_Low"
    case siriUrgentHighGlucose = "Siri_Urgent_High_Glucose"
    case siriUrgentLowGlucose = "Siri_Urgent_Low_Glucose"
    case softMarimbaPadPositive = "Soft_Marimba_Pad_Positive"
    case softWarmAiryOptimistic = "Soft_Warm_Airy_Optimistic"
    case softWarmAiryReassuring = "Soft_Warm_Airy_Reassuring"
    case storeDoorChime = "Store_Door_Chime"
    case sunny = "Sunny"
    case thunderSoundFX = "Thunder_Sound_FX"
    case timeHasCome = "Time_Has_Come"
    case tornadoSiren = "Tornado_Siren"
    case twoTurtleDoves = "Two_Turtle_Doves"
    case unpaved = "Unpaved"
    case wakeUpWillYou = "Wake_Up_Will_You"
    case winGain = "Win_Gain"
    case wrongAnswer = "Wrong_Answer"

    // Identifiable conformance
    var id: SoundFile { self }

    /// Human-friendly name (spaces instead of underscores)
    var displayName: String {
        rawValue
            .replacingOccurrences(of: "_", with: " ")
            .replacingOccurrences(of: "  ", with: " ")
    }
}
