═══════════════════════════════════════════════════════════
██╗ ███████╗ ██████╗  ██╗   ██╗ ███╗   ██╗ ██████╗
██║ ██╔════╝██╔═══██╗ ██║   ██║ ████╗  ██║ ██╔══██╗
██║ ███████╗██║   ██║ ██║   ██║ ██╔██╗ ██║ ██║  ██║
██║ ╚════██║██║   ██║ ██║   ██║ ██║╚██╗██║ ██║  ██║
██║ ███████║╚██████╔╝ ╚██████╔╝ ██║ ╚████║ ██████╔╝
╚═╝ ╚══════╝ ╚═════╝   ╚═════╝  ╚═╝  ╚═══╝ ╚═════╝

██████╗ ██╗      █████╗ ██╗   ██╗ ███████╗ ██████╗
██╔══██╗██║     ██╔══██╗╚██╗ ██╔╝ ██╔════╝ ██╔══██╗
██████╔╝██║     ███████║ ╚████╔╝  █████╗   ██████╔╝
██╔═══╝ ██║     ██╔══██║  ╚██╔╝   ██╔══╝   ██╔══██╗
██║     ███████╗██║  ██║   ██║    ███████╗ ██║  ██║
╚═╝     ╚══════╝╚═╝  ╚═╝   ╚═╝    ╚══════╝ ╚═╝  ╚═╝
═══════════════════════════════════════════════════════════

Changelog for iSoundPlayer

═══════════════════════════════════════════════════════════
Version 0.6.1 - Release
═══════════════════════════════════════════════════════════

[FIX]
- GetSpellCooldown replaced with version-safe wrapper
  - Uses C_Spell.GetSpellCooldown on retail 11.0+ / Midnight 12.0+
  - Falls back to GetSpellCooldown on Classic Era / TBC / Wrath / Cata / MoP

═══════════════════════════════════════════════════════════
Version 0.6.0 - Aura Alerts
═══════════════════════════════════════════════════════════

[NEW]
- Aura Alerts: play a custom sound when a buff or debuff is gained or lost
- New "Aura Alerts" tab in settings panel
- Track buffs, debuffs, or any aura type per entry
- Trigger on gained, lost, or both events
- Version-safe aura scanning: C_UnitAuras.GetUnitAuras (Midnight 12.0+),
  C_UnitAuras.GetAuraDataByIndex (Retail 10.0-11.x), UnitBuff/UnitDebuff (Classic)

═══════════════════════════════════════════════════════════
Version 0.5.1 - Release
═══════════════════════════════════════════════════════════

[NEW]
- Chat Output Routing: route addon messages to custom chat tabs
- Chat Output settings section in General tab
- iCommunityChat promo tab added to settings panel

═══════════════════════════════════════════════════════════
Version 0.5.0 - Cooldown Alerts
═══════════════════════════════════════════════════════════

[NEW]
- Cooldown Alerts: play a custom sound when a spell or ability comes off cooldown
- New "Cooldown Alerts" tab in settings panel
- Add spells by name, assign a sound, enable/disable individually
- Test button to preview the alert sound
- Notification message when a spell comes off cooldown

