X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=monitor%2Fmisc.c;h=3baa15f3bfac28414d374a8ea45807ce54411b33;hb=038adc2f5850e32019bda06c559d0301be436eae;hp=00338c002a677eb9815d2c563d4a86ccb978dc33;hpb=55225c853ab8ba948ef70634cee6fbca0d8c67dc;p=mirror_qemu.git diff --git a/monitor/misc.c b/monitor/misc.c index 00338c002a..3baa15f3bf 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -25,7 +25,6 @@ #include "qemu/osdep.h" #include "monitor-internal.h" #include "cpu.h" -#include "hw/hw.h" #include "monitor/qdev.h" #include "hw/usb.h" #include "hw/pci/pci.h" @@ -45,6 +44,7 @@ #include "sysemu/balloon.h" #include "qemu/timer.h" #include "sysemu/hw_accel.h" +#include "sysemu/runstate.h" #include "authz/list.h" #include "qapi/util.h" #include "sysemu/blockdev.h" @@ -862,7 +862,7 @@ static uint64_t vtop(void *ptr, Error **errp) uint64_t pinfo; uint64_t ret = -1; uintptr_t addr = (uintptr_t) ptr; - uintptr_t pagesize = getpagesize(); + uintptr_t pagesize = qemu_real_host_page_size; off_t offset = addr / pagesize * sizeof(pinfo); int fd; @@ -1142,21 +1142,21 @@ static void hmp_stopcapture(Monitor *mon, const QDict *qdict) static void hmp_wavcapture(Monitor *mon, const QDict *qdict) { const char *path = qdict_get_str(qdict, "path"); - int has_freq = qdict_haskey(qdict, "freq"); - int freq = qdict_get_try_int(qdict, "freq", -1); - int has_bits = qdict_haskey(qdict, "bits"); - int bits = qdict_get_try_int(qdict, "bits", -1); - int has_channels = qdict_haskey(qdict, "nchannels"); - int nchannels = qdict_get_try_int(qdict, "nchannels", -1); + int freq = qdict_get_try_int(qdict, "freq", 44100); + int bits = qdict_get_try_int(qdict, "bits", 16); + int nchannels = qdict_get_try_int(qdict, "nchannels", 2); + const char *audiodev = qdict_get_str(qdict, "audiodev"); CaptureState *s; + AudioState *as = audio_state_by_name(audiodev); - s = g_malloc0 (sizeof (*s)); + if (!as) { + monitor_printf(mon, "Audiodev '%s' not found\n", audiodev); + return; + } - freq = has_freq ? freq : 44100; - bits = has_bits ? bits : 16; - nchannels = has_channels ? nchannels : 2; + s = g_malloc0 (sizeof (*s)); - if (wav_start_capture (s, path, freq, bits, nchannels)) { + if (wav_start_capture(as, s, path, freq, bits, nchannels)) { monitor_printf(mon, "Failed to add wave capture\n"); g_free (s); return;