]> git.proxmox.com Git - qemu.git/commitdiff
Remove any pretense that there can be more than one AudioState
authormalc <av1474@comtv.ru>
Wed, 13 May 2009 23:11:35 +0000 (03:11 +0400)
committermalc <av1474@comtv.ru>
Wed, 13 May 2009 23:20:43 +0000 (03:20 +0400)
16 files changed:
audio/audio.c
audio/audio.h
audio/audio_int.h
audio/audio_template.h
audio/wavcapture.c
hw/ac97.c
hw/adlib.c
hw/cs4231a.c
hw/es1370.c
hw/gus.c
hw/omap2.c
hw/pcspk.c
hw/sb16.c
hw/tsc210x.c
hw/wm8750.c
vnc.c

index 84d9ae63cfd6081e7558f236d27746358190099d..72a18ec034f5eec445e294f45a6b8c5d4393c67e 100644 (file)
@@ -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;
 
index 4aaeb965e3f0f0974649e31b42d8a93f9f03b286..3fb2c8bbec9862319bcac654cbcafe833ca4e102 100644 (file)
@@ -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
index fc87458f82f390ad6fcbb6181090f4554ad92b94..0abed38ec4cbbc719e090ef1cc5ff96564c45f36 100644 (file)
@@ -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;
index 369ed3b9e5d5b456817127851ffb3d00ee77c534..0ffca652f5b68ee497c9607852231ee874db7ea4 100644 (file)
 #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;
index bead458e8653a151eb44d6b0f12fc4f10684d853..1f49cd1fecf0aff360a19b35130056709863c596 100644 (file)
@@ -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);
index f2ae4b3b1948937b00bd3f45728bfe4e63f7ba34..0ff294109de47726dc7135c6e569df9ff2785ddb 100644 (file)
--- 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;
 }
index 8c2331955bf403f3aae84ed937825a9a70171b79..ea46931bc6c8234562ae531c7026b73cf6c8c920 100644 (file)
@@ -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,
index 4212ed1b13c401dd3fd5f6894d440b7df2c37370..33c9460722935ed563203ef64a9fc8ea9c6d21e8 100644 (file)
@@ -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;
 }
index 99ee208a49250ed50a07ee54a8c3a8d33a8ddfe8..65895471673bdfcff8d822edea5c5ac5e0280181 100644 (file)
@@ -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;
 }
index 44f3e253a997069cd5ab3520017a6241b58be07c..8915d434674ede70630b60b5683184bf949ab7f9 100644 (file)
--- 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;
index 82ea618d334426aa654d2f113966bd3655b3cf16..8aaa9c995943d2f1cc2ade42eccdfe6c19526b5b 100644 (file)
@@ -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);
index 0dad161a830d64095d2e968ebf09101772e0b448..26a0ecb9dfb8612e8fe8eb9dacfca775cc81ecc8 100644 (file)
@@ -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) {
index 32e6a28402d2475ab9ab6696503227a21853a455..218c0bac9da1a84cb6a3c2a7b1bc3be877c6e91d 100644 (file)
--- 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;
 }
index 316156db8a4bd3177c48490a68d94c711e0ed41d..16874e060da133bcc8ef401db3e83b87ba991584 100644 (file)
@@ -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);
index 3a428c6221d592b571d290c6cc2647617802feaa..bb5106dca5de0cccfd524e148271c86f990a96d7 100644 (file)
@@ -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 b11e22ba52d64bbd47084d03b0ce4584ccfa233b..ad3c1ce151f6bedc7b2c90c5a652a6520aaeb492 100644 (file)
--- 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");
     }