/usr/include/CLAM/FrameInterpolator.hxx is in libclam-dev 1.4.0-5build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | /*
* Copyright (c) 2001-2004 MUSIC TECHNOLOGY GROUP (MTG)
* UNIVERSITAT POMPEU FABRA
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef _Frame_Interpolator_
#define _Frame_Interpolator_
#include "ProcessingComposite.hxx"
#include "DynamicType.hxx"
#include "Frame.hxx"
#include "InPort.hxx"
#include "OutPort.hxx"
#include "SpectrumInterpolator.hxx"
#include "SpectralPeakArrayInterpolator.hxx"
namespace CLAM {
class FrameInterpConfig: public ProcessingConfig
{
public:
DYNAMIC_TYPE_USING_INTERFACE (FrameInterpConfig, 6,ProcessingConfig);
DYN_ATTRIBUTE(0, public, TData, MagInterpolationFactor);
DYN_ATTRIBUTE(1, public, TData, FreqInterpolationFactor);
DYN_ATTRIBUTE(2, public, TData, PitchInterpolationFactor);
DYN_ATTRIBUTE(3, public, TData, ResidualInterpolationFactor);
DYN_ATTRIBUTE(4, public, bool, Harmonic);
DYN_ATTRIBUTE(5, public, bool, UseSpectralShape);
protected:
void DefaultInit();
void DefaultValues();
};
/**
* \brief This class performs the interpolation of two Frame processing data objects.
*
* Note that only spectral peak array for the sinusoidal component and residual
* spectrum are interpolated.
* @todo: maybe other attributes in Frame could also be interpolated if so specified
* in the configuration.
*/
class FrameInterpolator: public ProcessingComposite {
typedef FrameInterpConfig Config;
Config mConfig;
const char *GetClassName() const {return "FrameInterpolator";}
/** Config change method
* @pre argument should be an SpecInterpConfig
*/
bool ConcreteConfigure(const ProcessingConfig&);
void AttachChildren();
public:
FrameInterpolator(const FrameInterpConfig &c=Config());
~FrameInterpolator() {};
const ProcessingConfig &GetConfig() const { return mConfig;}
bool Do(void);
bool Do(const Frame& in1, const Frame& in2, Frame& out);
/** Input control for interpolation factor */
FloatInControl mFrameInterpolationFactorCtl;
FloatInControl mMagInterpolationFactorCtl;
FloatInControl mFreqInterpolationFactorCtl;
FloatInControl mPitchInterpolationFactorCtl;
FloatInControl mResidualInterpolationFactorCtl;
/** Input controls for input pitch needed for harmonic interpolation */
FloatInControl mPitch1Ctl;
FloatInControl mPitch2Ctl;
/** Input control for whether harmonic interpolation has to be performed*/
FloatInControl mIsHarmonicCtl;
/** Ports */
InPort<Frame> mIn1;
InPort<Frame> mIn2;
OutPort<Frame> mOut;
void AttachSpectralShape(Spectrum& spec) { mpSpectralShape = &spec; }
Spectrum* mpSpectralShape;
private:
/** children processings */
SpectrumInterpolator mPO_SpectrumInterpolator;
SpectralPeakArrayInterpolator mPO_PeaksInterpolator;
/** callbacks for controls */
void DoFrameFactorControl(TControlData value);
void DoMagFactorControl(TControlData value);
void DoFreqFactorControl(TControlData value);
void DoPitchFactorControl(TControlData value);
void DoResidualFactorControl(TControlData value);
void DoPitch1Control(TControlData value);
void DoPitch2Control(TControlData value);
void DoHarmonicControl(TControlData value);
};
}
#endif // _Frame_Interpolator_
|