add a sispmctl_device
[~helmut/onoff.git] / mpd_watcher.py
index 9d8f25c..f72ca51 100755 (executable)
@@ -1,13 +1,18 @@
 #!/usr/bin/python
+"""
+A client to a device given on the commnd line, that is activated whenever the
+local mpd plays music.
+"""
 
+import argparse
 import os
-import sys
 
-import dbus
 from dbus.mainloop.glib import DBusGMainLoop
 from gi.repository import GObject
 import mpd
 
+import onoff.dbusutils
+
 class MpdWatcher(object):
     def __init__(self, mpdclient, onoffproxy):
         self.mpdclient = mpdclient
@@ -28,7 +33,7 @@ class MpdWatcher(object):
         state = self.mpdclient.status()["state"]
         if state == "play":
             if self.activatefd is None:
-                st, fd = self.onoffproxy.activatefd(3)
+                st, fd = self.onoffproxy.activatefd()
                 self.activatefd = fd.take()
         else:
             if self.activatefd is not None:
@@ -36,9 +41,10 @@ class MpdWatcher(object):
                 self.activatefd = None
 
 def main():
+    parser = argparse.ArgumentParser(parents=[onoff.dbusutils.dbus_options])
+    args = parser.parse_args()
     DBusGMainLoop(set_as_default=True)
-    bus = dbus.SessionBus()
-    proxy = bus.get_object("de.subdivi.onoff0", "/de/subdivi/onoff0/" + sys.argv[1])
+    proxy = onoff.dbusutils.get_dbus_proxy(args)
     client = mpd.MPDClient()
     client.connect("localhost", 6600)
     watcher = MpdWatcher(client, proxy)