Skip to content

Releases

Realse 0.0.8

Choose a tag to compare

@DiumStream-tech DiumStream-tech released this 18 Aug 13:22

🎯 Audio Manager v0.0.8

Major Code Refactor & Optimization


🆕 What's New

Core / Application Recognition

  • Complete application recognition system: New registry/ module with advanced detection
  • AppCache: Persistent cache for recognized applications (~/.cache/audiomanager/app_cache.json)
  • AppDetector: Detection with fallback (cache → heuristics → API → game)
  • AppHeuristics: Local recognition with 200+ applications and 50+ games
  • AppIcons: Icon mapping for applications and games via SimpleIcons
  • GameDetector: Automatic game detection for multiple platforms:
    • Steam, Epic Games, GOG, Origin, Ubisoft, Battle.net
    • Xbox, PlayStation, Nintendo
    • Lutris, Heroic, Bottles, Itch.io, Humble Bundle
  • GameAPI: Integration with SteamGridDB, RAWG, IGDB
  • AppAPI: Recognition via SimpleIcons, Flathub, GitHub
  • IconResolver: SimpleIcons resolution with intelligent fallback
  • apps.json database: 200+ applications and 50+ games

Core / Streaming

  • New modules: streaming/commands.py, streaming/channel.py
  • CallbackManager: Centralized callback management

UI / Widgets

  • New folder structure:
    • ui/widgets/devices/ (DeviceCard + LedDot)
    • ui/widgets/settings/ (SettingsCard + SettingsPage + UpdateWorker)
    • ui/widgets/streaming/ (Panel + ChannelCard + MixRow + Constants)
    • ui/widgets/streaming/card/ (StreamCard + StreamControls + StreamIcon)
    • ui/widgets/changelog/ (Page + Card + Item + Constants)
  • New Changelog widgets: Category support with colored badges
  • New Streaming widgets: Modular splitting for better maintainability

UI / Window

  • main_window.py split (508 lines → 4 files):
    • main_window.py (main class)
    • window_sidebar.py (SidebarBuilder)
    • window_audio.py (AudioManager)
    • window_pages.py (PagesManager)

🔧 Improvements

Code Organization

File Change
streaming_panel.py Split 743 lines → 4 files (-34%)
device_card.py Extracted LedDot to separate file
stream_card.py Split into 3 files for better separation of concerns
settings_page.py Split into 3 files (settings_page, settings_card, update_worker)
changelog_page.py Split into 4 files with category support
main_window.py Split 508 lines → 4 files

Core Optimizations

File Reduction
backends/linux.py -23% lines
streaming/mixer.py -47% lines
manager.py -16% lines

UI Improvements

  • Removed hardcoded app icons in favor of dynamic SimpleIcons loading
  • Streamlined UI by removing redundant info labels
  • Unified card styles in components.py
  • Simplified builders in pages.py

🔒 Security

  • Protection against malformed JSON in application registry
  • 64 KB limit on icon downloads to prevent memory abuse
  • 256 KB limit on GitHub update check response
  • Forced update check via HTTPS only
  • Route sanitization: rejection of non-string keys/values
  • Protection on slug length in icon URL resolver (64 chars max)

🐛 Bug Fixes

Bug Fix
webrtcvoiceengine not recognized as Discord Added to aliases
Sober (Roblox Linux) not recognized as Roblox Added to aliases
Volume channels not validated Validation and clamping (0.0–1.0)
Routes not sanitized Rejection of non-string keys/values
No slug length limit 64 characters max
No update response limit 256 KB limit
HTTP update check possible HTTPS only
Icons not imported in streaming_panel.py Fixed import
target_devices missing in stream_controls.py Added attribute
nav_sections not imported in window_pages.py Fixed import
QLabel not imported in window_audio.py Fixed import
theme not imported in changelog files Fixed imports
Obsolete imports in backends/linux.py Updated to new registry paths

🗑️ Removals

  • streaming_micro module (entire folder)
  • micro.json translation files
  • build_micro_page() from navigation
  • Dead code: Empty methods, unused attributes, unreachable branches
  • detect_running_apps() unused function
  • fallback() and label() from icons.py (unused)
  • _apply_card_style() and _apply_slider_style() (empty methods)
  • Hardcoded icons in device_card.py, mix_row.py, channel_card.py, stream_icon.py, stream_controls.py
  • Redundant constant in icon_resolver.py
  • Unused coded icons from icons.py

📊 Statistics

Metric Before After Change
streaming_panel.py 743 lines 4 files (~490 lines) -34%
main_window.py 508 lines 4 files (~525 lines) +3% (org)
backends/linux.py 261 lines ~200 lines -23%
streaming/mixer.py 281 lines ~150 lines -47%
manager.py 166 lines ~140 lines -16%
Applications recognized ~60 200+ +233%
Games recognized ~10 50+ +400%

🎯 Highlights

  • ✅ 200+ applications and 50+ games automatically recognized
  • ✅ Multi-platform game detection (Steam, Epic, GOG, Origin, Ubisoft, Battle.net, Xbox, PlayStation, Nintendo)
  • ✅ Complete code reorganization with modular file structure
  • ✅ Better maintainability and separation of concerns
  • ✅ Improved security with input validation and limits
  • ✅ Faster app recognition with persistent cache
  • ✅ Modern Changelog with categories and colored badges

🔐 Verification

This release is signed with GPG. You can verify the authenticity of the executable before running it.

Public key fingerprint:

34C2C91E106AD7833D65785F1F5E959577226B2C

Verify the signature:

gpg --verify AudioManager.asc AudioManager

If the verification fails or the fingerprint doesn't match, do not run the executable — it may have been tampered with.

Realse 0.0.7

