mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 00:04:53 +00:00
Minor optimizations.
* Made ast_audiohook_detach_list() and ast_audiohook_write_list_empty() NULL tolerant. * Made ast_audiohook_detach_list() return void since it is a destructor. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@394836 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -175,11 +175,12 @@ int ast_audiohook_attach(struct ast_channel *chan, struct ast_audiohook *audioho
|
||||
*/
|
||||
int ast_audiohook_detach(struct ast_audiohook *audiohook);
|
||||
|
||||
/*! \brief Detach audiohooks from list and destroy said list
|
||||
* \param audiohook_list List of audiohooks
|
||||
* \return Returns 0 on success, -1 on failure
|
||||
/*!
|
||||
* \brief Detach audiohooks from list and destroy said list
|
||||
* \param audiohook_list List of audiohooks (NULL tolerant)
|
||||
* \return Nothing
|
||||
*/
|
||||
int ast_audiohook_detach_list(struct ast_audiohook_list *audiohook_list);
|
||||
void ast_audiohook_detach_list(struct ast_audiohook_list *audiohook_list);
|
||||
|
||||
/*! \brief Move an audiohook from one channel to a new one
|
||||
*
|
||||
@@ -221,7 +222,9 @@ int ast_audiohook_detach_source(struct ast_channel *chan, const char *source);
|
||||
int ast_audiohook_remove(struct ast_channel *chan, struct ast_audiohook *audiohook);
|
||||
|
||||
/*!
|
||||
* \brief determines if a audiohook_list is empty or not.
|
||||
* \brief Determine if a audiohook_list is empty or not.
|
||||
*
|
||||
* \param audiohook Audiohook to check. (NULL also means empty)
|
||||
*
|
||||
* retval 0 false, 1 true
|
||||
*/
|
||||
|
@@ -512,14 +512,14 @@ int ast_audiohook_detach(struct ast_audiohook *audiohook)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*! \brief Detach audiohooks from list and destroy said list
|
||||
* \param audiohook_list List of audiohooks
|
||||
* \return Returns 0 on success, -1 on failure
|
||||
*/
|
||||
int ast_audiohook_detach_list(struct ast_audiohook_list *audiohook_list)
|
||||
void ast_audiohook_detach_list(struct ast_audiohook_list *audiohook_list)
|
||||
{
|
||||
int i = 0;
|
||||
struct ast_audiohook *audiohook = NULL;
|
||||
int i;
|
||||
struct ast_audiohook *audiohook;
|
||||
|
||||
if (!audiohook_list) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Drop any spies */
|
||||
while ((audiohook = AST_LIST_REMOVE_HEAD(&audiohook_list->spy_list, list))) {
|
||||
@@ -547,8 +547,6 @@ int ast_audiohook_detach_list(struct ast_audiohook_list *audiohook_list)
|
||||
|
||||
/* Free ourselves */
|
||||
ast_free(audiohook_list);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*! \brief find an audiohook based on its source
|
||||
@@ -899,13 +897,10 @@ static struct ast_frame *audio_audiohook_write_list(struct ast_channel *chan, st
|
||||
|
||||
int ast_audiohook_write_list_empty(struct ast_audiohook_list *audiohook_list)
|
||||
{
|
||||
if (AST_LIST_EMPTY(&audiohook_list->spy_list) &&
|
||||
AST_LIST_EMPTY(&audiohook_list->whisper_list) &&
|
||||
AST_LIST_EMPTY(&audiohook_list->manipulate_list)) {
|
||||
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
return !audiohook_list
|
||||
|| (AST_LIST_EMPTY(&audiohook_list->spy_list)
|
||||
&& AST_LIST_EMPTY(&audiohook_list->whisper_list)
|
||||
&& AST_LIST_EMPTY(&audiohook_list->manipulate_list));
|
||||
}
|
||||
|
||||
/*! \brief Pass a frame off to be handled by the audiohook core
|
||||
|
@@ -2632,8 +2632,7 @@ void ast_set_hangupsource(struct ast_channel *chan, const char *source, int forc
|
||||
int ast_channel_has_audio_frame_or_monitor(struct ast_channel *chan)
|
||||
{
|
||||
return ast_channel_monitor(chan)
|
||||
|| (ast_channel_audiohooks(chan)
|
||||
&& !ast_audiohook_write_list_empty(ast_channel_audiohooks(chan)))
|
||||
|| !ast_audiohook_write_list_empty(ast_channel_audiohooks(chan))
|
||||
|| !ast_framehook_list_contains_no_active(ast_channel_framehooks(chan));
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user