[TECHNICAL]
- Polling-based cooldown detection (reliable on Classic TBC where events don't fire on expiry)
- Queued alert system: simultaneous cooldowns play sounds sequentially with stagger delay
- Duplicate queue prevention and max poll safety limit
- Sound picker adapted with callback pattern for non-trigger usage

 Alpha Build History
 ~~~~~~~~~~~~~~~~~~~
  0.4.1.1 - Cooldown Alerts: play a sound when spells come off cooldown

═══════════════════════════════════════════════════════════
Version 0.4.0 - Named Sounds, Self Announce & Companion Folder
═══════════════════════════════════════════════════════════

[NEW]
- Named Sounds: give registered sounds a custom display name
- Display name shown in sound list, sound picker, and trigger dropdowns
- Rename button ("Aa") on each registered sound row
- Display name input field when adding a new sound
- Sound picker search now matches both filename and custom name
- "Self" announce channel: prints trigger announcements to your own chat only
- Companion Sounds folder: sounds stored in a separate iSoundPlayer_Sounds folder
- Companion folder survives CurseForge updates (not inside the addon folder)
- Sound fallback: tries companion folder first, then bundled sounds folder

[UPDATED]
- Setup Guide updated to reference creating the standalone companion folder
- Sound tooltip no longer mentions bundled sounds folder
- Long sound filenames are now truncated in the registered sounds list

[FIXED]
- Fixed StaticPopup EditBox crash on Classic TBC (EditBox casing)
- Fixed Setup Guide not auto-hiding when entering combat
- Minimap left-click now blocked during combat

 Alpha Build History
 ~~~~~~~~~~~~~~~~~~~
  0.4.0.1  - Minimap left-click blocked in combat, Setup Guide combat close fix
  0.3.9.1  - Self announce channel, EditBox casing fix
  0.3.8.1  - Named sounds, setup guide update, sound display truncation
  0.3.7.1  - Companion sounds folder, custom sounds path, sound fallback

═══════════════════════════════════════════════════════════
Version 0.3.7 - TBC Icon Compatibility
═══════════════════════════════════════════════════════════

[UPDATED]
- Replaced all 17 Achievement_ prefixed trigger icons with TBC-safe alternatives
- 9 trigger icons replaced: Level Up, XP Gained, Target Changed, Quest Turned In,
  Loot Roll Started, Guild Chat, Entering World, Double Kill, Triple Kill
- 4 category icons replaced: Player Events, Achievements & Quests, Dungeon & Raid, PvP Kills
- 2 multi-category icons replaced: Group & Social, PvP Multi-Kills

[NEW]
- ACHIEVEMENT_EARNED trigger hidden on pre-WotLK clients
- Dynamic category name: "Achievements & Quests" on WotLK+, "Quests" on Classic/TBC

═══════════════════════════════════════════════════════════
Version 0.3.5 - Custom Volume Sliders
═══════════════════════════════════════════════════════════

[NEW]
- Custom iWR-style volume sliders replacing OptionsSliderTemplate
- BackdropTemplate track (200x12) with fill bar, tick marks, and thumb
- 11 tick marks at every 10% (0%, 10%, ..., 100%)
- Orange fill bar showing current volume level
- Click-on-track, thumb drag, and mousewheel interaction
- Min/Max labels ("0%"/"100%") below each track

[UPDATED]
- Channel Volume and Soundfile Volume sliders both use new custom style

═══════════════════════════════════════════════════════════
Version 0.3.1 - About Page Update
═══════════════════════════════════════════════════════════

[UPDATED]
- About page: icon size 48→64, spacing aligned with iWR/iNIF
- Added Discord section with copyable invite link

═══════════════════════════════════════════════════════════
Version 0.3.0 - Trigger Expansion & Collapsible UI
═══════════════════════════════════════════════════════════

[NEW]
- 44 new triggers across 4 new categories (75 total triggers, 13 categories)
- New categories: Profession & Crafting, Economy & Mail, Pet & Mount, UI & System
- Version-gating: triggers are automatically hidden if not available for current WoW version
- Collapsible category headers with click to expand/collapse
- Category-level enable/disable checkbox (toggle all triggers in a category)
- Search box to filter triggers by name, description, or event ID
- Per-trigger cooldown system to prevent sound spam on high-frequency events
- Data-driven event system — no more hardcoded event handlers

[CATEGORIES]
- Player Events: +7 triggers (XP, gold, control lost/gained, gear change, movement)
- Combat Events: +4 triggers (spell cast start/complete/interrupted, form change)
- Achievements & Quests: +2 triggers (criteria complete, quest log update)
- Loot & Items: +4 triggers (loot message, money looted, loot roll, boss loot)
- Group & Social: +9 triggers (party invite, whisper, guild/party/raid chat, friends, guild MOTD)
- Dungeon & Raid: +2 triggers (lockout warning, M+ completed)
- Profession & Crafting: 4 triggers (trade window, trade accepted, skill up)
- Economy & Mail: 7 triggers (mailbox, mail sent, pending mail, auction house)
- Pet & Mount: 2 triggers (pet battle start/end — MoP+)
- UI & System: 4 triggers (durability, bags, calendar invite, transmog — mixed versions)

[TECHNICAL]
- Version-gating schema: "all", {min=N}, {max=N}, {min=N, max=M}
- IsTriggerAvailable(), GetAvailableTriggersInCategory(), IsCategoryAvailable() helpers
- EventToTriggers lookup table for O(1) event dispatch
- PlayTriggerSoundWithCooldown() replaces direct PlayTriggerSound() in event handler
- Dynamic default fill in InitializeSettings() for seamless upgrades
- unitFilter field for UNIT_SPELLCAST events (only fires for "player" unit)

═══════════════════════════════════════════════════════════
Version 0.2.3 - Retail PvP Kill Tracking & Game Version Fix
═══════════════════════════════════════════════════════════

[NEW]
- Retail 12.0+ PvP kill tracking using PARTY_KILL event
- Achievement criteria workaround for hidden GUIDs in instanced PvP (BGs/Arenas)
- Compares total killing blow count (achievement #1487) to detect YOUR kills
- Open world: direct GUID comparison for precise detection
- Added "Retail" to Game Version Detection

[TECHNICAL]
- Classic: unchanged — still uses COMBAT_LOG_EVENT_UNFILTERED + PARTY_KILL subevent
- Retail: PARTY_KILL event + GetAchievementCriteriaInfoByID(1487, 0) baseline
- issecretvalue() check for hidden GUIDs in instanced PvP
- Credit: ErnestasBaltinas/hksounds for the achievement criteria technique

═══════════════════════════════════════════════════════════
Version 0.2.1.1 - Show Notifications setting
═══════════════════════════════════════════════════════════

[NEW]
- Added "Show Notifications" checkbox to General settings (Interface section)
- Controls whether chat messages are shown when sounds play

[CHANGED]
- Default for ShowNotifications changed to false (hidden by default)

═══════════════════════════════════════════════════════════
Version 0.2.1 - Version bump
═══════════════════════════════════════════════════════════

[IMPROVED]
- Minimap tooltip reformatted to match iWR/iNIF style (Yellow/Orange colors, SetText, Status line)
- Added L["StatusEnabled"], L["StatusDisabled"], L["MinimapTooltipStatus"] locale keys

═══════════════════════════════════════════════════════════
Version 0.1.7 - Combat Protection & ESC Close
═══════════════════════════════════════════════════════════

[IMPROVED]
- Settings panel and Setup Guide auto-hide when entering combat
- Setup Guide window now closes with ESC key (UISpecialFrames)

═══════════════════════════════════════════════════════════
Version 0.1.6 - Localization (Minimap & Setup Guide)
═══════════════════════════════════════════════════════════

[IMPROVED]
- Minimap tooltip text moved to locale tags (~6 strings)
- Setup Guide text moved to locale tags (~12 strings: headers, steps, tips, buttons)
- Minimap show/hide messages moved to locale tags

═══════════════════════════════════════════════════════════
Version 0.1.5 - Localization
═══════════════════════════════════════════════════════════

[IMPROVED]
- Moved all hardcoded UI strings in options panel to locale tags (L["key"])
- Added ~40 new locale keys for section headers, buttons, descriptions, and messages
- Static popup dialogs, sounds tab, triggers tab, about tab, and other addons tabs all use L-tags
- Consistent use of local L and Colors shortcuts throughout options panel

═══════════════════════════════════════════════════════════
Version 0.1.4 - UI Consistency
═══════════════════════════════════════════════════════════

[FIXED]
- Settings panel frame border now matches iWR/iNIF style (thinner border, correct insets)
- Title bar text centered to match iWR/iNIF (was left-aligned with icon)
- ESC key now closes settings panel via UISpecialFrames
- Opening iSP settings now auto-closes iWR/iNIF settings panels if open

═══════════════════════════════════════════════════════════
Version 0.1.2.0 - Setup Guide & First-Time Experience
═══════════════════════════════════════════════════════════

[NEW]
- Added interactive Setup Guide window for first-time users
- Setup guide automatically shows when no sounds are registered
- Accessible via left-click on minimap icon
- Step-by-step instructions for adding sounds and configuring triggers
- "Don't show on startup" option for experienced users
- Updated minimap tooltip (Left-click: Setup Guide, Right-click: Settings)

[IMPROVED]
- Better onboarding experience for new users
- Clearer instructions on how to get started with the addon

═══════════════════════════════════════════════════════════
Version 0.1.0 - Initial Release
═══════════════════════════════════════════════════════════

[NEW]
- Initial addon structure created
- Basic options panel with General and About tabs
- Color scheme and styling framework
- Slash commands (/isp, /isoundplayer)
- Settings management system
- Debug mode toggle

[PLANNED]
- Sound file management system
- Trigger configuration
- Event-based sound playback
- MP3 file support
- Custom trigger creation

═══════════════════════════════════════════════════════════
