initial commit
This commit is contained in:
commit
511e41f214
56
mpdWatch.py
Normal file
56
mpdWatch.py
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
#!/bin/python3
|
||||||
|
import rxv
|
||||||
|
from mpd import MPDClient
|
||||||
|
import time
|
||||||
|
|
||||||
|
def main():
|
||||||
|
client = MPDClient()
|
||||||
|
client.connect("localhost", 6600)
|
||||||
|
receivers = rxv.find()
|
||||||
|
rx = receivers[0]
|
||||||
|
lastState = getMPDStatus(client)
|
||||||
|
while True:
|
||||||
|
#Check if paused or seeking
|
||||||
|
if getMPDStatus(client) != lastState:
|
||||||
|
#play toggled
|
||||||
|
if getMPDStatus(client) == 1:
|
||||||
|
#playing now - turn on receiver asap
|
||||||
|
if not rx.on:
|
||||||
|
#dirty workaround so that my cubie detects the receiver as output
|
||||||
|
rx.on = True
|
||||||
|
time.sleep(4)
|
||||||
|
rx.input = "HDMI1"
|
||||||
|
time.sleep(1)
|
||||||
|
rx.input = "HDMI2"
|
||||||
|
else:
|
||||||
|
turnOff = waitForChanges(client, 10)
|
||||||
|
if turnOff:
|
||||||
|
#lets not waste energy and turn of the receiver
|
||||||
|
rx.on = False
|
||||||
|
|
||||||
|
lastState = getMPDStatus(client)
|
||||||
|
#wait until the player-subsystem gets changed
|
||||||
|
client.idle("player")
|
||||||
|
|
||||||
|
client.close()
|
||||||
|
client.disconnect()
|
||||||
|
|
||||||
|
def getMPDStatus( client ):
|
||||||
|
if "play" in client.status()["state"]:
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def waitForChanges( client, timeout ):
|
||||||
|
counter = 0
|
||||||
|
initState = getMPDStatus(client)
|
||||||
|
ranIntoTimeout = True
|
||||||
|
while counter < timeout:
|
||||||
|
if getMPDStatus(client) != initState:
|
||||||
|
ranIntoTimeout = False
|
||||||
|
break;
|
||||||
|
time.sleep(0.1)
|
||||||
|
counter += 1
|
||||||
|
return ranIntoTimeout
|
||||||
|
|
||||||
|
main()
|
Loading…
Reference in a new issue