X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fanimation%2Fanimation-playlist.cpp;h=c39385f7fef20f962f6088aaa295cd3c59a40556;hb=0c17fedc6fae9c4ca443b1eda9eab846215ca518;hp=99a61ca9129360a9e0d5d7ab33e114c23181d1a2;hpb=252e273f4e0cedbf35c42a752213b5193d883f47;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/animation/animation-playlist.cpp b/dali/internal/event/animation/animation-playlist.cpp index 99a61ca..c39385f 100644 --- a/dali/internal/event/animation/animation-playlist.cpp +++ b/dali/internal/event/animation/animation-playlist.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ // INTERNAL INCLUDES #include -#include #include @@ -105,6 +104,44 @@ void AnimationPlaylist::NotifyCompleted() } } +void AnimationPlaylist::NotifyProgressReached( const SceneGraph::Animation* sceneGraphAnimation ) +{ + std::vector< Dali::Animation > notifyProgressAnimations; // Will own animations until all emits have been done + + for ( Dali::Vector< Animation* >::Iterator iter = mAnimations.Begin(); iter != mAnimations.End(); ++iter ) + { + Animation* animation = *iter; + + if ( ( animation->GetSceneObject() ) == sceneGraphAnimation ) + { + // Store handles to animations that need signals emitted in the case of an animation being cleared in-between emits + notifyProgressAnimations.push_back( Dali::Animation( animation ) ); + } + } + + for ( std::vector< Dali::Animation >::iterator iter = notifyProgressAnimations.begin(); iter != notifyProgressAnimations.end(); ++iter ) + { + Dali::Animation& handle = *iter; + + GetImplementation(handle).EmitSignalProgressReached(); + } +} + +uint32_t AnimationPlaylist::GetAnimationCount() +{ + return mAnimations.Size(); +} + +Dali::Animation AnimationPlaylist::GetAnimationAt( uint32_t index ) +{ + if( index >= mAnimations.Size() ) + { + DALI_LOG_ERROR( "Animation index is out of bounds.\n" ); + return Dali::Animation(); + } + return Dali::Animation( mAnimations[index] ); +} + } // namespace Internal } // namespace Dali