Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

[a21201]: libkwave / ArtsMultiTrackFilter.h Maximize Restore History

Download this file

ArtsMultiTrackFilter.h    106 lines (88 with data), 3.8 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
/***************************************************************************
ArtsMultiTrackFilter.h - interface for multi-track aRts filters
-------------------
begin : Sun Dec 9 2001
copyright : (C) 2001 by Thomas Eschenbacher
email : 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 _ARTS_MULTI_TRACK_FILTER_H_
#define _ARTS_MULTI_TRACK_FILTER_H_
#include "config.h"
#ifdef HAVE_ARTS_SUPPORT
#include <string.h>
#include "libkwave/ArtsMultiSource.h"
#include "libkwave/ArtsMultiSink.h"
class ArtsMultiTrackFilter
:public ArtsMultiSource, public ArtsMultiSink
{
public:
/** Destructor */
virtual ~ArtsMultiTrackFilter() {};
/**
* Returns a pointer to one of the filter objects. (normally used for
* connecting it to another Arts::Object).
* @param i index of the track [0..count-1]
* @return pointer to the object or 0 if index is out of range
*/
virtual Arts::Object *operator[](unsigned int i) = 0;
/**
* Connects the input of the filters to an ArtsMultiSource.
* @param source reference to a source (or previous filter)
* @param output_name name of the output streams of the source
* @param input_name name of the input streams of our filters (sink)
*/
virtual void connectInput(ArtsMultiSource &source,
const std::string &output_name = "output",
const std::string &input_name = "input") = 0;
/**
* Connects the input of the filters to the output of a single
* aRts object.
* @param source reference to the Arts::Object used as source
* @param output_name name of the output streams of the source
* @param input_name name of the input streams of our filters (sink)
*/
virtual void connectInput(Arts::Object &source,
const std::string &output_name = "output",
const std::string &input_name = "input") = 0;
/**
* Connects the output of the filters to an ArtsMultiSink.
* @param sink reference to a sink (or next filter)
* @param input_name name of the input streams of the sinks
* @param output_name name of the output streams of our filters (source)
*/
virtual void connectOutput(ArtsMultiSink &sink,
const std::string &input_name = "input",
const std::string &output_name = "output") = 0;
/**
* Set all input of the filters to the same constant value.
* @param input_name name of the input of the sinks
* @param value float value to be set
*/
virtual void setValue(
const std::string &input_name,
const float value) = 0;
/**
* Set all attributes of the filters to the same constant value.
* @param attribute name of the attribute to set
* @param value float value to be set
*/
virtual void setAttribute(
const std::string &attribute,
const float value) = 0;
/** Starts all filters. */
virtual void start() = 0;
/** Stops all filters. */
virtual void stop() = 0;
};
#else /* HAVE_ARTS_SUPPORT */
#warning aRts support is disabled
#endif /* HAVE_ARTS_SUPPORT */
#endif /* _ARTS_MULTI_TRACK_FILTER_H_ */