Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

[354ca9]: libkwave / KwaveFilterPlugin.h Maximize Restore History

Download this file

KwaveFilterPlugin.h    160 lines (122 with data), 4.4 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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
/***************************************************************************
KwaveFilterPlugin.h - generic class for filter plugins with setup
-------------------
begin : Sat Jun 07 2003
copyright : (C) 2003 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 _KWAVE_FILTER_PLUGIN_H_
#define _KWAVE_FILTER_PLUGIN_H_
#include "config.h"
#include <qobject.h>
#include <qstring.h>
#include "mt/SignalProxy.h"
#include "libkwave/KwavePlugin.h"
#include "libkwave/KwavePluginSetupDialog.h"
class ConfirmCancelProxy;
class QProgressDialog;
class QStringList;
class QWidget;
namespace Kwave {
class SampleSource;
class FilterPlugin: public KwavePlugin
{
Q_OBJECT
public:
/** Constructor */
FilterPlugin(const PluginContext &context);
/** Destructor */
virtual ~FilterPlugin();
/** Reads values from the parameter list */
virtual int interpreteParameters(QStringList & /* params */) = 0;
/**
* Creates a setup dialog an returns a pointer to it.
*/
virtual KwavePluginSetupDialog *createDialog(QWidget * /*parent*/) = 0;
/**
* Creates a multi-track filter with the given number of tracks
* @param tracks number of tracks that the filter should have
* @return pointer to the filter or null if failed
*/
virtual Kwave::SampleSource *createFilter(unsigned int tracks) = 0;
/**
* Shows a dialog for setting up the filter plugin
* @see KwavePlugin::setup
*/
virtual QStringList *setup(QStringList &previous_params);
/** Does the filter operation and/or pre-listen */
virtual void run(QStringList);
/** Aborts the process (if running). */
virtual int stop();
/**
* Returns true if the parameters have changed during pre-listen.
* @note this default implementation always returns false.
*/
virtual bool paramsChanged();
/**
* Update the filter with new parameters if it has changed
* changed during the pre-listen.
* @param filter the Kwave::SampleSource to be updated, should be the
* same one as created with createFilter()
* @param force if true, even update if no settings have changed
*/
virtual void updateFilter(Kwave::SampleSource *filter, bool force=0);
/**
* Returns a verbose name of the performed action. Used for giving
* the undo action a readable name.
* The name must already be localized !
*/
virtual QString actionName() = 0;
signals:
/**
* emitted when the user pressed the cancel button
* of the progress dialog
* @internal
*/
void sigCancelPressed();
protected slots:
/** Start the pre-listening */
void startPreListen();
/** Stop the pre-listening */
void stopPreListen();
/** forward changes of the progress dialog to a signal proxy */
void forwardProgress(unsigned int progress);
/** forward press of the cancel button int the progress dialog */
void forwardCancel();
/** update the progress dialog */
void updateProgress();
/**
* called when the user has pressed "Cancel" in the progress
* dialog and also has confirmed the cancel confirmation
* message box.
*/
void cancel();
private:
/** List of parameters */
QStringList m_params;
/** flag for stopping the process */
bool m_stop;
/** flag for indicating pre-listen mode */
bool m_listen;
/** a progress dialog, if the audio processing takes longer... */
QProgressDialog *m_progress;
/** signal proxy for the progress / dialog */
SignalProxy1< unsigned int > *m_spx_progress;
/**
* proxy dialog that asks for configmation if the user
* pressed cancel in the progress dialog
*/
ConfirmCancelProxy *m_confirm_cancel;
/** flag for pausing the process */
bool m_pause;
};
}
#endif /* _KWAVE_FILTER_PLUGIN_H_ */