/***************************************************************************
 TransmissionFunction.h  - virtual base class for transmission functions
			     -------------------
    begin                : Mar 14 2003
    copyright            : (C) 2003 by Thomas Eschenbacher
    email                : Thomas Eschenbacher <thomas.eschenbacher@gmx.de>
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef TRANSMISSION_FUNCTION_H
#define TRANSMISSION_FUNCTION_H

#include "config.h"

namespace Kwave
{
    class TransmissionFunction
    {
    public:

	/** Destructor */
	virtual ~TransmissionFunction() {}

	/**
	 * Returns the value of the transmission function at a given
	 * frequency.
	 * @param f frequency, normed to be between 0 and PI
	 * @return amplitude at the given frequency, normed to 1.0
	 * @todo convert to a function that returns a complex value
	 *       with phase info
	 */
	virtual double at(double f) = 0;
    };
}

#endif /* TRANSMISSION_FUNCTION_H */

//***************************************************************************
//***************************************************************************
