2 // app.cpp - Qt-based GUI for Virtual Jaguar
5 // (C) 2010 Underground Software
7 // JLH = James Hammons <jlhamm@acm.org>
10 // --- ---------- -------------------------------------------------------------
11 // JLH 12/23/2009 Created this file
12 // JLH 01/21/2011 Added SDL initialization
13 // JLH 06/26/2011 Added fix to keep SDL from hijacking main() on win32
19 #include <QApplication>
26 // Apparently on win32, SDL is hijacking main from Qt. So let's do this:
31 // This is stuff we pass into the mainWindow...
32 bool noUntunedTankPlease = false;
33 bool loadAndGo = false;
36 // Here's the main application loop--short and simple...
37 int main(int argc, char * argv[])
39 // Normally, this would be read in from the settings module... :-P
40 vjs.hardwareTypeAlpine = false;
41 // This is stuff we pass into the mainWindow...
42 // noUntunedTankPlease = false;
46 if ((strcmp(argv[1], "--help") == 0) || (strcmp(argv[1], "-h") == 0)
47 || (strcmp(argv[1], "-?") == 0))
49 printf("Virtual Jaguar 2.0.0 help\n");
51 printf("Command line interface is mostly non-functional ATM, but may return if\n"
52 "there is enough demand for it. :-)\n");
56 if (strcmp(argv[1], "--yarrr") == 0)
59 printf("Shiver me timbers!\n");
64 if ((strcmp(argv[1], "--alpine") == 0) || (strcmp(argv[1], "-a") == 0))
66 printf("Alpine Mode enabled.\n");
67 vjs.hardwareTypeAlpine = true;
70 if (strcmp(argv[1], "--please-dont-kill-my-computer") == 0)
72 noUntunedTankPlease = true;
76 if (argv[1][0] != '-')
83 Q_INIT_RESOURCE(virtualjaguar); // This must the same name as the exe filename
84 //or is it the .qrc filename???
85 // This is so we can pass this stuff using signal/slot mechanism...
86 //ick int id = qRegisterMetaType<uint32>();
88 bool success = (bool)LogInit("virtualjaguar.log"); // Init logfile
89 int retVal = -1; // Default is failure
92 printf("Failed to open virtualjaguar.log for writing!\n");
95 if (SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_AUDIO) < 0)
97 WriteLog("VJ: Could not initialize the SDL library: %s\n", SDL_GetError());
101 WriteLog("VJ: SDL (joystick, audio) successfully initialized.\n");
102 App app(argc, argv); // Declare an instance of the application
103 retVal = app.exec(); // And run it!
105 // Free SDL components last...!
106 SDL_QuitSubSystem(SDL_INIT_JOYSTICK | SDL_INIT_AUDIO);
110 LogDone(); // Close logfile
114 // Main app constructor--we stick globally accessible stuff here...
116 App::App(int argc, char * argv[]): QApplication(argc, argv)
118 mainWindow = new MainWin(filename);
119 mainWindow->plzDontKillMyComputer = noUntunedTankPlease;