diff options
| author | rixx <rixx-git@cutebit.de> | 2015-03-30 15:11:39 +0200 |
|---|---|---|
| committer | rixx <rixx-git@cutebit.de> | 2015-03-30 15:11:39 +0200 |
| commit | ec31f28ff1aaf777aedc74970b9b752141114ad3 (patch) | |
| tree | 8f3879101a8b5a9730fd960cdd1883808e787772 | |
| parent | 93c060a45f8de813caf7bd1b277b6c63490a5b80 (diff) | |
adds VLC support
uses only dbus and communicates via the MPRIS MusicPlayer2 interface
| -rw-r--r-- | py3status/modules/player_control.py | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/py3status/modules/player_control.py b/py3status/modules/player_control.py index 062db49..acae24a 100644 --- a/py3status/modules/player_control.py +++ b/py3status/modules/player_control.py @@ -15,6 +15,7 @@ Provides an icon to control simple functions of audio/video players: from syslog import syslog, LOG_INFO from time import time, sleep +import dbus import os import subprocess @@ -33,7 +34,7 @@ class Py3status: """ debug = False - supported_players = 'audacious' + supported_players = 'audacious vlc' volume_tick = 1 def __init__(self): @@ -83,6 +84,10 @@ class Py3status: player_name = self._detect_running_player() if player_name == 'audacious': self._run(['/usr/bin/audacious', '-p']) + elif player_name == 'vlc': + player = self._get_vlc() + if player: + player.Play() def _stop(self): self.status = 'stop' @@ -90,6 +95,10 @@ class Py3status: player_name = self._detect_running_player() if player_name == 'audacious': self._run(['/usr/bin/audacious', '-s']) + elif player_name == 'vlc': + player = self._get_vlc() + if player: + player.Stop() def _pause(self): self.status = 'pause' @@ -97,6 +106,10 @@ class Py3status: player_name = self._detect_running_player() if player_name == 'audacious': self._run(['/usr/bin/audacious', '-u']) + elif player_name == 'vlc': + player = self._get_vlc() + if player: + player.Pause() def _change_volume(self, increase): """Change volume using amixer @@ -135,6 +148,13 @@ class Py3status: return None + def _get_vlc(self): + mpris = 'org.mpris.MediaPlayer2' + mpris_slash = '/' + mpris.replace('.', '/') + bus = dbus.SessionBus() + proxy = bus.get_object(mpris+'.vlc', mpris_slash) + return dbus.Interface(proxy, dbus_interface=mpris+'.Player') + def player_control(self, i3s_output_list, i3s_config): return dict( full_text=self.icon, |
