Browse Source

restructure sessionmanager.py a bit and add setup.py and dbus .service file

tags/0.120.1
Torben Hohn 15 years ago
parent
commit
d26cc81ae0
5 changed files with 31 additions and 9 deletions
  1. +16
    -0
      python/setup.py
  2. +2
    -0
      python/src/pyjacksm/__init__.py
  3. +0
    -4
      python/src/pyjacksm/libjack.py
  4. +10
    -2
      python/src/pyjacksm/state.py
  5. +3
    -3
      python/src/sessionmanager.py

+ 16
- 0
python/setup.py View File

@@ -0,0 +1,16 @@
#!/usr/bin/env python

from distutils.core import setup

setup(name='pyjacksm',
version='0.1',
description='jack session manager',
author='Torben Hohn',
author_email='torbenh@gmx.de',
url='http://www.jackaudio.org/',
packages=['pyjacksm'],
package_dir={'pyjacksm': 'src/pyjacksm'},
scripts=['src/sessionmanager.py'],
data_files=[('/usr/share/dbus-1/services', ['data/org.jackaudio.sessionmanager.service'])]
)


+ 2
- 0
python/src/pyjacksm/__init__.py View File

@@ -0,0 +1,2 @@

__all__ = ['libjack', 'state']

python/libjack.py → python/src/pyjacksm/libjack.py View File

@@ -49,10 +49,6 @@ jack_free = libjack.jack_free
jack_free.argtypes = [ c_void_p ] jack_free.argtypes = [ c_void_p ]
jack_free.restype = None jack_free.restype = None


rename_client = libjack.jack_rename_client
rename_client.argtypes = [ client_p, c_char_p, c_char_p ]
rename_client.restype = c_int

reserve_client_name = libjack.jack_reserve_client_name reserve_client_name = libjack.jack_reserve_client_name
reserve_client_name.argtypes = [ client_p, c_char_p, c_char_p ] reserve_client_name.argtypes = [ client_p, c_char_p, c_char_p ]
reserve_client_name.restype = c_int reserve_client_name.restype = c_int

python/state.py → python/src/pyjacksm/state.py View File

@@ -8,8 +8,13 @@ class SessionDom( object ):
def __init__( self, filename=None ): def __init__( self, filename=None ):
if filename: if filename:
self.dom = parse( filename ) self.dom = parse( filename )

doc = self.dom.documentElement
for c in doc.getElementsByTagName( "jackclient" ):
c.orig_name = c.getAttribute( "jackname" )
else: else:
self.dom = impl.createDocument(None,"jacksession",None) self.dom = impl.createDocument(None,"jacksession",None)

def add_client( self, client ): def add_client( self, client ):
cl_elem = Element( "jackclient" ) cl_elem = Element( "jackclient" )
@@ -81,11 +86,14 @@ class SessionDom( object ):
retval.append( i.getAttribute( "dst" ) ) retval.append( i.getAttribute( "dst" ) )
return retval return retval


def get_commandline_for_client( self, name ):
def get_commandline_for_client( self, name, session_dir ):
doc = self.dom.documentElement doc = self.dom.documentElement
for c in doc.getElementsByTagName( "jackclient" ): for c in doc.getElementsByTagName( "jackclient" ):
if c.getAttribute( "jackname" ) == name: if c.getAttribute( "jackname" ) == name:
return c.getAttribute( "cmdline" )
client_session_dir = session_dir + c.orig_name
cmdline = c.getAttribute( "cmdline" )

return cmdline.replace( "${SESSION_DIR}", client_session_dir )


def get_uuid_client_pairs( self ): def get_uuid_client_pairs( self ):
retval = [] retval = []

python/sessionmanager.py → python/src/sessionmanager.py View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python


import libjack
import state
from pyjacksm import libjack
from pyjacksm import state
import subprocess import subprocess
from optparse import OptionParser from optparse import OptionParser
from ConfigParser import SafeConfigParser from ConfigParser import SafeConfigParser
@@ -82,7 +82,7 @@ class SessionManager( object ):


# now fire up the processes # now fire up the processes
for cname in sd.get_reg_client_names(): for cname in sd.get_reg_client_names():
cmd = sd.get_commandline_for_client( cname )
cmd = sd.get_commandline_for_client( cname, self.sessiondir + name + "/" )
children.append( subprocess.Popen( cmd, shell=True ) ) children.append( subprocess.Popen( cmd, shell=True ) )


avail_ports = g.get_port_list() avail_ports = g.get_port_list()

Loading…
Cancel
Save