forked from Xmister/android_bootable_recovery
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommon.h
175 lines (152 loc) · 5.88 KB
/
common.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef RECOVERY_COMMON_H
#define RECOVERY_COMMON_H
#include <stdio.h>
// Initialize the graphics system.
void ui_init();
// Use KEY_* codes from <linux/input.h> or KEY_DREAM_* from "minui/minui.h".
int ui_wait_key(); // waits for a key/button press, returns the code
int ui_key_pressed(int key); // returns >0 if the code is currently pressed
int ui_text_visible(); // returns >0 if text log is currently visible
void ui_clear_key_queue();
void ui_menu_offset_inc(); //for horizontal scrolling
void ui_menu_offset_dec();
// Write a message to the on-screen log shown with Alt-L (also to stderr).
// The screen is small, and users may need to report these messages to support,
// so keep the output short and not too cryptic.
void ui_print(const char *fmt, ...);
void ui_reset_text_col();
void ui_set_show_text(int value);
// Display some header text followed by a menu of items, which appears
// at the top of the screen (in place of any scrolling ui_print()
// output, if necessary).
int ui_start_menu(char** headers, char** items);
// Set the menu highlight to the given index, and return it (capped to
// the range [0..numitems).
int ui_menu_select(int sel);
// End menu mode, resetting the text overlay so that ui_print()
// statements will be displayed.
void ui_end_menu();
int ui_get_showing_back_button();
void ui_set_showing_back_button(int showBackButton);
// Set the icon (normally the only thing visible besides the progress bar).
enum {
BACKGROUND_ICON_NONE,
BACKGROUND_ICON_INSTALLING,
BACKGROUND_ICON_ERROR,
BACKGROUND_ICON_FIRMWARE_INSTALLING,
BACKGROUND_ICON_FIRMWARE_ERROR,
NUM_BACKGROUND_ICONS
};
void ui_set_background(int icon);
// Get a malloc'd copy of the screen image showing (only) the specified icon.
// Also returns the width, height, and bits per pixel of the returned image.
// TODO: Use some sort of "struct Bitmap" here instead of all these variables?
char *ui_copy_image(int icon, int *width, int *height, int *bpp);
// Show a progress bar and define the scope of the next operation:
// portion - fraction of the progress bar the next operation will use
// seconds - expected time interval (progress bar moves at this minimum rate)
void ui_show_progress(float portion, int seconds);
void ui_set_progress(float fraction); // 0.0 - 1.0 within the defined scope
// Default allocation of progress bar segments to operations
static const int VERIFICATION_PROGRESS_TIME = 60;
static const float VERIFICATION_PROGRESS_FRACTION = 0.25;
static const float DEFAULT_FILES_PROGRESS_FRACTION = 0.4;
static const float DEFAULT_IMAGE_PROGRESS_FRACTION = 0.1;
// Show a rotating "barberpole" for ongoing operations. Updates automatically.
void ui_show_indeterminate_progress();
// Hide and reset the progress bar.
void ui_reset_progress();
#define LOGE(...) ui_print("E:" __VA_ARGS__)
#define LOGW(...) fprintf(stderr, "W:" __VA_ARGS__)
#define LOGI(...) fprintf(stderr, "I:" __VA_ARGS__)
#if 0
#define LOGV(...) fprintf(stderr, "V:" __VA_ARGS__)
#define LOGD(...) fprintf(stderr, "D:" __VA_ARGS__)
#else
#define LOGV(...) do {} while (0)
#define LOGD(...) do {} while (0)
#endif
// Dream-specific key codes by LeshaK
// Modify for Samsung Spica i5700
#define KEY_DREAM_HOME 227 // = KEY_HOME
#define KEY_DREAM_RED 249 // = KEY_END
#define KEY_DREAM_VOLUMEDOWN 209 // = KEY_VOLUMEDOWN
#define KEY_DREAM_VOLUMEUP 201 // = KEY_VOLUMEUP
#define KEY_DREAM_SYM 127 // = KEY_COMPOSE
#define KEY_DREAM_MENU 211 // = KEY_MENU
#define KEY_DREAM_BACK 212 // = KEY_BACK
#define KEY_DREAM_FOCUS 211 // = KEY_HP (light touch on camera)
#define KEY_DREAM_CAMERA 250 // = KEY_CAMERA
#define KEY_DREAM_AT 215 // = KEY_EMAIL
#define KEY_DREAM_GREEN 231
#define KEY_DREAM_FATTOUCH 258 // = BTN_2 ???
#define KEY_DREAM_BALL 272 // = BTN_MOUSE
#define KEY_DREAM_TOUCH 330 // = BTN_TOUCH
// For Samsung by LeshaK
#define KEY_I5700_CENTER 204
#define KEY_I5700_DOWN 210
#define KEY_I5700_UP 202
#define KEY_I5700_LEFT 218 //For horizontal scrolling
#define KEY_I5700_RIGHT 203
//Redefine defaults
#undef KEY_HOME
#define KEY_HOME KEY_DREAM_HOME
#undef KEY_END
#define KEY_END KEY_DREAM_RED
#undef KEY_VOLUMEDOWN
#define KEY_VOLUMEDOWN KEY_DREAM_VOLUMEDOWN
#undef KEY_VOLUMEUP
#define KEY_VOLUMEUP KEY_DREAM_VOLUMEUP
#undef KEY_COMPOSE
#define KEY_COMPOSE KEY_DREAM_SYM
#undef KEY_MENU
#define KEY_MENU KEY_DREAM_MENU
#undef KEY_BACK
#define KEY_BACK KEY_DREAM_BACK
#undef KEY_HP
#define KEY_HP KEY_DREAM_FOCUS
#undef KEY_CAMERA
#define KEY_CAMERA KEY_DREAM_CAMERA
#undef KEY_EMAIL
#define KEY_EMAIL KEY_DREAM_AT
#undef BTN_2
#define BTN_2 KEY_DREAM_FATTOUCH
#undef BTN_MOUSE
#define BTN_MOUSE KEY_DREAM_BALL
#undef BTN_TOUCH
#define BTN_TOUCH KEY_DREAM_TOUCH
#undef KEY_DOWN
#define KEY_DOWN KEY_I5700_DOWN
#undef KEY_UP
#define KEY_UP KEY_I5700_UP
#undef KEY_LEFT
#define KEY_LEFT KEY_I5700_LEFT
#undef KEY_RIGHT
#define KEY_RIGHT KEY_I5700_RIGHT
#undef KEY_SEND
#define KEY_SEND KEY_I5700_CENTER
#define STRINGIFY(x) #x
#define EXPAND(x) STRINGIFY(x)
//#define DEBUG 1
#ifndef WIFEXITED
#define WIFEXITED(status) (((status) & 0xff) == 0)
#endif /* !defined WIFEXITED */
#ifndef WEXITSTATUS
#define WEXITSTATUS(status) (((status) >> 8) & 0xff)
#endif /* !defined WEXITSTATUS */
#endif // RECOVERY_COMMON_H