GsmCompress.h
上传用户:amei960
上传日期:2007-02-05
资源大小:143k
文件大小:2k
源码类别:

Audio

开发平台:

Visual C++

  1. #ifndef _GSMCOMPRESS_H_
  2. #define _GSMCOMPRESS_H_
  3. #include "Compress.h"
  4. #ifndef GSM_H
  5. #define GSM_H
  6. #define  NeedFunctionPrototypes  1
  7. #ifdef __cplusplus
  8. #       define  NeedFunctionPrototypes  1
  9. #endif
  10. #if __STDC__
  11. #       define  NeedFunctionPrototypes  1
  12. #endif
  13. #ifdef _NO_PROTO
  14. #       undef   NeedFunctionPrototypes
  15. #endif
  16. #undef  GSM_P   /* gnu stdio.h actually defines this...         */
  17. #if NeedFunctionPrototypes
  18. #       define  GSM_P( protos ) protos
  19. #else
  20. #       define  GSM_P( protos ) ( /* protos */ )
  21. #endif
  22. #ifdef NeedFunctionPrototypes
  23. #   include     <stdio.h>               /* for FILE *   */
  24. #endif
  25. /* AUTO_SPARC_HACK added by John Walker.  If defined, USE_FLOAT_MUL   
  26.    automatically set when compiling on a Sparc.  This lets most
  27.    people avoid editing the Makefile. */
  28. #ifdef AUTO_SPARC_HACK
  29. #ifdef sparc
  30. #define USE_FLOAT_MUL
  31. #define FAST
  32. #endif
  33. #endif
  34. /*
  35.  *      Interface
  36.  */
  37. typedef struct gsm_state *      gsm;
  38. typedef short                   gsm_signal;             /* signed 16 bit */
  39. typedef unsigned char           gsm_byte;
  40. typedef gsm_byte                gsm_frame[33];          /* 33 * 8 bits   */
  41. #define GSM_MAGIC       0xD                             /* 13 kbit/s RPE-LTP */
  42. #define GSM_PATCHLEVEL  2
  43. #define GSM_MINOR       0
  44. #define GSM_MAJOR       1
  45. // Gsm Option
  46. #define GSM_OPT_VERBOSE 1
  47. #define GSM_OPT_FAST    2
  48. #ifdef __cplusplus
  49. extern "C" {
  50. #endif 
  51. gsm  gsm_create  GSM_P((void));
  52. void gsm_destroy GSM_P((gsm));   
  53. int  gsm_print   GSM_P((FILE *, gsm, gsm_byte  *));
  54. int  gsm_option  GSM_P((gsm, long, long *));
  55. void gsm_encode  GSM_P((gsm, gsm_signal *, gsm_byte  *));
  56. int  gsm_decode  GSM_P((gsm, gsm_byte   *, gsm_signal *));
  57. int  gsm_explode GSM_P((gsm, gsm_byte   *, gsm_signal *));
  58. void gsm_implode GSM_P((gsm, gsm_signal *, gsm_byte   *));
  59. #ifdef __cplusplus
  60. }
  61. #endif 
  62. #undef  GSM_P
  63. #endif  /* GSM_H */
  64. class CGsmCompress : public CCompress
  65. {
  66. private:
  67. gsm m_hGsm;
  68. public:
  69. CGsmCompress();
  70. virtual ~CGsmCompress();
  71. public:
  72. void SetOption(long,long*);
  73. virtual BOOL Compress(char* src,int srclen,char* dst,int* dstlen);
  74. virtual BOOL UnCompress(char* src,int srclen,char* dst,int* dstlen);
  75. };
  76. #endif