// clim.cc
/*
 * clim: a compressor/limiter example
 *
 * Copyright (c) 1995 Kai Lassfolk
 */

#include <stdio.h>

#include <spkit/spkit.h>

int main(int argc, char* argv[])
{
    SPKitReader reader;
    SPKitAmp amp;
    SPKitCompressorLimiter compLim;
    SPKitWriter writer;

    double gain;
    double compThreshold;
    double compRatio;
    double limThreshold;

    if (argc != 7) {
	fprintf(stderr, "Usage: clim gain compressor-threshold comp-ratio");
	fprintf(stderr, " limiter-threshold sourcefile destfile\n");
	return 1;
    }

    if (reader.setInput(argv[5]) < 0) {
	fprintf(stderr, "clim: cannot open input: %s\n", argv[5]);
	return 1;
    }
    amp.setInput(&reader);
    compLim.setInputAndEstimationTime(&, 0.05);
    if (writer.setInputOutput(&compLim, argv[6]) < 0) {
	fprintf(stderr, "clim: cannot open output: %s\n", argv[6]);
	return 1;
    }

    sscanf(argv[1], "%lf", &gain);
    amp.setGain(gain);
    sscanf(argv[2], "%lf", &compThreshold);
    compLim.setCompressorThreshold(compThreshold);
    sscanf(argv[3], "%lf", &compRatio);
    compLim.setCompressionRatio(compRatio);
    sscanf(argv[4], "%lf", &limThreshold);
    compLim.setLimiterThreshold(limThreshold);

    writer.run();

    return 0;
}