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