Luke Plant avatar Luke Plant committed 69ceaf5

Added support for quodlibet

Comments (0)

Files changed (4)

 Change log
 ==========
 
+Version 0.5
+-----------
+
+* Added support for quodlibet
+
 Version 0.4
 -----------
 

playerdo/backends/__init__.py

 from playerdo.backends.mpris import *
 from playerdo.backends.mpris2 import *
 from playerdo.backends.banshee import *
+from playerdo.backends.quodlibet import *
 

playerdo/backends/quodlibet.py

+from playerdo.backends.base import Player
+from playerdo.utils import process_stdout, process_retval
+
+
+class Quodlibet(Player):
+
+    friendly_name = "quodlibet"
+
+    def is_running(self):
+        processes = process_stdout(["ps", "-A", "-o", "cmd"]).split("\n")
+        return len([p for p in processes
+                if (p.startswith("python")
+                    and ("quodlibet" in p))]) > 0
+
+    def is_paused(self):
+        return process_stdout(["quodlibet", "--status"]).strip().split(' ')[0:1] == ["paused"]
+
+    def is_stopped(self):
+        # Has no concept of 'stopped'
+        return self.is_paused()
+
+    def play(self):
+        process_retval(["quodlibet", "--play"])
+
+    def pause(self):
+        process_retval(["quodlibet", "--pause"])
+
+    def unpause(self):
+        self.play()
+
+    def playpause(self):
+        process_retval(["quodlibet", "--play-pause"])
+
+    def togglepause(self):
+        self.playpause()
+
+    def next(self):
+        process_retval(["quodlibet", "--next"])
+
+    def prev(self):
+        process_retval(["quodlibet", "--previous"])
+
+    def stop(self):
+        self.pause()
 
 setup(
     name = "playerdo",
-    version = "0.4",
+    version = "0.5",
     packages = find_packages(),
     include_package_data = True,
     scripts = ['player_do'],
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.