Fixing an issue where some devices (usb) don't support channel 0, so i switched to virtual main volume

This commit is contained in:
Daniel Prows 2023-08-21 10:56:03 -06:00
parent 9aea138a5c
commit d44af63511

View File

@ -2,8 +2,9 @@ package volume
/*
#cgo CFLAGS: -x objective-c
#cgo LDFLAGS: -framework CoreAudio
#cgo LDFLAGS: -framework CoreAudio -framework AudioToolbox
#include <CoreAudio/CoreAudio.h>
#include <AudioToolbox/AudioToolbox.h>
*/
import "C"
import (
@ -43,10 +44,17 @@ func GetDefaultOutputDevice() (AudioObjectID, OSStatus) {
func GetVolume(objectID AudioObjectID) (float32, OSStatus) {
properties := C.AudioObjectPropertyAddress{
C.kAudioDevicePropertyVolumeScalar,
C.kAudioHardwareServiceDeviceProperty_VirtualMainVolume,
C.kAudioDevicePropertyScopeOutput,
0, //main channel
C.kAudioObjectPropertyElementMain,
}
/*
properties := C.AudioObjectPropertyAddress{
C.kAudioDevicePropertyVolumeScalar,
C.kAudioDevicePropertyScopeOutput,
0, //main channel
}
*/
var data C.Float32
dataSize := C.UInt32(unsafe.Sizeof(data))
@ -66,10 +74,17 @@ func GetVolume(objectID AudioObjectID) (float32, OSStatus) {
func SetVolume(objectID AudioObjectID, volume float32) OSStatus {
properties := C.AudioObjectPropertyAddress{
C.kAudioDevicePropertyVolumeScalar,
C.kAudioHardwareServiceDeviceProperty_VirtualMainVolume,
C.kAudioDevicePropertyScopeOutput,
0, //main channel
C.kAudioObjectPropertyElementMain,
}
/*
properties := C.AudioObjectPropertyAddress{
C.kAudioDevicePropertyVolumeScalar,
C.kAudioDevicePropertyScopeOutput,
0, //main channel
}
*/
data := C.Float32(volume)