Fixing an issue where some devices (usb) don't support channel 0, so i switched to virtual main volume
This commit is contained in:
parent
9aea138a5c
commit
d44af63511
@ -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 (
|
||||
@ -42,11 +43,18 @@ func GetDefaultOutputDevice() (AudioObjectID, OSStatus) {
|
||||
|
||||
func GetVolume(objectID AudioObjectID) (float32, OSStatus) {
|
||||
|
||||
properties := C.AudioObjectPropertyAddress{
|
||||
C.kAudioHardwareServiceDeviceProperty_VirtualMainVolume,
|
||||
C.kAudioDevicePropertyScopeOutput,
|
||||
C.kAudioObjectPropertyElementMain,
|
||||
}
|
||||
/*
|
||||
properties := C.AudioObjectPropertyAddress{
|
||||
C.kAudioDevicePropertyVolumeScalar,
|
||||
C.kAudioDevicePropertyScopeOutput,
|
||||
0, //main channel
|
||||
}
|
||||
*/
|
||||
|
||||
var data C.Float32
|
||||
dataSize := C.UInt32(unsafe.Sizeof(data))
|
||||
@ -65,11 +73,18 @@ func GetVolume(objectID AudioObjectID) (float32, OSStatus) {
|
||||
|
||||
func SetVolume(objectID AudioObjectID, volume float32) OSStatus {
|
||||
|
||||
properties := C.AudioObjectPropertyAddress{
|
||||
C.kAudioHardwareServiceDeviceProperty_VirtualMainVolume,
|
||||
C.kAudioDevicePropertyScopeOutput,
|
||||
C.kAudioObjectPropertyElementMain,
|
||||
}
|
||||
/*
|
||||
properties := C.AudioObjectPropertyAddress{
|
||||
C.kAudioDevicePropertyVolumeScalar,
|
||||
C.kAudioDevicePropertyScopeOutput,
|
||||
0, //main channel
|
||||
}
|
||||
*/
|
||||
|
||||
data := C.Float32(volume)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user