def app_main(): FSGSDirectories.initialize() Settings.instance().verbose = False Settings.instance().load() print("base_dir", FSGSDirectories.get_base_dir()) print("cache_dir", FSGSDirectories.get_cache_dir()) print("cdroms_dir", FSGSDirectories.get_cdroms_dir()) print("configurations_dir", FSGSDirectories.get_configurations_dir()) print("controllers_dir", FSGSDirectories.get_controllers_dir()) print("covers_dir", FSGSDirectories.get_covers_dir()) print("data_dir", FSGSDirectories.get_data_dir()) print("downloads_dir", FSGSDirectories.downloads_dir()) print("floppies_dir", FSGSDirectories.get_floppies_dir()) print("hard_drives_dir", FSGSDirectories.get_hard_drives_dir()) # print("images_dir", FSGSDirectories.get_images_dir()) print("kickstarts_dir", FSGSDirectories.get_kickstarts_dir()) print("launcher_dir", FSGSDirectories.get_launcher_dir()) print("logs_dir", FSGSDirectories.get_logs_dir()) print("plugins_dir", FSGSDirectories.get_plugins_dir()) # print("portable_dir", FSGSDirectories.portable_dir()) print("save_states_dir", FSGSDirectories.get_save_states_dir()) print("screenshots_dir", FSGSDirectories.get_screenshots_dir()) print("screenshots_output_dir =", FSGSDirectories.screenshots_output_dir()) print("themes_dir", FSGSDirectories.get_themes_dir()) print("titles_dir", FSGSDirectories.get_titles_dir())
def insert_cd(self, drive, path, sha1=None): if sha1 is None: sha1 = "" print("FIXME: not calculating CD checksum just yet") default_dir = FSGSDirectories.get_cdroms_dir() path = Paths.contract_path(path, default_dir) self.set_config([ ("cdrom_drive_{0}".format(drive), path), ("x_cdrom_drive_{0}_sha1".format(drive), sha1), ])
def get_default_directory(media_type): if media_type == "floppy": return FSGSDirectories.get_floppies_dir() elif media_type == "cd": return FSGSDirectories.get_cdroms_dir() elif media_type == "hd": return FSGSDirectories.get_hard_drives_dir() elif media_type == "rom": return FSGSDirectories.get_kickstarts_dir() # FIXME: Return new Media directory instead return FSGSDirectories.get_base_dir()
def prepare(self): print("LaunchHandler.prepare") if not self.temp_dir: self.temp_dir = tempfile.mkdtemp(prefix="fs-uae-") print("temp dir", self.temp_dir) self.config["floppies_dir"] = self.temp_dir print("state dir", self.get_state_dir()) self.config["state_dir"] = self.get_state_dir() self.config["save_states_dir"] = "" self.config["floppy_overlays_dir"] = "" self.config["flash_memory_dir"] = "" # FIXME: Document or change. Tests needs to be able to disable # saving changes or otherwise be able to start with a clean slate. # FIXME: Change handler is disabled for now # if self.config.get("__save_dir", "") == "0": # pass # else: # self.change_handler = GameChangeHandler(self.temp_dir) self.config["cdroms_dir"] = FSGSDirectories.get_cdroms_dir() self.config[ "configurations_dir" ] = FSGSDirectories.get_configurations_dir() self.config["controllers_dir"] = FSGSDirectories.get_controllers_dir() self.config["hard_drives_dir"] = FSGSDirectories.get_hard_drives_dir() self.config["kickstarts_dir"] = FSGSDirectories.get_kickstarts_dir() self.config["save_states_dir"] = FSGSDirectories.get_save_states_dir() self.config["themes_dir"] = FSGSDirectories.get_themes_dir() # self.prepare_roms() if self.stop_flag: return self.prepare_floppies() if self.stop_flag: return self.prepare_cdroms() if self.stop_flag: return # self.prepare_hard_drives() if self.stop_flag: return # self.copy_hd_files() if self.stop_flag: return self.init_changes() if self.stop_flag: return self.prepare_theme() if self.stop_flag: return self.prepare_extra_settings()
def multi_select(cls, parent=None, *, config): default_dir = FSGSDirectories.get_cdroms_dir() dialog = LauncherFilePicker( parent, gettext("Select multiple CD-ROMs"), "cd", multiple=True ) if not dialog.show_modal(): return paths = dialog.get_paths() paths.sort() # checksum_tool = ChecksumTool(parent) for i, path in enumerate(paths): # sha1 = checksum_tool.checksum(path) sha1 = "" print("FIXME: not calculating CD checksum just yet") path = Paths.contract_path(path, default_dir) if i < 1: config.set_multiple( [ ("cdrom_drive_{0}".format(i), path), ("x_cdrom_drive_{0}_sha1".format(i), sha1), ] ) config.set_multiple( [ ("cdrom_image_{0}".format(i), path), ("x_cdrom_image_{0}_sha1".format(i), sha1), ] ) # blank the rest of the drives for i in range(len(paths), 1): config.set_multiple( [ ("cdrom_drive_{0}".format(i), ""), ("x_cdrom_drive_{0}_sha1".format(i), ""), ] ) # Config.set("x_cdrom_drive_{0}_sha1".format(i), "") # Config.set("x_cdrom_drive_{0}_name".format(i), "") # blank the rest of the image list for i in range(len(paths), Amiga.MAX_CDROM_IMAGES): config.set_multiple( [ ("cdrom_image_{0}".format(i), ""), ("x_cdrom_image_{0}_sha1".format(i), ""), ] )
def fix_loaded_config(config): print("[CONFIG] Fix loaded config") # cls.fix_joystick_ports(config) # FIXME: parent checksum_tool = ChecksumTool(None) def fix_file_checksum(sha1_key, key, base_dir, is_rom=False): path = config.get(key, "") # hack to synchronize URLs # print(repr(path)) if path.startswith("http://") or path.startswith("https://"): sha1 = path config[sha1_key] = sha1 return path = Paths.expand_path(path) sha1 = config.get(sha1_key, "") if not path: return if sha1: # assuming sha1 is correct return if not os.path.exists(path): print(repr(path), "does not exist") path = os.path.join(base_dir, path) if not os.path.exists(path): print(repr(path), "does not exist") return if os.path.isdir(path): # could set a fake checksum here or something, to indicate # that it isn't supposed to be set.. return print("checksumming", repr(path)) size = os.path.getsize(path) if size > 64 * 1024 * 1024: # not checksumming large files right now print("not checksumming large file") return if is_rom: sha1 = checksum_tool.checksum_rom(path) else: sha1 = checksum_tool.checksum(path) config[sha1_key] = sha1 for i in range(Amiga.MAX_FLOPPY_DRIVES): fix_file_checksum( "x_floppy_drive_{0}_sha1".format(i), "floppy_drive_{0}".format(i), FSGSDirectories.get_floppies_dir(), ) for i in range(Amiga.MAX_FLOPPY_IMAGES): fix_file_checksum( "x_floppy_image_{0}_sha1".format(i), "floppy_image_{0}".format(i), FSGSDirectories.get_floppies_dir(), ) for i in range(Amiga.MAX_CDROM_DRIVES): fix_file_checksum( "x_cdrom_drive_{0}_sha1".format(i), "cdrom_drive_{0}".format(i), FSGSDirectories.get_cdroms_dir(), ) for i in range(Amiga.MAX_CDROM_IMAGES): fix_file_checksum( "x_cdrom_image_{0}_sha1".format(i), "cdrom_image_{0}".format(i), FSGSDirectories.get_cdroms_dir(), ) for i in range(Amiga.MAX_HARD_DRIVES): fix_file_checksum( "x_hard_drive_{0}_sha1".format(i), "hard_drive_{0}".format(i), FSGSDirectories.get_hard_drives_dir(), ) # FIXME: need to handle checksums for Cloanto here fix_file_checksum( "x_kickstart_file_sha1", "x_kickstart_file", FSGSDirectories.get_kickstarts_dir(), is_rom=True, ) fix_file_checksum( "x_kickstart_ext_file_sha1", "x_kickstart_ext_file", FSGSDirectories.get_kickstarts_dir(), is_rom=True, ) # Convert uaegfx_card to new graphics_card option uae_gfx_card = config.get(Option.UAEGFX_CARD, "") if uae_gfx_card: if uae_gfx_card == "1": if not config.get(Option.GRAPHICS_CARD, ""): config[Option.GRAPHICS_CARD] = "uaegfx" del config[Option.UAEGFX_CARD] # FIXME: Set changed! config["__changed"] = "1"
def get_cdroms_dir(self): # FIXME: dependency loop return FSGSDirectories.get_cdroms_dir()