kwave  18.07.70
Kwave::VolumePlugin Class Reference

#include <VolumePlugin.h>

Inheritance diagram for Kwave::VolumePlugin:
Inheritance graph
Collaboration diagram for Kwave::VolumePlugin:
Collaboration graph

Public Member Functions

 VolumePlugin (QObject *parent, const QVariantList &args)
 
virtual ~VolumePlugin () Q_DECL_OVERRIDE
 
virtual QStringList * setup (QStringList &previous_params) Q_DECL_OVERRIDE
 
virtual void run (QStringList params) 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 QString progressText ()
 
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 Member Functions

int interpreteParameters (QStringList &params)
 
- 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

QStringList m_params
 
float m_factor
 

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::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 31 of file VolumePlugin.h.

Constructor & Destructor Documentation

◆ VolumePlugin()

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

Constructor

Parameters
parentreference to our plugin manager
argsargument list [unused]

Definition at line 42 of file VolumePlugin.cpp.

43  :Kwave::Plugin(parent, args), m_params(), m_factor(1.0)
44 {
45 }
QStringList m_params
Definition: VolumePlugin.h:67

◆ ~VolumePlugin()

Kwave::VolumePlugin::~VolumePlugin ( )
virtual

Destructor

Definition at line 48 of file VolumePlugin.cpp.

49 {
50 }

Member Function Documentation

◆ interpreteParameters()

int Kwave::VolumePlugin::interpreteParameters ( QStringList &  params)
protected

Reads values from the parameter list

Definition at line 53 of file VolumePlugin.cpp.

References m_factor, and m_params.

Referenced by run(), and setup().

54 {
55  bool ok;
56  QString param;
57 
58  // evaluate the parameter list
59  if (params.count() != 2) return -EINVAL;
60 
61  param = params[0];
62  m_factor = param.toFloat(&ok);
63  Q_ASSERT(ok);
64  if (!ok) return -EINVAL;
65 
66  param = params[1];
67  unsigned int mode = param.toUInt(&ok);
68  Q_ASSERT(ok);
69  if (!ok || (mode > 2)) return -EINVAL;
70 
71  // all parameters accepted
72  m_params = params;
73 
74  return 0;
75 }
QStringList m_params
Definition: VolumePlugin.h:67
Here is the caller graph for this function:

◆ run()

void Kwave::VolumePlugin::run ( QStringList  params)
virtual

Does the amplification operation

Parameters
paramslist of strings with parameters

Reimplemented from Kwave::Plugin.

Definition at line 121 of file VolumePlugin.cpp.

References Kwave::connect(), Kwave::MultiTrackSource< SOURCE, INITIALIZE >::done(), Kwave::MultiTrackSource< SOURCE, INITIALIZE >::goOn(), interpreteParameters(), m_factor, Kwave::Overwrite, Kwave::Plugin::selectedTracks(), Kwave::Plugin::selection(), Kwave::Plugin::shouldStop(), Kwave::Plugin::signalManager(), Kwave::SinglePassForward, and Kwave::Plugin::updateProgress().

