1 #ifndef DEFINE_HEADER 2 #define DEFINE_HEADER 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <stdarg.h> 6 #include <string.h> 7 #include <sys/stat.h> 8 #include <dirent.h> 9 #include <time.h> 10 #include <unistd.h> 11 #include <iconv.h> 12 #include <wchar.h> 13 #include <errno.h> 14 #include <pthread.h> 15 #include <libusb.h> 16 17 #include "Property.hpp" 18 #include <list> 19 #include <vector> 20 #include <set> 21 #include <string> 22 #include <sstream> 23 #include <algorithm> 24 using namespace std; 25 typedef unsigned char BYTE, *PBYTE; 26 typedef unsigned char UCHAR; 27 typedef unsigned short WCHAR; 28 typedef unsigned short USHORT; 29 typedef unsigned int UINT; 30 typedef unsigned int DWORD; 31 32 typedef enum{ 33 RKNONE_DEVICE = 0, 34 RK27_DEVICE = 0x10, 35 RKCAYMAN_DEVICE, 36 RK28_DEVICE = 0x20, 37 RK281X_DEVICE, 38 RKPANDA_DEVICE, 39 RKNANO_DEVICE = 0x30, 40 RKSMART_DEVICE, 41 RKCROWN_DEVICE = 0x40, 42 RK29_DEVICE = 0x50, 43 RK292X_DEVICE, 44 RK30_DEVICE = 0x60, 45 RK30B_DEVICE, 46 RK31_DEVICE = 0x70, 47 RK32_DEVICE = 0x80 48 } ENUM_RKDEVICE_TYPE; 49 typedef enum{ 50 RK_OS = 0, 51 ANDROID_OS = 0x1 52 } ENUM_OS_TYPE; 53 54 typedef enum{ 55 RKUSB_NONE = 0x0, 56 RKUSB_MASKROM = 0x01, 57 RKUSB_LOADER = 0x02, 58 RKUSB_MSC = 0x04 59 } ENUM_RKUSB_TYPE; 60 typedef enum{ 61 ENTRY471 = 1, 62 ENTRY472 = 2, 63 ENTRYLOADER = 4 64 } ENUM_RKBOOTENTRY; 65 66 #pragma pack(1) 67 typedef struct{ 68 USHORT usYear; 69 BYTE ucMonth; 70 BYTE ucDay; 71 BYTE ucHour; 72 BYTE ucMinute; 73 BYTE ucSecond; 74 } STRUCT_RKTIME, *PSTRUCT_RKTIME; 75 76 typedef struct{ 77 char szItemName[20]; 78 char szItemValue[256]; 79 } STRUCT_CONFIG_ITEM, *PSTRUCT_CONFIG_ITEM; 80 typedef struct _STRUCT_RKDEVICE_DESC{ 81 USHORT usVid; 82 USHORT usPid; 83 USHORT usbcdUsb; 84 UINT uiLocationID; 85 ENUM_RKUSB_TYPE emUsbType; 86 ENUM_RKDEVICE_TYPE emDeviceType; 87 void *pUsbHandle; 88 } STRUCT_RKDEVICE_DESC, *PSTRUCT_RKDEVICE_DESC; 89 #pragma pack() 90 typedef list<STRUCT_RKDEVICE_DESC> RKDEVICE_DESC_SET; 91 typedef RKDEVICE_DESC_SET::iterator device_list_iter; 92 typedef vector<string> STRING_VECTOR; 93 typedef vector<UINT> UINT_VECTOR; 94 typedef vector<STRUCT_CONFIG_ITEM> CONFIG_ITEM_VECTOR; 95 typedef enum{ 96 TESTDEVICE_PROGRESS, 97 DOWNLOADIMAGE_PROGRESS, 98 CHECKIMAGE_PROGRESS, 99 TAGBADBLOCK_PROGRESS, 100 TESTBLOCK_PROGRESS, 101 ERASEFLASH_PROGRESS, 102 ERASESYSTEM_PROGRESS, 103 LOWERFORMAT_PROGRESS, 104 ERASEUSERDATA_PROGRESS 105 } ENUM_PROGRESS_PROMPT; 106 107 typedef enum{ 108 CALL_FIRST, 109 CALL_MIDDLE, 110 CALL_LAST 111 } ENUM_CALL_STEP; 112 113 typedef void (*ProgressPromptCB)(DWORD deviceLayer, ENUM_PROGRESS_PROMPT promptID, long long totalValue, long long currentValue, ENUM_CALL_STEP emCall); 114 115 bool WideStringToString(wchar_t *pszSrc, char *&pszDest); 116 bool StringToWideString(char *pszSrc, wchar_t *&pszDest); 117 #endif