Blame src/tests/noise.c

Packit c32a2d
#include "config.h"
Packit c32a2d
#include "compat.h"
Packit c32a2d
#include "dither.h"
Packit c32a2d
#include "debug.h"
Packit c32a2d
Packit c32a2d
/* Directly include the code for testing, avoiding
Packit c32a2d
   build of same object with and without libtool. */
Packit c32a2d
#include "../libmpg123/dither_impl.h"
Packit c32a2d
Packit c32a2d
const char *typenames[] = { "white", "tpdf", "highpass_tpdf" };
Packit c32a2d
enum mpg123_noise_type types[] = { mpg123_white_noise, mpg123_tpdf_noise, mpg123_highpass_tpdf_noise };
Packit c32a2d
Packit c32a2d
int main(int argc, char **argv)
Packit c32a2d
{
Packit c32a2d
	size_t i;
Packit c32a2d
	size_t count = DITHERSIZE;
Packit c32a2d
	float *table;
Packit c32a2d
	enum mpg123_noise_type type = mpg123_highpass_tpdf_noise;
Packit c32a2d
Packit c32a2d
	fprintf(stderr, "Note: You could give two optional arguments: noise type and table size (number count).\n");
Packit c32a2d
	if(argc > 1)
Packit c32a2d
	{
Packit c32a2d
		const char *typename = argv[1];
Packit c32a2d
		for(i=0; i
Packit c32a2d
		if(strcmp(typename, typenames[i]) == 0)
Packit c32a2d
		{
Packit c32a2d
			type = types[i];
Packit c32a2d
			break;
Packit c32a2d
		}
Packit c32a2d
Packit c32a2d
		if(i == sizeof(typenames)/sizeof(char*))
Packit c32a2d
		{
Packit c32a2d
			error("Unknown noise type!");
Packit c32a2d
			return -1;
Packit c32a2d
		}
Packit c32a2d
	}
Packit c32a2d
	if(argc > 2)
Packit c32a2d
	{
Packit c32a2d
		count = (size_t) atol(argv[2]);
Packit c32a2d
	}
Packit c32a2d
Packit c32a2d
	table = malloc(sizeof(float)*count);
Packit c32a2d
	if(table == NULL)
Packit c32a2d
	{
Packit c32a2d
		error("Cannot allocate memory for noise table!");
Packit c32a2d
		return -2;
Packit c32a2d
	}
Packit c32a2d
Packit c32a2d
	mpg123_noise(table, count, type);
Packit c32a2d
	for(i=0; i
Packit c32a2d
	printf("%g\n", table[i]);
Packit c32a2d
Packit c32a2d
	free(table);
Packit c32a2d
Packit c32a2d
	return 0;
Packit c32a2d
}