#pragma once #include #include struct gsm0808_channel_type; struct gsm0808_speech_codec_list; struct gsm_audio_support; struct bts_codec_conf; struct bsc_msc_data; struct gsm_bts; struct channel_mode_and_rate; enum rate_pref { RATE_PREF_NONE, RATE_PREF_HR, RATE_PREF_FR, }; int match_codec_pref_data(struct channel_mode_and_rate *ch_mode_rate, const struct gsm0808_channel_type *ct, const bool full_rate); int match_codec_pref(struct channel_mode_and_rate *ch_mode_rate, const struct gsm0808_channel_type *ct, const struct gsm0808_speech_codec_list *scl, const struct bsc_msc_data *msc, const struct gsm_bts *bts, enum rate_pref rate_pref); void gen_bss_supported_codec_list(struct gsm0808_speech_codec_list *scl, const struct bsc_msc_data *msc, const struct gsm_bts *bts); int calc_amr_rate_intersection(struct gsm48_multi_rate_conf *c, const struct gsm48_multi_rate_conf *b, const struct gsm48_multi_rate_conf *a); int check_codec_pref(struct llist_head *mscs);