summaryrefslogtreecommitdiff
path: root/channels/chan_phone.c
diff options
context:
space:
mode:
authorMichiel van Baak <michiel@vanbaak.info>2008-05-22 16:29:54 +0000
committerMichiel van Baak <michiel@vanbaak.info>2008-05-22 16:29:54 +0000
commitf1e9371da8b502999b9aec1db7f68635395a7b6a (patch)
treebcbbf4eda53cdb8257bbc7add4616e01e31b1ae2 /channels/chan_phone.c
parent2c7760e6262c97afc19037890242299421d62157 (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: https://origsvn.digium.com/svn/asterisk/trunk@117802 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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);
}