2
* ladspa_effect.h - class for handling LADSPA effect plugins
4
* Copyright (c) 2006-2007 Danny McRae <khjklujn/at/users.sourceforge.net>
6
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
8
* This program is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU General Public
10
* License as published by the Free Software Foundation; either
11
* version 2 of the License, or (at your option) any later version.
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
* General Public License for more details.
18
* You should have received a copy of the GNU General Public
19
* License along with this program (see COPYING); if not, write to the
20
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21
* Boston, MA 02110-1301 USA.
25
#ifndef _LADSPA_EFFECT_H
26
#define _LADSPA_EFFECT_H
32
#include "qt3support.h"
36
#include "ladspa_2_lmms.h"
38
#include "ladspa_control.h"
39
#include "ladspa_control_dialog.h"
40
#include "ladspa_base.h"
41
#include "main_window.h"
44
typedef vvector<port_desc_t *> multi_proc_t;
46
class ladspaEffect : public effect
49
ladspaEffect( const descriptor::subPluginFeatures::key * _key );
50
virtual ~ladspaEffect();
52
virtual bool FASTCALL processAudioBuffer( surroundSampleFrame * _buf,
53
const fpp_t _frames );
55
void FASTCALL setControl( Uint16 _control, LADSPA_Data _data );
57
inline const multi_proc_t & getControls( void )
62
virtual inline QString publicName( void ) const
67
inline void setPublicName( const QString & _name )
72
virtual inline effectControlDialog * createControlDialog(
75
return( new ladspaControlDialog(
76
engine::getMainWindow()->workspace(),
80
inline virtual QString nodeName( void ) const
82
return( "ladspaeffect" );
89
ladspa2LMMS * m_ladspa;
90
Uint16 m_effectChannels;
94
const LADSPA_Descriptor * m_descriptor;
95
vvector<LADSPA_Handle> m_handles;
97
vvector<multi_proc_t> m_ports;
98
multi_proc_t m_controls;