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.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.argtypes = [ client_p, c_char_p, c_char_p ]
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 ):
if filename:
self.dom = parse( filename )

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

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

def get_commandline_for_client( self, name ):
def get_commandline_for_client( self, name, session_dir ):
doc = self.dom.documentElement
for c in doc.getElementsByTagName( "jackclient" ):
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 ):
retval = []

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

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

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

# now fire up the processes
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 ) )

avail_ports = g.get_port_list()

Loading…
Cancel
Save