Browse Source

add some support for quit

tags/0.120.1
Torben Hohn 16 years ago
parent
commit
028aa82983
2 changed files with 32 additions and 4 deletions
  1. +12
    -0
      python/libjack.py
  2. +20
    -4
      python/sessionmanager.py

+ 12
- 0
python/libjack.py View File

@@ -332,6 +332,18 @@ class JackClient(object):

return retval

def session_save_and_quit( self, path ):
commands = session_notify( self.client, None, JackSessionQuit, path )
i=0
retval = []
while( commands[i].uuid != "" ):
retval.append( NotifyReply( commands[i].uuid, commands[i].clientname, commands[i].command ) )
i+=1
jack_free( commands )

return retval

def connect( self, a, b ):
portA_p = port_by_name( self.client, a )


+ 20
- 4
python/sessionmanager.py View File

@@ -119,14 +119,20 @@ class SessionManager( object ):
print "session restored..."
return 0

def quit_session( self, name ):
self.save_session( name, True )

def save_session( self, name ):

def save_session( self, name, quit=False ):
if os.path.exists( self.sessiondir+name ):
print "session %s already exists"%name
return -1
os.mkdir( self.sessiondir+name )
g=self.cl.get_graph()
notify = self.cl.session_save( self.sessiondir+name+"/" )
if quit:
notify = self.cl.session_save_and_quit( self.sessiondir+name+"/" )
else:
notify = self.cl.session_save( self.sessiondir+name+"/" )

for n in notify:
c = g.get_client( n.clientname )
@@ -170,6 +176,11 @@ if have_dbus:
def save_as( self, name ):
return self.sm.save_session( name )

@dbus.service.method( dbus_interface="org.jackaudio.sessionmanager",
in_signature="s", out_signature="i" )
def quit_as( self, name ):
return self.sm.quit_session( name )

@dbus.service.method( dbus_interface="org.jackaudio.sessionmanager",
in_signature="s", out_signature="i" )
def load( self, name ):
@@ -202,8 +213,8 @@ oparser.add_option( "--list", action="store_true", dest="list", default=False,
help="List Projects" )
oparser.add_option( "--quitdaemon", action="store_true", dest="quitdaemon", default=False,
help="Tell SessionManager Daemon to Exit" )
#oparser.add_option( "--quitas", action="store", dest="quitas", type="string",
# help="SaveAs And Quit" )
oparser.add_option( "--quitas", action="store", dest="quitas", type="string",
help="SaveAs And Quit" )
oparser.add_option( "--load", action="store", dest="load", type="string",
help="Load Session with <name>" )
oparser.add_option( "--renames", action="store_true", dest="renames", default=False,
@@ -218,6 +229,9 @@ if not opt.dbus:

if opt.load:
sm.load_session( opt.load )

if opt.quitas:
sm.quit_session( opt.quitas )
sm.exit()
else:
if opt.daemon:
@@ -235,6 +249,8 @@ else:
sm_iface = dbus.Interface( sm_proxy, "org.jackaudio.sessionmanager" )
if opt.saveas:
sm_iface.save_as( opt.saveas )
if opt.quitas:
sm_iface.quit_as( opt.quitas )
if opt.load:
sm_iface.load( opt.load )
if opt.list:


Loading…
Cancel
Save