kwave  18.07.70
Kwave::SelectRangePlugin Class Reference

#include <SelectRangePlugin.h>

Inheritance diagram for Kwave::SelectRangePlugin:
Inheritance graph
Collaboration diagram for Kwave::SelectRangePlugin:
Collaboration graph

Public Member Functions

 SelectRangePlugin (QObject *parent, const QVariantList &args)
 
virtual ~SelectRangePlugin () Q_DECL_OVERRIDE
 
virtual QStringList * setup (QStringList &previous_params) Q_DECL_OVERRIDE
 
virtual int start (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 stop ()
 
virtual void run (QStringList params)
 
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

Kwave::SelectTimeWidget::Mode m_start_mode
 
Kwave::SelectTimeWidget::Mode m_range_mode
 
unsigned int m_start
 
unsigned int m_range
 

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 34 of file SelectRangePlugin.h.

Constructor & Destructor Documentation

◆ SelectRangePlugin()

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

Constructor

Parameters
parentreference to our plugin manager
argsargument list [unused]

Definition at line 37 of file SelectRangePlugin.cpp.

◆ ~SelectRangePlugin()

Kwave::SelectRangePlugin::~SelectRangePlugin ( )
virtual

Destructor

Definition at line 47 of file SelectRangePlugin.cpp.

48 {
49 }

Member Function Documentation

◆ interpreteParameters()

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

Reads values from the parameter list

Definition at line 127 of file SelectRangePlugin.cpp.

References Kwave::SelectTimeWidget::byPercents, Kwave::SelectTimeWidget::bySamples, Kwave::SelectTimeWidget::byTime, m_range, m_range_mode, m_start, and m_start_mode.

Referenced by setup(), and start().

128 {
129  bool ok;
130  QString param;
131  int mode;
132 
133  // evaluate the parameter list
134  if (params.count() != 4) {
135  return -EINVAL;
136  }
137 
138  // selection mode for start
139  param = params[0];
140  mode = param.toInt(&ok);
141  Q_ASSERT(ok);
142  if (!ok) return -EINVAL;
143  Q_ASSERT(
144  (mode == static_cast<int>(Kwave::SelectTimeWidget::byTime)) ||
145  (mode == static_cast<int>(Kwave::SelectTimeWidget::bySamples)) ||
146  (mode == static_cast<int>(Kwave::SelectTimeWidget::byPercents))
147  );
148  if ((mode != static_cast<int>(Kwave::SelectTimeWidget::byTime)) &&
149  (mode != static_cast<int>(Kwave::SelectTimeWidget::bySamples)) &&
150  (mode != static_cast<int>(Kwave::SelectTimeWidget::byPercents)))
151  {
152  return -EINVAL;
153  }
154  m_start_mode = static_cast<Kwave::SelectTimeWidget::Mode>(mode);
155 
156 
157  // selection mode
158  param = params[1];
159  mode = param.toInt(&ok);
160  Q_ASSERT(ok);
161  if (!ok) return -EINVAL;
162  Q_ASSERT(
163  (mode == static_cast<int>(Kwave::SelectTimeWidget::byTime)) ||
164  (mode == static_cast<int>(Kwave::SelectTimeWidget::bySamples)) ||
165  (mode == static_cast<int>(Kwave::SelectTimeWidget::byPercents))
166  );
167  if ((mode != static_cast<int>(Kwave::SelectTimeWidget::byTime)) &&
168  (mode != static_cast<int>(Kwave::SelectTimeWidget::bySamples)) &&
169  (mode != static_cast<int>(Kwave::SelectTimeWidget::byPercents)))
170  {
171  return -EINVAL;
172  }
173  m_range_mode = static_cast<Kwave::SelectTimeWidget::Mode>(mode);
174 
175  // offset in ms, samples or percent
176  param = params[2];
177  m_start = param.toUInt(&ok);
178  if (!ok) return -EINVAL;
179 
180  // range in ms, samples or percent
181  param = params[3];
182  m_range = param.toUInt(&ok);
183  if (!ok) return -EINVAL;
184 
185  return 0;
186 }
Kwave::SelectTimeWidget::Mode m_start_mode
Kwave::SelectTimeWidget::Mode m_range_mode
Here is the caller graph for this function:

◆ setup()

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

Shows a dialog for selecting the range and emits a command for applying the selection if OK has been pressed.

See also
Kwave::Plugin::setup

Reimplemented from Kwave::Plugin.

Definition at line 52 of file SelectRangePlugin.cpp.

References _, Kwave::Plugin::emitCommand(), interpreteParameters(), m_range, m_range_mode, m_start_mode, Kwave::Plugin::manager(), Kwave::Plugin::parentWidget(), Kwave::SelectRangeDialog::range(), Kwave::SelectRangeDialog::rangeMode(), Kwave::PluginManager::selectionStart(), Kwave::Plugin::signalLength(), Kwave::Plugin::signalRate(), Kwave::SelectRangeDialog::start(), and Kwave::SelectRangeDialog::startMode().

53 {
54  // try to interpret the previous parameters
55  interpreteParameters(previous_params);
56 
57  // create the setup dialog
58  double rate = signalRate();
60  sample_index_t length = signalLength();
61 
62  Kwave::SelectRangeDialog *dialog =
64  m_start_mode, m_range_mode, m_range, rate, offset, length);
65  Q_ASSERT(dialog);
66  if (!dialog) return Q_NULLPTR;
67 
68  QStringList *list = new QStringList();
69  Q_ASSERT(list);
70  if (list && dialog->exec()) {
71  // user has pressed "OK"
72  *list << QString::number(dialog->startMode());
73  *list << QString::number(dialog->rangeMode());
74  *list << QString::number(dialog->start());
75  *list << QString::number(dialog->range());
76 
77  emitCommand(_("plugin:execute(selectrange,") +
78  QString::number(dialog->startMode()) + _(",") +
79  QString::number(dialog->rangeMode()) + _(",") +
80  QString::number(dialog->start()) + _(",") +
81  QString::number(dialog->range())+
82  _(")")
83  );
84  } else {
85  // user pressed "Cancel"
86  if (list) delete list;
87  list = Q_NULLPTR;
88  }
89 
90  if (dialog) delete dialog;
91  return list;
92 }
void emitCommand(const QString &command)
Definition: Plugin.cpp:510
int interpreteParameters(QStringList &params)
Kwave::SelectTimeWidget::Mode m_start_mode
QWidget * parentWidget() const
Definition: Plugin.cpp:450
quint64 sample_index_t
Definition: Sample.h:28
Kwave::PluginManager & manager() const
Definition: Plugin.cpp:437
virtual sample_index_t signalLength()
Definition: Plugin.cpp:462
sample_index_t selectionStart()
virtual double signalRate()
Definition: Plugin.cpp:468
#define _(m)
Definition: memcpy.c:66
Kwave::SelectTimeWidget::Mode m_range_mode
Here is the call graph for this function:

