diff options
Diffstat (limited to 'src/main/java/org/openslx/util/vm/QemuMetaData.java')
-rw-r--r-- | src/main/java/org/openslx/util/vm/QemuMetaData.java | 93 |
1 files changed, 65 insertions, 28 deletions
diff --git a/src/main/java/org/openslx/util/vm/QemuMetaData.java b/src/main/java/org/openslx/util/vm/QemuMetaData.java index 8855f9c..814bfa4 100644 --- a/src/main/java/org/openslx/util/vm/QemuMetaData.java +++ b/src/main/java/org/openslx/util/vm/QemuMetaData.java @@ -51,8 +51,19 @@ class QemuSoundCardMeta { value = val; } } +class QemuUSBMeta { -public final class QemuMetaData extends VmMetaData<QemuSoundCardMeta, QemuDDAccelMeta, QemuHWVersionMeta, QemuEthernetDevTypeMeta> { + public final String value; + public final int speed; + + public QemuUSBMeta(String value, int speed) { + + this.value = value; + this.speed = speed; + } +} + +public final class QemuMetaData extends VmMetaData<QemuSoundCardMeta, QemuDDAccelMeta, QemuHWVersionMeta, QemuEthernetDevTypeMeta, QemuUSBMeta> { private static final Logger LOGGER = Logger.getLogger(QemuMetaData.class); @@ -288,6 +299,7 @@ public final class QemuMetaData extends VmMetaData<QemuSoundCardMeta, QemuDDAcce @Override public void setEthernetDevType(int cardIndex, VmMetaData.EthernetDevType type) { + /* //TODO QemuEthernetDevTypeMeta dev = networkCards.get(type); header = new LinkedHashMap<>(); @@ -297,6 +309,7 @@ public final class QemuMetaData extends VmMetaData<QemuSoundCardMeta, QemuDDAcce //option.put("netdev", "net" + cardIndex); config.set(header, option); netdevCounter++; + */ } @Override @@ -363,25 +376,45 @@ public final class QemuMetaData extends VmMetaData<QemuSoundCardMeta, QemuDDAcce return virtualizer; } - @Override - public void enableUsb(boolean enabled) { - option = new TreeMap<>(); - if (enabled) { - option.put("usb", "on"); - } else { - option.put("usb", "off"); - } - - header = new LinkedHashMap<>(); - header.put(MACHINE.getHeader(), MACHINE.getID()); - config.set(header, option); - } - - @Override - public boolean disableSuspend() { - return false; - } - +// @Override +// public void enableUsb(boolean enabled) { +// option = new TreeMap<>(); +// if (enabled) { +// option.put("usb", "on"); +// } else { +// option.put("usb", "off"); +// } +// +// header = new LinkedHashMap<>(); +// header.put(MACHINE.getHeader(), MACHINE.getID()); +// config.set(header, option); +// } + +// @Override +// public boolean disableSuspend() { +// return false; +// } + @Override + public boolean tweakForNonPersistent() { + return false; + } + public void setMaxUsbSpeed( VmMetaData.UsbSpeed speed ) + { + // TODO: Actual speed setting? + if ( speed == null || speed == VmMetaData.UsbSpeed.NONE ) { + option.remove( "usb" ); + } else { + option.put( "usb", "" ); + } + } + + @Override + public VmMetaData.UsbSpeed getMaxUsbSpeed() + { + if (option.containsKey( "usb" ) ) + return VmMetaData.UsbSpeed.USB2_0; // TODO + return VmMetaData.UsbSpeed.NONE; + } @Override public void registerVirtualHW() { soundCards.put(VmMetaData.SoundCardType.NONE, new QemuSoundCardMeta(false, null)); @@ -390,16 +423,20 @@ public final class QemuMetaData extends VmMetaData<QemuSoundCardMeta, QemuDDAcce soundCards.put(VmMetaData.SoundCardType.ES, new QemuSoundCardMeta(true, "es1370")); soundCards.put(VmMetaData.SoundCardType.SOUND_BLASTER, new QemuSoundCardMeta(true, "sb16")); - ddacc.put(DDAcceleration.OFF, new QemuDDAccelMeta(false)); - ddacc.put(DDAcceleration.ON, new QemuDDAccelMeta(true)); + ddacc.put(VmMetaData.DDAcceleration.OFF, new QemuDDAccelMeta(false)); + ddacc.put(VmMetaData.DDAcceleration.ON, new QemuDDAccelMeta(true)); - hwversion.put(HWVersion.DEFAULT, new QemuHWVersionMeta(0)); + hwversion.put(VmMetaData.HWVersion.DEFAULT, new QemuHWVersionMeta(0)); - networkCards.put(EthernetDevType.VIRTIO, new QemuEthernetDevTypeMeta("virtio-net-pci")); - networkCards.put(EthernetDevType.E1000, new QemuEthernetDevTypeMeta("e1000")); - networkCards.put(EthernetDevType.PCNET32, new QemuEthernetDevTypeMeta("pcnet")); - networkCards.put(EthernetDevType.RTL8139, new QemuEthernetDevTypeMeta("rtl8139")); + usbSpeeds.put(VmMetaData.UsbSpeed.NONE, new QemuUSBMeta(null, 0)); + usbSpeeds.put(VmMetaData.UsbSpeed.USB1_1, new QemuUSBMeta("usb", 1)); + usbSpeeds.put(VmMetaData.UsbSpeed.USB2_0, new QemuUSBMeta("ehci", 2)); + usbSpeeds.put(VmMetaData.UsbSpeed.USB3_0, new QemuUSBMeta("usb_xhci", 3)); - } + //networkCards.put(VmMetaData.EthernetDevType.VIRTIO, new QemuEthernetDevTypeMeta("virtio-net-pci")); + networkCards.put(VmMetaData.EthernetDevType.E1000, new QemuEthernetDevTypeMeta("e1000")); + networkCards.put(VmMetaData.EthernetDevType.PCNET32, new QemuEthernetDevTypeMeta("pcnet")); + //networkCards.put(VmMetaData.EthernetDevType.RTL8139, new QemuEthernetDevTypeMeta("rtl8139")); + } } |