mirror of
https://github.com/Oibaf66/uae-wii.git
synced 2025-02-18 03:26:19 +01:00
118 lines
1.9 KiB
C++
118 lines
1.9 KiB
C++
/*
|
|
* UAE - The Un*x Amiga Emulator
|
|
*
|
|
* Copyright 2004 Richard Drummond
|
|
*
|
|
* Start-up and support functions for BeOS target
|
|
*/
|
|
|
|
extern "C" {
|
|
#include "sysconfig.h"
|
|
#include "sysdeps.h"
|
|
|
|
#include "options.h"
|
|
#include "uae.h"
|
|
#include "xwin.h"
|
|
#include "debug.h"
|
|
|
|
#include "signal.h"
|
|
|
|
#ifdef USE_SDL
|
|
# include <SDL.h>
|
|
#endif
|
|
}
|
|
|
|
#ifndef USE_SDL
|
|
# include "gfxdep/be-UAE.h"
|
|
#endif
|
|
|
|
|
|
#ifndef USE_SDL
|
|
int argcCopy;
|
|
char **argvCopy;
|
|
|
|
void freeCopiedArgs();
|
|
void copyArgs(int argc,char **argv);
|
|
|
|
void freeCopiedArgs()
|
|
{
|
|
for(int i = 0;i < argcCopy;i++)
|
|
free(argvCopy[i]);
|
|
|
|
delete[] argvCopy;
|
|
}
|
|
|
|
void copyArgs (int argc,char **argv)
|
|
{
|
|
argcCopy = argc;
|
|
argvCopy = new char *[argcCopy+1];
|
|
|
|
for(int i = 0;i < argc;i++)
|
|
argvCopy[i] = strdup(argv[i]);
|
|
|
|
argvCopy[argc] = NULL;
|
|
}
|
|
#endif
|
|
|
|
/*
|
|
* BeOS-specific main entry
|
|
*/
|
|
int main (int argc, char *argv[])
|
|
{
|
|
#ifndef USE_SDL
|
|
/*
|
|
* If we're not using SDL for anything, we would initialize our
|
|
* application object here. On the other hand, if you are using SDL,
|
|
* we can't because SDL creates its own application object.
|
|
*/
|
|
// Copy command line arguments
|
|
copyArgs(argc,argv);
|
|
|
|
UAE uae;
|
|
uae.Run();
|
|
|
|
freeCopiedArgs();
|
|
|
|
// restore original workspace resolution (if it has changed)
|
|
restoreWorkspaceResolution();
|
|
#else
|
|
real_main(argc, argv);
|
|
#endif
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* Handle CTRL-C signals
|
|
*/
|
|
static void sigbrkhandler (int foo)
|
|
{
|
|
#ifdef DEBUGGER
|
|
activate_debugger ();
|
|
#endif
|
|
}
|
|
|
|
void setup_brkhandler (void)
|
|
{
|
|
struct sigaction sa;
|
|
sa.sa_handler = sigbrkhandler;
|
|
sa.sa_flags = 0;
|
|
sigemptyset (&sa.sa_mask);
|
|
sigaction (SIGINT, &sa, NULL);
|
|
}
|
|
|
|
/*
|
|
* Handle target-specific cfgfile options
|
|
*/
|
|
void target_save_options (FILE *f, const struct uae_prefs *p)
|
|
{
|
|
}
|
|
|
|
int target_parse_option (struct uae_prefs *p, const char *option, const char *value)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
void target_default_options (struct uae_prefs *p)
|
|
{
|
|
}
|