Merge pull request 'replace pactl based volume control with mpris based volume control' (#6) from FloralExMachina/infinitime:master into master

Reviewed-on: https://gitea.arsenm.dev/Arsen6331/infinitime/pulls/6
This commit is contained in:
Elara 2022-11-19 22:46:12 +00:00
commit 1f15572063
3 changed files with 45 additions and 21 deletions

View File

@ -15,24 +15,24 @@ This library's import path is `go.arsenm.dev/infinitime`.
### Dependencies ### 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 #### Arch
```shell ```shell
sudo pacman -S dbus bluez libpulse --needed sudo pacman -S dbus bluez --needed
``` ```
#### Debian/Ubuntu #### Debian/Ubuntu
```shell ```shell
sudo apt install dbus bluez pulseaudio-utils sudo apt install dbus bluez
``` ```
#### Fedora #### Fedora
```shell ```shell
sudo dnf install dbus bluez pulseaudio-utils sudo dnf install dbus bluez
``` ```
--- ---
@ -53,4 +53,4 @@ This library currently supports the following features:
### Mentions ### Mentions
The DFU process used in this library was created with the help of [siglo](https://github.com/alexr4535/siglo)'s source code. Specifically, this file: [ble_dfu.py](https://github.com/alexr4535/siglo/blob/main/src/ble_dfu.py) The DFU process used in this library was created with the help of [siglo](https://github.com/alexr4535/siglo)'s source code. Specifically, this file: [ble_dfu.py](https://github.com/alexr4535/siglo/blob/main/src/ble_dfu.py)

View File

@ -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()
}

View File

@ -107,6 +107,46 @@ func Prev() error {
return nil 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 type ChangeType int
const ( const (