This is smsMod.c in view mode; [Download] [Up]
/*
*
* main program for smsMod
*
*/
#include "../sms.h"
#define USAGE "Usage: smsMod [-s stochasticFactor] [-f fundFreq] <inputSmsFile> <outputSmsFile>"
main (int argc, char *argv[])
{
char *pChInputSmsFile = NULL, *pChOutputSmsFile = NULL, *pChProgramName;
SMSHeader *pSmsHeader;
SMS_DATA smsData;
char *pData;
int iError, i;
float fStocFactor = 1, fFundamental = 1;
initSms(&smsData);
/* get user arguments */
pChProgramName = argv[0];
if (argc > 3)
{
for (i=1; i<argc-2; i++)
{
if (*(argv[i]++) == '-')
{
switch (*(argv[i]++))
{
case 's': if (sscanf(argv[i],"%f",&fStocFactor) < 1)
quit("Invalid stochastic factor");
break;
case 'f': if (sscanf(argv[i],"%f",&fFundamental) < 0)
quit("Invalid fundamental");
break;
default: quit(USAGE);
}
}
}
}
pChInputSmsFile = argv[argc-2];
pChOutputSmsFile = argv[argc-1];
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");
}
pData = (char *) pSmsHeader->pChDataRecords;
pSmsHeader->fFrequency = fFundamental;
for(i = 1; i < pSmsHeader->nRecords; i++)
{
setSmsRecord (pSmsHeader, pData, &smsData);
*smsData.pFStocGain += fStocFactor;
pData += pSmsHeader->iRecordBSize;
}
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.