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.