◆ start()

int Kwave::SelectRangePlugin::start ( QStringList &  params)
virtual

selects the range

See also
Kwave::Plugin::start()

Reimplemented from Kwave::Plugin.

Definition at line 95 of file SelectRangePlugin.cpp.

References interpreteParameters(), m_range, m_range_mode, m_start, m_start_mode, Kwave::Plugin::selectRange(), Kwave::Plugin::signalLength(), Kwave::Plugin::signalRate(), and Kwave::SelectTimeWidget::timeToSamples().

96 {
97  // interprete the parameters
98  int result = interpreteParameters(params);
99  if (result) return result;
100 
101  const sample_index_t signal_length = signalLength();
102 
103  // get current offset of the signal
105  m_start_mode, m_start, signalRate(), signal_length);
106 
107  // transform into offset and length [samples]
109  m_range_mode, m_range, signalRate(), signal_length);
110 
111  // limit selection to end of signal
112  if (length > signal_length)
113  length = signal_length;
114  if ((offset + length) >= signal_length)
115  length = signal_length - offset;
116 
117  // change the selection through the signal manager
118  {
119  Kwave::UndoTransactionGuard undo_guard(*this, i18n("Select Range"));
120  selectRange(offset, length);
121  }
122 
123  return result;
124 }
int interpreteParameters(QStringList &params)
Kwave::SelectTimeWidget::Mode m_start_mode
quint64 sample_index_t
Definition: Sample.h:28
static sample_index_t timeToSamples(Mode mode, quint64 time, double rate, sample_index_t length)
virtual sample_index_t signalLength()
Definition: Plugin.cpp:462
virtual double signalRate()
Definition: Plugin.cpp:468
virtual void selectRange(sample_index_t offset, sample_index_t length)
Definition: Plugin.cpp:504
Kwave::SelectTimeWidget::Mode m_range_mode
Here is the call graph for this function:

Member Data Documentation

◆ m_range

unsigned int Kwave::SelectRangePlugin::m_range
private

range in milliseconds, samples or percents

Definition at line 81 of file SelectRangePlugin.h.

Referenced by interpreteParameters(), setup(), and start().

◆ m_range_mode

Kwave::SelectTimeWidget::Mode Kwave::SelectRangePlugin::m_range_mode
private

selected mode for range: by time, samples, percentage

Definition at line 75 of file SelectRangePlugin.h.

Referenced by interpreteParameters(), setup(), and start().

◆ m_start

unsigned int Kwave::SelectRangePlugin::m_start
private

start in milliseconds, samples or percents

Definition at line 78 of file SelectRangePlugin.h.

Referenced by interpreteParameters(), and start().

◆ m_start_mode

Kwave::SelectTimeWidget::Mode Kwave::SelectRangePlugin::m_start_mode
private

selected mode for start: by time, samples, percentage

Definition at line 72 of file SelectRangePlugin.h.

Referenced by interpreteParameters(), setup(), and start().


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