本文整理汇总了C++中WaveClip::GetEnvelope方法的典型用法代码示例。如果您正苦于以下问题:C++ WaveClip::GetEnvelope方法的具体用法?C++ WaveClip::GetEnvelope怎么用?C++ WaveClip::GetEnvelope使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WaveClip
的用法示例。
在下文中一共展示了WaveClip::GetEnvelope方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetEnvelopeValues
void WaveTrack::GetEnvelopeValues(double *buffer, int bufferLen,
double t0, double tstep)
{
memset(buffer, 0, sizeof(double)*bufferLen);
double startTime = t0;
double endTime = t0+tstep*bufferLen;
for (WaveClipList::Node* it=GetClipIterator(); it; it=it->GetNext())
{
WaveClip *clip = it->GetData();
if (clip->GetStartTime() < endTime && clip->GetEndTime() > startTime)
{
double* rbuf = buffer;
int rlen = bufferLen;
double rt0 = t0;
if (rt0 < clip->GetStartTime())
{
int dx = (int) floor((clip->GetStartTime() - rt0) / tstep + 0.5);
rbuf += dx;
rlen -= dx;
rt0 = clip->GetStartTime();
}
if (rt0+rlen*tstep > clip->GetEndTime())
{
rlen = (int) ((clip->GetEndTime()-rt0) / tstep);
}
clip->GetEnvelope()->GetValues(rbuf, rlen, rt0, tstep);
}
}
}
示例2: GetEnvelopeAtX
Envelope* WaveTrack::GetEnvelopeAtX(int xcoord)
{
WaveClip* clip = GetClipAtX(xcoord);
if (clip)
return clip->GetEnvelope();
else
return NULL;
}