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

This is smsUnDb.c in view mode; [Download] [Up]

/* program written by Celso Mendonca de Aguiar */

#import <sms/sms.h>
#define USAGE "Usage: smsUnDb <inputsmsFile> <outputsmsFile>"

main (int ac, char *av[])
{
	char *pData, *inputFileName, *outputFileName;
	int j, i, NRec, Ntrajet, counter=0;
	float freqs, printfreqs, freqsm1, freqsp1, Sum=0.0;
	SMSHeader *pSmsHeader;
	SMS_DATA smsData;
  
        initSms(&smsData);
	if (ac != 3) quit(USAGE);
	inputFileName  = av[1];
	outputFileName = av[2];
	if(readSmsFile (inputFileName, &pSmsHeader) < 0) 
	  printf("error");

	Ntrajet = pSmsHeader->nTrajectories;
	NRec    = pSmsHeader->nRecords;
	for(j = 0; j < Ntrajet; j++) 
           {
	    pData = (char *) pSmsHeader + pSmsHeader->iHeadBSize;
	    pData += pSmsHeader->iRecordBSize;
	    for(i = 0; i < NRec; i++) 
               {
          	setSmsRecord (pSmsHeader, pData, &smsData);
          	smsData.pFMagTraj[j] = TO_MAG(smsData.pFMagTraj[j]);
          	pData += pSmsHeader->iRecordBSize;
	       }
	   }
        
        for(j = 0; j < Ntrajet; j++) 
	   {
	    pData = (char *) pSmsHeader + pSmsHeader->iHeadBSize;
	    pData += pSmsHeader->iRecordBSize;
	    freqsm1 = 0.0;
	    setSmsRecord(pSmsHeader, pData, &smsData);
	    freqs = smsData.pFFreqTraj[j];
	    for(i = 0; i < NRec-2; i++) 
	       {
          	pData += pSmsHeader->iRecordBSize;
          	setSmsRecord(pSmsHeader, pData, &smsData);
          	freqsp1 = smsData.pFFreqTraj[j];
          	printfreqs = freqs;
          	if (freqs<0.000001 && freqsm1>0.0) printfreqs = freqsm1;
          	if (freqs<0.000001 && freqsp1>0.0) printfreqs = freqsp1;
          	if (freqs<0.000001) 
          	     smsData.pFFreqTraj[j] = .0;
          	else smsData.pFFreqTraj[j] = printfreqs;
          	freqsm1 = freqs;
          	freqs = freqsp1;			
                }
           }
	
	pData = (char *) pSmsHeader + pSmsHeader->iHeadBSize;
	pData += pSmsHeader->iRecordBSize;
        setSmsRecord(pSmsHeader, pData, &smsData);
	for(i = 0; i < NRec; i++) 
	   {
            freqs = smsData.pFFreqTraj[0];
            Sum += freqs;
            if (freqs>0) counter++;
            pData += pSmsHeader->iRecordBSize;
            setSmsRecord(pSmsHeader, pData, &smsData);
	   }
	pSmsHeader->fFrequency =  Sum / counter;
	writeSmsFile (outputFileName, 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.