} ZDF = { "frequency":562000000, "inversion": "AUTO", "bandwidth":str(8), "code-rate-hp":"2/3", "code-rate-lp":"2/3", "modulation":"QAM 16", "trans-mode":"8k", "guard":str(4), "hierarchy":"NONE" } kaa.main.select_notifier('generic') kaa.gobject_set_threaded() d =dvb.DVB(adapter=0, frontend=0) # tune to ARD in 0.5 seconds kaa.OneShotTimer(d.tune, ARD).start(0.5) # start recording 1 after 1 second from startup and stop 4 seconds later sink = gst.parse_bin_from_description('queue ! filesink name=sink', True) sink.get_by_name("sink").set_property('location', 'foo1.ts') kaa.OneShotTimer(d.get_stream(160).append, sink).start(1.0) kaa.OneShotTimer(d.get_stream(160).remove, sink).start(5.0) # start recording 2 after 4 second from startup and stop 1 second later sink = gst.element_factory_make('filesink') sink.set_property('location', 'foo2.ts')
ReflectTexture = libcandy.ReflectTexture class Mainloop(object): """ Clutter mainloop. """ def run(self): # Import clutter only in the gobject thread # This function will be the running mainloop if 'clutter' in sys.modules: print 'kaa.candy thread failure, kaa.candy may segfault' try: import clutter except Exception, e: log.exception('unable to import clutter') return clutter.threads_init() import_modules() clutter.init() clutter.main() def quit(self): # Import clutter only in the gobject thread import clutter clutter.main_quit() if 'sphinx' not in sys.modules: # set generic mainloop and start the clutter thread kaa.main.select_notifier('generic') kaa.gobject_set_threaded(Mainloop())
class Test(): @kaa.threaded(kaa.GOBJECT) @kaa.synchronized() def foo(self): import time time.sleep(0.4) return kaa.is_mainthread() @kaa.coroutine() def test(self): r = yield self.foo() print 'foo', kaa.is_mainthread(), r @kaa.synchronized() def has_to_wait(self): print 'go' if 1: kaa.gobject_set_threaded() else: kaa.main.select_notifier('gtk') t = Test() kaa.OneShotTimer(t.test).start(0.1) kaa.OneShotTimer(t.has_to_wait).start(0.2) kaa.main.run() print 'done'
logger = logging.getLogger() # remove handler, we want to set the look and avoid duplicate handlers for l in logger.handlers[:]: logger.removeHandler(l) # set stdout logging formatter = logging.Formatter('%(levelname)s candy:%(module)s(%(lineno)s): %(message)s') handler = logging.StreamHandler() handler.setFormatter(formatter) logger.addHandler(handler) if sys.argv[2]: formatter = logging.Formatter('%(asctime)s %(levelname)-8s [%(name)6s] %(filename)s %(lineno)s: %(message)s') handler = logging.handlers.RotatingFileHandler(sys.argv[2], maxBytes=1000000, backupCount=2) handler.setFormatter(formatter) logger.addHandler(handler) # set log level logger.setLevel(logging.INFO) try: kaa.main.init('generic') kaa.gobject_set_threaded(mainloop) # start server and keep its reference to avoid it being deleted by # GC before the actual connect. s = Server(sys.argv[1]) kaa.main.run() except Exception, e: log.exception('backend shutdown')