122 {
123  QList<unsigned int> tracks;
124  sample_index_t first, last;
125 
126  interpreteParameters(params);
127  if (!selection(&tracks, &first, &last, true) || tracks.isEmpty())
128  return;
129 
130  Kwave::UndoTransactionGuard undo_guard(*this, i18n("Volume"));
131 
132  // create all objects
134  signalManager(), selectedTracks(), first, last);
136  first, last);
137  Kwave::MultiTrackSource<Kwave::Mul, true> mul(tracks.count());
138 
139  // connect the progress dialog
140  connect(&source, SIGNAL(progress(qreal)),
141  this, SLOT(updateProgress(qreal)),
142  Qt::BlockingQueuedConnection);
143 
144  // connect them
146  source, SIGNAL(output(Kwave::SampleArray)),
147  mul, SLOT(input_a(Kwave::SampleArray)));
148 
149  mul.setAttribute(SLOT(set_b(QVariant)),
150  QVariant(m_factor));
152  mul, SIGNAL(output(Kwave::SampleArray)),
153  sink, SLOT(input(Kwave::SampleArray)));
154 
155  // transport the samples
156  qDebug("VolumePlugin: filter started...");
157  while (!shouldStop() && !source.done()) {
158  source.goOn();
159  mul.goOn();
160  }
161  qDebug("VolumePlugin: filter done.");
162 }
Kwave::SignalManager & signalManager()
Definition: Plugin.cpp:444
quint64 sample_index_t
Definition: Sample.h:28
bool connect(Kwave::StreamObject &source, const char *output, Kwave::StreamObject &sink, const char *input)
Definition: Connect.cpp:48
virtual void updateProgress(qreal progress)
Definition: Plugin.cpp:260
virtual const QList< unsigned int > selectedTracks()
Definition: Plugin.cpp:474
int interpreteParameters(QStringList &params)
bool shouldStop() const
Definition: Plugin.h:120
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)
Definition: Plugin.cpp:480
Here is the call graph for this function:

◆ setup()

QStringList * Kwave::VolumePlugin::setup ( QStringList &  previous_params)
virtual

Shows a dialog for selecting a volume.

See also
Kwave::Plugin::setup

Reimplemented from Kwave::Plugin.

Definition at line 78 of file VolumePlugin.cpp.

References interpreteParameters(), Kwave::SignalManager::isEmpty(), m_params, Kwave::Plugin::manager(), Kwave::VolumeDialog::params(), Kwave::Plugin::parentWidget(), Kwave::Plugin::selection(), Kwave::VolumeDialog::setParams(), and Kwave::PluginManager::signalManager().

79 {
80  // try to interprete the previous parameters
81  interpreteParameters(previous_params);
82 
83  // initialize the overview cache
85  QList<unsigned int> tracks;
86  sample_index_t first, last;
87  sample_index_t length = selection(&tracks, &first, &last, true);
88  Kwave::OverViewCache *overview_cache = new Kwave::OverViewCache(mgr,
89  first, length, tracks.isEmpty() ? Q_NULLPTR : &tracks);
90  Q_ASSERT(overview_cache);
91 
92  // create the setup dialog
93  Kwave::VolumeDialog *dialog =
94  new Kwave::VolumeDialog(parentWidget(), overview_cache);
95  if (!dialog) {
96  if (overview_cache) delete overview_cache;
97  return Q_NULLPTR;
98  }
99 
100  if (!m_params.isEmpty()) dialog->setParams(m_params);
101 
102  // execute the dialog
103  QStringList *list = new QStringList();
104  Q_ASSERT(list);
105  if (list && dialog->exec()) {
106  // user has pressed "OK"
107  *list = dialog->params();
108  } else {
109  // user pressed "Cancel"
110  if (list) delete list;
111  list = Q_NULLPTR;
112  }
113 
114  if (dialog) delete dialog;
115  if (overview_cache) delete overview_cache;
116 
117  return list;
118 }
QWidget * parentWidget() const
Definition: Plugin.cpp:450
void setParams(QStringList &params)
QStringList m_params
Definition: VolumePlugin.h:67
quint64 sample_index_t
Definition: Sample.h:28
Kwave::PluginManager & manager() const
Definition: Plugin.cpp:437
Kwave::SignalManager & signalManager()
int interpreteParameters(QStringList &params)
QStringList params()
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)
Definition: Plugin.cpp:480
Here is the call graph for this function:

Member Data Documentation

◆ m_factor

float Kwave::VolumePlugin::m_factor
private

amplification factor

Definition at line 70 of file VolumePlugin.h.

Referenced by interpreteParameters(), and run().

◆ m_params

QStringList Kwave::VolumePlugin::m_params
private

List of parameters

Definition at line 67 of file VolumePlugin.h.

Referenced by interpreteParameters(), and setup().


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