xref: /rkdeveloptool/DefineHeader.h (revision 76af099afcbcafd97801028de2ba3421d3c12865)
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