kwave  18.07.70
Kwave::BandPassPlugin Class Reference

#include <BandPassPlugin.h>

Inheritance diagram for Kwave::BandPassPlugin:
Inheritance graph
Collaboration diagram for Kwave::BandPassPlugin:
Collaboration graph

Public Member Functions

 BandPassPlugin (QObject *parent, const QVariantList &args)
 
virtual ~BandPassPlugin () Q_DECL_OVERRIDE
 
virtual Kwave::PluginSetupDialogcreateDialog (QWidget *parent) Q_DECL_OVERRIDE
 
virtual Kwave::SampleSourcecreateFilter (unsigned int tracks) Q_DECL_OVERRIDE
 
virtual bool paramsChanged () Q_DECL_OVERRIDE
 
virtual void updateFilter (Kwave::SampleSource *filter, bool force=false) Q_DECL_OVERRIDE
 
virtual QString actionName () Q_DECL_OVERRIDE
 
- Public Member Functions inherited from Kwave::FilterPlugin
 FilterPlugin (QObject *parent, const QVariantList &args)
 
virtual ~FilterPlugin () Q_DECL_OVERRIDE
 
virtual QStringList * setup (QStringList &previous_params) Q_DECL_OVERRIDE
 
virtual void run (QStringList params) Q_DECL_OVERRIDE
 
virtual QString progressText () Q_DECL_OVERRIDE
 
- Public Member Functions inherited from Kwave::Plugin
 Plugin (QObject *parent, const QVariantList &args)
 
virtual ~Plugin () Q_DECL_OVERRIDE
 
virtual QString name () const
 
virtual QString description () const
 
virtual bool canClose () const
 
bool isRunning () const
 
bool shouldStop () const
 
virtual void load (QStringList &params)
 
virtual void unload ()
 
virtual int start (QStringList &params)
 
virtual int stop ()
 
Kwave::PluginManagermanager () const
 
Kwave::SignalManagersignalManager ()
 
QWidget * parentWidget () const
 
QString signalName ()
 
virtual sample_index_t signalLength ()
 
virtual double signalRate ()
 
virtual const QList< unsigned int > selectedTracks ()
 
virtual sample_index_t selection (QList< unsigned int > *tracks=Q_NULLPTR, sample_index_t *left=Q_NULLPTR, sample_index_t *right=Q_NULLPTR, bool expand_if_empty=false)
 
virtual void selectRange (sample_index_t offset, sample_index_t length)
 
virtual void migrateToActiveContext ()
 
- Public Member Functions inherited from Kwave::Runnable
virtual ~Runnable ()
 

Protected Slots

void setFreqValue (double frequency)
 
void setBwValue (double bw)
 
- Protected Slots inherited from Kwave::FilterPlugin
void startPreListen ()
 
void stopPreListen ()
 

Protected Member Functions

virtual int interpreteParameters (QStringList &params) Q_DECL_OVERRIDE
 
- Protected Member Functions inherited from Kwave::Plugin
int execute (QStringList &params)
 
void emitCommand (const QString &command)
 
void use ()
 
void setPluginManager (Kwave::PluginManager *new_plugin_manager)
 
virtual void run_wrapper (const QVariant &params) Q_DECL_OVERRIDE
 

Private Attributes

double m_frequency
 
double m_last_freq
 
double m_bw
 
double m_last_bw
 

Additional Inherited Members

- Public Slots inherited from Kwave::Plugin
virtual void setProgressDialogEnabled (bool enable)
 
virtual void updateProgress (qreal progress)
 
virtual void cancel ()
 
virtual void close ()
 
void release ()
 
- Signals inherited from Kwave::FilterPlugin
void sigCancelPressed ()
 
- Signals inherited from Kwave::Plugin
void sigRunning (Kwave::Plugin *plugin)
 
void sigDone (Kwave::Plugin *plugin)
 
void sigClosed (Kwave::Plugin *p)
 
void sigCommand (const QString &command)
 
void setProgressText (const QString &text)
 

Detailed Description

Definition at line 36 of file BandPassPlugin.h.

Constructor & Destructor Documentation

◆ BandPassPlugin()

Kwave::BandPassPlugin::BandPassPlugin ( QObject *  parent,
const QVariantList &  args 
)

Constructor

Parameters
parentreference to our plugin manager
argsargument list [unused]

Definition at line 36 of file BandPassPlugin.cpp.

◆ ~BandPassPlugin()

Kwave::BandPassPlugin::~BandPassPlugin ( )
virtual

Destructor

Definition at line 44 of file BandPassPlugin.cpp.

45 {
46 }

Member Function Documentation

◆ actionName()

QString Kwave::BandPassPlugin::actionName ( )
virtual

Returns a verbose name of the performed action. Used for giving the undo action a readable name.

Implements Kwave::FilterPlugin.

Definition at line 123 of file BandPassPlugin.cpp.

124 {
125  return i18n("Band Pass");
126 }

◆ createDialog()

Kwave::PluginSetupDialog * Kwave::BandPassPlugin::createDialog ( QWidget *  parent)
virtual

Creates the setup dialog and connects it's signals

Implements Kwave::FilterPlugin.

Definition at line 74 of file BandPassPlugin.cpp.

References Kwave::connect(), setBwValue(), setFreqValue(), and Kwave::Plugin::signalRate().

