1e0e9324cSopenharmony_ci/* 2e0e9324cSopenharmony_ci * Copyright (c) 2023 Shenzhen Kaihong Digital Industry Development Co., Ltd. 3e0e9324cSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e0e9324cSopenharmony_ci * you may not use this file except in compliance with the License. 5e0e9324cSopenharmony_ci * You may obtain a copy of the License at 6e0e9324cSopenharmony_ci * 7e0e9324cSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e0e9324cSopenharmony_ci * 9e0e9324cSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e0e9324cSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e0e9324cSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e0e9324cSopenharmony_ci * See the License for the specific language governing permissions and 13e0e9324cSopenharmony_ci * limitations under the License. 14e0e9324cSopenharmony_ci */ 15e0e9324cSopenharmony_ci 16e0e9324cSopenharmony_ci#ifndef OHOS_SHARING_AGENT_DEF_H 17e0e9324cSopenharmony_ci#define OHOS_SHARING_AGENT_DEF_H 18e0e9324cSopenharmony_ci 19e0e9324cSopenharmony_cinamespace OHOS { 20e0e9324cSopenharmony_cinamespace Sharing { 21e0e9324cSopenharmony_ci 22e0e9324cSopenharmony_cienum AgentType { NONE_AGENT, SRC_AGENT, SINK_AGENT }; 23e0e9324cSopenharmony_ci 24e0e9324cSopenharmony_cienum AgentRunStep { 25e0e9324cSopenharmony_ci AGENT_STEP_IDLE, 26e0e9324cSopenharmony_ci AGENT_STEP_CREATE, 27e0e9324cSopenharmony_ci AGENT_STEP_START, 28e0e9324cSopenharmony_ci AGENT_STEP_PAUSE, 29e0e9324cSopenharmony_ci AGENT_STEP_RESUME, 30e0e9324cSopenharmony_ci AGENT_STEP_APPENDSURFACE, 31e0e9324cSopenharmony_ci AGENT_STEP_REMOVESURFACE, 32e0e9324cSopenharmony_ci AGENT_STEP_PLAY, 33e0e9324cSopenharmony_ci AGENT_STEP_PLAYSTOP, 34e0e9324cSopenharmony_ci AGENT_STEP_DESTROY 35e0e9324cSopenharmony_ci}; 36e0e9324cSopenharmony_ci 37e0e9324cSopenharmony_cienum AgentRunStepWeight { 38e0e9324cSopenharmony_ci AGENT_STEP_WEIGHT_IDLE, 39e0e9324cSopenharmony_ci AGENT_STEP_WEIGHT_REUSABLE, 40e0e9324cSopenharmony_ci AGENT_STEP_WEIGHT_START, 41e0e9324cSopenharmony_ci AGENT_STEP_WEIGHT_DESTROY 42e0e9324cSopenharmony_ci}; 43e0e9324cSopenharmony_ci 44e0e9324cSopenharmony_cienum AgentRunningStatus { 45e0e9324cSopenharmony_ci AGENT_STATUS_IDLE, 46e0e9324cSopenharmony_ci AGENT_STATUS_RUNNING, 47e0e9324cSopenharmony_ci AGENT_STATUS_DONE, 48e0e9324cSopenharmony_ci AGENT_STATUS_ERROR, 49e0e9324cSopenharmony_ci AGENT_STATUS_INTERRUPT 50e0e9324cSopenharmony_ci}; 51e0e9324cSopenharmony_ci 52e0e9324cSopenharmony_cistruct AgentRunStepKey { 53e0e9324cSopenharmony_ci bool operator<(AgentRunStepKey const &agentRunStepKey) const 54e0e9324cSopenharmony_ci { 55e0e9324cSopenharmony_ci if (weight == agentRunStepKey.weight) { 56e0e9324cSopenharmony_ci if (stepType == agentRunStepKey.stepType) { 57e0e9324cSopenharmony_ci return requestId < agentRunStepKey.requestId; 58e0e9324cSopenharmony_ci } 59e0e9324cSopenharmony_ci return stepType < agentRunStepKey.stepType; 60e0e9324cSopenharmony_ci } else { 61e0e9324cSopenharmony_ci return weight > agentRunStepKey.weight; 62e0e9324cSopenharmony_ci } 63e0e9324cSopenharmony_ci } 64e0e9324cSopenharmony_ci 65e0e9324cSopenharmony_ci uint32_t requestId = 0; 66e0e9324cSopenharmony_ci AgentRunStep stepType = AGENT_STEP_IDLE; 67e0e9324cSopenharmony_ci AgentRunStepWeight weight = AGENT_STEP_WEIGHT_IDLE; 68e0e9324cSopenharmony_ci}; 69e0e9324cSopenharmony_ci 70e0e9324cSopenharmony_ci} // namespace Sharing 71e0e9324cSopenharmony_ci} // namespace OHOS 72e0e9324cSopenharmony_ci#endif