(iOS) More cleanup and fixes

This commit is contained in:
meancoot 2013-06-21 23:39:01 -04:00
parent 9cb5513e59
commit 20cb48818c
7 changed files with 79 additions and 89 deletions

View File

@ -92,10 +92,9 @@ void* rarch_main_ios(void* args)
#ifdef HAVE_RGUI
char* system_directory = ios_get_rarch_system_directory();
strlcpy(g_extern.savestate_dir, system_directory,
sizeof(g_extern.savestate_dir));
strlcpy(g_extern.savefile_dir, system_directory,
sizeof(g_extern.savefile_dir));
strlcpy(g_extern.savestate_dir, system_directory, sizeof(g_extern.savestate_dir));
strlcpy(g_extern.savefile_dir, system_directory, sizeof(g_extern.savefile_dir));
free(system_directory);
menu_init();
g_extern.lifecycle_mode_state |= 1ULL << MODE_GAME;
@ -168,8 +167,6 @@ void* rarch_main_ios(void* args)
if (g_extern.main_is_init)
rarch_main_deinit();
free(system_directory);
#else
while ((g_extern.is_paused && !g_extern.is_oneshot) ? rarch_main_idle_iterate() : rarch_main_iterate());
rarch_main_deinit();

View File

@ -41,8 +41,11 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{160, 237}, {120, 44}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">4</int>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
@ -75,6 +78,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 20}, {120, 44}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="344367644"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -97,6 +101,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{160, 20}, {120, 44}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1033465661"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -119,9 +124,11 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 237}, {120, 44}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="61755535"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">1</int>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
@ -141,9 +148,11 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 186}, {120, 44}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="58186559"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">3</int>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
@ -163,9 +172,11 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{160, 186}, {120, 44}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="721040644"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">2</int>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
@ -185,14 +196,16 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 135}, {260, 44}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="694263183"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">1</int>
<int key="IBUITag">10</int>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBNumberOfSegments">10</int>
<int key="IBSelectedSegmentIndex">0</int>
<array key="IBSegmentTitles">
<string>0</string>
<string>1</string>
<string>2</string>
<string>3</string>
@ -202,7 +215,6 @@
<string>7</string>
<string>8</string>
<string>9</string>
<string>10</string>
</array>
<array class="NSMutableArray" key="IBSegmentWidths">
<real value="0.0"/>
@ -258,6 +270,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 71}, {120, 44}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="374409903"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -280,6 +293,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{160, 71}, {120, 44}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="562513162"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -300,6 +314,7 @@
</array>
<string key="NSFrame">{{0, 20}, {300, 300}}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="38801877"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -324,12 +339,12 @@
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">closeGamePressed:</string>
<string key="label">basicEvent:</string>
<reference key="source" ref="61755535"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">23</int>
<int key="connectionID">215</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
@ -342,30 +357,30 @@
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">resetGame:</string>
<string key="label">basicEvent:</string>
<reference key="source" ref="721040644"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">138</int>
<int key="connectionID">214</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">saveState:</string>
<string key="label">basicEvent:</string>
<reference key="source" ref="694263183"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">137</int>
<int key="connectionID">212</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">loadState:</string>
<string key="label">basicEvent:</string>
<reference key="source" ref="58186559"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">136</int>
<int key="connectionID">213</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
@ -418,13 +433,13 @@
<array class="NSMutableArray" key="children">
<reference ref="694263183"/>
<reference ref="38801877"/>
<reference ref="721040644"/>
<reference ref="58186559"/>
<reference ref="562513162"/>
<reference ref="61755535"/>
<reference ref="374409903"/>
<reference ref="1033465661"/>
<reference ref="344367644"/>
<reference ref="721040644"/>
</array>
<reference key="parent" ref="0"/>
</object>
@ -515,9 +530,20 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">210</int>
<int key="maxID">215</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">RetroArch_iOS</string>
<string key="superclassName">UINavigationController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/RetroArch_iOS.h</string>
</object>
</object>
</array>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>

View File

@ -81,21 +81,21 @@ static UIView* g_pause_indicator_view;
- (void)openPauseMenu
{
// Setup save state selector
UISegmentedControl* stateSelect = (UISegmentedControl*)[g_pause_view viewWithTag:1];
UISegmentedControl* stateSelect = (UISegmentedControl*)[g_pause_view viewWithTag:10];
stateSelect.selectedSegmentIndex = (g_extern.state_slot < 10) ? g_extern.state_slot : -1;
g_extern.is_paused = true;
//
[UIView animateWithDuration:0.2
animations:^ { g_pause_view.alpha = 1.0f; }
completion:^(BOOL finished){}];
animations:^{ g_pause_view.alpha = 1.0f; }
completion:^(BOOL finished) { }];
}
- (void)closePauseMenu
{
[UIView animateWithDuration:0.2
animations:^ { g_pause_view.alpha = 0.0f; }
animations:^{ g_pause_view.alpha = 0.0f; }
completion:^(BOOL finished) { }
];
@ -105,9 +105,9 @@ static UIView* g_pause_indicator_view;
- (void)hidePauseButton
{
[UIView animateWithDuration:0.2
animations:^ { g_pause_indicator_view.alpha = ALMOST_INVISIBLE; }
completion:^(BOOL finished) { }
];
animations:^{ g_pause_indicator_view.alpha = ALMOST_INVISIBLE; }
completion:^(BOOL finished) { }
];
}
- (void)suspend

