mirror of
https://github.com/OpenEmu/OpenEmuKit.git
synced 2025-11-01 11:08:14 +00:00
Use URLs instead of paths
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user