Use URLs instead of paths

This commit is contained in:
J-rg
2022-07-17 22:09:07 +02:00
parent d90b599351
commit 466795e06e
4 changed files with 25 additions and 25 deletions
+5 -5
View File
@@ -46,7 +46,7 @@ public typealias StartupCompletionHandler = (Error?) -> Void
String(format: "<%@ %p, ROM: %@, Core: %@, System: %@, Display Helper: %@>",
"\(Self.self)",
Unmanaged.passUnretained(self).toOpaque().debugDescription,
startupInfo.romPath,
startupInfo.romURL.path,
plugin?.bundleIdentifier ?? "no plugin",
systemPlugin?.systemIdentifier ?? "no systemPlugin",
gameCoreOwner != nil ? Unmanaged.passUnretained(gameCoreOwner!).toOpaque().debugDescription : "no gameCoreOwner"
@@ -173,16 +173,16 @@ extension GameCoreManager: OEGameCoreHelper {
}
}
public func saveStateToFile(atPath fileName: String, completionHandler block: @escaping (Bool, Error?) -> Void) {
gameCoreHelper!.saveStateToFile(atPath: fileName) { success, error in
public func saveStateToFile(at fileURL: URL, completionHandler block: @escaping (Bool, Error?) -> Void) {
gameCoreHelper!.saveStateToFile(at: fileURL) { success, error in
RunLoop.main.perform {
block(success, error)
}
}
}
public func loadStateFromFile(atPath fileName: String, completionHandler block: @escaping (Bool, Error?) -> Void) {
gameCoreHelper!.loadStateFromFile(atPath: fileName) { success, error in
public func loadStateFromFile(at fileURL: URL, completionHandler block: @escaping (Bool, Error?) -> Void) {
gameCoreHelper!.loadStateFromFile(at: fileURL) { success, error in
RunLoop.main.perform {
block(success, error)
}
+2 -2
View File
@@ -75,8 +75,8 @@ import AudioToolbox
func startEmulation(completionHandler handler: @escaping () -> Void)
func resetEmulation(completionHandler handler: @escaping () -> Void)
func stopEmulation(completionHandler handler: @escaping () -> Void)
func saveStateToFile(atPath fileName: String, completionHandler block: @escaping (Bool, Error?) -> Void)
func loadStateFromFile(atPath fileName: String, completionHandler block: @escaping (Bool, Error?) -> Void)
func saveStateToFile(at fileURL: URL, completionHandler block: @escaping (Bool, Error?) -> Void)
func loadStateFromFile(at fileURL: URL, completionHandler block: @escaping (Bool, Error?) -> Void)
func setCheat(_ cheatCode: String, withType type: String, enabled: Bool)
func setDisc(_ discNumber: UInt)
func changeDisplay(withMode displayMode: String)
+12 -12
View File
@@ -27,29 +27,29 @@ import Foundation
@objc(OEGameStartupInfo) public class OEGameStartupInfo: NSObject, NSSecureCoding {
public static var supportsSecureCoding: Bool { return true }
public let romPath: String
public let romURL: URL
public let romMD5: String
public let romHeader: String
public let romSerial: String
public let systemRegion: String
public let displayModeInfo: [String: Any]?
public let shader: URL
public let shaderURL: URL
public let shaderParameters: [String: Double]
public let corePluginURL: URL
public let systemPluginURL: URL
public init(romPath: String, romMD5: String, romHeader: String, romSerial: String,
public init(romURL: URL, romMD5: String, romHeader: String, romSerial: String,
systemRegion: String,
displayModeInfo: [String: Any]?,
shader: URL, shaderParameters: [String: Double],
shaderURL: URL, shaderParameters: [String: Double],
corePluginURL: URL, systemPluginURL: URL) {
self.romPath = romPath
self.romURL = romURL
self.romMD5 = romMD5
self.romHeader = romHeader
self.romSerial = romSerial
self.systemRegion = systemRegion
self.displayModeInfo = displayModeInfo
self.shader = shader
self.shaderURL = shaderURL
self.shaderParameters = shaderParameters
self.corePluginURL = corePluginURL
self.systemPluginURL = systemPluginURL
@@ -59,39 +59,39 @@ import Foundation
public required init?(coder: NSCoder) {
guard
let romPath = coder.decodeObject(of: NSString.self, forKey: "romPath") as? String,
let romURL = coder.decodeObject(of: NSURL.self, forKey: "romPath") as? URL,
let romMD5 = coder.decodeObject(of: NSString.self, forKey: "romMD5") as? String,
let romHeader = coder.decodeObject(of: NSString.self, forKey: "romHeader") as? String,
let romSerial = coder.decodeObject(of: NSString.self, forKey: "romSerial") as? String,
let systemRegion = coder.decodeObject(of: NSString.self, forKey: "systemRegion") as? String,
let displayModeInfo = coder.decodePropertyList(forKey: "displayModeInfo") as? [String: Any]?,
let shader = coder.decodeObject(of: NSURL.self, forKey: "shader") as? URL,
let shaderURL = coder.decodeObject(of: NSURL.self, forKey: "shaderURL") as? URL,
let shaderParameters = coder.decodeObject(of: [NSString.self, NSDictionary.self, NSNumber.self],
forKey: "shaderParameters") as? [String: Double],
let corePluginURL = coder.decodeObject(of: NSURL.self, forKey: "corePluginURL") as? URL,
let systemPluginURL = coder.decodeObject(of: NSURL.self, forKey: "systemPluginURL") as? URL
else { return nil }
self.romPath = romPath
self.romURL = romURL
self.romMD5 = romMD5
self.romHeader = romHeader
self.romSerial = romSerial
self.systemRegion = systemRegion
self.displayModeInfo = displayModeInfo
self.shader = shader
self.shaderURL = shaderURL
self.shaderParameters = shaderParameters
self.corePluginURL = corePluginURL
self.systemPluginURL = systemPluginURL
}
public func encode(with coder: NSCoder) {
coder.encode(romPath, forKey: "romPath")
coder.encode(romURL, forKey: "romURL")
coder.encode(romMD5, forKey: "romMD5")
coder.encode(romHeader, forKey: "romHeader")
coder.encode(romSerial, forKey: "romSerial")
coder.encode(systemRegion, forKey: "systemRegion")
coder.encode(displayModeInfo, forKey: "displayModeInfo")
coder.encode(shader, forKey: "shader")
coder.encode(shaderURL, forKey: "shaderURL")
coder.encode(shaderParameters, forKey: "shaderParameters")
coder.encode(corePluginURL, forKey: "corePluginURL")
coder.encode(systemPluginURL, forKey: "systemPluginURL")
+6 -6
View File
@@ -242,11 +242,11 @@ extension OSLog {
return // NO
}
let aPath = (info.romPath as NSString).standardizingPath
let aPath = info.romURL.standardizedFileURL.path
os_log(.info, log: .helper, "Load ROM at path %{public}@", aPath)
_shader = info.shader
_shader = info.shaderURL
_shaderParameters = info.shaderParameters
_systemController = OESystemPlugin.systemPlugin(bundleAtURL: info.systemPluginURL)!.controller
_systemResponder = _systemController.newGameSystemResponder()
@@ -455,15 +455,15 @@ extension OSLog {
}
}
public func saveStateToFile(atPath fileName: String, completionHandler block: @escaping (Bool, Error?) -> Void) {
public func saveStateToFile(at fileURL: URL, completionHandler block: @escaping (Bool, Error?) -> Void) {
gameCore.perform {
self.gameCore.saveStateToFile(atPath: fileName, completionHandler: block)
self.gameCore.saveStateToFile(atPath: fileURL.path, completionHandler: block)
}
}
public func loadStateFromFile(atPath fileName: String, completionHandler block: @escaping (Bool, Error?) -> Void) {
public func loadStateFromFile(at fileURL: URL, completionHandler block: @escaping (Bool, Error?) -> Void) {
gameCore.perform {
self.gameCore.loadStateFromFile(atPath: fileName, completionHandler: block)
self.gameCore.loadStateFromFile(atPath: fileURL.path, completionHandler: block)
}
}