diff --git a/VM-source/Makefile b/VM-source/Makefile index a585541..7b212a9 100755 --- a/VM-source/Makefile +++ b/VM-source/Makefile @@ -57,7 +57,8 @@ SOURCES = main.cpp \ buildvbox.cpp \ vbox.cpp \ command.cpp \ - infoutils.cpp qrc_图标.cpp \ + infoutils.cpp \ + qemu.cpp qrc_图标.cpp \ moc_mainwindow.cpp \ moc_infoutils.cpp OBJECTS = main.o \ @@ -66,6 +67,7 @@ OBJECTS = main.o \ vbox.o \ command.o \ infoutils.o \ + qemu.o \ qrc_图标.o \ moc_mainwindow.o \ moc_infoutils.o @@ -104,11 +106,38 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KSyntaxHighlighting.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWaylandClient.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWaylandServer.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWidgetsAddons.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWindowSystem.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KXmlGui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3danimation.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3danimation_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dcore.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dcore_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dextras.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dextras_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dinput.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dinput_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dlogic.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dlogic_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquick.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquick_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickanimation.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickanimation_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickextras.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickextras_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickinput.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickinput_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickrender.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickrender_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickscene2d.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3drender.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3drender_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_charts.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ @@ -215,12 +244,14 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ buildvbox.h \ vbox.h \ command.h \ - infoutils.h main.cpp \ + infoutils.h \ + qemu.h main.cpp \ mainwindow.cpp \ buildvbox.cpp \ vbox.cpp \ command.cpp \ - infoutils.cpp + infoutils.cpp \ + qemu.cpp QMAKE_TARGET = VirtualMachine DESTDIR = TARGET = VirtualMachine @@ -267,11 +298,38 @@ Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qma /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KSyntaxHighlighting.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWaylandClient.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWaylandServer.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWidgetsAddons.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWindowSystem.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KXmlGui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3danimation.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3danimation_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dcore.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dcore_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dextras.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dextras_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dinput.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dinput_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dlogic.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dlogic_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquick.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquick_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickanimation.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickanimation_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickextras.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickextras_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickinput.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickinput_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickrender.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickrender_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickscene2d.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3drender.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3drender_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_charts.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ @@ -412,11 +470,38 @@ Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qma /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KSyntaxHighlighting.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWaylandClient.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWaylandServer.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWidgetsAddons.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWindowSystem.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KXmlGui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3danimation.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3danimation_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dcore.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dcore_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dextras.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dextras_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dinput.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dinput_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dlogic.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dlogic_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquick.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquick_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickanimation.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickanimation_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickextras.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickextras_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickinput.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickinput_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickrender.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickrender_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickscene2d.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickscene2d_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3drender.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3drender_private.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_charts.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: @@ -537,8 +622,8 @@ distdir: FORCE $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ $(COPY_FILE) --parents 图标.qrc $(DISTDIR)/ $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ - $(COPY_FILE) --parents mainwindow.h buildvbox.h vbox.h command.h infoutils.h $(DISTDIR)/ - $(COPY_FILE) --parents main.cpp mainwindow.cpp buildvbox.cpp vbox.cpp command.cpp infoutils.cpp $(DISTDIR)/ + $(COPY_FILE) --parents mainwindow.h buildvbox.h vbox.h command.h infoutils.h qemu.h $(DISTDIR)/ + $(COPY_FILE) --parents main.cpp mainwindow.cpp buildvbox.cpp vbox.cpp command.cpp infoutils.cpp qemu.cpp $(DISTDIR)/ $(COPY_FILE) --parents mainwindow.ui $(DISTDIR)/ $(COPY_FILE) --parents zh_CN.ts en_US.ts $(DISTDIR)/ @@ -639,7 +724,8 @@ mainwindow.o: mainwindow.cpp mainwindow.h \ buildvbox.o: buildvbox.cpp buildvbox.h \ vbox.h \ - infoutils.h + infoutils.h \ + qemu.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o buildvbox.o buildvbox.cpp vbox.o: vbox.cpp vbox.h \ @@ -652,6 +738,10 @@ command.o: command.cpp command.h infoutils.o: infoutils.cpp infoutils.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o infoutils.o infoutils.cpp +qemu.o: qemu.cpp qemu.h \ + command.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qemu.o qemu.cpp + qrc_图标.o: qrc_图标.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_图标.o qrc_图标.cpp diff --git a/VM-source/VirtualMachine b/VM-source/VirtualMachine deleted file mode 100755 index a431fab..0000000 Binary files a/VM-source/VirtualMachine and /dev/null differ diff --git a/VM-source/VirtualMachine.pro b/VM-source/VirtualMachine.pro index 316f413..ef8f173 100755 --- a/VM-source/VirtualMachine.pro +++ b/VM-source/VirtualMachine.pro @@ -33,14 +33,16 @@ SOURCES += \ buildvbox.cpp \ vbox.cpp \ command.cpp \ - infoutils.cpp + infoutils.cpp \ + qemu.cpp HEADERS += \ mainwindow.h \ buildvbox.h \ vbox.h \ command.h \ - infoutils.h + infoutils.h \ + qemu.h FORMS += \ mainwindow.ui diff --git a/VM-source/buildvbox.cpp b/VM-source/buildvbox.cpp index 34582a6..f3e84bf 100644 --- a/VM-source/buildvbox.cpp +++ b/VM-source/buildvbox.cpp @@ -6,6 +6,7 @@ #include #include #include +#include "qemu.h" // 懒得用 QThread 了(要继承) #include using namespace std; @@ -63,7 +64,9 @@ buildvbox::buildvbox(QString isoPath, int id){ QString net = GetNet(); qDebug() << "使用网卡:" << net << endl; //vbox *box = new vbox("Window"); - vbox vm("Windows"); + //vbox vm("Windows"); + qemu vm("Windows"); + switch (id) { case 0: vm.Create("Windows7"); @@ -75,9 +78,18 @@ buildvbox::buildvbox(QString isoPath, int id){ } vm.CreateDiskControl(); //vm.CreateDiskControl("storage_controller_2"); - vm.CreateDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi", 131072); - vm.MountDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi"); + vm.CreateDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2", 131072); + vm.MountDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2"); vm.MountISO(isoPath, "storage_controller_1", 0, 1); + switch (id) { + case 0: + vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 2); + break; + case 1: + vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 2); + break; + } + /*vm.MountISO(isoPath, "storage_controller_1", 0, 1); switch (id) { case 0: vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 0); @@ -85,12 +97,12 @@ buildvbox::buildvbox(QString isoPath, int id){ case 1: vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 0); break; - } + }*/ // 判断 VirtualBox Guest ISO 是否存在 // 在的话直接挂载 - if(QFile::exists("/usr/share/virtualbox/VBoxGuestAdditions.iso")){ + /*if(QFile::exists("/usr/share/virtualbox/VBoxGuestAdditions.iso")){ vm.MountISO("/usr/share/virtualbox/VBoxGuestAdditions.iso", "storage_controller_1", 1, 1); - } + }*/ vm.SetCPU(1); long memory = 0; diff --git a/VM-source/qemu.cpp b/VM-source/qemu.cpp new file mode 100644 index 0000000..557eea9 --- /dev/null +++ b/VM-source/qemu.cpp @@ -0,0 +1,112 @@ +#include "qemu.h" +#include +#include +#include +#include "command.h" +#include +#include +#include + +qemu::qemu(QString name, QString managerPath) { + if(!QFile::exists(name)){ + this->name = QDir::homePath() + "/Qemu/" + name; + } + else{ + this->name = name; + } + this->managerPath = managerPath; + //Command command = Command(); + + this->vboxVersion = Command().GetCommand("'" + managerPath + "qemu-system-i386' --version"); +} +int qemu::Create(QString type){ + if(!QFile::exists(this->name)){ + QDir dir(this->name); + dir.mkpath(this->name); + } + return 0; +} +int qemu::CreateDisk(QString path, int size){ + if(QFile::exists(path)){ + return 0; + } + return system(("qemu-img create '" + path + "' " + QString::number(size) + "M").toLatin1()); +} +int qemu::CreateDiskControl(QString controlName){ + return 0; +} +int qemu::MountDisk(QString diskPath, QString controlName, int port, int device){ + commandOption += "-drive 'file=" + diskPath + ",if=ide,index=" + QString::number(device) + "' "; + return 0; +} +int qemu::MountISO(QString isoPath, QString controlName, int port, int device){ + commandOption += "-drive 'media=cdrom,file=" + isoPath + ",if=ide,index=" + QString::number(device) + "' "; + return 0; +} +int qemu::BootFirst(QString bootDrive){ + commandOption += "-boot '" + bootDrive + "' "; + return 0; +} +int qemu::SetNetBridge(QString netDriver){ + return 0; +} +int qemu::SetCPU(int number){ + commandOption += "-smp " + QString::number(number) + " "; + return 0; +} +int qemu::SetMemory(int memory){ + commandOption += "-m " + QString::number(memory) + "M "; + return 0; +} +int qemu::SetRemote(bool setting){ + return 0; +} +int qemu::SetRemoteConnectSetting(int port){ + return 0; +} +int qemu::Start(bool unShown){ + qDebug() << commandOption; + if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "x86_64"){ + return system(("kvm " + commandOption + " &").toLatin1()); + } + return system(("qemu-system-x86_64 " + commandOption + " &").toLatin1()); +} +int qemu::Stop(){ + system("killall qemu-system-x86_64 -9"); + system("killall kvm -9"); + return 0; +} +int qemu::Delete(){ + return system(("rm -rfv '" + name + "'").toLatin1()); +} +int qemu::SetDisplayMemory(int memory){ + return 0; +} +int qemu::InstallGuessAdditions(QString controlName, int port, int device){ + return 0; +} +int qemu::EnabledAudio(){ + commandOption += "-soundhw all "; + return 0; +} +int qemu::EnabledClipboardMode(){ + return 0; +} +int qemu::EnabledDraganddrop(){ + return 0; +} +int qemu::ShareFile(QString name, QString path){ + return 0; +} +int qemu::SetVBoxSVGA(){ + return 0; +} +int qemu::SetMousePS2(){ + return 0; +} +int qemu::SetKeyboardPS2(){ + return 0; +} +int qemu::OpenUSB(){ + return 0; +} diff --git a/VM-source/qemu.h b/VM-source/qemu.h new file mode 100644 index 0000000..3daa4c1 --- /dev/null +++ b/VM-source/qemu.h @@ -0,0 +1,42 @@ +#ifndef QEMU_H +#define QEMU_H +#include + +class qemu +{ +public: + // 虚拟机信息 + QString name; + QString managerPath; + QString vboxVersion; + qemu(QString name, QString managerPath="/usr/bin"); + int Create(QString type="Windows7"); + int CreateDisk(QString path, int size); + int CreateDiskControl(QString controlName="storage_controller_1"); + int MountDisk(QString diskPath, QString controlName="storage_controller_1", int port=0, int device=0); + int MountISO(QString isoPath, QString controlName="storage_controller_1", int port=1, int device=0); + int BootFirst(QString bootDrive); + int SetNetBridge(QString netDriver); + int SetCPU(int number); + int SetMemory(int memory); + int SetRemote(bool setting); + int SetRemoteConnectSetting(int port=5540); + int Start(bool unShown=false); + int Stop(); + int Delete(); + int SetDisplayMemory(int memory); + int InstallGuessAdditions(QString controlName="storage_controller_1", int port=1, int device=0); + int EnabledAudio(); + int EnabledClipboardMode(); + int EnabledDraganddrop(); + int ShareFile(QString name, QString path); + int SetVBoxSVGA(); + int SetMousePS2(); + int SetKeyboardPS2(); + int OpenUSB(); +private: + QString commandOption; + +}; + +#endif // QEMU_H