summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-07-07 23:27:54 +0000
committerSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-07-07 23:27:54 +0000
commitd6f8aa174b4a8667285c32e0036ddbc2597c9dd8 (patch)
tree9000fb103d3de0d6a42f4ac475dde9238d213ea4
parent85871b22b9d5cd203f3a4d82ed44bb6369c11d06 (diff)
OS X: Update the metadata plug-in to be slightly faster
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@90899 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rw-r--r--macosx/Pcsxr.xcodeproj/project.pbxproj142
-rw-r--r--macosx/Psx-Memcard/GetMetadataForFile.m217
2 files changed, 162 insertions, 197 deletions
diff --git a/macosx/Pcsxr.xcodeproj/project.pbxproj b/macosx/Pcsxr.xcodeproj/project.pbxproj
index 3ab9cac1..b38cce2a 100644
--- a/macosx/Pcsxr.xcodeproj/project.pbxproj
+++ b/macosx/Pcsxr.xcodeproj/project.pbxproj
@@ -178,7 +178,6 @@
5525BC6B19421A760018AF2F /* GetMetadataForFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 5525BC6A19421A760018AF2F /* GetMetadataForFile.m */; };
5525BC7819421D4F0018AF2F /* schema.xml in Resources */ = {isa = PBXBuildFile; fileRef = 5525BC7719421D4F0018AF2F /* schema.xml */; };
5525BC7C194221EC0018AF2F /* schema.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5525BC7E194221EC0018AF2F /* schema.strings */; };
- 5525BC80194228460018AF2F /* PcsxrMemoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 55A90228147D89380037E18F /* PcsxrMemoryObject.m */; };
5525BC8119423FA90018AF2F /* Psx-Memcard.mdimporter in Copy Spotlight Plug-Ins */ = {isa = PBXBuildFile; fileRef = 5525BC5D19421A750018AF2F /* Psx-Memcard.mdimporter */; };
55268A5A1876244E00A82269 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 551A74A317868B110052D185 /* Foundation.framework */; };
5529EA11169CBE3400BAA2A5 /* RecentItemsMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 5550D2721683C923006C56B5 /* RecentItemsMenu.m */; };
@@ -2505,7 +2504,6 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 5525BC80194228460018AF2F /* PcsxrMemoryObject.m in Sources */,
5525BC6919421A760018AF2F /* main.c in Sources */,
5525BC6B19421A760018AF2F /* GetMetadataForFile.m in Sources */,
);
@@ -3016,8 +3014,6 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
COMBINE_HIDPI_IMAGES = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
@@ -3035,8 +3031,6 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
COMBINE_HIDPI_IMAGES = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
@@ -3055,8 +3049,6 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
COMBINE_HIDPI_IMAGES = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
@@ -3077,10 +3069,7 @@
CLANG_WARN_EMPTY_BODY = YES;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=Bladesio1",
- "$(inherited)",
- );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=Bladesio1";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
WRAPPER_EXTENSION = psxplugin;
@@ -3092,10 +3081,7 @@
buildSettings = {
CLANG_WARN_EMPTY_BODY = YES;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=Bladesio1",
- "$(inherited)",
- );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=Bladesio1";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
WRAPPER_EXTENSION = psxplugin;
@@ -3108,10 +3094,7 @@
CLANG_WARN_EMPTY_BODY = YES;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=DFCdrom",
- "$(inherited)",
- );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=DFCdrom";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
WRAPPER_EXTENSION = psxplugin;
@@ -3123,10 +3106,7 @@
buildSettings = {
CLANG_WARN_EMPTY_BODY = YES;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=DFCdrom",
- "$(inherited)",
- );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=DFCdrom";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
WRAPPER_EXTENSION = psxplugin;
@@ -3141,10 +3121,7 @@
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=DFInput",
- "$(inherited)",
- );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=DFInput";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
HEADER_SEARCH_PATHS = (
/Library/Frameworks/SDL2.framework/Headers,
@@ -3163,10 +3140,7 @@
EXPORTED_SYMBOLS_FILE = plugins/DFInput/Resources/DFInput.exp;
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=DFInput",
- "$(inherited)",
- );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=DFInput";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
HEADER_SEARCH_PATHS = (
/Library/Frameworks/SDL2.framework/Headers,
@@ -3184,11 +3158,11 @@
CLANG_WARN_EMPTY_BODY = YES;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=SoftGL",
_MACGL,
_DARWIN,
"$(inherited)",
);
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=SoftGL";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
OTHER_CFLAGS = "$(OPTIMIZATION_CFLAGS)";
@@ -3203,11 +3177,11 @@
CLANG_WARN_EMPTY_BODY = YES;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=SoftGL",
_MACGL,
_DARWIN,
"$(inherited)",
);
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=SoftGL";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
OTHER_CFLAGS = "$(OPTIMIZATION_CFLAGS)";
@@ -3224,10 +3198,9 @@
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
"PCSXRPLUG=SDLSound",
USESDL,
- "$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
HEADER_SEARCH_PATHS = (
@@ -3248,10 +3221,9 @@
EXPORTED_SYMBOLS_FILE = plugins/DFSound/Resorces/Shared/DFSound.exp;
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
"PCSXRPLUG=SDLSound",
USESDL,
- "$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
HEADER_SEARCH_PATHS = (
@@ -3322,10 +3294,9 @@
EXPORTED_SYMBOLS_FILE = plugins/DFSound/Resorces/Shared/DFSound.exp;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
"PCSXRPLUG=ALSound",
USEOPENAL,
- "$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INFOPLIST_FILE = "plugins/DFSound/Resorces/OpenAL/Info-AL.plist";
@@ -3341,10 +3312,9 @@
CLANG_WARN_EMPTY_BODY = YES;
EXPORTED_SYMBOLS_FILE = plugins/DFSound/Resorces/Shared/DFSound.exp;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
"PCSXRPLUG=ALSound",
USEOPENAL,
- "$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INFOPLIST_FILE = "plugins/DFSound/Resorces/OpenAL/Info-AL.plist";
@@ -3361,11 +3331,11 @@
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=PeopsXGL",
_MACGL,
_DARWIN,
"$(inherited)",
);
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=PeopsXGL";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
OTHER_CFLAGS = "$(OPTIMIZATION_CFLAGS)";
@@ -3380,11 +3350,11 @@
CLANG_WARN_EMPTY_BODY = YES;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=PeopsXGL",
_MACGL,
_DARWIN,
"$(inherited)",
);
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=PeopsXGL";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
OTHER_CFLAGS = "$(OPTIMIZATION_CFLAGS)";
@@ -3399,10 +3369,7 @@
CLANG_WARN_EMPTY_BODY = YES;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=DFNet",
- "$(inherited)",
- );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=DFNet";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
WRAPPER_EXTENSION = psxplugin;
@@ -3414,10 +3381,7 @@
buildSettings = {
CLANG_WARN_EMPTY_BODY = YES;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=DFNet",
- "$(inherited)",
- );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=DFNet";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
WRAPPER_EXTENSION = psxplugin;
@@ -3428,8 +3392,6 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_OBJC_ARC = YES;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
@@ -3437,17 +3399,16 @@
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "Psx-Memcard/Psx-Memcard-Prefix.pch";
- GCC_PREPROCESSOR_DEFINITIONS = (
- "$(inherited)",
- "PCSXRPLUG=MDPsx",
- );
+ GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=MDPsx";
INFOPLIST_FILE = "Psx-Memcard/Psx-Memcard-Info.plist";
INSTALL_PATH = "@executable_path/../Contents/Library/Spotlight";
- LIBRARY_STYLE = BUNDLE;
+ PLIST_FILE_OUTPUT_FORMAT = XML;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
+ STRINGS_FILE_OUTPUT_ENCODING = "UTF-16";
WRAPPER_EXTENSION = mdimporter;
};
name = Debug;
@@ -3456,8 +3417,6 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_OBJC_ARC = YES;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
@@ -3465,17 +3424,16 @@
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "Psx-Memcard/Psx-Memcard-Prefix.pch";
- GCC_PREPROCESSOR_DEFINITIONS = (
- "$(inherited)",
- "PCSXRPLUG=MDPsx",
- );
+ GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=MDPsx";
INFOPLIST_FILE = "Psx-Memcard/Psx-Memcard-Info.plist";
INSTALL_PATH = "@executable_path/../Contents/Library/Spotlight";
- LIBRARY_STYLE = BUNDLE;
+ PLIST_FILE_OUTPUT_FORMAT = XML;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
+ STRINGS_FILE_OUTPUT_ENCODING = "UTF-16";
WRAPPER_EXTENSION = mdimporter;
};
name = Release;
@@ -3484,8 +3442,6 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_OBJC_ARC = YES;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
@@ -3493,17 +3449,16 @@
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "Psx-Memcard/Psx-Memcard-Prefix.pch";
- GCC_PREPROCESSOR_DEFINITIONS = (
- "$(inherited)",
- "PCSXRPLUG=MDPsx",
- );
+ GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=MDPsx";
INFOPLIST_FILE = "Psx-Memcard/Psx-Memcard-Info.plist";
INSTALL_PATH = "@executable_path/../Contents/Library/Spotlight";
- LIBRARY_STYLE = BUNDLE;
+ PLIST_FILE_OUTPUT_FORMAT = XML;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
+ STRINGS_FILE_OUTPUT_ENCODING = "UTF-16";
WRAPPER_EXTENSION = mdimporter;
};
name = Instrument;
@@ -3583,7 +3538,6 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
@@ -3611,6 +3565,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = PCSXR;
CLANG_ENABLE_MODULES = NO;
GCC_ENABLE_CPP_EXCEPTIONS = NO;
+ GCC_OPTIMIZATION_LEVEL = 3;
GCC_PREPROCESSOR_DEFINITIONS = (
"PCSXRCORE=1",
"PCSXR_VERSION=\\\"1.9\\\"",
@@ -3657,10 +3612,7 @@
buildSettings = {
CLANG_WARN_EMPTY_BODY = YES;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=DFCdrom",
- "$(inherited)",
- );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=DFCdrom";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
WRAPPER_EXTENSION = psxplugin;
@@ -3674,10 +3626,7 @@
EXPORTED_SYMBOLS_FILE = plugins/DFInput/Resources/DFInput.exp;
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=DFInput",
- "$(inherited)",
- );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=DFInput";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
HEADER_SEARCH_PATHS = (
/Library/Frameworks/SDL2.framework/Headers,
@@ -3695,11 +3644,11 @@
CLANG_WARN_EMPTY_BODY = YES;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=SoftGL",
_MACGL,
_DARWIN,
"$(inherited)",
);
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=SoftGL";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
OTHER_CFLAGS = "$(OPTIMIZATION_CFLAGS)";
@@ -3714,11 +3663,11 @@
CLANG_WARN_EMPTY_BODY = YES;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=PeopsXGL",
_MACGL,
_DARWIN,
"$(inherited)",
);
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=PeopsXGL";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
OTHER_CFLAGS = "$(OPTIMIZATION_CFLAGS)";
@@ -3734,10 +3683,9 @@
EXPORTED_SYMBOLS_FILE = plugins/DFSound/Resorces/Shared/DFSound.exp;
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
"PCSXRPLUG=SDLSound",
USESDL,
- "$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
HEADER_SEARCH_PATHS = (
@@ -3757,10 +3705,9 @@
CLANG_WARN_EMPTY_BODY = YES;
EXPORTED_SYMBOLS_FILE = plugins/DFSound/Resorces/Shared/DFSound.exp;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
"PCSXRPLUG=ALSound",
USEOPENAL,
- "$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INFOPLIST_FILE = "plugins/DFSound/Resorces/OpenAL/Info-AL.plist";
@@ -3775,10 +3722,7 @@
buildSettings = {
CLANG_WARN_EMPTY_BODY = YES;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=DFNet",
- "$(inherited)",
- );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=DFNet";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
WRAPPER_EXTENSION = psxplugin;
@@ -3790,10 +3734,7 @@
buildSettings = {
CLANG_WARN_EMPTY_BODY = YES;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "PCSXRPLUG=Bladesio1",
- "$(inherited)",
- );
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "PCSXRPLUG=Bladesio1";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
WRAPPER_EXTENSION = psxplugin;
@@ -3831,6 +3772,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = PCSXR;
CLANG_ENABLE_MODULES = NO;
GCC_ENABLE_CPP_EXCEPTIONS = NO;
+ GCC_OPTIMIZATION_LEVEL = 3;
GCC_PREPROCESSOR_DEFINITIONS = (
"PCSXRCORE=1",
"PCSXR_VERSION=\\\"1.9\\\"",
@@ -3859,7 +3801,6 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
@@ -3890,7 +3831,6 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
diff --git a/macosx/Psx-Memcard/GetMetadataForFile.m b/macosx/Psx-Memcard/GetMetadataForFile.m
index 04ecab1f..b3e8260c 100644
--- a/macosx/Psx-Memcard/GetMetadataForFile.m
+++ b/macosx/Psx-Memcard/GetMetadataForFile.m
@@ -9,7 +9,7 @@
#include <CoreFoundation/CoreFoundation.h>
#import <Foundation/Foundation.h>
#include "GetMetadataForFile.h"
-#import "PcsxrMemoryObject.h"
+#include "sio.h"
#define MAX_MEMCARD_BLOCKS 15
#define kPCSXRSaveNames @"com_codeplex_pcsxr_memcard_savenames"
@@ -28,7 +28,17 @@
//
//==============================================================================
-static void trimPriv(char *str) {
+typedef NS_ENUM(char, PCSXRMemFlags) {
+ memFlagDeleted,
+ memFlagFree,
+ memFlagUsed,
+ memFlagLink,
+ memFlagEndLink
+};
+
+#if 0
+static void trimPriv(char *str)
+{
int pos = 0;
char *dest = str;
@@ -47,79 +57,88 @@ static void trimPriv(char *str) {
while (dest >= str && *dest <= ' ' && *dest > 0)
*(dest--) = '\0';
}
+#endif
static void GetSoloBlockInfo(unsigned char *data, int block, McdBlock *Info)
{
- unsigned char *ptr, *str, *sstr;
- unsigned short clut[16];
+ unsigned char *ptr = data + block * 8192 + 2;
+ unsigned char *str = Info->Title;
+ unsigned char *sstr = Info->sTitle;
unsigned short c;
- int i, x;
+ unsigned short jisTitle[48] = {0};
+ int i, x = 0;
memset(Info, 0, sizeof(McdBlock));
-
- ptr = data + block * 8192 + 2;
-
Info->IconCount = *ptr & 0x3;
-
ptr += 2;
- x = 0;
-
- str = Info->Title;
- sstr = Info->sTitle;
-
for (i = 0; i < 48; i++) {
c = *(ptr) << 8;
c |= *(ptr + 1);
- if (!c) break;
-
+ if (!c)
+ break;
+ jisTitle[i] = c;
// Convert ASCII characters to half-width
- if (c >= 0x8281 && c <= 0x829A)
+ if (c >= 0x8281 && c <= 0x829A) {
c = (c - 0x8281) + 'a';
- else if (c >= 0x824F && c <= 0x827A)
+ } else if (c >= 0x824F && c <= 0x827A) {
c = (c - 0x824F) + '0';
- else if (c == 0x8140) c = ' ';
- else if (c == 0x8143) c = ',';
- else if (c == 0x8144) c = '.';
- else if (c == 0x8146) c = ':';
- else if (c == 0x8147) c = ';';
- else if (c == 0x8148) c = '?';
- else if (c == 0x8149) c = '!';
- else if (c == 0x815E) c = '/';
- else if (c == 0x8168) c = '"';
- else if (c == 0x8169) c = '(';
- else if (c == 0x816A) c = ')';
- else if (c == 0x816D) c = '[';
- else if (c == 0x816E) c = ']';
- else if (c == 0x817C) c = '-';
- else {
+ } else if (c == 0x8140) {
+ c = ' ';
+ } else if (c == 0x8143) {
+ c = ',';
+ } else if (c == 0x8144) {
+ c = '.';
+ } else if (c == 0x8146) {
+ c = ':';
+ } else if (c == 0x8147) {
+ c = ';';
+ } else if (c == 0x8148) {
+ c = '?';
+ } else if (c == 0x8149) {
+ c = '!';
+ } else if (c == 0x815E) {
+ c = '/';
+ } else if (c == 0x8168) {
+ c = '"';
+ } else if (c == 0x8169) {
+ c = '(';
+ } else if (c == 0x816A) {
+ c = ')';
+ } else if (c == 0x816D) {
+ c = '[';
+ } else if (c == 0x816E) {
+ c = ']';
+ } else if (c == 0x817C) {
+ c = '-';
+ } else {
str[i] = ' ';
- sstr[x++] = *ptr++; sstr[x++] = *ptr++;
+ sstr[x++] = *ptr++;
+ sstr[x++] = *ptr++;
continue;
}
- str[i] = sstr[x++] = c;
+ str[i] = c;
ptr += 2;
}
+ memcpy(Info->sTitle, jisTitle, sizeof(jisTitle));
+#if 0
trimPriv(str);
trimPriv(sstr);
+#endif
ptr = data + block * 8192 + 0x60; // icon palette data
for (i = 0; i < 16; i++) {
- clut[i] = *((unsigned short *)ptr);
ptr += 2;
}
for (i = 0; i < Info->IconCount; i++) {
- short *icon = &Info->Icon[i * 16 * 16];
ptr = data + block * 8192 + 128 + 128 * i; // icon data
for (x = 0; x < 16 * 16; x++) {
- icon[x++] = clut[*ptr & 0xf];
- icon[x] = clut[*ptr >> 4];
ptr++;
}
}
@@ -134,59 +153,34 @@ static void GetSoloBlockInfo(unsigned char *data, int block, McdBlock *Info)
strlcpy(Info->Name, ptr, 16);
}
-static Boolean PopulateMemCards(NSData *fileData, NSArray **outArray)
+static inline PCSXRMemFlags MemBlockFlag(unsigned char blockFlags)
{
- NSMutableArray *memArray = [[NSMutableArray alloc] initWithCapacity:MAX_MEMCARD_BLOCKS];
- if (!fileData) {
- *outArray = @[];
- return FALSE;
- }
- const unsigned char *memPtr = [fileData bytes];
- if ([fileData length] == MCD_SIZE + 64)
- memPtr += 64;
- else if([fileData length] == MCD_SIZE + 3904)
- memPtr += 3904;
- else if ([fileData length] != MCD_SIZE)
- return FALSE;
+ if ((blockFlags & 0xF0) == 0xA0) {
+ if ((blockFlags & 0xF) >= 1 && (blockFlags & 0xF) <= 3)
+ return memFlagDeleted;
+ else
+ return memFlagFree;
+ } else if ((blockFlags & 0xF0) == 0x50) {
+ if ((blockFlags & 0xF) == 0x1)
+ return memFlagUsed;
+ else if ((blockFlags & 0xF) == 0x2)
+ return memFlagLink;
+ else if ((blockFlags & 0xF) == 0x3)
+ return memFlagEndLink;
+ } else
+ return memFlagFree;
- int i = 0, x;
- while (i < MAX_MEMCARD_BLOCKS) {
- x = 1;
- McdBlock memBlock;
- GetSoloBlockInfo((unsigned char *)memPtr, i + 1, &memBlock);
-
- if ([PcsxrMemoryObject memFlagsFromBlockFlags:memBlock.Flags] == memFlagFree) {
- //Free space: ignore
- i++;
- continue;
- }
- do {
- McdBlock tmpBlock;
- GetSoloBlockInfo((unsigned char *)memPtr, i + x + 1, &tmpBlock);
- if ((tmpBlock.Flags & 0x3) == 0x3) {
- x++;
- break;
- } else if ((tmpBlock.Flags & 0x2) == 0x2) {
- x++;
- } else {
- break;
- }
- } while (i + x - 1 < MAX_MEMCARD_BLOCKS);
- @autoreleasepool {
- PcsxrMemoryObject *obj = [[PcsxrMemoryObject alloc] initWithMcdBlock:&memBlock startingIndex:i size:x];
- [memArray addObject:obj];
- }
- i += x;
- }
-
- *outArray = [[NSArray alloc] initWithArray:memArray];
- return true;
+ //Xcode complains unless we do this...
+ //NSLog(@"Unknown flag %x", blockFlags);
+ return memFlagFree;
}
Boolean GetMetadataForFile(void *thisInterface, CFMutableDictionaryRef attributes, CFStringRef contentTypeUTI, CFStringRef pathToFile)
{
Boolean ok = FALSE;
@autoreleasepool {
+ int i = 0, x;
+ NSCharacterSet *theCharSet = [NSCharacterSet whitespaceAndNewlineCharacterSet];
short freeBlocks = MAX_MEMCARD_BLOCKS;
short memCount = 0;
NSMutableArray *enNames = [[NSMutableArray alloc] initWithCapacity:MAX_MEMCARD_BLOCKS];
@@ -195,29 +189,60 @@ Boolean GetMetadataForFile(void *thisInterface, CFMutableDictionaryRef attribute
NSMutableArray *memIDs = [[NSMutableArray alloc] initWithCapacity:MAX_MEMCARD_BLOCKS];
NSMutableDictionary *attr = (__bridge NSMutableDictionary*)attributes;
NSString *path = (__bridge NSString*)pathToFile;
- NSArray *cardArrays;
+ const unsigned char* fileCData = NULL;
NSData *fileData = [[NSData alloc] initWithContentsOfFile:path options:NSDataReadingMappedIfSafe error:NULL];
if (!fileData) {
return FALSE;
}
- ok = PopulateMemCards(fileData, &cardArrays);
- if (!ok) {
+ fileCData = [fileData bytes];
+ if ([fileData length] == MCD_SIZE + 64)
+ fileCData += 64;
+ else if([fileData length] == MCD_SIZE + 3904)
+ fileCData += 3904;
+ else if ([fileData length] != MCD_SIZE)
return FALSE;
- }
- for (PcsxrMemoryObject *obj in cardArrays) {
+
+ while (i < MAX_MEMCARD_BLOCKS) {
+ x = 1;
+ McdBlock memBlock;
+ GetSoloBlockInfo((unsigned char *)fileCData, i + 1, &memBlock);
+
+ if (MemBlockFlag(memBlock.Flags) == memFlagFree) {
+ //Free space: ignore
+ i++;
+ continue;
+ }
+ do {
+ McdBlock tmpBlock;
+ GetSoloBlockInfo((unsigned char *)fileCData, i + x + 1, &tmpBlock);
+ if ((tmpBlock.Flags & 0x3) == 0x3) {
+ x++;
+ break;
+ } else if ((tmpBlock.Flags & 0x2) == 0x2) {
+ x++;
+ } else {
+ break;
+ }
+ } while (i + x - 1 < MAX_MEMCARD_BLOCKS);
// Ignore deleted blocks
- if (obj.flagNameIndex == memFlagDeleted) {
+ if (MemBlockFlag(memBlock.Flags) == memFlagDeleted) {
continue;
}
- freeBlocks -= obj.blockSize;
memCount++;
- [enNames addObject:obj.englishName];
- [jpNames addObject:obj.sjisName];
- [memNames addObject:obj.memName];
- [memIDs addObject:obj.memID];
+ i += x;
+ freeBlocks -= x;
+ NSString *enName = [@(memBlock.Title) stringByTrimmingCharactersInSet:theCharSet];
+ NSString *jpName = [[NSString alloc] initWithCString:memBlock.sTitle encoding:NSShiftJISStringEncoding];
+ NSString *memName = @(memBlock.Name);
+ NSString *memID = @(memBlock.ID);
+
+ jpName = [jpName stringByTrimmingCharactersInSet:theCharSet];
+ [enNames addObject:enName];
+ [jpNames addObject:jpName];
+ [memNames addObject:memName];
+ [memIDs addObject:memID];
}
-
attr[kPCSXRSaveNames] = @{@"en": [enNames copy],
@"ja": [jpNames copy]};
attr[kPCSXRMemCount] = @(memCount);