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#include "effect.h" 174d949f91Sopenharmony_ci#include "effect_log.h" 184d949f91Sopenharmony_ci 194d949f91Sopenharmony_cinamespace OHOS { 204d949f91Sopenharmony_cinamespace Media { 214d949f91Sopenharmony_cinamespace Effect { 224d949f91Sopenharmony_civoid Effect::AddEFilter(const std::shared_ptr<EFilter> &efilter) 234d949f91Sopenharmony_ci{ 244d949f91Sopenharmony_ci efilters_.emplace_back(efilter); 254d949f91Sopenharmony_ci} 264d949f91Sopenharmony_ci 274d949f91Sopenharmony_ciErrorCode Effect::InsertEFilter(const std::shared_ptr<EFilter> &efilter, uint32_t index) 284d949f91Sopenharmony_ci{ 294d949f91Sopenharmony_ci if (index > static_cast<uint32_t>(efilters_.size())) { 304d949f91Sopenharmony_ci EFFECT_LOGE("index is invalid! index=%{public}d, efilterSize=%{public}zu", index, efilters_.size()); 314d949f91Sopenharmony_ci return ErrorCode::ERR_INVALID_INDEX; 324d949f91Sopenharmony_ci } 334d949f91Sopenharmony_ci efilters_.emplace(efilters_.begin() + index, efilter); 344d949f91Sopenharmony_ci return ErrorCode::SUCCESS; 354d949f91Sopenharmony_ci} 364d949f91Sopenharmony_ci 374d949f91Sopenharmony_civoid Effect::RemoveEFilter(const std::shared_ptr<EFilter> &efilter) 384d949f91Sopenharmony_ci{ 394d949f91Sopenharmony_ci for (auto it = efilters_.begin(); it != efilters_.end();) { 404d949f91Sopenharmony_ci if (*it == efilter) { 414d949f91Sopenharmony_ci it = efilters_.erase(it); 424d949f91Sopenharmony_ci } else { 434d949f91Sopenharmony_ci ++it; 444d949f91Sopenharmony_ci } 454d949f91Sopenharmony_ci } 464d949f91Sopenharmony_ci} 474d949f91Sopenharmony_ci 484d949f91Sopenharmony_ciErrorCode Effect::RemoveEFilter(uint32_t index) 494d949f91Sopenharmony_ci{ 504d949f91Sopenharmony_ci CHECK_AND_RETURN_RET_LOG(index < static_cast<uint32_t>(efilters_.size()), ErrorCode::ERR_INVALID_INDEX, 514d949f91Sopenharmony_ci "RemoveEFilter: index is invalid! index=%{public}d, efilterSize=%{public}zu", index, efilters_.size()); 524d949f91Sopenharmony_ci 534d949f91Sopenharmony_ci efilters_.erase(efilters_.begin() + index); 544d949f91Sopenharmony_ci return ErrorCode::SUCCESS; 554d949f91Sopenharmony_ci} 564d949f91Sopenharmony_ci 574d949f91Sopenharmony_ciErrorCode Effect::ReplaceEFilter(const std::shared_ptr<EFilter> &efilter, uint32_t index) 584d949f91Sopenharmony_ci{ 594d949f91Sopenharmony_ci CHECK_AND_RETURN_RET_LOG(index < static_cast<uint32_t>(efilters_.size()), ErrorCode::ERR_INVALID_INDEX, 604d949f91Sopenharmony_ci "ReplaceEFilter: index is invalid! index=%{public}d, efilterSize=%{public}zu", index, efilters_.size()); 614d949f91Sopenharmony_ci efilters_[index] = efilter; 624d949f91Sopenharmony_ci return ErrorCode::SUCCESS; 634d949f91Sopenharmony_ci} 644d949f91Sopenharmony_ci} // namespace Effect 654d949f91Sopenharmony_ci} // namespace Media 664d949f91Sopenharmony_ci} // namespace OHOS