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:
Laci bá
2021-08-26 20:30:37 +02:00
parent ecc54b1717
commit 13ff9af7e1
3 changed files with 25 additions and 5 deletions

View File

@@ -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.