class AmarokEventHandler:

    def __init__(self, state):
        self.__running = True;
        self.__playlist = Playlist()
        self.__state = state
        dcop = Dcop.init()
        dcop.player.enableRandomMode("false")

    def start(self):
        while self.__running:
            delay = 1
            fd = sys.stdin.fileno()
            (r,w,e) = select.select( [fd], [], [], delay)
            for File in r:
                if File == fd:
                    line = os.read(fd, 1024)
                    self.__dispatch(line)

    def stop(self):
        self.__running = False

    def __dispatch(self, s):
        Debug.log("Event received: " + s)
        if s.find("engineStateChange: empty" ) >= 0:
            Debug.log("Playlist is empty!")
            if self.__state.isRunning():
                Debug.log("Queuing random song")
                self.__playlist.playRandom()
            else:
                Debug.log("Not running")
        elif s.find("trackChange" ) >= 0:
            if not self.__playlist.isPlaying():
                Debug.log("Queuing random song")
                self.__playlist.playRandom()
 def __dispatch(self, s):
     if s.find("engineStateChange: empty" ) >= 0:
         if self.__state.isRunning():
             sys.stderr.write("Unknown notification: " + s + " -> ignoring\n")
             self.__player.playRandom()
     elif s.find("trackChange" ) >= 0:
         pl = Playlist()
         if not pl.isPlaying():
             self.__player.playRandom()                
     else:
         sys.stderr.write("Unknown notification: " + s + " -> ignoring\n")
 def __dispatch(self, s):
     Debug.log("Event received: " + s)
     if s.find("engineStateChange: empty" ) >= 0:
         Debug.log("Playlist is empty!")
         if self.__state.isRunning():
             Debug.log("Queuing random song")
             self.__player.playRandom()
         else:
             Debug.log("Not running")
     elif s.find("trackChange" ) >= 0:
         pl = Playlist()
         if not pl.isPlaying():
             self.__player.playRandom()                
 def __dispatch(self, s):
     now = time.time()
     sys.stderr.write("%i \n" % now)
     if s.find("engineStateChange: empty" ) >= 0:
         # The following is a trick to make stop work; there's got to be a way to talk to this
         # thread
         # Issue: it doesn't work from Amarok itself
         if (now - self.__last >= 3):
             self.__player.playRandom()
         else:
             sys.stderr.write("Too soon: skipping\n")
     elif s.find("trackChange" ) >= 0:
         pl = Playlist()
         if not pl.isPlaying():
             self.__player.playRandom()                
     else:
         sys.stderr.write("Unknown notification: " + s + " -> ignoring\n")
     self.__last = now
Ejemplo n.º 5
0
def play(p, request):
    request.state.start()
    p.play()
    pl = Playlist()
    if not pl.isPlaying():
        p.playRandom()
Ejemplo n.º 6
0
def play():
    p.play()
    pl = Playlist()
    if not pl.isPlaying():
        p.playRandom()