BriskPlayer v3.0.0 Changelog

New Features

  • Enhanced internationalization support with gettext integration
  • Dynamic language switching support
  • Added language enumeration functionality
  • Thread-safe translation system using C23 thread-local storage

Windows XP Compatibility

  • Added dynamic loading for Vista+ locale APIs (GetUserDefaultLocaleName, LocaleNameToLCID)
  • Implemented XP fallback using GetUserDefaultLCID() and GetLocaleInfoA()
  • Added hardcoded LCID mappings for common languages (en, de, fr, es, it, ja, zh, ko, ru, pt, nl, pl, tr, sv, cs)
  • Cached function pointers for improved performance on repeated calls

Build System Improvements

  • Fixed MinGW 32-bit compilation errors with Windows locale APIs
  • Added proper static linking of C++ standard library for TagLib compatibility
  • Compiler detection for Clang vs GCC with appropriate flags
  • Fixed __cxxabiv1::__class_type_info vtable linkage errors
  • Added -static-libstdc++ and -static-libgcc for MinGW builds
  • Proper C++ runtime linking for mixed C/C++ projects

Bug Fixes

  • Fixed signedness comparison warning in locale name handling
  • Resolved implicit function declarations for Windows locale APIs
  • Fixed undefined reference errors when linking with TagLib (C++ library)

Technical Improvements

  • Set minimum Windows version to XP (0x0501) while maintaining Vista+ feature detection
  • Improved error handling in locale detection and setting
  • Better memory management for translation buffers
  • Enhanced code comments and documentation

Downloads are available at Github