summaryrefslogtreecommitdiff
path: root/macosx/Psx-Memcard/GetMetadataForFile.m
diff options
context:
space:
mode:
authorSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-07-08 14:22:21 +0000
committerSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-07-08 14:22:21 +0000
commit247d3802e22fe82df7e65deaa71fb20093b69ccc (patch)
treeed1a4f7d046f24fb1893bebf6a984c44fae9e8a5 /macosx/Psx-Memcard/GetMetadataForFile.m
parent27966fc4cdb1f6c976e4b3e53acecc05a19b4c0d (diff)
downloadpcsxr-247d3802e22fe82df7e65deaa71fb20093b69ccc.tar.gz
OS X: more trimming of the metadata plug-in.
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@90902 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'macosx/Psx-Memcard/GetMetadataForFile.m')
-rw-r--r--macosx/Psx-Memcard/GetMetadataForFile.m74
1 files changed, 16 insertions, 58 deletions
diff --git a/macosx/Psx-Memcard/GetMetadataForFile.m b/macosx/Psx-Memcard/GetMetadataForFile.m
index b3e8260c..5c775697 100644
--- a/macosx/Psx-Memcard/GetMetadataForFile.m
+++ b/macosx/Psx-Memcard/GetMetadataForFile.m
@@ -28,7 +28,7 @@
//
//==============================================================================
-typedef NS_ENUM(char, PCSXRMemFlags) {
+typedef NS_ENUM(NSInteger, PCSXRMemFlags) {
memFlagDeleted,
memFlagFree,
memFlagUsed,
@@ -36,37 +36,13 @@ typedef NS_ENUM(char, PCSXRMemFlags) {
memFlagEndLink
};
-#if 0
-static void trimPriv(char *str)
-{
- int pos = 0;
- char *dest = str;
-
- // skip leading blanks
- while (str[pos] <= ' ' && str[pos] > 0)
- pos++;
-
- while (str[pos]) {
- *(dest++) = str[pos];
- pos++;
- }
-
- *(dest--) = '\0'; // store the null
-
- // remove trailing blanks
- while (dest >= str && *dest <= ' ' && *dest > 0)
- *(dest--) = '\0';
-}
-#endif
-
static void GetSoloBlockInfo(unsigned char *data, int block, McdBlock *Info)
{
unsigned char *ptr = data + block * 8192 + 2;
unsigned char *str = Info->Title;
- unsigned char *sstr = Info->sTitle;
unsigned short c;
unsigned short jisTitle[48] = {0};
- int i, x = 0;
+ int i;
memset(Info, 0, sizeof(McdBlock));
Info->IconCount = *ptr & 0x3;
@@ -113,8 +89,6 @@ static void GetSoloBlockInfo(unsigned char *data, int block, McdBlock *Info)
c = '-';
} else {
str[i] = ' ';
- sstr[x++] = *ptr++;
- sstr[x++] = *ptr++;
continue;
}
@@ -123,28 +97,7 @@ static void GetSoloBlockInfo(unsigned char *data, int block, McdBlock *Info)
}
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++) {
- ptr += 2;
- }
-
- for (i = 0; i < Info->IconCount; i++) {
-
- ptr = data + block * 8192 + 128 + 128 * i; // icon data
-
- for (x = 0; x < 16 * 16; x++) {
- ptr++;
- }
- }
-
ptr = data + block * 128;
-
Info->Flags = *ptr;
ptr += 0xa;
@@ -205,6 +158,11 @@ Boolean GetMetadataForFile(void *thisInterface, CFMutableDictionaryRef attribute
while (i < MAX_MEMCARD_BLOCKS) {
x = 1;
McdBlock memBlock;
+ NSString *enName;
+ NSString *jpName;
+ NSString *memName;
+ NSString *memID;
+
GetSoloBlockInfo((unsigned char *)fileCData, i + 1, &memBlock);
if (MemBlockFlag(memBlock.Flags) == memFlagFree) {
@@ -231,24 +189,24 @@ Boolean GetMetadataForFile(void *thisInterface, CFMutableDictionaryRef attribute
memCount++;
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);
-
+ enName = [@(memBlock.Title) stringByTrimmingCharactersInSet:theCharSet];
+ jpName = [[NSString alloc] initWithCString:memBlock.sTitle encoding:NSShiftJISStringEncoding];
jpName = [jpName stringByTrimmingCharactersInSet:theCharSet];
+ memName = @(memBlock.Name);
+ memID = @(memBlock.ID);
+
[enNames addObject:enName];
[jpNames addObject:jpName];
[memNames addObject:memName];
[memIDs addObject:memID];
}
- attr[kPCSXRSaveNames] = @{@"en": [enNames copy],
- @"ja": [jpNames copy]};
+ attr[kPCSXRSaveNames] = @{@"en": enNames,
+ @"ja": jpNames};
attr[kPCSXRMemCount] = @(memCount);
attr[kPCSXRFreeBlocks] = @(freeBlocks);
- attr[kPCSXRMemNames] = [memNames copy];
- attr[kPCSXRMemIDs] = [memIDs copy];
+ attr[kPCSXRMemNames] = memNames;
+ attr[kPCSXRMemIDs] = memIDs;
ok = TRUE;
}