(OSX) Add a core chooser when opening a game; cores are stored in the Contents/Resources/modules directory of the app bundle.

This commit is contained in:
meancoot 2013-07-07 19:22:36 -04:00
parent 4e390c0dd1
commit a09f28c319
7 changed files with 580 additions and 18 deletions

View File

@ -11,9 +11,16 @@
<string key="NS.object.0">3084</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBNSLayoutConstraint</string>
<string>NSButton</string>
<string>NSButtonCell</string>
<string>NSComboBox</string>
<string>NSComboBoxCell</string>
<string>NSCustomObject</string>
<string>NSMenu</string>
<string>NSMenuItem</string>
<string>NSTextField</string>
<string>NSTextFieldCell</string>
<string>NSView</string>
<string>NSWindowTemplate</string>
</array>
@ -386,7 +393,6 @@
<string key="NSFrameSize">{480, 360}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
</object>
<string key="NSScreenRect">{{0, 0}, {2560, 1418}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
@ -395,6 +401,204 @@
<object class="NSCustomObject" id="976324537">
<string key="NSClassName">RetroArch_OSX</string>
</object>
<object class="NSWindowTemplate" id="361653618">
<int key="NSWindowStyleMask">31</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{272, 172}, {276, 89}}</string>
<int key="NSWTFlags">-1535638528</int>
<string key="NSWindowTitle">Window</string>
<string key="NSWindowClass">NSPanel</string>
<nil key="NSViewClass"/>
<nil key="NSUserInterfaceItemIdentifier"/>
<object class="NSView" key="NSWindowView" id="327272550">
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTextField" id="981013832">
<reference key="NSNextResponder" ref="327272550"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 72}, {242, 17}}</string>
<reference key="NSSuperview" ref="327272550"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="481701893"/>
<string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="45342161">
<int key="NSCellFlags">68157504</int>
<int key="NSCellFlags2">138413056</int>
<string key="NSContents">Select Core</string>
<object class="NSFont" key="NSSupport" id="698260743">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<string key="NSCellIdentifier">_NS:1535</string>
<reference key="NSControlView" ref="981013832"/>
<bool key="NSDrawsBackground">YES</bool>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor" id="962906968">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="1062340437">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSComboBox" id="481701893">
<reference key="NSNextResponder" ref="327272550"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{20, 45}, {239, 26}}</string>
<reference key="NSSuperview" ref="327272550"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="59737118"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="NSTag">1</int>
<bool key="NSEnabled">YES</bool>
<object class="NSComboBoxCell" key="NSCell" id="50876060">
<int key="NSCellFlags">342884416</int>
<int key="NSCellFlags2">272630784</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="698260743"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="481701893"/>
<bool key="NSDrawsBackground">YES</bool>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">textBackgroundColor</string>
<object class="NSColor" key="NSColor" id="67566624">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
</object>
<reference key="NSTextColor" ref="1062340437"/>
<int key="NSVisibleItemCount">5</int>
<bool key="NSHasVerticalScroller">YES</bool>
<reference key="NSDelegate" ref="481701893"/>
<object class="NSComboTableView" key="NSTableView" id="845451530">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{13, 0}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:24</string>
<bool key="NSEnabled">YES</bool>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<bool key="NSControlAllowsExpansionToolTips">YES</bool>
<array class="NSMutableArray" key="NSTableColumns">
<object class="NSTableColumn">
<double key="NSWidth">10</double>
<double key="NSMinWidth">10</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75497472</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents"/>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">12</double>
<int key="NSfFlags">16</int>
</object>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
</object>
<reference key="NSTextColor" ref="67566624"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell">
<int key="NSCellFlags">338690112</int>
<int key="NSCellFlags2">1024</int>
<reference key="NSSupport" ref="698260743"/>
<reference key="NSControlView" ref="845451530"/>
<bool key="NSDrawsBackground">YES</bool>
<object class="NSColor" key="NSBackgroundColor" id="170588361">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<reference key="NSColor" ref="962906968"/>
</object>
<reference key="NSTextColor" ref="1062340437"/>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="845451530"/>
</object>
</array>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<reference key="NSBackgroundColor" ref="170588361"/>
<object class="NSColor" key="NSGridColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">gridColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<double key="NSRowHeight">19</double>
<string key="NSAction">tableViewAction:</string>
<int key="NSTvFlags">-765427712</int>
<reference key="NSDelegate" ref="50876060"/>
<reference key="NSDataSource" ref="50876060"/>
<reference key="NSTarget" ref="50876060"/>
<int key="NSColumnAutoresizingStyle">1</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">YES</bool>
<int key="NSTableViewDraggingDestinationStyle">0</int>
<int key="NSTableViewGroupRowStyle">1</int>
</object>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSButton" id="59737118">
<reference key="NSNextResponder" ref="327272550"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{180, 13}, {82, 32}}</string>
<reference key="NSSuperview" ref="327272550"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="404714727">
<int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">OK</string>
<reference key="NSSupport" ref="698260743"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="59737118"/>
<int key="NSButtonFlags">-2038284288</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrameSize">{276, 89}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="981013832"/>
<string key="NSReuseIdentifierKey">_NS:21</string>
</object>
<string key="NSScreenRect">{{0, 0}, {2560, 1418}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">NO</bool>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
@ -542,6 +746,22 @@
</object>
<int key="connectionID">556</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">_coreSelectSheet</string>
<reference key="source" ref="976324537"/>
<reference key="destination" ref="361653618"/>
</object>
<int key="connectionID">569</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">coreWasChosen:</string>
<reference key="source" ref="976324537"/>
<reference key="destination" ref="59737118"/>
</object>
<int key="connectionID">580</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
@ -842,6 +1062,252 @@
<reference key="object" ref="555841229"/>
<reference key="parent" ref="604031057"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">557</int>
<reference key="object" ref="361653618"/>
<array class="NSMutableArray" key="children">
<reference ref="327272550"/>
</array>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">558</int>
<reference key="object" ref="327272550"/>
<array class="NSMutableArray" key="children">
<reference ref="481701893"/>
<reference ref="981013832"/>
<object class="IBNSLayoutConstraint" id="598502388">
<reference key="firstItem" ref="327272550"/>
<int key="firstAttribute">4</int>
<int key="relation">0</int>
<reference key="secondItem" ref="59737118"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="327272550"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="440045210">
<reference key="firstItem" ref="327272550"/>
<int key="firstAttribute">6</int>
<int key="relation">0</int>
<reference key="secondItem" ref="59737118"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="327272550"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="349729298">
<reference key="firstItem" ref="481701893"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="327272550"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="327272550"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="771451666">
<reference key="firstItem" ref="327272550"/>
<int key="firstAttribute">6</int>
<int key="relation">0</int>
<reference key="secondItem" ref="481701893"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="327272550"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="921535294">
<reference key="firstItem" ref="481701893"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="327272550"/>
<int key="secondAttribute">3</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="327272550"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="1063787951">
<reference key="firstItem" ref="327272550"/>
<int key="firstAttribute">6</int>
<int key="relation">0</int>
<reference key="secondItem" ref="981013832"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="327272550"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="1065663450">
<reference key="firstItem" ref="981013832"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="327272550"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="327272550"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="819043808">
<reference key="firstItem" ref="981013832"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="327272550"/>
<int key="secondAttribute">3</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="327272550"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<reference ref="59737118"/>
</array>
<reference key="parent" ref="361653618"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">559</int>
<reference key="object" ref="481701893"/>
<array class="NSMutableArray" key="children">
<reference ref="50876060"/>
</array>
<reference key="parent" ref="327272550"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">560</int>
<reference key="object" ref="981013832"/>
<array class="NSMutableArray" key="children">
<reference ref="45342161"/>
</array>
<reference key="parent" ref="327272550"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">561</int>
<reference key="object" ref="819043808"/>
<reference key="parent" ref="327272550"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">562</int>
<reference key="object" ref="1065663450"/>
<reference key="parent" ref="327272550"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">563</int>
<reference key="object" ref="1063787951"/>
<reference key="parent" ref="327272550"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">564</int>
<reference key="object" ref="921535294"/>
<reference key="parent" ref="327272550"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">565</int>
<reference key="object" ref="771451666"/>
<reference key="parent" ref="327272550"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">566</int>
<reference key="object" ref="349729298"/>
<reference key="parent" ref="327272550"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">567</int>
<reference key="object" ref="45342161"/>
<reference key="parent" ref="981013832"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">568</int>
<reference key="object" ref="50876060"/>
<reference key="parent" ref="481701893"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">570</int>
<reference key="object" ref="59737118"/>
<array class="NSMutableArray" key="children">
<reference ref="404714727"/>
<object class="IBNSLayoutConstraint" id="756403335">
<reference key="firstItem" ref="59737118"/>
<int key="firstAttribute">7</int>
<int key="relation">0</int>
<nil key="secondItem"/>
<int key="secondAttribute">0</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">70</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="59737118"/>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">1</int>
</object>
</array>
<reference key="parent" ref="327272550"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">571</int>
<reference key="object" ref="404714727"/>
<reference key="parent" ref="59737118"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">572</int>
<reference key="object" ref="440045210"/>
<reference key="parent" ref="327272550"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">578</int>
<reference key="object" ref="598502388"/>
<reference key="parent" ref="327272550"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">579</int>
<reference key="object" ref="756403335"/>
<reference key="parent" ref="59737118"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@ -882,8 +1348,42 @@
<string key="549.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="551.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="555.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="557.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="557.NSWindowTemplate.visibleAtLaunch"/>
<array class="NSMutableArray" key="558.IBNSViewMetadataConstraints">
<reference ref="819043808"/>
<reference ref="1065663450"/>
<reference ref="1063787951"/>
<reference ref="921535294"/>
<reference ref="771451666"/>
<reference ref="349729298"/>
<reference ref="440045210"/>
<reference ref="598502388"/>
</array>
<string key="558.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="559.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="559.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="56.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="560.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="560.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="561.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="562.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="563.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="564.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="565.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="566.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="567.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="568.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="57.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<array key="570.IBNSViewMetadataConstraints">
<reference ref="756403335"/>
</array>
<boolean value="NO" key="570.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="570.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="571.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="572.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="578.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="579.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="58.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="72.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="73.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -896,10 +1396,18 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">556</int>
<int key="maxID">580</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">NSLayoutConstraint</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/NSLayoutConstraint.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">RetroArch_OSX</string>
<string key="superclassName">NSObject</string>

View File

@ -26,7 +26,7 @@
@property (strong) NSString* path;
@property core_info_t* info;
@property config_file_t* data;
@property (strong) NSString* displayName;
@property (strong) NSString* description;
+ (NSArray*)getModules;
- (bool)supportsFileAtPath:(NSString*)path;

View File

@ -26,8 +26,12 @@ static core_info_list_t* coreList;
+ (NSArray*)getModules
{
if (!moduleList)
{
{
coreList = get_core_info_list(apple_platform.corePath.UTF8String);
if (!coreList)
return nil;
moduleList = [NSMutableArray arrayWithCapacity:coreList->count];
for (int i = 0; coreList && i < coreList->count; i ++)
@ -38,14 +42,14 @@ static core_info_list_t* coreList;
newInfo.path = [NSString stringWithUTF8String:core->path];
newInfo.info = core;
newInfo.data = core->data;
newInfo.displayName = [NSString stringWithUTF8String:core->display_name];
newInfo.description = [NSString stringWithUTF8String:core->display_name];
[moduleList addObject:newInfo];
}
[moduleList sortUsingComparator:^(RAModuleInfo* left, RAModuleInfo* right)
{
return [left.displayName caseInsensitiveCompare:right.displayName];
return [left.description caseInsensitiveCompare:right.description];
}];
}
@ -56,6 +60,12 @@ static core_info_list_t* coreList;
{
}
- (id)copyWithZone:(NSZone *)zone
{
return self;
}
- (bool)supportsFileAtPath:(NSString*)path
{
return does_core_support_file(self.info, path.UTF8String);

View File

@ -103,14 +103,9 @@ void apple_run_core(RAModuleInfo* core, const char* file)
load_data->state_path = strdup(RetroArch_iOS.get.systemDirectory.UTF8String);
#endif
#ifdef IOS
if (file && core)
{
load_data->libretro_path = strdup(apple_core.path.UTF8String);
#else
{
load_data->libretro_path = strdup("/Users/jason/Desktop/libretro.dylib");
#endif
load_data->rom_path = strdup(file);
}
@ -489,6 +484,11 @@ int main(int argc, char *argv[])
@end
@implementation RetroArch_OSX
{
NSWindow IBOutlet* _coreSelectSheet;
NSString* _file;
}
+ (RetroArch_OSX*)get
{
return (RetroArch_OSX*)[[NSApplication sharedApplication] delegate];
@ -510,6 +510,13 @@ int main(int argc, char *argv[])
[window.contentView addSubview:RAGameView.get];
[window makeFirstResponder:RAGameView.get];
NSComboBox* cb = (NSComboBox*)[_coreSelectSheet.contentView viewWithTag:1];
for (RAModuleInfo* i in RAModuleInfo.getModules)
{
[cb addItemWithObjectValue:i];
}
}
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication
@ -520,14 +527,20 @@ int main(int argc, char *argv[])
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
{
if (filename)
apple_run_core(nil, filename.UTF8String);
{
_file = filename;
[self chooseCore];
}
return YES;
}
- (void)application:(NSApplication *)sender openFiles:(NSArray *)filenames
{
if (filenames.count == 1 && filenames[0])
apple_run_core(nil, [filenames[0] UTF8String]);
{
_file = filenames[0];
[self chooseCore];
}
else
apple_display_alert(@"Cannot open multiple files", @"RetroArch");
}
@ -538,10 +551,28 @@ int main(int argc, char *argv[])
[panel beginSheetModalForWindow:window completionHandler:^(NSInteger result)
{
if (result == NSOKButton && panel.URL)
apple_run_core(nil, panel.URL.path.UTF8String);
{
_file = panel.URL.path;
[self chooseCore];
}
}];
}
- (void)chooseCore
{
[NSApplication.sharedApplication beginSheet:_coreSelectSheet modalForWindow:window modalDelegate:nil didEndSelector:nil contextInfo:nil];
}
- (IBAction)coreWasChosen:(id)sender
{
NSComboBox* cb = (NSComboBox*)[_coreSelectSheet.contentView viewWithTag:1];
RAModuleInfo* module = (RAModuleInfo*)cb.objectValueOfSelectedItem;
apple_run_core(module, _file.UTF8String);
[NSApplication.sharedApplication endSheet:_coreSelectSheet returnCode:0];
[_coreSelectSheet orderOut:self];
}
#pragma mark RetroArch_Platform
- (void)loadingCore:(RAModuleInfo*)core withFile:(const char*)file
{
@ -561,7 +592,7 @@ int main(int argc, char *argv[])
- (NSString*)corePath
{
return [NSBundle.mainBundle.bundlePath stringByAppendingPathComponent:@"modules"];
return [NSBundle.mainBundle.bundlePath stringByAppendingPathComponent:@"Contents/Resources/modules"];
}
#pragma mark Menus

View File

@ -19,6 +19,7 @@
967894A51788F0C200D6CA69 /* CoreAudioKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 967894A31788F0C200D6CA69 /* CoreAudioKit.framework */; };
967894A71788F0D900D6CA69 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 967894A61788F0D900D6CA69 /* OpenGL.framework */; };
967894A91788F0E500D6CA69 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 967894A81788F0E500D6CA69 /* AudioUnit.framework */; };
967894E9178A2EB400D6CA69 /* modules in Resources */ = {isa = PBXBuildFile; fileRef = 967894E8178A2EB400D6CA69 /* modules */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@ -42,6 +43,7 @@
967894A31788F0C200D6CA69 /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/CoreAudioKit.framework; sourceTree = DEVELOPER_DIR; };
967894A61788F0D900D6CA69 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework; sourceTree = DEVELOPER_DIR; };
967894A81788F0E500D6CA69 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AudioUnit.framework; sourceTree = DEVELOPER_DIR; };
967894E8178A2EB400D6CA69 /* modules */ = {isa = PBXFileReference; lastKnownFileType = folder; path = modules; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -64,6 +66,7 @@
isa = PBXGroup;
children = (
96355CE81788E72A0010DBFA /* RetroArch */,
967894E7178A2E9B00D6CA69 /* Assets */,
96355CE11788E72A0010DBFA /* Frameworks */,
96355CE01788E72A0010DBFA /* Products */,
96355CE91788E72A0010DBFA /* Supporting Files */,
@ -112,13 +115,21 @@
isa = PBXGroup;
children = (
9678948F1788ECDB00D6CA69 /* InfoPlist.strings */,
967894911788ECDB00D6CA69 /* MainMenu.xib */,
9678948D1788ECCA00D6CA69 /* RetroArch-Info.plist */,
);
name = "Supporting Files";
path = RetroArch;
sourceTree = "<group>";
};
967894E7178A2E9B00D6CA69 /* Assets */ = {
isa = PBXGroup;
children = (
967894E8178A2EB400D6CA69 /* modules */,
967894911788ECDB00D6CA69 /* MainMenu.xib */,
);
name = Assets;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@ -171,6 +182,7 @@
files = (
967894931788ECDB00D6CA69 /* InfoPlist.strings in Resources */,
967894941788ECDB00D6CA69 /* MainMenu.xib in Resources */,
967894E9178A2EB400D6CA69 /* modules in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -206,6 +218,7 @@
967894921788ECDB00D6CA69 /* en */,
);
name = MainMenu.xib;
path = RetroArch;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */

View File

@ -216,7 +216,7 @@
}
RAModuleInfo* info = (RAModuleInfo*)[self itemForIndexPath:indexPath];
cell.textLabel.text = info.displayName;
cell.textLabel.text = info.description;
objc_setAssociatedObject(cell.accessoryView, "MODULE", info, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
return cell;

View File

@ -289,7 +289,7 @@ static NSArray* build_input_port_group(config_file_t* config, uint32_t player)
if (config)
config_file_free(config);
self = [super initWithSettings:settings title:_module ? _module.displayName : @"Global Core Config"];
self = [super initWithSettings:settings title:_module ? _module.description : @"Global Core Config"];
return self;
}