mirror of
https://github.com/openharmony/multimedia_av_session.git
synced 2026-08-24 18:26:13 -04:00
0d9e44f828
Signed-off-by: weixin_43563670 <diyujia1@huawei.com>
133 lines
4.7 KiB
C++
133 lines
4.7 KiB
C++
/*
|
|
* Copyright (c) 2022-2023 Huawei Device Co., Ltd.
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#ifndef OHOS_AVSESSION_TRACE_H
|
|
#define OHOS_AVSESSION_TRACE_H
|
|
|
|
#include <string>
|
|
|
|
#ifdef ENBABLE_AVSESSION_TRACE_CONTROL
|
|
#include "hitrace_meter.h"
|
|
#endif
|
|
|
|
#ifdef ENBABLE_AVSESSION_TRACE_CONTROL
|
|
#define AVSESSION_TRACE_SYNC_START(traceName) AVSessionTrace trace(traceName)
|
|
#define AVSESSION_TRACE_ASYNC_START(traceName, taskId) AVSessionTrace::TraceBegin(traceName, taskId)
|
|
#define AVSESSION_TRACE_ASYNC_END(traceName, taskId) AVSessionTrace::TraceEnd(traceName, taskId)
|
|
#else
|
|
#define AVSESSION_TRACE_SYNC_START(...)
|
|
#define AVSESSION_TRACE_ASYNC_START(...)
|
|
#define AVSESSION_TRACE_ASYNC_END(...)
|
|
|
|
#endif
|
|
namespace OHOS::AVSession {
|
|
enum AVSessionTraceTaskId : int32_t {
|
|
INVALID_TASK_ID = -1,
|
|
NAPI_SET_AV_META_DATA_TASK_ID = 0,
|
|
NAPI_SET_AV_PLAYBACK_STATE_TASK_ID = 1,
|
|
NAPI_SEND_AV_KEY_EVENT_TASK_ID = 2,
|
|
NAPI_SEND_CONTROL_COMMAND_TASK_ID = 3,
|
|
NAPI_CREATE_AVSESSION_TASK_ID = 4,
|
|
NAPI_CREATE_CONTROLLER_TASK_ID = 5,
|
|
NAPI_SEND_SYSTEM_AV_KEY_EVENT_TASK_ID = 6,
|
|
NAPI_SEND_SYSTEM_CONTROL_COMMAND_TASK_ID = 7,
|
|
NAPI_CAST_AUDIO_TASK_ID = 8,
|
|
NAPI_SET_SESSION_EVENT_TASK_ID = 9,
|
|
NAPI_SEND_COMMON_COMMAND_TASK_ID = 10,
|
|
NAPI_SKIP_TO_QUEUE_ITEM_TASK_ID = 11,
|
|
NAPI_SET_AV_QUEUE_TITLE_TASK_ID = 12,
|
|
NAPI_SET_AV_QUEUE_ITEMS_TASK_ID = 13,
|
|
NAPI_SET_EXTRAS_TASK_ID = 14,
|
|
NAPI_START_CAST_DISCOVERY_TASK_ID = 15,
|
|
NAPI_STOP_CAST_DISCOVERY_TASK_ID = 16,
|
|
NAPI_SET_DISCOVERABLE_TASK_ID = 17,
|
|
NAPI_START_CAST_TASK_ID = 18,
|
|
NAPI_STOP_CAST_TASK_ID = 19,
|
|
NAPI_CREATE_CAST_CONTROLLER_TASK_ID = 20,
|
|
NAPI_SEND_CUSTOM_DATA_TASK_ID = 21,
|
|
NAPI_CAST_CONTROLLER_SEND_CONTROL_COMMAND_TASK_ID = 22,
|
|
NAPI_CAST_CONTROLLER_START_TASK_ID = 23,
|
|
NAPI_CAST_CONTROLLER_PREPARE_TASK_ID = 24,
|
|
NAPI_CAST_CONTROLLER_UPDATE_MEDIA_INFO_TASK_ID = 25,
|
|
NAPI_CAST_CONTROLLER_GET_DURATION_TASK_ID = 26,
|
|
NAPI_CAST_CONTROLLER_GET_POSITION_TASK_ID = 27,
|
|
NAPI_CAST_CONTROLLER_GET_VOLUME_TASK_ID = 28,
|
|
NAPI_CAST_CONTROLLER_GET_LOOPMODE_TASK_ID = 29,
|
|
NAPI_CAST_CONTROLLER_GET_PLAY_SPEED_TASK_ID = 30,
|
|
NAPI_CAST_CONTROLLER_GET_PLAY_STATE_TASK_ID = 31,
|
|
NAPI_CAST_CONTROLLER_GET_CURRENT_ITEM_TASK_ID = 32,
|
|
NAPI_CAST_CONTROLLER_SET_DISPLAY_SURFACE_TASK_ID = 33,
|
|
NAPI_CAST_CONTROLLER_SEND_CUSTOM_DATA_TASK_ID = 34,
|
|
NAPI_SET_AVCALL_META_DATA_TASK_ID = 35,
|
|
NAPI_SET_AV_CALL_STATE_TASK_ID = 36,
|
|
NAPI_PROVIDE_KEY_RESPONSE_TASK_ID = 37,
|
|
NAPI_START_DEVICE_LOGGING_TASK_ID = 38,
|
|
NAPI_STOP_DEVICE_LOGGING_TASK_ID = 39,
|
|
NAPI_CAST_PICKER_HELPER_TASK_ID = 40,
|
|
NAPI_CAST_CONTROL_GET_SUPPORT_DECODER_ID = 41,
|
|
NAPI_CAST_CONTROL_GET_RECOMMEND_RESOLUTION_LEVEL_ID = 42,
|
|
NAPI_CAST_CONTROL_GET_SUPPORT_HDR_CAPABILITIES_ID = 43,
|
|
NAPI_CAST_CONTROL_GET_SUPPORT_PLAY_SPEED_ID = 44,
|
|
NAPI_SEND_SYSTEM_COMMON_COMMAND_TASK_ID = 45,
|
|
};
|
|
#ifdef ENBABLE_AVSESSION_TRACE_CONTROL
|
|
class __attribute__((visibility("default"))) AVSessionTrace {
|
|
public:
|
|
explicit AVSessionTrace(const std::string& traceName)
|
|
{
|
|
std::string avSessionTrace("AVSession:");
|
|
avSessionTrace += traceName;
|
|
StartTrace(HITRACE_TAG_ZMEDIA, avSessionTrace);
|
|
isSync_ = true;
|
|
}
|
|
|
|
static void TraceBegin(const std::string& traceName, int32_t taskId)
|
|
{
|
|
if (taskId <= INVALID_TASK_ID) {
|
|
return;
|
|
}
|
|
std::string traceBegin("AVSession:");
|
|
traceBegin += traceName;
|
|
StartAsyncTrace(HITRACE_TAG_ZMEDIA, traceBegin, taskId);
|
|
}
|
|
|
|
static void TraceEnd(const std::string& traceName, int32_t taskId)
|
|
{
|
|
if (taskId <= INVALID_TASK_ID) {
|
|
return;
|
|
}
|
|
std::string traceEnd("AVSession:");
|
|
traceEnd += traceName;
|
|
FinishAsyncTrace(HITRACE_TAG_ZMEDIA, traceEnd, taskId);
|
|
}
|
|
|
|
~AVSessionTrace()
|
|
{
|
|
if (isSync_) {
|
|
FinishTrace(HITRACE_TAG_ZMEDIA);
|
|
}
|
|
}
|
|
|
|
AVSessionTrace(const AVSessionTrace&) = delete;
|
|
AVSessionTrace& operator = (const AVSessionTrace&) = delete;
|
|
|
|
AVSessionTrace(AVSessionTrace&&) = delete;
|
|
AVSessionTrace& operator = (AVSessionTrace&&) = delete;
|
|
private:
|
|
bool isSync_ = false;
|
|
};
|
|
#endif
|
|
} // namespace OHOS::AVSession
|
|
#endif // OHOS_AVSESSION_TRACE_H
|