Compare commits

...

2 Commits

2 changed files with 21 additions and 6 deletions

View File

@ -4,7 +4,7 @@ INSTALLDIR = ~/Library/Application\ Support/com.elgato.StreamDeck/Plugins/com.dl
#SDPLUGINDIR = "./com.dlprows.macvolumecontrol.sdPlugin" #SDPLUGINDIR = "./com.dlprows.macvolumecontrol.sdPlugin"
update: update:
killall Stream\ Deck.app || true killall Stream\ Deck || true
go build -o $(INSTALLDIR) . go build -o $(INSTALLDIR) .
open -a Elgato\ Stream\ Deck open -a Elgato\ Stream\ Deck

View File

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