cleaned unused examples - 1
This commit is contained in:
@@ -1,439 +0,0 @@
|
||||
/**************************************************************************************
|
||||
Filename: ir_ac_control.h
|
||||
Revised: Date: 2016-12-31
|
||||
Revision: Revision: 1.0
|
||||
|
||||
Description: This file provides methods for AC IR control
|
||||
|
||||
Revision log:
|
||||
* 2016-10-12: created by strawmanbobi
|
||||
**************************************************************************************/
|
||||
#ifndef IRDA_DECODER_IR_AC_CONTROL_H
|
||||
#define IRDA_DECODER_IR_AC_CONTROL_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include "ir_defs.h"
|
||||
|
||||
|
||||
#define TAG_COUNT_FOR_PROTOCOL 29
|
||||
|
||||
#define TAG_INVALID 0xffff
|
||||
|
||||
#define MAX_DELAYCODE_NUM 16
|
||||
#define MAX_BITNUM 16
|
||||
|
||||
#define AC_PARAMETER_TYPE_1 0
|
||||
#define AC_PARAMETER_TYPE_2 1
|
||||
|
||||
typedef enum
|
||||
{
|
||||
AC_POWER_ON = 0,
|
||||
AC_POWER_OFF,
|
||||
AC_POWER_MAX
|
||||
} t_ac_power;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
AC_TEMP_16 = 0,
|
||||
AC_TEMP_17,
|
||||
AC_TEMP_18,
|
||||
AC_TEMP_19,
|
||||
AC_TEMP_20,
|
||||
AC_TEMP_21,
|
||||
AC_TEMP_22,
|
||||
AC_TEMP_23,
|
||||
AC_TEMP_24,
|
||||
AC_TEMP_25,
|
||||
AC_TEMP_26,
|
||||
AC_TEMP_27,
|
||||
AC_TEMP_28,
|
||||
AC_TEMP_29,
|
||||
AC_TEMP_30,
|
||||
AC_TEMP_MAX
|
||||
} t_ac_temperature;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
AC_MODE_COOL = 0,
|
||||
AC_MODE_HEAT,
|
||||
AC_MODE_AUTO,
|
||||
AC_MODE_FAN,
|
||||
AC_MODE_DRY,
|
||||
AC_MODE_MAX
|
||||
} t_ac_mode;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
AC_FUNCTION_POWER = 1,
|
||||
AC_FUNCTION_MODE,
|
||||
AC_FUNCTION_TEMPERATURE_UP,
|
||||
AC_FUNCTION_TEMPERATURE_DOWN,
|
||||
AC_FUNCTION_WIND_SPEED,
|
||||
AC_FUNCTION_WIND_SWING,
|
||||
AC_FUNCTION_WIND_FIX,
|
||||
AC_FUNCTION_MAX,
|
||||
} t_ac_function;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
AC_WS_AUTO = 0,
|
||||
AC_WS_LOW,
|
||||
AC_WS_MEDIUM,
|
||||
AC_WS_HIGH,
|
||||
AC_WS_MAX
|
||||
} t_ac_wind_speed;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
AC_SWING_ON = 0,
|
||||
AC_SWING_OFF,
|
||||
AC_SWING_MAX
|
||||
} t_ac_swing;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
SWING_TYPE_SWING_ONLY = 0,
|
||||
SWING_TYPE_NORMAL,
|
||||
SWING_TYPE_NOT_SPECIFIED,
|
||||
SWING_TYPE_MAX
|
||||
} swing_type;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
TEMP_TYPE_DYNAMIC = 0,
|
||||
TEMP_TYPE_STATIC,
|
||||
TEMP_TYPE_MAX,
|
||||
} t_temp_type;
|
||||
|
||||
// enumeration for application polymorphism
|
||||
typedef enum
|
||||
{
|
||||
AC_APPLY_POWER = 0,
|
||||
AC_APPLY_MODE,
|
||||
AC_APPLY_TEMPERATURE_UP,
|
||||
AC_APPLY_TEMPERATURE_DOWN,
|
||||
AC_APPLY_WIND_SPEED,
|
||||
AC_APPLY_WIND_SWING,
|
||||
AC_APPLY_WIND_FIX,
|
||||
AC_APPLY_MAX
|
||||
} t_ac_apply;
|
||||
|
||||
typedef struct _ac_hex
|
||||
{
|
||||
UINT8 len;
|
||||
UINT8 *data;
|
||||
} t_ac_hex;
|
||||
|
||||
typedef struct _ac_level
|
||||
{
|
||||
UINT16 low;
|
||||
UINT16 high;
|
||||
} t_ac_level;
|
||||
|
||||
typedef struct _ac_bootcode
|
||||
{
|
||||
UINT16 len;
|
||||
UINT16 data[16];
|
||||
} t_ac_bootcode;
|
||||
|
||||
typedef struct _ac_delaycode
|
||||
{
|
||||
INT16 pos;
|
||||
UINT16 time[8];
|
||||
UINT16 time_cnt;
|
||||
} t_ac_delaycode;
|
||||
|
||||
/*
|
||||
* the array of tag_100X application data
|
||||
* seg_len : length for each segment
|
||||
* byte_pos : the position of update byte
|
||||
* byte_value : the value to be updated to position
|
||||
*/
|
||||
typedef struct _tag_comp_type_1
|
||||
{
|
||||
UINT8 seg_len;
|
||||
UINT8 *segment;
|
||||
} t_tag_comp;
|
||||
|
||||
typedef struct _tag_swing_info
|
||||
{
|
||||
swing_type type;
|
||||
UINT8 mode_count;
|
||||
UINT8 dir_index;
|
||||
} t_swing_info;
|
||||
|
||||
typedef struct _tag_power_1
|
||||
{
|
||||
UINT8 len;
|
||||
t_tag_comp comp_data[AC_POWER_MAX];
|
||||
} t_power_1;
|
||||
|
||||
typedef struct _tag_temp_1
|
||||
{
|
||||
UINT8 len;
|
||||
UINT8 type;
|
||||
t_tag_comp comp_data[AC_TEMP_MAX];
|
||||
} t_temp_1;
|
||||
|
||||
typedef struct tag_mode_1
|
||||
{
|
||||
UINT8 len;
|
||||
t_tag_comp comp_data[AC_MODE_MAX];
|
||||
} t_mode_1;
|
||||
|
||||
typedef struct tag_speed_1
|
||||
{
|
||||
UINT8 len;
|
||||
t_tag_comp comp_data[AC_WS_MAX];
|
||||
} t_speed_1;
|
||||
|
||||
typedef struct tag_swing_1
|
||||
{
|
||||
UINT8 len;
|
||||
UINT16 count;
|
||||
t_tag_comp *comp_data;
|
||||
} t_swing_1;
|
||||
|
||||
typedef struct tag_temp_2
|
||||
{
|
||||
UINT8 len;
|
||||
UINT8 type;
|
||||
t_tag_comp comp_data[AC_TEMP_MAX];
|
||||
} t_temp_2;
|
||||
|
||||
typedef struct tag_mode_2
|
||||
{
|
||||
UINT8 len;
|
||||
t_tag_comp comp_data[AC_MODE_MAX];
|
||||
} t_mode_2;
|
||||
|
||||
typedef struct tag_speed_2
|
||||
{
|
||||
UINT8 len;
|
||||
t_tag_comp comp_data[AC_WS_MAX];
|
||||
} t_speed_2;
|
||||
|
||||
typedef struct tag_swing_2
|
||||
{
|
||||
UINT8 len;
|
||||
UINT16 count;
|
||||
t_tag_comp *comp_data;
|
||||
} t_swing_2;
|
||||
|
||||
#if defined SUPPORT_HORIZONTAL_SWING
|
||||
typedef struct tag_horiswing_1
|
||||
{
|
||||
UINT16 len;
|
||||
t_tag_comp comp_data[AC_HORI_SWING_MAX];
|
||||
} hori_swing_1;
|
||||
#endif
|
||||
|
||||
typedef struct _tag_checksum_data
|
||||
{
|
||||
UINT8 len;
|
||||
UINT8 type;
|
||||
UINT8 start_byte_pos;
|
||||
UINT8 end_byte_pos;
|
||||
UINT8 checksum_byte_pos;
|
||||
UINT8 checksum_plus;
|
||||
UINT8 *spec_pos;
|
||||
} t_tag_checksum_data;
|
||||
|
||||
typedef struct tag_checksum
|
||||
{
|
||||
UINT8 len;
|
||||
UINT16 count;
|
||||
t_tag_checksum_data *checksum_data;
|
||||
} t_checksum;
|
||||
|
||||
typedef struct tag_function_1
|
||||
{
|
||||
UINT8 len;
|
||||
t_tag_comp comp_data[AC_FUNCTION_MAX - 1];
|
||||
} t_function_1;
|
||||
|
||||
typedef struct tag_function_2
|
||||
{
|
||||
UINT8 len;
|
||||
t_tag_comp comp_data[AC_FUNCTION_MAX - 1];
|
||||
} t_function_2;
|
||||
|
||||
typedef struct tag_solo_code
|
||||
{
|
||||
UINT8 len;
|
||||
UINT8 solo_func_count;
|
||||
UINT8 solo_function_codes[AC_FUNCTION_MAX - 1];
|
||||
} t_solo_code;
|
||||
|
||||
typedef struct _ac_bitnum
|
||||
{
|
||||
INT16 pos;
|
||||
UINT16 bits;
|
||||
} t_ac_bit_num;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
N_COOL = 0,
|
||||
N_HEAT,
|
||||
N_AUTO,
|
||||
N_FAN,
|
||||
N_DRY,
|
||||
N_MODE_MAX,
|
||||
} t_ac_n_mode;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CHECKSUM_TYPE_BYTE = 1,
|
||||
CHECKSUM_TYPE_BYTE_INVERSE,
|
||||
CHECKSUM_TYPE_HALF_BYTE,
|
||||
CHECKSUM_TYPE_HALF_BYTE_INVERSE,
|
||||
CHECKSUM_TYPE_SPEC_HALF_BYTE,
|
||||
CHECKSUM_TYPE_SPEC_HALF_BYTE_INVERSE,
|
||||
CHECKSUM_TYPE_SPEC_HALF_BYTE_ONE_BYTE,
|
||||
CHECKSUM_TYPE_SPEC_HALF_BYTE_INVERSE_ONE_BYTE,
|
||||
CHECKSUM_TYPE_MAX,
|
||||
} t_checksum_type;
|
||||
|
||||
typedef struct _ac_n_mode_info
|
||||
{
|
||||
UINT8 enable;
|
||||
UINT8 all_speed;
|
||||
UINT8 all_temp;
|
||||
UINT8 temp[AC_TEMP_MAX];
|
||||
UINT8 temp_cnt;
|
||||
UINT8 speed[AC_WS_MAX];
|
||||
UINT8 speed_cnt;
|
||||
} t_ac_n_mode_info;
|
||||
|
||||
typedef struct ac_protocol
|
||||
{
|
||||
UINT8 endian;
|
||||
// t_ac_hex default_code;
|
||||
t_ac_hex default_code;
|
||||
t_ac_level zero;
|
||||
t_ac_level one;
|
||||
t_ac_bootcode boot_code;
|
||||
t_ac_delaycode dc[MAX_DELAYCODE_NUM];
|
||||
t_power_1 power1;
|
||||
t_temp_1 temp1;
|
||||
t_mode_1 mode1;
|
||||
t_speed_1 speed1;
|
||||
t_swing_1 swing1;
|
||||
t_checksum checksum;
|
||||
|
||||
t_function_1 function1;
|
||||
t_function_2 function2;
|
||||
|
||||
t_temp_2 temp2;
|
||||
t_mode_2 mode2;
|
||||
t_speed_2 speed2;
|
||||
t_swing_2 swing2;
|
||||
|
||||
t_swing_info si;
|
||||
t_solo_code sc;
|
||||
|
||||
UINT8 swing_status;
|
||||
|
||||
BOOL change_wind_direction;
|
||||
|
||||
UINT16 dc_cnt;
|
||||
t_ac_bit_num bit_num[MAX_BITNUM];
|
||||
UINT16 bit_num_cnt;
|
||||
UINT16 repeat_times;
|
||||
t_ac_n_mode_info n_mode[N_MODE_MAX];
|
||||
UINT16 code_cnt;
|
||||
UINT8 last_bit;
|
||||
UINT16 *time;
|
||||
UINT8 solo_function_mark;
|
||||
|
||||
UINT16 frame_length;
|
||||
} t_ac_protocol;
|
||||
|
||||
typedef struct tag_head
|
||||
{
|
||||
UINT16 tag;
|
||||
UINT16 len;
|
||||
UINT16 offset;
|
||||
UINT8 *p_data;
|
||||
} t_tag_head;
|
||||
|
||||
struct ir_bin_buffer
|
||||
{
|
||||
UINT8 *data;
|
||||
UINT16 len;
|
||||
UINT16 offset;
|
||||
};
|
||||
|
||||
typedef struct REMOTE_AC_STATUS
|
||||
{
|
||||
t_ac_power ac_power;
|
||||
t_ac_temperature ac_temp;
|
||||
t_ac_mode ac_mode;
|
||||
t_ac_swing ac_wind_dir;
|
||||
t_ac_wind_speed ac_wind_speed;
|
||||
UINT8 ac_display;
|
||||
UINT8 ac_sleep;
|
||||
UINT8 ac_timer;
|
||||
} t_remote_ac_status;
|
||||
|
||||
// function polymorphism
|
||||
typedef INT8 (*lp_apply_ac_parameter)(t_remote_ac_status ac_status, UINT8 function_code);
|
||||
|
||||
#define TAG_AC_BOOT_CODE 1
|
||||
#define TAG_AC_ZERO 2
|
||||
#define TAG_AC_ONE 3
|
||||
#define TAG_AC_DELAY_CODE 4
|
||||
#define TAG_AC_FRAME_LENGTH 5
|
||||
#define TAG_AC_ENDIAN 6
|
||||
#define TAG_AC_LAST_BIT 7
|
||||
|
||||
#define TAG_AC_POWER_1 21
|
||||
#define TAG_AC_DEFAULT_CODE 22
|
||||
#define TAG_AC_TEMP_1 23
|
||||
#define TAG_AC_MODE_1 24
|
||||
#define TAG_AC_SPEED_1 25
|
||||
#define TAG_AC_SWING_1 26
|
||||
#define TAG_AC_CHECKSUM_TYPE 27
|
||||
#define TAG_AC_SOLO_FUNCTION 28
|
||||
#define TAG_AC_FUNCTION_1 29
|
||||
#define TAG_AC_TEMP_2 30
|
||||
#define TAG_AC_MODE_2 31
|
||||
#define TAG_AC_SPEED_2 32
|
||||
#define TAG_AC_SWING_2 33
|
||||
#define TAG_AC_FUNCTION_2 34
|
||||
|
||||
#define TAG_AC_BAN_FUNCTION_IN_COOL_MODE 41
|
||||
#define TAG_AC_BAN_FUNCTION_IN_HEAT_MODE 42
|
||||
#define TAG_AC_BAN_FUNCTION_IN_AUTO_MODE 43
|
||||
#define TAG_AC_BAN_FUNCTION_IN_FAN_MODE 44
|
||||
#define TAG_AC_BAN_FUNCTION_IN_DRY_MODE 45
|
||||
#define TAG_AC_SWING_INFO 46
|
||||
#define TAG_AC_REPEAT_TIMES 47
|
||||
#define TAG_AC_BIT_NUM 48
|
||||
|
||||
|
||||
// definition about size
|
||||
|
||||
#define PROTOCOL_SIZE (sizeof(t_ac_protocol))
|
||||
|
||||
/* exported variables */
|
||||
extern UINT8 *ir_hex_code;
|
||||
extern UINT8 ir_hex_len;
|
||||
extern t_ac_protocol *context;
|
||||
|
||||
|
||||
extern INT8 ir_ac_lib_parse();
|
||||
|
||||
extern INT8 free_ac_context();
|
||||
|
||||
extern BOOL is_solo_function(UINT8 function_code);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif //IRDA_DECODER_IR_AC_CONTROL_H
|
||||
@@ -1,160 +0,0 @@
|
||||
/**************************************************************************************
|
||||
Filename: ir_decode.h
|
||||
Revised: Date: 2016-10-01
|
||||
Revision: Revision: 1.0
|
||||
|
||||
Description: This file provides algorithms for IR decode
|
||||
|
||||
Revision log:
|
||||
* 2016-10-01: created by strawmanbobi
|
||||
**************************************************************************************/
|
||||
|
||||
#ifndef _IRDA_DECODE_H_
|
||||
#define _IRDA_DECODE_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include "ir_defs.h"
|
||||
#include "ir_ac_control.h"
|
||||
#include "ir_tv_control.h"
|
||||
|
||||
#define IR_DECODE_FAILED (-1)
|
||||
#define IR_DECODE_SUCCEEDED (0)
|
||||
|
||||
#define IR_CATEGORY_AC 1
|
||||
#define IR_CATEGORY_TV 2
|
||||
|
||||
#define IR_TYPE_STATUS 0
|
||||
#define IR_TYPE_COMMANDS 1
|
||||
|
||||
#define SUB_CATEGORY_QUATERNARY 0
|
||||
#define SUB_CATEGORY_HEXADECIMAL 1
|
||||
|
||||
// exported functions
|
||||
/**
|
||||
* function ir_file_open
|
||||
*
|
||||
* description: open IR binary code from file
|
||||
*
|
||||
* parameters: category (in) - category ID get from indexing API
|
||||
* sub_category (in) - subcategory ID get from indexing API
|
||||
* file_name (in) - file name of IR binary
|
||||
*
|
||||
* returns: IR_DECODE_SUCCEEDED / IR_DECODE_FAILED
|
||||
*
|
||||
*/
|
||||
extern INT8 ir_file_open(const UINT8 category, const UINT8 sub_category, const char* file_name);
|
||||
|
||||
/**
|
||||
* function ir_binary_open
|
||||
*
|
||||
* description: open IR binary code from buffer
|
||||
*
|
||||
* parameters: category (in) - category ID get from indexing API
|
||||
* sub_category (in) - subcategory ID get from indexing API
|
||||
* binary (in) - pointer to binary buffer
|
||||
* binary_length (in) - binary buffer size
|
||||
*
|
||||
* returns: IR_DECODE_SUCCEEDED / IR_DECODE_FAILED
|
||||
*/
|
||||
extern INT8 ir_binary_open(const UINT8 category, const UINT8 sub_category, UINT8* binary, UINT16 binary_length);
|
||||
|
||||
/**
|
||||
* function ir_decode
|
||||
*
|
||||
* description: decode IR binary into INT16 array which indicates the IR levels
|
||||
*
|
||||
* parameters: key_code (in) - the code of pressed key
|
||||
* user_data (out) - output decoded data in INT16 array format
|
||||
* ac_status(in) - pointer to AC status (optional)
|
||||
* change_wind_direction (in) - if control changes wind direction for AC (for AC only)
|
||||
*
|
||||
* returns: length of decoded data (0 indicates decode failure)
|
||||
*/
|
||||
extern UINT16 ir_decode(UINT8 key_code, UINT16* user_data, t_remote_ac_status* ac_status, BOOL change_wind_direction);
|
||||
|
||||
/**
|
||||
* function ir_close
|
||||
*
|
||||
* description: close IR binary code
|
||||
*
|
||||
* parameters: N/A
|
||||
*
|
||||
* returns: IR_DECODE_SUCCEEDED / IR_DECODE_FAILED
|
||||
*/
|
||||
extern INT8 ir_close();
|
||||
|
||||
/**
|
||||
* function get_temperature_range
|
||||
*
|
||||
* description: get the supported temperature range [min, max] for the opened AC IR binary
|
||||
*
|
||||
* parameters: ac_mode (in) specify in which AC mode the application need to get temperature info
|
||||
* temp_min (out) the min temperature supported in a specified AC mode
|
||||
* temp_max (out) the max temperature supported in a specified AC mode
|
||||
*
|
||||
* returns: IR_DECODE_SUCCEEDED / IR_DECODE_FAILED
|
||||
*/
|
||||
extern INT8 get_temperature_range(UINT8 ac_mode, INT8 *temp_min, INT8 *temp_max);
|
||||
|
||||
/**
|
||||
* function get_supported_mode
|
||||
*
|
||||
* description: get supported mode for the opened AC IR binary
|
||||
*
|
||||
* parameters: supported_mode (out) mode supported by the remote in lower 5 bits
|
||||
*
|
||||
* returns: IR_DECODE_SUCCEEDED / IR_DECODE_FAILED
|
||||
*/
|
||||
extern INT8 get_supported_mode(UINT8 *supported_mode);
|
||||
|
||||
/**
|
||||
* function get_supported_wind_speed
|
||||
*
|
||||
* description: get supported wind speed levels for the opened AC IR binary in certain mode
|
||||
*
|
||||
* parameters: ac_mode (in) specify in which AC mode the application need to get wind speed info
|
||||
* supported_wind_speed (out) wind speed supported by the remote in lower 4 bits
|
||||
*
|
||||
* returns: IR_DECODE_SUCCEEDED / IR_DECODE_FAILED
|
||||
*/
|
||||
extern INT8 get_supported_wind_speed(UINT8 ac_mode, UINT8 *supported_wind_speed);
|
||||
|
||||
/**
|
||||
* function get_supported_swing
|
||||
*
|
||||
* description: get supported swing functions for the opened AC IR binary in certain mode
|
||||
*
|
||||
* parameters: ac_mode (in) specify in which AC mode the application need to get swing info
|
||||
* supported_swing (out) swing supported by the remote in lower 2 bits
|
||||
*
|
||||
* returns: IR_DECODE_SUCCEEDED / IR_DECODE_FAILED
|
||||
*/
|
||||
extern INT8 get_supported_swing(UINT8 ac_mode, UINT8 *supported_swing);
|
||||
|
||||
/**
|
||||
* function get_supported_wind_direction
|
||||
*
|
||||
* description: get supported wind directions for the opened AC IR binary in certain mode
|
||||
*
|
||||
* parameters: supported_wind_direction (out) swing supported by the remote in lower 2 bits
|
||||
*
|
||||
* returns: IR_DECODE_SUCCEEDED / IR_DECODE_FAILED
|
||||
*/
|
||||
extern INT8 get_supported_wind_direction(UINT8 *supported_wind_direction);
|
||||
|
||||
|
||||
// private extern function
|
||||
#if (defined BOARD_PC || defined BOARD_PC_DLL)
|
||||
extern void ir_lib_free_inner_buffer();
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // _IRDA_DECODE_H_
|
||||
@@ -1,67 +0,0 @@
|
||||
/**************************************************************************************
|
||||
Filename: ir_defs.h
|
||||
Revised: Date: 2016-10-26
|
||||
Revision: Revision: 1.0
|
||||
|
||||
Description: This file provides algorithms for IR decode
|
||||
|
||||
Revision log:
|
||||
* 2016-10-01: created by strawmanbobi
|
||||
**************************************************************************************/
|
||||
|
||||
#ifndef PARSE_IR_DEFS_H
|
||||
#define PARSE_IR_DEFS_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#if defined BOARD_ANDROID
|
||||
#include <android/log.h>
|
||||
#define LOG_TAG "ir_decode"
|
||||
#endif
|
||||
|
||||
#if defined BOARD_CC26XX
|
||||
#include "OSAL.h"
|
||||
#endif
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
#define FORMAT_HEX 16
|
||||
#define FORMAT_DECIMAL 10
|
||||
|
||||
|
||||
typedef unsigned char UINT8;
|
||||
typedef signed char INT8;
|
||||
typedef unsigned short UINT16;
|
||||
typedef signed short INT16;
|
||||
typedef signed int INT;
|
||||
typedef unsigned int UINT;
|
||||
typedef int BOOL;
|
||||
|
||||
void noprint(const char *fmt, ...);
|
||||
|
||||
#if defined BOARD_CC26XX
|
||||
#define ir_malloc(A) ICall_malloc(A)
|
||||
#define ir_free(A) ICall_free(A)
|
||||
#else
|
||||
#define ir_malloc(A) malloc(A)
|
||||
#define ir_free(A) free(A)
|
||||
#endif
|
||||
|
||||
#define ir_memcpy(A, B, C) memcpy(A, B, C)
|
||||
#define ir_memset(A, B, C) memset(A, B, C)
|
||||
#define ir_strlen(A) strlen(A)
|
||||
#if (defined BOARD_PC) && (!defined BOARD_PC_JNI)
|
||||
#define ir_printf printf
|
||||
#else
|
||||
#define ir_printf noprint
|
||||
#endif
|
||||
#define USER_DATA_SIZE 1636
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif //PARSE_IR_DEFS_H
|
||||
@@ -1,215 +0,0 @@
|
||||
/**************************************************************************************
|
||||
Filename: ir_lib.h
|
||||
Revised: Date: 2016-02-23
|
||||
Revision: Revision: 1.0
|
||||
|
||||
Description: This file provides algorithms for IR decode (compressed command type)
|
||||
|
||||
Revision log:
|
||||
* 2016-10-21: created by strawmanbobi
|
||||
**************************************************************************************/
|
||||
|
||||
#ifndef _IRDA_LIB_H_
|
||||
#define _IRDA_LIB_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include "ir_defs.h"
|
||||
|
||||
#define STB_CHANNEL_OFFSET 14
|
||||
|
||||
#define IRDA_FLAG_NORMAL 0
|
||||
#define IRDA_FLAG_INVERSE 1
|
||||
|
||||
#define IRDA_LEVEL_LOW 0
|
||||
#define IRDA_LEVEL_HIGH 1
|
||||
|
||||
#define IRDA_LSB 0
|
||||
#define IRDA_MSB 1
|
||||
|
||||
enum
|
||||
{
|
||||
IRDA_DECODE_1_BIT = 0,
|
||||
IRDA_DECODE_2_BITS,
|
||||
IRDA_DECODE_4_BITS,
|
||||
};
|
||||
|
||||
/*
|
||||
* global type definitions
|
||||
*/
|
||||
typedef enum ir_flags
|
||||
{
|
||||
IRDA_BOOT = 0,
|
||||
IRDA_STOP,
|
||||
IRDA_SEP,
|
||||
IRDA_ONE,
|
||||
IRDA_ZERO,
|
||||
IRDA_FLIP,
|
||||
IRDA_TWO,
|
||||
IRDA_THREE = 7,
|
||||
IRDA_FOUR,
|
||||
IRDA_FIVE,
|
||||
IRDA_SIX,
|
||||
IRDA_SEVEN,
|
||||
IRDA_EIGHT,
|
||||
IRDA_NINE,
|
||||
IRDA_A,
|
||||
IRDA_B,
|
||||
IRDA_C,
|
||||
IRDA_D,
|
||||
IRDA_E,
|
||||
IRDA_F,
|
||||
IRDA_MAX = 20,
|
||||
} t_ir_flags;
|
||||
|
||||
typedef struct ir_data
|
||||
{
|
||||
UINT8 bits;
|
||||
UINT8 lsb;
|
||||
UINT8 mode;
|
||||
UINT8 index;
|
||||
} t_ir_data;
|
||||
|
||||
#if !defined BOARD_51 && !defined BOARD_STM8
|
||||
#pragma pack(1)
|
||||
#endif
|
||||
typedef struct ir_cycles
|
||||
{
|
||||
UINT8 flag;
|
||||
UINT16 mask;
|
||||
UINT16 space;
|
||||
} t_ir_cycles;
|
||||
|
||||
#if !defined BOARD_51 && !defined BOARD_STM8
|
||||
#pragma pack()
|
||||
#endif
|
||||
|
||||
typedef enum tv_key_value
|
||||
{
|
||||
TV_POWER = 0,
|
||||
TV_MUTE,
|
||||
TV_UP,
|
||||
TV_DOWN,
|
||||
TV_LEFT,
|
||||
TV_RIGHT,
|
||||
TV_OK,
|
||||
TV_VOL_UP,
|
||||
TV_VOL_DOWN,
|
||||
TV_BACK,
|
||||
TV_INPUT,
|
||||
TV_MENU,
|
||||
TV_HOME,
|
||||
TV_SET,
|
||||
TV_0,
|
||||
TV_1,
|
||||
TV_2,
|
||||
TV_3,
|
||||
TV_4,
|
||||
TV_5,
|
||||
TV_6,
|
||||
TV_7,
|
||||
TV_8,
|
||||
TV_9,
|
||||
TV_KEY_MAX,
|
||||
} t_tv_key_value;
|
||||
|
||||
|
||||
typedef enum stb_key_value
|
||||
{
|
||||
STB_POWER = 0,
|
||||
STB_MUTE,
|
||||
STB_UP,
|
||||
STB_DOWN,
|
||||
STB_LEFT,
|
||||
STB_RIGHT,
|
||||
STB_OK,
|
||||
STB_VOL_UP,
|
||||
STB_VOL_DOWN,
|
||||
STB_BACK,
|
||||
STB_INPUT,
|
||||
STB_MENU,
|
||||
STB_PAGE_UP,
|
||||
STB_PAGE_DOWN,
|
||||
STB_0,
|
||||
STB_1,
|
||||
STB_2,
|
||||
STB_3,
|
||||
STB_4,
|
||||
STB_5,
|
||||
STB_6,
|
||||
STB_7,
|
||||
STB_8,
|
||||
STB_9,
|
||||
STB_KEY_MAX,
|
||||
} t_stb_key_value;
|
||||
|
||||
typedef enum nw_key_value
|
||||
{
|
||||
NW_POWER = 0,
|
||||
NW_UP,
|
||||
NW_DOWN,
|
||||
NW_LEFT,
|
||||
NW_RIGHT,
|
||||
NW_OK,
|
||||
NW_VOL_UP,
|
||||
NW_VOL_DOWN,
|
||||
NW_BACK,
|
||||
NW_MENU,
|
||||
NW_HOME,
|
||||
NW_0,
|
||||
NW_1,
|
||||
NW_2,
|
||||
NW_3,
|
||||
NW_4,
|
||||
NW_5,
|
||||
NW_6,
|
||||
NW_7,
|
||||
NW_8,
|
||||
NW_9,
|
||||
NW_KEY_MAX,
|
||||
} t_nw_key_value;
|
||||
|
||||
typedef enum cm_key_value
|
||||
{
|
||||
CM_POWER = 0,
|
||||
CM_UP,
|
||||
CM_DOWN,
|
||||
CM_LEFT,
|
||||
CM_RIGHT,
|
||||
CM_OK,
|
||||
CM_VOL_UP,
|
||||
CM_VOL_DOWN,
|
||||
CM_FUNC_1,
|
||||
CM_FUNC_2,
|
||||
CM_FUNC_3,
|
||||
CM_BACK,
|
||||
CM_HOME,
|
||||
CM_MENU,
|
||||
CM_MODE,
|
||||
CM_KEY_MAX,
|
||||
} t_cm_key_value;
|
||||
|
||||
typedef struct ir_data_tv
|
||||
{
|
||||
char magic[4];
|
||||
UINT8 per_keycode_bytes;
|
||||
} t_ir_data_tv;
|
||||
|
||||
|
||||
extern INT8 tv_lib_open(UINT8 *binary, UINT16 binary_length);
|
||||
|
||||
extern BOOL tv_lib_parse(UINT8 encode_type);
|
||||
|
||||
extern UINT16 tv_lib_control(UINT8 key, UINT16 *user_data);
|
||||
|
||||
extern UINT8 tv_lib_close();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _IRDA_LIB_H_ */
|
||||
|
||||
Reference in New Issue
Block a user