Using Dynamic Stream Suites Properly?
Having some trouble using the dynamic Stream suites.
I'm working on some wrapper classes, and perhaps I'm just finding things the wrong way, or maybe I'm missing a step--
AEGP_LayerH layer;
ERR(suites.LayerSuite9()->AEGP_GetActiveLayer(&layer));
AEGP_StreamRefH stream;
ERR(suites.DynamicStreamSuite4()->AEGP_GetNewStreamRefForLayer(*SuiteManager::GetInstance().GetPluginID(), layer, &stream));
StreamFactory sf;
_StreamClasses streamH = sf.createStream(stream);
StreamGroup* streamGroup = std::get_if<StreamGroup>(&streamH); // This is ADBE AV Layer
std::string matchNameZ = streamGroup->getMatchName();
_StreamClasses streamVal = streamGroup->getStreamByName(AEGP_StreamGroupName_TRANSFORM);
if (std::holds_alternative<OneDStream>(streamVal)) {
OneDStream s = std::get<OneDStream>(streamVal);
std::string name = s.getMatchName();
}
else if (std::holds_alternative<StreamGroup>(streamVal)) {
StreamGroup s = std::get<StreamGroup>(streamVal);
std::string name = s.getMatchName();
//Now I have ADBE Transform Group, which it thinks is a leaf stream, therefore the next call fails.
OneDStream s2 = std::get<OneDStream>(s.getStreamByIndex(4));
std::string name2 = s2.getMatchName();
A_Time time = { 0, 0 };
AEGP_OneDVal val = s2.value(AEGP_LTimeMode_LayerTime, time, FALSE);
}I get the LayerStream from the layer--
This results in an ADBE AV Layer StreamGroup.
I then get the "ADBE TRANSFORM GROUP" by match name, from the AV Layer group.
Finally, I try to get the "opacity" parameter by index, but cannot because my plugin says that ADBE Transform Group is a leaf group type? Is this correct?