mirror of
https://github.com/clockworkpi/LauncherGoDev.git
synced 2026-03-20 10:52:52 +01:00
sound and brightenss
This commit is contained in:
68
Menu/GameShell/10_Settings/Sound/volume_unix.go
Normal file
68
Menu/GameShell/10_Settings/Sound/volume_unix.go
Normal file
@@ -0,0 +1,68 @@
|
||||
// +build !windows
|
||||
/*
|
||||
* Copied from https://github.com/itchyny/volume-go, MIT License
|
||||
*/
|
||||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func execCmd(cmdArgs []string) ([]byte, error) {
|
||||
cmd := exec.Command(cmdArgs[0], cmdArgs[1:]...)
|
||||
cmd.Env = append(os.Environ(), cmdEnv()...)
|
||||
out, err := cmd.Output()
|
||||
if err != nil {
|
||||
err = fmt.Errorf(`failed to execute "%v" (%+v)`, strings.Join(cmdArgs, " "), err)
|
||||
}
|
||||
return out, err
|
||||
}
|
||||
|
||||
// GetVolume returns the current volume (0 to 100).
|
||||
func GetVolume() (int, error) {
|
||||
out, err := execCmd(getVolumeCmd())
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return parseVolume(string(out))
|
||||
}
|
||||
|
||||
// SetVolume sets the sound volume to the specified value.
|
||||
func SetVolume(volume int) error {
|
||||
if volume < 0 || 100 < volume {
|
||||
return errors.New("out of valid volume range")
|
||||
}
|
||||
_, err := execCmd(setVolumeCmd(volume))
|
||||
return err
|
||||
}
|
||||
|
||||
// IncreaseVolume increases (or decreases) the audio volume by the specified value.
|
||||
func IncreaseVolume(diff int) error {
|
||||
_, err := execCmd(increaseVolumeCmd(diff))
|
||||
return err
|
||||
}
|
||||
|
||||
// GetMuted returns the current muted status.
|
||||
func GetMuted() (bool, error) {
|
||||
out, err := execCmd(getMutedCmd())
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
return parseMuted(string(out))
|
||||
}
|
||||
|
||||
// Mute mutes the audio.
|
||||
func Mute() error {
|
||||
_, err := execCmd(muteCmd())
|
||||
return err
|
||||
}
|
||||
|
||||
// Unmute unmutes the audio.
|
||||
func Unmute() error {
|
||||
_, err := execCmd(unmuteCmd())
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user