using LightlessSync.LightlessConfiguration.Models;
namespace LightlessSync.UI.Models;
///
/// Common FFXIV sound effect IDs for notifications.
/// These correspond to the same sound IDs used in macros (1–16).
///
public static class NotificationSounds
{
// ─────────────────────────────────────────────
// Base IDs (1–16)
// https://ffxiv.consolegameswiki.com/wiki/Macros#Sound_Effects
// ─────────────────────────────────────────────
public const uint Se1 = 1; // Soft chime
public const uint Se2 = 2; // Higher chime
public const uint Se3 = 3; // Bell tone
public const uint Se4 = 4; // Harp tone
public const uint Se5 = 5; // Mechanical click
public const uint Se6 = 6; // Drum / percussion
public const uint Se7 = 7; // Metallic chime
public const uint Se8 = 8; // Wooden tone
public const uint Se9 = 9; // Wind / flute tone
public const uint Se10 = 11; // Magical sparkle (ID 10 is skipped in game)
public const uint Se11 = 12; // Metallic ring
public const uint Se12 = 13; // Deep thud
public const uint Se13 = 14; // "Tell received" ping
public const uint Se14 = 15; // Success fanfare
public const uint Se15 = 16; // System warning
// Note: Se16 doesn't exist - Se15 is the last available sound
///
/// General notification sound ()
///
public const uint Info = Se2;
///
/// Warning/alert sound ()
///
public const uint Warning = Se15;
///
/// Error sound ( - System warning, used for errors)
///
public const uint Error = Se15;
///
/// Success sound ()
///
public const uint Success = Se14;
///
/// Pair request sound (, same as tell notification)
///
public const uint PairRequest = Se13;
///
/// Download complete sound (, a clean sparkle tone)
///
public const uint DownloadComplete = Se10;
///
/// Get default sound for notification type
///
public static uint GetDefaultSound(NotificationType type) => type switch
{
NotificationType.Info => Info,
NotificationType.Warning => Warning,
NotificationType.Error => Error,
_ => Info
};
}