- Timestamp:
- May 22, 2015 4:03:35 PM (10 years ago)
- Location:
- trunk/src/VBox/Main
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/idl/VirtualBox.xidl
r55977 r56035 3580 3580 <interface 3581 3581 name="IInternalMachineControl" extends="$unknown" 3582 uuid=" 2cfec73b-4447-4ff8-bae5-e4306e6197e8"3582 uuid="ec36f437-ad4d-4512-94dd-f4c568143aa7" 3583 3583 internal="yes" 3584 3584 wsmap="suppress" … … 3807 3807 </desc> 3808 3808 </param> 3809 <param name="notify" type="boolean" dir="return">3810 <desc>3811 Returns if a guest property change notification event should be fired.3812 </desc>3813 </param>3814 3809 </method> 3815 3810 … … 4170 4165 <interface 4171 4166 name="IMachine" extends="$unknown" 4172 uuid=" 520a0c22-8dbc-458d-b637-31eb078b5526"4167 uuid="6bf820b3-a08f-49a7-ac08-b88efbd3a313" 4173 4168 wsmap="managed" 4174 4169 wrap-hint-server-addinterfaces="IInternalMachineControl" … … 4800 4795 </attribute> 4801 4796 4802 <attribute name="guestPropertyNotificationPatterns" type="wstring">4803 <desc>4804 A comma-separated list of simple glob patterns. Changes to guest4805 properties whose name matches one of the patterns will generate an4806 <link to="IGuestPropertyChangedEvent"/> signal.4807 </desc>4808 </attribute>4809 4810 4797 <attribute name="teleporterEnabled" type="boolean"> 4811 4798 <desc> … … 6048 6035 <method name="getStorageControllerByInstance" const="yes"> 6049 6036 <desc> 6050 Returns a storage controller with the given instance number. 6037 Returns a storage controller of a specific storage bus 6038 with the given instance number. 6051 6039 6052 6040 <result name="VBOX_E_OBJECT_NOT_FOUND"> … … 6054 6042 </result> 6055 6043 </desc> 6044 <param name="connectionType" type="StorageBus" dir="in"/> 6056 6045 <param name="instance" type="unsigned long" dir="in"/> 6057 6046 <param name="storageController" type="IStorageController" dir="return"/> … … 17804 17793 <interface 17805 17794 name="IUSBController" extends="$unknown" 17806 uuid=" d2745291-65f7-4d75-9556-38047d802319"17795 uuid="2598fa52-3044-4ff5-8a61-2b09088a9e3c" 17807 17796 wsmap="managed" 17808 17797 > 17809 17798 17810 <attribute name="name" type="wstring" readonly="yes">17799 <attribute name="name" type="wstring"> 17811 17800 <desc> 17812 17801 The USB Controller name. … … 17814 17803 </attribute> 17815 17804 17816 <attribute name="type" type="USBControllerType" readonly="yes">17805 <attribute name="type" type="USBControllerType"> 17817 17806 <desc> 17818 17807 The USB Controller type. … … 19487 19476 <interface 19488 19477 name="IStorageController" extends="$unknown" 19489 uuid=" a1556333-09b6-46d9-bfb7-fc239b7fbe1e"19478 uuid="802bb9c0-fe71-43ab-b55a-322fdf77358f" 19490 19479 wsmap="managed" 19491 19480 > … … 19509 19498 </desc> 19510 19499 19511 <attribute name="name" type="wstring" readonly="yes">19500 <attribute name="name" type="wstring"> 19512 19501 <desc> 19513 19502 Name of the storage controller, as originally specified with -
trunk/src/VBox/Main/include/MachineImpl.h
r55977 r56035 307 307 typedef std::map<Utf8Str, GuestProperty> GuestPropertyMap; 308 308 GuestPropertyMap mGuestProperties; 309 Utf8Str mGuestPropertyNotificationPatterns;310 309 311 310 FirmwareType_T mFirmwareType; … … 591 590 void i_releaseStateDependency(); 592 591 592 HRESULT i_getStorageControllerByName(const Utf8Str &aName, 593 ComObjPtr<StorageController> &aStorageController, 594 bool aSetError = false); 595 596 HRESULT i_getUSBControllerByName(const Utf8Str &aName, 597 ComObjPtr<USBController> &aUSBController, 598 bool aSetError = false); 599 593 600 HRESULT i_getBandwidthGroup(const Utf8Str &strBandwidthGroup, 594 601 ComObjPtr<BandwidthGroup> &pBandwidthGroup, … … 643 650 bool aSetError = false); 644 651 645 HRESULT i_getStorageControllerByName(const Utf8Str &aName,646 ComObjPtr<StorageController> &aStorageController,647 bool aSetError = false);648 649 652 HRESULT i_getMediumAttachmentsOfController(const Utf8Str &aName, 650 653 MediaData::AttachmentList &aAttachments); 651 652 HRESULT i_getUSBControllerByName(const Utf8Str &aName,653 ComObjPtr<USBController> &aUSBController,654 bool aSetError = false);655 654 656 655 ULONG i_getUSBControllerCountByType(USBControllerType_T enmType); … … 943 942 HRESULT getDnDMode(DnDMode_T *aDnDMode); 944 943 HRESULT setDnDMode(DnDMode_T aDnDMode); 945 HRESULT getGuestPropertyNotificationPatterns(com::Utf8Str &aGuestPropertyNotificationPatterns);946 HRESULT setGuestPropertyNotificationPatterns(const com::Utf8Str &aGuestPropertyNotificationPatterns);947 944 HRESULT getTeleporterEnabled(BOOL *aTeleporterEnabled); 948 945 HRESULT setTeleporterEnabled(BOOL aTeleporterEnabled); … … 1069 1066 HRESULT getStorageControllerByName(const com::Utf8Str &aName, 1070 1067 ComPtr<IStorageController> &aStorageController); 1071 HRESULT getStorageControllerByInstance(ULONG aInstance, 1068 HRESULT getStorageControllerByInstance(StorageBus_T aConnectionType, 1069 ULONG aInstance, 1072 1070 ComPtr<IStorageController> &aStorageController); 1073 1071 HRESULT removeStorageController(const com::Utf8Str &aName); … … 1233 1231 const com::Utf8Str &aValue, 1234 1232 LONG64 aTimestamp, 1235 const com::Utf8Str &aFlags, 1236 BOOL *aNotify); 1233 const com::Utf8Str &aFlags); 1237 1234 HRESULT lockMedia(); 1238 1235 HRESULT unlockMedia(); … … 1382 1379 const com::Utf8Str &aValue, 1383 1380 LONG64 aTimestamp, 1384 const com::Utf8Str &aFlags, 1385 BOOL *aNotify); 1381 const com::Utf8Str &aFlags); 1386 1382 HRESULT lockMedia(); 1387 1383 HRESULT unlockMedia(); -
trunk/src/VBox/Main/include/StorageControllerImpl.h
r49644 r56035 72 72 // Wrapped IStorageController properties 73 73 HRESULT getName(com::Utf8Str &aName); 74 HRESULT setName(const com::Utf8Str &aName); 74 75 HRESULT getMaxDevicesPerPortCount(ULONG *aMaxDevicesPerPortCount); 75 76 HRESULT getMinPortCount(ULONG *aMinPortCount); -
trunk/src/VBox/Main/include/USBControllerImpl.h
r49871 r56035 7 7 8 8 /* 9 * Copyright (C) 2005-201 3Oracle Corporation9 * Copyright (C) 2005-2015 Oracle Corporation 10 10 * 11 11 * This file is part of VirtualBox Open Source Edition (OSE), as … … 61 61 // wrapped IUSBController properties 62 62 HRESULT getName(com::Utf8Str &aName); 63 HRESULT setName(const com::Utf8Str &aName); 63 64 HRESULT getType(USBControllerType_T *aType); 65 HRESULT setType(USBControllerType_T aType); 64 66 HRESULT getUSBStandard(USHORT *aUSBStandard); 65 67 -
trunk/src/VBox/Main/src-client/ConsoleImpl.cpp
r56030 r56035 1759 1759 Bstr flags(pCBData->pcszFlags); 1760 1760 ComObjPtr<Console> pConsole = reinterpret_cast<Console *>(pvExtension); 1761 BOOL fNotify = FALSE;1762 1761 HRESULT hrc = pConsole->mControl->PushGuestProperty(name.raw(), 1763 1762 value.raw(), 1764 1763 pCBData->u64Timestamp, 1765 flags.raw(), 1766 &fNotify); 1764 flags.raw()); 1767 1765 if (SUCCEEDED(hrc)) 1766 { 1767 fireGuestPropertyChangedEvent(pConsole->mEventSource, pConsole->i_getId().raw(), name.raw(), value.raw(), flags.raw()); 1768 1768 rc = VINF_SUCCESS; 1769 } 1769 1770 else 1770 1771 { … … 1773 1774 rc = Global::vboxStatusCodeFromCOM(hrc); 1774 1775 } 1775 if (fNotify)1776 fireGuestPropertyChangedEvent(pConsole->mEventSource, pConsole->i_getId().raw(), name.raw(), value.raw(), flags.raw());1777 1776 return rc; 1778 1777 } -
trunk/src/VBox/Main/src-server/MachineImpl.cpp
r56019 r56035 207 207 mClipboardMode = ClipboardMode_Disabled; 208 208 mDnDMode = DnDMode_Disabled; 209 mGuestPropertyNotificationPatterns = "";210 209 211 210 mFirmwareType = FirmwareType_BIOS; … … 2845 2844 } 2846 2845 2847 HRESULT Machine::getGuestPropertyNotificationPatterns(com::Utf8Str &aGuestPropertyNotificationPatterns)2848 {2849 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);2850 2851 try2852 {2853 aGuestPropertyNotificationPatterns = mHWData->mGuestPropertyNotificationPatterns;2854 }2855 catch (...)2856 {2857 return VirtualBoxBase::handleUnexpectedExceptions(this, RT_SRC_POS);2858 }2859 2860 return S_OK;2861 }2862 2863 HRESULT Machine::setGuestPropertyNotificationPatterns(const com::Utf8Str &aGuestPropertyNotificationPatterns)2864 {2865 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);2866 2867 HRESULT rc = i_checkStateDependency(MutableOrSavedOrRunningStateDep);2868 if (FAILED(rc)) return rc;2869 2870 i_setModified(IsModified_MachineData);2871 mHWData.backup();2872 mHWData->mGuestPropertyNotificationPatterns = aGuestPropertyNotificationPatterns;2873 return rc;2874 }2875 2876 2846 HRESULT Machine::getStorageControllers(std::vector<ComPtr<IStorageController> > &aStorageControllers) 2877 2847 { … … 5752 5722 } 5753 5723 5754 if ( SUCCEEDED(rc) 5755 && ( mHWData->mGuestPropertyNotificationPatterns.isEmpty() 5756 || RTStrSimplePatternMultiMatch(mHWData->mGuestPropertyNotificationPatterns.c_str(), 5757 RTSTR_MAX, 5758 aName.c_str(), 5759 RTSTR_MAX, 5760 NULL) 5761 ) 5762 ) 5724 if (SUCCEEDED(rc)) 5763 5725 { 5764 5726 alock.release(); … … 6097 6059 } 6098 6060 6099 HRESULT Machine::getStorageControllerByInstance(ULONG aInstance, 6061 HRESULT Machine::getStorageControllerByInstance(StorageBus_T aConnectionType, 6062 ULONG aInstance, 6100 6063 ComPtr<IStorageController> &aStorageController) 6101 6064 { … … 6106 6069 ++it) 6107 6070 { 6108 if ((*it)->i_getInstance() == aInstance) 6071 if ( (*it)->i_getStorageBus() == aConnectionType 6072 && (*it)->i_getInstance() == aInstance) 6109 6073 { 6110 6074 (*it).queryInterfaceTo(aStorageController.asOutParam()); … … 9080 9044 ++it; 9081 9045 } 9082 9083 mHWData->mGuestPropertyNotificationPatterns = data.strNotificationPatterns;9084 9046 #endif /* VBOX_WITH_GUEST_PROPS defined */ 9085 9047 … … 10382 10344 } 10383 10345 10384 data.strNotificationPatterns = mHWData->mGuestPropertyNotificationPatterns;10385 10346 /* I presume this doesn't require a backup(). */ 10386 10347 mData->mGuestPropertiesModified = FALSE; … … 13393 13354 const com::Utf8Str &aValue, 13394 13355 LONG64 aTimestamp, 13395 const com::Utf8Str &aFlags, 13396 BOOL *aNotify) 13356 const com::Utf8Str &aFlags) 13397 13357 { 13398 13358 LogFlowThisFunc(("\n")); … … 13400 13360 #ifdef VBOX_WITH_GUEST_PROPS 13401 13361 using namespace guestProp; 13402 13403 *aNotify = FALSE;13404 13362 13405 13363 try … … 13469 13427 } 13470 13428 13471 /* 13472 * Send a callback notification if appropriate 13473 */ 13474 if ( mHWData->mGuestPropertyNotificationPatterns.isEmpty() 13475 || RTStrSimplePatternMultiMatch(mHWData->mGuestPropertyNotificationPatterns.c_str(), 13476 RTSTR_MAX, 13477 aName.c_str(), 13478 RTSTR_MAX, NULL) 13479 ) 13480 { 13481 alock.release(); 13482 13483 mParent->i_onGuestPropertyChange(mData->mUuid, 13484 Bstr(aName).raw(), 13485 Bstr(aValue).raw(), 13486 Bstr(aFlags).raw()); 13487 *aNotify = TRUE; 13488 } 13429 alock.release(); 13430 13431 mParent->i_onGuestPropertyChange(mData->mUuid, 13432 Bstr(aName).raw(), 13433 Bstr(aValue).raw(), 13434 Bstr(aFlags).raw()); 13489 13435 } 13490 13436 catch (...) … … 14757 14703 const com::Utf8Str &aValue, 14758 14704 LONG64 aTimestamp, 14759 const com::Utf8Str &aFlags, 14760 BOOL *aNotify) 14705 const com::Utf8Str &aFlags) 14761 14706 { 14762 14707 NOREF(aName); … … 14764 14709 NOREF(aTimestamp); 14765 14710 NOREF(aFlags); 14766 NOREF(aNotify);14767 14711 ReturnComNotImplemented(); 14768 14712 } -
trunk/src/VBox/Main/src-server/StorageControllerImpl.cpp
r54971 r56035 323 323 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 324 324 325 /* mName is constant during life time, no need to lock */ 326 aName = m->bd.data()->strName; 325 aName = m->bd->strName; 326 327 return S_OK; 328 } 329 330 HRESULT StorageController::setName(const com::Utf8Str &aName) 331 { 332 /* the machine needs to be mutable */ 333 AutoMutableStateDependency adep(m->pParent); 334 if (FAILED(adep.rc())) return adep.rc(); 335 336 AutoMultiWriteLock2 alock(m->pParent, this COMMA_LOCKVAL_SRC_POS); 337 338 if (m->bd->strName != aName) 339 { 340 ComObjPtr<StorageController> ctrl; 341 HRESULT rc = m->pParent->i_getStorageControllerByName(aName, ctrl, false /* aSetError */); 342 if (SUCCEEDED(rc)) 343 return setError(VBOX_E_OBJECT_IN_USE, 344 tr("Storage controller named '%s' already exists"), 345 aName.c_str()); 346 347 m->bd.backup(); 348 m->bd->strName = aName; 349 350 m->pParent->i_setModified(Machine::IsModified_Storage); 351 alock.release(); 352 353 m->pParent->i_onStorageControllerChange(); 354 } 327 355 328 356 return S_OK; … … 331 359 HRESULT StorageController::getBus(StorageBus_T *aBus) 332 360 { 333 CheckComArgOutPointerValid(aBus);334 335 361 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 336 362 … … 342 368 HRESULT StorageController::getControllerType(StorageControllerType_T *aControllerType) 343 369 { 344 CheckComArgOutPointerValid(aControllerType);345 346 370 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 347 371 … … 353 377 HRESULT StorageController::setControllerType(StorageControllerType_T aControllerType) 354 378 { 379 /* the machine needs to be mutable */ 380 AutoMutableStateDependency adep(m->pParent); 381 if (FAILED(adep.rc())) return adep.rc(); 382 355 383 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 356 384 … … 400 428 default: 401 429 AssertMsgFailed(("Invalid controller type %d\n", m->bd->mStorageBus)); 430 rc = E_INVALIDARG; 402 431 } 403 432 … … 407 436 aControllerType); 408 437 409 m->bd->mStorageControllerType = aControllerType; 438 if (m->bd->mStorageControllerType != aControllerType) 439 { 440 m->bd.backup(); 441 m->bd->mStorageControllerType = aControllerType; 442 443 alock.release(); 444 AutoWriteLock mlock(m->pParent COMMA_LOCKVAL_SRC_POS); // m->pParent is const, needs no locking 445 m->pParent->i_setModified(Machine::IsModified_Storage); 446 mlock.release(); 447 448 m->pParent->i_onStorageControllerChange(); 449 } 410 450 411 451 return S_OK; … … 414 454 HRESULT StorageController::getMaxDevicesPerPortCount(ULONG *aMaxDevicesPerPortCount) 415 455 { 416 CheckComArgOutPointerValid(aMaxDevicesPerPortCount);417 418 456 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 419 457 … … 425 463 HRESULT StorageController::getMinPortCount(ULONG *aMinPortCount) 426 464 { 427 CheckComArgOutPointerValid(aMinPortCount);428 429 465 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 430 466 … … 435 471 HRESULT StorageController::getMaxPortCount(ULONG *aMaxPortCount) 436 472 { 437 CheckComArgOutPointerValid(aMaxPortCount);438 439 473 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 440 474 HRESULT rc = m->pSystemProperties->GetMaxPortCountForStorageBus(m->bd->mStorageBus, aMaxPortCount); … … 445 479 HRESULT StorageController::getPortCount(ULONG *aPortCount) 446 480 { 447 CheckComArgOutPointerValid(aPortCount);448 449 481 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 450 482 … … 456 488 HRESULT StorageController::setPortCount(ULONG aPortCount) 457 489 { 458 LogFlowThisFunc(("aPortCount=%u\n", aPortCount)); 490 /* the machine needs to be mutable */ 491 AutoMutableStateDependency adep(m->pParent); 492 if (FAILED(adep.rc())) return adep.rc(); 493 494 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 459 495 460 496 switch (m->bd->mStorageBus) … … 529 565 } 530 566 531 AutoCaller autoCaller(this);532 if (FAILED(autoCaller.rc())) return autoCaller.rc();533 534 /* the machine needs to be mutable */535 AutoMutableStateDependency adep(m->pParent);536 if (FAILED(adep.rc())) return adep.rc();537 538 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);539 540 567 if (m->bd->mPortCount != aPortCount) 541 568 { … … 556 583 HRESULT StorageController::getInstance(ULONG *aInstance) 557 584 { 558 /* The machine doesn't need to be mutable. */559 560 585 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 561 586 … … 566 591 567 592 HRESULT StorageController::setInstance(ULONG aInstance) 568 {569 /* The machine doesn't need to be mutable. */570 571 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);572 573 m->bd->mInstance = aInstance;574 575 return S_OK;576 }577 578 HRESULT StorageController::getUseHostIOCache(BOOL *fUseHostIOCache)579 {580 /* The machine doesn't need to be mutable. */581 582 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);583 584 *fUseHostIOCache = m->bd->fUseHostIOCache;585 586 return S_OK;587 }588 589 HRESULT StorageController::setUseHostIOCache(BOOL fUseHostIOCache)590 593 { 591 594 /* the machine needs to be mutable */ … … 595 598 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 596 599 597 if (m->bd-> fUseHostIOCache != !!fUseHostIOCache)600 if (m->bd->mInstance != aInstance) 598 601 { 599 602 m->bd.backup(); 600 m->bd-> fUseHostIOCache = !!fUseHostIOCache;603 m->bd->mInstance = aInstance; 601 604 602 605 alock.release(); … … 611 614 } 612 615 616 HRESULT StorageController::getUseHostIOCache(BOOL *fUseHostIOCache) 617 { 618 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 619 620 *fUseHostIOCache = m->bd->fUseHostIOCache; 621 622 return S_OK; 623 } 624 625 HRESULT StorageController::setUseHostIOCache(BOOL fUseHostIOCache) 626 { 627 /* the machine needs to be mutable */ 628 AutoMutableStateDependency adep(m->pParent); 629 if (FAILED(adep.rc())) return adep.rc(); 630 631 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 632 633 if (m->bd->fUseHostIOCache != !!fUseHostIOCache) 634 { 635 m->bd.backup(); 636 m->bd->fUseHostIOCache = !!fUseHostIOCache; 637 638 alock.release(); 639 AutoWriteLock mlock(m->pParent COMMA_LOCKVAL_SRC_POS); // m->pParent is const, needs no locking 640 m->pParent->i_setModified(Machine::IsModified_Storage); 641 mlock.release(); 642 643 m->pParent->i_onStorageControllerChange(); 644 } 645 646 return S_OK; 647 } 648 613 649 HRESULT StorageController::getBootable(BOOL *fBootable) 614 650 { 615 616 /* The machine doesn't need to be mutable. */617 618 651 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 619 652 -
trunk/src/VBox/Main/src-server/USBControllerImpl.cpp
r50721 r56035 5 5 6 6 /* 7 * Copyright (C) 2005-201 3Oracle Corporation7 * Copyright (C) 2005-2015 Oracle Corporation 8 8 * 9 9 * This file is part of VirtualBox Open Source Edition (OSE), as … … 238 238 HRESULT USBController::getName(com::Utf8Str &aName) 239 239 { 240 /* strName is constant during life time, no need to lock */ 240 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 241 241 242 aName = m->bd->strName; 242 243 … … 244 245 } 245 246 247 HRESULT USBController::setName(const com::Utf8Str &aName) 248 { 249 /* the machine needs to be mutable */ 250 AutoMutableStateDependency adep(m->pParent); 251 if (FAILED(adep.rc())) return adep.rc(); 252 253 AutoMultiWriteLock2 alock(m->pParent, this COMMA_LOCKVAL_SRC_POS); 254 255 if (m->bd->strName != aName) 256 { 257 ComObjPtr<USBController> ctrl; 258 HRESULT rc = m->pParent->i_getUSBControllerByName(aName, ctrl, false /* aSetError */); 259 if (SUCCEEDED(rc)) 260 return setError(VBOX_E_OBJECT_IN_USE, 261 tr("USB controller named '%s' already exists"), 262 aName.c_str()); 263 264 m->bd.backup(); 265 m->bd->strName = aName; 266 267 m->pParent->i_setModified(Machine::IsModified_USB); 268 alock.release(); 269 270 m->pParent->i_onUSBControllerChange(); 271 } 272 273 return S_OK; 274 } 275 246 276 HRESULT USBController::getType(USBControllerType_T *aType) 247 277 { … … 249 279 250 280 *aType = m->bd->enmType; 281 282 return S_OK; 283 } 284 285 HRESULT USBController::setType(USBControllerType_T aType) 286 { 287 /* the machine needs to be mutable */ 288 AutoMutableStateDependency adep(m->pParent); 289 if (FAILED(adep.rc())) return adep.rc(); 290 291 AutoMultiWriteLock2 alock(m->pParent, this COMMA_LOCKVAL_SRC_POS); 292 293 if (m->bd->enmType != aType) 294 { 295 m->bd.backup(); 296 m->bd->enmType = aType; 297 298 m->pParent->i_setModified(Machine::IsModified_USB); 299 alock.release(); 300 301 m->pParent->i_onUSBControllerChange(); 302 } 251 303 252 304 return S_OK; -
trunk/src/VBox/Main/xml/Settings.cpp
r55677 r56035 2082 2082 && (fPageFusionEnabled == h.fPageFusionEnabled) 2083 2083 && (llGuestProperties == h.llGuestProperties) 2084 && (strNotificationPatterns == h.strNotificationPatterns)2085 2084 && (ioSettings == h.ioSettings) 2086 2085 && (pciAttachments == h.pciAttachments) … … 2691 2690 hw.llGuestProperties.push_back(prop); 2692 2691 } 2693 2694 elmGuestProperties.getAttributeValue("notificationPatterns", hw.strNotificationPatterns);2695 2692 } 2696 2693 … … 4853 4850 pelmProp->setAttribute("flags", prop.strFlags); 4854 4851 } 4855 4856 if (hw.strNotificationPatterns.length())4857 pelmGuestProps->setAttribute("notificationPatterns", hw.strNotificationPatterns);4858 4852 } 4859 4853
Note:
See TracChangeset
for help on using the changeset viewer.