annotate transform/RealTimeEffectModelTransformer.h @ 1008:d9e0e59a1581

When using an aggregate model to pass data to a transform, zero-pad the shorter input to the duration of the longer rather than truncating the longer. (This is better behaviour for e.g. MATCH, and in any case the code was previously truncating incorrectly and ending up with garbage data at the end.)
author Chris Cannam
date Fri, 14 Nov 2014 13:51:33 +0000
parents 418cd2064769
children 5a1198083d9a
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@849 16 #ifndef _REAL_TIME_EFFECT_TRANSFORMER_H_
Chris@849 17 #define _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@320 32 virtual void run();
Chris@320 33
Chris@320 34 QString m_units;
Chris@320 35 RealTimePluginInstance *m_plugin;
Chris@320 36 int m_outputNo;
Chris@320 37
Chris@320 38 // just casts
Chris@350 39 DenseTimeValueModel *getConformingInput();
Chris@320 40 };
Chris@320 41
Chris@320 42 #endif
Chris@320 43