📄 gsmcompress.cpp
字号:
#include "Stdafx.h"
#include "GsmCompress.h"
#pragma comment(lib,"gsm.lib")
CGsmCompress::CGsmCompress()
{
m_hGsm = NULL;
m_hGsm = gsm_create();
}
CGsmCompress::~CGsmCompress()
{
if( m_hGsm != NULL )
{
gsm_destroy( m_hGsm );
m_hGsm = NULL;
}
}
void CGsmCompress::SetOption(long,long*)
{
if( m_hGsm == NULL )
return;
// gsm_option(m_hGsm, long, long *));
}
BOOL CGsmCompress::Compress(char* src,int srclen,char* dst,int* dstlen)
{
if( m_hGsm == NULL )
return FALSE;
gsm_frame dst_gsm;
int i , l = 0;
for (i = 0 ; i < srclen; i += 160)
{
gsm_encode( m_hGsm , (short*)(src + i), dst_gsm);
memcpy(dst + l, dst_gsm, sizeof(dst_gsm));
l += sizeof(dst_gsm);
}
*dstlen = l;
return TRUE;
}
BOOL CGsmCompress::UnCompress(char* src,int srclen,char* dst,int* dstlen)
{
if( m_hGsm == NULL )
return FALSE;
gsm_signal dst_gsm[160];
int i , l = 0;
for (i = 0; i < srclen; i += sizeof(gsm_frame) )
{
gsm_decode(m_hGsm , (gsm_byte*)src + i, dst_gsm);
memcpy(dst + l, dst_gsm, sizeof(dst_gsm));
l += 160;
}
*dstlen = l;
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -