return offset;
}
-static int initial_receive(const struct sr_input *in)
+static int initial_receive(struct sr_input *in)
{
struct sr_datafeed_packet packet;
struct sr_datafeed_meta meta;
/* Shouldn't happen. */
return SR_ERR;
- inc = in->sdi->priv = g_malloc(sizeof(struct context));
+ inc = in->priv = g_malloc(sizeof(struct context));
if (parse_wav_header(in->buf, inc) != SR_OK)
return SR_ERR;
int total_samples, samplenum;
char *s, *d;
- inc = in->sdi->priv;
+ inc = in->priv;
s = in->buf->str + offset;
d = (char *)fdata;
g_string_append_len(in->buf, buf->str, buf->len);
- if (!in->sdi->priv) {
- if (initial_receive(in) != SR_OK)
+ if (!in->priv) {
+ if (initial_receive((struct sr_input *)in) != SR_OK)
return SR_ERR;
if (in->buf->len < MIN_DATA_CHUNK_OFFSET) {
/*
return SR_OK;
}
}
- inc = in->sdi->priv;
+ inc = in->priv;
if (!inc->found_data) {
/* Skip past size of 'fmt ' chunk. */
return SR_OK;
}
+static int cleanup(struct sr_input *in)
+{
+ g_free(in->priv);
+ in->priv = NULL;
+
+ return SR_OK;
+}
+
SR_PRIV struct sr_input_module input_wav = {
.id = "wav",
.name = "WAV",
.format_match = format_match,
.init = init,
.receive = receive,
+ .cleanup = cleanup,
};