Source

playerdo / playerdo / backends / quodlibet.py

Luke Plant 69ceaf5 








Luke Plant be50a08 
Luke Plant 69ceaf5 




Luke Plant 2188661 
Luke Plant 69ceaf5 


























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"]).decode('ascii', errors="ignore").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"]).decode('ascii').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()
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.