mutexbuff.cpp

来自「G.723在ARM上的实现。实现平台为Linux2.4.8+ Intel Xsc」· C++ 代码 · 共 75 行

CPP
75
字号
#include "mutexbuff.h"#include <string.h>#include <iostream>using namespace std;MutexBuff::MutexBuff( int length, int num)	{	len=length;		frame=num;	buff=(unsigned char*)malloc(len);	framesize=len/frame;	}MutexBuff::~MutexBuff(){	free(buff);}void MutexBuff::writebuff(int index,unsigned char *srcbuf){	int i;	unsigned char *baseaddr;		i=index;	lock();	baseaddr=buff+framesize*i;	memcpy(baseaddr,srcbuf,framesize);	dataflag[i%frame]=1;	signal();	unlock();}void MutexBuff::readbuff(int index,unsigned char *dstbuf){	int i;	unsigned char *baseaddr;		i=index;		lock();	wait();	baseaddr=buff+framesize*i;	memcpy(dstbuf,baseaddr,framesize);	dataflag[i%frame]=0;	unlock();}void MutexBuff::testdata(int index){		int i;	unsigned char *base;	base=buff+framesize*index;	printf("framesize %d\n",framesize);	printf("buffindex %d\n",index);	printf("buffbaseaddr %x\n",buff);	printf("currentaddr %x\n",base);	for(i=0;i<framesize;i++)	printf("mutexbuff test data %d \n",base[i]);}void MutexBuff::clearbuff(int index){	int i;	i=index;	unsigned char *base;	base=buff+i*framesize;	memset(base,0,framesize);}

⌨️ 快捷键说明

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