diff options
author | mvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-05-22 16:29:54 +0000 |
---|---|---|
committer | mvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-05-22 16:29:54 +0000 |
commit | c1210321e7aeb274076b14fc2f622edf442246fa (patch) | |
tree | bcbbf4eda53cdb8257bbc7add4616e01e31b1ae2 /channels/chan_phone.c | |
parent | 2d9ba021dd38039616c82a4e317f652abe246ba3 (diff) |
- revert change to ast_queue_hangup and create ast_queue_hangup_with_cause
- make data member of the ast_frame struct a named union instead of a void
Recently the ast_queue_hangup function got a new parameter, the hangupcause
Feedback came in that this is no good and that instead a new function should be created.
This I did.
The hangupcause was stored in the seqno member of the ast_frame struct. This is not very
elegant, and since there's already a data member that one should be used.
Problem is, this member was a void *.
Now it's a named union so it can hold a pointer, an uint32 and there's a padding in case someone
wants to store another type in there in the future.
This commit is so massive, because all ast_frame.data uses have to be
altered to ast_frame.data.data
Thanks russellb and kpfleming for the feedback.
(closes issue #12674)
Reported by: mvanbaak
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@117802 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_phone.c')
-rw-r--r-- | channels/chan_phone.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/channels/chan_phone.c b/channels/chan_phone.c index 48b26c160..8ee2cac6a 100644 --- a/channels/chan_phone.c +++ b/channels/chan_phone.c @@ -494,7 +494,7 @@ static struct ast_frame *phone_exception(struct ast_channel *ast) /* Some nice norms */ p->fr.datalen = 0; p->fr.samples = 0; - p->fr.data = NULL; + p->fr.data.ptr = NULL; p->fr.src = "Phone"; p->fr.offset = 0; p->fr.mallocd=0; @@ -553,7 +553,7 @@ static struct ast_frame *phone_read(struct ast_channel *ast) /* Some nice norms */ p->fr.datalen = 0; p->fr.samples = 0; - p->fr.data = NULL; + p->fr.data.ptr = NULL; p->fr.src = "Phone"; p->fr.offset = 0; p->fr.mallocd=0; @@ -575,7 +575,7 @@ static struct ast_frame *phone_read(struct ast_channel *ast) ast_log(LOG_WARNING, "Error reading: %s\n", strerror(errno)); return NULL; } - p->fr.data = p->buf; + p->fr.data.ptr = p->buf; if (p->mode != MODE_FXS) switch(p->buf[0] & 0x3) { case '0': @@ -797,7 +797,7 @@ static int phone_write(struct ast_channel *ast, struct ast_frame *frame) } /* If we get here, we have a frame of Appropriate data */ sofar = 0; - pos = frame->data; + pos = frame->data.ptr; while(sofar < frame->datalen) { /* Write in no more than maxfr sized frames */ expected = frame->datalen - sofar; @@ -808,7 +808,7 @@ static int phone_write(struct ast_channel *ast, struct ast_frame *frame) if (frame->datalen == 4) { if (p->silencesupression) { memset(tmpbuf + 4, 0, sizeof(tmpbuf) - 4); - memcpy(tmpbuf, frame->data, 4); + memcpy(tmpbuf, frame->data.ptr, 4); expected = 24; res = phone_write_buf(p, tmpbuf, expected, maxfr, 0); } |