summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/audioio.cc13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/audioio.cc b/src/audioio.cc
index eec9836..55e0b90 100644
--- a/src/audioio.cc
+++ b/src/audioio.cc
@@ -77,16 +77,13 @@ struct aio_t *aio_init(int *err,
return NULL;
}
- struct aio_t *h = new aio_t;
- memset(h, 0, sizeof(struct aio_t));
- h->magic = MAGIC;
-
-
+ struct aio_t *h = (struct aio_t*)calloc(sizeof(struct aio_t), 1);
if(h == NULL) {
*err = OUT_OF_MEMORY;
return NULL;
}
+ h->magic = MAGIC;
h->device = new Device(device);
if(playback_device != NULL && strlen(playback_device) > 0) {
@@ -129,7 +126,7 @@ struct aio_t *aio_init(int *err,
if(h->source_mixer) delete h->source_mixer;
if(h->sink) delete h->sink;
if(h->sink_mixer) delete h->sink_mixer;
- delete h;
+ free(h);
return NULL;
}
@@ -290,7 +287,7 @@ int aio_get_mute(struct aio_t *h, const char *name, int *muted)
return NO_SUCH_CHANNEL;
}
- m->setMuted(muted);
+ *muted = m->muted()?1:0;
return 0;
}
@@ -324,7 +321,7 @@ int aio_close(struct aio_t *h)
if(h->source_mixer) delete h->source_mixer;
if(h->sink) delete h->sink;
if(h->sink_mixer) delete h->sink_mixer;
- delete h;
+ free(h);
return 0;
}