You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

242 lines
11 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
* Copyright (c) Hisilicon Technologies Co., Ltd. 2019-2020. All rights reserved.
* Description: Define the information about cec module.
* Author: Hisilicon
* Create: 2010-06-10
*/
#ifndef __UAPI_CEC_H__
#define __UAPI_CEC_H__
#include "td_type.h"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif
/* * the maximum length of CEC operand */ /* * CNcomment:CEC操作数的最大长度 */
#define UAPI_CEC_MAX_OPERAND_SIZE 14
/* * invalid logical address */ /* * CNcomment:表示无效的逻辑地址 */
#define UAPI_CEC_INVALID_LOGIC_ADDR 0xF
/* * invalid physical address */ /* * CNcomment:表示无效的物理地址 */
#define UAPI_CEC_INVALID_PHYSIC_ADDR 0xFFFF
/* * use as initiator address */ /* * CNcomment: 源地址为unregisterd */
#define UAPI_CEC_LOGIC_ADDR_UNREGISTERED 0xF
/* * The device type that the CEC driver wants to claim */
/* * CNcomment:CEC设备类型驱动会根据选择的设备类型来查询可用的逻辑地址 */
typedef enum {
UAPI_CEC_DEVICE_TYPE_TV = 0,
UAPI_CEC_DEVICE_TYPE_RECORD = 1,
UAPI_CEC_DEVICE_TYPE_RESERVED = 2,
UAPI_CEC_DEVICE_TYPE_TUNER = 3,
UAPI_CEC_DEVICE_TYPE_PLAYBACK = 4,
UAPI_CEC_DEVICE_TYPE_AUDIOSYSTEM = 5,
UAPI_CEC_DEVICE_TYPE_SWITCH = 6,
UAPI_CEC_DEVICE_TYPE_PROCESSOR = 7
} uapi_cec_device_type;
/* * CEC logical address */ /* * CNcomment:CEC逻辑地址 */
typedef enum {
UAPI_CEC_LOGIC_ADDR_TV = 0x0,
UAPI_CEC_LOGIC_ADDR_RECORD_1 = 0x1,
UAPI_CEC_LOGIC_ADDR_RECORD_2 = 0x2,
UAPI_CEC_LOGIC_ADDR_TUNER_1 = 0x3,
UAPI_CEC_LOGIC_ADDR_PLAYBACK_1 = 0x4,
UAPI_CEC_LOGIC_ADDR_AUDIOSYSTEM = 0x5,
UAPI_CEC_LOGIC_ADDR_TUNER_2 = 0x6,
UAPI_CEC_LOGIC_ADDR_TUNER_3 = 0x7,
UAPI_CEC_LOGIC_ADDR_PLAYBACK_2 = 0x8,
UAPI_CEC_LOGIC_ADDR_RECORD_3 = 0x9,
UAPI_CEC_LOGIC_ADDR_TUNER_4 = 0xA,
UAPI_CEC_LOGIC_ADDR_PLAYBACK_3 = 0xB,
UAPI_CEC_LOGIC_ADDR_RESERVED_1 = 0xC,
UAPI_CEC_LOGIC_ADDR_RESERVED_2 = 0xD,
UAPI_CEC_LOGIC_ADDR_SPECIFIC = 0xE,
UAPI_CEC_LOGIC_ADDR_BROADCAST = 0xF /* as destination address */
} uapi_cec_logic_addr;
/* * CEC opcode */ /* * CNcomment:CEC操作码 */
typedef enum {
UAPI_CEC_OPCODE_POLLING_MESSAGE = 0x100,
UAPI_CEC_OPCODE_FEATURE_ABORT = 0x00,
UAPI_CEC_OPCODE_IMAGE_VIEW_ON = 0x04,
UAPI_CEC_OPCODE_TUNER_STEP_INCREMENT = 0x05,
UAPI_CEC_OPCODE_TUNER_STEP_DECREMENT = 0x06,
UAPI_CEC_OPCODE_TUNER_DEVICE_STATUS = 0x07,
UAPI_CEC_OPCODE_GIVE_TUNER_DEVICE_STATUS = 0x08,
UAPI_CEC_OPCODE_RECORD_ON = 0x09,
UAPI_CEC_OPCODE_RECORD_STATUS = 0x0A,
UAPI_CEC_OPCODE_RECORD_OFF = 0x0B,
UAPI_CEC_OPCODE_TEXT_VIEW_ON = 0x0D,
UAPI_CEC_OPCODE_RECORD_TV_SCREEN = 0x0F,
UAPI_CEC_OPCODE_GIVE_DECK_STATUS = 0x1A,
UAPI_CEC_OPCODE_DECK_STATUS = 0x1B,
UAPI_CEC_OPCODE_SET_MENU_LANGUAGE = 0x32,
UAPI_CEC_OPCODE_CLEAR_ANALOGUE_TIMER = 0x33,
UAPI_CEC_OPCODE_SET_ANALOGUE_TIMER = 0x34,
UAPI_CEC_OPCODE_TIMER_STATUS = 0x35,
UAPI_CEC_OPCODE_STANDBY = 0x36,
UAPI_CEC_OPCODE_PLAY = 0x41,
UAPI_CEC_OPCODE_DECK_CONTROL = 0x42,
UAPI_CEC_OPCODE_TIMER_CLEARED_STATUS = 0x43,
UAPI_CEC_OPCODE_USER_CONTROL_PRESSED = 0x44,
UAPI_CEC_OPCODE_USER_CONTROL_RELEASED = 0x45,
UAPI_CEC_OPCODE_GIVE_OSD_NAME = 0x46,
UAPI_CEC_OPCODE_SET_OSD_NAME = 0x47,
UAPI_CEC_OPCODE_SET_OSD_STRING = 0x64,
UAPI_CEC_OPCODE_SET_TIMER_PROGRAM_TITLE = 0x67,
UAPI_CEC_OPCODE_SYSTEM_AUDIO_MODE_REQUEST = 0x70,
UAPI_CEC_OPCODE_GIVE_AUDIO_STATUS = 0x71,
UAPI_CEC_OPCODE_SET_SYSTEM_AUDIO_MODE = 0x72,
UAPI_CEC_OPCODE_REPORT_AUDIO_STATUS = 0x7A,
UAPI_CEC_OPCODE_GIVE_SYSTEM_AUDIO_MODE_STATUS = 0x7D,
UAPI_CEC_OPCODE_SYSTEM_AUDIO_MODE_STATUS = 0x7E,
UAPI_CEC_OPCODE_ROUTING_CHANGE = 0x80,
UAPI_CEC_OPCODE_ROUTING_INFORMATION = 0x81,
UAPI_CEC_OPCODE_ACTIVE_SOURCE = 0x82,
UAPI_CEC_OPCODE_GIVE_PHYSICAL_ADDRESS = 0x83,
UAPI_CEC_OPCODE_REPORT_PHYSICAL_ADDRESS = 0x84,
UAPI_CEC_OPCODE_REQUEST_ACTIVE_SOURCE = 0x85,
UAPI_CEC_OPCODE_SET_STREAM_PATH = 0x86,
UAPI_CEC_OPCODE_DEVICE_VENDOR_ID = 0x87,
UAPI_CEC_OPCODE_VENDOR_COMMAND = 0x89,
UAPI_CEC_OPCODE_VENDOR_REMOTE_BUTTON_DOWN = 0x8A,
UAPI_CEC_OPCODE_VENDOR_REMOTE_BUTTON_UP = 0x8B,
UAPI_CEC_OPCODE_GIVE_DEVICE_VENDOR_ID = 0x8C,
UAPI_CEC_OPCODE_MENU_REQUEST = 0x8D,
UAPI_CEC_OPCODE_MENU_STATUS = 0x8E,
UAPI_CEC_OPCODE_GIVE_DEVICE_POWER_STATUS = 0x8F,
UAPI_CEC_OPCODE_REPORT_POWER_STATUS = 0x90,
UAPI_CEC_OPCODE_GET_MENU_LANGUAGE = 0x91,
UAPI_CEC_OPCODE_SELECT_ANALOGUE_SERVICE = 0x92,
UAPI_CEC_OPCODE_SELECT_DIGITAL_SERVICE = 0x93,
UAPI_CEC_OPCODE_SET_DIGITAL_TIMER = 0x97,
UAPI_CEC_OPCODE_CLEAR_DIGITAL_TIMER = 0x99,
UAPI_CEC_OPCODE_SET_AUDIO_RATE = 0x9A,
UAPI_CEC_OPCODE_INACTIVE_SOURCE = 0x9D,
UAPI_CEC_OPCODE_CEC_VERSION = 0x9E,
UAPI_CEC_OPCODE_GET_CEC_VERSION = 0x9F,
UAPI_CEC_OPCODE_VENDOR_COMMAND_WITH_ID = 0xA0,
UAPI_CEC_OPCODE_CLEAR_EXTERNAL_TIMER = 0xA1,
UAPI_CEC_OPCODE_SET_EXTERNAL_TIMER = 0xA2,
UAPI_CEC_OPCODE_REPORT_SHORT_AUDIO = 0xA3,
UAPI_CEC_OPCODE_REQUEST_SHORT_AUDIO = 0xA4,
UAPI_CEC_OPCODE_INITIATE_ARC = 0xC0,
UAPI_CEC_OPCODE_REPORT_ARC_INITIATED = 0xC1,
UAPI_CEC_OPCODE_REPORT_ARC_TERMINATED = 0xC2,
UAPI_CEC_OPCODE_REQUEST_ARC_INITIATION = 0xC3,
UAPI_CEC_OPCODE_REQUEST_ARC_TERMINATION = 0xC4,
UAPI_CEC_OPCODE_TERMINATE_ARC = 0xC5,
UAPI_CEC_OPCODE_HEADER = 0xF8,
UAPI_CEC_OPCODE_ABORT = 0xFF
} uapi_cec_opcode;
/* * CEC [UI Command] */ /* * CNcomment: CEC的[UI Command] */
typedef enum {
UAPI_CEC_UICMD_SELECT = 0x00,
UAPI_CEC_UICMD_UP = 0x01,
UAPI_CEC_UICMD_DOWN = 0x02,
UAPI_CEC_UICMD_LEFT = 0x03,
UAPI_CEC_UICMD_RIGHT = 0x04,
UAPI_CEC_UICMD_RIGHT_UP = 0x05,
UAPI_CEC_UICMD_RIGHT_DOWN = 0x06,
UAPI_CEC_UICMD_LEFT_UP = 0x07,
UAPI_CEC_UICMD_LEFT_DOWN = 0x08,
UAPI_CEC_UICMD_ROOT_MENU = 0x09,
UAPI_CEC_UICMD_SETUP_MENU = 0x0A,
UAPI_CEC_UICMD_CONTENTS_MENU = 0x0B,
UAPI_CEC_UICMD_FAVORITE_MENU = 0x0C,
UAPI_CEC_UICMD_EXIT = 0x0D,
UAPI_CEC_UICMD_NUM_0 = 0x20,
UAPI_CEC_UICMD_NUM_1 = 0x21,
UAPI_CEC_UICMD_NUM_2 = 0x22,
UAPI_CEC_UICMD_NUM_3 = 0x23,
UAPI_CEC_UICMD_NUM_4 = 0x24,
UAPI_CEC_UICMD_NUM_5 = 0x25,
UAPI_CEC_UICMD_NUM_6 = 0x26,
UAPI_CEC_UICMD_NUM_7 = 0x27,
UAPI_CEC_UICMD_NUM_8 = 0x28,
UAPI_CEC_UICMD_NUM_9 = 0x29,
UAPI_CEC_UICMD_DOT = 0x2A,
UAPI_CEC_UICMD_ENTER = 0x2B,
UAPI_CEC_UICMD_CLEAR = 0x2C,
UAPI_CEC_UICMD_NEXT_FAVORITE = 0x2F,
UAPI_CEC_UICMD_CHANNEL_UP = 0x30,
UAPI_CEC_UICMD_CHANNEL_DOWN = 0x31,
UAPI_CEC_UICMD_PREVIOUS_CHANNEL = 0x32,
UAPI_CEC_UICMD_SOUND_SELECT = 0x33,
UAPI_CEC_UICMD_INPUT_SELECT = 0x34,
UAPI_CEC_UICMD_DISPLAY_INFORMATION = 0x35,
UAPI_CEC_UICMD_HELP = 0x36,
UAPI_CEC_UICMD_PAGE_UP = 0x37,
UAPI_CEC_UICMD_PAGE_DOWN = 0x38,
UAPI_CEC_UICMD_POWER = 0x40,
UAPI_CEC_UICMD_VOLUME_UP = 0x41,
UAPI_CEC_UICMD_VOLUME_DOWN = 0x42,
UAPI_CEC_UICMD_MUTE = 0x43,
UAPI_CEC_UICMD_PLAY = 0x44,
UAPI_CEC_UICMD_STOP = 0x45,
UAPI_CEC_UICMD_PAUSE = 0x46,
UAPI_CEC_UICMD_RECORD = 0x47,
UAPI_CEC_UICMD_REWIND = 0x48,
UAPI_CEC_UICMD_FAST_FORWARD = 0x49,
UAPI_CEC_UICMD_EJECT = 0x4A,
UAPI_CEC_UICMD_FORWARD = 0x4B,
UAPI_CEC_UICMD_BACKWARD = 0x4C,
UAPI_CEC_UICMD_STOP_RECORD = 0x4D,
UAPI_CEC_UICMD_PAUSE_RECORD = 0x4E,
UAPI_CEC_UICMD_ANGLE = 0x50,
UAPI_CEC_UICMD_SUBPICTURE = 0x51,
UAPI_CEC_UICMD_VIDEO_ON_DEMAND = 0x52,
UAPI_CEC_UICMD_ELECTRONIC_PROGRAM_GUIDE = 0x53,
UAPI_CEC_UICMD_TIMER_PROGRAMMING = 0x54,
UAPI_CEC_UICMD_INITIAL_CONFIGURATION = 0x55,
UAPI_CEC_UICMD_PLAY_FUNCTION = 0x60,
UAPI_CEC_UICMD_PAUSE_PLAY_FUNCTION = 0x61,
UAPI_CEC_UICMD_RECORD_FUNCTION = 0x62,
UAPI_CEC_UICMD_PAUSE_RECORD_FUNCTION = 0x63,
UAPI_CEC_UICMD_STOP_FUNCTION = 0x64,
UAPI_CEC_UICMD_MUTE_FUNCTION = 0x65,
UAPI_CEC_UICMD_RESTORE_VOLUME_FUNCTION = 0x66,
UAPI_CEC_UICMD_TUNE_FUNCTION = 0x67,
UAPI_CEC_UICMD_SELECT_MEDIA_FUNCTION = 0x68,
UAPI_CEC_UICMD_SELECT_AV_INPUT_FUNCTION = 0x69,
UAPI_CEC_UICMD_SELECT_AUDIO_INPUT_FUNCTION = 0x6A,
UAPI_CEC_UICMD_POWER_TOGGLE_FUNCTION = 0x6B,
UAPI_CEC_UICMD_POWER_OFF_FUNCTION = 0x6C,
UAPI_CEC_UICMD_POWER_ON_FUNCTION = 0x6D,
UAPI_CEC_UICMD_F1_BLUE = 0x71,
UAPI_CEC_UICMD_F2_RED = 0x72,
UAPI_CEC_UICMD_F3_GREEN = 0x73,
UAPI_CEC_UICMD_F4_YELLOW = 0x74,
UAPI_CEC_UICMD_F5 = 0x75,
UAPI_CEC_UICMD_DATA = 0x76
} uapi_cec_uicmd;
/* * Operand of CEC message */ /* * CNcomment:CEC消息的操作数 */
typedef struct {
td_u8 len;
td_u8 data[UAPI_CEC_MAX_OPERAND_SIZE];
} uapi_cec_operand;
/* * The struct of CEC message */ /* * CNcomment:CEC消息结构体 */
typedef struct {
td_u8 src_addr;
td_u8 dst_addr;
uapi_cec_opcode opcode;
uapi_cec_operand operand;
} uapi_cec_msg;
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif
#endif