#!/usr/bin/env python
-# -*- coding: UTF-8 -*-
+# -*- coding: utf-8 -*-
#
# This file is part of jack_mixer
#
import gobject
import sys
import os
+import signal
try:
import lash
return
self.monitor_channel = self.mixer.add_output_channel("Monitor", True, True)
+ self.save = False
+
if lash_client:
# Send our client name to server
lash_event = lash.lash_event_new_with_type(lash.LASH_Client_Name)
gobject.timeout_add(80, self.read_meters)
self.lash_client = lash_client
- if lash_client:
- gobject.timeout_add(1000, self.lash_check_events)
+ gobject.timeout_add(200, self.lash_check_events)
+
+ def sighandler(self, signum, frame):
+ print "Signal %d received" % signum
+ if signum == signal.SIGUSR1:
+ self.save = True
+ elif signum == signal.SIGTERM:
+ gtk.main_quit()
+ elif signum == signal.SIGINT:
+ gtk.main_quit()
+ else:
+ print "Unknown signal %d received" % signum
def cleanup(self):
print "Cleaning jack_mixer"
about.destroy()
def lash_check_events(self):
+ if self.current_filename and self.save:
+ print "saving on SIGUSR1 request"
+ self.on_save_cb()
+ print "save done"
+ self.save = False
+ return True
+
+ if not self.lash_client:
+ return True
+
while lash.lash_get_pending_event_count(self.lash_client):
event = lash.lash_get_event(self.lash_client)
self.window.show_all()
+ signal.signal(signal.SIGUSR1, self.sighandler)
+ signal.signal(signal.SIGTERM, self.sighandler)
+ signal.signal(signal.SIGINT, self.sighandler)
+
gtk.main()
#f = file("/dev/stdout", "w")