Skip to content

MicMute v2.2.0#4

Open
rjcncpt wants to merge 2 commits into
mainfrom
MicMute2.2.0
Open

MicMute v2.2.0#4
rjcncpt wants to merge 2 commits into
mainfrom
MicMute2.2.0

Conversation

@rjcncpt

@rjcncpt rjcncpt commented Feb 10, 2026

Copy link
Copy Markdown
Owner

Added

  • Multiple Hotkey Support
    • Toggle Hotkey: Switch microphone on/off
    • Mute Hotkey: Force microphone to muted state
    • Unmute Hotkey: Force microphone to unmuted state
  • Push-to-Talk Feature
  • Toast Notification System
  • Windows startup Integration

Knowns

  • The Multiple Hotkey functionality must be tested in all scenarios

Improvements

  • Single Instance Check (Mutex): A check has been added to prevent the program from being started multiple times (which would lead to hotkey conflicts and multiple tray icons).
  • Resource management (memory leaks):
    • The NotifyIcon is now cleanly disposed of when the application is closed to prevent “ghost icons” in the tray area.
    • COM objects (in GetSystemMicrophoneMuteState) are released more robustly in a finally block to avoid memory leaks in the core audio area.
  • Error tolerance (crash prevention):
    • The loading of icons (mic_on.ico, mic_off.ico) is now wrapped in try-catch blocks. If the files are missing, the program no longer crashes but uses a system icon as a fallback.
    • INI parsing has been made more robust (less sensitive to spaces).
  • Logic improvement:
    • The main method has been encapsulated in a try-finally block to ensure that hotkeys are deregistered and icons are removed even if an error occurs.
    • GC.KeepAlive has been added to ensure that the garbage collector does not accidentally clean up the keyboard hook (although the static reference is usually sufficient, this is “best practice”).
image image image

Added
- Multiple Hotkey Support
  - Toggle Hotkey: Switch microphone on/off
  - Mute Hotkey: Force microphone to muted state
  - Unmute Hotkey: Force microphone to unmuted state
- Push-to-Talk Feature
- Toast Notification System
- Windows startup Integration

Fixed
  - Single Instance Check (Mutex): A check has been added to prevent the program from being started multiple times (which would lead to hotkey conflicts and multiple tray icons).
  - Resource management (memory leaks):
      - The NotifyIcon is now cleanly disposed of when the application is closed to prevent “ghost icons” in the tray area.
      - COM objects (in GetSystemMicrophoneMuteState) are released more robustly in a finally block to avoid memory leaks in the core audio area.
  - Error tolerance (crash prevention):
      - The loading of icons (mic_on.ico, mic_off.ico) is now wrapped in try-catch blocks. If the files are missing, the program no longer crashes but uses a system icon as a fallback.
      - INI parsing has been made more robust (less sensitive to spaces).
  - Logic improvement:
      - The main method has been encapsulated in a try-finally block to ensure that hotkeys are deregistered and icons are removed even if an error occurs.
      - GC.KeepAlive has been added to ensure that the garbage collector does not accidentally clean up the keyboard hook (although the static reference is usually sufficient, this is “best practice”).
@rjcncpt rjcncpt self-assigned this Feb 10, 2026
@rjcncpt rjcncpt added the enhancement New feature or request label Feb 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant