diff --git a/src/ir_decoder/.gitignore b/src/ir_decoder/.gitignore
index 043a659..0b7df55 100644
--- a/src/ir_decoder/.gitignore
+++ b/src/ir_decoder/.gitignore
@@ -2,6 +2,7 @@ out/
libs/
obj/
.idea/
+ipch/
cmake-build-debug/
cmake-build-release/
Debug/
diff --git a/src/ir_decoder/include/irda_tv_parse_protocol.h b/src/ir_decoder/include/irda_tv_parse_protocol.h
index af54b7a..66bb0ef 100644
--- a/src/ir_decoder/include/irda_tv_parse_protocol.h
+++ b/src/ir_decoder/include/irda_tv_parse_protocol.h
@@ -194,12 +194,10 @@ typedef struct irda_data_tv
} irda_data_tv_t;
-/*
- * export functions
- */
-
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);
#ifdef __cplusplus
diff --git a/src/ir_decoder/ir_decode.def b/src/ir_decoder/ir_decode.def
new file mode 100644
index 0000000..1ccec99
--- /dev/null
+++ b/src/ir_decoder/ir_decode.def
@@ -0,0 +1,20 @@
+LIBRARY
+
+EXPORTS
+
+irda_context_init @1
+irda_ac_lib_open @2
+irda_ac_lib_parse @3
+irda_ac_lib_control @4
+irda_ac_lib_close @5
+irda_tv_lib_open @6
+irda_tv_lib_parse @7
+irda_tv_lib_control @8
+irda_tv_lib_close @9
+get_temperature_range @10
+get_supported_mode @11
+get_supported_wind_speed @12
+get_supported_swing @13
+get_supported_wind_direction @14
+irda_ac_file_open @15
+irda_tv_file_open @16
\ No newline at end of file
diff --git a/src/ir_decoder/ir_decoder.vcxproj b/src/ir_decoder/ir_decoder.vcxproj
index e710162..95dc334 100644
--- a/src/ir_decoder/ir_decoder.vcxproj
+++ b/src/ir_decoder/ir_decoder.vcxproj
@@ -28,7 +28,7 @@
DynamicLibrary
true
- v140
+ v140_xp
Unicode
@@ -92,6 +92,7 @@
Windows
true
+ .\ir_decode.def
@@ -189,6 +190,9 @@
Create
+
+
+
diff --git a/src/ir_decoder/irda_decode.c b/src/ir_decoder/irda_decode.c
index f7ec188..779507c 100644
--- a/src/ir_decoder/irda_decode.c
+++ b/src/ir_decoder/irda_decode.c
@@ -324,6 +324,7 @@ INT8 irda_ac_lib_open(UINT8 *binary, UINT16 binary_length)
INT8 irda_context_init()
{
+ IR_PRINTF("init context");
irda_memset(context, 0, sizeof(protocol));
return IR_DECODE_SUCCEEDED;
}
@@ -1027,6 +1028,11 @@ void irda_ac_lib_close()
tags = NULL;
}
free_ac_context();
+
+ if (NULL != binary_content)
+ {
+ free(binary_content);
+ }
return;
}