/*
* add.c -- Suma dos seņales.
*
* Este fichero fuente puede encontrarse en:
* http://www.ace.ual.es/~vruiz/docencia/redes/practicas/add.c
*
* Compilar escribiendo:
* gcc add.c -o add spin.o
*
* gse. 2006
*/
#include <stdio.h>
#include "spin.h"
char **_argv;
FILE* open_file(char *file_name) {
FILE *file_descriptor = fopen(file_name,"rb");
if(!file_descriptor) {
fprintf(stderr,"%s: unable to open %s\n",_argv[0],file_name);
exit(1);
}
return file_descriptor;
}
main(int argc, char *argv[]) {
if(argc<3) {
fprintf(stderr,"%s signal_1.float signal_2.float > signal_1+2.float\n",
argv[0]);
} else {
_argv = argv;
FILE *s1,*s2;
s1 = open_file(argv[1]);
s2 = open_file(argv[2]);
int samples = 0;
for(;;) {
float sample1, sample2, add;
fread(&sample1,1,sizeof(float),s1);
if(feof(s1)) break;
fread(&sample2,1,sizeof(float),s2);
if(feof(s2)) break;
add = sample1 + sample2;
fwrite(&add,1,sizeof(float),stdout);
samples++;
spin();
}
fprintf(stderr,"%s: number of samples = %d\n",argv[0],samples);
}
return 0;
}