1#ifndef YAZE_APP_EDITOR_SYSTEM_ROM_FILE_MANAGER_H_
2#define YAZE_APP_EDITOR_SYSTEM_ROM_FILE_MANAGER_H_
9#include "absl/status/status.h"
33 absl::Status
LoadRom(
Rom* rom,
const std::string& filename);
37 const std::filesystem::path& collision_source = {});
38 absl::Status
SaveRomAs(
Rom* rom,
const std::string& filename);
56 std::vector<BackupEntry>
ListBackups(
const std::string& rom_filename)
const;
57 absl::Status
PruneBackups(
const std::string& rom_filename)
const;
68 const std::string& original_filename)
const;
70 const std::string& original_filename)
const;
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Handles all ROM file I/O operations.
std::string GenerateBackupFilename(const std::string &original_filename) const
void SetBackupRetentionCount(int count)
absl::Status PruneBackups(const std::string &rom_filename) const
absl::Status OpenRomOrProject(Rom *rom, const std::string &filename)
absl::Status SaveRom(Rom *rom, const std::filesystem::path &collision_source={})
std::vector< BackupEntry > ListBackups(const std::string &rom_filename) const
absl::Status ValidateRom(Rom *rom)
RomFileManager(ToastManager *toast_manager)
std::string GetRomFilename(Rom *rom) const
void SetBackupBeforeSave(bool enabled)
void SetBackupFolder(const std::string &folder)
absl::Status CreateBackup(Rom *rom)
void SetBackupKeepDailyDays(int days)
int backup_retention_count_
absl::Status LoadRom(Rom *rom, const std::string &filename)
~RomFileManager()=default
std::string backup_folder_
int backup_keep_daily_days_
ToastManager * toast_manager_
void SetBackupKeepDaily(bool enabled)
absl::Status LoadRomFromFile(Rom *rom, const std::string &filename)
bool IsValidRomFile(const std::string &filename) const
absl::Status SaveRomAs(Rom *rom, const std::string &filename)
bool IsRomLoaded(Rom *rom) const
std::filesystem::path GetBackupDirectory(const std::string &original_filename) const