| 377 | } |
| 378 | |
| 379 | static pag::Effect* GetEffect(const AEGP_EffectRefH& effectHandle) { |
| 380 | const auto PluginID = GetPluginID(); |
| 381 | const auto Suites = GetSuites(); |
| 382 | |
| 383 | A_long numParams = 0; |
| 384 | Suites->StreamSuite4()->AEGP_GetEffectNumParamStreams(effectHandle, &numParams); |
| 385 | if (numParams < 2) { |
| 386 | return nullptr; |
| 387 | } |
| 388 | AEGP_EffectFlags effectFlags; |
| 389 | Suites->EffectSuite4()->AEGP_GetEffectFlags(effectHandle, &effectFlags); |
| 390 | if ((effectFlags & AEGP_EffectFlags_ACTIVE) == 0) { |
| 391 | return nullptr; |
| 392 | } |
| 393 | AEGP_StreamRefH firstStreamHandle = nullptr; |
| 394 | Suites->StreamSuite4()->AEGP_GetNewEffectStreamByIndex(PluginID, effectHandle, 1, |
| 395 | &firstStreamHandle); |
| 396 | if (firstStreamHandle == nullptr) { |
| 397 | return nullptr; |
| 398 | } |
| 399 | AEGP_StreamRefH effectStreamHandle = nullptr; |
| 400 | Suites->DynamicStreamSuite4()->AEGP_GetNewParentStreamRef(PluginID, firstStreamHandle, |
| 401 | &effectStreamHandle); |
| 402 | if (effectStreamHandle == nullptr) { |
| 403 | Suites->StreamSuite4()->AEGP_DisposeStream(firstStreamHandle); |
| 404 | return nullptr; |
| 405 | } |
| 406 | Suites->StreamSuite4()->AEGP_DisposeStream(firstStreamHandle); |
| 407 | auto type = GetEffectType(effectStreamHandle); |
| 408 | pag::Effect* effect = GetEffectByType(effectStreamHandle, type); |
| 409 | Suites->StreamSuite4()->AEGP_DisposeStream(effectStreamHandle); |
| 410 | return effect; |
| 411 | } |
| 412 | |
| 413 | std::vector<pag::Effect*> GetEffects(const AEGP_LayerH& layerHandle) { |
| 414 | const auto PluginID = GetPluginID(); |
no test coverage detected