summaryrefslogtreecommitdiff
path: root/macosx/PcsxrMemoryObject.m
diff options
context:
space:
mode:
authorSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-07-06 03:02:24 +0000
committerSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-07-06 03:02:24 +0000
commitfda7db4491a0c1620afcd50d7f53985442c6e856 (patch)
tree0d6693a5c38149cda109e6839de2a7879221e130 /macosx/PcsxrMemoryObject.m
parentea22cb43790add304b8b3620e45fe4a8e7b719c2 (diff)
downloadpcsxr-fda7db4491a0c1620afcd50d7f53985442c6e856.tar.gz
Minor OS X changes.
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@85869 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'macosx/PcsxrMemoryObject.m')
-rwxr-xr-xmacosx/PcsxrMemoryObject.m72
1 files changed, 34 insertions, 38 deletions
diff --git a/macosx/PcsxrMemoryObject.m b/macosx/PcsxrMemoryObject.m
index 4d740b30..a9db8e03 100755
--- a/macosx/PcsxrMemoryObject.m
+++ b/macosx/PcsxrMemoryObject.m
@@ -17,15 +17,15 @@
NSString *const memoryAnimateTimerKey = @"PCSXR Memory Card Image Animate";
@interface PcsxrMemoryObject ()
-//Mangle the setters' names so that if someone tries to use them, they won't work
-@property (readwrite, retain, setter = setEngName:) NSString *englishName;
-@property (readwrite, retain, setter = setJapaneseName:) NSString *sjisName;
-@property (readwrite, retain, setter = setTheMemName:) NSString *memName;
-@property (readwrite, retain, setter = setTheMemId:) NSString *memID;
-@property (readwrite, retain, setter = setTheMemImage:) NSImage *memImage;
-@property (readwrite, getter = isNotDeleted, setter = setIsNotDeleted:) BOOL notDeleted;
-@property (readwrite, setter = setTheMemFlags:) unsigned char memFlags;
-@property (retain) NSArray *memImages;
+@property (readwrite, arcstrong) NSString *englishName;
+@property (readwrite, arcstrong) NSString *sjisName;
+@property (readwrite, arcstrong) NSString *memName;
+@property (readwrite, arcstrong) NSString *memID;
+@property (readwrite, getter = isNotDeleted) BOOL notDeleted;
+@property (readwrite) unsigned char memFlags;
+
+@property (readwrite, nonatomic) NSInteger memImageIndex;
+@property (arcstrong) NSArray *memImages;
@end
@implementation PcsxrMemoryObject
@@ -82,19 +82,21 @@ NSString *const memoryAnimateTimerKey = @"PCSXR Memory Card Image Animate";
if (self = [super init]) {
self.englishName = [NSString stringWithCString:infoBlock->Title encoding:NSASCIIStringEncoding];
self.sjisName = [NSString stringWithCString:infoBlock->sTitle encoding:NSShiftJISStringEncoding];
- self.memImages = [PcsxrMemoryObject imagesFromMcd:infoBlock];
+ @autoreleasepool {
+ self.memImages = [PcsxrMemoryObject imagesFromMcd:infoBlock];
+ }
if ([memImages count] == 0) {
- self.memImage = [PcsxrMemoryObject blankImage];
+ self.memImageIndex = -1;
} else if ([memImages count] == 1) {
- self.memImage = [memImages objectAtIndex:0];
+ self.memImageIndex = 0;
} else {
- self.memImage = [self.memImages objectAtIndex:0];
+ self.memImageIndex = 0;
[[NSNotificationCenter defaultCenter] addObserverForName:memoryAnimateTimerKey object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
- NSInteger index = [memImages indexOfObject:memImage];
+ NSInteger index = memImageIndex;
if (++index >= [memImages count]) {
index = 0;
}
- self.memImage = [memImages objectAtIndex:index];
+ self.memImageIndex = index;
}];
}
self.memName = [NSString stringWithCString:infoBlock->Name encoding:NSASCIIStringEncoding];
@@ -114,44 +116,38 @@ NSString *const memoryAnimateTimerKey = @"PCSXR Memory Card Image Animate";
return self;
}
+#pragma mark - Property Synthesizers
@synthesize englishName;
@synthesize sjisName;
-@synthesize memImage;
-- (void)setTheMemImage:(NSImage *)theMemImage
+@synthesize memImageIndex;
+- (void)setMemImageIndex:(NSInteger)theMemImageIndex
{
- if (memImage == theMemImage) {
- return;
- }
- //This is the only setter that is being watched AND changed.
-#if __has_feature(objc_arc)
- [self willChangeValueForKey:@"memImage"];
- memImage = theMemImage;
- [self didChangeValueForKey:@"memImage"];
-#else
- NSImage *tmpImage = memImage;
[self willChangeValueForKey:@"memImage"];
- memImage = [theMemImage retain];
+ memImageIndex = theMemImageIndex;
[self didChangeValueForKey:@"memImage"];
- [tmpImage release];
-#endif
-}
-- (NSImage*)memImage
-{
- @synchronized(memImage)
- {
- return memImage;
- }
}
@synthesize notDeleted;
@synthesize memFlags;
@synthesize memName;
@synthesize memID;
+@synthesize memImages;
+
+#pragma mark Non-synthesize Properties
- (int)memIconCount
{
return [memImages count];
}
-@synthesize memImages;
+
+- (NSImage*)memImage
+{
+ if (memImageIndex == -1) {
+ return [PcsxrMemoryObject blankImage];
+ }
+ return [memImages objectAtIndex:memImageIndex];
+}
+
+#pragma mark -
- (void)dealloc
{