reformatted code

This commit is contained in:
2017-03-16 21:26:53 +08:00
parent 4e9d0db239
commit b045e7f7c3
14 changed files with 402 additions and 294 deletions

View File

@@ -388,8 +388,6 @@ typedef struct REMOTE_AC_STATUS
typedef INT8 (*lp_apply_ac_parameter)(remote_ac_status_t ac_status, UINT8 function_code); typedef INT8 (*lp_apply_ac_parameter)(remote_ac_status_t ac_status, UINT8 function_code);
#define TAG_AC_BOOT_CODE 1 #define TAG_AC_BOOT_CODE 1
#define TAG_AC_ZERO 2 #define TAG_AC_ZERO 2
#define TAG_AC_ONE 3 #define TAG_AC_ONE 3
@@ -587,7 +585,9 @@ extern INT8 get_supported_wind_direction(UINT8* supported_wind_direction);
// private extern function // private extern function
#if (defined BOARD_PC || defined BOARD_PC_DLL) #if (defined BOARD_PC || defined BOARD_PC_DLL)
extern void ir_lib_free_inner_buffer(); extern void ir_lib_free_inner_buffer();
#endif #endif
///////////////////////////////////////////////// Utils End ///////////////////////////////////////////////// ///////////////////////////////////////////////// Utils End /////////////////////////////////////////////////

View File

