diff options
Diffstat (limited to 'main/sdp_translator.c')
-rw-r--r-- | main/sdp_translator.c | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/main/sdp_translator.c b/main/sdp_translator.c deleted file mode 100644 index 6fe330a60..000000000 --- a/main/sdp_translator.c +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Asterisk -- An open source telephony toolkit. - * - * Copyright (C) 2017, Digium, Inc. - * - * Mark Michelson <mmichelson@digium.com> - * - * See http://www.asterisk.org for more information about - * the Asterisk project. Please do not directly contact - * any of the maintainers of this project for assistance; - * the project provides a web site, mailing lists and IRC - * channels for your use. - * - * This program is free software, distributed under the terms of - * the GNU General Public License Version 2. See the LICENSE file - * at the top of the source tree. - */ - -#include "asterisk.h" -#include "asterisk/sdp_options.h" -#include "asterisk/sdp_translator.h" -#include "asterisk/logger.h" -#include "asterisk/utils.h" -#include "asterisk/lock.h" - -AST_RWLOCK_DEFINE_STATIC(registered_ops_lock); -static struct ast_sdp_translator_ops *registered_ops[AST_SDP_IMPL_END]; - -int ast_sdp_register_translator(struct ast_sdp_translator_ops *ops) -{ - SCOPED_WRLOCK(lock, ®istered_ops_lock); - - if (ops->repr >= AST_SDP_IMPL_END) { - ast_log(LOG_ERROR, "SDP translator has unrecognized representation\n"); - return -1; - } - - if (registered_ops[ops->repr] != NULL) { - ast_log(LOG_ERROR, "SDP_translator with this representation already registered\n"); - return -1; - } - - registered_ops[ops->repr] = ops; - ast_log(LOG_NOTICE, "Placed ops %p at slot %d\n", ops, ops->repr); - return 0; -} - -void ast_sdp_unregister_translator(struct ast_sdp_translator_ops *ops) -{ - SCOPED_WRLOCK(lock, ®istered_ops_lock); - - if (ops->repr >= AST_SDP_IMPL_END) { - return; - } - - registered_ops[ops->repr] = NULL; -} - -struct ast_sdp_translator *ast_sdp_translator_new(enum ast_sdp_options_impl repr) -{ - struct ast_sdp_translator *translator; - SCOPED_RDLOCK(lock, ®istered_ops_lock); - - if (registered_ops[repr] == NULL) { - ast_log(LOG_NOTICE, "No registered SDP translator with representation %d\n", repr); - return NULL; - } - - translator = ast_calloc(1, sizeof(*translator)); - if (!translator) { - return NULL; - } - - translator->ops = registered_ops[repr]; - - translator->translator_priv = translator->ops->translator_new(); - if (!translator->translator_priv) { - ast_free(translator); - return NULL; - } - - return translator; -} - -void ast_sdp_translator_free(struct ast_sdp_translator *translator) -{ - if (!translator) { - return; - } - translator->ops->translator_free(translator->translator_priv); - ast_free(translator); -} - -struct ast_sdp *ast_sdp_translator_to_sdp(struct ast_sdp_translator *translator, - const void *native_sdp) -{ - return translator->ops->to_sdp(native_sdp, translator->translator_priv); -} - -const void *ast_sdp_translator_from_sdp(struct ast_sdp_translator *translator, - const struct ast_sdp *ast_sdp) -{ - return translator->ops->from_sdp(ast_sdp, translator->translator_priv); -} |