Changeset 56843 in vbox
- Timestamp:
- Jul 7, 2015 4:03:53 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 101498
- Location:
- trunk/src/VBox/Frontends
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp
r56831 r56843 851 851 " [--usbehci on|off]\n" 852 852 " [--usbxhci on|off]\n" 853 " [--usbrename <oldname> <newname>]\n" 853 854 " [--snapshotfolder default|<path>]\n" 854 855 " [--teleporter on|off]\n" -
trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp
r56834 r56843 163 163 MODIFYVM_VRDE, 164 164 MODIFYVM_RTCUSEUTC, 165 MODIFYVM_USBRENAME, 165 166 MODIFYVM_USBXHCI, 166 167 MODIFYVM_USBEHCI, … … 332 333 { "--vrdeextpack", MODIFYVM_VRDE_EXTPACK, RTGETOPT_REQ_STRING }, 333 334 { "--vrde", MODIFYVM_VRDE, RTGETOPT_REQ_BOOL_ONOFF }, 335 { "--usbrename", MODIFYVM_USBRENAME, RTGETOPT_REQ_STRING }, 334 336 { "--usbxhci", MODIFYVM_USBXHCI, RTGETOPT_REQ_BOOL_ONOFF }, 335 337 { "--usbehci", MODIFYVM_USBEHCI, RTGETOPT_REQ_BOOL_ONOFF }, … … 2525 2527 } 2526 2528 2529 case MODIFYVM_USBRENAME: 2530 { 2531 const char *pszName = ValueUnion.psz; 2532 int vrc = RTGetOptFetchValue(&GetOptState, &ValueUnion, RTGETOPT_REQ_STRING); 2533 if (RT_FAILURE(vrc)) 2534 return errorSyntax(USAGE_MODIFYVM, 2535 "Missing or Invalid argument to '%s'", 2536 GetOptState.pDef->pszLong); 2537 const char *pszNewName = ValueUnion.psz; 2538 2539 SafeIfaceArray<IUSBController> ctrls; 2540 CHECK_ERROR(sessionMachine, COMGETTER(USBControllers)(ComSafeArrayAsOutParam(ctrls))); 2541 bool fRenamed = false; 2542 for (size_t i = 0; i < ctrls.size(); i++) 2543 { 2544 ComPtr<IUSBController> pCtrl = ctrls[i]; 2545 Bstr bstrName; 2546 CHECK_ERROR(pCtrl, COMGETTER(Name)(bstrName.asOutParam())); 2547 if (bstrName == pszName) 2548 { 2549 bstrName = pszNewName; 2550 CHECK_ERROR(pCtrl, COMSETTER(Name)(bstrName.raw())); 2551 fRenamed = true; 2552 } 2553 } 2554 if (!fRenamed) 2555 { 2556 errorArgument("Invalid --usbrename parameters, nothing renamed"); 2557 rc = E_FAIL; 2558 } 2559 break; 2560 } 2561 2527 2562 case MODIFYVM_USBXHCI: 2528 2563 { … … 2534 2569 { 2535 2570 ComPtr<IUSBController> UsbCtl; 2536 CHECK_ERROR(sessionMachine, AddUSBController(Bstr(" XHCI").raw(), USBControllerType_XHCI,2571 CHECK_ERROR(sessionMachine, AddUSBController(Bstr("xHCI").raw(), USBControllerType_XHCI, 2537 2572 UsbCtl.asOutParam())); 2538 2573 } 2539 2574 else if (cXhciCtrls && !ValueUnion.f) 2540 CHECK_ERROR(sessionMachine, RemoveUSBController(Bstr("XHCI").raw())); 2575 { 2576 SafeIfaceArray<IUSBController> ctrls; 2577 CHECK_ERROR(sessionMachine, COMGETTER(USBControllers)(ComSafeArrayAsOutParam(ctrls))); 2578 for (size_t i = 0; i < ctrls.size(); i++) 2579 { 2580 ComPtr<IUSBController> pCtrl = ctrls[i]; 2581 USBControllerType_T enmType; 2582 CHECK_ERROR(pCtrl, COMGETTER(Type)(&enmType)); 2583 if (enmType == USBControllerType_XHCI) 2584 { 2585 Bstr ctrlName; 2586 CHECK_ERROR(pCtrl, COMGETTER(Name)(ctrlName.asOutParam())); 2587 CHECK_ERROR(sessionMachine, RemoveUSBController(ctrlName.raw())); 2588 } 2589 } 2590 } 2541 2591 } 2542 2592 break; … … 2556 2606 } 2557 2607 else if (cEhciCtrls && !ValueUnion.f) 2558 CHECK_ERROR(sessionMachine, RemoveUSBController(Bstr("EHCI").raw())); 2608 { 2609 SafeIfaceArray<IUSBController> ctrls; 2610 CHECK_ERROR(sessionMachine, COMGETTER(USBControllers)(ComSafeArrayAsOutParam(ctrls))); 2611 for (size_t i = 0; i < ctrls.size(); i++) 2612 { 2613 ComPtr<IUSBController> pCtrl = ctrls[i]; 2614 USBControllerType_T enmType; 2615 CHECK_ERROR(pCtrl, COMGETTER(Type)(&enmType)); 2616 if (enmType == USBControllerType_EHCI) 2617 { 2618 Bstr ctrlName; 2619 CHECK_ERROR(pCtrl, COMGETTER(Name)(ctrlName.asOutParam())); 2620 CHECK_ERROR(sessionMachine, RemoveUSBController(ctrlName.raw())); 2621 } 2622 } 2623 } 2559 2624 } 2560 2625 break; … … 2574 2639 } 2575 2640 else if (cOhciCtrls && !ValueUnion.f) 2576 CHECK_ERROR(sessionMachine, RemoveUSBController(Bstr("OHCI").raw())); 2641 { 2642 SafeIfaceArray<IUSBController> ctrls; 2643 CHECK_ERROR(sessionMachine, COMGETTER(USBControllers)(ComSafeArrayAsOutParam(ctrls))); 2644 for (size_t i = 0; i < ctrls.size(); i++) 2645 { 2646 ComPtr<IUSBController> pCtrl = ctrls[i]; 2647 USBControllerType_T enmType; 2648 CHECK_ERROR(pCtrl, COMGETTER(Type)(&enmType)); 2649 if (enmType == USBControllerType_OHCI) 2650 { 2651 Bstr ctrlName; 2652 CHECK_ERROR(pCtrl, COMGETTER(Name)(ctrlName.asOutParam())); 2653 CHECK_ERROR(sessionMachine, RemoveUSBController(ctrlName.raw())); 2654 } 2655 } 2656 } 2577 2657 } 2578 2658 break; -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp
r56158 r56843 5 5 6 6 /* 7 * Copyright (C) 2006-201 2Oracle Corporation7 * Copyright (C) 2006-2015 Oracle Corporation 8 8 * 9 9 * This file is part of VirtualBox Open Source Edition (OSE), as … … 400 400 if (!usbData.m_fUSBEnabled) 401 401 { 402 if (cXhciCtls) 403 m_machine.RemoveUSBController("XHCI"); 404 if (cEhciCtls) 405 m_machine.RemoveUSBController("EHCI"); 406 if (cOhciCtls) 407 m_machine.RemoveUSBController("OHCI"); 402 if (cXhciCtls | cEhciCtls | cOhciCtls) 403 { 404 CUSBControllerVector ctlvec = m_machine.GetUSBControllers(); 405 for (int i = 0; i < ctlvec.size(); ++i) 406 { 407 CUSBController ctl = ctlvec[i]; 408 QString strName = ctl.GetName(); 409 m_machine.RemoveUSBController(strName); 410 } 411 } 408 412 } 409 413 /* Creating/replacing USB controllers: */ … … 414 418 case KUSBControllerType_OHCI: 415 419 { 416 if (cEhciCtls) 417 m_machine.RemoveUSBController("EHCI"); 418 if (cXhciCtls) 419 m_machine.RemoveUSBController("XHCI"); 420 if (cXhciCtls || cEhciCtls) 421 { 422 CUSBControllerVector ctlvec = m_machine.GetUSBControllers(); 423 for (int i = 0; i < ctlvec.size(); ++i) 424 { 425 CUSBController ctl = ctlvec[i]; 426 KUSBControllerType enmType = ctl.GetType(); 427 if (enmType == KUSBControllerType_XHCI || enmType == KUSBControllerType_EHCI) 428 { 429 QString strName = ctl.GetName(); 430 m_machine.RemoveUSBController(strName); 431 } 432 } 433 } 420 434 if (!cOhciCtls) 421 435 m_machine.AddUSBController("OHCI", KUSBControllerType_OHCI); … … 425 439 { 426 440 if (cXhciCtls) 427 m_machine.RemoveUSBController("XHCI"); 441 { 442 CUSBControllerVector ctlvec = m_machine.GetUSBControllers(); 443 for (int i = 0; i < ctlvec.size(); ++i) 444 { 445 CUSBController ctl = ctlvec[i]; 446 KUSBControllerType enmType = ctl.GetType(); 447 if (enmType == KUSBControllerType_XHCI) 448 { 449 QString strName = ctl.GetName(); 450 m_machine.RemoveUSBController(strName); 451 } 452 } 453 } 428 454 if (!cOhciCtls) 429 455 m_machine.AddUSBController("OHCI", KUSBControllerType_OHCI); … … 434 460 case KUSBControllerType_XHCI: 435 461 { 436 if (cEhciCtls) 437 m_machine.RemoveUSBController("EHCI"); 438 if (cOhciCtls) 439 m_machine.RemoveUSBController("OHCI"); 462 if (cEhciCtls || cOhciCtls) 463 { 464 CUSBControllerVector ctlvec = m_machine.GetUSBControllers(); 465 for (int i = 0; i < ctlvec.size(); ++i) 466 { 467 CUSBController ctl = ctlvec[i]; 468 KUSBControllerType enmType = ctl.GetType(); 469 if (enmType == KUSBControllerType_EHCI || enmType == KUSBControllerType_OHCI) 470 { 471 QString strName = ctl.GetName(); 472 m_machine.RemoveUSBController(strName); 473 } 474 } 475 } 440 476 if (!cXhciCtls) 441 m_machine.AddUSBController(" XHCI", KUSBControllerType_XHCI);477 m_machine.AddUSBController("xHCI", KUSBControllerType_XHCI); 442 478 break; 443 479 }
Note:
See TracChangeset
for help on using the changeset viewer.