VirtualBox

Changeset 26971 in vbox


Ignore:
Timestamp:
Mar 2, 2010 8:45:15 PM (15 years ago)
Author:
vboxsync
Message:

VBoxManage: enable USB support if USB keyboard/mouse is added to a VM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp

    r26936 r26971  
    12201220            case MODIFYVM_HIDPTR:
    12211221            {
     1222                bool fEnableUsb = false;
    12221223                if (!strcmp(ValueUnion.psz, "ps2"))
    12231224                {
     
    12271228                {
    12281229                    CHECK_ERROR(machine, COMSETTER(PointingHidType)(PointingHidType_USBMouse));
     1230                    if (SUCCEEDED(rc))
     1231                        fEnableUsb = true;
    12291232                }
    12301233                else if (!strcmp(ValueUnion.psz, "usbtablet"))
    12311234                {
    12321235                    CHECK_ERROR(machine, COMSETTER(PointingHidType)(PointingHidType_USBTablet));
     1236                    if (SUCCEEDED(rc))
     1237                        fEnableUsb = true;
    12331238                }
    12341239                else
     
    12371242                    rc = E_FAIL;
    12381243                }
     1244                if (fEnableUsb)
     1245                {
     1246                    /* Make sure the OHCI controller is enabled. */
     1247                    ComPtr<IUSBController> UsbCtl;
     1248                    rc = machine->COMGETTER(USBController)(UsbCtl.asOutParam());
     1249                    if (SUCCEEDED(rc))
     1250                    {
     1251                        BOOL fEnabled;
     1252                        rc = UsbCtl->COMGETTER(Enabled)(&fEnabled);
     1253                        if (FAILED(rc))
     1254                            fEnabled = false;
     1255                        if (!fEnabled)
     1256                            CHECK_ERROR(UsbCtl, COMSETTER(Enabled)(true));
     1257                    }
     1258                }
    12391259                break;
    12401260            }
     
    12421262            case MODIFYVM_HIDKBD:
    12431263            {
     1264                bool fEnableUsb = false;
    12441265                if (!strcmp(ValueUnion.psz, "ps2"))
    12451266                {
     
    12491270                {
    12501271                    CHECK_ERROR(machine, COMSETTER(KeyboardHidType)(KeyboardHidType_USBKeyboard));
     1272                    if (SUCCEEDED(rc))
     1273                        fEnableUsb = true;
    12511274                }
    12521275                else
     
    12541277                    errorArgument("Invalid type '%s' specfied for keyboard", ValueUnion.psz);
    12551278                    rc = E_FAIL;
     1279                }
     1280                if (fEnableUsb)
     1281                {
     1282                    /* Make sure the OHCI controller is enabled. */
     1283                    ComPtr<IUSBController> UsbCtl;
     1284                    rc = machine->COMGETTER(USBController)(UsbCtl.asOutParam());
     1285                    if (SUCCEEDED(rc))
     1286                    {
     1287                        BOOL fEnabled;
     1288                        rc = UsbCtl->COMGETTER(Enabled)(&fEnabled);
     1289                        if (FAILED(rc))
     1290                            fEnabled = false;
     1291                        if (!fEnabled)
     1292                            CHECK_ERROR(UsbCtl, COMSETTER(Enabled)(true));
     1293                    }
    12561294                }
    12571295                break;
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