From 849b5b6db0c61bef902e87c32c448c9fbcfc45a3 Mon Sep 17 00:00:00 2001 From: ad Date: Fri, 13 Apr 2018 21:40:34 +0300 Subject: [PATCH] * fixed bug with mute at 0.0 --- MTMR/VolumeViewController.swift | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/MTMR/VolumeViewController.swift b/MTMR/VolumeViewController.swift index ee13dad..b73aeb7 100644 --- a/MTMR/VolumeViewController.swift +++ b/MTMR/VolumeViewController.swift @@ -84,18 +84,31 @@ class VolumeViewController: NSCustomTouchBarItem { } private func setInputGain(_ volume: Float32) -> OSStatus { - var inputVolume: Float32 = volume //0.0 //roundf(volume * 100) / 100 + var inputVolume: Float32 = volume + + if inputVolume == 0.0 { + _ = setMute( mute: 1) + } else { + _ = setMute( mute: 0) + } + let size: UInt32 = UInt32(MemoryLayout.size(ofValue: inputVolume)) var address: AudioObjectPropertyAddress = AudioObjectPropertyAddress() - if inputVolume == 0.0 { - address.mSelector = AudioObjectPropertySelector(kAudioDevicePropertyMute) - } else { - address.mSelector = AudioObjectPropertySelector(kAudioHardwareServiceDeviceProperty_VirtualMasterVolume) - } address.mScope = AudioObjectPropertyScope(kAudioDevicePropertyScopeOutput) address.mElement = AudioObjectPropertyElement(kAudioObjectPropertyElementMaster) + address.mSelector = AudioObjectPropertySelector(kAudioHardwareServiceDeviceProperty_VirtualMasterVolume) return AudioObjectSetPropertyData(defaultDeviceID, &address, 0, nil, size, &inputVolume) } + + private func setMute( mute: Int) -> OSStatus { + var muteVal: Int = mute + var address: AudioObjectPropertyAddress = AudioObjectPropertyAddress() + address.mSelector = AudioObjectPropertySelector(kAudioDevicePropertyMute) + let size: UInt32 = UInt32(MemoryLayout.size(ofValue: muteVal)) + address.mScope = AudioObjectPropertyScope(kAudioDevicePropertyScopeOutput) + address.mElement = AudioObjectPropertyElement(kAudioObjectPropertyElementMaster) + return AudioObjectSetPropertyData(defaultDeviceID, &address, 0, nil, size, &muteVal) + } } class CustomSliderCell: NSSliderCell {