From 1a7dafce1dfc3dc2052d0c5d8397e72121291c57 Mon Sep 17 00:00:00 2001 From: malc Date: Thu, 14 May 2009 03:11:35 +0400 Subject: [PATCH] Remove any pretense that there can be more than one AudioState --- audio/audio.c | 71 +++++++++++++++++++++++--------------------------- audio/audio.h | 5 +--- audio/audio_int.h | 2 ++ audio/audio_template.h | 68 ++++++++++++++++++++++------------------------- audio/wavcapture.c | 2 +- hw/ac97.c | 3 +-- hw/adlib.c | 3 +-- hw/cs4231a.c | 3 +-- hw/es1370.c | 3 +-- hw/gus.c | 3 +-- hw/omap2.c | 2 +- hw/pcspk.c | 3 +-- hw/sb16.c | 3 +-- hw/tsc210x.c | 7 ++--- hw/wm8750.c | 3 +-- vnc.c | 2 +- 16 files changed, 80 insertions(+), 103 deletions(-) diff --git a/audio/audio.c b/audio/audio.c index 84d9ae63cf..72a18ec034 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -707,11 +707,11 @@ static void noop_conv (struct st_sample *dst, const void *src, } static CaptureVoiceOut *audio_pcm_capture_find_specific ( - AudioState *s, struct audsettings *as ) { CaptureVoiceOut *cap; + AudioState *s = &glob_audio_state; for (cap = s->cap_head.lh_first; cap; cap = cap->entries.le_next) { if (audio_pcm_info_eq (&cap->hw.info, as)) { @@ -786,8 +786,9 @@ static void audio_detach_capture (HWVoiceOut *hw) } } -static int audio_attach_capture (AudioState *s, HWVoiceOut *hw) +static int audio_attach_capture (HWVoiceOut *hw) { + AudioState *s = &glob_audio_state; CaptureVoiceOut *cap; audio_detach_capture (hw); @@ -1295,7 +1296,7 @@ static void audio_run_out (AudioState *s) HWVoiceOut *hw = NULL; SWVoiceOut *sw; - while ((hw = audio_pcm_hw_find_any_enabled_out (s, hw))) { + while ((hw = audio_pcm_hw_find_any_enabled_out (hw))) { int played; int live, free, nb_live, cleanup_required, prev_rpos; @@ -1390,7 +1391,7 @@ static void audio_run_out (AudioState *s) #ifdef DEBUG_PLIVE dolog ("Finishing with old voice\n"); #endif - audio_close_out (s, sw); + audio_close_out (sw); } sw = sw1; } @@ -1402,7 +1403,7 @@ static void audio_run_in (AudioState *s) { HWVoiceIn *hw = NULL; - while ((hw = audio_pcm_hw_find_any_enabled_in (s, hw))) { + while ((hw = audio_pcm_hw_find_any_enabled_in (hw))) { SWVoiceIn *sw; int captured, min; @@ -1610,8 +1611,8 @@ static int audio_driver_init (AudioState *s, struct audio_driver *drv) s->drv_opaque = drv->init (); if (s->drv_opaque) { - audio_init_nb_voices_out (s, drv); - audio_init_nb_voices_in (s, drv); + audio_init_nb_voices_out (drv); + audio_init_nb_voices_in (drv); s->drv = drv; return 0; } @@ -1630,11 +1631,11 @@ static void audio_vm_change_state_handler (void *opaque, int running, int op = running ? VOICE_ENABLE : VOICE_DISABLE; s->vm_running = running; - while ((hwo = audio_pcm_hw_find_any_enabled_out (s, hwo))) { + while ((hwo = audio_pcm_hw_find_any_enabled_out (hwo))) { hwo->pcm_ops->ctl_out (hwo, op); } - while ((hwi = audio_pcm_hw_find_any_enabled_in (s, hwi))) { + while ((hwi = audio_pcm_hw_find_any_enabled_in (hwi))) { hwi->pcm_ops->ctl_in (hwi, op); } } @@ -1645,7 +1646,7 @@ static void audio_atexit (void) HWVoiceOut *hwo = NULL; HWVoiceIn *hwi = NULL; - while ((hwo = audio_pcm_hw_find_any_enabled_out (s, hwo))) { + while ((hwo = audio_pcm_hw_find_any_enabled_out (hwo))) { SWVoiceCap *sc; hwo->pcm_ops->ctl_out (hwo, VOICE_DISABLE); @@ -1661,7 +1662,7 @@ static void audio_atexit (void) } } - while ((hwi = audio_pcm_hw_find_any_enabled_in (s, hwi))) { + while ((hwi = audio_pcm_hw_find_any_enabled_in (hwi))) { hwi->pcm_ops->ctl_in (hwi, VOICE_DISABLE); hwi->pcm_ops->fini_in (hwi); } @@ -1689,22 +1690,7 @@ static int audio_load (QEMUFile *f, void *opaque, int version_id) return 0; } -void AUD_register_card (AudioState *s, const char *name, QEMUSoundCard *card) -{ - card->audio = s; - card->name = qemu_strdup (name); - memset (&card->entries, 0, sizeof (card->entries)); - LIST_INSERT_HEAD (&s->card_head, card, entries); -} - -void AUD_remove_card (QEMUSoundCard *card) -{ - LIST_REMOVE (card, entries); - card->audio = NULL; - qemu_free (card->name); -} - -AudioState *AUD_init (void) +static void audio_init (void) { size_t i; int done = 0; @@ -1712,7 +1698,7 @@ AudioState *AUD_init (void) AudioState *s = &glob_audio_state; if (s->drv) { - return s; + return; } LIST_INIT (&s->hw_head_out); @@ -1804,24 +1790,33 @@ AudioState *AUD_init (void) LIST_INIT (&s->card_head); register_savevm ("audio", 0, 1, audio_save, audio_load, s); qemu_mod_timer (s->ts, qemu_get_clock (vm_clock) + conf.period.ticks); - return s; } +void AUD_register_card (const char *name, QEMUSoundCard *card) +{ + audio_init (); + card->name = qemu_strdup (name); + memset (&card->entries, 0, sizeof (card->entries)); + LIST_INSERT_HEAD (&glob_audio_state.card_head, card, entries); +} + +void AUD_remove_card (QEMUSoundCard *card) +{ + LIST_REMOVE (card, entries); + qemu_free (card->name); +} + + CaptureVoiceOut *AUD_add_capture ( - AudioState *s, struct audsettings *as, struct audio_capture_ops *ops, void *cb_opaque ) { + AudioState *s = &glob_audio_state; CaptureVoiceOut *cap; struct capture_callback *cb; - if (!s) { - /* XXX suppress */ - s = &glob_audio_state; - } - if (audio_validate_settings (as)) { dolog ("Invalid settings were passed when trying to add capture\n"); audio_print_settings (as); @@ -1837,7 +1832,7 @@ CaptureVoiceOut *AUD_add_capture ( cb->ops = *ops; cb->opaque = cb_opaque; - cap = audio_pcm_capture_find_specific (s, as); + cap = audio_pcm_capture_find_specific (as); if (cap) { LIST_INSERT_HEAD (&cap->cb_head, cb, entries); return cap; @@ -1887,8 +1882,8 @@ CaptureVoiceOut *AUD_add_capture ( LIST_INSERT_HEAD (&cap->cb_head, cb, entries); hw = NULL; - while ((hw = audio_pcm_hw_find_any_out (s, hw))) { - audio_attach_capture (s, hw); + while ((hw = audio_pcm_hw_find_any_out (hw))) { + audio_attach_capture (hw); } return cap; diff --git a/audio/audio.h b/audio/audio.h index 4aaeb965e3..3fb2c8bbec 100644 --- a/audio/audio.h +++ b/audio/audio.h @@ -78,7 +78,6 @@ typedef struct CaptureVoiceOut CaptureVoiceOut; typedef struct SWVoiceIn SWVoiceIn; typedef struct QEMUSoundCard { - AudioState *audio; char *name; LIST_ENTRY (QEMUSoundCard) entries; } QEMUSoundCard; @@ -94,12 +93,10 @@ void AUD_log (const char *cap, const char *fmt, ...) #endif ; -AudioState *AUD_init (void); void AUD_help (void); -void AUD_register_card (AudioState *s, const char *name, QEMUSoundCard *card); +void AUD_register_card (const char *name, QEMUSoundCard *card); void AUD_remove_card (QEMUSoundCard *card); CaptureVoiceOut *AUD_add_capture ( - AudioState *s, struct audsettings *as, struct audio_capture_ops *ops, void *opaque diff --git a/audio/audio_int.h b/audio/audio_int.h index fc87458f82..0abed38ec4 100644 --- a/audio/audio_int.h +++ b/audio/audio_int.h @@ -104,6 +104,7 @@ typedef struct HWVoiceIn { } HWVoiceIn; struct SWVoiceOut { + QEMUSoundCard *card; struct audio_pcm_info info; t_sample *conv; int64_t ratio; @@ -120,6 +121,7 @@ struct SWVoiceOut { }; struct SWVoiceIn { + QEMUSoundCard *card; int active; struct audio_pcm_info info; int64_t ratio; diff --git a/audio/audio_template.h b/audio/audio_template.h index 369ed3b9e5..0ffca652f5 100644 --- a/audio/audio_template.h +++ b/audio/audio_template.h @@ -36,11 +36,9 @@ #define HWBUF hw->conv_buf #endif -static void glue (audio_init_nb_voices_, TYPE) ( - AudioState *s, - struct audio_driver *drv - ) +static void glue (audio_init_nb_voices_, TYPE) (struct audio_driver *drv) { + AudioState *s = &glob_audio_state; int max_voices = glue (drv->max_voices_, TYPE); int voice_size = glue (drv->voice_size_, TYPE); @@ -194,8 +192,9 @@ static void glue (audio_pcm_hw_del_sw_, TYPE) (SW *sw) LIST_REMOVE (sw, entries); } -static void glue (audio_pcm_hw_gc_, TYPE) (AudioState *s, HW **hwp) +static void glue (audio_pcm_hw_gc_, TYPE) (HW **hwp) { + AudioState *s = &glob_audio_state; HW *hw = *hwp; if (!hw->sw_head.lh_first) { @@ -211,14 +210,15 @@ static void glue (audio_pcm_hw_gc_, TYPE) (AudioState *s, HW **hwp) } } -static HW *glue (audio_pcm_hw_find_any_, TYPE) (AudioState *s, HW *hw) +static HW *glue (audio_pcm_hw_find_any_, TYPE) (HW *hw) { - return hw ? hw->entries.le_next : s->glue (hw_head_, TYPE).lh_first; + AudioState *s = &glob_audio_state; + return hw ? hw->entries.le_next : glue (s->hw_head_, TYPE).lh_first; } -static HW *glue (audio_pcm_hw_find_any_enabled_, TYPE) (AudioState *s, HW *hw) +static HW *glue (audio_pcm_hw_find_any_enabled_, TYPE) (HW *hw) { - while ((hw = glue (audio_pcm_hw_find_any_, TYPE) (s, hw))) { + while ((hw = glue (audio_pcm_hw_find_any_, TYPE) (hw))) { if (hw->enabled) { return hw; } @@ -227,12 +227,11 @@ static HW *glue (audio_pcm_hw_find_any_enabled_, TYPE) (AudioState *s, HW *hw) } static HW *glue (audio_pcm_hw_find_specific_, TYPE) ( - AudioState *s, HW *hw, struct audsettings *as ) { - while ((hw = glue (audio_pcm_hw_find_any_, TYPE) (s, hw))) { + while ((hw = glue (audio_pcm_hw_find_any_, TYPE) (hw))) { if (audio_pcm_info_eq (&hw->info, as)) { return hw; } @@ -240,10 +239,10 @@ static HW *glue (audio_pcm_hw_find_specific_, TYPE) ( return NULL; } -static HW *glue (audio_pcm_hw_add_new_, TYPE) (AudioState *s, - struct audsettings *as) +static HW *glue (audio_pcm_hw_add_new_, TYPE) (struct audsettings *as) { HW *hw; + AudioState *s = &glob_audio_state; struct audio_driver *drv = s->drv; if (!glue (s->nb_hw_voices_, TYPE)) { @@ -298,7 +297,7 @@ static HW *glue (audio_pcm_hw_add_new_, TYPE) (AudioState *s, LIST_INSERT_HEAD (&s->glue (hw_head_, TYPE), hw, entries); glue (s->nb_hw_voices_, TYPE) -= 1; #ifdef DAC - audio_attach_capture (s, hw); + audio_attach_capture (hw); #endif return hw; @@ -309,33 +308,31 @@ static HW *glue (audio_pcm_hw_add_new_, TYPE) (AudioState *s, return NULL; } -static HW *glue (audio_pcm_hw_add_, TYPE) (AudioState *s, - struct audsettings *as) +static HW *glue (audio_pcm_hw_add_, TYPE) (struct audsettings *as) { HW *hw; if (glue (conf.fixed_, TYPE).enabled && glue (conf.fixed_, TYPE).greedy) { - hw = glue (audio_pcm_hw_add_new_, TYPE) (s, as); + hw = glue (audio_pcm_hw_add_new_, TYPE) (as); if (hw) { return hw; } } - hw = glue (audio_pcm_hw_find_specific_, TYPE) (s, NULL, as); + hw = glue (audio_pcm_hw_find_specific_, TYPE) (NULL, as); if (hw) { return hw; } - hw = glue (audio_pcm_hw_add_new_, TYPE) (s, as); + hw = glue (audio_pcm_hw_add_new_, TYPE) (as); if (hw) { return hw; } - return glue (audio_pcm_hw_find_any_, TYPE) (s, NULL); + return glue (audio_pcm_hw_find_any_, TYPE) (NULL); } static SW *glue (audio_pcm_create_voice_pair_, TYPE) ( - AudioState *s, const char *sw_name, struct audsettings *as ) @@ -358,7 +355,7 @@ static SW *glue (audio_pcm_create_voice_pair_, TYPE) ( goto err1; } - hw = glue (audio_pcm_hw_add_, TYPE) (s, &hw_as); + hw = glue (audio_pcm_hw_add_, TYPE) (&hw_as); if (!hw) { goto err2; } @@ -373,31 +370,30 @@ static SW *glue (audio_pcm_create_voice_pair_, TYPE) ( err3: glue (audio_pcm_hw_del_sw_, TYPE) (sw); - glue (audio_pcm_hw_gc_, TYPE) (s, &hw); + glue (audio_pcm_hw_gc_, TYPE) (&hw); err2: qemu_free (sw); err1: return NULL; } -static void glue (audio_close_, TYPE) (AudioState *s, SW *sw) +static void glue (audio_close_, TYPE) (SW *sw) { glue (audio_pcm_sw_fini_, TYPE) (sw); glue (audio_pcm_hw_del_sw_, TYPE) (sw); - glue (audio_pcm_hw_gc_, TYPE) (s, &sw->hw); + glue (audio_pcm_hw_gc_, TYPE) (&sw->hw); qemu_free (sw); } void glue (AUD_close_, TYPE) (QEMUSoundCard *card, SW *sw) { if (sw) { - if (audio_bug (AUDIO_FUNC, !card || !card->audio)) { - dolog ("card=%p card->audio=%p\n", - card, card ? card->audio : NULL); + if (audio_bug (AUDIO_FUNC, !card)) { + dolog ("card=%p\n", card); return; } - glue (audio_close_, TYPE) (card->audio, sw); + glue (audio_close_, TYPE) (sw); } } @@ -410,7 +406,7 @@ SW *glue (AUD_open_, TYPE) ( struct audsettings *as ) { - AudioState *s; + AudioState *s = &glob_audio_state; #ifdef DAC int live = 0; SW *old_sw = NULL; @@ -419,15 +415,12 @@ SW *glue (AUD_open_, TYPE) ( ldebug ("open %s, freq %d, nchannels %d, fmt %d\n", name, as->freq, as->nchannels, as->fmt); - if (audio_bug (AUDIO_FUNC, - !card || !card->audio || !name || !callback_fn || !as)) { - dolog ("card=%p card->audio=%p name=%p callback_fn=%p as=%p\n", - card, card ? card->audio : NULL, name, callback_fn, as); + if (audio_bug (AUDIO_FUNC, !card || !name || !callback_fn || !as)) { + dolog ("card=%p name=%p callback_fn=%p as=%p\n", + card, name, callback_fn, as); goto fail; } - s = card->audio; - if (audio_bug (AUDIO_FUNC, audio_validate_settings (as))) { audio_print_settings (as); goto fail; @@ -485,7 +478,7 @@ SW *glue (AUD_open_, TYPE) ( } } else { - sw = glue (audio_pcm_create_voice_pair_, TYPE) (s, name, as); + sw = glue (audio_pcm_create_voice_pair_, TYPE) (name, as); if (!sw) { dolog ("Failed to create voice `%s'\n", name); return NULL; @@ -493,6 +486,7 @@ SW *glue (AUD_open_, TYPE) ( } if (sw) { + sw->card = card; sw->vol = nominal_volume; sw->callback.fn = callback_fn; sw->callback.opaque = callback_opaque; diff --git a/audio/wavcapture.c b/audio/wavcapture.c index bead458e86..1f49cd1fec 100644 --- a/audio/wavcapture.c +++ b/audio/wavcapture.c @@ -145,7 +145,7 @@ int wav_start_capture (CaptureState *s, const char *path, int freq, qemu_put_buffer (wav->f, hdr, sizeof (hdr)); - cap = AUD_add_capture (NULL, &as, &ops, wav); + cap = AUD_add_capture (&as, &ops, wav); if (!cap) { monitor_printf(mon, "Failed to add audio capture\n"); qemu_free (wav->path); diff --git a/hw/ac97.c b/hw/ac97.c index f2ae4b3b19..0ff294109d 100644 --- a/hw/ac97.c +++ b/hw/ac97.c @@ -1310,7 +1310,6 @@ static void ac97_on_reset (void *opaque) int ac97_init (PCIBus *bus) { - AudioState *audio = AUD_init(); PCIAC97LinkState *d; AC97LinkState *s; uint8_t *c; @@ -1371,7 +1370,7 @@ int ac97_init (PCIBus *bus) pci_register_io_region (&d->dev, 1, 64 * 4, PCI_ADDRESS_SPACE_IO, ac97_map); register_savevm ("ac97", 0, 2, ac97_save, ac97_load, s); qemu_register_reset (ac97_on_reset, s); - AUD_register_card (audio, "ac97", &s->card); + AUD_register_card ("ac97", &s->card); ac97_on_reset (s); return 0; } diff --git a/hw/adlib.c b/hw/adlib.c index 8c2331955b..ea46931bc6 100644 --- a/hw/adlib.c +++ b/hw/adlib.c @@ -278,7 +278,6 @@ static void Adlib_fini (AdlibState *s) int Adlib_init (qemu_irq *pic) { - AudioState *audio = AUD_init(); AdlibState *s = &glob_adlib; struct audsettings as; @@ -308,7 +307,7 @@ int Adlib_init (qemu_irq *pic) as.fmt = AUD_FMT_S16; as.endianness = AUDIO_HOST_ENDIANNESS; - AUD_register_card (audio, "adlib", &s->card); + AUD_register_card ("adlib", &s->card); s->voice = AUD_open_out ( &s->card, diff --git a/hw/cs4231a.c b/hw/cs4231a.c index 4212ed1b13..33c9460722 100644 --- a/hw/cs4231a.c +++ b/hw/cs4231a.c @@ -638,7 +638,6 @@ static int cs_load(QEMUFile *f, void *opaque, int version_id) int cs4231a_init (qemu_irq *pic) { - AudioState *audio = AUD_init(); int i; CSState *s; @@ -660,6 +659,6 @@ int cs4231a_init (qemu_irq *pic) qemu_register_reset (cs_reset, s); cs_reset (s); - AUD_register_card (audio,"cs4231a", &s->card); + AUD_register_card ("cs4231a", &s->card); return 0; } diff --git a/hw/es1370.c b/hw/es1370.c index 99ee208a49..6589547167 100644 --- a/hw/es1370.c +++ b/hw/es1370.c @@ -1007,7 +1007,6 @@ static void es1370_on_reset (void *opaque) int es1370_init (PCIBus *bus) { - AudioState *audio = AUD_init(); PCIES1370State *d; ES1370State *s; uint8_t *c; @@ -1058,7 +1057,7 @@ int es1370_init (PCIBus *bus) register_savevm ("es1370", 0, 2, es1370_save, es1370_load, s); qemu_register_reset (es1370_on_reset, s); - AUD_register_card (audio, "es1370", &s->card); + AUD_register_card ("es1370", &s->card); es1370_reset (s); return 0; } diff --git a/hw/gus.c b/hw/gus.c index 44f3e253a9..8915d43467 100644 --- a/hw/gus.c +++ b/hw/gus.c @@ -252,13 +252,12 @@ static int GUS_load (QEMUFile *f, void *opaque, int version_id) int GUS_init (qemu_irq *pic) { - AudioState *audio = AUD_init(); GUSState *s; struct audsettings as; s = qemu_mallocz (sizeof (*s)); - AUD_register_card (audio, "gus", &s->card); + AUD_register_card ("gus", &s->card); as.freq = conf.freq; as.nchannels = 2; diff --git a/hw/omap2.c b/hw/omap2.c index 82ea618d33..8aaa9c9959 100644 --- a/hw/omap2.c +++ b/hw/omap2.c @@ -1973,7 +1973,7 @@ struct omap_eac_s *omap_eac_init(struct omap_target_agent_s *ta, omap_eac_reset(s); #ifdef HAS_AUDIO - AUD_register_card(AUD_init(), "OMAP EAC", &s->codec.card); + AUD_register_card("OMAP EAC", &s->codec.card); iomemtype = cpu_register_io_memory(0, omap_eac_readfn, omap_eac_writefn, s); diff --git a/hw/pcspk.c b/hw/pcspk.c index 0dad161a83..26a0ecb9df 100644 --- a/hw/pcspk.c +++ b/hw/pcspk.c @@ -98,11 +98,10 @@ static void pcspk_callback(void *opaque, int free) int pcspk_audio_init(qemu_irq *pic) { - AudioState *audio = AUD_init(); PCSpkState *s = &pcspk_state; struct audsettings as = {PCSPK_SAMPLE_RATE, 1, AUD_FMT_U8, 0}; - AUD_register_card(audio, s_spk, &s->card); + AUD_register_card(s_spk, &s->card); s->voice = AUD_open_out(&s->card, s->voice, s_spk, s, pcspk_callback, &as); if (!s->voice) { diff --git a/hw/sb16.c b/hw/sb16.c index 32e6a28402..218c0bac9d 100644 --- a/hw/sb16.c +++ b/hw/sb16.c @@ -1400,7 +1400,6 @@ static int SB_load (QEMUFile *f, void *opaque, int version_id) int SB16_init (qemu_irq *pic) { - AudioState *audio = AUD_init(); SB16State *s; int i; static const uint8_t dsp_write_ports[] = {0x6, 0xc}; @@ -1447,6 +1446,6 @@ int SB16_init (qemu_irq *pic) s->can_write = 1; register_savevm ("sb16", 0, 1, SB_save, SB_load, s); - AUD_register_card (audio, "sb16", &s->card); + AUD_register_card ("sb16", &s->card); return 0; } diff --git a/hw/tsc210x.c b/hw/tsc210x.c index 316156db8a..16874e060d 100644 --- a/hw/tsc210x.c +++ b/hw/tsc210x.c @@ -82,7 +82,6 @@ typedef struct { SWVoiceOut *dac_voice[1]; int i2s_rx_rate; int i2s_tx_rate; - AudioState *audio; int tr[8]; @@ -1117,7 +1116,6 @@ uWireSlave *tsc2102_init(qemu_irq pint) s->pint = pint; s->model = 0x2102; s->name = "tsc2102"; - s->audio = AUD_init();; s->tr[0] = 0; s->tr[1] = 1; @@ -1143,7 +1141,7 @@ uWireSlave *tsc2102_init(qemu_irq pint) qemu_add_mouse_event_handler(tsc210x_touchscreen_event, s, 1, "QEMU TSC2102-driven Touchscreen"); - AUD_register_card(s->audio, s->name, &s->card); + AUD_register_card(s->name, &s->card); qemu_register_reset((void *) tsc210x_reset, s); register_savevm(s->name, -1, 0, @@ -1169,7 +1167,6 @@ uWireSlave *tsc2301_init(qemu_irq penirq, qemu_irq kbirq, qemu_irq dav) s->davint = dav; s->model = 0x2301; s->name = "tsc2301"; - s->audio = AUD_init(); s->tr[0] = 0; s->tr[1] = 1; @@ -1195,7 +1192,7 @@ uWireSlave *tsc2301_init(qemu_irq penirq, qemu_irq kbirq, qemu_irq dav) qemu_add_mouse_event_handler(tsc210x_touchscreen_event, s, 1, "QEMU TSC2301-driven Touchscreen"); - AUD_register_card(s->audio, s->name, &s->card); + AUD_register_card(s->name, &s->card); qemu_register_reset((void *) tsc210x_reset, s); register_savevm(s->name, -1, 0, tsc210x_save, tsc210x_load, s); diff --git a/hw/wm8750.c b/hw/wm8750.c index 3a428c6221..bb5106dca5 100644 --- a/hw/wm8750.c +++ b/hw/wm8750.c @@ -647,14 +647,13 @@ static int wm8750_load(QEMUFile *f, void *opaque, int version_id) i2c_slave *wm8750_init(i2c_bus *bus) { - AudioState *audio = AUD_init(); WM8750State *s = (WM8750State *) i2c_slave_init(bus, 0, sizeof(WM8750State)); s->i2c.event = wm8750_event; s->i2c.recv = wm8750_rx; s->i2c.send = wm8750_tx; - AUD_register_card(audio, CODEC, &s->card); + AUD_register_card(CODEC, &s->card); wm8750_reset(&s->i2c); register_savevm(CODEC, -1, 0, wm8750_save, wm8750_load, s); diff --git a/vnc.c b/vnc.c index b11e22ba52..ad3c1ce151 100644 --- a/vnc.c +++ b/vnc.c @@ -855,7 +855,7 @@ static void audio_add(VncState *vs) ops.destroy = audio_capture_destroy; ops.capture = audio_capture; - vs->audio_cap = AUD_add_capture(NULL, &vs->as, &ops, vs); + vs->audio_cap = AUD_add_capture(&vs->as, &ops, vs); if (!vs->audio_cap) { monitor_printf(mon, "Failed to add audio capture\n"); } -- 2.11.4.GIT