#!/bin/bash

FILE=Win10.img

INTERNET=enp3s0
BRIDGE=brWin10
IFACE=tapWin10
MAC="52:54:0b:a1:f8:57"

MEM=10G


echo "Putting $IFACE in promisc mode"
sudo ip link set $IFACE up promisc on

echo "Starting sharing daemons"
synergys


## Sound configuration
# Generic options:
# QEMU_AUDIO_DAC_FIXED_SETTINGS: boolean, default = 1
#   Use fixed settings for host DAC
# QEMU_AUDIO_DAC_FIXED_FREQ: integer, default = 44100
#   Frequency for fixed host DAC
# QEMU_AUDIO_DAC_FIXED_FMT: format, default = S16, (one of: U8 S8 U16 S16 U32 S32)
#   Format for fixed host DAC
# QEMU_AUDIO_DAC_FIXED_CHANNELS: integer, default = 2
#   Number of channels for fixed DAC (1 - mono, 2 - stereo)
# QEMU_AUDIO_DAC_VOICES: integer, default = 1
#   Number of voices for DAC
# QEMU_AUDIO_DAC_TRY_POLL: boolean, default = 1
#   Attempt using poll mode for DAC
# QEMU_AUDIO_ADC_FIXED_SETTINGS: boolean, default = 1
#   Use fixed settings for host ADC
# QEMU_AUDIO_ADC_FIXED_FREQ: integer, default = 44100
#   Frequency for fixed host ADC
# QEMU_AUDIO_ADC_FIXED_FMT: format, default = S16, (one of: U8 S8 U16 S16 U32 S32)
#   Format for fixed host ADC
# QEMU_AUDIO_ADC_FIXED_CHANNELS: integer, default = 2
#   Number of channels for fixed ADC (1 - mono, 2 - stereo)
# QEMU_AUDIO_ADC_VOICES: integer, default = 1
#   Number of voices for ADC
# QEMU_AUDIO_ADC_TRY_POLL: boolean, default = 1
#   Attempt using poll mode for ADC
# QEMU_AUDIO_TIMER_PERIOD: integer, default = 100
#   Timer period in HZ (0 - use lowest possible)
#
# Alsa specific options:
# QEMU_ALSA_DAC_SIZE_IN_USEC: boolean, default = 0
#   DAC period/buffer size in microseconds (otherwise in frames)
# QEMU_ALSA_DAC_PERIOD_SIZE: integer, default = 1024
#   DAC period size (0 to go with system default)
# QEMU_ALSA_DAC_BUFFER_SIZE: integer, default = 4096
#   DAC buffer size (0 to go with system default)
# QEMU_ALSA_ADC_SIZE_IN_USEC: boolean, default = 0
#   ADC period/buffer size in microseconds (otherwise in frames)
# QEMU_ALSA_ADC_PERIOD_SIZE: integer, default = 0
#   ADC period size (0 to go with system default)
# QEMU_ALSA_ADC_BUFFER_SIZE: integer, default = 0
#   ADC buffer size (0 to go with system default)
# QEMU_ALSA_THRESHOLD: integer, default = 0
#   (undocumented)
# QEMU_ALSA_DAC_DEV: string, default = default
#   DAC device name (for instance dmix)
# QEMU_ALSA_ADC_DEV: string, default = default
#   ADC device name


export QEMU_AUDIO_DRV=alsa
#export QEMU_AUDIO_TIMER_PERIOD=0
#export QEMU_AUDIO_DAC_FIXED_FREQ=48000
#export QEMU_AUDIO_ADC_FIXED_FREQ=48000
#export QEMU_ALSA_DAC_BUFFER_SIZE=16384

sudo -E \
	qemu-system-x86_64 -enable-kvm \
	-name Win10 \
	-cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time \
	-smp sockets=1,cores=4,threads=1 \
	-m $MEM \
	-drive if=pflash,format=raw,readonly,file=OVMF_CODE-pure-efi.fd \
	-drive if=pflash,format=raw,file=OVMF_VARS-pure-efi.fd \
	-drive file="$FILE",if=none,id=hd -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd \
	-device virtio-net-pci,netdev=tap,mac="$MAC" -netdev type=tap,ifname="$IFACE",script=no,downscript=no,id=tap \
	-device vfio-pci,host=01:00.0,multifunction=on \
	-device vfio-pci,host=01:00.1 \
	-rtc clock=host,base=utc \
	-usb \
	-monitor stdio \
	-vga none \
	-serial null \
	-parallel null \
	-device intel-hda -device hda-duplex \
	-display none


#	-device intel-hda -device hda-duplex \
#	-drive file=Windows\ 10\ Education.iso,index=0,media=cdrom \
#	-drive file=virtio-win-0.1.112.iso,index=1,media=cdrom \
#	-usb -device usb-host,hostbus=3,hostaddr=2 \
#	-usb -device usb-host,hostbus=3,hostaddr=4 \

echo "Stopping sharing daemons"
killall synergys

