Commit 88e47b9a authored by Kővágó, Zoltán's avatar Kővágó, Zoltán Committed by Gerd Hoffmann
Browse files

audio: add audiodev properties to frontends



Finally add audiodev= options to audio frontends so users can specify
which backend to use when multiple backends exist.  Not specifying an
audiodev= option currently causes the first audiodev to be used, this is
fixed in the next commit.

Example usage: -audiodev pa,id=foo -device AC97,audiodev=foo

Signed-off-by: default avatarKővágó, Zoltán <DirtY.iCE.hu@gmail.com>
Reviewed-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
Message-id: d64db52dda2d0e9d97bc5ab1dd9adf724280fea1.1566168923.git.DirtY.iCE.hu@gmail.com
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent f0b9f36d
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@

#include "qemu/queue.h"
#include "qapi/qapi-types-audio.h"
#include "hw/qdev-properties.h"

typedef void (*audio_callback_fn) (void *opaque, int avail);

@@ -181,4 +182,7 @@ void audio_legacy_help(void);
AudioState *audio_state_by_name(const char *name);
const char *audio_get_id(QEMUSoundCard *card);

#define DEFINE_AUDIO_PROPERTIES(_s, _f)         \
    DEFINE_PROP_AUDIODEV("audiodev", _s, _f)

#endif /* QEMU_AUDIO_H */
+1 −0
Original line number Diff line number Diff line
@@ -1410,6 +1410,7 @@ static int ac97_init (PCIBus *bus)
}

static Property ac97_properties[] = {
    DEFINE_AUDIO_PROPERTIES(AC97LinkState, card),
    DEFINE_PROP_UINT32 ("use_broken_id", AC97LinkState, use_broken_id, 0),
    DEFINE_PROP_END_OF_LIST (),
};
+1 −0
Original line number Diff line number Diff line
@@ -299,6 +299,7 @@ static void adlib_realizefn (DeviceState *dev, Error **errp)
}

static Property adlib_properties[] = {
    DEFINE_AUDIO_PROPERTIES(AdlibState, card),
    DEFINE_PROP_UINT32 ("iobase",  AdlibState, port, 0x220),
    DEFINE_PROP_UINT32 ("freq",    AdlibState, freq,  44100),
    DEFINE_PROP_END_OF_LIST (),
+1 −0
Original line number Diff line number Diff line
@@ -690,6 +690,7 @@ static int cs4231a_init (ISABus *bus)
}

static Property cs4231a_properties[] = {
    DEFINE_AUDIO_PROPERTIES(CSState, card),
    DEFINE_PROP_UINT32 ("iobase",  CSState, port, 0x534),
    DEFINE_PROP_UINT32 ("irq",     CSState, irq,  9),
    DEFINE_PROP_UINT32 ("dma",     CSState, dma,  3),
+6 −1
Original line number Diff line number Diff line
@@ -887,6 +887,11 @@ static int es1370_init (PCIBus *bus)
    return 0;
}

static Property es1370_properties[] = {
    DEFINE_AUDIO_PROPERTIES(ES1370State, card),
    DEFINE_PROP_END_OF_LIST(),
};

static void es1370_class_init (ObjectClass *klass, void *data)
{
    DeviceClass *dc = DEVICE_CLASS (klass);
@@ -903,6 +908,7 @@ static void es1370_class_init (ObjectClass *klass, void *data)
    dc->desc = "ENSONIQ AudioPCI ES1370";
    dc->vmsd = &vmstate_es1370;
    dc->reset = es1370_on_reset;
    dc->props = es1370_properties;
}

static const TypeInfo es1370_info = {
@@ -923,4 +929,3 @@ static void es1370_register_types (void)
}

type_init (es1370_register_types)
Loading