Example #1
0
class Video_Overlay(Observable, Plugin):
    icon_chr = "O"

    def __init__(self, g_pool):
        super().__init__(g_pool)
        self.manager = OverlayManager(g_pool.rec_dir, self)

    def recent_events(self, events):
        if "frame" in events:
            frame = events["frame"]
            for overlay in self.manager.overlays:
                overlay.draw_on_frame(frame)

    def on_drop(self, paths):
        multi_drop_offset = 10
        inital_drop = current_mouse_pos(
            self.g_pool.main_window,
            self.g_pool.camera_render_size,
            self.g_pool.capture.frame_size,
        )
        valid_paths = [p for p in paths if self.valid_path(p)]
        for video_path in valid_paths:
            self._add_overlay_to_storage(video_path, inital_drop)
            inital_drop = (
                inital_drop[0] + multi_drop_offset,
                inital_drop[1] + multi_drop_offset,
            )
        # event only consumed if at least one valid file was present
        return bool(valid_paths)

    @staticmethod
    def valid_path(path):
        # splitext()[1] always starts with `.`
        ext = os.path.splitext(path)[1][1:]
        return ext in VIDEO_EXTS

    def _add_overlay_to_storage(self, video_path, initial_pos=(0, 0)):
        config = Configuration(video_path,
                               origin_x=initial_pos[0],
                               origin_y=initial_pos[1])
        self.manager.add(config)
        self.manager.save_to_disk()
        self._overlay_added_to_storage(self.manager.most_recent)

    def _overlay_added_to_storage(self, overlay):
        pass  # observed to create menus and draggables

    def init_ui(self):
        self.add_menu()
        self.menu.label = "Generic Video Overlays"
        self.ui = UIManagementGeneric(self, self.menu, self.manager.overlays)
        self.ui.add_observer("remove_overlay", self.manager.remove_overlay)

    def deinit_ui(self):
        self.ui.teardown()
        self.remove_menu()
Example #2
0
class Video_Overlay(Observable, Plugin):
    icon_chr = "O"

    def __init__(self, g_pool):
        super().__init__(g_pool)
        self.manager = OverlayManager(g_pool.rec_dir, self)

    def recent_events(self, events):
        if "frame" in events:
            frame = events["frame"]
            for overlay in self.manager.overlays:
                overlay.draw_on_frame(frame)

    def on_drop(self, paths):
        multi_drop_offset = 10
        inital_drop = current_mouse_pos(
            self.g_pool.main_window,
            self.g_pool.camera_render_size,
            self.g_pool.capture.frame_size,
        )
        valid_paths = [p for p in paths if self.valid_path(p)]
        for video_path in valid_paths:
            self._add_overlay_to_storage(video_path, inital_drop)
            inital_drop = (
                inital_drop[0] + multi_drop_offset,
                inital_drop[1] + multi_drop_offset,
            )
        # event only consumed if at least one valid file was present
        return bool(valid_paths)

    @staticmethod
    def valid_path(path):
        # splitext()[1] always starts with `.`
        ext = os.path.splitext(path)[1][1:]
        return ext in VIDEO_EXTS

    def _add_overlay_to_storage(self, video_path, initial_pos=(0, 0)):
        config = Configuration(
            video_path, origin_x=initial_pos[0], origin_y=initial_pos[1]
        )
        self.manager.add(config)
        self.manager.save_to_disk()
        self._overlay_added_to_storage(self.manager.most_recent)

    def _overlay_added_to_storage(self, overlay):
        pass  # observed to create menus and draggables

    def init_ui(self):
        self.add_menu()
        self.menu.label = "Generic Video Overlays"
        self.ui = UIManagementGeneric(self, self.menu, self.manager.overlays)
        self.ui.add_observer("remove_overlay", self.manager.remove_overlay)

    def deinit_ui(self):
        self.ui.teardown()
        self.remove_menu()
Example #3
0
 def __init__(self, g_pool):
     super().__init__(g_pool)
     self.manager = OverlayManager(g_pool.rec_dir)
Example #4
0
 def __init__(self, g_pool):
     super().__init__(g_pool)
     self.manager = OverlayManager(g_pool.rec_dir, self)