keep the ugliness confined in Platform.cpp
This commit is contained in:
parent
34506ff2bb
commit
9df8d91bdc
|
@ -24,6 +24,9 @@
|
||||||
namespace Platform
|
namespace Platform
|
||||||
{
|
{
|
||||||
|
|
||||||
|
void Init(int argc, char** argv);
|
||||||
|
void DeInit();
|
||||||
|
|
||||||
void StopEmu();
|
void StopEmu();
|
||||||
|
|
||||||
// fopen() wrappers
|
// fopen() wrappers
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
extern char* EmuDirectory;
|
char* EmuDirectory;
|
||||||
|
|
||||||
void Stop(bool internal);
|
void Stop(bool internal);
|
||||||
|
|
||||||
|
@ -84,6 +84,53 @@ u8 PacketBuffer[2048];
|
||||||
#define NIFI_VER 1
|
#define NIFI_VER 1
|
||||||
|
|
||||||
|
|
||||||
|
void Init(int argc, char** argv)
|
||||||
|
{
|
||||||
|
#if defined(__WIN32__) || defined(UNIX_PORTABLE)
|
||||||
|
if (argc > 0 && strlen(argv[0]) > 0)
|
||||||
|
{
|
||||||
|
int len = strlen(argv[0]);
|
||||||
|
while (len > 0)
|
||||||
|
{
|
||||||
|
if (argv[0][len] == '/') break;
|
||||||
|
if (argv[0][len] == '\\') break;
|
||||||
|
len--;
|
||||||
|
}
|
||||||
|
if (len > 0)
|
||||||
|
{
|
||||||
|
EmuDirectory = new char[len+1];
|
||||||
|
strncpy(EmuDirectory, argv[0], len);
|
||||||
|
EmuDirectory[len] = '\0';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
EmuDirectory = new char[2];
|
||||||
|
strcpy(EmuDirectory, ".");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
EmuDirectory = new char[2];
|
||||||
|
strcpy(EmuDirectory, ".");
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
const char* confdir = g_get_user_config_dir();
|
||||||
|
const char* confname = "/melonDS";
|
||||||
|
int cdlen = strlen(confdir);
|
||||||
|
int cnlen = strlen(confname);
|
||||||
|
EmuDirectory = new char[cdlen + cnlen + 1];
|
||||||
|
strncpy(&EmuDirectory[0], confdir, cdlen);
|
||||||
|
strncpy(&EmuDirectory[cdlen], confname, cnlen);
|
||||||
|
EmuDirectory[cdlen+cnlen] = '\0';
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void DeInit()
|
||||||
|
{
|
||||||
|
delete[] EmuDirectory;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void StopEmu()
|
void StopEmu()
|
||||||
{
|
{
|
||||||
//Stop(true);
|
//Stop(true);
|
||||||
|
|
|
@ -54,8 +54,6 @@
|
||||||
|
|
||||||
// TODO: uniform variable spelling
|
// TODO: uniform variable spelling
|
||||||
|
|
||||||
char* EmuDirectory;
|
|
||||||
|
|
||||||
bool RunningSomething;
|
bool RunningSomething;
|
||||||
|
|
||||||
MainWindow* mainWindow;
|
MainWindow* mainWindow;
|
||||||
|
@ -865,11 +863,6 @@ void MainWindow::onInputConfigFinished(int res)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// FIXME!!!!
|
|
||||||
#if (!defined(__WIN32__) && !defined(UNIX_PORTABLE))
|
|
||||||
#include <glib.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
srand(time(NULL));
|
srand(time(NULL));
|
||||||
|
@ -877,43 +870,7 @@ int main(int argc, char** argv)
|
||||||
printf("melonDS " MELONDS_VERSION "\n");
|
printf("melonDS " MELONDS_VERSION "\n");
|
||||||
printf(MELONDS_URL "\n");
|
printf(MELONDS_URL "\n");
|
||||||
|
|
||||||
#if defined(__WIN32__) || defined(UNIX_PORTABLE)
|
Platform::Init(argc, argv);
|
||||||
if (argc > 0 && strlen(argv[0]) > 0)
|
|
||||||
{
|
|
||||||
int len = strlen(argv[0]);
|
|
||||||
while (len > 0)
|
|
||||||
{
|
|
||||||
if (argv[0][len] == '/') break;
|
|
||||||
if (argv[0][len] == '\\') break;
|
|
||||||
len--;
|
|
||||||
}
|
|
||||||
if (len > 0)
|
|
||||||
{
|
|
||||||
EmuDirectory = new char[len+1];
|
|
||||||
strncpy(EmuDirectory, argv[0], len);
|
|
||||||
EmuDirectory[len] = '\0';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
EmuDirectory = new char[2];
|
|
||||||
strcpy(EmuDirectory, ".");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
EmuDirectory = new char[2];
|
|
||||||
strcpy(EmuDirectory, ".");
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
const char* confdir = g_get_user_config_dir();
|
|
||||||
const char* confname = "/melonDS";
|
|
||||||
int cdlen = strlen(confdir);
|
|
||||||
int cnlen = strlen(confname);
|
|
||||||
EmuDirectory = new char[cdlen + cnlen + 1];
|
|
||||||
strncpy(&EmuDirectory[0], confdir, cdlen);
|
|
||||||
strncpy(&EmuDirectory[cdlen], confname, cnlen);
|
|
||||||
EmuDirectory[cdlen+cnlen] = '\0';
|
|
||||||
#endif
|
|
||||||
|
|
||||||
QApplication melon(argc, argv);
|
QApplication melon(argc, argv);
|
||||||
|
|
||||||
|
@ -1060,7 +1017,7 @@ int main(int argc, char** argv)
|
||||||
Config::Save();
|
Config::Save();
|
||||||
|
|
||||||
SDL_Quit();
|
SDL_Quit();
|
||||||
delete[] EmuDirectory;
|
Platform::DeInit();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue