annotate Azi.cpp @ 0:d960c4931501

Import Vamp plugin skeleton
author Chris Cannam
date Fri, 25 Jul 2014 17:11:57 +0100
parents
children 41b09144491b
rev   line source
Chris@0 1
Chris@0 2 #include "Azi.h"
Chris@0 3
Chris@0 4
Chris@0 5 Azi::Azi(float inputSampleRate) :
Chris@0 6 Plugin(inputSampleRate)
Chris@0 7 // Also be sure to set your plugin parameters (presumably stored
Chris@0 8 // in member variables) to their default values here -- the host
Chris@0 9 // will not do that for you
Chris@0 10 {
Chris@0 11 }
Chris@0 12
Chris@0 13 Azi::~Azi()
Chris@0 14 {
Chris@0 15 }
Chris@0 16
Chris@0 17 string
Chris@0 18 Azi::getIdentifier() const
Chris@0 19 {
Chris@0 20 return "azi";
Chris@0 21 }
Chris@0 22
Chris@0 23 string
Chris@0 24 Azi::getName() const
Chris@0 25 {
Chris@0 26 return "Stereo Plan";
Chris@0 27 }
Chris@0 28
Chris@0 29 string
Chris@0 30 Azi::getDescription() const
Chris@0 31 {
Chris@0 32 // Return something helpful here!
Chris@0 33 return "";
Chris@0 34 }
Chris@0 35
Chris@0 36 string
Chris@0 37 Azi::getMaker() const
Chris@0 38 {
Chris@0 39 // Your name here
Chris@0 40 return "";
Chris@0 41 }
Chris@0 42
Chris@0 43 int
Chris@0 44 Azi::getPluginVersion() const
Chris@0 45 {
Chris@0 46 // Increment this each time you release a version that behaves
Chris@0 47 // differently from the previous one
Chris@0 48 return 1;
Chris@0 49 }
Chris@0 50
Chris@0 51 string
Chris@0 52 Azi::getCopyright() const
Chris@0 53 {
Chris@0 54 // This function is not ideally named. It does not necessarily
Chris@0 55 // need to say who made the plugin -- getMaker does that -- but it
Chris@0 56 // should indicate the terms under which it is distributed. For
Chris@0 57 // example, "Copyright (year). All Rights Reserved", or "GPL"
Chris@0 58 return "";
Chris@0 59 }
Chris@0 60
Chris@0 61 Azi::InputDomain
Chris@0 62 Azi::getInputDomain() const
Chris@0 63 {
Chris@0 64 return TimeDomain;
Chris@0 65 }
Chris@0 66
Chris@0 67 size_t
Chris@0 68 Azi::getPreferredBlockSize() const
Chris@0 69 {
Chris@0 70 return 0; // 0 means "I can handle any block size"
Chris@0 71 }
Chris@0 72
Chris@0 73 size_t
Chris@0 74 Azi::getPreferredStepSize() const
Chris@0 75 {
Chris@0 76 return 0; // 0 means "anything sensible"; in practice this
Chris@0 77 // means the same as the block size for TimeDomain
Chris@0 78 // plugins, or half of it for FrequencyDomain plugins
Chris@0 79 }
Chris@0 80
Chris@0 81 size_t
Chris@0 82 Azi::getMinChannelCount() const
Chris@0 83 {
Chris@0 84 return 1;
Chris@0 85 }
Chris@0 86
Chris@0 87 size_t
Chris@0 88 Azi::getMaxChannelCount() const
Chris@0 89 {
Chris@0 90 return 1;
Chris@0 91 }
Chris@0 92
Chris@0 93 Azi::ParameterList
Chris@0 94 Azi::getParameterDescriptors() const
Chris@0 95 {
Chris@0 96 ParameterList list;
Chris@0 97
Chris@0 98 // If the plugin has no adjustable parameters, return an empty
Chris@0 99 // list here (and there's no need to provide implementations of
Chris@0 100 // getParameter and setParameter in that case either).
Chris@0 101
Chris@0 102 // Note that it is your responsibility to make sure the parameters
Chris@0 103 // start off having their default values (e.g. in the constructor
Chris@0 104 // above). The host needs to know the default value so it can do
Chris@0 105 // things like provide a "reset to default" function, but it will
Chris@0 106 // not explicitly set your parameters to their defaults for you if
Chris@0 107 // they have not changed in the mean time.
Chris@0 108
Chris@0 109 ParameterDescriptor d;
Chris@0 110 d.identifier = "parameter";
Chris@0 111 d.name = "Some Parameter";
Chris@0 112 d.description = "";
Chris@0 113 d.unit = "";
Chris@0 114 d.minValue = 0;
Chris@0 115 d.maxValue = 10;
Chris@0 116 d.defaultValue = 5;
Chris@0 117 d.isQuantized = false;
Chris@0 118 list.push_back(d);
Chris@0 119
Chris@0 120 return list;
Chris@0 121 }
Chris@0 122
Chris@0 123 float
Chris@0 124 Azi::getParameter(string identifier) const
Chris@0 125 {
Chris@0 126 if (identifier == "parameter") {
Chris@0 127 return 5; // return the ACTUAL current value of your parameter here!
Chris@0 128 }
Chris@0 129 return 0;
Chris@0 130 }
Chris@0 131
Chris@0 132 void
Chris@0 133 Azi::setParameter(string identifier, float value)
Chris@0 134 {
Chris@0 135 if (identifier == "parameter") {
Chris@0 136 // set the actual value of your parameter
Chris@0 137 }
Chris@0 138 }
Chris@0 139
Chris@0 140 Azi::ProgramList
Chris@0 141 Azi::getPrograms() const
Chris@0 142 {
Chris@0 143 ProgramList list;
Chris@0 144
Chris@0 145 // If you have no programs, return an empty list (or simply don't
Chris@0 146 // implement this function or getCurrentProgram/selectProgram)
Chris@0 147
Chris@0 148 return list;
Chris@0 149 }
Chris@0 150
Chris@0 151 string
Chris@0 152 Azi::getCurrentProgram() const
Chris@0 153 {
Chris@0 154 return ""; // no programs
Chris@0 155 }
Chris@0 156
Chris@0 157 void
Chris@0 158 Azi::selectProgram(string name)
Chris@0 159 {
Chris@0 160 }
Chris@0 161
Chris@0 162 Azi::OutputList
Chris@0 163 Azi::getOutputDescriptors() const
Chris@0 164 {
Chris@0 165 OutputList list;
Chris@0 166
Chris@0 167 // See OutputDescriptor documentation for the possibilities here.
Chris@0 168 // Every plugin must have at least one output.
Chris@0 169
Chris@0 170 OutputDescriptor d;
Chris@0 171 d.identifier = "output";
Chris@0 172 d.name = "My Output";
Chris@0 173 d.description = "";
Chris@0 174 d.unit = "";
Chris@0 175 d.hasFixedBinCount = true;
Chris@0 176 d.binCount = 1;
Chris@0 177 d.hasKnownExtents = false;
Chris@0 178 d.isQuantized = false;
Chris@0 179 d.sampleType = OutputDescriptor::OneSamplePerStep;
Chris@0 180 d.hasDuration = false;
Chris@0 181 list.push_back(d);
Chris@0 182
Chris@0 183 return list;
Chris@0 184 }
Chris@0 185
Chris@0 186 bool
Chris@0 187 Azi::initialise(size_t channels, size_t stepSize, size_t blockSize)
Chris@0 188 {
Chris@0 189 if (channels < getMinChannelCount() ||
Chris@0 190 channels > getMaxChannelCount()) return false;
Chris@0 191
Chris@0 192 // Real initialisation work goes here!
Chris@0 193
Chris@0 194 return true;
Chris@0 195 }
Chris@0 196
Chris@0 197 void
Chris@0 198 Azi::reset()
Chris@0 199 {
Chris@0 200 // Clear buffers, reset stored values, etc
Chris@0 201 }
Chris@0 202
Chris@0 203 Azi::FeatureSet
Chris@0 204 Azi::process(const float *const *inputBuffers, Vamp::RealTime timestamp)
Chris@0 205 {
Chris@0 206 // Do actual work!
Chris@0 207 return FeatureSet();
Chris@0 208 }
Chris@0 209
Chris@0 210 Azi::FeatureSet
Chris@0 211 Azi::getRemainingFeatures()
Chris@0 212 {
Chris@0 213 return FeatureSet();
Chris@0 214 }
Chris@0 215