75 {
76  Kwave::BandPassDialog *dialog =
77  new Kwave::BandPassDialog(parent, signalRate());
78  Q_ASSERT(dialog);
79  if (!dialog) return Q_NULLPTR;
80 
81  // connect the signals for detecting value changes in pre-listen mode
82  connect(dialog, SIGNAL(freqChanged(double)),
83  this, SLOT(setFreqValue(double)));
84  connect(dialog, SIGNAL(bwChanged(double)),
85  this, SLOT(setBwValue(double)));
86  return dialog;
87 }
void setFreqValue(double frequency)
bool connect(Kwave::StreamObject &source, const char *output, Kwave::StreamObject &sink, const char *input)
Definition: Connect.cpp:48
void setBwValue(double bw)
virtual double signalRate()
Definition: Plugin.cpp:468
Here is the call graph for this function:

◆ createFilter()

Kwave::SampleSource * Kwave::BandPassPlugin::createFilter ( unsigned int  tracks)
virtual

Creates a multi-track filter with the given number of tracks

Parameters
tracksnumber of tracks that the filter should have
Returns
pointer to the filter or null if failed

Implements Kwave::FilterPlugin.

Definition at line 90 of file BandPassPlugin.cpp.

◆ interpreteParameters()

int Kwave::BandPassPlugin::interpreteParameters ( QStringList &  params)
protectedvirtual

Reads values from the parameter list

Implements Kwave::FilterPlugin.

Definition at line 49 of file BandPassPlugin.cpp.

References m_bw, and m_frequency.

50 {
51  bool ok;
52  QString param;
53 
54  if (params.isEmpty()) return -EINVAL;
55 
56  // evaluate the parameter list
57  Q_ASSERT(params.count() == 2);
58  if (params.count() != 2) return -EINVAL;
59 
60  param = params[0];
61  m_frequency = param.toDouble(&ok);
62  Q_ASSERT(ok);
63  if (!ok) return -EINVAL;
64 
65  param = params[1];
66  m_bw = param.toDouble(&ok);
67  Q_ASSERT(ok);
68  if (!ok) return -EINVAL;
69 
70  return 0;
71 }

◆ paramsChanged()

bool Kwave::BandPassPlugin::paramsChanged ( )
virtual

Returns true if the parameters have changed during pre-listen.

Reimplemented from Kwave::FilterPlugin.

Definition at line 96 of file BandPassPlugin.cpp.

References m_bw, m_frequency, m_last_bw, and m_last_freq.

97 {
98  return (!qFuzzyCompare(m_frequency, m_last_freq) ||
99  !qFuzzyCompare(m_bw, m_last_bw));
100 }

◆ setBwValue

void Kwave::BandPassPlugin::setBwValue ( double  bw)
protectedslot

Called when the bandwidth parameter changed during pre-listen

Parameters
bwrelative bandwidth [0...1]

Definition at line 135 of file BandPassPlugin.cpp.

References m_bw.

Referenced by createDialog().

136 {
137  m_bw = bw;
138 }
Here is the caller graph for this function:

◆ setFreqValue

void Kwave::BandPassPlugin::setFreqValue ( double  frequency)
protectedslot

Called when the parameter changed during pre-listen

Parameters
frequencythe frequency parameter in Hz

Definition at line 129 of file BandPassPlugin.cpp.

References m_frequency.

Referenced by createDialog().

130 {
131  m_frequency = frequency;
132 }
Here is the caller graph for this function:

◆ updateFilter()

void Kwave::BandPassPlugin::updateFilter ( Kwave::SampleSource filter,
bool  force = false 
)
virtual

Update the filter with new parameters if it has changed changed during the pre-listen.

Parameters
filterthe Kwave::SampleSource to be updated, should be the same one as created with createFilter()
forceif true, even update if no settings have changed

Reimplemented from Kwave::FilterPlugin.

Definition at line 103 of file BandPassPlugin.cpp.

References m_bw, m_frequency, m_last_bw, m_last_freq, Kwave::StreamObject::setAttribute(), and Kwave::Plugin::signalRate().

105 {
106  double sr = signalRate();
107 
108  if (!filter) return;
109 
110  if (!qFuzzyCompare(m_frequency, m_last_freq) || force)
111  filter->setAttribute(SLOT(setFrequency(QVariant)),
112  QVariant((m_frequency * 2.0 * M_PI) / sr));
113 
114  if (!qFuzzyCompare(m_bw, m_last_bw) || force)
115  filter->setAttribute(SLOT(setBandwidth(QVariant)),
116  QVariant((m_bw * 2.0 * M_PI) / sr));
117 
119  m_last_bw = m_bw;
120 }
virtual double signalRate()
Definition: Plugin.cpp:468
void setAttribute(const char *attribute, const QVariant &value)
Here is the call graph for this function:

Member Data Documentation

◆ m_bw

double Kwave::BandPassPlugin::m_bw
private

bandwidth value [Hz]

Definition at line 113 of file BandPassPlugin.h.

Referenced by interpreteParameters(), paramsChanged(), setBwValue(), and updateFilter().

◆ m_frequency

double Kwave::BandPassPlugin::m_frequency
private

cutoff frequency [Hz]

Definition at line 107 of file BandPassPlugin.h.

Referenced by interpreteParameters(), paramsChanged(), setFreqValue(), and updateFilter().

◆ m_last_bw

double Kwave::BandPassPlugin::m_last_bw
private

last value of m_bw

Definition at line 116 of file BandPassPlugin.h.

Referenced by paramsChanged(), and updateFilter().

◆ m_last_freq

double Kwave::BandPassPlugin::m_last_freq
private

last value of m_frequency

Definition at line 110 of file BandPassPlugin.h.

Referenced by paramsChanged(), and updateFilter().


The documentation for this class was generated from the following files: