14d949f91Sopenharmony_ci/* 24d949f91Sopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd. 34d949f91Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 44d949f91Sopenharmony_ci * you may not use this file except in compliance with the License. 54d949f91Sopenharmony_ci * You may obtain a copy of the License at 64d949f91Sopenharmony_ci * 74d949f91Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 84d949f91Sopenharmony_ci * 94d949f91Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 104d949f91Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 114d949f91Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 124d949f91Sopenharmony_ci * See the License for the specific language governing permissions and 134d949f91Sopenharmony_ci * limitations under the License. 144d949f91Sopenharmony_ci */ 154d949f91Sopenharmony_ci 164d949f91Sopenharmony_ci#ifndef IMAGE_EFFECT_EFFECT_H 174d949f91Sopenharmony_ci#define IMAGE_EFFECT_EFFECT_H 184d949f91Sopenharmony_ci 194d949f91Sopenharmony_ci#include "efilter.h" 204d949f91Sopenharmony_ci 214d949f91Sopenharmony_cinamespace OHOS { 224d949f91Sopenharmony_cinamespace Media { 234d949f91Sopenharmony_cinamespace Effect { 244d949f91Sopenharmony_ciclass Effect { 254d949f91Sopenharmony_cipublic: 264d949f91Sopenharmony_ci Effect() = default; 274d949f91Sopenharmony_ci 284d949f91Sopenharmony_ci virtual ~Effect() = default; 294d949f91Sopenharmony_ci 304d949f91Sopenharmony_ci virtual void AddEFilter(const std::shared_ptr<EFilter> &efilter); 314d949f91Sopenharmony_ci 324d949f91Sopenharmony_ci virtual ErrorCode InsertEFilter(const std::shared_ptr<EFilter> &efilter, uint32_t index); 334d949f91Sopenharmony_ci 344d949f91Sopenharmony_ci virtual void RemoveEFilter(const std::shared_ptr<EFilter> &efilter); 354d949f91Sopenharmony_ci 364d949f91Sopenharmony_ci virtual ErrorCode RemoveEFilter(uint32_t index); 374d949f91Sopenharmony_ci 384d949f91Sopenharmony_ci virtual ErrorCode ReplaceEFilter(const std::shared_ptr<EFilter> &efilter, uint32_t index); 394d949f91Sopenharmony_ci 404d949f91Sopenharmony_ci virtual ErrorCode Start() = 0; 414d949f91Sopenharmony_ci 424d949f91Sopenharmony_ci virtual ErrorCode Save(EffectJsonPtr &res) = 0; 434d949f91Sopenharmony_ci 444d949f91Sopenharmony_ci std::vector<std::shared_ptr<EFilter>> &GetEFilters() 454d949f91Sopenharmony_ci { 464d949f91Sopenharmony_ci return efilters_; 474d949f91Sopenharmony_ci } 484d949f91Sopenharmony_ciprotected: 494d949f91Sopenharmony_ci std::vector<std::shared_ptr<EFilter>> efilters_; 504d949f91Sopenharmony_ci}; 514d949f91Sopenharmony_ci} // namespace Effect 524d949f91Sopenharmony_ci} // namespace Media 534d949f91Sopenharmony_ci} // namespace OHOS 544d949f91Sopenharmony_ci#endif // IMAGE_EFFECT_EFFECT_H 55