diff --git a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj index e44152bbd..f4a30338b 100644 --- a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj +++ b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj @@ -8,7 +8,7 @@ /* Begin PBXBuildFile section */ 4E0DED342D05695D00FEF007 /* SwiftUIJoystick in Frameworks */ = {isa = PBXBuildFile; productRef = 4E0DED332D05695D00FEF007 /* SwiftUIJoystick */; }; - 4E551F202CF128540096A2DF /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E80AA622CD7122800029585 /* GameController.framework */; }; + 4E4854022D138D7600A446A6 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E80AA622CD7122800029585 /* GameController.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -65,6 +65,10 @@ "Dependencies/Dynamic Libraries/Ryujinx.Headless.SDL2.dylib" = ( CodeSignOnCopy, ); + "Dependencies/Dynamic Libraries/SoftwareKeyboard.framework" = ( + CodeSignOnCopy, + RemoveHeadersOnCopy, + ); "Dependencies/Dynamic Libraries/libMoltenVK.dylib" = ( CodeSignOnCopy, ); @@ -121,6 +125,7 @@ "Dependencies/Dynamic Libraries/libavutil.dylib", "Dependencies/Dynamic Libraries/libMoltenVK.dylib", "Dependencies/Dynamic Libraries/Ryujinx.Headless.SDL2.dylib", + "Dependencies/Dynamic Libraries/SoftwareKeyboard.framework", Dependencies/XCFrameworks/libavcodec.xcframework, Dependencies/XCFrameworks/libavfilter.xcframework, Dependencies/XCFrameworks/libavformat.xcframework, @@ -146,8 +151,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 4E4854022D138D7600A446A6 /* GameController.framework in Frameworks */, 4E0DED342D05695D00FEF007 /* SwiftUIJoystick in Frameworks */, - 4E551F202CF128540096A2DF /* GameController.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -515,6 +520,8 @@ FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/MeloNX/Dependencies/XCFrameworks", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", ); GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = MeloNX/Info.plist; @@ -643,6 +650,10 @@ "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", ); MARKETING_VERSION = 0.0.8; PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX; @@ -669,6 +680,8 @@ FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/MeloNX/Dependencies/XCFrameworks", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", ); GCC_OPTIMIZATION_LEVEL = 3; GENERATE_INFOPLIST_FILE = YES; @@ -798,6 +811,10 @@ "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", ); MARKETING_VERSION = 0.0.8; PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX; diff --git a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate index 41812a183..7571c55ce 100644 Binary files a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate and b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 54b3f3043..819c90e35 100644 --- a/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/src/MeloNX/MeloNX.xcodeproj/xcuserdata/stossy11.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -14,8 +14,8 @@ filePath = "MeloNX/Views/GamesList/GameListView.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "264" - endingLineNumber = "264" + startingLineNumber = "271" + endingLineNumber = "271" landmarkName = "loadGames()" landmarkType = "7"> diff --git a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Headers/SoftwareKeyboard.h b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Headers/SoftwareKeyboard.h new file mode 100644 index 000000000..b8bdf03bf --- /dev/null +++ b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Headers/SoftwareKeyboard.h @@ -0,0 +1,18 @@ +// +// SoftwareKeyboard.h +// SoftwareKeyboard +// +// Created by Stossy11 on 19/12/2024. +// + +#import + +//! Project version number for SoftwareKeyboard. +FOUNDATION_EXPORT double SoftwareKeyboardVersionNumber; + +//! Project version string for SoftwareKeyboard. +FOUNDATION_EXPORT const unsigned char SoftwareKeyboardVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Info.plist b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Info.plist new file mode 100644 index 000000000..299dc69cf Binary files /dev/null and b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Info.plist differ diff --git a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo new file mode 100644 index 000000000..1c0dfcf41 Binary files /dev/null and b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo differ diff --git a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.abi.json b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.abi.json new file mode 100644 index 000000000..002127503 --- /dev/null +++ b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.abi.json @@ -0,0 +1,1454 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "SoftwareKeyboard", + "printedName": "SoftwareKeyboard", + "children": [ + { + "kind": "Import", + "name": "UIKit", + "printedName": "UIKit", + "declKind": "Import", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "RawDocComment" + ] + }, + { + "kind": "TypeDecl", + "name": "KeyboardMode", + "printedName": "KeyboardMode", + "children": [ + { + "kind": "Var", + "name": "default", + "printedName": "default", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(SoftwareKeyboard.KeyboardMode.Type) -> SoftwareKeyboard.KeyboardMode", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "SoftwareKeyboard.KeyboardMode.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode@KeyboardModeDefault", + "mangledName": "$s16SoftwareKeyboard0B4ModeO7defaultyA2CmF", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "ObjC" + ], + "fixedbinaryorder": 0 + }, + { + "kind": "Var", + "name": "numeric", + "printedName": "numeric", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(SoftwareKeyboard.KeyboardMode.Type) -> SoftwareKeyboard.KeyboardMode", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "SoftwareKeyboard.KeyboardMode.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode@KeyboardModeNumeric", + "mangledName": "$s16SoftwareKeyboard0B4ModeO7numericyA2CmF", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 1 + }, + { + "kind": "Var", + "name": "ascii", + "printedName": "ascii", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(SoftwareKeyboard.KeyboardMode.Type) -> SoftwareKeyboard.KeyboardMode", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "SoftwareKeyboard.KeyboardMode.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode@KeyboardModeAscii", + "mangledName": "$s16SoftwareKeyboard0B4ModeO5asciiyA2CmF", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 2 + }, + { + "kind": "Var", + "name": "fullLatin", + "printedName": "fullLatin", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(SoftwareKeyboard.KeyboardMode.Type) -> SoftwareKeyboard.KeyboardMode", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "SoftwareKeyboard.KeyboardMode.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode@KeyboardModeFullLatin", + "mangledName": "$s16SoftwareKeyboard0B4ModeO9fullLatinyA2CmF", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 3 + }, + { + "kind": "Var", + "name": "alphabet", + "printedName": "alphabet", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(SoftwareKeyboard.KeyboardMode.Type) -> SoftwareKeyboard.KeyboardMode", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "SoftwareKeyboard.KeyboardMode.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode@KeyboardModeAlphabet", + "mangledName": "$s16SoftwareKeyboard0B4ModeO8alphabetyA2CmF", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 4 + }, + { + "kind": "Var", + "name": "simplifiedChinese", + "printedName": "simplifiedChinese", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(SoftwareKeyboard.KeyboardMode.Type) -> SoftwareKeyboard.KeyboardMode", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "SoftwareKeyboard.KeyboardMode.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode@KeyboardModeSimplifiedChinese", + "mangledName": "$s16SoftwareKeyboard0B4ModeO17simplifiedChineseyA2CmF", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 5 + }, + { + "kind": "Var", + "name": "traditionalChinese", + "printedName": "traditionalChinese", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(SoftwareKeyboard.KeyboardMode.Type) -> SoftwareKeyboard.KeyboardMode", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "SoftwareKeyboard.KeyboardMode.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode@KeyboardModeTraditionalChinese", + "mangledName": "$s16SoftwareKeyboard0B4ModeO18traditionalChineseyA2CmF", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 6 + }, + { + "kind": "Var", + "name": "korean", + "printedName": "korean", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(SoftwareKeyboard.KeyboardMode.Type) -> SoftwareKeyboard.KeyboardMode", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "SoftwareKeyboard.KeyboardMode.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode@KeyboardModeKorean", + "mangledName": "$s16SoftwareKeyboard0B4ModeO6koreanyA2CmF", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 7 + }, + { + "kind": "Var", + "name": "languageSet2", + "printedName": "languageSet2", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(SoftwareKeyboard.KeyboardMode.Type) -> SoftwareKeyboard.KeyboardMode", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "SoftwareKeyboard.KeyboardMode.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode@KeyboardModeLanguageSet2", + "mangledName": "$s16SoftwareKeyboard0B4ModeO12languageSet2yA2CmF", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 8 + }, + { + "kind": "Var", + "name": "languageSet2Latin", + "printedName": "languageSet2Latin", + "children": [ + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(SoftwareKeyboard.KeyboardMode.Type) -> SoftwareKeyboard.KeyboardMode", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + }, + { + "kind": "TypeNominal", + "name": "Metatype", + "printedName": "SoftwareKeyboard.KeyboardMode.Type", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ] + } + ] + } + ], + "declKind": "EnumElement", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode@KeyboardModeLanguageSet2Latin", + "mangledName": "$s16SoftwareKeyboard0B4ModeO17languageSet2LatinyA2CmF", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "RawDocComment", + "ObjC" + ], + "fixedbinaryorder": 9 + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(rawValue:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "SoftwareKeyboard.KeyboardMode?", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "UInt32", + "printedName": "Swift.UInt32", + "usr": "s:s6UInt32V" + } + ], + "declKind": "Constructor", + "usr": "s:16SoftwareKeyboard0B4ModeO8rawValueACSgs6UInt32V_tcfc", + "mangledName": "$s16SoftwareKeyboard0B4ModeO8rawValueACSgs6UInt32V_tcfc", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "init_kind": "Designated" + }, + { + "kind": "Var", + "name": "rawValue", + "printedName": "rawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt32", + "printedName": "Swift.UInt32", + "usr": "s:s6UInt32V" + } + ], + "declKind": "Var", + "usr": "s:16SoftwareKeyboard0B4ModeO8rawValues6UInt32Vvp", + "mangledName": "$s16SoftwareKeyboard0B4ModeO8rawValues6UInt32Vvp", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt32", + "printedName": "Swift.UInt32", + "usr": "s:s6UInt32V" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0B4ModeO8rawValues6UInt32Vvg", + "mangledName": "$s16SoftwareKeyboard0B4ModeO8rawValues6UInt32Vvg", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "get" + } + ] + } + ], + "declKind": "Enum", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode", + "mangledName": "$s16SoftwareKeyboard0B4ModeO", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "AccessControl", + "ObjC", + "RawDocComment" + ], + "enumRawTypeName": "UInt32", + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Equatable", + "printedName": "Equatable", + "usr": "s:SQ", + "mangledName": "$sSQ" + }, + { + "kind": "Conformance", + "name": "Hashable", + "printedName": "Hashable", + "usr": "s:SH", + "mangledName": "$sSH" + }, + { + "kind": "Conformance", + "name": "RawRepresentable", + "printedName": "RawRepresentable", + "children": [ + { + "kind": "TypeWitness", + "name": "RawValue", + "printedName": "RawValue", + "children": [ + { + "kind": "TypeNominal", + "name": "UInt32", + "printedName": "Swift.UInt32", + "usr": "s:s6UInt32V" + } + ] + } + ], + "usr": "s:SY", + "mangledName": "$sSY" + } + ] + }, + { + "kind": "TypeDecl", + "name": "SoftwareKeyboardUiArgs", + "printedName": "SoftwareKeyboardUiArgs", + "children": [ + { + "kind": "Var", + "name": "keyboardMode", + "printedName": "keyboardMode", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ], + "declKind": "Var", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV12keyboardModeAA0bF0Ovp", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV12keyboardModeAA0bF0Ovp", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV12keyboardModeAA0bF0Ovg", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV12keyboardModeAA0bF0Ovg", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV12keyboardModeAA0bF0Ovs", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV12keyboardModeAA0bF0Ovs", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV12keyboardModeAA0bF0OvM", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV12keyboardModeAA0bF0OvM", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "headerText", + "printedName": "headerText", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV10headerTextSSvp", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV10headerTextSSvp", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV10headerTextSSvg", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV10headerTextSSvg", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV10headerTextSSvs", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV10headerTextSSvs", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV10headerTextSSvM", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV10headerTextSSvM", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "subtitleText", + "printedName": "subtitleText", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV12subtitleTextSSvp", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV12subtitleTextSSvp", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV12subtitleTextSSvg", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV12subtitleTextSSvg", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV12subtitleTextSSvs", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV12subtitleTextSSvs", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV12subtitleTextSSvM", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV12subtitleTextSSvM", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "submitText", + "printedName": "submitText", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Var", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV10submitTextSSvp", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV10submitTextSSvp", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV10submitTextSSvg", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV10submitTextSSvg", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV10submitTextSSvs", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV10submitTextSSvs", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV10submitTextSSvM", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV10submitTextSSvM", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "stringLengthMin", + "printedName": "stringLengthMin", + "children": [ + { + "kind": "TypeNominal", + "name": "Int32", + "printedName": "Swift.Int32", + "usr": "s:s5Int32V" + } + ], + "declKind": "Var", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV15stringLengthMins5Int32Vvp", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV15stringLengthMins5Int32Vvp", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int32", + "printedName": "Swift.Int32", + "usr": "s:s5Int32V" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV15stringLengthMins5Int32Vvg", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV15stringLengthMins5Int32Vvg", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int32", + "printedName": "Swift.Int32", + "usr": "s:s5Int32V" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV15stringLengthMins5Int32Vvs", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV15stringLengthMins5Int32Vvs", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV15stringLengthMins5Int32VvM", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV15stringLengthMins5Int32VvM", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "stringLengthMax", + "printedName": "stringLengthMax", + "children": [ + { + "kind": "TypeNominal", + "name": "Int32", + "printedName": "Swift.Int32", + "usr": "s:s5Int32V" + } + ], + "declKind": "Var", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV15stringLengthMaxs5Int32Vvp", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV15stringLengthMaxs5Int32Vvp", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Int32", + "printedName": "Swift.Int32", + "usr": "s:s5Int32V" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV15stringLengthMaxs5Int32Vvg", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV15stringLengthMaxs5Int32Vvg", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Int32", + "printedName": "Swift.Int32", + "usr": "s:s5Int32V" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV15stringLengthMaxs5Int32Vvs", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV15stringLengthMaxs5Int32Vvs", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV15stringLengthMaxs5Int32VvM", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV15stringLengthMaxs5Int32VvM", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Var", + "name": "initialText", + "printedName": "initialText", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Var", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV11initialTextSSSgvp", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV11initialTextSSSgvp", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "HasInitialValue", + "HasStorage", + "AccessControl" + ], + "hasStorage": true, + "accessors": [ + { + "kind": "Accessor", + "name": "Get", + "printedName": "Get()", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV11initialTextSSSgvg", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV11initialTextSSSgvg", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "get" + }, + { + "kind": "Accessor", + "name": "Set", + "printedName": "Set()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "usr": "s:Sq" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV11initialTextSSSgvs", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV11initialTextSSSgvs", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "set" + }, + { + "kind": "Accessor", + "name": "Modify", + "printedName": "Modify()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + } + ], + "declKind": "Accessor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV11initialTextSSSgvM", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV11initialTextSSSgvM", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "accessorKind": "_modify" + } + ] + }, + { + "kind": "Constructor", + "name": "init", + "printedName": "init(keyboardMode:headerText:subtitleText:submitText:stringLengthMin:stringLengthMax:initialText:)", + "children": [ + { + "kind": "TypeNominal", + "name": "SoftwareKeyboardUiArgs", + "printedName": "SoftwareKeyboard.SoftwareKeyboardUiArgs", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV" + }, + { + "kind": "TypeNominal", + "name": "KeyboardMode", + "printedName": "SoftwareKeyboard.KeyboardMode", + "usr": "c:@M@SoftwareKeyboard@E@KeyboardMode" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + }, + { + "kind": "TypeNominal", + "name": "Int32", + "printedName": "Swift.Int32", + "usr": "s:s5Int32V" + }, + { + "kind": "TypeNominal", + "name": "Int32", + "printedName": "Swift.Int32", + "usr": "s:s5Int32V" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.String?", + "children": [ + { + "kind": "TypeNominal", + "name": "String", + "printedName": "Swift.String", + "usr": "s:SS" + } + ], + "hasDefaultArg": true, + "usr": "s:Sq" + } + ], + "declKind": "Constructor", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV12keyboardMode10headerText08subtitleH006submitH015stringLengthMin0kL3Max07initialH0AcA0bF0O_S3Ss5Int32VANSSSgtcfc", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV12keyboardMode10headerText08subtitleH006submitH015stringLengthMin0kL3Max07initialH0AcA0bF0O_S3Ss5Int32VANSSSgtcfc", + "moduleName": "SoftwareKeyboard", + "implicit": true, + "init_kind": "Designated" + } + ], + "declKind": "Struct", + "usr": "s:16SoftwareKeyboard0aB6UiArgsV", + "mangledName": "$s16SoftwareKeyboard0aB6UiArgsV", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "AccessControl", + "RawDocComment" + ], + "conformances": [ + { + "kind": "Conformance", + "name": "Copyable", + "printedName": "Copyable", + "usr": "s:s8CopyableP", + "mangledName": "$ss8CopyableP" + }, + { + "kind": "Conformance", + "name": "Escapable", + "printedName": "Escapable", + "usr": "s:s9EscapableP", + "mangledName": "$ss9EscapableP" + } + ] + }, + { + "kind": "Function", + "name": "displayInputDialog", + "printedName": "displayInputDialog(argsPointer:callback:)", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.UnsafeRawPointer?", + "children": [ + { + "kind": "TypeNominal", + "name": "UnsafeRawPointer", + "printedName": "Swift.UnsafeRawPointer", + "usr": "s:SV" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeFunc", + "name": "Function", + "printedName": "(Swift.UnsafePointer?, Swift.Bool) -> ()", + "children": [ + { + "kind": "TypeNominal", + "name": "Void", + "printedName": "()" + }, + { + "kind": "TypeNominal", + "name": "Tuple", + "printedName": "(Swift.UnsafePointer?, Swift.Bool)", + "children": [ + { + "kind": "TypeNominal", + "name": "Optional", + "printedName": "Swift.UnsafePointer?", + "children": [ + { + "kind": "TypeNominal", + "name": "UnsafePointer", + "printedName": "Swift.UnsafePointer", + "children": [ + { + "kind": "TypeNominal", + "name": "Int8", + "printedName": "Swift.Int8", + "usr": "s:s4Int8V" + } + ], + "usr": "s:SP" + } + ], + "usr": "s:Sq" + }, + { + "kind": "TypeNominal", + "name": "Bool", + "printedName": "Swift.Bool", + "usr": "s:Sb" + } + ] + } + ] + } + ], + "declKind": "Func", + "usr": "c:(cm)displayInputDialogWithArgsPointer:callback:", + "mangledName": "$s16SoftwareKeyboard18displayInputDialog11argsPointer8callbackySVSg_ySPys4Int8VGSg_SbtXCtF", + "moduleName": "SoftwareKeyboard", + "declAttributes": [ + "CDecl" + ], + "funcSelfKind": "NonMutating" + } + ], + "json_format_version": 8 + }, + "ConstValues": [ + { + "filePath": "\/Users\/stossy11\/Developer\/Xcode\/SoftwareKeyboard\/SoftwareKeyboard\/KeyboardMode.swift", + "kind": "IntegerLiteral", + "offset": 201, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/stossy11\/Developer\/Xcode\/SoftwareKeyboard\/SoftwareKeyboard\/KeyboardMode.swift", + "kind": "IntegerLiteral", + "offset": 264, + "length": 1, + "value": "1" + }, + { + "filePath": "\/Users\/stossy11\/Developer\/Xcode\/SoftwareKeyboard\/SoftwareKeyboard\/KeyboardMode.swift", + "kind": "IntegerLiteral", + "offset": 321, + "length": 1, + "value": "2" + }, + { + "filePath": "\/Users\/stossy11\/Developer\/Xcode\/SoftwareKeyboard\/SoftwareKeyboard\/KeyboardMode.swift", + "kind": "IntegerLiteral", + "offset": 390, + "length": 1, + "value": "3" + }, + { + "filePath": "\/Users\/stossy11\/Developer\/Xcode\/SoftwareKeyboard\/SoftwareKeyboard\/KeyboardMode.swift", + "kind": "IntegerLiteral", + "offset": 448, + "length": 1, + "value": "4" + }, + { + "filePath": "\/Users\/stossy11\/Developer\/Xcode\/SoftwareKeyboard\/SoftwareKeyboard\/KeyboardMode.swift", + "kind": "IntegerLiteral", + "offset": 533, + "length": 1, + "value": "5" + }, + { + "filePath": "\/Users\/stossy11\/Developer\/Xcode\/SoftwareKeyboard\/SoftwareKeyboard\/KeyboardMode.swift", + "kind": "IntegerLiteral", + "offset": 588, + "length": 1, + "value": "6" + }, + { + "filePath": "\/Users\/stossy11\/Developer\/Xcode\/SoftwareKeyboard\/SoftwareKeyboard\/KeyboardMode.swift", + "kind": "IntegerLiteral", + "offset": 631, + "length": 1, + "value": "7" + }, + { + "filePath": "\/Users\/stossy11\/Developer\/Xcode\/SoftwareKeyboard\/SoftwareKeyboard\/KeyboardMode.swift", + "kind": "IntegerLiteral", + "offset": 679, + "length": 1, + "value": "8" + }, + { + "filePath": "\/Users\/stossy11\/Developer\/Xcode\/SoftwareKeyboard\/SoftwareKeyboard\/KeyboardMode.swift", + "kind": "IntegerLiteral", + "offset": 734, + "length": 1, + "value": "9" + } + ] +} \ No newline at end of file diff --git a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.private.swiftinterface b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.private.swiftinterface new file mode 100644 index 000000000..6e592e37c --- /dev/null +++ b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.private.swiftinterface @@ -0,0 +1,38 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.4 clang-1600.0.30) +// swift-module-flags: -target arm64-apple-ios14.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -enable-experimental-feature OpaqueTypeErasure -enable-bare-slash-regex -module-name SoftwareKeyboard +@_exported import SoftwareKeyboard +import Swift +import UIKit +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +@objc public enum KeyboardMode : Swift.UInt32 { + case `default` = 0 + case numeric = 1 + case ascii = 2 + case fullLatin = 3 + case alphabet = 4 + case simplifiedChinese = 5 + case traditionalChinese = 6 + case korean = 7 + case languageSet2 = 8 + case languageSet2Latin = 9 + public init?(rawValue: Swift.UInt32) + public typealias RawValue = Swift.UInt32 + public var rawValue: Swift.UInt32 { + get + } +} +public struct SoftwareKeyboardUiArgs { + public var keyboardMode: SoftwareKeyboard.KeyboardMode + public var headerText: Swift.String + public var subtitleText: Swift.String + public var submitText: Swift.String + public var stringLengthMin: Swift.Int32 + public var stringLengthMax: Swift.Int32 + public var initialText: Swift.String? +} +extension SoftwareKeyboard.KeyboardMode : Swift.Equatable {} +extension SoftwareKeyboard.KeyboardMode : Swift.Hashable {} +extension SoftwareKeyboard.KeyboardMode : Swift.RawRepresentable {} diff --git a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.swiftdoc b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.swiftdoc new file mode 100644 index 000000000..18db4fca2 Binary files /dev/null and b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.swiftdoc differ diff --git a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.swiftinterface b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.swiftinterface new file mode 100644 index 000000000..6e592e37c --- /dev/null +++ b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.swiftinterface @@ -0,0 +1,38 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.4 clang-1600.0.30) +// swift-module-flags: -target arm64-apple-ios14.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -enable-experimental-feature OpaqueTypeErasure -enable-bare-slash-regex -module-name SoftwareKeyboard +@_exported import SoftwareKeyboard +import Swift +import UIKit +import _Concurrency +import _StringProcessing +import _SwiftConcurrencyShims +@objc public enum KeyboardMode : Swift.UInt32 { + case `default` = 0 + case numeric = 1 + case ascii = 2 + case fullLatin = 3 + case alphabet = 4 + case simplifiedChinese = 5 + case traditionalChinese = 6 + case korean = 7 + case languageSet2 = 8 + case languageSet2Latin = 9 + public init?(rawValue: Swift.UInt32) + public typealias RawValue = Swift.UInt32 + public var rawValue: Swift.UInt32 { + get + } +} +public struct SoftwareKeyboardUiArgs { + public var keyboardMode: SoftwareKeyboard.KeyboardMode + public var headerText: Swift.String + public var subtitleText: Swift.String + public var submitText: Swift.String + public var stringLengthMin: Swift.Int32 + public var stringLengthMax: Swift.Int32 + public var initialText: Swift.String? +} +extension SoftwareKeyboard.KeyboardMode : Swift.Equatable {} +extension SoftwareKeyboard.KeyboardMode : Swift.Hashable {} +extension SoftwareKeyboard.KeyboardMode : Swift.RawRepresentable {} diff --git a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.swiftmodule b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.swiftmodule new file mode 100644 index 000000000..9af1137c9 Binary files /dev/null and b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/SoftwareKeyboard.swiftmodule/arm64-apple-ios.swiftmodule differ diff --git a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/module.modulemap b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/module.modulemap new file mode 100644 index 000000000..fe4bafa88 --- /dev/null +++ b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module SoftwareKeyboard { + umbrella header "SoftwareKeyboard.h" + export * + + module * { export * } +} diff --git a/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/SoftwareKeyboard b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/SoftwareKeyboard new file mode 100755 index 000000000..ef8226a32 Binary files /dev/null and b/src/MeloNX/MeloNX/Dependencies/Dynamic Libraries/SoftwareKeyboard.framework/SoftwareKeyboard differ diff --git a/src/MeloNX/MeloNX/Views/ContentView.swift b/src/MeloNX/MeloNX/Views/ContentView.swift index 36781bcec..85c4e6cbb 100644 --- a/src/MeloNX/MeloNX/Views/ContentView.swift +++ b/src/MeloNX/MeloNX/Views/ContentView.swift @@ -12,6 +12,7 @@ import Darwin import UIKit import MetalKit // import SDL +import SoftwareKeyboard struct MoltenVKSettings: Codable, Hashable { let string: String diff --git a/src/MeloNX/MeloNX/Views/GamesList/GameListView.swift b/src/MeloNX/MeloNX/Views/GamesList/GameListView.swift index 39c34b099..07cef6f16 100644 --- a/src/MeloNX/MeloNX/Views/GamesList/GameListView.swift +++ b/src/MeloNX/MeloNX/Views/GamesList/GameListView.swift @@ -134,6 +134,13 @@ struct GameLibraryView: View { } label: { Text("Remove Firmware") } + + + Button { + self.startemu = URL(string: "MiiMaker") + } label: { + Text("Mii Maker") + } } Button { @@ -147,7 +154,7 @@ struct GameLibraryView: View { Text("Show MeloNX Folder") } } label: { - Image(systemName: "plus") + Image(systemName: "ellipsis") .foregroundColor(.blue) } } diff --git a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardApplet.cs b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardApplet.cs index 432bf6a8a..88fefac45 100644 --- a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardApplet.cs +++ b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardApplet.cs @@ -19,7 +19,7 @@ namespace Ryujinx.HLE.HOS.Applets { internal class SoftwareKeyboardApplet : IApplet { - private const string DefaultInputText = "Ryujinx"; + private const string DefaultInputText = "MeloNX"; private const int StandardBufferSize = 0x7D8; private const int InteractiveBufferSize = 0x7D4; @@ -180,6 +180,10 @@ namespace Ryujinx.HLE.HOS.Applets return _keyboardRenderer?.DrawTo(destination, position) ?? false; } + [DllImport("SoftwareKeyboard.framework/SoftwareKeyboard", EntryPoint = "displayInputDialog", CallingConvention = CallingConvention.Cdecl)] + public static extern void DisplayInputDialog(ref SoftwareKeyboardUiArgs args, out IntPtr userInput); + + private void ExecuteForegroundKeyboard() { string initialText = null; @@ -188,23 +192,57 @@ namespace Ryujinx.HLE.HOS.Applets // InitialStringOffset points to the memory offset and InitialStringLength is the number of UTF-16 characters if (_transferMemory != null && _keyboardForegroundConfig.InitialStringLength > 0) { - initialText = Encoding.Unicode.GetString(_transferMemory, _keyboardForegroundConfig.InitialStringOffset, + initialText = Encoding.Unicode.GetString( + _transferMemory, + _keyboardForegroundConfig.InitialStringOffset, 2 * _keyboardForegroundConfig.InitialStringLength); } - // If the max string length is 0, we set it to a large default - // length. + // If the max string length is 0, we set it to a large default length. if (_keyboardForegroundConfig.StringLengthMax == 0) { _keyboardForegroundConfig.StringLengthMax = 100; } + // If no GUI handler is set, fallback to default behavior. if (_device.UiHandler == null) { Logger.Warning?.Print(LogClass.Application, "GUI Handler is not set. Falling back to default"); - _textValue = DefaultInputText; - _lastResult = KeyboardResult.Accept; + // Prepare the SoftwareKeyboardUiArgs struct + var args = new SoftwareKeyboardUiArgs + { + KeyboardMode = _keyboardForegroundConfig.Mode, + HeaderText = StripUnicodeControlCodes(_keyboardForegroundConfig.HeaderText), + SubtitleText = StripUnicodeControlCodes(_keyboardForegroundConfig.SubtitleText), + SubmitText = !string.IsNullOrWhiteSpace(_keyboardForegroundConfig.SubmitText) + ? _keyboardForegroundConfig.SubmitText + : "OK", + StringLengthMin = _keyboardForegroundConfig.StringLengthMin, + StringLengthMax = _keyboardForegroundConfig.StringLengthMax, + InitialText = initialText, + }; + + IntPtr userInputPtr; + + DisplayInputDialog(ref args, out userInputPtr); + if (userInputPtr != IntPtr.Zero) + { + // Convert the IntPtr to a string + string userInput = Marshal.PtrToStringAnsi(userInputPtr); + + _textValue = userInput ?? DefaultInputText; + _lastResult = KeyboardResult.Accept; + + Console.WriteLine($"User input: {userInput}"); + } + else + { + Console.WriteLine("No input was received or input was canceled."); + + _textValue = DefaultInputText; + _lastResult = KeyboardResult.Cancel; + } } else { @@ -226,46 +264,36 @@ namespace Ryujinx.HLE.HOS.Applets _textValue ??= initialText ?? DefaultInputText; } - // If the game requests a string with a minimum length less - // than our default text, repeat our default text until we meet - // the minimum length requirement. - // This should always be done before the text truncation step. + // Ensure the text meets the minimum length requirement while (_textValue.Length < _keyboardForegroundConfig.StringLengthMin) { - _textValue = String.Join(" ", _textValue, _textValue); + _textValue = string.Join(" ", _textValue, _textValue); } - // If our default text is longer than the allowed length, - // we truncate it. + // Truncate the text if it exceeds the maximum length if (_textValue.Length > _keyboardForegroundConfig.StringLengthMax) { _textValue = _textValue[.._keyboardForegroundConfig.StringLengthMax]; } - // Does the application want to validate the text itself? + // Handle text validation if required if (_keyboardForegroundConfig.CheckText) { - // The application needs to validate the response, so we - // submit it to the interactive output buffer, and poll it - // for validation. Once validated, the application will submit - // back a validation status, which is handled in OnInteractiveDataPushIn. + // Submit text for validation _foregroundState = SoftwareKeyboardState.ValidationPending; - PushForegroundResponse(true); } else { - // If the application doesn't need to validate the response, - // we push the data to the non-interactive output buffer - // and poll it for completion. + // Submit text as complete _foregroundState = SoftwareKeyboardState.Complete; - PushForegroundResponse(false); AppletStateChanged?.Invoke(this, null); } } + private void OnInteractiveData(object sender, EventArgs e) { // Obtain the validation status response. diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountManager.cs b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountManager.cs index 924ac3fb9..c13c81285 100644 --- a/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Account/Acc/AccountManager.cs @@ -40,7 +40,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc { byte[] defaultUserImage = EmbeddedResources.Read("Ryujinx.HLE/HOS/Services/Account/Acc/DefaultUserImage.jpg"); - AddUser("RyuPlayer", defaultUserImage, DefaultUserId); + AddUser("MeloNX", defaultUserImage, DefaultUserId); OpenUser(DefaultUserId); } diff --git a/src/Ryujinx.HLE/HOS/Services/Account/Acc/DefaultUserImage.jpg b/src/Ryujinx.HLE/HOS/Services/Account/Acc/DefaultUserImage.jpg index 64c4e8ec7..856998a55 100644 Binary files a/src/Ryujinx.HLE/HOS/Services/Account/Acc/DefaultUserImage.jpg and b/src/Ryujinx.HLE/HOS/Services/Account/Acc/DefaultUserImage.jpg differ diff --git a/src/Ryujinx.Headless.SDL2/Program.cs b/src/Ryujinx.Headless.SDL2/Program.cs index d686cfe88..67b3d2f92 100644 --- a/src/Ryujinx.Headless.SDL2/Program.cs +++ b/src/Ryujinx.Headless.SDL2/Program.cs @@ -1100,6 +1100,12 @@ namespace Ryujinx.Headless.SDL2 return; } + if (option.InputPath == "MiiMaker") { + string contentPath = _contentManager.GetInstalledContentPath(0x0100000000001009, StorageId.BuiltInSystem, NcaContentType.Program); + + option.InputPath = contentPath; + } + _inputConfiguration = new List(); _enableKeyboard = option.EnableKeyboard; _enableMouse = option.EnableMouse; @@ -1324,6 +1330,17 @@ namespace Ryujinx.Headless.SDL2 Logger.Notice.Print(LogClass.Application, $"Using Firmware Version: {firmwareVersion?.VersionString}"); + bool isFirmwareTitle = false; + + if (path.StartsWith("@SystemContent")) + { + path = VirtualFileSystem.SwitchPathToSystemPath(path); + + isFirmwareTitle = true; + } + + + if (Directory.Exists(path)) { string[] romFsFiles = Directory.GetFiles(path, "*.istorage"); @@ -1392,23 +1409,35 @@ namespace Ryujinx.Headless.SDL2 } break; default: - Logger.Info?.Print(LogClass.Application, "Loading as Homebrew."); - try - { - if (!_emulationContext.LoadProgram(path)) + if (isFirmwareTitle) { + Logger.Info?.Print(LogClass.Application, "Loading as Firmware Title (NCA)."); + + if (!_emulationContext.LoadNca(path)) { _emulationContext.Dispose(); return false; } } - catch (ArgumentOutOfRangeException) - { - Logger.Error?.Print(LogClass.Application, "The specified file is not supported by Ryujinx."); + else { + Logger.Info?.Print(LogClass.Application, "Loading as Homebrew."); + try + { + if (!_emulationContext.LoadProgram(path)) + { + _emulationContext.Dispose(); - _emulationContext.Dispose(); + return false; + } + } + catch (ArgumentOutOfRangeException) + { + Logger.Error?.Print(LogClass.Application, "The specified file is not supported by Ryujinx."); - return false; + _emulationContext.Dispose(); + + return false; + } } break; }