annotate transform/RealTimeEffectModelTransformer.h @ 1671:82d03c9661f9 single-point

Rework isReady()/getCompletion() on models. Previously the new overhauled models were implementing getCompletion() but inheriting a version of isReady() (from the Model base) that didn't call it, referring only to isOK(). So they were reporting completion as soon as they had begun. Instead hoist getCompletion() to abstract base and call it from Model::isReady().
author Chris Cannam
date Wed, 27 Mar 2019 13:15:16 +0000
parents ad5f892c0c4d
children fe3f7f8df3a3
rev   line source
Chris@320 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@320 2
Chris@320 3 /*
Chris@320 4 Sonic Visualiser
Chris@320 5 An audio file viewer and annotation editor.
Chris@320 6 Centre for Digital Music, Queen Mary, University of London.
Chris@320 7 This file copyright 2006 Chris Cannam and QMUL.
Chris@320 8
Chris@320 9 This program is free software; you can redistribute it and/or
Chris@320 10 modify it under the terms of the GNU General Public License as
Chris@320 11 published by the Free Software Foundation; either version 2 of the
Chris@320 12 License, or (at your option) any later version. See the file
Chris@320 13 COPYING included with this distribution for more information.
Chris@320 14 */
Chris@320 15
Chris@1581 16 #ifndef SV_REAL_TIME_EFFECT_TRANSFORMER_H
Chris@1581 17 #define SV_REAL_TIME_EFFECT_TRANSFORMER_H
Chris@320 18
Chris@350 19 #include "ModelTransformer.h"
Chris@320 20 #include "plugin/RealTimePluginInstance.h"
Chris@320 21
Chris@320 22 class DenseTimeValueModel;
Chris@320 23
Chris@350 24 class RealTimeEffectModelTransformer : public ModelTransformer
Chris@320 25 {
Chris@320 26 public:
Chris@350 27 RealTimeEffectModelTransformer(Input input,
Chris@350 28 const Transform &transform);
Chris@331 29 virtual ~RealTimeEffectModelTransformer();
Chris@320 30
Chris@320 31 protected:
Chris@1580 32 void run() override;
Chris@320 33
Chris@1580 34 void awaitOutputModels() override { } // they're created synchronously
Chris@1211 35
Chris@320 36 QString m_units;
Chris@320 37 RealTimePluginInstance *m_plugin;
Chris@320 38 int m_outputNo;
Chris@320 39
Chris@320 40 // just casts
Chris@350 41 DenseTimeValueModel *getConformingInput();
Chris@320 42 };
Chris@320 43
Chris@320 44 #endif
Chris@320 45