|
|
/*
|
|
|
* 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
|