def __new__(cls): # Singleton if not cls._instance: # first instance cls.config = Configuration() cls.dct_filter = {} cls.dct_media = {} # {"filter_name" : class_filter} cls.dct_filterchain = {} cls.dct_filter = {} # initialize subscriber server publisher = Publisher(5031) cls.publisher = publisher # self.resource.set_all_publisher(publisher) publisher.start() publisher.register(keys.get_key_execution_list()) publisher.register(keys.get_key_filter_param()) publisher.register(keys.get_key_media_param()) publisher.register(keys.get_key_lst_rec_historic()) publisher.register(keys.get_key_count()) # instance class cls._instance = super(Resource, cls).__new__(cls) return cls._instance
def __new__(cls): # Singleton if not cls._instance: # first instance cls.config = Configuration() cls.dct_filter = {} cls.dct_media = {} # {"filter_name" : class_filter} cls.dct_filterchain = {} cls.dct_filter = {} # initialize subscriber server publisher = Publisher(5031) cls.publisher = publisher # self.resource.set_all_publisher(publisher) publisher.start() publisher.register(keys.get_key_execution_list()) publisher.register(keys.get_key_filter_param()) publisher.register(keys.get_key_media_param()) publisher.register(keys.get_key_lst_rec_historic()) publisher.register(keys.get_key_count()) # instance class cls._instance = super(Resource, cls).__new__(cls) return cls._instance
def stop_record(self, media_name): self._post_command_(locals()) media = self._get_media(media_name=media_name) if not media: return False if media.is_media_video(): log.print_function( logger.error, "Cannot stop record to a media media %s." % media_name) return False status = media.stop_record() if status: # {"time": ..., "media_name": ..., "path": ...} record_status = { "time": time.time(), "media_name": media_name, "path": media.get_path_record(), } self.lst_record_historic.append(record_status) self.publisher.publish(keys.get_key_lst_rec_historic(), record_status) else: log.print_function(logger.error, "Error to stop the record %s." % media_name) return status
def add_lst_record_historic(self, media_name, path): # {"time": ..., "media_name": ..., "path": ...} record_status = { "time": time.time(), "media_name": media_name, "path": path, } self.lst_record_historic.append(record_status) self.publisher.publish(keys.get_key_lst_rec_historic(), record_status)
def __init__(self, controller, subscriber): super(WinRecHistoric, self).__init__() self.ui = None self.resource_icon_path = "SeaGoatVision/client/resource/img/" self.controller = controller self.subscriber = subscriber self.shared_info = SharedInfo() self.lst_old_record_historic = [] self.reload_ui() self.subscriber.subscribe(keys.get_key_lst_rec_historic(), self.update_record_table)
def close(self): logger.info("Close cmdHandler and close server.") for media_name in self.resource.get_media_name_list(): media = self.resource.get_media(media_name) media.close() media.destroy() self.server_observer.stop() self.publisher.stop() self.publisher.deregister(keys.get_key_execution_list()) self.publisher.deregister(keys.get_key_filter_param()) self.publisher.deregister(keys.get_key_media_param()) self.publisher.deregister(keys.get_key_lst_rec_historic()) self.publisher.deregister(keys.get_key_count())