summaryrefslogtreecommitdiff
path: root/attic/muse_qt4_evolution/muse/auxplugin.h
blob: cb9c2e4e226a3019d8ee56d53cab531fbda15f5a (plain)
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
//=============================================================================
//  MusE
//  Linux Music Editor
//  $Id:$
//
//  Copyright (C) 2006 by Werner Schweer and others
//
//  This program is free software; you can redistribute it and/or modify
//  it under the terms of the GNU General Public License version 2.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program; if not, write to the Free Software
//  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//=============================================================================

#ifndef __AUXPLUGIN_H__
#define __AUXPLUGIN_H__

#include "globaldefs.h"
#include "plugin.h"

//---------------------------------------------------------
//   AuxPlugin
//---------------------------------------------------------

class AuxPlugin : public Plugin {

   public:
      AuxPlugin();

      virtual QString label() const     { return "Aux"; }
      virtual QString name() const      { return "Aux"; }
      virtual unsigned long id() const  { return 0; }
      virtual QString maker() const     { return ""; }
      virtual QString copyright() const { return ""; }

      void* instantiate()           { return 0; }
      virtual void range(int i, double*, double*) const;
      virtual int parameter() const { return 2;     }
      virtual int inports() const   { return 100; }
      virtual int outports() const  { return 100; }

      virtual bool inPlaceCapable() const { return true; }
      virtual PluginIF* createPIF(PluginI*);

      virtual bool isLog(int k) const;
      virtual bool isBool(int k) const;
      virtual bool isInt(int k) const;
      virtual double defaultValue(int) const;
      };

//---------------------------------------------------------
//   AuxPluginIF
//---------------------------------------------------------

class AuxPluginIF : public PluginIF {
      double volume;
      double pan;
      float* _buffer[MAX_CHANNELS]; // this buffer is filled by apply()
                                    // _volume and _pan is applied

   public:
      AuxPluginIF(PluginI* pi);
      virtual ~AuxPluginIF();

      virtual void apply(unsigned nframes, float** src, float** dst);
      virtual void activate() {}
      virtual void deactivate() {}
      virtual void cleanup() {}
      virtual const char* getParameterName(int i) const;
      virtual void setParam(int i, double val);
      virtual float param(int i) const;
      bool init(Plugin*);
      float** buffer() { return _buffer; }
      int channel() const { return pluginInstance()->channel(); }
      };

extern AuxPlugin* auxPlugin;
#endif