summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrixx <rixx-git@cutebit.de>2015-03-30 15:11:39 +0200
committerrixx <rixx-git@cutebit.de>2015-03-30 15:11:39 +0200
commitec31f28ff1aaf777aedc74970b9b752141114ad3 (patch)
tree8f3879101a8b5a9730fd960cdd1883808e787772
parent93c060a45f8de813caf7bd1b277b6c63490a5b80 (diff)
adds VLC support
uses only dbus and communicates via the MPRIS MusicPlayer2 interface
-rw-r--r--py3status/modules/player_control.py22
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,