Example #1
0
    def __init__(self, context):
        self.overlays = {}
        self.defaults = {}

        for name, system in get_system_items(context):
            if "grid/overlay" in system.images:
                path = system.images["grid/overlay"]
                try:
                    self.overlays[name] = load_image(path)
                except ImageLoadError as e:
                    Logger("emulator").error(str(e))

            if "grid/rom-default" in system.images:
                self.defaults[name] = system.images["grid/rom-default"]

        def get_image_path(rom):
            if "images" in rom and "grid" in rom["images"]:
                return rom["images"]["grid"]
            return self.defaults.get(rom["system"], None)

        def post_process(image, rom):
            if not rom["system"] in self.overlays:
                return image

            image = image.copy()

            overlay = self.overlays[rom["system"]].copy()
            overlay = scale(overlay, image.get_size(), False)
            image.blit(overlay, (0, 0))

            return image

        super().__init__(context, "emulator", get_image_path, post_process)
Example #2
0
        def callback(result, song):
            if "filename" in result and self.status.current == song:
                image = load_image(result["filename"])

                self._update_background_image(image, song)

                image_holder = self.dialog.get_widget("image")
                image_holder.set(image)