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

View File

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

View File

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

View File

@ -33,5 +33,6 @@
@end @end
// utility.m // 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 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 // 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); 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 #endif

View File

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

View File

@ -13,9 +13,20 @@
* If not, see <http://www.gnu.org/licenses/>. * If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <sys/stat.h>
#include "general.h"
#include "file.h" #include "file.h"
#import "views.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 // 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) NSString* ios_get_value_from_config(config_file_t* config, NSString* name, NSString* defaultValue)
{ {