mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-20 16:50:14 +00:00
ast_channel opaquification of pointers and integral types
Review: https://reviewboard.asterisk.org/r/1753/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@356042 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -434,30 +434,32 @@ int ast_audiohook_attach(struct ast_channel *chan, struct ast_audiohook *audioho
|
||||
{
|
||||
ast_channel_lock(chan);
|
||||
|
||||
if (!chan->audiohooks) {
|
||||
if (!ast_channel_audiohooks(chan)) {
|
||||
struct ast_audiohook_list *ahlist;
|
||||
/* Whoops... allocate a new structure */
|
||||
if (!(chan->audiohooks = ast_calloc(1, sizeof(*chan->audiohooks)))) {
|
||||
if (!(ahlist = ast_calloc(1, sizeof(*ahlist)))) {
|
||||
ast_channel_unlock(chan);
|
||||
return -1;
|
||||
}
|
||||
AST_LIST_HEAD_INIT_NOLOCK(&chan->audiohooks->spy_list);
|
||||
AST_LIST_HEAD_INIT_NOLOCK(&chan->audiohooks->whisper_list);
|
||||
AST_LIST_HEAD_INIT_NOLOCK(&chan->audiohooks->manipulate_list);
|
||||
ast_channel_audiohooks_set(chan, ahlist);
|
||||
AST_LIST_HEAD_INIT_NOLOCK(&ast_channel_audiohooks(chan)->spy_list);
|
||||
AST_LIST_HEAD_INIT_NOLOCK(&ast_channel_audiohooks(chan)->whisper_list);
|
||||
AST_LIST_HEAD_INIT_NOLOCK(&ast_channel_audiohooks(chan)->manipulate_list);
|
||||
/* This sample rate will adjust as necessary when writing to the list. */
|
||||
chan->audiohooks->list_internal_samp_rate = 8000;
|
||||
ast_channel_audiohooks(chan)->list_internal_samp_rate = 8000;
|
||||
}
|
||||
|
||||
/* Drop into respective list */
|
||||
if (audiohook->type == AST_AUDIOHOOK_TYPE_SPY)
|
||||
AST_LIST_INSERT_TAIL(&chan->audiohooks->spy_list, audiohook, list);
|
||||
AST_LIST_INSERT_TAIL(&ast_channel_audiohooks(chan)->spy_list, audiohook, list);
|
||||
else if (audiohook->type == AST_AUDIOHOOK_TYPE_WHISPER)
|
||||
AST_LIST_INSERT_TAIL(&chan->audiohooks->whisper_list, audiohook, list);
|
||||
AST_LIST_INSERT_TAIL(&ast_channel_audiohooks(chan)->whisper_list, audiohook, list);
|
||||
else if (audiohook->type == AST_AUDIOHOOK_TYPE_MANIPULATE)
|
||||
AST_LIST_INSERT_TAIL(&chan->audiohooks->manipulate_list, audiohook, list);
|
||||
AST_LIST_INSERT_TAIL(&ast_channel_audiohooks(chan)->manipulate_list, audiohook, list);
|
||||
|
||||
|
||||
audiohook_set_internal_rate(audiohook, chan->audiohooks->list_internal_samp_rate, 1);
|
||||
audiohook_list_set_samplerate_compatibility(chan->audiohooks);
|
||||
audiohook_set_internal_rate(audiohook, ast_channel_audiohooks(chan)->list_internal_samp_rate, 1);
|
||||
audiohook_list_set_samplerate_compatibility(ast_channel_audiohooks(chan));
|
||||
|
||||
/* Change status over to running since it is now attached */
|
||||
ast_audiohook_update_status(audiohook, AST_AUDIOHOOK_STATUS_RUNNING);
|
||||
@@ -573,7 +575,7 @@ void ast_audiohook_move_by_source(struct ast_channel *old_chan, struct ast_chann
|
||||
struct ast_audiohook *audiohook;
|
||||
enum ast_audiohook_status oldstatus;
|
||||
|
||||
if (!old_chan->audiohooks || !(audiohook = find_audiohook_by_source(old_chan->audiohooks, source))) {
|
||||
if (!ast_channel_audiohooks(old_chan) || !(audiohook = find_audiohook_by_source(ast_channel_audiohooks(old_chan), source))) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -604,12 +606,12 @@ int ast_audiohook_detach_source(struct ast_channel *chan, const char *source)
|
||||
ast_channel_lock(chan);
|
||||
|
||||
/* Ensure the channel has audiohooks on it */
|
||||
if (!chan->audiohooks) {
|
||||
if (!ast_channel_audiohooks(chan)) {
|
||||
ast_channel_unlock(chan);
|
||||
return -1;
|
||||
}
|
||||
|
||||
audiohook = find_audiohook_by_source(chan->audiohooks, source);
|
||||
audiohook = find_audiohook_by_source(ast_channel_audiohooks(chan), source);
|
||||
|
||||
ast_channel_unlock(chan);
|
||||
|
||||
@@ -633,19 +635,19 @@ int ast_audiohook_remove(struct ast_channel *chan, struct ast_audiohook *audioho
|
||||
{
|
||||
ast_channel_lock(chan);
|
||||
|
||||
if (!chan->audiohooks) {
|
||||
if (!ast_channel_audiohooks(chan)) {
|
||||
ast_channel_unlock(chan);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (audiohook->type == AST_AUDIOHOOK_TYPE_SPY)
|
||||
AST_LIST_REMOVE(&chan->audiohooks->spy_list, audiohook, list);
|
||||
AST_LIST_REMOVE(&ast_channel_audiohooks(chan)->spy_list, audiohook, list);
|
||||
else if (audiohook->type == AST_AUDIOHOOK_TYPE_WHISPER)
|
||||
AST_LIST_REMOVE(&chan->audiohooks->whisper_list, audiohook, list);
|
||||
AST_LIST_REMOVE(&ast_channel_audiohooks(chan)->whisper_list, audiohook, list);
|
||||
else if (audiohook->type == AST_AUDIOHOOK_TYPE_MANIPULATE)
|
||||
AST_LIST_REMOVE(&chan->audiohooks->manipulate_list, audiohook, list);
|
||||
AST_LIST_REMOVE(&ast_channel_audiohooks(chan)->manipulate_list, audiohook, list);
|
||||
|
||||
audiohook_list_set_samplerate_compatibility(chan->audiohooks);
|
||||
audiohook_list_set_samplerate_compatibility(ast_channel_audiohooks(chan));
|
||||
ast_audiohook_update_status(audiohook, AST_AUDIOHOOK_STATUS_DONE);
|
||||
|
||||
ast_channel_unlock(chan);
|
||||
@@ -939,26 +941,26 @@ int ast_channel_audiohook_count_by_source(struct ast_channel *chan, const char *
|
||||
int count = 0;
|
||||
struct ast_audiohook *ah = NULL;
|
||||
|
||||
if (!chan->audiohooks)
|
||||
if (!ast_channel_audiohooks(chan))
|
||||
return -1;
|
||||
|
||||
switch (type) {
|
||||
case AST_AUDIOHOOK_TYPE_SPY:
|
||||
AST_LIST_TRAVERSE(&chan->audiohooks->spy_list, ah, list) {
|
||||
AST_LIST_TRAVERSE(&ast_channel_audiohooks(chan)->spy_list, ah, list) {
|
||||
if (!strcmp(ah->source, source)) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case AST_AUDIOHOOK_TYPE_WHISPER:
|
||||
AST_LIST_TRAVERSE(&chan->audiohooks->whisper_list, ah, list) {
|
||||
AST_LIST_TRAVERSE(&ast_channel_audiohooks(chan)->whisper_list, ah, list) {
|
||||
if (!strcmp(ah->source, source)) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case AST_AUDIOHOOK_TYPE_MANIPULATE:
|
||||
AST_LIST_TRAVERSE(&chan->audiohooks->manipulate_list, ah, list) {
|
||||
AST_LIST_TRAVERSE(&ast_channel_audiohooks(chan)->manipulate_list, ah, list) {
|
||||
if (!strcmp(ah->source, source)) {
|
||||
count++;
|
||||
}
|
||||
@@ -977,24 +979,24 @@ int ast_channel_audiohook_count_by_source_running(struct ast_channel *chan, cons
|
||||
{
|
||||
int count = 0;
|
||||
struct ast_audiohook *ah = NULL;
|
||||
if (!chan->audiohooks)
|
||||
if (!ast_channel_audiohooks(chan))
|
||||
return -1;
|
||||
|
||||
switch (type) {
|
||||
case AST_AUDIOHOOK_TYPE_SPY:
|
||||
AST_LIST_TRAVERSE(&chan->audiohooks->spy_list, ah, list) {
|
||||
AST_LIST_TRAVERSE(&ast_channel_audiohooks(chan)->spy_list, ah, list) {
|
||||
if ((!strcmp(ah->source, source)) && (ah->status == AST_AUDIOHOOK_STATUS_RUNNING))
|
||||
count++;
|
||||
}
|
||||
break;
|
||||
case AST_AUDIOHOOK_TYPE_WHISPER:
|
||||
AST_LIST_TRAVERSE(&chan->audiohooks->whisper_list, ah, list) {
|
||||
AST_LIST_TRAVERSE(&ast_channel_audiohooks(chan)->whisper_list, ah, list) {
|
||||
if ((!strcmp(ah->source, source)) && (ah->status == AST_AUDIOHOOK_STATUS_RUNNING))
|
||||
count++;
|
||||
}
|
||||
break;
|
||||
case AST_AUDIOHOOK_TYPE_MANIPULATE:
|
||||
AST_LIST_TRAVERSE(&chan->audiohooks->manipulate_list, ah, list) {
|
||||
AST_LIST_TRAVERSE(&ast_channel_audiohooks(chan)->manipulate_list, ah, list) {
|
||||
if ((!strcmp(ah->source, source)) && (ah->status == AST_AUDIOHOOK_STATUS_RUNNING))
|
||||
count++;
|
||||
}
|
||||
@@ -1207,12 +1209,12 @@ int ast_audiohook_set_mute(struct ast_channel *chan, const char *source, enum as
|
||||
ast_channel_lock(chan);
|
||||
|
||||
/* Ensure the channel has audiohooks on it */
|
||||
if (!chan->audiohooks) {
|
||||
if (!ast_channel_audiohooks(chan)) {
|
||||
ast_channel_unlock(chan);
|
||||
return -1;
|
||||
}
|
||||
|
||||
audiohook = find_audiohook_by_source(chan->audiohooks, source);
|
||||
audiohook = find_audiohook_by_source(ast_channel_audiohooks(chan), source);
|
||||
|
||||
if (audiohook) {
|
||||
if (clear) {
|
||||
|
||||
Reference in New Issue
Block a user