# Courier V3.9

#### Changes

#### Animation speedup

An animation speedup can be triggered by an AnimationReqMsg. See also <span style="color: rgb(230, 126, 35);">[Animation speedup](https://doc316en.candera.eu/link/661#bkmrk-animation-speedup)</span>.  
The class [Courier::AnimationProperties](http://dev.doc.cgistudio.at/APILINK/class_courier_1_1_animation_properties.html) has been adapted accordingly:

<div class="contents" id="bkmrk-float-courier%3A%3Aanima"><div class="contents"><div class="textblock">- Float Courier::AnimationProperties::GetSpeedFactor() const;
- Candera::Animation::SequenceTimeType Courier::AnimationProperties::GetSequenceDurationMs() const;
- Courier::AnimationProperties::AnimationProperties( SetMask mask, Float speedFactor, UInt32 repeatCount, Candera::Animation::SequenceTimeType sequenceStartTimeMs, Candera::Animation::SequenceTimeType sequenceDurationMs, Candera::Animation::AnimationPlayer::RepeatMode repeatMode, Candera::Animation::AnimationPlayer::PlayDirection playDirection);
- Courier::AnimationProperties::AnimationProperties(SetMask mask, Candera::Animation::AnimationPlayer::PlayDirection playDirection, Float speedFactor, UInt32 repeatCount, Candera::Animation::AnimationPlayer::RepeatMode repeatMode, Candera::Animation::SequenceTimeType sequenceStartTimeMs, Candera::Animation::SequenceTimeType sequenceDurationMs, UInt32 finishTime);
- Courier::AnimationProperties::AnimationProperties(Float speedFactor, Candera::Animation::SequenceTimeType sequenceDurationMs);
- explicit Courier::AnimationProperties::AnimationProperties(UInt32 finishTime);

---

</div></div></div>#### Improve animation view dependency handling

If an animation is running and a dependent view is loaded during this animation, the invalidation handling was not done properly. This has been fixed. This fix has also introduced the new interface to force the update on these dependent views:

<div class="contents" id="bkmrk-void-courier%3A%3Aiviewh"><div class="contents"><div class="textblock">- void [Courier::IViewHandler::UpdateAnimationScenes()](http://dev.doc.cgistudio.at/APILINK/class_courier_1_1_i_view_handler.html#a8049df421902e04628c2147e6873d4e7 "Force update dependent scenes for enabled players.");

---

</div></div></div>#### Asset initialization state

The asset accessor supports the access to the initialization state of the asset provider. See also <span style="color: rgb(230, 126, 35);">[Detailed asset error information and asset initialization](https://doc316en.candera.eu/link/661#bkmrk-detailed-asset-error)</span>.

bool [Courier::AssetAccessor::IsAssetProviderInitialized()](http://dev.doc.cgistudio.at/APILINK/class_courier_1_1_asset_accessor.html#afc9bea7a6d026e9281f751be994b9355);

<div class="contents" id="bkmrk-"><div class="contents"><div class="textblock">---

</div></div></div>#### Transition interface for Courier::ViewId

[Courier](http://dev.doc.cgistudio.at/APILINK/namespace_courier.html) provides an interface to control transitions by [Courier::ViewId](http://dev.doc.cgistudio.at/APILINK/class_courier_1_1_view_id.html) now. In the past it was only possible to do this by using [Candera::Transitions::Identifier](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_transitions_1_1_identifier.html "Currently known limitation: there is currently no suitable identification available of nodes that are...") (9418). To support this, the following interfaces have been added:

<div class="contents" id="bkmrk-the-message-type-can"><div class="contents"><div class="textblock">- The message type Candera::CanderaSceneTransitionRequestMsg
- bool Courier::IViewHandler::ExecuteCanderaTransitionReqAction(CanderaTransitionRequestAction::Enum, const Courier::ViewId&amp;, const Candera::Transitions::Hint&amp;);

---

</div></div></div>#### Extended thread-safety in binding sources

The thread safety has been extended in the binding sources of DataBinding when asynchronous binding is used (CGI1-42074 � 10441).

<div class="contents" id="bkmrk--0"><div class="contents"><div class="textblock">---

</div></div></div>#### Courier::Gdu render state

The render state of a [Courier::Gdu](http://dev.doc.cgistudio.at/APILINK/class_courier_1_1_gdu.html) can be retrieved now:

<div class="contents" id="bkmrk-courier%3A%3Agdu%3A%3Arender"><div class="contents"><div class="textblock">- [Courier::Gdu::RenderState](http://dev.doc.cgistudio.at/APILINK/class_courier_1_1_gdu.html#a3c9d7d4efdf92e862618111cba1172d5) [Courier::Gdu::GetRenderState() const](http://dev.doc.cgistudio.at/APILINK/class_courier_1_1_gdu.html#a6f5166875cfb26446d6e2e23b3d00d3c "Returns the current render state of the Gdu. Will be used by the Renderer to control the swapping of ...");

---

</div></div></div>