View File

@ -33,5 +33,6 @@
@end
// utility.m
extern NSString* ios_get_value_from_config(config_file_t* config, NSString* name, NSString* defaultValue);
extern void ios_clear_config_hack();
extern bool path_make_and_check_directory(const char* path, mode_t mode, int amode);
extern NSString* ios_get_value_from_config(config_file_t* config, NSString* name, NSString* defaultValue);

View File

@ -44,7 +44,4 @@ extern ios_input_data_t g_ios_input_data;
// Defined in main.m, must be called on the emu thread in a dispatch_sync block
void ios_copy_input(ios_input_data_t* data);
// Called from main.m, defined in ios_input.c
void ios_add_key_event(bool down, unsigned keycode, uint32_t character, uint16_t keyModifiers);
#endif

View File

@ -154,19 +154,18 @@ int main(int argc, char *argv[])
extern void* rarch_main_ios(void* args);
extern void ios_frontend_post_event(void (*fn)(void*), void* userdata);
static void event_game_reset(void* userdata)
{
rarch_game_reset();
}
static void event_load_state(void* userdata)
// These are based on the tag property of the button used to trigger the event
enum basic_event_t { RESET = 1, LOAD_STATE = 2, SAVE_STATE = 3, QUIT = 4 };
static void event_basic_command(void* userdata)
{
rarch_load_state();
}
static void event_save_state(void* userdata)
{
rarch_save_state();
switch ((enum basic_event_t)userdata)
{
case RESET: rarch_game_reset(); return;
case LOAD_STATE: rarch_load_state(); return;
case SAVE_STATE: rarch_save_state(); return;
case QUIT: g_extern.system.shutdown = true; return;
}
}
static void event_set_state_slot(void* userdata)
@ -176,31 +175,16 @@ static void event_set_state_slot(void* userdata)
static void event_show_rgui(void* userdata)
{
if (g_extern.lifecycle_mode_state & (1ULL << MODE_MENU))
{
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_MENU);
g_extern.lifecycle_mode_state |= (1ULL << MODE_GAME);
}
else
{
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_GAME);
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU);
}
}
static void event_quit(void* userdata)
{
g_extern.system.shutdown = true;
const bool in_menu = g_extern.lifecycle_mode_state & (1 << MODE_MENU);
g_extern.lifecycle_mode_state &= ~(1ULL << (in_menu ? MODE_MENU : MODE_GAME));
g_extern.lifecycle_mode_state |= (1ULL << (in_menu ? MODE_GAME : MODE_MENU));
}
static void event_reload_config(void* userdata)
{
// Need to clear these otherwise stale versions may be used!
memset(g_settings.input.overlay, 0, sizeof(g_settings.input.overlay));
memset(g_settings.video.shader_path, 0, sizeof(g_settings.video.shader_path));
ios_clear_config_hack();
uninit_drivers();
g_extern.block_config_read = false;
config_load();
init_drivers();
}
@ -398,11 +382,7 @@ static void event_reload_config(void* userdata)
if (_isRunning)
ios_frontend_post_event(&event_reload_config, 0);
else
{
// Need to clear these otherwise stale versions may be used!
memset(g_settings.input.overlay, 0, sizeof(g_settings.input.overlay));
memset(g_settings.video.shader_path, 0, sizeof(g_settings.video.shader_path));
}
ios_clear_config_hack();
}
- (void)refreshSystemConfig
@ -467,30 +447,14 @@ static void event_reload_config(void* userdata)
}
}
- (IBAction)resetGame:(id)sender
- (IBAction)basicEvent:(id)sender
{
if (_isRunning)
ios_frontend_post_event(&event_game_reset, 0);
ios_frontend_post_event(&event_basic_command, ((UIView*)sender).tag);
[self closePauseMenu:sender];
}
- (IBAction)loadState:(id)sender
{
if (_isRunning)
ios_frontend_post_event(&event_load_state, 0);
[self closePauseMenu:sender];
}
- (IBAction)saveState:(id)sender
{
if (_isRunning)
ios_frontend_post_event(&event_save_state, 0);
[self closePauseMenu:sender];
}
- (IBAction)chooseState:(id)sender
{
if (_isRunning)
@ -513,12 +477,6 @@ static void event_reload_config(void* userdata)
btpad_set_inquiry_state(false);
}
- (IBAction)closeGamePressed:(id)sender
{
[self closePauseMenu:sender];
ios_frontend_post_event(event_quit, 0);
}
- (IBAction)showSettings
{
if (_module)

View File

@ -13,9 +13,20 @@
* If not, see <http://www.gnu.org/licenses/>.
*/
#include <sys/stat.h>
#include "general.h"
#include "file.h"
#import "views.h"
// Little nudge to prevent stale values when reloading the confg file
void ios_clear_config_hack()
{
g_extern.block_config_read = false;
memset(g_settings.input.overlay, 0, sizeof(g_settings.input.overlay));
memset(g_settings.video.shader_path, 0, sizeof(g_settings.video.shader_path));
}
// Fetch a value from a config file, returning defaultValue if the value is not present
NSString* ios_get_value_from_config(config_file_t* config, NSString* name, NSString* defaultValue)
{