qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Gerd Hoffmann" <kraxel@redhat.com>,
	"Kővágó, Zoltán" <DirtY.iCE.hu@gmail.com>
Subject: [Qemu-devel] [PULL 09/20] wavaudio: do not use global variables
Date: Mon, 15 Jun 2015 14:28:00 +0200	[thread overview]
Message-ID: <1434371291-6994-10-git-send-email-kraxel@redhat.com> (raw)
In-Reply-To: <1434371291-6994-1-git-send-email-kraxel@redhat.com>

From: Kővágó, Zoltán <dirty.ice.hu@gmail.com>

Signed-off-by: Kővágó, Zoltán <DirtY.iCE.hu@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 audio/wavaudio.c | 37 +++++++++++++++++++++----------------
 1 file changed, 21 insertions(+), 16 deletions(-)

diff --git a/audio/wavaudio.c b/audio/wavaudio.c
index 09083da..c586020 100644
--- a/audio/wavaudio.c
+++ b/audio/wavaudio.c
@@ -36,15 +36,10 @@ typedef struct WAVVoiceOut {
     int total_samples;
 } WAVVoiceOut;
 
-static struct {
+typedef struct {
     struct audsettings settings;
     const char *wav_path;
-} conf = {
-    .settings.freq      = 44100,
-    .settings.nchannels = 2,
-    .settings.fmt       = AUD_FMT_S16,
-    .wav_path           = "qemu.wav"
-};
+} WAVConf;
 
 static int wav_run_out (HWVoiceOut *hw, int live)
 {
@@ -116,7 +111,8 @@ static int wav_init_out(HWVoiceOut *hw, struct audsettings *as,
         0x02, 0x00, 0x44, 0xac, 0x00, 0x00, 0x10, 0xb1, 0x02, 0x00, 0x04,
         0x00, 0x10, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00
     };
-    struct audsettings wav_as = conf.settings;
+    WAVConf *conf = drv_opaque;
+    struct audsettings wav_as = conf->settings;
 
     stereo = wav_as.nchannels == 2;
     switch (wav_as.fmt) {
@@ -154,10 +150,10 @@ static int wav_init_out(HWVoiceOut *hw, struct audsettings *as,
     le_store (hdr + 28, hw->info.freq << (bits16 + stereo), 4);
     le_store (hdr + 32, 1 << (bits16 + stereo), 2);
 
-    wav->f = fopen (conf.wav_path, "wb");
+    wav->f = fopen (conf->wav_path, "wb");
     if (!wav->f) {
         dolog ("Failed to open wave file `%s'\nReason: %s\n",
-               conf.wav_path, strerror (errno));
+               conf->wav_path, strerror (errno));
         g_free (wav->pcm_buf);
         wav->pcm_buf = NULL;
         return -1;
@@ -225,40 +221,49 @@ static int wav_ctl_out (HWVoiceOut *hw, int cmd, ...)
     return 0;
 }
 
+static WAVConf glob_conf = {
+    .settings.freq      = 44100,
+    .settings.nchannels = 2,
+    .settings.fmt       = AUD_FMT_S16,
+    .wav_path           = "qemu.wav"
+};
+
 static void *wav_audio_init (void)
 {
-    return &conf;
+    WAVConf *conf = g_malloc(sizeof(WAVConf));
+    *conf = glob_conf;
+    return conf;
 }
 
 static void wav_audio_fini (void *opaque)
 {
-    (void) opaque;
     ldebug ("wav_fini");
+    g_free(opaque);
 }
 
 static struct audio_option wav_options[] = {
     {
         .name  = "FREQUENCY",
         .tag   = AUD_OPT_INT,
-        .valp  = &conf.settings.freq,
+        .valp  = &glob_conf.settings.freq,
         .descr = "Frequency"
     },
     {
         .name  = "FORMAT",
         .tag   = AUD_OPT_FMT,
-        .valp  = &conf.settings.fmt,
+        .valp  = &glob_conf.settings.fmt,
         .descr = "Format"
     },
     {
         .name  = "DAC_FIXED_CHANNELS",
         .tag   = AUD_OPT_INT,
-        .valp  = &conf.settings.nchannels,
+        .valp  = &glob_conf.settings.nchannels,
         .descr = "Number of channels (1 - mono, 2 - stereo)"
     },
     {
         .name  = "PATH",
         .tag   = AUD_OPT_STR,
-        .valp  = &conf.wav_path,
+        .valp  = &glob_conf.wav_path,
         .descr = "Path to wave file"
     },
     { /* End of list */ }
-- 
1.8.3.1

  parent reply	other threads:[~2015-06-15 12:28 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-15 12:27 [Qemu-devel] [PULL 00/20] audio patch queue Gerd Hoffmann
2015-06-15 12:27 ` [Qemu-devel] [PULL 01/20] audio: remove esd backend Gerd Hoffmann
2015-06-15 12:27 ` [Qemu-devel] [PULL 02/20] audio: remove fmod backend Gerd Hoffmann
2015-06-15 12:27 ` [Qemu-devel] [PULL 03/20] audio: remove winwave audio driver Gerd Hoffmann
2015-06-15 12:27 ` [Qemu-devel] [PULL 04/20] only enable dsound in case the header file is present Gerd Hoffmann
2015-06-15 12:27 ` [Qemu-devel] [PULL 05/20] audio: expose drv_opaque to init_out and init_in Gerd Hoffmann
2015-06-15 12:27 ` [Qemu-devel] [PULL 06/20] paaudio: do not use global variables Gerd Hoffmann
2015-06-15 12:27 ` [Qemu-devel] [PULL 07/20] alsaaudio: " Gerd Hoffmann
2015-06-15 12:27 ` [Qemu-devel] [PULL 08/20] ossaudio: " Gerd Hoffmann
2015-06-15 12:28 ` Gerd Hoffmann [this message]
2015-06-15 12:28 ` [Qemu-devel] [PULL 10/20] paaudio: fix possible resource leak Gerd Hoffmann
2015-06-15 12:28 ` [Qemu-devel] [PULL 11/20] dsoundaudio: do not use global variables Gerd Hoffmann
2015-06-15 12:28 ` [Qemu-devel] [PULL 12/20] coreaudio: do not use global variables where possible Gerd Hoffmann
2015-06-15 12:28 ` [Qemu-devel] [PULL 13/20] sdlaudio: do not allow multiple instances Gerd Hoffmann
2015-06-15 12:28 ` [Qemu-devel] [PULL 14/20] MAINTAINERS: remove malc from audio Gerd Hoffmann
2015-06-15 12:28 ` [Qemu-devel] [PULL 15/20] audio: remove LOG_TO_MONITOR along with default_mon Gerd Hoffmann
2015-06-15 12:28 ` [Qemu-devel] [PULL 16/20] audio: remove plive Gerd Hoffmann
2015-06-15 12:28 ` [Qemu-devel] [PULL 17/20] dsoundaudio: remove *_retries kludges Gerd Hoffmann
2015-06-15 12:28 ` [Qemu-devel] [PULL 18/20] dsoundaudio: remove primary buffer Gerd Hoffmann
2015-06-15 12:28 ` [Qemu-devel] [PULL 19/20] alsaaudio: use trace events instead of verbose Gerd Hoffmann
2015-06-15 12:28 ` [Qemu-devel] [PULL 20/20] ossaudio: use trace events instead of debug config flag Gerd Hoffmann
2015-06-15 17:03 ` [Qemu-devel] [PULL 00/20] audio patch queue Peter Maydell
2015-06-15 17:05   ` Peter Maydell
2015-06-16  7:50     ` Gerd Hoffmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1434371291-6994-10-git-send-email-kraxel@redhat.com \
    --to=kraxel@redhat.com \
    --cc=DirtY.iCE.hu@gmail.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).