This is sfstats.c in view mode; [Download] [Up]
#include "../H/sfheader.h" #include <stdio.h> #include <sys/file.h> #include <sys/types.h> #include <sys/stat.h> #include <signal.h> #include <errno.h> sfstats(fd) int fd; { int n; SFHEADER sfh; SFMAXAMP sfm; SFCOMMENT sfcm; SFLINK sflk; char *cp,*getsfcode(); lseek(fd,0,0); rheader(fd,&sfh); if (ismagic(&sfh)) { printf("stats for soundfile w/ descriptor %d:\n\n",fd); printf("channels: %d\tsampling rate: %f",sfchans(&sfh),sfsrate(&sfh)); if (sfclass(&sfh) == SF_SHORT) printf("\tinteger file\n"); else printf("\tfloating point file\n"); } else if (islink(&sfh)) { printf("stats for <linked> soundfile w/ descriptor %d:\n\n",fd); printf("channels: %d\tsampling rate: %f",sfchans(&sfh),sfsrate(&sfh)); if (sfclass(&sfh) == SF_SHORT) printf("\tinteger file\n"); else printf("\tfloating point file\n"); } else { printf("file with file descriptor %d is not a soundfile\n",fd); exit(0); } if (cp = getsfcode(&sfh,SF_MAXAMP)) { bcopy(cp + sizeof(SFCODE), (char *) &sfm, sizeof(SFMAXAMP)); printf("\nMAXAMP structure found, containing:\n"); printf("\tchannel #\tmaxamp\tsample #\n"); for (n = 0; n <= sfchans(&sfh); n++) { printf("\t %d\t %f\t %ld\n\n",n,sfmaxamp(&sfm,n),sfmaxamploc(&sfm,n)); } } if (cp = getsfcode(&sfh,SF_COMMENT)) { bcopy(cp + sizeof(SFCODE), (char *) &sfcm, ((SFCODE *)cp)->bsize); printf("\nSFCOMMENT structure found, containing:\n"); printf(" %s\n\n",&sfcomm(&sfcm,0)); } if (cp = getsfcode(&sfh,SF_LINKCODE)) { bcopy(cp + sizeof(SFCODE), (char *) &sflk, sizeof(SFLINK)); printf("\nSFLINK structure found: \n"); printf("This file is linked to soundfile %s\n",realname(&sflk)); printf("starting at sample: %d ending at sample: %d\n\n",startsmp(&sflk),endsmp(&sflk)); } }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.