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 /main/audiohook.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 'main/audiohook.c')
-rw-r--r-- | main/audiohook.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/main/audiohook.c b/main/audiohook.c index 37970174e..0e75cc6cd 100644 --- a/main/audiohook.c +++ b/main/audiohook.c @@ -158,7 +158,7 @@ static struct ast_frame *audiohook_read_frame_single(struct ast_audiohook *audio struct ast_frame frame = { .frametype = AST_FRAME_VOICE, .subclass = AST_FORMAT_SLINEAR, - .data = buf, + .data.ptr = buf, .datalen = sizeof(buf), .samples = samples, }; @@ -185,7 +185,7 @@ static struct ast_frame *audiohook_read_frame_both(struct ast_audiohook *audioho struct ast_frame frame = { .frametype = AST_FRAME_VOICE, .subclass = AST_FORMAT_SLINEAR, - .data = NULL, + .data.ptr = NULL, .datalen = sizeof(buf1), .samples = samples, }; @@ -263,7 +263,7 @@ static struct ast_frame *audiohook_read_frame_both(struct ast_audiohook *audioho final_buf = buf2; /* Make the final buffer part of the frame, so it gets duplicated fine */ - frame.data = final_buf; + frame.data.ptr = final_buf; /* Yahoo, a combined copy of the audio! */ return ast_frdup(&frame); @@ -586,7 +586,7 @@ static struct ast_frame *audio_audiohook_write_list(struct ast_channel *chan, st } AST_LIST_TRAVERSE_SAFE_END /* We take all of the combined whisper sources and combine them into the audio being written out */ - for (i = 0, data1 = middle_frame->data, data2 = combine_buf; i < samples; i++, data1++, data2++) + for (i = 0, data1 = middle_frame->data.ptr, data2 = combine_buf; i < samples; i++, data1++, data2++) ast_slinear_saturated_add(data1, data2); end_frame = middle_frame; } |