Choose a tag to compare

@DiumStream-tech DiumStream-tech released this 07 Aug 02:16

[0.0.7] — 2026-08-07

Refactoring & Architecture

  • Complete Style folder overhaul: Removed dialogs_style.py and split base_style.py into 4 separate files (base.py, buttons.py, components.py, pages.py) for better maintainability.
  • Import cleanup: Removed all __init__.py files across the project and updated imports to use explicit paths.
  • Style unification: Centralized card styles (DeviceCard, StreamCard) in the global stylesheet via dynamic properties.

Optimizations

  • Icon caching: Implemented a caching system for FontAwesome icons to reduce CPU load during UI rendering.
  • UI rendering optimization: Removed frequent setStyleSheet calls in widgets in favor of CSS property selectors, improving interface smoothness.
  • Code optimization: Overall code cleanup and improved module structure.

Fixed

  • Fixed a bug where the navigation button to the Streaming page was not translated, present since the introduction of the translation system. Note: in v0.0.8, an option will be added to allow the "Streaming" button to remain untranslated, since many users already understand the term as-is (translated as "Flux" in French, "Transmisión" in Spanish). This option may be removed later.

🔐 Verification

This release is signed with GPG. You can verify the authenticity of the executable before running it.

Public key fingerprint:

34C2C91E106AD7833D65785F1F5E959577226B2C

Verify the signature:

gpg --verify AudioManager.asc AudioManager

If the verification fails or the fingerprint doesn't match, do not run the executable — it may have been tampered with.

Realse 0.0.6

Choose a tag to compare

@DiumStream-tech DiumStream-tech released this 06 Aug 14:42

Added

  • Full Navigation Unification: Settings and Changelog pages are now identical to other sections (Outputs, Inputs, etc.).
  • Sidebar Reorganization: Settings and Changelog buttons moved to the bottom of the sidebar, just above the Refresh button.
  • Removed internal headers and footers from Settings and Changelog to better integrate with the main interface.

Fixed

  • Fixed a bug where changing language or theme would force navigation away from the Settings page.
  • Restored audio safety (mute/unmute) when activating streaming mode, including during startup restoration.
  • The Settings page now remains active after applying changes, providing a smoother user experience.

🔐 Verification

This release is signed with GPG. You can verify the authenticity of the executable before running it.

Public key fingerprint:

34C2C91E106AD7833D65785F1F5E959577226B2C

Verify the signature:

gpg --verify AudioManager.asc AudioManager

If the verification fails or the fingerprint doesn't match, do not run the executable — it may have been tampered with.

Realse 0.0.5

Choose a tag to compare

@DiumStream-tech DiumStream-tech released this 06 Aug 14:39

Added

  • Settings and Changelog now open directly inside the main window — no more separate pop-up windows.
  • Startup loading screen that restores saved state (settings, streaming button) before showing the interface.
  • STREAMING_SAVE_BUTTON_STATE option in config.py — when enabled, the streaming mode button state is persisted across launches.
  • SPLASH_DURATION_MS option in config.py — controls the duration of the startup loading screen.
  • Full compatibility with the language system (i18n) for all new features (splash screen messages in EN/FR/ES).
  • Version 0.0.5 release notes added to all three language changelogs.

🔐 Verification

This release is signed with GPG. You can verify the authenticity of the executable before running it.

Public key fingerprint:

34C2C91E106AD7833D65785F1F5E959577226B2C

Verify the signature:

gpg --verify AudioManager.asc AudioManager

If the verification fails or the fingerprint doesn't match, do not run the executable — it may have been tampered with.

Realse 0.0.4

Choose a tag to compare

@DiumStream-tech DiumStream-tech released this 04 Aug 16:46

Changed

  • Refactored the codebase to improve structure and long-term maintainability.
  • Reorganized several UI and core modules into dedicated folders for better clarity.

Fixed

  • Fixed missing translations across the interface.
  • Fixed full compatibility with the language system (i18n) in dialogs, cards, streaming views, and the main window.
  • Fixed multiple hardcoded UI texts that were not using the translation system.

Full Changelog: 0.0.3...0.0.4


🔐 Verification

This release is signed with GPG. You can verify the authenticity of the executable before running it.

Public key fingerprint:

34C2C91E106AD7833D65785F1F5E959577226B2C

Verify the signature:

gpg --verify AudioManager.asc AudioManager

If the verification fails or the fingerprint doesn't match, do not run the executable — it may have been tampered with.

Realse 0.0.3

Choose a tag to compare

@DiumStream-tech DiumStream-tech released this 04 Aug 00:38

Added

  • Multi-language support (English and French and Spanish) — English is the default.
  • Changelog dialog (this file's in-app counterpart) — accessible from the sidebar.
  • "View Changelog" button under the Settings button.
  • i18n.py module with a full translation system (t(), set_language(), get_language()).

Changed

  • Redesigned the Settings dialog with clearer sections (Appearance, Language, GitHub & Updates).
  • Redesigned the update-check result dialog with a polished, consistent interface.
  • Icons in the Settings dialog now correctly follow the active theme color (fixes white icons on the light theme).
  • The Settings dialog now updates its texts and icons immediately when the language or theme is changed, without needing to close and reopen it.

Fixed

  • Icons in Settings were always rendered in white regardless of the active theme.

Full Changelog: 0.0.2...0.0.3


🔐 Verification

This release is signed with GPG. You can verify the authenticity of the executable before running it.

Public key fingerprint:

34C2C91E106AD7833D65785F1F5E959577226B2C

Verify the signature:

gpg --verify AudioManager.asc AudioManager

If the verification fails or the fingerprint doesn't match, do not run the executable — it may have been tampered with.