From d1039bb8a54e6c98f85a4bc80bbf1db6eaf576b7 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Fri, 19 Jan 2024 05:52:16 +0100 Subject: [PATCH] codec_mapping_matches_speech_ver Change-Id: Iccd1f137674ef23dfa37a7e21086e046514ce39b --- include/osmocom/msc/codec_mapping.h | 2 ++ src/libmsc/codec_mapping.c | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/include/osmocom/msc/codec_mapping.h b/include/osmocom/msc/codec_mapping.h index 3fdec0934..bbff2f861 100644 --- a/include/osmocom/msc/codec_mapping.h +++ b/include/osmocom/msc/codec_mapping.h @@ -58,6 +58,8 @@ const struct codec_mapping *codec_mapping_next(const struct codec_mapping *c); #define codec_mapping_foreach(CODEC_MAPPING) \ for ((CODEC_MAPPING) = codec_mapping_next(NULL); (CODEC_MAPPING); (CODEC_MAPPING) = codec_mapping_next(CODEC_MAPPING)) +bool codec_mapping_matches_speech_ver(const struct codec_mapping *m, enum gsm48_bcap_speech_ver speech_ver); + const struct codec_mapping *codec_mapping_by_speech_ver(enum gsm48_bcap_speech_ver speech_ver); const struct codec_mapping *codec_mapping_by_gsm0808_speech_codec_type(enum gsm0808_speech_codec_type sct); const struct codec_mapping *codec_mapping_by_gsm0808_speech_codec(const struct gsm0808_speech_codec *sc); diff --git a/src/libmsc/codec_mapping.c b/src/libmsc/codec_mapping.c index e142bccd4..d955e5ae9 100644 --- a/src/libmsc/codec_mapping.c +++ b/src/libmsc/codec_mapping.c @@ -224,6 +224,15 @@ const struct gsm_mncc_bearer_cap bearer_cap_empty = { .speech_ver = { -1 }, }; +bool codec_mapping_matches_speech_ver(const struct codec_mapping *m, enum gsm48_bcap_speech_ver speech_ver) +{ + int i; + for (i = 0; i < m->speech_ver_count; i++) + if (m->speech_ver[i] == speech_ver) + return true; + return false; +} + const struct codec_mapping *codec_mapping_by_speech_ver(enum gsm48_bcap_speech_ver speech_ver) { const struct codec_mapping *m;