diff options
| author | SND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2014-07-07 23:27:54 +0000 |
|---|---|---|
| committer | SND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2014-07-07 23:27:54 +0000 |
| commit | d6f8aa174b4a8667285c32e0036ddbc2597c9dd8 (patch) | |
| tree | 9000fb103d3de0d6a42f4ac475dde9238d213ea4 | |
| parent | 85871b22b9d5cd203f3a4d82ed44bb6369c11d06 (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.pbxproj | 142 | ||||
| -rw-r--r-- | macosx/Psx-Memcard/GetMetadataForFile.m | 217 |
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); |
