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: %@>",
|
String(format: "<%@ %p, ROM: %@, Core: %@, System: %@, Display Helper: %@>",
|
||||||
"\(Self.self)",
|
"\(Self.self)",
|
||||||
Unmanaged.passUnretained(self).toOpaque().debugDescription,
|
Unmanaged.passUnretained(self).toOpaque().debugDescription,
|
||||||
startupInfo.romPath,
|
startupInfo.romURL.path,
|
||||||
plugin?.bundleIdentifier ?? "no plugin",
|
plugin?.bundleIdentifier ?? "no plugin",
|
||||||
systemPlugin?.systemIdentifier ?? "no systemPlugin",
|
systemPlugin?.systemIdentifier ?? "no systemPlugin",
|
||||||
gameCoreOwner != nil ? Unmanaged.passUnretained(gameCoreOwner!).toOpaque().debugDescription : "no gameCoreOwner"
|
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) {
|
public func saveStateToFile(at fileURL: URL, completionHandler block: @escaping (Bool, Error?) -> Void) {
|
||||||
gameCoreHelper!.saveStateToFile(atPath: fileName) { success, error in
|
gameCoreHelper!.saveStateToFile(at: fileURL) { success, error in
|
||||||
RunLoop.main.perform {
|
RunLoop.main.perform {
|
||||||
block(success, error)
|
block(success, error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public func loadStateFromFile(atPath fileName: String, completionHandler block: @escaping (Bool, Error?) -> Void) {
|
public func loadStateFromFile(at fileURL: URL, completionHandler block: @escaping (Bool, Error?) -> Void) {
|
||||||
gameCoreHelper!.loadStateFromFile(atPath: fileName) { success, error in
|
gameCoreHelper!.loadStateFromFile(at: fileURL) { success, error in
|
||||||
RunLoop.main.perform {
|
RunLoop.main.perform {
|
||||||
block(success, error)
|
block(success, error)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,8 +75,8 @@ import AudioToolbox
|
|||||||
func startEmulation(completionHandler handler: @escaping () -> Void)
|
func startEmulation(completionHandler handler: @escaping () -> Void)
|
||||||
func resetEmulation(completionHandler handler: @escaping () -> Void)
|
func resetEmulation(completionHandler handler: @escaping () -> Void)
|
||||||
func stopEmulation(completionHandler handler: @escaping () -> Void)
|
func stopEmulation(completionHandler handler: @escaping () -> Void)
|
||||||
func saveStateToFile(atPath fileName: String, completionHandler block: @escaping (Bool, Error?) -> Void)
|
func saveStateToFile(at fileURL: URL, completionHandler block: @escaping (Bool, Error?) -> Void)
|
||||||
func loadStateFromFile(atPath fileName: String, 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 setCheat(_ cheatCode: String, withType type: String, enabled: Bool)
|
||||||
func setDisc(_ discNumber: UInt)
|
func setDisc(_ discNumber: UInt)
|
||||||
func changeDisplay(withMode displayMode: String)
|
func changeDisplay(withMode displayMode: String)
|
||||||
|
|||||||
@@ -27,29 +27,29 @@ import Foundation
|
|||||||
@objc(OEGameStartupInfo) public class OEGameStartupInfo: NSObject, NSSecureCoding {
|
@objc(OEGameStartupInfo) public class OEGameStartupInfo: NSObject, NSSecureCoding {
|
||||||
public static var supportsSecureCoding: Bool { return true }
|
public static var supportsSecureCoding: Bool { return true }
|
||||||
|
|
||||||
public let romPath: String
|
public let romURL: URL
|
||||||
public let romMD5: String
|
public let romMD5: String
|
||||||
public let romHeader: String
|
public let romHeader: String
|
||||||
public let romSerial: String
|
public let romSerial: String
|
||||||
public let systemRegion: String
|
public let systemRegion: String
|
||||||
public let displayModeInfo: [String: Any]?
|
public let displayModeInfo: [String: Any]?
|
||||||
public let shader: URL
|
public let shaderURL: URL
|
||||||
public let shaderParameters: [String: Double]
|
public let shaderParameters: [String: Double]
|
||||||
public let corePluginURL: URL
|
public let corePluginURL: URL
|
||||||
public let systemPluginURL: 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,
|
systemRegion: String,
|
||||||
displayModeInfo: [String: Any]?,
|
displayModeInfo: [String: Any]?,
|
||||||
shader: URL, shaderParameters: [String: Double],
|
shaderURL: URL, shaderParameters: [String: Double],
|
||||||
corePluginURL: URL, systemPluginURL: URL) {
|
corePluginURL: URL, systemPluginURL: URL) {
|
||||||
self.romPath = romPath
|
self.romURL = romURL
|
||||||
self.romMD5 = romMD5
|
self.romMD5 = romMD5
|
||||||
self.romHeader = romHeader
|
self.romHeader = romHeader
|
||||||
self.romSerial = romSerial
|
self.romSerial = romSerial
|
||||||
self.systemRegion = systemRegion
|
self.systemRegion = systemRegion
|
||||||
self.displayModeInfo = displayModeInfo
|
self.displayModeInfo = displayModeInfo
|
||||||
self.shader = shader
|
self.shaderURL = shaderURL
|
||||||
self.shaderParameters = shaderParameters
|
self.shaderParameters = shaderParameters
|
||||||
self.corePluginURL = corePluginURL
|
self.corePluginURL = corePluginURL
|
||||||
self.systemPluginURL = systemPluginURL
|
self.systemPluginURL = systemPluginURL
|
||||||
@@ -59,39 +59,39 @@ import Foundation
|
|||||||
|
|
||||||
public required init?(coder: NSCoder) {
|
public required init?(coder: NSCoder) {
|
||||||
guard
|
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 romMD5 = coder.decodeObject(of: NSString.self, forKey: "romMD5") as? String,
|
||||||
let romHeader = coder.decodeObject(of: NSString.self, forKey: "romHeader") 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 romSerial = coder.decodeObject(of: NSString.self, forKey: "romSerial") as? String,
|
||||||
let systemRegion = coder.decodeObject(of: NSString.self, forKey: "systemRegion") as? String,
|
let systemRegion = coder.decodeObject(of: NSString.self, forKey: "systemRegion") as? String,
|
||||||
let displayModeInfo = coder.decodePropertyList(forKey: "displayModeInfo") as? [String: Any]?,
|
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],
|
let shaderParameters = coder.decodeObject(of: [NSString.self, NSDictionary.self, NSNumber.self],
|
||||||
forKey: "shaderParameters") as? [String: Double],
|
forKey: "shaderParameters") as? [String: Double],
|
||||||
let corePluginURL = coder.decodeObject(of: NSURL.self, forKey: "corePluginURL") as? URL,
|
let corePluginURL = coder.decodeObject(of: NSURL.self, forKey: "corePluginURL") as? URL,
|
||||||
let systemPluginURL = coder.decodeObject(of: NSURL.self, forKey: "systemPluginURL") as? URL
|
let systemPluginURL = coder.decodeObject(of: NSURL.self, forKey: "systemPluginURL") as? URL
|
||||||
else { return nil }
|
else { return nil }
|
||||||
|
|
||||||
self.romPath = romPath
|
self.romURL = romURL
|
||||||
self.romMD5 = romMD5
|
self.romMD5 = romMD5
|
||||||
self.romHeader = romHeader
|
self.romHeader = romHeader
|
||||||
self.romSerial = romSerial
|
self.romSerial = romSerial
|
||||||
self.systemRegion = systemRegion
|
self.systemRegion = systemRegion
|
||||||
self.displayModeInfo = displayModeInfo
|
self.displayModeInfo = displayModeInfo
|
||||||
self.shader = shader
|
self.shaderURL = shaderURL
|
||||||
self.shaderParameters = shaderParameters
|
self.shaderParameters = shaderParameters
|
||||||
self.corePluginURL = corePluginURL
|
self.corePluginURL = corePluginURL
|
||||||
self.systemPluginURL = systemPluginURL
|
self.systemPluginURL = systemPluginURL
|
||||||
}
|
}
|
||||||
|
|
||||||
public func encode(with coder: NSCoder) {
|
public func encode(with coder: NSCoder) {
|
||||||
coder.encode(romPath, forKey: "romPath")
|
coder.encode(romURL, forKey: "romURL")
|
||||||
coder.encode(romMD5, forKey: "romMD5")
|
coder.encode(romMD5, forKey: "romMD5")
|
||||||
coder.encode(romHeader, forKey: "romHeader")
|
coder.encode(romHeader, forKey: "romHeader")
|
||||||
coder.encode(romSerial, forKey: "romSerial")
|
coder.encode(romSerial, forKey: "romSerial")
|
||||||
coder.encode(systemRegion, forKey: "systemRegion")
|
coder.encode(systemRegion, forKey: "systemRegion")
|
||||||
coder.encode(displayModeInfo, forKey: "displayModeInfo")
|
coder.encode(displayModeInfo, forKey: "displayModeInfo")
|
||||||
coder.encode(shader, forKey: "shader")
|
coder.encode(shaderURL, forKey: "shaderURL")
|
||||||
coder.encode(shaderParameters, forKey: "shaderParameters")
|
coder.encode(shaderParameters, forKey: "shaderParameters")
|
||||||
coder.encode(corePluginURL, forKey: "corePluginURL")
|
coder.encode(corePluginURL, forKey: "corePluginURL")
|
||||||
coder.encode(systemPluginURL, forKey: "systemPluginURL")
|
coder.encode(systemPluginURL, forKey: "systemPluginURL")
|
||||||
|
|||||||
@@ -242,11 +242,11 @@ extension OSLog {
|
|||||||
return // NO
|
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)
|
os_log(.info, log: .helper, "Load ROM at path %{public}@", aPath)
|
||||||
|
|
||||||
_shader = info.shader
|
_shader = info.shaderURL
|
||||||
_shaderParameters = info.shaderParameters
|
_shaderParameters = info.shaderParameters
|
||||||
_systemController = OESystemPlugin.systemPlugin(bundleAtURL: info.systemPluginURL)!.controller
|
_systemController = OESystemPlugin.systemPlugin(bundleAtURL: info.systemPluginURL)!.controller
|
||||||
_systemResponder = _systemController.newGameSystemResponder()
|
_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 {
|
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 {
|
gameCore.perform {
|
||||||
self.gameCore.loadStateFromFile(atPath: fileName, completionHandler: block)
|
self.gameCore.loadStateFromFile(atPath: fileURL.path, completionHandler: block)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user