Preliminary file list and controller overlay support

This commit is contained in:
TwistedUmbrella 2015-08-22 13:05:47 -04:00
parent 4fd15e515d
commit 5f0d58dc65
10 changed files with 351 additions and 10 deletions

View File

@ -10,10 +10,14 @@
#import <GLKit/GLKit.h>
#import <GameController/GameController.h>
#import "iCadeReaderView.h"
#import "VirtualViewController.h"
@interface ViewController : GLKViewController <iCadeEventDelegate>
@property (nonatomic) iCadeReaderView* iCadeReader;
@property (nonatomic) GCController *gController __attribute__((weak_import));
@property (nonatomic, strong) id connectObserver;
@property (nonatomic, strong) id disconnectObserver;
@property (nonatomic, strong) VirtualViewController *controller;
@end

View File

@ -81,6 +81,8 @@ extern "C" int reicast_main(int argc, char* argv[]);
- (void)viewDidLoad
{
[super viewDidLoad];
self.controller = [[VirtualViewController alloc] initWithNibName:@"VirtualViewController" bundle:nil];
self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
@ -94,24 +96,32 @@ extern "C" int reicast_main(int argc, char* argv[]);
self.connectObserver = [[NSNotificationCenter defaultCenter] addObserverForName:GCControllerDidConnectNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
if ([[GCController controllers] count] == 1) {
if ([self.controller pollController]) {
[self.controller hideController];
}
[self toggleHardwareController:YES];
}
}];
self.disconnectObserver = [[NSNotificationCenter defaultCenter] addObserverForName:GCControllerDidDisconnectNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
if (![[GCController controllers] count]) {
[self toggleHardwareController:NO];
if (![self.controller pollController]) {
[self.controller showController:self.view];
}
}
}];
if ([[GCController controllers] count]) {
[self toggleHardwareController:YES];
}
} else if (![self.controller pollController]) {
[self.controller showController:self.view];
}
self.iCadeReader = [[iCadeReaderView alloc] init];
[self.view addSubview:self.iCadeReader];
self.iCadeReader.delegate = self;
self.iCadeReader.active = YES;
[self setupGL];
if (!gles_init())
@ -124,7 +134,10 @@ extern "C" int reicast_main(int argc, char* argv[]);
}
- (void)dealloc
{
{
if ([self.controller pollController]) {
[self.controller hideController];
}
[self tearDownGL];
if ([EAGLContext currentContext] == self.context) {

View File

@ -1,9 +1,48 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6250" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="WRM-pR-XCP">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="yfj-cJ-rTl">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6244"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
</dependencies>
<scenes>
<!--Paths View Controller-->
<scene sceneID="5MJ-pk-fyh">
<objects>
<tableViewController id="yfj-cJ-rTl" customClass="PathsViewController" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="gOJ-IW-1Nw">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<prototypes>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="Cell" textLabel="jQL-xa-pqV" style="IBUITableViewCellStyleDefault" id="PlF-ZX-S1T">
<rect key="frame" x="0.0" y="22" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="PlF-ZX-S1T" id="65y-zb-4x3">
<rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="jQL-xa-pqV">
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<connections>
<segue destination="WRM-pR-XCP" kind="push" identifier="emulatorView" id="xKH-h0-TDD"/>
</connections>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="yfj-cJ-rTl" id="dee-2Q-9Vs"/>
<outlet property="delegate" destination="yfj-cJ-rTl" id="N6Z-36-sVZ"/>
</connections>
</tableView>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="bxI-mN-0p6" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-20" y="-612"/>
</scene>
<!--View Controller-->
<scene sceneID="h6I-2s-MCy">
<objects>
@ -14,6 +53,7 @@
<color key="backgroundColor" cocoaTouchSystemColor="darkTextColor"/>
<gestureRecognizers/>
</view>
<navigationItem key="navigationItem" id="FmO-Yo-nVN"/>
<nil key="simulatedStatusBarMetrics"/>
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
</viewController>

View File

@ -11,4 +11,6 @@
@interface PathsViewController : UITableViewController
@property (weak, nonatomic) IBOutlet UIBarButtonItem *sidebarButton;
@property (nonatomic, strong) NSMutableArray* diskImages;
@end

View File

@ -8,6 +8,7 @@
#import "PathsViewController.h"
#import "SWRevealViewController.h"
#import "EmulatorViewController.h"
@interface PathsViewController ()
@ -32,7 +33,7 @@
// Set the side bar button action. When it's tapped, it'll show up the sidebar.
_sidebarButton.target = self.revealViewController;
_sidebarButton.action = @selector(revealToggle:);
// Set the gesture
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
// Uncomment the following line to preserve selection between presentations.
@ -40,6 +41,13 @@
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.diskImages = [[NSMutableArray alloc] init];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documents = [paths objectAtIndex:0];
NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documents error:NULL];
NSPredicate *filter = [NSPredicate predicateWithFormat:@"self ENDSWITH '.chd'"];
self.diskImages = [NSMutableArray arrayWithArray:[files filteredArrayUsingPredicate:filter]];
}
- (void)didReceiveMemoryWarning
@ -50,6 +58,47 @@
#pragma mark - Table view data source
// TODO: paths view controller logic
-(NSInteger)numberOfSectionsInTableView: (UITableView*)tableView
{
return 1;
}
-(NSInteger)tableView: (UITableView *)tableView numberOfRowsInSection: (NSInteger)section
{
return [self.diskImages count];
}
-(NSString*)tableView: (UITableView*)tableView titleForHeaderInSection: (NSInteger)section
{
return @"";
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 160;
// Assign the specific cell height to prevent issues with custom size
}
-(UITableViewCell*)tableView: (UITableView*)tableView cellForRowAtIndexPath: (NSIndexPath*)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier];
if(cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier: CellIdentifier];
}
assert(indexPath.row < [self.diskImages count]);
NSString* imagePath = [self.diskImages objectAtIndex: indexPath.row];
cell.textLabel.text = [imagePath lastPathComponent];
return cell;
}
-(void)tableView: (UITableView*)tableView didSelectRowAtIndexPath: (NSIndexPath*)indexPath
{
[self performSegueWithIdentifier: @"emulatorView" sender: self];
}
@end

