VirtualBox

Ignore:
Timestamp:
Jan 30, 2007 10:04:05 PM (18 years ago)
Author:
vboxsync
Message:

New argument: -warpdrive <2..20000>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp

    r435 r445  
    556556             "  -[no]csam                Enable or disable CSAM\n"
    557557             "  -[no]hwvirtex            Permit or deny the usage of VMX/SVN\n"
     558             "  -warpdrive <1..20000>    The virtual time rate as percent, with 100 as the normal rate.\n"
    558559#endif
    559560             "\n");
     
    705706    unsigned fCSAM  = ~0U;
    706707    TriStateBool_T fHWVirt = TriStateBool_Default;
     708    uint32_t u32WarpDrive = 0;
    707709#endif
    708710#ifdef VBOX_WIN32_UI
     
    11331135        else if (strcmp(argv[curArg], "-nohwvirtex") == 0)
    11341136            fHWVirt = TriStateBool_False;
     1137        else if (strcmp(argv[curArg], "-warpdrive") == 0)
     1138        {
     1139            if (++curArg >= argc)
     1140            {
     1141                RTPrintf("Error: missing the rate value for the -warpdrive option!\n");
     1142                rc = E_FAIL;
     1143                break;
     1144            }
     1145            u32WarpDrive = RTStrToUInt32(argv[curArg]);
     1146            if (u32WarpDrive < 2 || u32WarpDrive > 20000)
     1147            {
     1148                RTPrintf("Error: the warp drive rate is restricted to [2..20000]. (%d)\n", u32WarpDrive);
     1149                rc = E_FAIL;
     1150                break;
     1151            }
     1152        }
    11351153#endif /* VBOXSDL_ADVANCED_OPTIONS */
    11361154#ifdef VBOX_WIN32_UI
     
    17671785    {
    17681786        gMachine->COMSETTER(HWVirtExEnabled)(fHWVirt);
     1787    }
     1788    if (u32WarpDrive != 0)
     1789    {
     1790        if (!gMachineDebugger)
     1791        {
     1792            RTPrintf("Error: No debugger object; -warpdrive %d cannot be executed!\n", u32WarpDrive);
     1793            goto leave;
     1794        }
     1795        gMachineDebugger->COMSETTER(VirtualTimeRate)(u32WarpDrive);
    17691796    }
    17701797#endif /* VBOXSDL_ADVANCED_OPTIONS */
     
    30903117static void UpdateTitlebar(TitlebarMode mode, uint32_t u32User)
    30913118{
    3092     static char pszTitle[1024] = {0};
     3119    static char szTitle[1024] = {0};
    30933120
    30943121    /* back up current title */
    3095     char pszPrevTitle[1024];
    3096     strcpy(pszPrevTitle, pszTitle);
    3097 
    3098 
    3099     strcpy(pszTitle, "InnoTek VirtualBox - ");
     3122    char szPrevTitle[1024];
     3123    strcpy(szPrevTitle, szTitle);
     3124
     3125
     3126    strcpy(szTitle, "InnoTek VirtualBox - ");
    31003127
    31013128    Bstr name;
    31023129    gMachine->COMGETTER(Name)(name.asOutParam());
    31033130    if (name)
    3104         strcat(pszTitle, Utf8Str(name).raw());
     3131        strcat(szTitle, Utf8Str(name).raw());
    31053132    else
    3106         strcat(pszTitle, "<noname>");
     3133        strcat(szTitle, "<noname>");
    31073134
    31083135
     
    31153142            gMachine->COMGETTER(State)(&machineState);
    31163143            if (machineState == MachineState_Paused)
    3117                 strcat(pszTitle, " - [Paused]");
     3144                strcat(szTitle, " - [Paused]");
    31183145
    31193146            if (gfGrabbed)
    3120                 strcat(pszTitle, " - [Input captured]");
     3147                strcat(szTitle, " - [Input captured]");
    31213148
    31223149            // do we have a debugger interface
     
    31323159                BOOL logEnabled = FALSE;
    31333160                BOOL hwVirtEnabled = FALSE;
     3161                ULONG virtualTimeRate = 100;
    31343162                gMachineDebugger->COMGETTER(RecompileSupervisor)(&recompileSupervisor);
    31353163                gMachineDebugger->COMGETTER(RecompileUser)(&recompileUser);
     
    31393167                gMachineDebugger->COMGETTER(Singlestep)(&singlestepEnabled);
    31403168                gMachineDebugger->COMGETTER(HWVirtExEnabled)(&hwVirtEnabled);
    3141                 RTStrPrintf(pszTitle + strlen(pszTitle), sizeof(pszTitle) - strlen(pszTitle),
    3142                             " [STEP=%d CS=%d PAT=%d RR0=%d RR3=%d LOG=%d HWVirt=%d]",
     3169                gMachineDebugger->COMGETTER(VirtualTimeRate)(&virtualTimeRate);
     3170                RTStrPrintf(szTitle + strlen(szTitle), sizeof(szTitle) - strlen(szTitle),
     3171                            " [STEP=%d CS=%d PAT=%d RR0=%d RR3=%d LOG=%d HWVirt=%d",
    31433172                            singlestepEnabled == TRUE, csamEnabled == TRUE, patmEnabled == TRUE,
    31443173                            recompileSupervisor == FALSE, recompileUser == FALSE,
    31453174                            logEnabled == TRUE, hwVirtEnabled == TRUE);
     3175                char *psz = strchr(szTitle, '\0');
     3176                if (virtualTimeRate != 100)
     3177                    RTStrPrintf(psz, &szTitle[sizeof(szTitle)] - psz, " WD=%d%%]", virtualTimeRate);
     3178                else
     3179                    RTStrPrintf(psz, &szTitle[sizeof(szTitle)] - psz, "]");
    31463180#else
    31473181                BOOL hwVirtEnabled = FALSE;
    31483182                gMachineDebugger->COMGETTER(HWVirtExEnabled)(&hwVirtEnabled);
    3149                 RTStrPrintf(pszTitle + strlen(pszTitle), sizeof(pszTitle) - strlen(pszTitle),
     3183                RTStrPrintf(szTitle + strlen(szTitle), sizeof(szTitle) - strlen(szTitle),
    31503184                            "%s", hwVirtEnabled ? " (HWVirtEx)" : "");
    31513185#endif /* DEBUG */
     
    31623196            gMachine->COMGETTER(State)(&machineState);
    31633197            if (machineState == MachineState_Starting)
    3164                 strcat(pszTitle, " - Starting...");
     3198                strcat(szTitle, " - Starting...");
    31653199            else if (machineState == MachineState_Restoring)
    31663200            {
     
    31683202                HRESULT rc = gProgress->COMGETTER(Percent)(&cPercentNow);
    31693203                if (SUCCEEDED(rc))
    3170                     RTStrPrintf(pszTitle + strlen(pszTitle), sizeof(pszTitle) - strlen(pszTitle),
     3204                    RTStrPrintf(szTitle + strlen(szTitle), sizeof(szTitle) - strlen(szTitle),
    31713205                                " - Restoring %d%%...", (int)cPercentNow);
    31723206                else
    3173                     RTStrPrintf(pszTitle + strlen(pszTitle), sizeof(pszTitle) - strlen(pszTitle),
     3207                    RTStrPrintf(szTitle + strlen(szTitle), sizeof(szTitle) - strlen(szTitle),
    31743208                                " - Restoring...");
    31753209            }
     
    31813215        {
    31823216            AssertMsg(u32User >= 0 && u32User <= 100, ("%d\n", u32User));
    3183             RTStrPrintf(pszTitle + strlen(pszTitle), sizeof(pszTitle) - strlen(pszTitle),
     3217            RTStrPrintf(szTitle + strlen(szTitle), sizeof(szTitle) - strlen(szTitle),
    31843218                        " - Saving %d%%...", u32User);
    31853219            break;
     
    31893223        {
    31903224            AssertMsg(u32User >= 0 && u32User <= 100, ("%d\n", u32User));
    3191             RTStrPrintf(pszTitle + strlen(pszTitle), sizeof(pszTitle) - strlen(pszTitle),
     3225            RTStrPrintf(szTitle + strlen(szTitle), sizeof(szTitle) - strlen(szTitle),
    31923226                        " - Taking snapshot %d%%...", u32User);
    31933227            break;
     
    32023236     * Don't update if it didn't change.
    32033237     */
    3204     if (strcmp(pszTitle, pszPrevTitle) == 0)
     3238    if (strcmp(szTitle, szPrevTitle) == 0)
    32053239        return;
    32063240
     
    32093243     */
    32103244#ifdef VBOX_WIN32_UI
    3211     setUITitle(pszTitle);
     3245    setUITitle(szTitle);
    32123246#else
    3213     SDL_WM_SetCaption(pszTitle, "InnoTek VirtualBox");
     3247    SDL_WM_SetCaption(szTitle, "InnoTek VirtualBox");
    32143248#endif
    32153249}
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette