ftp.nice.ch/pub/next/unix/audio/sms.N.bs.tar.gz#/sms/smsMod/smsMod.c

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.