def quit(): if not context.get_state().is_recording: # Emit quit signal and exit gtk.gdk.threads_enter() context.get_dispatcher().emit('galicaster-notify-quit') gtk.main_quit() gtk.gdk.threads_leave()
def change_selected_profile(self, button): model,iterator=self.view.get_selection().get_selected() if type(iterator) is Gtk.TreeIter: profile=model.get_value(iterator,0) context.get_conf().change_current_profile(profile.name) context.get_dispatcher().emit("action-reload-profile") self.close()
def change_selected_profile(self, button): model, iterator = self.view.get_selection().get_selected() if type(iterator) is Gtk.TreeIter: profile = model.get_value(iterator, 0) context.get_conf().change_current_profile(profile.name) context.get_dispatcher().emit("action-reload-profile") self.close()
def close(self): """Handles UI closure, destroying tabs and updating changes""" if self.profile: self.profile.destroy() if self.track: self.track.destroy() context.get_conf().update() context.get_dispatcher().emit("reload-profile") self.destroy()
def main(args): parser = argparse.ArgumentParser() parser.add_argument( '-v', '--version', action='version', version='Galicaster {version}'.format(version=__version__)) parser.parse_args(args=args[1:]) try: Gst.init(None) gc = core.Main() # Bug with Gtk.main() not raising a KeyboardInterrupt(SIGINT) exception # https://bugzilla.gnome.org/show_bug.cgi?id=622084 # Calling GObject.MainLoop.run() instead could be an option. # Sadly, Gtk.main_quit() does not work with it. # This workaround will stay until a better solution # is found or the bug is fixed. def handler(gc): print("SIGINT sent. Interrupted by user!") gc.quit() GLib.unix_signal_add(GLib.PRIORITY_HIGH, 2, handler, gc) # 2 = SIGINT Gtk.main() except KeyboardInterrupt: gc.emit_quit() print("Interrupted by user!") except AlreadyRunning as exc: #Added custom exception when galicaster it's already running msg = "Error starting Galicaster: {0}".format(exc) print(msg) d = context.get_dispatcher() d.emit("quit") return -2 except Exception as exc: # debug # print traceback.format_exc() msg = "Error starting Galicaster: {0}".format(exc) print(msg) logger = context.get_logger() logger and logger.error(msg) d = context.get_dispatcher() d.emit("quit") return -1 return 0
def stop(): response.content_type = 'text/html' state = context.get_state() if state.is_recording: #Emit the signal to begin the recording gtk.gdk.threads_enter() context.get_dispatcher().emit('stop-record', 0) gtk.gdk.threads_leave() return "Signal to stop recording sent" else: abort(500, "failed to stop the capture, or no current active capture")
def start(): response.content_type = 'text/html' state = context.get_state() # Already Recording if state.is_recording: abort(500, "couldn't start capture") else: gtk.gdk.threads_enter() context.get_dispatcher().emit('start-before', None) gtk.gdk.threads_leave() return "Signal to start recording sent"
def init(): ffprobe_version = '' videomatch_version = '' try: ffprobe_version = subprocess.check_output([ffprobe_bin, '-version']) except: logger.error('Unable to run ffprobe executable: %s', ffprobe_bin) try: videomatch_version = subprocess.check_output( [videomatch_bin, '-version']) except: logger.error('Unable to run videomatch executable: %s', videomatch_bin) if (ffprobe_version.split(' ')[0] == 'ffprobe') and (videomatch_version.split(' ')[0] == 'videomatch.pl'): logger.info('ffprobe version %s', ffprobe_version.split(' ')[2]) logger.info('videomatch version %s', videomatch_version.split(' ')[2]) try: dispatcher = context.get_dispatcher() dispatcher.connect("operation-started", drop_presentations) logger.info("Registered") except ValueError: logger.info("Error") pass else: logger.warn( 'ffprobe and/or videomatch not available: plugin will not run')
def test_cleanstale_plugin(self): dispatcher = context.get_dispatcher() repo = context.get_repository() conf = context.get_conf() now = datetime.datetime.utcnow() mp = mediapackage.Mediapackage(identifier="1", title='MP#1', date=(now - datetime.timedelta(days=1))) repo.add(mp) mp = mediapackage.Mediapackage(identifier="2", title='MP#2', date=(now - datetime.timedelta(days=30))) repo.add(mp) mp = mediapackage.Mediapackage(identifier="3", title='MP#3', date=(now - datetime.timedelta(days=60))) repo.add(mp) mp = mediapackage.Mediapackage(identifier="4", title='MP#4', date=(now + datetime.timedelta(days=1))) repo.add(mp) mp = mediapackage.Mediapackage(identifier="5", title='MP#5', date=(now + datetime.timedelta(days=30))) repo.add(mp) cleanstale.init() self.assertEqual(len(repo), 5) conf.set('cleanstale','maxarchivaldays', '50') dispatcher.emit('galicaster-notify-nightly') self.assertEqual(len(repo), 4) conf.set('cleanstale','maxarchivaldays', '20') dispatcher.emit('galicaster-notify-nightly') self.assertEqual(len(repo), 3)
def __init__(self, bins, players={}): """ Initialize the recorder. This class is event-based and needs a mainloop to work properly. :param bins: a ``list`` of ``dict`` with name, klass, device and file to record :param players: a ``dict`` a gtk.DrawingArea list to use as player. """ #FIXME check the values are dict with the next keys: name, klass/type, dev* and filesink. if not isinstance(bins, list): raise TypeError( '%s: need a %r; got a %r: %r' % ('bins', list, type(bins), bins) ) #FIXME check the values are gtk.DrawingArea if not isinstance(players, dict): raise TypeError( '%s: need a %r; got a %r: %r' % ('players', dict, type(players), players) ) self.dispatcher = context.get_dispatcher() self.bins_desc = bins self.players = players self.restart = False self.mute = False self.error = False self.pipeline_name = "galicaster_recorder" self.pipeline = gst.Pipeline(self.pipeline_name) self.bus = self.pipeline.get_bus() self.bins = dict() self.callback = None self.bus.add_signal_watch() self.bus.enable_sync_message_emission() #self.bus.connect('message', self.__debug) # TO DEBUG self.bus.connect('message::eos', self.__on_eos) self.bus.connect('message::error', self.__on_error) self.bus.connect('message::element', self.__on_message_element) self.bus.connect('message::state-changed', self.__on_state_changed) self.bus.connect('sync-message::element', self.__on_sync_message) for bin in bins: name = bin['name'] try: mod_name = 'galicaster.recorder.pipeline.' + bin['device'] __import__(mod_name) mod = sys.modules[mod_name] Klass = getattr(mod, "GC" + bin['device']) except: raise NameError( 'Invalid track type %s for %s track' % (mod_name, name) ) log.debug("Init bin %s %s", name, mod_name) self.bins[name] = Klass(bin) self.pipeline.add(self.bins[name])
def init(): global conf, logger dispatcher = context.get_dispatcher() logger = context.get_logger() conf = context.get_conf() dispatcher.connect('init', show_msg) dispatcher.connect('record-finished', show_msg)
def emit_signal(origin, button, signal, value=None): dispatcher = context.get_dispatcher() if value != None: dispatcher.emit(signal, value) else: dispatcher.emit(signal)
def init(): global conf, logger, recorder, dispatcher dispatcher = context.get_dispatcher() logger = context.get_logger() conf = context.get_conf() recorder = context.get_recorder() dispatcher.connect('init', manage_button)
def emit_signal(origin, button, signal, value=None): dispatcher = context.get_dispatcher() if value != None: dispatcher.emit(signal,value) else: dispatcher.emit(signal)
def init(): global lsPath, metricsTargetName, overviewPicName, sceneName lsPath = '/opt/ls/metrics' overviewPicName = '/opt/ls/record/overview.png' sceneName = '/opt/ls/profiles/overview.scn' if not os.path.exists(lsPath): logger.info("LectureSight not installed, or metrics not enabled") return # Target name for the json file in the mediapackage metricsTargetName = 'lecturesight-metrics.json' logger.info('Start LectureSight plugin: recording metrics from ' + lsPath) try: dispatcher = context.get_dispatcher() dispatcher.connect('recorder-started', lecturesight_start) dispatcher.connect('recorder-stopped', add_lecturesight_metrics) logger.info("Registered") except ValueError: logger.info("Error") pass
def init(): global recorder, dispatcher, logger, config, repo config = context.get_conf().get_section(CONFIG_SECTION) or {} dispatcher = context.get_dispatcher() repo = context.get_repository() logger = context.get_logger() backend = config.get(BACKEND) if backend == "onvif": global cam import galicaster.utils.camctrl_onvif_interface as camera # connect to the camera cam = camera.AXIS_V5915() cam.connect(config.get(IPADDRESS), config.get(PORT, DEFAULT_PORT), config.get(USERNAME), config.get(PASSWORD)) # initiate the onvif user interface dispatcher.connect("init", init_onvif_ui) elif backend == "visca": global pysca import galicaster.utils.pysca as pysca # If port is not defined, a None value will make this method fail pysca.connect(config.get(PORT_KEY)) # initiate the visca user interface dispatcher.connect("init", init_visca_ui) else: logger.warn( "You have to choose a backend in the config file before starting Galicaster, otherwise the cameracontrol plugin does not work." ) raise RuntimeError("No backend for the cameracontrol plugin defined.") logger.info("Camera connected.")
def init(): global conf, logger, event_handler, jobs dispatcher = context.get_dispatcher() conf = context.get_conf() logger = context.get_logger() path = conf.get('cameracontrol', 'path') pysca.connect(path) pysca.set_zoom(1, 0) pysca.pan_tilt_home(1) dispatcher.connect('init', load_ui) pysca.osd_off(1) logger.info("Cam connected") icons = [ "left", "right", "up1", "down1", "up_right", "up_left", "down_left", "down_right", "plus", "minus" ] icontheme = Gtk.IconTheme() for name in icons: pixbuf = GdkPixbuf.Pixbuf.new_from_file(get_image_path(name + ".svg")) icontheme.add_builtin_icon(name, 20, pixbuf) dispatcher.connect("action-key-press", on_key_press) dispatcher.connect("action-key-release", on_key_release) event_handler = Handler() jobs = Queue.Queue() t = T(jobs) t.setDaemon(True) t.start()
def __init__(self, files, players={}): """ Initialize the player This class is event-based and needs a mainloop to work properly. :param files: a ``dict`` a file name list to play :param players: a ``dict`` a Gtk.DrawingArea list to use as player """ # FIXME comprobar que existen los files sino excepcion if not isinstance(files, dict): raise TypeError( '%s: need a %r; got a %r: %r' % ('files', dict, type(files), files) ) # FIXME check the values are Gtk.DrawingArea if not isinstance(players, dict): raise TypeError( '%s: need a %r; got a %r: %r' % ('players', dict, type(players), players) ) self.dispatcher = context.get_dispatcher() self.files = files self.players = players self.duration = 0 self.has_audio = False self.error = None self.pipeline_complete = False self.pipeline = None self.audio_sink = None self.__get_duration_and_run()
def test_cleanstale_plugin(self): dispatcher = context.get_dispatcher() repo = context.get_repository() conf = context.get_conf() now = datetime.datetime.utcnow() mp = mediapackage.Mediapackage(identifier="1", title='MP#1', date=(now - datetime.timedelta(days=1))) repo.add(mp) mp = mediapackage.Mediapackage(identifier="2", title='MP#2', date=(now - datetime.timedelta(days=30))) repo.add(mp) mp = mediapackage.Mediapackage(identifier="3", title='MP#3', date=(now - datetime.timedelta(days=60))) repo.add(mp) mp = mediapackage.Mediapackage(identifier="4", title='MP#4', date=(now + datetime.timedelta(days=1))) repo.add(mp) mp = mediapackage.Mediapackage(identifier="5", title='MP#5', date=(now + datetime.timedelta(days=30))) repo.add(mp) conf.set('cleanstale','maxarchivaldays', '70') cleanstale.init() self.assertEqual(len(repo), 5) conf.set('cleanstale','maxarchivaldays', '50') cleanstale.init() dispatcher.emit('timer-nightly') self.assertEqual(len(repo), 4) conf.set('cleanstale','maxarchivaldays', '20') cleanstale.init() dispatcher.emit('timer-nightly') self.assertEqual(len(repo), 3)
def init(): global conf, logger, event_handler, jobs, cam_ctrl dispatcher = context.get_dispatcher() conf = context.get_conf() logger = context.get_logger() camera = conf.get('cameracontrol', 'camera') cam = __import__(camera, globals()) cam_ctrl = cam.Controls() icons = [ "left", "right", "up1", "down1", "up_right", "up_left", "down_left", "down_right", "plus", "minus" ] icontheme = Gtk.IconTheme() for name in icons: pixbuf = GdkPixbuf.Pixbuf.new_from_file(get_image_path(name + ".svg")) icontheme.add_builtin_icon(name, 20, pixbuf) dispatcher.connect('init', load_ui) dispatcher.connect("action-key-press", on_key_press) dispatcher.connect("action-key-release", on_key_release) event_handler = Handler() jobs = Queue.Queue() t = T(jobs) t.setDaemon(True) t.start()
def __init__(self): gtk.Box.__init__(self) dbuilder= gtk.Builder() dbuilder.add_from_file(get_ui_path('distrib.glade')) self.builder = dbuilder dbox = dbuilder.get_object("distbox") release = dbuilder.get_object("release_label") release.set_label("Galicaster "+__version__) recorder = dbuilder.get_object("button1") manager = dbuilder.get_object("button2") quit_button = dbuilder.get_object("button3") shutdown_button = dbuilder.get_object("button4") profile_button = dbuilder.get_object("profile_button") self.selected = dbuilder.get_object("selected_profile") self.update_selected_profile() #Connect signals dispatcher = context.get_dispatcher() dispatcher.connect("reload-profile", self.update_selected_profile) recorder.connect("clicked", self.emit_signal, "change_mode", 0) manager.connect("clicked", self.emit_signal, "change_mode", 1) quit_button.connect("clicked", self.emit_signal, "galicaster-quit") shutdown_button.connect("clicked", self.emit_signal, "galicaster-shutdown") profile_button.connect("clicked", self.on_profile_button) about = dbuilder.get_object("aboutevent") about.connect("button-press-event", self.show_about_dialog) conf = context.get_conf() quit_button.set_visible(conf.get_boolean("basic", "quit")) shutdown_button.set_visible(conf.get_boolean("basic", "shutdown")) self.pack_start(dbox, True, True, 0)
def test_context(self): self.assertNotEqual(type(context.get_conf()), galicaster.core.conf) self.assertEqual(type(context.get_conf()), galicaster.core.conf.Conf) self.assertEqual(type(context.get_dispatcher()), galicaster.core.dispatcher.Dispatcher) self.assertEqual(type(context.get_repository()), galicaster.mediapackage.repository.Repository)
def main(args): def usage(): sys.stderr.write("usage: %s\n" % args[0]) return 1 if len(args) != 1: return usage() try: Gst.init(None) gc = core.Main() Gtk.main() except KeyboardInterrupt: gc.emit_quit() print "Interrupted by user!" except Exception as exc: # debug # print traceback.format_exc() msg = "Error starting Galicaster: {0}".format(exc) print msg from galicaster.core import context logger = context.get_logger() logger and logger.error(msg) d = context.get_dispatcher() d.emit("galicaster-notify-quit") return -1 return 0
def init(): logger.info('Start rapidrec plugin') global recorder, dispatcher dispatcher = context.get_dispatcher() recorder = context.get_recorder() try: dispatcher = context.get_dispatcher() dispatcher.connect('timer-short', monitor_timer_action) logger.info("Registered") except ValueError: logger.info("Error") pass
def init(): global minfree, logger, repo, ocservice, dispatcher conf = context.get_conf() dispatcher = context.get_dispatcher() repo = context.get_repository() logger = context.get_logger() ocservice = context.get_ocservice() minfree = None try: minfree = int(conf.get('checkspace', 'minfreespace')) except Exception as exc: raise Exception("Wrong parameter minfreespace: {}".format(exc)) if minfree: logger.info("Parameter 'minfreespace' set to {} GB".format(minfree)) dispatcher.connect('timer-nightly', check_space) dispatcher.connect('recorder-status', check_space_status) oninit = conf.get('checkspace', 'checkoninit') if oninit in ["True", "true"]: check_space(None) else: raise Exception("Parameter minfreespace not configured")
def init(): try: conf = context.get_conf() mode = conf.get('qrcode', 'pause_mode') or 'hold' # or 'start_stop' symbols = {} symbols['start'] = conf.get('qrcode', 'start_code') or 'start' symbols['stop'] = conf.get('qrcode', 'stop_code') or 'stop' symbols['hold'] = conf.get('qrcode', 'hold_code') or 'hold' rescale = conf.get('qrcode', 'rescale') or 'source' drop_frames = conf.get_boolean('qrcode', 'drop_frames') or False buffers = conf.get_int('qrcode', 'buffers') or 200 hold_timeout = conf.get_int('qrcode', 'hold_timeout') or 1 # secs ignore_bins = conf.get('qrcode', 'ignore_track_name') or None qr = QRCodeScanner(mode, symbols, hold_timeout, rescale, drop_frames, buffers, ignore_bins, context.get_logger()) dispatcher = context.get_dispatcher() dispatcher.connect('recorder-ready', qr.qrcode_add_pipeline) # only process sync-messages when recording to reduce overhead dispatcher.connect('recorder-started', qr.qrcode_connect_to_sync_message) dispatcher.connect('recorder-stopped', qr.qrcode_disconnect_to_sync_message) qr.set_add_edits(conf.get_boolean('qrcode', 'mp_add_edits') or False) qr.set_trimhold( conf.get_boolean('qrcode', 'mp_force_trimhold') or False) qr.set_add_smil(conf.get_boolean('qrcode', 'mp_add_smil') or False) dispatcher.connect('recorder-stopped', qr.qrcode_update_mediapackage) except ValueError: pass
def __init__(self, bins, players={}): """ Initialize the recorder. This class is event-based and needs a mainloop to work properly. :param bins: a ``list`` of ``dict`` with name, klass, device and file to record :param players: a ``dict`` a gtk.DrawingArea list to use as player. """ #FIXME check the values are dict with the next keys: name, klass/type, dev* and filesink. if not isinstance(bins, list): raise TypeError( '%s: need a %r; got a %r: %r' % ('bins', list, type(bins), bins) ) #FIXME check the values are gtk.DrawingArea if not isinstance(players, dict): raise TypeError( '%s: need a %r; got a %r: %r' % ('players', dict, type(players), players) ) self.dispatcher = context.get_dispatcher() self.bins_desc = bins self.players = players self.restart = False self.mute = False self.error = False self.pipeline = gst.Pipeline("galicaster_recorder") self.bus = self.pipeline.get_bus() self.bins = dict() self.callback = None self.bus.add_signal_watch() self.bus.enable_sync_message_emission() #self.bus.connect('message', WeakMethod(self, '_debug')) # TO DEBUG self.bus.connect('message::eos', WeakMethod(self, '_on_eos')) self.bus.connect('message::error', WeakMethod(self, '_on_error')) self.bus.connect('message::element', WeakMethod(self, '_on_message_element')) self.bus.connect('message::state-changed', WeakMethod(self, '_on_state_changed')) self.bus.connect('sync-message::element', WeakMethod(self, '_on_sync_message')) for bin in bins: name = bin['name'] try: mod_name = 'galicaster.recorder.bins.' + bin['device'] __import__(mod_name) mod = sys.modules[mod_name] Klass = getattr(mod, "GC" + bin['device']) except: raise NameError( 'Invalid track type %s for %s track' % (mod_name, name) ) logger.debug("Init bin %s %s", name, mod_name) self.bins[name] = Klass(bin) self.pipeline.add(self.bins[name])
def init(): dispatcher = context.get_dispatcher() inactivity = context.get_conf().get('screensaver', 'inactivity') dispatcher.connect('upcoming-recording', deactivate_screensaver) dispatcher.connect('starting-record', deactivate_screensaver) dispatcher.connect('restart-preview', activate_screensaver) activate_screensaver()
def init(): global inactivity dispatcher = context.get_dispatcher() inactivity = context.get_conf().get('screensaver', 'inactivity') dispatcher.connect('upcoming-recording', deactivate_and_poke) dispatcher.connect('starting-record', deactivate_and_poke) dispatcher.connect('restart-preview', configure) dispatcher.connect('galicaster-notify-quit', configure_quit) configure()
def __get_dependencies(self): dispatcher = context.get_dispatcher() repo = Repository(self.tmppath) worker = self.WorkerMock() conf = Conf() conf.set("allows", "overlap", "False") logger = Logger(None) return dispatcher, repo, worker, conf, logger
def init(): global inactivity dispatcher = context.get_dispatcher() inactivity = context.get_conf().get('screensaver', 'inactivity') dispatcher.connect('upcoming-recording', deactivate_and_poke) dispatcher.connect('starting-record', deactivate_and_poke) dispatcher.connect('restart-preview', configure) dispatcher.connect('galicaster-notify-quit', configure_quit) default_configuration()
def init(): conf = context.get_conf() dispatcher = context.get_dispatcher() dispatcher.connect('galicaster-notify-nightly', clear_job) try: days = int(conf.get('cleanstale','maxarchivaldays')) except ValueError: #log or set default value pass
def __get_dependencies(self): dispatcher = context.get_dispatcher() repo = Repository(self.tmppath) worker = self.WorkerMock() conf = Conf() conf.reload() conf.set("allows", "overlap", "False") logger = Logger(None) return dispatcher, repo, worker, conf, logger
def init(): dispatcher = context.get_dispatcher() dispatcher.connect("galicaster-notify-quit", do_stop_timers) dispatcher.connect('starting-record', create_timer) try: hours = int(conf.get('forcedurationrec', 'duration')) except ValueError: #log or set default value pass
def __init__(self, element): """elements set the previous area to which the top bar's back button points to""" Gtk.Box.__init__(self) self.strip = StripUI(element) self.conf = context.get_conf() self.dispatcher = context.get_dispatcher() self.repository = context.get_repository() self.network = False self.dispatcher.connect_ui("opencast-status", self.network_status)
def init(): logger.debug('check_published set to {}'.format(check_published)) logger.debug('check_after set to {}'.format(str(check_after))) logger.debug('check_nightly set to {}'.format(check_nightly)) try: dispatcher = context.get_dispatcher() dispatcher.connect('timer-short', reingest) except ValueError: pass
def init(): dispatcher = context.get_dispatcher() dispatcher.connect("galicaster-notify-quit", do_stop_timers) dispatcher.connect("starting-record", create_timer) try: hours = int(conf.get("forcedurationrec", "duration")) except ValueError: # log or set default value pass
def init(): conf = context.get_conf() dispatcher = context.get_dispatcher() dispatcher.connect('galicaster-notify-nightly', clear_job) try: days = int(conf.get('cleanstale', 'maxarchivaldays')) except ValueError: #log or set default value pass
def init(): global logger, repo, ocservice, dispatcher conf = context.get_conf() dispatcher = context.get_dispatcher() repo = context.get_repository() logger = context.get_logger() ocservice = context.get_ocservice() logger.info("Logging process memory use") dispatcher.connect('timer-long', check_mem)
def __init__(self): DBusService(self) logger.info('galicaster.__version__: %r', __version__) logger.info('galicaster.__file__: %r', __file__) self.change_cwd() self.conf = context.get_conf() self.dispatcher = context.get_dispatcher() self.modules = self.conf.get_modules() self.load_modules()
def init(): global focus_is_active dispatcher = context.get_dispatcher() conf = context.get_conf() focus_is_active = not conf.get_boolean('basic', 'admin') dispatcher.connect('audio-mute', warning_audio) dispatcher.connect('audio-recovered', warning_audio_destroy) dispatcher.connect('galicaster-status', event_change_mode) dispatcher.connect('reload-profile', reload_profile)
def __init__(self, element): """elements set the previous area to which the top bar's back button points to""" gtk.Box.__init__(self) self.strip = StripUI(element) self.conf = context.get_conf() self.dispatcher = context.get_dispatcher() self.repository = context.get_repository() self.network = False self.dispatcher.connect("net-up", self.network_status, True) self.dispatcher.connect("net-down", self.network_status, False)
def init(): global logger, hidecursor, settings, default_settings dispatcher = context.get_dispatcher() logger = context.get_logger() conf = context.get_conf() dispatcher.connect('init', configure_init) dispatcher.connect('quit', configure_quit) settings = conf.get_json('appearance', 'settings') default_settings = conf.get_json('appearance', 'defaultsettings') hidecursor = conf.get_boolean('appearance', 'hidecursor')
def init(): global focus_is_active dispatcher = context.get_dispatcher() conf = context.get_conf() focus_is_active = not conf.get_boolean('basic','admin') dispatcher.connect('audio-mute', warning_audio) dispatcher.connect('audio-recovered', warning_audio_destroy) dispatcher.connect('galicaster-status', event_change_mode) dispatcher.connect('reload-profile', reload_profile)
def __init__(self): DBusService(self) logger.info("galicaster.__version__: %r", __version__) logger.info("galicaster.__file__: %r", __file__) self.conf = context.get_conf() self.state = context.get_state() self.dispatcher = context.get_dispatcher() self.modules = self.conf.get_modules() self.load_modules() self.dispatcher.connect("net-up", self.check_net, True) self.dispatcher.connect("net-down", self.check_net, False)
def init(): global dispatcher, logger, timeout logger = context.get_logger() dispatcher = context.get_dispatcher() conf = context.get_conf() threshold = conf.get('lowaudio','lowaudio_threshold') timeout = conf.get_float('lowaudio','timeout') if not threshold or not timeout: raise Exception("Failed to load plugin lowaudio, no parameters set in configuration file") dispatcher.add_new_signal("low-audio") dispatcher.add_new_signal("low-audio-recovered") dispatcher.connect('low-audio', low_audio) dispatcher.connect('low-audio-recovered', low_audio_recovered)
def init(): global conf, logger, repo, dispatcher, minfreespace, freespace conf = context.get_conf() dispatcher = context.get_dispatcher() logger = context.get_logger() repo = context.get_repository() minfreespace = conf.get_int('checkspace','minfreespace') if not minfreespace: raise Exception("Parameter minfreespace not configured") logger.info("Parameter 'minfreespace' set to {} GB".format(minfreespace)) dispatcher.connect("recorder-ready", check_space)
def test_send_to_moniviestin_plugin(self): dispatcher = context.get_dispatcher() repo = context.get_repository() conf = context.get_conf() conf.set("moniviestin", "url", "http://yska.psy.jyu.fi:8080/uliuli") mp = self.create_mediapackage() repo.add(mp) send_to_moniviestin.init() self.assertEqual(len(repo), 1) dispatcher.emit('stop-operation', 'ingest', mp, True) self.assertEqual(len(repo), 1) dispatcher.emit('stop-operation', 'ingest', mp, False) self.assertEqual(len(repo), 1)
def init(): global focus_is_active dispatcher = context.get_dispatcher() conf = context.get_conf() focus_is_active = not conf.get_boolean("basic", "admin") dispatcher.connect("audio-mute", warning_audio) dispatcher.connect("audio-recovered", warning_audio_destroy) dispatcher.connect("galicaster-status", event_change_mode) dispatcher.connect("reload-profile", clear_data_and_check) dispatcher.connect("restart_preview", deactivate_hidden_and_check) dispatcher.connect("starting-record", deactivate_hidden_and_check) dispatcher.connect("upcoming-recording", deactivate_hidden_and_check)
def init(): global focus_is_active dispatcher = context.get_dispatcher() conf = context.get_conf() focus_is_active = not conf.get_boolean('basic','admin') dispatcher.connect('audio-mute', warning_audio) dispatcher.connect('audio-recovered', warning_audio_destroy) dispatcher.connect('galicaster-status', event_change_mode) dispatcher.connect('reload-profile', clear_data_and_check) dispatcher.connect('restart_preview', deactivate_hidden_and_check) dispatcher.connect('starting-record', deactivate_hidden_and_check) dispatcher.connect('upcoming-recording', deactivate_hidden_and_check)