Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > b908fbf6412c51882b2aebf8342c549f > files > 21

libecasound-devel-2.5.2-2mdv2009.1.i586.rpm

#ifndef INCLUDED_AUDIOFX_H
#define INCLUDED_AUDIOFX_H

#include "eca-chainop.h"
#include "eca-samplerate-aware.h"

/**
 * Virtual base for all audio effect classes.
 *
 * @author Kai Vehmanen
 */
class EFFECT_BASE : public CHAIN_OPERATOR, 
		    public ECA_SAMPLERATE_AWARE
{

public:

  /** @name Constructors and destructors */
  /*@{*/

  EFFECT_BASE(void);
  virtual ~EFFECT_BASE(void);

  /*@}*/

 protected:

  /** @name Protected functions for storing channel count */
  /*@{*/

  void set_channels(int v);

  /*@}*/

 public:

  /** @name Public virtual functions to notify about changes 
   *        (Reimplemented from ECA_SAMPLERATE_AWARE) */
  /*@{*/

  virtual void set_samples_per_second(SAMPLE_SPECS::sample_rate_t v);

  /*@}*/

  /** @name Public virtual functions for initialization
   *        (Reimplemented from CHAIN_OPERATOR) */
  /*@{*/

  virtual void init(SAMPLE_BUFFER* sbuf);

  /*@}*/

  /** @name Public non-virtual functions */
  /*@{*/

  int channels(void) const;

  /*@}*/

 private:

  int channels_rep;
};

#endif