1 /* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "animation/rs_render_interactive_implict_animator_map.h" 17 #include "animation/rs_render_interactive_implict_animator.h" 18 19 namespace OHOS { 20 namespace Rosen { 21 using AnimatorPtr = std::shared_ptr<RSRenderInteractiveImplictAnimator>; RSRenderInteractiveImplictAnimatorMap()22RSRenderInteractiveImplictAnimatorMap::RSRenderInteractiveImplictAnimatorMap() 23 { 24 } 25 RegisterInteractiveImplictAnimator(const AnimatorPtr & animatorPtr)26bool RSRenderInteractiveImplictAnimatorMap::RegisterInteractiveImplictAnimator(const AnimatorPtr& animatorPtr) 27 { 28 auto id = animatorPtr->GetId(); 29 if (interactiveImplictAnimatorMap_.count(id)) { 30 return false; 31 } 32 interactiveImplictAnimatorMap_.emplace(id, animatorPtr); 33 return true; 34 } 35 UnregisterInteractiveImplictAnimator(InteractiveImplictAnimatorId id)36void RSRenderInteractiveImplictAnimatorMap::UnregisterInteractiveImplictAnimator(InteractiveImplictAnimatorId id) 37 { 38 interactiveImplictAnimatorMap_.erase(id); 39 } 40 GetInteractiveImplictAnimator(InteractiveImplictAnimatorId id)41AnimatorPtr RSRenderInteractiveImplictAnimatorMap::GetInteractiveImplictAnimator(InteractiveImplictAnimatorId id) 42 { 43 return interactiveImplictAnimatorMap_.count(id) ? interactiveImplictAnimatorMap_[id] : nullptr; 44 } 45 } // namespace Rosen 46 } // namespace OHOS 47