61 return static_cast<int>(
mPoints.size());
65 Steinberg::Vst::ParamValue& value)
68 if(index >= 0 && index <
mPoints.size())
70 sampleOffset =
mPoints[index].sampleOffset;
71 value =
mPoints[index].paramValue;
72 return Steinberg::kResultOk;
74 return Steinberg::kInvalidArgument;
78 Steinberg::Vst::ParamValue value, Steinberg::int32& index)
84 auto newPoint =
Point { sampleOffset, value };
91 mPoints.push_back(std::move(newPoint));
95 if (it->sampleOffset == sampleOffset)
96 it->paramValue = value;
98 mPoints.insert(it, std::move(newPoint));
99 index = std::distance(
mPoints.begin(), it);
102 return Steinberg::kResultOk;
IMPLEMENT_FUNKNOWN_METHODS(internal::ConnectionProxy, Steinberg::Vst::IConnectionPoint, Steinberg::Vst::IConnectionPoint::iid)
Steinberg::int32 PLUGIN_API getPointCount() override
bool isInitialized() const noexcept
std::vector< Point > mPoints
Steinberg::tresult PLUGIN_API getPoint(Steinberg::int32 index, Steinberg::int32 &sampleOffset, Steinberg::Vst::ParamValue &value) override
Steinberg::Vst::ParamID PLUGIN_API getParameterId() override
void initialize(Steinberg::Vst::ParamID id)
Steinberg::Vst::ParamID mId
virtual ~ParameterValueQueue()
Steinberg::tresult PLUGIN_API addPoint(Steinberg::int32 sampleOffset, Steinberg::Vst::ParamValue value, Steinberg::int32 &index) override
Steinberg::int32 sampleOffset
bool operator<(const Point &other) const