39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include <osmocom/gsm/protocol/gsm_04_08.h>
|
|
|
|
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);
|