44 lines
2.0 KiB
Swift
44 lines
2.0 KiB
Swift
|
|
// SoundEvent — the cross-platform set of audible event cues. Each maps to a WAV bundled as an
|
||
|
|
// SPM resource (Sources/VoiceCatCore/Sounds/, copied from assets/sounds/). The same logical set
|
||
|
|
// is mirrored in the Windows client (clients/windows/.../Notifications/SoundEvent.cs) so feedback
|
||
|
|
// stays consistent across platforms.
|
||
|
|
|
||
|
|
import Foundation
|
||
|
|
|
||
|
|
public enum SoundEvent: CaseIterable, Sendable {
|
||
|
|
case channelJoin // another user joined my channel
|
||
|
|
case channelLeave // another user left my channel
|
||
|
|
case channelRecv // channel text message from someone else
|
||
|
|
case channelSent // channel text message I sent
|
||
|
|
case pmRecv // private message received
|
||
|
|
case pmSent // private message I sent
|
||
|
|
case login // connected / authenticated
|
||
|
|
case logout // clean disconnect
|
||
|
|
case connectionLost // unexpected disconnect
|
||
|
|
case voiceOn // my microphone stream started
|
||
|
|
case voiceOff // my microphone stream stopped
|
||
|
|
case vaStart // my voice-activity began (off by default)
|
||
|
|
case vaStop // my voice-activity ended (off by default)
|
||
|
|
case ptt // push-to-talk engaged (off by default)
|
||
|
|
|
||
|
|
/// Resource name (without extension) as bundled in Sources/VoiceCatCore/Sounds/.
|
||
|
|
var resourceName: String {
|
||
|
|
switch self {
|
||
|
|
case .channelJoin: return "channel_join"
|
||
|
|
case .channelLeave: return "channel_leave"
|
||
|
|
case .channelRecv: return "channel_recv"
|
||
|
|
case .channelSent: return "channel_sent"
|
||
|
|
case .pmRecv: return "pm_recv"
|
||
|
|
case .pmSent: return "pm_sent"
|
||
|
|
case .login: return "login"
|
||
|
|
case .logout: return "logout"
|
||
|
|
case .connectionLost: return "connection_lost"
|
||
|
|
case .voiceOn: return "voice_on"
|
||
|
|
case .voiceOff: return "voice_off"
|
||
|
|
case .vaStart: return "va_start"
|
||
|
|
case .vaStop: return "va_stop"
|
||
|
|
case .ptt: return "ptt"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|