|
kwave
18.07.70
|
#include <SonagramPlugin.h>


Classes | |
| struct | Slice |
Signals | |
| void | sliceAvailable (Kwave::SonagramPlugin::Slice *slice) |
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) |
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 |
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 ¶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 () |
Public Member Functions inherited from Kwave::Runnable | |
| virtual | ~Runnable () |
Protected Member Functions | |
| int | interpreteParameters (QStringList ¶ms) |
Protected Member Functions inherited from Kwave::Plugin | |
| 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 | |
Public Slots inherited from Kwave::Plugin | |
| 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().