[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 17/20] audio: deprecate -soundhw pcspk
From: |
Gerd Hoffmann |
Subject: |
[PULL 17/20] audio: deprecate -soundhw pcspk |
Date: |
Mon, 6 Jul 2020 21:29:18 +0200 |
Add deprecation message to the audio init function.
Factor out audio initialization and call that from
both audio init and realize, so setting the audiodev
property is enough to properly initialize pcspk.
Add a property alias to the machine type to set the
audio device, so pcspk can be initialized using:
"-machine pcspk-audiodev=<name>"
Using "-global isa-pcspk.audiodev=<name>" works too but
is not recommended.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20200702132525.6849-18-kraxel@redhat.com
---
hw/audio/pcspk.c | 24 +++++++++++++++++++++---
hw/i386/pc.c | 2 ++
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/hw/audio/pcspk.c b/hw/audio/pcspk.c
index c37a3878612e..4c7e339ac2b5 100644
--- a/hw/audio/pcspk.c
+++ b/hw/audio/pcspk.c
@@ -28,6 +28,7 @@
#include "audio/audio.h"
#include "qemu/module.h"
#include "qemu/timer.h"
+#include "qemu/error-report.h"
#include "hw/timer/i8254.h"
#include "migration/vmstate.h"
#include "hw/audio/pcspk.h"
@@ -112,11 +113,15 @@ static void pcspk_callback(void *opaque, int free)
}
}
-static int pcspk_audio_init(ISABus *bus)
+static int pcspk_audio_init(PCSpkState *s)
{
- PCSpkState *s = pcspk_state;
struct audsettings as = {PCSPK_SAMPLE_RATE, 1, AUDIO_FORMAT_U8, 0};
+ if (s->voice) {
+ /* already initialized */
+ return 0;
+ }
+
AUD_register_card(s_spk, &s->card);
s->voice = AUD_open_out(&s->card, s->voice, s_spk, s, pcspk_callback, &as);
@@ -185,6 +190,10 @@ static void pcspk_realizefn(DeviceState *dev, Error **errp)
isa_register_ioport(isadev, &s->ioport, s->iobase);
+ if (s->card.state) {
+ pcspk_audio_init(s);
+ }
+
pcspk_state = s;
}
@@ -236,9 +245,18 @@ static const TypeInfo pcspk_info = {
.class_init = pcspk_class_initfn,
};
+static int pcspk_audio_init_soundhw(ISABus *bus)
+{
+ PCSpkState *s = pcspk_state;
+
+ warn_report("'-soundhw pcspk' is deprecated, "
+ "please set a backend using '-machine pcspk-audiodev=<name>'
instead");
+ return pcspk_audio_init(s);
+}
+
static void pcspk_register(void)
{
type_register_static(&pcspk_info);
- isa_register_soundhw("pcspk", "PC speaker", pcspk_audio_init);
+ isa_register_soundhw("pcspk", "PC speaker", pcspk_audio_init_soundhw);
}
type_init(pcspk_register)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 88785f9dcc70..c45e7bfd864b 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1892,6 +1892,8 @@ static void pc_machine_initfn(Object *obj)
pc_system_flash_create(pcms);
pcms->pcspk = isa_new(TYPE_PC_SPEAKER);
+ object_property_add_alias(OBJECT(pcms), "pcspk-audiodev",
+ OBJECT(pcms->pcspk), "audiodev");
}
static void pc_machine_reset(MachineState *machine)
--
2.18.4
- [PULL 00/20] Audio 20200706 patches, Gerd Hoffmann, 2020/07/06
- [PULL 04/20] audio: deprecate -soundhw ac97, Gerd Hoffmann, 2020/07/06
- [PULL 03/20] audio: add deprecated_register_soundhw, Gerd Hoffmann, 2020/07/06
- [PULL 01/20] stubs: add isa_create_simple, Gerd Hoffmann, 2020/07/06
- [PULL 08/20] audio: deprecate -soundhw gus, Gerd Hoffmann, 2020/07/06
- [PULL 09/20] audio: deprecate -soundhw sb16, Gerd Hoffmann, 2020/07/06
- [PULL 15/20] audio: rework pcspk_init(), Gerd Hoffmann, 2020/07/06
- [PULL 02/20] stubs: add pci_create_simple, Gerd Hoffmann, 2020/07/06
- [PULL 12/20] pc_basic_device_init: drop has_pit arg, Gerd Hoffmann, 2020/07/06
- [PULL 19/20] pcspk: update docs/system/target-i386-desc.rst.inc, Gerd Hoffmann, 2020/07/06
- [PULL 17/20] audio: deprecate -soundhw pcspk,
Gerd Hoffmann <=
- [PULL 18/20] audio: add soundhw deprecation notice, Gerd Hoffmann, 2020/07/06
- [PULL 06/20] audio: deprecate -soundhw adlib, Gerd Hoffmann, 2020/07/06
- [PULL 10/20] audio: deprecate -soundhw hda, Gerd Hoffmann, 2020/07/06
- [PULL 13/20] pc_basic_device_init: drop no_vmport arg, Gerd Hoffmann, 2020/07/06
- [PULL 07/20] audio: deprecate -soundhw cs4231a, Gerd Hoffmann, 2020/07/06
- [PULL 05/20] audio: deprecate -soundhw es1370, Gerd Hoffmann, 2020/07/06
- [PULL 14/20] softmmu: initialize spice and audio earlier, Gerd Hoffmann, 2020/07/06
- [PULL 16/20] audio: create pcspk device early, Gerd Hoffmann, 2020/07/06
- [PULL 20/20] audio: set default value for pcspk.iobase property, Gerd Hoffmann, 2020/07/06
- [PULL 11/20] pc_basic_device_init: pass PCMachineState, Gerd Hoffmann, 2020/07/06