/* Formats handling */ /* * This file is part of gapk (GSM Audio Pocket Knife). * * gapk is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * gapk is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with gapk. If not, see . */ #ifndef __GAPK_FORMATS_H__ #define __GAPK_FORMATS_H__ #include enum format_type { FMT_INVALID = 0, /* Classic .amr container */ FMT_AMR_EFR, /* Classic .gsm file for FR */ FMT_GSM, /* 3GPP Reference HR vocodec files */ FMT_HR_REF_DEC, FMT_HR_REF_ENC, /* Racal 6103E TCH recordings */ FMT_RACAL_HR, FMT_RACAL_FR, FMT_RACAL_EFR, /* Raw PCM */ FMT_RAWPCM_S16LE, /* Texas Instrument calypso/locosto buffer format */ FMT_TI_FR, _FMT_MAX, }; #include /* need to import here because or enum interdep */ typedef int (*fmt_conv_cb_t)(uint8_t *dst, const uint8_t *src); struct format_desc { enum format_type type; enum codec_type codec_type; const char * name; const char * description; unsigned int frame_len; fmt_conv_cb_t conv_from_canon; fmt_conv_cb_t conv_to_canon; unsigned int header_len; const uint8_t * header; }; const struct format_desc *fmt_get_from_type(enum format_type type); const struct format_desc *fmt_get_from_name(const char *name); #endif /* __GAPK_FORMATS_H__ */