View File

@ -0,0 +1,30 @@
//
// VirtualViewController.h
//
//
// Created by Lounge Katt on 8/19/15.
//
//
#import <UIKit/UIKit.h>
@interface VirtualViewController : UIViewController
@property (nonatomic, strong) IBOutlet UIButton* img_dpad_l;
@property (nonatomic, strong) IBOutlet UIButton* img_dpad_r;
@property (nonatomic, strong) IBOutlet UIButton* img_dpad_u;
@property (nonatomic, strong) IBOutlet UIButton* img_dpad_d;
@property (nonatomic, strong) IBOutlet UIButton* img_abxy_a;
@property (nonatomic, strong) IBOutlet UIButton* img_abxy_b;
@property (nonatomic, strong) IBOutlet UIButton* img_abxy_x;
@property (nonatomic, strong) IBOutlet UIButton* img_abxy_y;
@property (nonatomic, strong) IBOutlet UIButton* img_vjoy;
@property (nonatomic, strong) IBOutlet UIButton* img_lt;
@property (nonatomic, strong) IBOutlet UIButton* img_rt;
@property (nonatomic, strong) IBOutlet UIButton* img_start;
- (void) showController:(UIView *)parentView;
- (void) hideController;
- (BOOL) pollController;
@end

View File

@ -0,0 +1,62 @@
//
// VirtualViewController.m
//
//
// Created by Lounge Katt on 8/19/15.
//
//
#import "VirtualViewController.h"
@interface VirtualViewController ()
@end
@implementation VirtualViewController
- (void)showController:(UIView *)parentView
{
[parentView addSubview:self.view];
}
- (void)hideController {
[self.view removeFromSuperview];
}
- (BOOL)pollController {
if (self.view.window != nil) {
return YES;
}
return NO;
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end

View File

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VirtualViewController">
<connections>
<outlet property="img_abxy_a" destination="iKO-3z-Ias" id="oRQ-Ot-o9X"/>
<outlet property="img_abxy_b" destination="7LB-OY-vh3" id="cRb-HF-lB5"/>
<outlet property="img_abxy_x" destination="iwO-7q-c8H" id="hva-yg-GyI"/>
<outlet property="img_abxy_y" destination="hGZ-v7-VA5" id="s3t-TW-RMC"/>
<outlet property="img_dpad_d" destination="s7g-nq-lRU" id="18B-Oa-iYW"/>
<outlet property="img_dpad_l" destination="rp6-Nd-1qa" id="2bI-dY-c42"/>
<outlet property="img_dpad_r" destination="CVH-hw-R8F" id="sZ1-PW-o0j"/>
<outlet property="img_dpad_u" destination="WMD-Fv-ibu" id="lLl-ak-69J"/>
<outlet property="img_lt" destination="8Gl-Iv-u8L" id="7hg-SV-U3u"/>
<outlet property="img_rt" destination="V8J-vG-dlF" id="lCV-ed-R6J"/>
<outlet property="img_start" destination="VtI-tC-PSX" id="mQP-ev-xQA"/>
<outlet property="view" destination="3M7-1s-N5r" id="pbF-19-58j"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="3M7-1s-N5r">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="LTrigger.png" translatesAutoresizingMaskIntoConstraints="NO" id="H57-MD-elm">
<rect key="frame" x="16" y="28" width="80" height="40"/>
</imageView>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8Gl-Iv-u8L">
<rect key="frame" x="16" y="28" width="80" height="40"/>
<state key="normal" title="Button">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="RTrigger.png" translatesAutoresizingMaskIntoConstraints="NO" id="Cjn-zx-eSs">
<rect key="frame" x="504" y="28" width="80" height="40"/>
</imageView>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="V8J-vG-dlF">
<rect key="frame" x="504" y="28" width="80" height="40"/>
<state key="normal" title="Button">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="JoystickButton.png" translatesAutoresizingMaskIntoConstraints="NO" id="ivh-8r-bw3">
<rect key="frame" x="36" y="466" width="100" height="100"/>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="JoystickBackground.png" translatesAutoresizingMaskIntoConstraints="NO" id="OMP-L6-n0A">
<rect key="frame" x="22" y="452" width="128" height="128"/>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="DPad.png" translatesAutoresizingMaskIntoConstraints="NO" id="FLe-Gr-hny">
<rect key="frame" x="16" y="304" width="140" height="140"/>
</imageView>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rp6-Nd-1qa">
<rect key="frame" x="16" y="354" width="46" height="40"/>
<state key="normal" title="Button">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CVH-hw-R8F">
<rect key="frame" x="110" y="354" width="46" height="40"/>
<state key="normal" title="Button">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WMD-Fv-ibu">
<rect key="frame" x="66" y="304" width="40" height="40"/>
<state key="normal" title="Button">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="s7g-nq-lRU">
<rect key="frame" x="66" y="404" width="40" height="40"/>
<state key="normal" title="Button">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="ABXYPad.png" translatesAutoresizingMaskIntoConstraints="NO" id="xbP-E4-fCE">
<rect key="frame" x="424" y="419" width="160" height="161"/>
</imageView>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="iwO-7q-c8H">
<rect key="frame" x="424" y="470" width="60" height="60"/>
<state key="normal" title="Button">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7LB-OY-vh3">
<rect key="frame" x="524" y="470" width="60" height="60"/>
<state key="normal" title="Button">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hGZ-v7-VA5">
<rect key="frame" x="474" y="419" width="60" height="60"/>
<state key="normal" title="Button">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="iKO-3z-Ias">
<rect key="frame" x="474" y="520" width="60" height="60"/>
<state key="normal" title="Button">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="Start.png" translatesAutoresizingMaskIntoConstraints="NO" id="9K0-cV-7zu">
<rect key="frame" x="260" y="552" width="80" height="40"/>
</imageView>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="VtI-tC-PSX">
<rect key="frame" x="273" y="552" width="54" height="40"/>
<state key="normal" title="Button">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
</view>
</objects>
<resources>
<image name="ABXYPad.png" width="120" height="120"/>
<image name="DPad.png" width="120" height="120"/>
<image name="JoystickBackground.png" width="120" height="120"/>
<image name="JoystickButton.png" width="56" height="56"/>
<image name="LTrigger.png" width="67" height="44"/>
<image name="RTrigger.png" width="67" height="44"/>
<image name="Start.png" width="48" height="26"/>
</resources>
</document>

View File

@ -42,6 +42,8 @@
87078A9B18A47FE90034C7A0 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 87078A9A18A47FE90034C7A0 /* AppDelegate.m */; };
87078AA318A47FE90034C7A0 /* Shader.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 87078AA218A47FE90034C7A0 /* Shader.fsh */; };
87078AA518A47FE90034C7A0 /* Shader.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 87078AA418A47FE90034C7A0 /* Shader.vsh */; };
872EF7021B852EB200A0F617 /* VirtualViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 872EF7001B852EB200A0F617 /* VirtualViewController.m */; };
872EF7031B852EB200A0F617 /* VirtualViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 872EF7011B852EB200A0F617 /* VirtualViewController.xib */; };
876AA3771B818A4000617242 /* ini.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 876AA3751B818A4000617242 /* ini.cpp */; };
877652C21B6157BD00437F10 /* audiobackend_alsa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 877652B61B6157BD00437F10 /* audiobackend_alsa.cpp */; };
877652C31B6157BD00437F10 /* audiobackend_directsound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 877652B91B6157BD00437F10 /* audiobackend_directsound.cpp */; };
@ -302,6 +304,9 @@
87078AA218A47FE90034C7A0 /* Shader.fsh */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.glsl; name = Shader.fsh; path = Shaders/Shader.fsh; sourceTree = "<group>"; };
87078AA418A47FE90034C7A0 /* Shader.vsh */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.glsl; name = Shader.vsh; path = Shaders/Shader.vsh; sourceTree = "<group>"; };
87078AB018A47FE90034C7A0 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
872EF6FF1B852EB200A0F617 /* VirtualViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VirtualViewController.h; path = emulator/VirtualViewController.h; sourceTree = "<group>"; };
872EF7001B852EB200A0F617 /* VirtualViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VirtualViewController.m; path = emulator/VirtualViewController.m; sourceTree = "<group>"; };
872EF7011B852EB200A0F617 /* VirtualViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VirtualViewController.xib; path = emulator/VirtualViewController.xib; sourceTree = "<group>"; };
876AA3751B818A4000617242 /* ini.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ini.cpp; sourceTree = "<group>"; };
876AA3761B818A4000617242 /* ini.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ini.h; sourceTree = "<group>"; };
877652B61B6157BD00437F10 /* audiobackend_alsa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audiobackend_alsa.cpp; sourceTree = "<group>"; };
@ -834,6 +839,9 @@
9C7A393618C805F70070BB5F /* View Controller Subclasses */ = {
isa = PBXGroup;
children = (
872EF6FF1B852EB200A0F617 /* VirtualViewController.h */,
872EF7001B852EB200A0F617 /* VirtualViewController.m */,
872EF7011B852EB200A0F617 /* VirtualViewController.xib */,
87C208C51B7A4BFA00638BDD /* AboutViewController.h */,
87C208C61B7A4BFA00638BDD /* AboutViewController.m */,
87C208C71B7A4BFA00638BDD /* BrowserTableViewController.h */,
@ -1543,6 +1551,7 @@
87D92F4C1B7A1B4800D8FD9E /* Start@2x.png in Resources */,
87D92F471B7A1B4800D8FD9E /* menuicon.png in Resources */,
87D92F411B7A1B4800D8FD9E /* JoystickButton.png in Resources */,
872EF7031B852EB200A0F617 /* VirtualViewController.xib in Resources */,
87D92F441B7A1B4800D8FD9E /* LTrigger@2x.png in Resources */,
87D92F551B7A1BB100D8FD9E /* LICENSE in Resources */,
87D92F451B7A1B4800D8FD9E /* menuback.png in Resources */,
@ -1760,6 +1769,7 @@
9C7A3B1818C806E00070BB5F /* Renderer_if.cpp in Sources */,
9C7A3AC518C806E00070BB5F /* zip_error_clear.c in Sources */,
9C7A3AC318C806E00070BB5F /* zip_err_str.c in Sources */,
872EF7021B852EB200A0F617 /* VirtualViewController.m in Sources */,
9C7A3B4818C806E00070BB5F /* gldraw.cpp in Sources */,
9C7A3AE618C806E00070BB5F /* zip_source_free.c in Sources */,
9C7A3AF118C806E00070BB5F /* adler32.c in Sources */,

View File

@ -62,7 +62,8 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<BuildableProductRunnable>
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "87078A8218A47FE90034C7A0"
@ -80,7 +81,8 @@
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<BuildableProductRunnable>
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "87078A8218A47FE90034C7A0"