This is smsResample.c in view mode; [Download] [Up]
/*
*
* main program for smsResample
*
*/
#include "../sms.h"
#define USAGE "Usage: smsResample [factor] <inputSmsFile> <outputSmsFile>"
void main (int argc, char *argv[])
{
char *pChInputSmsFile = NULL, *pChOutputSmsFile = NULL, *pChProgramName;
SMSHeader *pSmsHeader;
char *pOldRecord, *pNewRecord;
int iError, iFactor, i;
/* get user arguments */
pChProgramName = argv[0];
if (argc != 4)
quit(USAGE);
if (sscanf(argv[1],"%d",&iFactor) < 1)
quit("Invalid factor");
pChInputSmsFile = argv[2];
pChOutputSmsFile = argv[3];
if ((iError = readSmsFile (pChInputSmsFile, &pSmsHeader)) < 0)
{
if (iError == SMS_NOPEN)
quit ("cannot open file");
if (iError == SMS_RDERR)
quit("read error");
if (iError == SMS_NSMS)
quit ("not an SMS file");
if (iError == SMS_MALLOC)
quit ("cannot allocate memory");
quit ("error");
}
pOldRecord = (char *) pSmsHeader->pChDataRecords +
(iFactor * pSmsHeader->iRecordBSize);
pNewRecord = (char *) pSmsHeader->pChDataRecords +
pSmsHeader->iRecordBSize;
for (i = 1 + iFactor; i < pSmsHeader->nRecords; i += iFactor)
{
memcpy ((char *) pNewRecord, (char *) pOldRecord,
pSmsHeader->iRecordBSize);
pOldRecord += (iFactor * pSmsHeader->iRecordBSize);
pNewRecord += pSmsHeader->iRecordBSize;
}
pSmsHeader->nRecords /= iFactor;
pSmsHeader->iFrameRate /= iFactor;
writeSmsFile (pChOutputSmsFile, pSmsHeader);
free (pSmsHeader);
exit (0);
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.