diff options
| author | 2014-10-03 16:00:26 +0200 | |
|---|---|---|
| committer | 2014-10-03 16:00:26 +0200 | |
| commit | 250d32a3df8f4dc06abbadd05a12d0bb9c1715bf (patch) | |
| tree | 00dd45d1674fa78cf0fabbfd0c7cf32652fe260f | |
| parent | 743cfa3e21313132517b3f8d730530eb34ed8723 (diff) | |
| download | libirecovery-250d32a3df8f4dc06abbadd05a12d0bb9c1715bf.tar.gz libirecovery-250d32a3df8f4dc06abbadd05a12d0bb9c1715bf.tar.bz2 | |
Avoid exporting non-public symbols
| -rw-r--r-- | configure.ac | 7 | ||||
| -rw-r--r-- | src/libirecovery.c | 80 |
2 files changed, 53 insertions, 34 deletions
diff --git a/configure.ac b/configure.ac index f4bbad3..07ebf77 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -87,9 +87,14 @@ case ${host_os} in | |||
| 87 | esac | 87 | esac |
| 88 | AM_CONDITIONAL(WIN32, test x$win32 = xtrue) | 88 | AM_CONDITIONAL(WIN32, test x$win32 = xtrue) |
| 89 | 89 | ||
| 90 | AS_COMPILER_FLAGS(GLOBAL_CFLAGS, "-Wall -Wextra -Wmissing-declarations -Wredundant-decls -Wshadow -Wpointer-arith -Wwrite-strings -Wswitch-default -Wno-unused-parameter") | 90 | AS_COMPILER_FLAGS(GLOBAL_CFLAGS, "-Wall -Wextra -Wmissing-declarations -Wredundant-decls -Wshadow -Wpointer-arith -Wwrite-strings -Wswitch-default -Wno-unused-parameter -fvisibility=hidden") |
| 91 | AC_SUBST(GLOBAL_CFLAGS) | 91 | AC_SUBST(GLOBAL_CFLAGS) |
| 92 | 92 | ||
| 93 | case "$GLOBAL_CFLAGS" in | ||
| 94 | *-fvisibility=hidden*) | ||
| 95 | AC_DEFINE([HAVE_FVISIBILITY], [1], [Define if compiled with -fvisibility=hidden]) | ||
| 96 | esac | ||
| 97 | |||
| 93 | m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) | 98 | m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) |
| 94 | 99 | ||
| 95 | AC_OUTPUT([ | 100 | AC_OUTPUT([ |
diff --git a/src/libirecovery.c b/src/libirecovery.c index f66eff7..b4e3e0c 100644 --- a/src/libirecovery.c +++ b/src/libirecovery.c | |||
| @@ -18,6 +18,10 @@ | |||
| 18 | * Lesser General Public License for more details. | 18 | * Lesser General Public License for more details. |
| 19 | */ | 19 | */ |
| 20 | 20 | ||
| 21 | #ifdef HAVE_CONFIG_H | ||
| 22 | #include <config.h> | ||
| 23 | #endif | ||
| 24 | |||
| 21 | #include <stdio.h> | 25 | #include <stdio.h> |
| 22 | #include <stdint.h> | 26 | #include <stdint.h> |
| 23 | #include <stdlib.h> | 27 | #include <stdlib.h> |
| @@ -41,6 +45,16 @@ | |||
| 41 | #endif | 45 | #endif |
| 42 | #endif | 46 | #endif |
| 43 | 47 | ||
| 48 | #ifdef WIN32 | ||
| 49 | #define IRECV_API __declspec( dllexport ) | ||
| 50 | #else | ||
| 51 | #ifdef HAVE_FVISIBILITY | ||
| 52 | #define IRECV_API __attribute__((visibility("default"))) | ||
| 53 | #else | ||
| 54 | #define IRECV_API | ||
| 55 | #endif | ||
| 56 | #endif | ||
| 57 | |||
| 44 | #include "libirecovery.h" | 58 | #include "libirecovery.h" |
| 45 | 59 | ||
| 46 | struct irecv_client_private { | 60 | struct irecv_client_private { |
| @@ -625,13 +639,13 @@ static int check_context(irecv_client_t client) { | |||
| 625 | return IRECV_E_SUCCESS; | 639 | return IRECV_E_SUCCESS; |
| 626 | } | 640 | } |
| 627 | 641 | ||
| 628 | void irecv_init() { | 642 | IRECV_API void irecv_init() { |
| 629 | #ifndef WIN32 | 643 | #ifndef WIN32 |
| 630 | libusb_init(&libirecovery_context); | 644 | libusb_init(&libirecovery_context); |
| 631 | #endif | 645 | #endif |
| 632 | } | 646 | } |
| 633 | 647 | ||
| 634 | void irecv_exit() { | 648 | IRECV_API void irecv_exit() { |
| 635 | #ifndef WIN32 | 649 | #ifndef WIN32 |
| 636 | if (libirecovery_context != NULL) { | 650 | if (libirecovery_context != NULL) { |
| 637 | libusb_exit(libirecovery_context); | 651 | libusb_exit(libirecovery_context); |
| @@ -715,7 +729,7 @@ int irecv_usb_bulk_transfer(irecv_client_t client, | |||
| 715 | return ret; | 729 | return ret; |
| 716 | } | 730 | } |
| 717 | 731 | ||
| 718 | irecv_error_t irecv_open_with_ecid(irecv_client_t* pclient, unsigned long long ecid) { | 732 | IRECV_API irecv_error_t irecv_open_with_ecid(irecv_client_t* pclient, unsigned long long ecid) { |
| 719 | if(libirecovery_debug) { | 733 | if(libirecovery_debug) { |
| 720 | irecv_set_debug_level(libirecovery_debug); | 734 | irecv_set_debug_level(libirecovery_debug); |
| 721 | } | 735 | } |
| @@ -851,7 +865,7 @@ irecv_error_t irecv_open_with_ecid(irecv_client_t* pclient, unsigned long long e | |||
| 851 | #endif | 865 | #endif |
| 852 | } | 866 | } |
| 853 | 867 | ||
| 854 | irecv_error_t irecv_usb_set_configuration(irecv_client_t client, int configuration) { | 868 | IRECV_API irecv_error_t irecv_usb_set_configuration(irecv_client_t client, int configuration) { |
| 855 | if (check_context(client) != IRECV_E_SUCCESS) | 869 | if (check_context(client) != IRECV_E_SUCCESS) |
| 856 | return IRECV_E_NO_DEVICE; | 870 | return IRECV_E_NO_DEVICE; |
| 857 | 871 | ||
| @@ -872,7 +886,7 @@ irecv_error_t irecv_usb_set_configuration(irecv_client_t client, int configurati | |||
| 872 | return IRECV_E_SUCCESS; | 886 | return IRECV_E_SUCCESS; |
| 873 | } | 887 | } |
| 874 | 888 | ||
| 875 | irecv_error_t irecv_usb_set_interface(irecv_client_t client, int usb_interface, int usb_alt_interface) { | 889 | IRECV_API irecv_error_t irecv_usb_set_interface(irecv_client_t client, int usb_interface, int usb_alt_interface) { |
| 876 | if (check_context(client) != IRECV_E_SUCCESS) | 890 | if (check_context(client) != IRECV_E_SUCCESS) |
| 877 | return IRECV_E_NO_DEVICE; | 891 | return IRECV_E_NO_DEVICE; |
| 878 | 892 | ||
| @@ -896,7 +910,7 @@ irecv_error_t irecv_usb_set_interface(irecv_client_t client, int usb_interface, | |||
| 896 | return IRECV_E_SUCCESS; | 910 | return IRECV_E_SUCCESS; |
| 897 | } | 911 | } |
| 898 | 912 | ||
| 899 | irecv_error_t irecv_reset(irecv_client_t client) { | 913 | IRECV_API irecv_error_t irecv_reset(irecv_client_t client) { |
| 900 | if (check_context(client) != IRECV_E_SUCCESS) | 914 | if (check_context(client) != IRECV_E_SUCCESS) |
| 901 | return IRECV_E_NO_DEVICE; | 915 | return IRECV_E_NO_DEVICE; |
| 902 | 916 | ||
| @@ -910,7 +924,7 @@ irecv_error_t irecv_reset(irecv_client_t client) { | |||
| 910 | return IRECV_E_SUCCESS; | 924 | return IRECV_E_SUCCESS; |
| 911 | } | 925 | } |
| 912 | 926 | ||
| 913 | irecv_error_t irecv_open_with_ecid_and_attempts(irecv_client_t* pclient, unsigned long long ecid, int attempts) { | 927 | IRECV_API irecv_error_t irecv_open_with_ecid_and_attempts(irecv_client_t* pclient, unsigned long long ecid, int attempts) { |
| 914 | int i; | 928 | int i; |
| 915 | 929 | ||
| 916 | for (i = 0; i < attempts; i++) { | 930 | for (i = 0; i < attempts; i++) { |
| @@ -929,7 +943,7 @@ irecv_error_t irecv_open_with_ecid_and_attempts(irecv_client_t* pclient, unsigne | |||
| 929 | return IRECV_E_UNABLE_TO_CONNECT; | 943 | return IRECV_E_UNABLE_TO_CONNECT; |
| 930 | } | 944 | } |
| 931 | 945 | ||
| 932 | irecv_error_t irecv_event_subscribe(irecv_client_t client, irecv_event_type type, irecv_event_cb_t callback, void* user_data) { | 946 | IRECV_API irecv_error_t irecv_event_subscribe(irecv_client_t client, irecv_event_type type, irecv_event_cb_t callback, void* user_data) { |
| 933 | switch(type) { | 947 | switch(type) { |
| 934 | case IRECV_RECEIVED: | 948 | case IRECV_RECEIVED: |
| 935 | client->received_callback = callback; | 949 | client->received_callback = callback; |
| @@ -959,7 +973,7 @@ irecv_error_t irecv_event_subscribe(irecv_client_t client, irecv_event_type type | |||
| 959 | return IRECV_E_SUCCESS; | 973 | return IRECV_E_SUCCESS; |
| 960 | } | 974 | } |
| 961 | 975 | ||
| 962 | irecv_error_t irecv_event_unsubscribe(irecv_client_t client, irecv_event_type type) { | 976 | IRECV_API irecv_error_t irecv_event_unsubscribe(irecv_client_t client, irecv_event_type type) { |
| 963 | switch(type) { | 977 | switch(type) { |
| 964 | case IRECV_RECEIVED: | 978 | case IRECV_RECEIVED: |
| 965 | client->received_callback = NULL; | 979 | client->received_callback = NULL; |
| @@ -989,7 +1003,7 @@ irecv_error_t irecv_event_unsubscribe(irecv_client_t client, irecv_event_type ty | |||
| 989 | return IRECV_E_SUCCESS; | 1003 | return IRECV_E_SUCCESS; |
| 990 | } | 1004 | } |
| 991 | 1005 | ||
| 992 | irecv_error_t irecv_close(irecv_client_t client) { | 1006 | IRECV_API irecv_error_t irecv_close(irecv_client_t client) { |
| 993 | if (client != NULL) { | 1007 | if (client != NULL) { |
| 994 | if(client->disconnected_callback != NULL) { | 1008 | if(client->disconnected_callback != NULL) { |
| 995 | irecv_event_t event; | 1009 | irecv_event_t event; |
| @@ -1037,7 +1051,7 @@ irecv_error_t irecv_close(irecv_client_t client) { | |||
| 1037 | return IRECV_E_SUCCESS; | 1051 | return IRECV_E_SUCCESS; |
| 1038 | } | 1052 | } |
| 1039 | 1053 | ||
| 1040 | void irecv_set_debug_level(int level) { | 1054 | IRECV_API void irecv_set_debug_level(int level) { |
| 1041 | libirecovery_debug = level; | 1055 | libirecovery_debug = level; |
| 1042 | #ifndef WIN32 | 1056 | #ifndef WIN32 |
| 1043 | if(libirecovery_context) { | 1057 | if(libirecovery_context) { |
| @@ -1059,7 +1073,7 @@ static irecv_error_t irecv_send_command_raw(irecv_client_t client, const char* c | |||
| 1059 | return IRECV_E_SUCCESS; | 1073 | return IRECV_E_SUCCESS; |
| 1060 | } | 1074 | } |
| 1061 | 1075 | ||
| 1062 | irecv_error_t irecv_send_command(irecv_client_t client, const char* command) { | 1076 | IRECV_API irecv_error_t irecv_send_command(irecv_client_t client, const char* command) { |
| 1063 | irecv_error_t error = 0; | 1077 | irecv_error_t error = 0; |
| 1064 | 1078 | ||
| 1065 | if (check_context(client) != IRECV_E_SUCCESS) | 1079 | if (check_context(client) != IRECV_E_SUCCESS) |
| @@ -1099,7 +1113,7 @@ irecv_error_t irecv_send_command(irecv_client_t client, const char* command) { | |||
| 1099 | return IRECV_E_SUCCESS; | 1113 | return IRECV_E_SUCCESS; |
| 1100 | } | 1114 | } |
| 1101 | 1115 | ||
| 1102 | irecv_error_t irecv_send_file(irecv_client_t client, const char* filename, int dfu_notify_finished) { | 1116 | IRECV_API irecv_error_t irecv_send_file(irecv_client_t client, const char* filename, int dfu_notify_finished) { |
| 1103 | if (check_context(client) != IRECV_E_SUCCESS) | 1117 | if (check_context(client) != IRECV_E_SUCCESS) |
| 1104 | return IRECV_E_NO_DEVICE; | 1118 | return IRECV_E_NO_DEVICE; |
| 1105 | 1119 | ||
| @@ -1150,7 +1164,7 @@ static irecv_error_t irecv_get_status(irecv_client_t client, unsigned int* statu | |||
| 1150 | return IRECV_E_SUCCESS; | 1164 | return IRECV_E_SUCCESS; |
| 1151 | } | 1165 | } |
| 1152 | 1166 | ||
| 1153 | irecv_error_t irecv_send_buffer(irecv_client_t client, unsigned char* buffer, unsigned long length, int dfu_notify_finished) { | 1167 | IRECV_API irecv_error_t irecv_send_buffer(irecv_client_t client, unsigned char* buffer, unsigned long length, int dfu_notify_finished) { |
| 1154 | irecv_error_t error = 0; | 1168 | irecv_error_t error = 0; |
| 1155 | int recovery_mode = ((client->mode != IRECV_K_DFU_MODE) && (client->mode != IRECV_K_WTF_MODE)); | 1169 | int recovery_mode = ((client->mode != IRECV_K_DFU_MODE) && (client->mode != IRECV_K_WTF_MODE)); |
| 1156 | 1170 | ||
| @@ -1287,7 +1301,7 @@ irecv_error_t irecv_send_buffer(irecv_client_t client, unsigned char* buffer, un | |||
| 1287 | return IRECV_E_SUCCESS; | 1301 | return IRECV_E_SUCCESS; |
| 1288 | } | 1302 | } |
| 1289 | 1303 | ||
| 1290 | irecv_error_t irecv_receive(irecv_client_t client) { | 1304 | IRECV_API irecv_error_t irecv_receive(irecv_client_t client) { |
| 1291 | char buffer[BUFFER_SIZE]; | 1305 | char buffer[BUFFER_SIZE]; |
| 1292 | memset(buffer, '\0', BUFFER_SIZE); | 1306 | memset(buffer, '\0', BUFFER_SIZE); |
| 1293 | 1307 | ||
| @@ -1312,7 +1326,7 @@ irecv_error_t irecv_receive(irecv_client_t client) { | |||
| 1312 | return IRECV_E_SUCCESS; | 1326 | return IRECV_E_SUCCESS; |
| 1313 | } | 1327 | } |
| 1314 | 1328 | ||
| 1315 | irecv_error_t irecv_getenv(irecv_client_t client, const char* variable, char** value) { | 1329 | IRECV_API irecv_error_t irecv_getenv(irecv_client_t client, const char* variable, char** value) { |
| 1316 | char command[256]; | 1330 | char command[256]; |
| 1317 | 1331 | ||
| 1318 | if (check_context(client) != IRECV_E_SUCCESS) | 1332 | if (check_context(client) != IRECV_E_SUCCESS) |
| @@ -1348,7 +1362,7 @@ irecv_error_t irecv_getenv(irecv_client_t client, const char* variable, char** v | |||
| 1348 | return IRECV_E_SUCCESS; | 1362 | return IRECV_E_SUCCESS; |
| 1349 | } | 1363 | } |
| 1350 | 1364 | ||
| 1351 | irecv_error_t irecv_getret(irecv_client_t client, unsigned int* value) { | 1365 | IRECV_API irecv_error_t irecv_getret(irecv_client_t client, unsigned int* value) { |
| 1352 | if (check_context(client) != IRECV_E_SUCCESS) | 1366 | if (check_context(client) != IRECV_E_SUCCESS) |
| 1353 | return IRECV_E_NO_DEVICE; | 1367 | return IRECV_E_NO_DEVICE; |
| 1354 | 1368 | ||
| @@ -1367,7 +1381,7 @@ irecv_error_t irecv_getret(irecv_client_t client, unsigned int* value) { | |||
| 1367 | return IRECV_E_SUCCESS; | 1381 | return IRECV_E_SUCCESS; |
| 1368 | } | 1382 | } |
| 1369 | 1383 | ||
| 1370 | irecv_error_t irecv_get_mode(irecv_client_t client, int* mode) { | 1384 | IRECV_API irecv_error_t irecv_get_mode(irecv_client_t client, int* mode) { |
| 1371 | if (check_context(client) != IRECV_E_SUCCESS) | 1385 | if (check_context(client) != IRECV_E_SUCCESS) |
| 1372 | return IRECV_E_NO_DEVICE; | 1386 | return IRECV_E_NO_DEVICE; |
| 1373 | 1387 | ||
| @@ -1376,7 +1390,7 @@ irecv_error_t irecv_get_mode(irecv_client_t client, int* mode) { | |||
| 1376 | return IRECV_E_SUCCESS; | 1390 | return IRECV_E_SUCCESS; |
| 1377 | } | 1391 | } |
| 1378 | 1392 | ||
| 1379 | const struct irecv_device_info* irecv_get_device_info(irecv_client_t client) | 1393 | IRECV_API const struct irecv_device_info* irecv_get_device_info(irecv_client_t client) |
| 1380 | { | 1394 | { |
| 1381 | if (check_context(client) != IRECV_E_SUCCESS) | 1395 | if (check_context(client) != IRECV_E_SUCCESS) |
| 1382 | return NULL; | 1396 | return NULL; |
| @@ -1384,7 +1398,7 @@ const struct irecv_device_info* irecv_get_device_info(irecv_client_t client) | |||
| 1384 | return &client->device_info; | 1398 | return &client->device_info; |
| 1385 | } | 1399 | } |
| 1386 | 1400 | ||
| 1387 | irecv_error_t irecv_trigger_limera1n_exploit(irecv_client_t client) { | 1401 | IRECV_API irecv_error_t irecv_trigger_limera1n_exploit(irecv_client_t client) { |
| 1388 | if (check_context(client) != IRECV_E_SUCCESS) | 1402 | if (check_context(client) != IRECV_E_SUCCESS) |
| 1389 | return IRECV_E_NO_DEVICE; | 1403 | return IRECV_E_NO_DEVICE; |
| 1390 | 1404 | ||
| @@ -1393,7 +1407,7 @@ irecv_error_t irecv_trigger_limera1n_exploit(irecv_client_t client) { | |||
| 1393 | return IRECV_E_SUCCESS; | 1407 | return IRECV_E_SUCCESS; |
| 1394 | } | 1408 | } |
| 1395 | 1409 | ||
| 1396 | irecv_error_t irecv_execute_script(irecv_client_t client, const char* script) { | 1410 | IRECV_API irecv_error_t irecv_execute_script(irecv_client_t client, const char* script) { |
| 1397 | irecv_error_t error = IRECV_E_SUCCESS; | 1411 | irecv_error_t error = IRECV_E_SUCCESS; |
| 1398 | if (check_context(client) != IRECV_E_SUCCESS) | 1412 | if (check_context(client) != IRECV_E_SUCCESS) |
| 1399 | return IRECV_E_NO_DEVICE; | 1413 | return IRECV_E_NO_DEVICE; |
| @@ -1422,7 +1436,7 @@ irecv_error_t irecv_execute_script(irecv_client_t client, const char* script) { | |||
| 1422 | return error; | 1436 | return error; |
| 1423 | } | 1437 | } |
| 1424 | 1438 | ||
| 1425 | irecv_error_t irecv_saveenv(irecv_client_t client) { | 1439 | IRECV_API irecv_error_t irecv_saveenv(irecv_client_t client) { |
| 1426 | irecv_error_t error = irecv_send_command_raw(client, "saveenv"); | 1440 | irecv_error_t error = irecv_send_command_raw(client, "saveenv"); |
| 1427 | if(error != IRECV_E_SUCCESS) { | 1441 | if(error != IRECV_E_SUCCESS) { |
| 1428 | return error; | 1442 | return error; |
| @@ -1431,7 +1445,7 @@ irecv_error_t irecv_saveenv(irecv_client_t client) { | |||
| 1431 | return IRECV_E_SUCCESS; | 1445 | return IRECV_E_SUCCESS; |
| 1432 | } | 1446 | } |
| 1433 | 1447 | ||
| 1434 | irecv_error_t irecv_setenv(irecv_client_t client, const char* variable, const char* value) { | 1448 | IRECV_API irecv_error_t irecv_setenv(irecv_client_t client, const char* variable, const char* value) { |
| 1435 | char command[256]; | 1449 | char command[256]; |
| 1436 | 1450 | ||
| 1437 | if (check_context(client) != IRECV_E_SUCCESS) | 1451 | if (check_context(client) != IRECV_E_SUCCESS) |
| @@ -1451,7 +1465,7 @@ irecv_error_t irecv_setenv(irecv_client_t client, const char* variable, const ch | |||
| 1451 | return IRECV_E_SUCCESS; | 1465 | return IRECV_E_SUCCESS; |
| 1452 | } | 1466 | } |
| 1453 | 1467 | ||
| 1454 | irecv_error_t irecv_reboot(irecv_client_t client) { | 1468 | IRECV_API irecv_error_t irecv_reboot(irecv_client_t client) { |
| 1455 | irecv_error_t error = irecv_send_command_raw(client, "reboot"); | 1469 | irecv_error_t error = irecv_send_command_raw(client, "reboot"); |
| 1456 | if(error != IRECV_E_SUCCESS) { | 1470 | if(error != IRECV_E_SUCCESS) { |
| 1457 | return error; | 1471 | return error; |
| @@ -1460,7 +1474,7 @@ irecv_error_t irecv_reboot(irecv_client_t client) { | |||
| 1460 | return IRECV_E_SUCCESS; | 1474 | return IRECV_E_SUCCESS; |
| 1461 | } | 1475 | } |
| 1462 | 1476 | ||
| 1463 | const char* irecv_strerror(irecv_error_t error) { | 1477 | IRECV_API const char* irecv_strerror(irecv_error_t error) { |
| 1464 | switch (error) { | 1478 | switch (error) { |
| 1465 | case IRECV_E_SUCCESS: | 1479 | case IRECV_E_SUCCESS: |
| 1466 | return "Command completed successfully"; | 1480 | return "Command completed successfully"; |
| @@ -1505,7 +1519,7 @@ const char* irecv_strerror(irecv_error_t error) { | |||
| 1505 | return NULL; | 1519 | return NULL; |
| 1506 | } | 1520 | } |
| 1507 | 1521 | ||
| 1508 | irecv_error_t irecv_reset_counters(irecv_client_t client) { | 1522 | IRECV_API irecv_error_t irecv_reset_counters(irecv_client_t client) { |
| 1509 | if (check_context(client) != IRECV_E_SUCCESS) | 1523 | if (check_context(client) != IRECV_E_SUCCESS) |
| 1510 | return IRECV_E_NO_DEVICE; | 1524 | return IRECV_E_NO_DEVICE; |
| 1511 | 1525 | ||
| @@ -1516,7 +1530,7 @@ irecv_error_t irecv_reset_counters(irecv_client_t client) { | |||
| 1516 | return IRECV_E_SUCCESS; | 1530 | return IRECV_E_SUCCESS; |
| 1517 | } | 1531 | } |
| 1518 | 1532 | ||
| 1519 | irecv_error_t irecv_recv_buffer(irecv_client_t client, char* buffer, unsigned long length) { | 1533 | IRECV_API irecv_error_t irecv_recv_buffer(irecv_client_t client, char* buffer, unsigned long length) { |
| 1520 | int recovery_mode = ((client->mode != IRECV_K_DFU_MODE) && (client->mode != IRECV_K_WTF_MODE)); | 1534 | int recovery_mode = ((client->mode != IRECV_K_DFU_MODE) && (client->mode != IRECV_K_WTF_MODE)); |
| 1521 | 1535 | ||
| 1522 | if (check_context(client) != IRECV_E_SUCCESS) | 1536 | if (check_context(client) != IRECV_E_SUCCESS) |
| @@ -1558,7 +1572,7 @@ irecv_error_t irecv_recv_buffer(irecv_client_t client, char* buffer, unsigned lo | |||
| 1558 | return IRECV_E_SUCCESS; | 1572 | return IRECV_E_SUCCESS; |
| 1559 | } | 1573 | } |
| 1560 | 1574 | ||
| 1561 | irecv_error_t irecv_finish_transfer(irecv_client_t client) { | 1575 | IRECV_API irecv_error_t irecv_finish_transfer(irecv_client_t client) { |
| 1562 | int i = 0; | 1576 | int i = 0; |
| 1563 | unsigned int status = 0; | 1577 | unsigned int status = 0; |
| 1564 | 1578 | ||
| @@ -1576,11 +1590,11 @@ irecv_error_t irecv_finish_transfer(irecv_client_t client) { | |||
| 1576 | return IRECV_E_SUCCESS; | 1590 | return IRECV_E_SUCCESS; |
| 1577 | } | 1591 | } |
| 1578 | 1592 | ||
| 1579 | irecv_device_t irecv_devices_get_all() { | 1593 | IRECV_API irecv_device_t irecv_devices_get_all() { |
| 1580 | return irecv_devices; | 1594 | return irecv_devices; |
| 1581 | } | 1595 | } |
| 1582 | 1596 | ||
| 1583 | irecv_error_t irecv_devices_get_device_by_client(irecv_client_t client, irecv_device_t* device) { | 1597 | IRECV_API irecv_error_t irecv_devices_get_device_by_client(irecv_client_t client, irecv_device_t* device) { |
| 1584 | int i = 0; | 1598 | int i = 0; |
| 1585 | 1599 | ||
| 1586 | *device = NULL; | 1600 | *device = NULL; |
| @@ -1599,7 +1613,7 @@ irecv_error_t irecv_devices_get_device_by_client(irecv_client_t client, irecv_de | |||
| 1599 | return IRECV_E_NO_DEVICE; | 1613 | return IRECV_E_NO_DEVICE; |
| 1600 | } | 1614 | } |
| 1601 | 1615 | ||
| 1602 | irecv_error_t irecv_devices_get_device_by_product_type(const char* product_type, irecv_device_t* device) { | 1616 | IRECV_API irecv_error_t irecv_devices_get_device_by_product_type(const char* product_type, irecv_device_t* device) { |
| 1603 | int i = 0; | 1617 | int i = 0; |
| 1604 | 1618 | ||
| 1605 | *device = NULL; | 1619 | *device = NULL; |
| @@ -1614,7 +1628,7 @@ irecv_error_t irecv_devices_get_device_by_product_type(const char* product_type, | |||
| 1614 | return IRECV_E_NO_DEVICE; | 1628 | return IRECV_E_NO_DEVICE; |
| 1615 | } | 1629 | } |
| 1616 | 1630 | ||
| 1617 | irecv_error_t irecv_devices_get_device_by_hardware_model(const char* hardware_model, irecv_device_t* device) { | 1631 | IRECV_API irecv_error_t irecv_devices_get_device_by_hardware_model(const char* hardware_model, irecv_device_t* device) { |
| 1618 | int i = 0; | 1632 | int i = 0; |
| 1619 | 1633 | ||
| 1620 | *device = NULL; | 1634 | *device = NULL; |
| @@ -1635,7 +1649,7 @@ irecv_error_t irecv_devices_get_device_by_hardware_model(const char* hardware_mo | |||
| 1635 | return IRECV_E_NO_DEVICE; | 1649 | return IRECV_E_NO_DEVICE; |
| 1636 | } | 1650 | } |
| 1637 | 1651 | ||
| 1638 | irecv_client_t irecv_reconnect(irecv_client_t client, int initial_pause) { | 1652 | IRECV_API irecv_client_t irecv_reconnect(irecv_client_t client, int initial_pause) { |
| 1639 | irecv_error_t error = 0; | 1653 | irecv_error_t error = 0; |
| 1640 | irecv_client_t new_client = NULL; | 1654 | irecv_client_t new_client = NULL; |
| 1641 | irecv_event_cb_t progress_callback = client->progress_callback; | 1655 | irecv_event_cb_t progress_callback = client->progress_callback; |
