Fix jack reactivate

Proxies to all interfaces need to be cleared on object deactivation

git-svn-id: svn+ssh://svn.marcochapeau.org/laditools/trunk@172 bfe161da-02ef-4cea-8c43-ae261ea21ac6
This commit is contained in:
nedko 2008-09-16 07:54:22 +00:00
parent 8a7b33bad9
commit f4b61be07e
4 changed files with 24 additions and 10 deletions

View File

@ -79,7 +79,7 @@ class laditray (gtk.StatusIcon, laditools.manager):
self.set_tooltip ("JACK is sick")
self.set_diagnose_text(repr(e))
self.set_from_pixbuf (self.stopped_pixbuf)
self.clear_jack_controller()
self.clear_jack_proxies()
# Take a look at the processes we've started so we don't get any zombies
for i in self.proc_list:
i.poll ()

View File

@ -22,9 +22,11 @@ service_name = name_base + '.service'
class jack_controller:
def __init__(self):
#print "creating jack controller proxy object"
self.bus = dbus.SessionBus()
self.controller = self.bus.get_object(service_name, "/org/jackaudio/Controller")
self.iface = dbus.Interface(self.controller, controller_interface_name)
#print(self.controller)
def is_availalbe(self):
try:

View File

@ -62,20 +62,23 @@ class manager:
def get_jack_controller(self):
if not self.proxy_jack_controller:
#print "creating jack proxy"
self.proxy_jack_controller = jack_controller()
return self.proxy_jack_controller
def is_jack_controller_available(self):
return self.proxy_jack_controller != None
def clear_jack_controller(self):
self.proxy_jack_controller = None
def get_jack_configure(self):
if not self.proxy_jack_configure:
self.proxy_jack_configure = jack_configure()
return self.proxy_jack_configure
def clear_jack_proxies(self):
#print "clearing jack proxies"
self.proxy_jack_controller = None
self.proxy_jack_configure = None
def jack_is_available(self):
proxy = self.get_jack_controller()
return proxy and proxy.is_availalbe()
@ -95,27 +98,33 @@ class manager:
def jack_reactivate(self):
self.get_jack_controller().kill()
self.clear_jack_controller()
self.clear_jack_proxies()
def jack_reset_xruns(self):
self.get_jack_controller().reset_xruns()
def jack_is_started(self):
#print "jack_is_started"
return self.get_jack_controller().is_started()
def jack_is_realtime(self):
#print "jack_is_realtime"
return self.get_jack_controller().is_realtime()
def jack_get_load(self):
#print "jack_get_load"
return self.get_jack_controller().get_load()
def jack_get_xruns(self):
#print "jack_get_xruns"
return self.get_jack_controller().get_xruns()
def jack_get_sample_rate(self):
#print "jack_get_sample_rate"
return self.get_jack_controller().get_sample_rate()
def jack_get_latency(self):
#print "jack_get_latency"
return self.get_jack_controller().get_latency()
def get_a2j_controller(self):

View File

@ -92,10 +92,13 @@ class wmjackctl (wmoo.Application, laditools.manager):
line0 += " "
if self.a2j_is_available():
if self.a2j_is_started():
line0 += ' A'
else:
line0 += ' a'
try:
if self.a2j_is_started():
line0 += ' A'
else:
line0 += ' a'
except:
pass
self.set_line(0, line0)
self.set_line(1, "started")
@ -139,7 +142,7 @@ class wmjackctl (wmoo.Application, laditools.manager):
self.clear_line(3)
self.clear_line(4)
self.clear_line(5)
self.clear_jack_controller()
self.clear_jack_proxies()
self.put_lines (self.lines)
wmoo.Application.update (self)