int enable_spice = 0;
+#if defined(CONFIG_SDL) || defined(CONFIG_USE_SHM)
int _skin_argc;
char **_skin_argv;
+#endif
int _qemu_argc;
char **_qemu_argv;
for (i = 0; i < _qemu_argc; ++i) {
g_free(_qemu_argv[i]);
}
+#if defined(CONFIG_SDL) || defined(CONFIG_USE_SHM)
for (i = 0; i < _skin_argc; ++i) {
g_free(_skin_argv[i]);
}
+#endif
reset_variables();
LOG_INFO("Exit emulator...\n");
}
fprintf(stdout, "\n====================================================\n");
+#if defined(CONFIG_SDL) || defined(CONFIG_USE_SHM)
fprintf(stdout, "skin args: =========================================\n");
for (i = 0; i < _skin_argc; ++i) {
fprintf(stdout, "%s ", _skin_argv[i]);
}
fprintf(stdout, "\n====================================================\n");
+#endif
fflush(stdout);
}
int c = 0;
_qemu_argv = g_malloc(sizeof(char*) * ARGS_LIMIT);
+#if defined(CONFIG_SDL) || defined(CONFIG_USE_SHM)
_skin_argv = g_malloc(sizeof(char*) * ARGS_LIMIT);
+#endif
// parse arguments
// prevent the error message for undefined options
}
// assemble arguments for qemu and skin
+#ifdef SUPPORT_SKIN_OPTIONS
if (!assemble_emulator_args(&_qemu_argc, _qemu_argv,
&_skin_argc, _skin_argv)) {
return -1;
}
+#else
+ if (!assemble_emulator_args(&_qemu_argc, _qemu_argv)) {
+ return -1;
+ }
+ #if defined(CONFIG_SDL) || defined(CONFIG_USE_SHM)
+ // java skin is deprecated, it is used for only debugging...
+ _skin_argv[_skin_argc++] =
+ g_strdup_printf("skin.path=%s", get_emul_skin_path());
+ _skin_argv[_skin_argc++] =
+ g_strdup_printf("resolution=%s", get_variable("resolution"));
+ _skin_argv[_skin_argc++] =
+ g_strdup_printf("vm.path=%s/%s",
+ get_variable("vms_path"), get_variable("vm_name"));
+ #endif
+#endif
LOG_INFO("Start emulator...\n");
#else // WIN32
int main(int argc, char *argv[])
{
-#ifndef CONFIG_DARWIN
+ #ifndef CONFIG_DARWIN
maru_register_exception_handler();
-#endif
+ #endif
return emulator_main(argc, argv, NULL);
}
#endif
};
static struct emulator_opts default_qemu_opts;
+#ifdef SUPPORT_SKIN_OPTIONS
static struct emulator_opts default_skin_opts;
+#endif
void set_variable(const char * const arg1, const char * const arg2,
bool override)
for (i = 0; i < default_qemu_opts.num; ++i) {
g_free(default_qemu_opts.options[i]);
}
+#ifdef SUPPORT_SKIN_OPTIONS
for (i = 0; i < default_skin_opts.num; ++i) {
g_free(default_skin_opts.options[i]);
}
+#endif
}
static char *substitute_variables(char *src, bool recursive)
classification = 0;
continue;
}
- else if (!g_strcmp0(token, "[[SKIN_OPTIONS]]")) {
- default_opts = &default_skin_opts;
+ else if (!g_strcmp0(token, "[[QEMU_OPTIONS]]")) {
+ default_opts = &default_qemu_opts;
classification = 1;
continue;
}
- else if (!g_strcmp0(token, "[[QEMU_OPTIONS]]")) {
- default_opts = &default_qemu_opts;
+#ifdef SUPPORT_SKIN_OPTIONS
+ else if (!g_strcmp0(token, "[[SKIN_OPTIONS]]")) {
+ default_opts = &default_skin_opts;
classification = 2;
continue;
}
+#endif
// process line
switch (classification) {
break;
}
- case 1: // skin options
- case 2: // qemu options
+ case 1: // qemu options
+#ifdef SUPPORT_SKIN_OPTIONS
+ case 2: // skin options
+#endif
default_opts->options[default_opts->num++] = g_strdup(token);
break;
return true;
}
+#ifdef SUPPORT_SKIN_OPTIONS
bool assemble_emulator_args(int *qemu_argc, char **qemu_argv,
int *skin_argc, char **skin_argv)
{
reset_default_opts();
return true;
}
+#else
+bool assemble_emulator_args(int *qemu_argc, char **qemu_argv)
+{
+ if (!assemble_args(qemu_argc, qemu_argv,
+ &default_qemu_opts)) {
+ reset_default_opts();
+ return false;
+ }
+
+ reset_default_opts();
+ return true;
+}
+#endif
#include "emulator_common.h"
+// "SKIN_OPTIONS" field is deprecated
+// but it still can be used
+#define SUPPORT_SKIN_OPTIONS
+
#define KEYWORD_BIN_PATH "_BIN_PATH_"
void set_variable(const char * const arg1, const char * const arg2, bool override);
char *get_variable(const char * const name);
void reset_variables(void);
bool load_conf(const char * const conf);
+#ifdef SUPPORT_SKIN_OPTIONS
bool assemble_emulator_args(int *qemu_argc, char **qemu_argv,
int *skin_argc, char **skin_argv);
+#else
+bool assemble_emulator_args(int *qemu_argc, char **qemu_argv);
+#endif
#endif /* __EMULATOR_OPTIONS_H__ */