kwave
18.07.70
|
#include <SonagramPlugin.h>
Classes | |
struct | Slice |
Signals | |
void | sliceAvailable (Kwave::SonagramPlugin::Slice *slice) |
![]() | |
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) |
Public Member Functions | |
SonagramPlugin (QObject *parent, const QVariantList &args) | |
virtual | ~SonagramPlugin () Q_DECL_OVERRIDE |
virtual QStringList * | setup (QStringList &previous_params) Q_DECL_OVERRIDE |
virtual int | start (QStringList ¶ms) Q_DECL_OVERRIDE |
virtual void | run (QStringList params) Q_DECL_OVERRIDE |
![]() | |
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 ¶ms) |
virtual void | unload () |
virtual int | stop () |
Kwave::PluginManager & | manager () const |
Kwave::SignalManager & | signalManager () |
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 () |
![]() | |
virtual | ~Runnable () |
Protected Member Functions | |
int | interpreteParameters (QStringList ¶ms) |
![]() | |
int | execute (QStringList ¶ms) |
void | emitCommand (const QString &command) |
void | use () |
void | setPluginManager (Kwave::PluginManager *new_plugin_manager) |
virtual void | run_wrapper (const QVariant ¶ms) Q_DECL_OVERRIDE |
Private Slots | |
void | validate () |
void | windowDestroyed () |
void | insertSlice (Kwave::SonagramPlugin::Slice *slice) |
void | refreshOverview () |
void | slotTrackInserted (const QUuid &track_id) |
void | slotTrackDeleted (const QUuid &track_id) |
void | slotInvalidated (const QUuid *track_id, sample_index_t first, sample_index_t last) |
Private Member Functions | |
void | makeAllValid () |
void | requestValidation () |
void | calculateSlice (Kwave::SonagramPlugin::Slice *slice) |
void | createNewImage (const unsigned int width, const unsigned int height) |
Private Attributes | |
Kwave::SonagramWindow * | m_sonagram_window |
Kwave::SelectionTracker * | m_selection |
unsigned int | m_slices |
unsigned int | m_fft_points |
Kwave::window_function_t | m_window_type |
bool | m_color |
bool | m_track_changes |
bool | m_follow_selection |
QImage | m_image |
Kwave::OverViewCache * | m_overview_cache |
Kwave::FixedPool< MAX_FFT_JOBS, Slice > | m_slice_pool |
QBitArray | m_valid |
QReadWriteLock | m_pending_jobs |
QMutex | m_lock_job_list |
QFuture< void > | m_future |
QTimer | m_repaint_timer |
Additional Inherited Members | |
![]() | |
virtual void | setProgressDialogEnabled (bool enable) |
virtual void | updateProgress (qreal progress) |
virtual void | cancel () |
virtual void | close () |
void | release () |
plugin that shows a sonagram window
Definition at line 64 of file SonagramPlugin.h.
Kwave::SonagramPlugin::SonagramPlugin | ( | QObject * | parent, |
const QVariantList & | args | ||
) |
Constructor
parent | reference to our plugin manager |
args | argument list [unused] |
Definition at line 62 of file SonagramPlugin.cpp.
References Kwave::connect(), insertSlice(), m_repaint_timer, sliceAvailable(), and validate().
|
virtual |
Destructor
Definition at line 87 of file SonagramPlugin.cpp.
References m_repaint_timer, m_selection, and m_sonagram_window.
|
private |
do the FFT calculation on a slice
slice | structure with the input data and output buffer |
Definition at line 399 of file SonagramPlugin.cpp.
References m_fft_points, Kwave::SonagramPlugin::Slice::m_input, Kwave::SonagramPlugin::Slice::m_output, Kwave::SonagramPlugin::Slice::m_result, and sliceAvailable().
Referenced by makeAllValid().
|
private |
Creates a new image for the current processing. If an old image exists, it will be deleted first, a new image will not be created if either width or height is zero. The image will get 8 bits depth and use a color or a greyscale palette.
width | number of horizontal pixels (slices = signal length / fft points, rounded up) [1..32767] |
height | number of vertical pixels (= fft points / 2) [1..32767] |
Definition at line 469 of file SonagramPlugin.cpp.
References m_image, m_sonagram_window, and Kwave::SonagramWindow::setImage().
Referenced by start().
|
privateslot |
Internally used to synchronously insert the data of one sonagram slice int the current image and refresh the display.
slice | a slice data container, including result |
Definition at line 444 of file SonagramPlugin.cpp.
References Kwave::SonagramWindow::insertSlice(), m_fft_points, Kwave::SonagramPlugin::Slice::m_index, m_pending_jobs, Kwave::SonagramPlugin::Slice::m_result, m_slice_pool, and m_sonagram_window.
Referenced by SonagramPlugin().
|
protected |
interpretes a given parameter list and sets up internal coordinates accordingly
params | reference to a QStringList with parameters |
Definition at line 126 of file SonagramPlugin.cpp.
References Kwave::WindowFunction::findFromName(), m_color, m_fft_points, m_follow_selection, m_track_changes, m_window_type, and MAX_FFT_POINTS.
Referenced by setup(), and start().
|
private |
will be run in a background thread to make all stripes valid.
Definition at line 271 of file SonagramPlugin.cpp.
References Kwave::SelectionTracker::allTracks(), Kwave::SignalManager::allTracks(), calculateSlice(), Kwave::MultiTrackReader::eof(), Kwave::SelectionTracker::first(), Kwave::SelectionTracker::last(), Kwave::SelectionTracker::length(), m_fft_points, m_lock_job_list, m_pending_jobs, m_selection, m_slice_pool, m_slices, m_valid, m_window_type, Kwave::WindowFunction::points(), sample2double(), Kwave::MultiTrackReader::seek(), Kwave::Plugin::shouldStop(), Kwave::Plugin::signalManager(), Kwave::SinglePassForward, sliceAvailable(), and Kwave::toInt().
Referenced by run(), and validate().
|
privateslot |
Updates the overview image under the sonagram
Definition at line 502 of file SonagramPlugin.cpp.
References Kwave::OverViewCache::getOverView(), m_overview_cache, m_sonagram_window, Kwave::SonagramWindow::setOverView(), and SONAGRAM_OVERVIEW_HEIGHT.
Referenced by start().
|
private |
Requests an update of the sonagram or portions of it
Definition at line 515 of file SonagramPlugin.cpp.
References m_repaint_timer, and REPAINT_INTERVAL.
Referenced by slotInvalidated(), slotTrackDeleted(), slotTrackInserted(), and validate().
|
virtual |
Runns once until all slices of the sonagram are calculated.
params | list of strings with parameters |
Reimplemented from Kwave::Plugin.
Definition at line 386 of file SonagramPlugin.cpp.
References m_lock_job_list, m_valid, and makeAllValid().
|
virtual |
Reimplemented from Kwave::Plugin.
Definition at line 99 of file SonagramPlugin.cpp.
References interpreteParameters(), m_color, m_follow_selection, m_track_changes, m_window_type, Kwave::SonagramDialog::parameters(), Kwave::SonagramDialog::setColorMode(), Kwave::SonagramDialog::setFollowSelection(), Kwave::SonagramDialog::setTrackChanges(), and Kwave::SonagramDialog::setWindowFunction().
|
signal |
emitted when a new slice has been calculated in calculateSlice()
slice | the slice data container, including result |
Referenced by calculateSlice(), makeAllValid(), and SonagramPlugin().
|
privateslot |
Connected to the selection tracker's sigInvalidated.
track_id | UUID of the track or null for "all tracks" |
first | index of the first invalidated sample |
last | index of the last invalidated sample |
Definition at line 569 of file SonagramPlugin.cpp.
References m_fft_points, m_lock_job_list, m_selection, m_slices, m_track_changes, m_valid, Kwave::SelectionTracker::offset(), requestValidation(), Kwave::round_up(), SAMPLE_INDEX_MAX, and Kwave::toUint().
Referenced by start().
|
privateslot |
Connected to the selection tracker's sigTrackInserted.
track_id | unique ID of the track |
Definition at line 554 of file SonagramPlugin.cpp.
References m_lock_job_list, m_slices, m_track_changes, m_valid, and requestValidation().
Referenced by start().
|
privateslot |
Connected to the selection tracker's sigTrackInserted.
track_id | unique ID of the track |
Definition at line 539 of file SonagramPlugin.cpp.
References m_lock_job_list, m_slices, m_track_changes, m_valid, and requestValidation().
Referenced by start().
|
virtual |
Reimplemented from Kwave::Plugin.
Definition at line 159 of file SonagramPlugin.cpp.
References Kwave::Plugin::close(), Kwave::connect(), createNewImage(), Kwave::MessageBox::error(), interpreteParameters(), m_color, m_fft_points, m_image, m_overview_cache, m_selection, m_slices, m_sonagram_window, m_track_changes, Kwave::Plugin::manager(), MAX_SLICES, Kwave::Plugin::parentWidget(), refreshOverview(), Kwave::Plugin::selection(), Kwave::SonagramWindow::setColorMode(), Kwave::SonagramWindow::setImage(), Kwave::SonagramWindow::setPoints(), Kwave::SonagramWindow::setRate(), Kwave::Plugin::sigClosed(), Kwave::Plugin::signalManager(), Kwave::Plugin::signalName(), Kwave::Plugin::signalRate(), slotInvalidated(), slotTrackDeleted(), slotTrackInserted(), Kwave::toUint(), Kwave::Plugin::use(), and windowDestroyed().
|
privateslot |
validate the sonagram by calling makeAllValid in a background thread
Definition at line 526 of file SonagramPlugin.cpp.
References m_future, makeAllValid(), and requestValidation().
Referenced by SonagramPlugin().
|
privateslot |
Connected to the SonagramWindow's "destroyed()" signal.
Definition at line 606 of file SonagramPlugin.cpp.
References Kwave::Plugin::cancel(), m_overview_cache, m_selection, m_sonagram_window, and Kwave::Plugin::release().
Referenced by start().
|
private |
if true, use color display, else use greyscale
Definition at line 230 of file SonagramPlugin.h.
Referenced by interpreteParameters(), setup(), and start().
|
private |
number of fft points
Definition at line 224 of file SonagramPlugin.h.
Referenced by calculateSlice(), insertSlice(), interpreteParameters(), makeAllValid(), slotInvalidated(), and start().
|
private |
if true, update the sonagram if the selection changed
Definition at line 236 of file SonagramPlugin.h.
Referenced by interpreteParameters(), and setup().
|
private |
the currently running background job
Definition at line 257 of file SonagramPlugin.h.
Referenced by validate().
|
private |
stores the image that is currently in process
Definition at line 239 of file SonagramPlugin.h.
Referenced by createNewImage(), and start().
|
private |
lock to protect the job list (m_valid)
Definition at line 254 of file SonagramPlugin.h.
Referenced by makeAllValid(), run(), slotInvalidated(), slotTrackDeleted(), and slotTrackInserted().
|
private |
cache with the current signal overview
Definition at line 242 of file SonagramPlugin.h.
Referenced by refreshOverview(), start(), and windowDestroyed().
|
private |
lock used for tracking running background jobs
Definition at line 251 of file SonagramPlugin.h.
Referenced by insertSlice(), and makeAllValid().
|
private |
timer for refreshing the sonagram
Definition at line 260 of file SonagramPlugin.h.
Referenced by requestValidation(), SonagramPlugin(), and ~SonagramPlugin().
|
private |
selection tracker
Definition at line 218 of file SonagramPlugin.h.
Referenced by makeAllValid(), slotInvalidated(), start(), windowDestroyed(), and ~SonagramPlugin().
|
private |
pool of slices
Definition at line 245 of file SonagramPlugin.h.
Referenced by insertSlice(), and makeAllValid().
|
private |
number of slices (= width of the image in pixels)
Definition at line 221 of file SonagramPlugin.h.
Referenced by makeAllValid(), slotInvalidated(), slotTrackDeleted(), slotTrackInserted(), and start().
|
private |
the main view of the plugin, a SonagramWindow
Definition at line 215 of file SonagramPlugin.h.
Referenced by createNewImage(), insertSlice(), refreshOverview(), start(), windowDestroyed(), and ~SonagramPlugin().
|
private |
if true, update the sonagram if the signal changes
Definition at line 233 of file SonagramPlugin.h.
Referenced by interpreteParameters(), setup(), slotInvalidated(), slotTrackDeleted(), slotTrackInserted(), and start().
|
private |
bit field with "is valid" a flag for each stripe
Definition at line 248 of file SonagramPlugin.h.
Referenced by makeAllValid(), run(), slotInvalidated(), slotTrackDeleted(), and slotTrackInserted().
|
private |
index of the window function
Definition at line 227 of file SonagramPlugin.h.
Referenced by interpreteParameters(), makeAllValid(), and setup().