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