+ switch(index)
+ {
+ case Toolkit::DevelImageVisual::Property::LOOP_COUNT:
+ {
+ int32_t loopCount;
+ if( value.Get( loopCount ) )
+ {
+ mLoopCount = loopCount;
+ mResendFlag |= RESEND_LOOP_COUNT;
+ }
+ break;
+ }
+ case Toolkit::DevelImageVisual::Property::PLAY_RANGE:
+ {
+ Property::Array* array = value.GetArray();
+ if( array )
+ {
+ size_t count = array->Count();
+ if( count >= 2 )
+ {
+ int startFrame, endFrame;
+ int totalFrame = mVectorRasterizeThread.GetTotalFrameNumber();
+ array->GetElementAt( 0 ).Get( startFrame );
+ array->GetElementAt( 1 ).Get( endFrame );
+
+ if( startFrame >= 0 && startFrame < totalFrame && endFrame >= 0 && endFrame < totalFrame )
+ {
+ mStartFrame = startFrame;
+ mEndFrame = endFrame;
+ mResendFlag |= RESEND_PLAY_RANGE;
+ }
+ else
+ {
+ DALI_LOG_ERROR( "Invalid play range [%d, %d / %d]\n", startFrame, endFrame, totalFrame );
+ }
+ }
+ }
+ break;
+ }
+ case Toolkit::DevelImageVisual::Property::STOP_BEHAVIOR:
+ {
+ int32_t stopBehavior;
+ Scripting::GetEnumerationProperty( value, STOP_BEHAVIOR_TABLE, STOP_BEHAVIOR_TABLE_COUNT, stopBehavior );
+ mStopBehavior = DevelImageVisual::StopBehavior::Type( stopBehavior );
+ mResendFlag |= RESEND_STOP_BEHAVIOR;
+ break;
+ }
+ case Toolkit::DevelImageVisual::Property::LOOPING_MODE:
+ {
+ int32_t loopingMode;
+ Scripting::GetEnumerationProperty( value, LOOPING_MODE_TABLE, LOOPING_MODE_TABLE_COUNT, loopingMode );
+ mLoopingMode = DevelImageVisual::LoopingMode::Type( loopingMode );
+ mResendFlag |= RESEND_LOOPING_MODE;
+ break;
+ }
+ }