1 // 2 // PcsxrMemoryObject.h 3 // Pcsxr 4 // 5 // Created by Charles Betts on 11/23/11. 6 // Copyright (c) 2011 __MyCompanyName__. All rights reserved. 7 // 8 9 #import <Cocoa/Cocoa.h> 10 #include "sio.h" 11 12 typedef NS_ENUM(char, PCSXRMemFlag) { 13 PCSXRMemFlagDeleted, 14 PCSXRMemFlagFree, 15 PCSXRMemFlagUsed, 16 PCSXRMemFlagLink, 17 PCSXRMemFlagEndLink 18 }; 19 20 @interface PcsxrMemoryObject : NSObject 21 @property (readonly, copy) NSString *title; 22 @property (readonly, copy) NSString *name; 23 @property (readonly, copy) NSString *identifier; 24 @property (readonly, strong) NSArray *imageArray; 25 @property (readonly, strong, nonatomic) NSImage *image; 26 @property (readonly) PCSXRMemFlag flag; 27 @property (readonly, strong) NSIndexSet *indexes; 28 @property (readonly) uint8_t blockSize; 29 @property (readonly) BOOL hasImages; 30 31 + (NSArray<NSImage*> *)imagesFromMcd:(McdBlock *)block; 32 + (NSString*)memoryLabelFromFlag:(PCSXRMemFlag)flagNameIndex; 33 + (NSImage *)blankImage; 34 + (PCSXRMemFlag)memFlagsFromBlockFlags:(unsigned char)blockFlags; 35 36 - (instancetype)initWithMcdBlock:(McdBlock *)infoBlockc startingIndex:(uint8_t)startIdx size:(uint8_t)memSize DEPRECATED_ATTRIBUTE; 37 - (instancetype)initWithMcdBlock:(McdBlock *)infoBlockc blockIndexes:(NSIndexSet*)blockIdx NS_DESIGNATED_INITIALIZER; 38 39 - (NSImage*)memoryImageAtIndex:(NSInteger)idx; 40 41 42 @property (readonly, copy) NSImage *firstImage; 43 @property (readonly, nonatomic) NSUInteger iconCount; 44 @property (readonly, unsafe_unretained, nonatomic) NSString *flagName; 45 @property (readonly, unsafe_unretained, nonatomic) NSAttributedString *attributedFlagName; 46 @property (readonly, nonatomic) BOOL showCount; 47 48 @end 49