replace pactl based volume control with mpris based volume control #6
| @@ -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