Add support for overridable VM name
- A global variable added as vm_name - This variable can be filled with the `--vmname "Name"` or `-V "Name"` parameter. - If there are no such a parameter definied this variable will filled up with the directory name. - The Discord module displays this global variable, as VM name. - Various 86Box managers can use this feature to display fancy VM names, instead of GUID folder names. - This variable can be easily used later for adding cool things, like the VM name in title bar, etc.
This commit is contained in:
21
src/86box.c
21
src/86box.c
@@ -110,6 +110,7 @@ uint64_t unique_id = 0;
|
||||
uint64_t source_hwnd = 0;
|
||||
#endif
|
||||
char log_path[1024] = { '\0'}; /* (O) full path of logfile */
|
||||
char vm_name[1024] = { '\0'}; /* (O) display name of the VM */
|
||||
|
||||
/* Configuration values. */
|
||||
int window_w; /* (C) window size and */
|
||||
@@ -417,6 +418,7 @@ usage:
|
||||
printf("-F or --fullscreen - start in fullscreen mode\n");
|
||||
printf("-L or --logfile path - set 'path' to be the logfile\n");
|
||||
printf("-P or --vmpath path - set 'path' to be root for vm\n");
|
||||
printf("-V or --vmname name - overrides the name of the running VM.\n");
|
||||
printf("-S or --settings - show only the settings dialog\n");
|
||||
printf("-N or --noconfirm - do not ask for confirmation on quit\n");
|
||||
#ifdef _WIN32
|
||||
@@ -446,6 +448,11 @@ usage:
|
||||
if ((c+1) == argc) goto usage;
|
||||
|
||||
strcpy(path, argv[++c]);
|
||||
} else if (!strcasecmp(argv[c], "--vmname") ||
|
||||
!strcasecmp(argv[c], "-V")) {
|
||||
if ((c+1) == argc) goto usage;
|
||||
|
||||
strcpy(vm_name, argv[++c]);
|
||||
} else if (!strcasecmp(argv[c], "--settings") ||
|
||||
!strcasecmp(argv[c], "-S")) {
|
||||
settings_only = 1;
|
||||
@@ -551,6 +558,20 @@ usage:
|
||||
/* At this point, we can safely create the full path name. */
|
||||
plat_append_filename(cfg_path, usr_path, p);
|
||||
|
||||
/*
|
||||
* Get the current directory's name
|
||||
*
|
||||
* At this point usr_path is perfectly initialized.
|
||||
* If no --vmname parameter specified we'll use the
|
||||
* working directory name as the VM's name.
|
||||
*/
|
||||
if (strlen(vm_name) == 0)
|
||||
{
|
||||
plat_get_dirname(vm_name, usr_path);
|
||||
p = plat_get_filename(vm_name);
|
||||
strcpy(vm_name, p);
|
||||
}
|
||||
|
||||
/*
|
||||
* This is where we start outputting to the log file,
|
||||
* if there is one. Create a little info header first.
|
||||
|
||||
Reference in New Issue
Block a user