mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 13:20:30 +00:00
(iOS) More cleanup and fixes
This commit is contained in:
parent
9cb5513e59
commit
20cb48818c
@ -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();
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user