@@ -35,20 +35,24 @@ static INT8 ir_context_init()
} }
INT8 ir_ac_lib_parse() { INT8 ir_ac_lib_parse()
{
UINT8 i = 0; UINT8 i = 0;
// suggest not to call init function here for de-couple purpose // suggest not to call init function here for de-couple purpose
ir_context_init(); ir_context_init();
if (IR_DECODE_FAILED == binary_parse_offset()) { if (IR_DECODE_FAILED == binary_parse_offset())
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
if (IR_DECODE_FAILED == binary_parse_len()) { if (IR_DECODE_FAILED == binary_parse_len())
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
if (IR_DECODE_FAILED == binary_parse_data()) { if (IR_DECODE_FAILED == binary_parse_data())
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
@@ -58,7 +62,8 @@ INT8 ir_ac_lib_parse() {
context->lastbit = 0; context->lastbit = 0;
context->repeat_times = 1; context->repeat_times = 1;
for (i = 0; i < N_MODE_MAX; i++) { for (i = 0; i < N_MODE_MAX; i++)
{
context->n_mode[i].enable = TRUE; context->n_mode[i].enable = TRUE;
context->n_mode[i].allspeed = FALSE; context->n_mode[i].allspeed = FALSE;
context->n_mode[i].alltemp = FALSE; context->n_mode[i].alltemp = FALSE;
@@ -69,11 +74,16 @@ INT8 ir_ac_lib_parse() {
} }
// parse TAG 46 in first priority // parse TAG 46 in first priority
for (i = 0; i < tag_count; i++) { for (i = 0; i < tag_count; i++)
if (tags[i].tag == TAG_AC_SWING_INFO) { {
if (tags[i].len != 0) { if (tags[i].tag == TAG_AC_SWING_INFO)
{
if (tags[i].len != 0)
{
parse_swing_info(&tags[i], &(context->si)); parse_swing_info(&tags[i], &(context->si));
} else { }
else
{
context->si.type = SWING_TYPE_NORMAL; context->si.type = SWING_TYPE_NORMAL;
context->si.mode_count = 2; context->si.mode_count = 2;
} }
@@ -81,19 +91,24 @@ INT8 ir_ac_lib_parse() {
} }
} }
for (i = 0; i < tag_count; i++) { for (i = 0; i < tag_count; i++)
if (tags[i].len == 0) { {
if (tags[i].len == 0)
{
continue; continue;
} }
// then parse TAG 26 or 33 // then parse TAG 26 or 33
if (context->si.type == SWING_TYPE_NORMAL) { if (context->si.type == SWING_TYPE_NORMAL)
{
UINT16 swing_space_size = 0; UINT16 swing_space_size = 0;
if (tags[i].tag == TAG_AC_SWING_1) { if (tags[i].tag == TAG_AC_SWING_1)
{
context->swing1.count = context->si.mode_count; context->swing1.count = context->si.mode_count;
context->swing1.len = (UINT8) tags[i].len >> 1; context->swing1.len = (UINT8) tags[i].len >> 1;
swing_space_size = sizeof(tag_comp) * context->si.mode_count; swing_space_size = sizeof(tag_comp) * context->si.mode_count;
context->swing1.comp_data = (tag_comp *) ir_malloc(swing_space_size); context->swing1.comp_data = (tag_comp *) ir_malloc(swing_space_size);
if (NULL == context->swing1.comp_data) { if (NULL == context->swing1.comp_data)
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
@@ -101,22 +116,27 @@ INT8 ir_ac_lib_parse() {
if (IR_DECODE_FAILED == parse_common_ac_parameter(&tags[i], if (IR_DECODE_FAILED == parse_common_ac_parameter(&tags[i],
context->swing1.comp_data, context->swing1.comp_data,
context->si.mode_count, context->si.mode_count,
AC_PARAMETER_TYPE_1)) { AC_PARAMETER_TYPE_1))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_SWING_2) { }
else if (tags[i].tag == TAG_AC_SWING_2)
{
context->swing2.count = context->si.mode_count; context->swing2.count = context->si.mode_count;
context->swing2.len = (UINT8) tags[i].len >> 1; context->swing2.len = (UINT8) tags[i].len >> 1;
swing_space_size = sizeof(tag_comp) * context->si.mode_count; swing_space_size = sizeof(tag_comp) * context->si.mode_count;
context->swing2.comp_data = (tag_comp *) ir_malloc(swing_space_size); context->swing2.comp_data = (tag_comp *) ir_malloc(swing_space_size);
if (NULL == context->swing2.comp_data) { if (NULL == context->swing2.comp_data)
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
ir_memset(context->swing2.comp_data, 0x00, swing_space_size); ir_memset(context->swing2.comp_data, 0x00, swing_space_size);
if (IR_DECODE_FAILED == parse_common_ac_parameter(&tags[i], if (IR_DECODE_FAILED == parse_common_ac_parameter(&tags[i],
context->swing2.comp_data, context->swing2.comp_data,
context->si.mode_count, context->si.mode_count,
AC_PARAMETER_TYPE_2)) { AC_PARAMETER_TYPE_2))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} }
@@ -125,154 +145,229 @@ INT8 ir_ac_lib_parse() {
if (tags[i].tag == TAG_AC_DEFAULT_CODE) // default code TAG if (tags[i].tag == TAG_AC_DEFAULT_CODE) // default code TAG
{ {
context->default_code.data = (UINT8 *) ir_malloc(((size_t) tags[i].len - 2) >> 1); context->default_code.data = (UINT8 *) ir_malloc(((size_t) tags[i].len - 2) >> 1);
if (NULL == context->default_code.data) { if (NULL == context->default_code.data)
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
if (IR_DECODE_FAILED == parse_default_code(&tags[i], &(context->default_code))) { if (IR_DECODE_FAILED == parse_default_code(&tags[i], &(context->default_code)))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_POWER_1) // power tag }
else if (tags[i].tag == TAG_AC_POWER_1) // power tag
{ {
context->power1.len = (UINT8) tags[i].len >> 1; context->power1.len = (UINT8) tags[i].len >> 1;
if (IR_DECODE_FAILED == parse_common_ac_parameter(&tags[i], if (IR_DECODE_FAILED == parse_common_ac_parameter(&tags[i],
context->power1.comp_data, context->power1.comp_data,
AC_POWER_MAX, AC_POWER_MAX,
AC_PARAMETER_TYPE_1)) { AC_PARAMETER_TYPE_1))
return IR_DECODE_FAILED;
}
} else if (tags[i].tag == TAG_AC_TEMP_1) // temperature tag type 1
{ {
if (IR_DECODE_FAILED == parse_temp_1(&tags[i], &(context->temp1))) {
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_MODE_1) // mode tag }
else if (tags[i].tag == TAG_AC_TEMP_1) // temperature tag type 1
{
if (IR_DECODE_FAILED == parse_temp_1(&tags[i], &(context->temp1)))
{
return IR_DECODE_FAILED;
}
}
else if (tags[i].tag == TAG_AC_MODE_1) // mode tag
{ {
context->mode1.len = (UINT8) tags[i].len >> 1; context->mode1.len = (UINT8) tags[i].len >> 1;
if (IR_DECODE_FAILED == parse_common_ac_parameter(&tags[i], if (IR_DECODE_FAILED == parse_common_ac_parameter(&tags[i],
context->mode1.comp_data, context->mode1.comp_data,
AC_MODE_MAX, AC_MODE_MAX,
AC_PARAMETER_TYPE_1)) { AC_PARAMETER_TYPE_1))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_SPEED_1) // wind speed tag }
else if (tags[i].tag == TAG_AC_SPEED_1) // wind speed tag
{ {
context->speed1.len = (UINT8) tags[i].len >> 1; context->speed1.len = (UINT8) tags[i].len >> 1;
if (IR_DECODE_FAILED == parse_common_ac_parameter(&tags[i], if (IR_DECODE_FAILED == parse_common_ac_parameter(&tags[i],
context->speed1.comp_data, context->speed1.comp_data,
AC_WS_MAX, AC_WS_MAX,
AC_PARAMETER_TYPE_1)) { AC_PARAMETER_TYPE_1))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_CHECKSUM_TYPE) { }
if (IR_DECODE_FAILED == parse_checksum(&tags[i], &(context->checksum))) { else if (tags[i].tag == TAG_AC_CHECKSUM_TYPE)
{
if (IR_DECODE_FAILED == parse_checksum(&tags[i], &(context->checksum)))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_MODE_2) { }
else if (tags[i].tag == TAG_AC_MODE_2)
{
context->mode2.len = (UINT8) tags[i].len >> 1; context->mode2.len = (UINT8) tags[i].len >> 1;
if (IR_DECODE_FAILED == if (IR_DECODE_FAILED ==
parse_common_ac_parameter(&tags[i], parse_common_ac_parameter(&tags[i],
context->mode2.comp_data, AC_MODE_MAX, AC_PARAMETER_TYPE_1)) { context->mode2.comp_data, AC_MODE_MAX, AC_PARAMETER_TYPE_1))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_SPEED_2) { }
else if (tags[i].tag == TAG_AC_SPEED_2)
{
context->speed2.len = (UINT8) tags[i].len >> 1; context->speed2.len = (UINT8) tags[i].len >> 1;
if (IR_DECODE_FAILED == if (IR_DECODE_FAILED ==
parse_common_ac_parameter(&tags[i], parse_common_ac_parameter(&tags[i],
context->speed2.comp_data, AC_WS_MAX, AC_PARAMETER_TYPE_1)) { context->speed2.comp_data, AC_WS_MAX, AC_PARAMETER_TYPE_1))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_TEMP_2) { }
if (IR_DECODE_FAILED == parse_temp_2(&tags[i], &(context->temp2))) { else if (tags[i].tag == TAG_AC_TEMP_2)
{
if (IR_DECODE_FAILED == parse_temp_2(&tags[i], &(context->temp2)))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_SOLO_FUNCTION) { }
if (IR_DECODE_FAILED == parse_solo_code(&tags[i], &(context->sc))) { else if (tags[i].tag == TAG_AC_SOLO_FUNCTION)
{
if (IR_DECODE_FAILED == parse_solo_code(&tags[i], &(context->sc)))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
context->solo_function_mark = 1; context->solo_function_mark = 1;
} else if (tags[i].tag == TAG_AC_FUNCTION_1) { }
if (IR_DECODE_FAILED == parse_function_1_tag29(&tags[i], &(context->function1))) { else if (tags[i].tag == TAG_AC_FUNCTION_1)
{
if (IR_DECODE_FAILED == parse_function_1_tag29(&tags[i], &(context->function1)))
{
ir_printf("\nfunction code parse error\n"); ir_printf("\nfunction code parse error\n");
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_FUNCTION_2) { }
if (IR_DECODE_FAILED == parse_function_2_tag34(&tags[i], &(context->function2))) { else if (tags[i].tag == TAG_AC_FUNCTION_2)
{
if (IR_DECODE_FAILED == parse_function_2_tag34(&tags[i], &(context->function2)))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_FRAME_LENGTH) { }
if (IR_DECODE_FAILED == parse_frame_len(&tags[i], tags[i].len)) { else if (tags[i].tag == TAG_AC_FRAME_LENGTH)
{
if (IR_DECODE_FAILED == parse_frame_len(&tags[i], tags[i].len))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_ZERO) { }
if (IR_DECODE_FAILED == parse_zero(&tags[i])) { else if (tags[i].tag == TAG_AC_ZERO)
{
if (IR_DECODE_FAILED == parse_zero(&tags[i]))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_ONE) { }
if (IR_DECODE_FAILED == parse_one(&tags[i])) { else if (tags[i].tag == TAG_AC_ONE)
{
if (IR_DECODE_FAILED == parse_one(&tags[i]))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_BOOT_CODE) { }
if (IR_DECODE_FAILED == parse_boot_code(&tags[i])) { else if (tags[i].tag == TAG_AC_BOOT_CODE)
{
if (IR_DECODE_FAILED == parse_boot_code(&tags[i]))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_REPEAT_TIMES) { }
if (IR_DECODE_FAILED == parse_repeat_times(&tags[i])) { else if (tags[i].tag == TAG_AC_REPEAT_TIMES)
{
if (IR_DECODE_FAILED == parse_repeat_times(&tags[i]))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_BITNUM) { }
if (IR_DECODE_FAILED == parse_bit_num(&tags[i])) { else if (tags[i].tag == TAG_AC_BITNUM)
{
if (IR_DECODE_FAILED == parse_bit_num(&tags[i]))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_ENDIAN) { }
if (IR_DECODE_FAILED == parse_endian(&tags[i])) { else if (tags[i].tag == TAG_AC_ENDIAN)
{
if (IR_DECODE_FAILED == parse_endian(&tags[i]))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_COOL_MODE) { }
if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_COOL)) { else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_COOL_MODE)
{
if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_COOL))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_HEAT_MODE) { }
if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_HEAT)) { else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_HEAT_MODE)
{
if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_HEAT))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_AUTO_MODE) { }
if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_AUTO)) { else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_AUTO_MODE)
{
if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_AUTO))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_FAN_MODE) { }
if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_FAN)) { else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_FAN_MODE)
{
if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_FAN))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_DRY_MODE) { }
if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_DRY)) { else if (tags[i].tag == TAG_AC_BAN_FUNCTION_IN_DRY_MODE)
{
if (IR_DECODE_FAILED == parse_nmode(&tags[i], N_DRY))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} }
} }
for (i = 0; i < tag_count; i++) { for (i = 0; i < tag_count; i++)
if (tags[i].len == 0) { {
if (tags[i].len == 0)
{
continue; continue;
} }
if (tags[i].tag == TAG_AC_DELAY_CODE) { if (tags[i].tag == TAG_AC_DELAY_CODE)
if (IR_DECODE_FAILED == parse_delay_code(&tags[i])) { {
if (IR_DECODE_FAILED == parse_delay_code(&tags[i]))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} }
if (tags[i].tag == TAG_AC_LASTBIT) { if (tags[i].tag == TAG_AC_LASTBIT)
if (IR_DECODE_FAILED == parse_lastbit(&tags[i])) { {
if (IR_DECODE_FAILED == parse_lastbit(&tags[i]))
{
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
} }
} }
if (NULL != tags) { if (NULL != tags)
{
ir_free(tags); ir_free(tags);
tags = NULL; tags = NULL;
} }
ir_hex_code = (UINT8 *) ir_malloc(context->default_code.len); ir_hex_code = (UINT8 *) ir_malloc(context->default_code.len);
if (NULL == ir_hex_code) { if (NULL == ir_hex_code)
{
// warning: this AC bin contains no default code // warning: this AC bin contains no default code
return IR_DECODE_FAILED; return IR_DECODE_FAILED;
} }
@@ -281,11 +376,14 @@ INT8 ir_ac_lib_parse() {
ir_memset(ir_hex_code, 0x00, ir_hex_len); ir_memset(ir_hex_code, 0x00, ir_hex_len);
// pre-calculate solo function status after parse phase // pre-calculate solo function status after parse phase
if (1 == context->solo_function_mark) { if (1 == context->solo_function_mark)
{
context->solo_function_mark = 0x00; context->solo_function_mark = 0x00;
// bit order from right to left : power, mode, temp+, temp-, wind_speed, swing, fix // bit order from right to left : power, mode, temp+, temp-, wind_speed, swing, fix
for (i = AC_FUNCTION_POWER; i < AC_FUNCTION_MAX; i++) { for (i = AC_FUNCTION_POWER; i < AC_FUNCTION_MAX; i++)
if (isin(context->sc.solo_function_codes, i, context->sc.solo_func_count)) { {
if (isin(context->sc.solo_function_codes, i, context->sc.solo_func_count))
{
context->solo_function_mark |= (1 << (i - 1)); context->solo_function_mark |= (1 << (i - 1));
} }
} }

View File

@@ -49,7 +49,9 @@ lp_apply_ac_parameter apply_table[AC_APPLY_MAX] =
}; };
#if (defined BOARD_PC || defined BOARD_PC_DLL) #if (defined BOARD_PC || defined BOARD_PC_DLL)
void ir_lib_free_inner_buffer(); void ir_lib_free_inner_buffer();
#endif #endif
@@ -483,11 +485,14 @@ INT8 ir_tv_lib_close()
#if (defined BOARD_PC || defined BOARD_PC_DLL) #if (defined BOARD_PC || defined BOARD_PC_DLL)
void ir_lib_free_inner_buffer() void ir_lib_free_inner_buffer()
{ {
if (NULL != binary_content) { if (NULL != binary_content)
{
ir_free(binary_content); ir_free(binary_content);
binary_content = NULL; binary_content = NULL;
} }
} }
#endif #endif

View File

@@ -42,10 +42,15 @@ static UINT8 cycles_num_size = 0;
static BOOL get_ir_protocol(UINT8 encode_type); static BOOL get_ir_protocol(UINT8 encode_type);
static BOOL get_ir_keymap(void); static BOOL get_ir_keymap(void);
static void print_ir_time(ir_data_t *data, UINT8 keyindex, UINT16 *ir_time); static void print_ir_time(ir_data_t *data, UINT8 keyindex, UINT16 *ir_time);
static void process_decode_number(UINT8 keycode, ir_data_t *data, UINT8 valid_bits, UINT16 *ir_time); static void process_decode_number(UINT8 keycode, ir_data_t *data, UINT8 valid_bits, UINT16 *ir_time);
static void convert_to_ir_time(UINT8 value, UINT16 *ir_time); static void convert_to_ir_time(UINT8 value, UINT16 *ir_time);
static void replace_with(ir_cycles_t *pcycles_num, UINT16 *ir_time); static void replace_with(ir_cycles_t *pcycles_num, UINT16 *ir_time);