feat: support MP3, AAC, M4A, WMA, and FLAC notification sounds - #118
Open
GraysonCAdams wants to merge 7 commits into
Open
feat: support MP3, AAC, M4A, WMA, and FLAC notification sounds#118GraysonCAdams wants to merge 7 commits into
GraysonCAdams wants to merge 7 commits into
Conversation
added 7 commits
August 18, 2026 09:48
…ack, crash cleanup)
Logo44.png and Logo150.png were single flat bitmaps with no scale-100/125/150/200/400 variants, so Windows had to upscale them for any display above 100% DPI, producing a blurry Start Menu tile and taskbar icon. Regenerated all scale variants directly from the existing IconVector.svg vector master instead of upscaling the small PNGs.
System.Media.SoundPlayer (a thin wrapper over the WAV-only Win32 PlaySound API) could only ever play WAV files. Replaced it with Windows.Media.Playback.MediaPlayer, which is backed by Media Foundation and natively decodes all of the above on a stock Windows install - no new dependency, the project already references the WinRT projections this needs. Also broadened the sound import file picker, extension checks, and file discovery glob to match; the custom_sound_path storage convention already preserved arbitrary extensions correctly. Verified end to end (not just compiled) by playing real WAV/MP3/M4A/WMA/FLAC files through the exact same code path.
Was one FileFilter per extension, which listed each format separately in the dialog dropdown. Verified via reflection that the two-arg FileFilter constructor stores Name/Pattern verbatim (no reformatting), and that the existing single-extension convention already uses bare, semicolon-joinable extension strings - so a single filter with a semicolon-joined pattern matches the same convention already proven working.
The combined Audio Files filter was matching nothing (mp3 etc only showed under All Files) because the semicolon-joined pattern was wrong for this dialog library. Decompiled IgniteView.FileDialogs.dll to confirm: FileFilter.Pattern passes straight through to NFDFilterU8.Spec with zero transformation, and the underlying native library is Native File Dialog Extended (NFDe), whose documented spec format is comma-separated extensions, not semicolon-separated. Also names the filter with the actual supported extensions listed out, e.g. Audio Files (WAV, MP3, AAC, M4A, WMA, FLAC), so they are visible without opening the dropdown.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #116 and #117 - this diff includes those commits until they merge; only the multi-format-audio commits at the end are new here.
Notification sounds were limited to WAV because playback went through the old Win32
PlaySoundAPI viaSystem.Media.SoundPlayer. Switched toWindows.Media.Playback.MediaPlayer, which is backed by Media Foundation and natively decodes all of the above in addition to WAV.The sound-import file picker also now offers one combined "Audio Files" filter instead of a separate entry per extension. IgniteView.FileDialogs turned out to wrap Native File Dialog Extended, whose filter spec is comma-separated rather than semicolon-separated (confirmed by decompiling the DLL) - the first attempt at combining the filter matched nothing until that was corrected.