diff options
| author | SND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-07-06 03:02:24 +0000 |
|---|---|---|
| committer | SND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-07-06 03:02:24 +0000 |
| commit | fda7db4491a0c1620afcd50d7f53985442c6e856 (patch) | |
| tree | 0d6693a5c38149cda109e6839de2a7879221e130 /macosx/PcsxrMemoryObject.m | |
| parent | ea22cb43790add304b8b3620e45fe4a8e7b719c2 (diff) | |
| download | pcsxr-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-x | macosx/PcsxrMemoryObject.m | 72 |
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 { |
