Code:
double GetStartOfMeasure (MediaItem_Take* take, double ppqPos)
{
if (take)
{
int measure;
if (TimeMap2_timeToBeats(NULL, MIDI_GetProjTimeFromPPQPos(take, ppqPos), &measure, NULL, NULL, NULL) < SNM_FUDGE_FACTOR && measure > 0)
--measure;
return MIDI_GetPPQPosFromProjTime(take, TimeMap2_beatsToTime(NULL, 0, &measure));
}
return -1;
}
double GetEndOfMeasure (MediaItem_Take* take, double ppqPos)
{
if (take)
{
int measure;
TimeMap2_timeToBeats(NULL, MIDI_GetProjTimeFromPPQPos(take, ppqPos), &measure, NULL, NULL, NULL);
++measure;
return MIDI_GetPPQPosFromProjTime(take, TimeMap2_beatsToTime(NULL, 0, &measure));
}
return -1;
}