aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_phone.c
diff options
context:
space:
mode:
authormvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b>2008-05-22 16:29:54 +0000
committermvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b>2008-05-22 16:29:54 +0000
commitc1210321e7aeb274076b14fc2f622edf442246fa (patch)
treebcbbf4eda53cdb8257bbc7add4616e01e31b1ae2 /channels/chan_phone.c
parent2d9ba021dd38039616c82a4e317f652abe246ba3 (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.c10
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);
}