Source: ../../../tse3/src/tse3/Filter.h
|
|
|
|
/*
* @(#)Filter.h 3.00 8 June 1999
*
* Copyright (c) 2000 Pete Goodliffe (pete@cthree.org)
*
* This file is part of TSE3 - the Trax Sequencer Engine version 3.00.
*
* This library is modifiable/redistributable under the terms of the GNU
* General Public License.
*
* You should have received a copy of the GNU General Public License along
* with this program; see the file COPYING. If not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
#ifndef TSE3_MIDIEVENTFILTER_H
#define TSE3_MIDIEVENTFILTER_H
namespace TSE3
{
class MidiEvent;
/**
* The Filter is an interface that allows the use of MidiEvent
* 'filters'. These filters accept a single @ref MidiEvent, and return the
* @ref MidiEvent filtered in some way.
*
* @short Interface for a @ref MidiEvent filter
* @author Pete Goodliffe
* @version 3.00
* @see MidiEvent
*/
class Filter
{
public:
Filter();
virtual ~Filter() = 0;
/**
* Filter a @ref MidiEvent by doing something suitably marvellous
* to it. If the event is removed altogether the filter will return
* a @ref MidiEvent with a @ref MidiCommand_Invalid. These can
* propagate up the @ref Playable hierarchy and be ignored by the
* @ref MidiScheduler at the top.
*
* @param e @ref MidiEvent to filter
* @return @ref Filtered @ref MidiEvent (may be a @ref
* MidiCommand_Invalid)
*/
virtual MidiEvent filter(const MidiEvent &e) const = 0;
private:
Filter &operator=(const Filter &);
Filter(const Filter &);
};
}
#endif
Generated by: pete on philemon on Wed May 25 14:40:07 2005, using kdoc 2.0a54. |