/** @file * VBox Qt GUI - UIMedium related declarations. */ /* * Copyright (C) 2006-2014 Oracle Corporation * * This file is part of VirtualBox Open Source Edition (OSE), as * available from http://www.virtualbox.org. This file is free software; * you can redistribute it and/or modify it under the terms of the GNU * General Public License (GPL) as published by the Free Software * Foundation, in version 2 as it comes in the "COPYING" file of the * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. */ #ifndef ___UIMediumDefs_h___ #define ___UIMediumDefs_h___ /* COM includes: */ #include "COMEnums.h" /** UIMediumDefs namespace. */ namespace UIMediumDefs { /** UIMedium types. */ enum UIMediumType { UIMediumType_Invalid, UIMediumType_HardDisk, UIMediumType_DVD, UIMediumType_Floppy, UIMediumType_All }; /** Converts global medium type (KDeviceType) to local (UIMediumType). */ UIMediumType mediumTypeToLocal(KDeviceType globalType); /** Convert local medium type (UIMediumType) to global (KDeviceType). */ KDeviceType mediumTypeToGlobal(UIMediumType localType); } /* Using this namespace globally: */ using namespace UIMediumDefs; /** Medium-target. */ struct UIMediumTarget { /** Medium-target types. */ enum UIMediumTargetType { UIMediumTargetType_WithID, UIMediumTargetType_WithLocation }; /** Medium-target constructor. */ UIMediumTarget(const QString &strName = QString(), LONG iPort = 0, LONG iDevice = 0, UIMediumType aMediumType = UIMediumType_Invalid, UIMediumTargetType aType = UIMediumTargetType_WithID, const QString &strData = QString()) : name(strName), port(iPort), device(iDevice) , mediumType(aMediumType) , type(aType), data(strData) {} /** Determines controller name. */ QString name; /** Determines controller port. */ LONG port; /** Determines controller device. */ LONG device; /** Determines medium-target medium-type. */ UIMediumType mediumType; /** Determines medium-target type. */ UIMediumTargetType type; /** Depending on medium-target type holds ID or location. */ QString data; }; /* Let QMetaType know about our types: */ Q_DECLARE_METATYPE(UIMediumType); Q_DECLARE_METATYPE(UIMediumTarget); #endif /* !___UIMediumDefs_h___ */