⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strfunc.c

📁 Trolltech公司发布的图形界面操作系统。可在qt-embedded-2.3.10平台上编译为嵌入式图形界面操作系统。
💻 C
字号:
/********************************************************************************      GSM AMR-NB speech codec   R98   Version 7.6.0   December 12, 2001*                                R99   Version 3.3.0                *                                REL-4 Version 4.1.0                ********************************************************************************      File             : strfunc.c*      Purpose          : string <-> mode and string <-> traffic channel*                         conversion functions*******************************************************************************//*******************************************************************************                         MODULE INCLUDE FILE AND VERSION ID******************************************************************************/#include "strfunc.h"const char strfunc_id[] = "@(#)$Id $" strfunc_h;  /*******************************************************************************                         INCLUDE FILES******************************************************************************/#include <stdlib.h>#include <string.h>#include "mode.h"#include "frame.h"/*******************************************************************************                         LOCAL VARIABLES AND TABLES******************************************************************************//* * generic string <-> id lookup table */typedef struct {    char *name; /* name string */    int   id;   /* integer id  */} conv_table;/* * mode name <-> mode id conversion table */static const conv_table modetable[] = {    {"MR475", MR475},    {"MR515", MR515},    {"MR59",  MR59},    {"MR67",  MR67},    {"MR74",  MR74},    {"MR795", MR795},    {"MR102", MR102},    {"MR122", MR122},    {"MRDTX", MRDTX},    {NULL,    -1}};/* * frame type name <-> frame type id conversion table */static const conv_table rxframetable[] = {  {"RX_SPEECH_GOOD", RX_SPEECH_GOOD},  {"RX_SPEECH_DEGRADED", RX_SPEECH_DEGRADED},  {"RX_SPEECH_BAD", RX_SPEECH_BAD},  {"RX_SID_FIRST", RX_SID_FIRST},  {"RX_SID_UPDATE", RX_SID_UPDATE},  {"RX_SID_BAD", RX_SID_BAD},  {"RX_ONSET", RX_ONSET},  {"RX_NO_DATA", RX_NO_DATA},  {NULL, -1}};/* * frame type name <-> frame type id conversion table */static const conv_table txframetable[] = {  {"TX_SPEECH_GOOD", TX_SPEECH_GOOD},  {"TX_SPEECH_DEGRADED", TX_SPEECH_DEGRADED},  {"TX_SPEECH_BAD", TX_SPEECH_BAD},  {"TX_SID_FIRST", TX_SID_FIRST},  {"TX_SID_UPDATE", TX_SID_UPDATE},  {"TX_SID_BAD", TX_SID_BAD},  {"TX_ONSET", TX_ONSET},  {"TX_NO_DATA", TX_NO_DATA},  {NULL, -1}};/*******************************************************************************                         LOCAL PROGRAM CODE******************************************************************************//***************************************************************************  Function:   search_string*  Purpose:    search table for string; return id if found, -1 otherwise****************************************************************************/static int search_string(const conv_table *p, const char *str){    if (str == NULL)        return -1;        do    {        if (strcmp(p->name, str) == 0)            return p->id;        p++;    } while (p->name != NULL);    return -1;}    /***************************************************************************  Function:   search_id*  Purpose:    search table for id; return string if found, NULL otherwise****************************************************************************/static char *search_id(const conv_table *p, int id){    if (id == -1)        return NULL;        do    {        if (p->id == id)            return p->name;        p++;    } while (p->name != NULL);    return NULL;}    /*******************************************************************************                         PUBLIC PROGRAM CODE******************************************************************************//***************************************************************************  Function:   str2mode*  Purpose:    convert AMR mode string into mode id; return 0 on success,*              1 otherwise****************************************************************************/int str2mode(const char* str, enum Mode *mode){    int m;    if ((m = search_string(modetable, str)) == -1)        return 1;    *mode = (enum Mode) m;    return 0;}/***************************************************************************  Function:   mode2str*  Purpose:    convert AMR mode id into mode name string; return 0 on success,*              1 otherwise****************************************************************************/int mode2str(enum Mode mode, char** str){    return ((*str = search_id(modetable, (int) mode)) != NULL);}/***************************************************************************  Function:   frame2str****************************************************************************/int rxframe2str(enum RXFrameType ft, char** str){    return ((*str = search_id(rxframetable, (int) ft)) != NULL);}/***************************************************************************  Function:   txframe2str****************************************************************************/int txframe2str(enum TXFrameType ft, char** str){    return ((*str = search_id(txframetable, (int) ft)) != NULL);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -