replace pactl based volume control with mpris based volume control #6
@ -15,24 +15,24 @@ This library's import path is `go.arsenm.dev/infinitime`.
|
||||
|
||||
### Dependencies
|
||||
|
||||
This library requires `dbus`, `bluez`, and `pactl` to function. These allow the library to use bluetooth, control media, control volume, etc.
|
||||
This library requires `dbus`, and `bluez` to function. These allow the library to use bluetooth, control media, control volume, etc.
|
||||
|
||||
#### Arch
|
||||
|
||||
```shell
|
||||
sudo pacman -S dbus bluez libpulse --needed
|
||||
sudo pacman -S dbus bluez --needed
|
||||
```
|
||||
|
||||
#### Debian/Ubuntu
|
||||
|
||||
```shell
|
||||
sudo apt install dbus bluez pulseaudio-utils
|
||||
sudo apt install dbus bluez
|
||||
```
|
||||
|
||||
#### Fedora
|
||||
|
||||
```shell
|
||||
sudo dnf install dbus bluez pulseaudio-utils
|
||||
sudo dnf install dbus bluez
|
||||
```
|
||||
|
||||
---
|
||||
|
@ -1,16 +0,0 @@
|
||||
package player
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
// VolUp uses pactl to increase the volume of the default sink
|
||||
func VolUp(percent uint) error {
|
||||
return exec.Command("pactl", "set-sink-volume", "@DEFAULT_SINK@", fmt.Sprintf("+%d%%", percent)).Run()
|
||||
}
|
||||
|
||||
// VolDown uses pactl to decrease the volume of the default sink
|
||||
func VolDown(percent uint) error {
|
||||
return exec.Command("pactl", "set-sink-volume", "@DEFAULT_SINK@", fmt.Sprintf("-%d%%", percent)).Run()
|
||||
}
|
@ -107,6 +107,46 @@ func Prev() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func VolUp(percent uint) error {
|
||||
|
||||
player, err := getPlayerObj()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if player != nil {
|
||||
currentVal, err := player.GetProperty("org.mpris.MediaPlayer2.Player.Volume")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
newVal := currentVal.Value().(float64) + (float64(percent) / 100)
|
||||
err = player.SetProperty("org.mpris.MediaPlayer2.Player.Volume", newVal)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func VolDown(percent uint) error {
|
||||
|
||||
player, err := getPlayerObj()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if player != nil {
|
||||
currentVal, err := player.GetProperty("org.mpris.MediaPlayer2.Player.Volume")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
newVal := currentVal.Value().(float64) - (float64(percent) / 100)
|
||||
err = player.SetProperty("org.mpris.MediaPlayer2.Player.Volume", newVal)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type ChangeType int
|
||||
|
||||
const (
|
||||
|
Reference in New Issue
Block a user