| 194 | } |
| 195 | |
| 196 | void AssetsManager::addAssetLoadObserver(const AssetKey& assetKey, |
| 197 | const Shared<snap::valdi_core::AssetLoadObserver>& observer, |
| 198 | const Ref<Context>& context, |
| 199 | snap::valdi_core::AssetOutputType outputType, |
| 200 | int32_t preferredWidth, |
| 201 | int32_t preferredHeight, |
| 202 | const Value& attachedData) { |
| 203 | auto guard = lock(); |
| 204 | |
| 205 | auto managedAsset = getOrCreateManagedAsset(assetKey); |
| 206 | |
| 207 | auto consumer = managedAsset->addConsumer(); |
| 208 | consumer->setContext(context); |
| 209 | consumer->setObserver(observer); |
| 210 | consumer->setOutputType(outputType); |
| 211 | consumer->setPreferredWidth(preferredWidth); |
| 212 | consumer->setPreferredHeight(preferredHeight); |
| 213 | consumer->setAttachedData(attachedData); |
| 214 | |
| 215 | if (managedAsset->getState() == AssetStateFailedRetryable) { |
| 216 | // Retry the resolving now that we have a new consumer |
| 217 | managedAsset->setState(AssetStateInitial); |
| 218 | } |
| 219 | |
| 220 | scheduleAssetUpdate(std::move(guard), assetKey); |
| 221 | } |
| 222 | |
| 223 | void AssetsManager::removeAssetLoadObserver(const AssetKey& assetKey, |
| 224 | const std::shared_ptr<snap::valdi_core::AssetLoadObserver>& observer) { |
nothing calls this directly
no test coverage detected