ladish_control: Expose all current methods

This commit is contained in:
Nedko Arnaudov 2009-08-30 17:42:39 +03:00
parent b47fca2481
commit 302192c56d
1 changed files with 77 additions and 14 deletions

View File

@ -23,9 +23,13 @@
# or write to the Free Software Foundation, Inc.,
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
control_interface_name = 'org.ladish.Control'
service_name = 'org.ladish'
dbus_object_path = "/org/ladish/Control"
control_object_path = "/org/ladish/Control"
studio_object_path = "/org/ladish/Studio"
control_interface_name = 'org.ladish.Control'
studio_interface_name = 'org.ladish.Studio'
import sys
import os
@ -94,13 +98,21 @@ def main():
print "Usage: %s [command] [command] ..." % os.path.basename(sys.argv[0])
print "Commands:"
print " exit - exit ladish dbus service"
print " studios - list studios"
print " apps - list apps"
print " load <studioname> - load studio"
print " slist - list studios"
print " alist - list apps"
print " sload <studioname> - load studio"
print " sdel <studioname> - delete studio"
print " snew [studioname] - new studio"
print " sisloaded - is studio loaded?"
print " sname - get studio name"
print " ssave - save studio"
print " sunload - unload studio"
print " srename <studioname> - rename studio"
sys.exit(0)
bus = dbus.SessionBus()
lash = None
control_obj = None
studio_obj = None
# check arguments
index = 1
@ -108,28 +120,29 @@ def main():
arg = sys.argv[index]
index += 1
try:
if not lash:
lash = bus.get_object(service_name, dbus_object_path)
control_iface = dbus.Interface(lash, control_interface_name)
if not control_obj:
control_obj = bus.get_object(service_name, control_object_path)
control_iface = dbus.Interface(control_obj, control_interface_name)
if arg == "exit":
print "--- exit"
control_iface.Exit()
time.sleep(1)
# we have deactivated the object and we need to get new connection if there are more commands
lash = None
control_obj = None
control_iface = None
elif arg == 'studios':
elif arg == 'slist':
print "--- studio list"
for studio in control_iface.GetStudioList():
name = studio[0]
mtime = studio[1]['Modification Time']
print '"%s" last modified on %s' % (name, time.ctime(mtime))
elif arg == 'apps':
elif arg == 'alist':
print "--- app list"
for app in control_iface.GetApplicationList():
print app
elif arg == 'load':
elif arg == 'sload':
print "--- studio load"
if index >= len(sys.argv):
print "load studio command requires studio name argument"
sys.exit()
@ -142,8 +155,58 @@ def main():
#open_options["option2"] = True
control_iface.LoadStudio(arg, open_options)
elif arg == 'sdel':
print "--- studio delete"
if index >= len(sys.argv):
print "delete studio command requires studio name argument"
sys.exit()
arg = sys.argv[index]
index += 1
control_iface.DeleteStudio(arg)
elif arg == 'snew':
print "--- studio new"
name = ""
if index < len(sys.argv):
name = sys.argv[index]
index += 1
control_iface.NewStudio(name)
elif arg == 'sisloaded':
print "--- studio is loaded"
if control_iface.IsStudioLoaded():
print "yes"
else:
print "no"
else:
print "Unknown command '%s'" % arg
if not studio_obj:
studio_obj = bus.get_object(service_name, studio_object_path)
studio_iface = dbus.Interface(studio_obj, studio_interface_name)
if arg == 'sname':
print "--- studio get name"
print "\"%s\"" % studio_iface.GetName()
elif arg == 'ssave':
print "--- studio save"
studio_iface.Save()
elif arg == 'sunload':
print "--- studio unload"
studio_iface.Unload()
studio_obj = None
studio_iface = None
elif arg == 'srename':
print "--- studio rename"
if index >= len(sys.argv):
print "rename studio command requires studio name argument"
sys.exit()
arg = sys.argv[index]
index += 1
studio_iface.Rename(arg)
else:
print "Unknown command '%s'" % arg
except dbus.DBusException, e:
print "DBus exception: %s" % str(e)