|
@@ -2476,27 +2476,26 @@ public: |
|
|
uint8_t timeInfoBuf[256]; |
|
|
uint8_t timeInfoBuf[256]; |
|
|
lv2_atom_forge_set_buffer(&fAtomForge, timeInfoBuf, sizeof(timeInfoBuf)); |
|
|
lv2_atom_forge_set_buffer(&fAtomForge, timeInfoBuf, sizeof(timeInfoBuf)); |
|
|
|
|
|
|
|
|
// TODO |
|
|
|
|
|
//LV2_Atom_Forge_Frame forgeFrame; |
|
|
|
|
|
//lv2_atom_forge_blank(&fAtomForge, &forgeFrame, 1, CARLA_URI_MAP_ID_TIME_POSITION); |
|
|
|
|
|
lv2_atom_forge_property_head(&fAtomForge, CARLA_URI_MAP_ID_TIME_SPEED, 0); |
|
|
|
|
|
|
|
|
LV2_Atom_Forge_Frame forgeFrame; |
|
|
|
|
|
lv2_atom_forge_object(&fAtomForge, &forgeFrame, 1, CARLA_URI_MAP_ID_TIME_POSITION); |
|
|
|
|
|
lv2_atom_forge_key(&fAtomForge, CARLA_URI_MAP_ID_TIME_SPEED); |
|
|
lv2_atom_forge_float(&fAtomForge, timeInfo.playing ? 1.0f : 0.0f); |
|
|
lv2_atom_forge_float(&fAtomForge, timeInfo.playing ? 1.0f : 0.0f); |
|
|
lv2_atom_forge_property_head(&fAtomForge, CARLA_URI_MAP_ID_TIME_FRAME, 0); |
|
|
|
|
|
|
|
|
lv2_atom_forge_key(&fAtomForge, CARLA_URI_MAP_ID_TIME_FRAME); |
|
|
lv2_atom_forge_long(&fAtomForge, static_cast<int64_t>(timeInfo.frame)); |
|
|
lv2_atom_forge_long(&fAtomForge, static_cast<int64_t>(timeInfo.frame)); |
|
|
|
|
|
|
|
|
if (timeInfo.valid & EngineTimeInfo::kValidBBT) |
|
|
if (timeInfo.valid & EngineTimeInfo::kValidBBT) |
|
|
{ |
|
|
{ |
|
|
lv2_atom_forge_property_head(&fAtomForge, CARLA_URI_MAP_ID_TIME_BAR, 0); |
|
|
|
|
|
|
|
|
lv2_atom_forge_key(&fAtomForge, CARLA_URI_MAP_ID_TIME_BAR); |
|
|
lv2_atom_forge_long(&fAtomForge, timeInfo.bbt.bar - 1); |
|
|
lv2_atom_forge_long(&fAtomForge, timeInfo.bbt.bar - 1); |
|
|
lv2_atom_forge_property_head(&fAtomForge, CARLA_URI_MAP_ID_TIME_BAR_BEAT, 0); |
|
|
|
|
|
|
|
|
lv2_atom_forge_key(&fAtomForge, CARLA_URI_MAP_ID_TIME_BAR_BEAT); |
|
|
lv2_atom_forge_float(&fAtomForge, static_cast<float>(static_cast<double>(timeInfo.bbt.beat) - 1.0 + (static_cast<double>(timeInfo.bbt.tick) / timeInfo.bbt.ticksPerBeat))); |
|
|
lv2_atom_forge_float(&fAtomForge, static_cast<float>(static_cast<double>(timeInfo.bbt.beat) - 1.0 + (static_cast<double>(timeInfo.bbt.tick) / timeInfo.bbt.ticksPerBeat))); |
|
|
lv2_atom_forge_property_head(&fAtomForge, CARLA_URI_MAP_ID_TIME_BEAT, 0); |
|
|
|
|
|
|
|
|
lv2_atom_forge_key(&fAtomForge, CARLA_URI_MAP_ID_TIME_BEAT); |
|
|
lv2_atom_forge_double(&fAtomForge, timeInfo.bbt.beat -1); |
|
|
lv2_atom_forge_double(&fAtomForge, timeInfo.bbt.beat -1); |
|
|
lv2_atom_forge_property_head(&fAtomForge, CARLA_URI_MAP_ID_TIME_BEAT_UNIT, 0); |
|
|
|
|
|
|
|
|
lv2_atom_forge_key(&fAtomForge, CARLA_URI_MAP_ID_TIME_BEAT_UNIT); |
|
|
lv2_atom_forge_int(&fAtomForge, static_cast<int32_t>(timeInfo.bbt.beatType)); |
|
|
lv2_atom_forge_int(&fAtomForge, static_cast<int32_t>(timeInfo.bbt.beatType)); |
|
|
lv2_atom_forge_property_head(&fAtomForge, CARLA_URI_MAP_ID_TIME_BEATS_PER_BAR, 0); |
|
|
|
|
|
|
|
|
lv2_atom_forge_key(&fAtomForge, CARLA_URI_MAP_ID_TIME_BEATS_PER_BAR); |
|
|
lv2_atom_forge_float(&fAtomForge, timeInfo.bbt.beatsPerBar); |
|
|
lv2_atom_forge_float(&fAtomForge, timeInfo.bbt.beatsPerBar); |
|
|
lv2_atom_forge_property_head(&fAtomForge, CARLA_URI_MAP_ID_TIME_BEATS_PER_MINUTE, 0); |
|
|
|
|
|
|
|
|
lv2_atom_forge_key(&fAtomForge, CARLA_URI_MAP_ID_TIME_BEATS_PER_MINUTE); |
|
|
lv2_atom_forge_float(&fAtomForge, static_cast<float>(timeInfo.bbt.beatsPerMinute)); |
|
|
lv2_atom_forge_float(&fAtomForge, static_cast<float>(timeInfo.bbt.beatsPerMinute)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|