inkview_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.55.1 */
2
3#[repr(C)]
4#[derive(Default)]
5pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
6impl<T> __IncompleteArrayField<T> {
7    #[inline]
8    pub const fn new() -> Self {
9        __IncompleteArrayField(::core::marker::PhantomData, [])
10    }
11    #[inline]
12    pub fn as_ptr(&self) -> *const T {
13        self as *const _ as *const T
14    }
15    #[inline]
16    pub fn as_mut_ptr(&mut self) -> *mut T {
17        self as *mut _ as *mut T
18    }
19    #[inline]
20    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
21        ::core::slice::from_raw_parts(self.as_ptr(), len)
22    }
23    #[inline]
24    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
25        ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
26    }
27}
28impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
29    fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30        fmt.write_str("__IncompleteArrayField")
31    }
32}
33pub const FLASHDIR: &'static [u8; 10usize] = b"/mnt/ext1\0";
34pub const SDCARDDIR: &'static [u8; 10usize] = b"/mnt/ext2\0";
35pub const USBDIR: &'static [u8; 10usize] = b"/mnt/ext3\0";
36pub const SYSTEMDATA: &'static [u8; 9usize] = b"/ebrmain\0";
37pub const USERDATA: &'static [u8; 17usize] = b"/mnt/ext1/system\0";
38pub const USERDATA2: &'static [u8; 17usize] = b"/mnt/ext2/system\0";
39pub const TEMPDIR: &'static [u8; 5usize] = b"/tmp\0";
40pub const SECUREDIR: &'static [u8; 12usize] = b"/mnt/secure\0";
41pub const VARRUNDIR: &'static [u8; 9usize] = b"/var/run\0";
42pub const SYSTEMFONTDIR: &'static [u8; 15usize] = b"/ebrmain/fonts\0";
43pub const USERFONTDIR: &'static [u8; 23usize] = b"/mnt/ext1/system/fonts\0";
44pub const TEMPFONTPATH: &'static [u8; 11usize] = b"/tmp/fonts\0";
45pub const PHOTOTEMPDIR: &'static [u8; 11usize] = b"/tmp/photo\0";
46pub const USERPROFILES: &'static [u8; 26usize] = b"/mnt/ext1/system/profiles\0";
47pub const USERPROFILES2: &'static [u8; 26usize] = b"/mnt/ext2/system/profiles\0";
48pub const CURRENTPROFILE: &'static [u8; 35usize] = b"/mnt/ext1/system/profiles/.current\0";
49pub const LASTPROFILE: &'static [u8; 32usize] = b"/mnt/ext1/system/profiles/.last\0";
50pub const SALVAGEPROFILES: &'static [u8; 35usize] = b"/mnt/ext1/system/profiles/.salvage\0";
51pub const CONFIGPATH: &'static [u8; 24usize] = b"/mnt/ext1/system/config\0";
52pub const STATEPATH: &'static [u8; 23usize] = b"/mnt/ext1/system/state\0";
53pub const SYSTEMTHEMESPATH: &'static [u8; 16usize] = b"/ebrmain/themes\0";
54pub const USERTHEMESPATH: &'static [u8; 24usize] = b"/mnt/ext1/system/themes\0";
55pub const CUSTOMRESOURCEPATH: &'static [u8; 27usize] = b"/mnt/ext1/system/resources\0";
56pub const GLOBALCONFIGFILE: &'static [u8; 35usize] = b"/mnt/ext1/system/config/global.cfg\0";
57pub const NETWORKCONFIGFILE: &'static [u8; 36usize] = b"/mnt/ext1/system/config/network.cfg\0";
58pub const TSCALDATA: &'static [u8; 32usize] = b"/mnt/ext1/system/config/tsc.dat\0";
59pub const TSCALDATA2: &'static [u8; 13usize] = b"/tmp/tsc.dat\0";
60pub const SYSTEMLANGPATH: &'static [u8; 18usize] = b"/ebrmain/language\0";
61pub const USERLANGPATH: &'static [u8; 26usize] = b"/mnt/ext1/system/language\0";
62pub const SYSTEMKBDPATH: &'static [u8; 27usize] = b"/ebrmain/language/keyboard\0";
63pub const USERKBDPATH: &'static [u8; 35usize] = b"/mnt/ext1/system/language/keyboard\0";
64pub const SYSTEMDICTPATH: &'static [u8; 22usize] = b"/ebrmain/dictionaries\0";
65pub const SECUREDICTPATH: &'static [u8; 25usize] = b"/mnt/secure/dictionaries\0";
66pub const USERDICTPATH1: &'static [u8; 30usize] = b"/mnt/ext1/system/dictionaries\0";
67pub const USERDICTPATH2: &'static [u8; 30usize] = b"/mnt/ext2/system/dictionaries\0";
68pub const SYSTEMBOOTLOGOPATH: &'static [u8; 23usize] = b"/ebrmain/logo/bootlogo\0";
69pub const SYSTEMOFFLOGOPATH: &'static [u8; 22usize] = b"/ebrmain/logo/offlogo\0";
70pub const USERBOOTLOGOPATH: &'static [u8; 31usize] = b"/mnt/ext1/system/logo/bootlogo\0";
71pub const USEROFFLOGOPATH: &'static [u8; 30usize] = b"/mnt/ext1/system/logo/offlogo\0";
72pub const USERCOMPATLOGOPATH: &'static [u8; 22usize] = b"/mnt/ext1/system/logo\0";
73pub const NOTESPATH: &'static [u8; 16usize] = b"/mnt/ext1/notes\0";
74pub const NOTESPATH2: &'static [u8; 16usize] = b"/mnt/ext2/notes\0";
75pub const GAMEPATH: &'static [u8; 23usize] = b"/mnt/ext1/applications\0";
76pub const OLDGAMEPATH: &'static [u8; 16usize] = b"/mnt/ext1/games\0";
77pub const USERAPPDIR: &'static [u8; 21usize] = b"/mnt/ext1/system/bin\0";
78pub const CACHEPATH: &'static [u8; 23usize] = b"/mnt/ext1/system/cache\0";
79pub const BACKUPDIR: &'static [u8; 17usize] = b"/mnt/ext2/backup\0";
80pub const USERBOOKSHELF: &'static [u8; 35usize] = b"/mnt/ext1/system/bin/bookshelf.app\0";
81pub const SYSTEMBOOKSHELF: &'static [u8; 27usize] = b"/ebrmain/bin/bookshelf.app\0";
82pub const USERMPD: &'static [u8; 29usize] = b"/mnt/ext1/system/bin/mpd.app\0";
83pub const SYSTEMMPD: &'static [u8; 21usize] = b"/ebrmain/bin/mpd.app\0";
84pub const OBREEYSYNC_APP_PATH: &'static [u8; 28usize] = b"/ebrmain/bin/obreeysync.app\0";
85pub const READER_CONTROLLER_APP_PATH: &'static [u8; 35usize] =
86    b"/ebrmain/bin/reader_controller.app\0";
87pub const DB_SERVER_APP_PATH: &'static [u8; 27usize] = b"/ebrmain/bin/db-server.app\0";
88pub const READER_APP_PATH: &'static [u8; 29usize] = b"/ebrmain/bin/eink-reader.app\0";
89pub const READER_CACHE_APP_PATH: &'static [u8; 35usize] = b"/ebrmain/bin/eink-cache-reader.app\0";
90pub const OBREEYSYNC_V2_APP_PATH: &'static [u8; 32usize] = b"/ebrmain/bin/universal_sync.app\0";
91pub const OBREEYSOCIAL_APP_PATH: &'static [u8; 30usize] = b"/ebrmain/bin/obreeysocial.app\0";
92pub const USAGE_STAT_APP_PATH: &'static [u8; 28usize] = b"/ebrmain/bin/usage_stat.app\0";
93pub const CONTROL_PANEL_APP_PATH: &'static [u8; 35usize] = b"/ebrmain/bin/control_panel_mgr.app\0";
94pub const USEREXPLORER: &'static [u8; 34usize] = b"/mnt/ext1/system/bin/explorer.app\0";
95pub const SYSTEMEXPLORER: &'static [u8; 26usize] = b"/ebrmain/bin/explorer.app\0";
96pub const USERTASKMGR: &'static [u8; 33usize] = b"/mnt/ext1/system/bin/taskmgr.app\0";
97pub const SYSTEMTASKMGR: &'static [u8; 25usize] = b"/ebrmain/bin/taskmgr.app\0";
98pub const STATECLEANER: &'static [u8; 27usize] = b"/ebrmain/bin/cleanstate.sh\0";
99pub const BACKUPSCRIPT: &'static [u8; 23usize] = b"/ebrmain/bin/backup.sh\0";
100pub const RESTORESCRIPT: &'static [u8; 24usize] = b"/ebrmain/bin/restore.sh\0";
101pub const NETAGENT: &'static [u8; 22usize] = b"/ebrmain/bin/netagent\0";
102pub const BOOKLANDAPP: &'static [u8; 26usize] = b"/ebrmain/bin/bookland.app\0";
103pub const USERMPLAYER: &'static [u8; 32usize] = b"/mnt/ext1/system/bin/mplayer.so\0";
104pub const USERBOOKINFO: &'static [u8; 33usize] = b"/mnt/ext1/system/bin/bookinfo.so\0";
105pub const POCKETBOOKSIG: &'static [u8; 29usize] = b"/mnt/ext1/system/.pocketbook\0";
106pub const USERSCANNER: &'static [u8; 33usize] = b"/mnt/ext1/system/bin/scanner.app\0";
107pub const SYSTEMSCANNER: &'static [u8; 25usize] = b"/ebrmain/bin/scanner.app\0";
108pub const FRONTLIGHT_APP: &'static [u8; 16usize] = b"front-light.app\0";
109pub const USERFRONTLIGHT: &'static [u8; 37usize] = b"/mnt/ext1/system/bin/front-light.app\0";
110pub const SYSTEMSFRONTLIGHT: &'static [u8; 29usize] = b"/ebrmain/bin/front-light.app\0";
111pub const LASTOPENBOOKS: &'static [u8; 36usize] = b"/mnt/ext1/system/state/lastopen.txt\0";
112pub const CURRENTBOOK_SAVE: &'static [u8; 31usize] = b"/mnt/ext1/system/state/current\0";
113pub const FAVORITES: &'static [u8; 26usize] = b"/mnt/ext1/system/favorite\0";
114pub const CURRENTBOOK: &'static [u8; 14usize] = b"/tmp/.current\0";
115pub const BOOKSHELFSTATE: &'static [u8; 14usize] = b"/tmp/.bsstate\0";
116pub const BOOKSHELFSTATE_NV: &'static [u8; 32usize] = b"/mnt/ext1/system/state/.bsstate\0";
117pub const HISTORYFILE: &'static [u8; 17usize] = b"/tmp/history.txt\0";
118pub const DICKEYBOARD: &'static [u8; 20usize] = b"/tmp/dictionary.kbd\0";
119pub const PLAYLISTFILE: &'static [u8; 18usize] = b"/tmp/playlist.pls\0";
120pub const NETAGENTLOG: &'static [u8; 18usize] = b"/tmp/netagent.log\0";
121pub const ADOBEPATH: &'static [u8; 34usize] = b"/mnt/ext1/.adobe-digital-editions\0";
122pub const ADOBEPATH2: &'static [u8; 34usize] = b"/mnt/ext2/.adobe-digital-editions\0";
123pub const HANDLERSPATH: &'static [u8; 37usize] = b"/mnt/ext1/system/config/handlers.cfg\0";
124pub const URLHISTORY: &'static [u8; 38usize] = b"/mnt/ext1/system/cache/urlhistory.txt\0";
125pub const WEBCACHE: &'static [u8; 14usize] = b"/tmp/webcache\0";
126pub const WEBCACHEINDEX: &'static [u8; 20usize] = b"/tmp/webcache/index\0";
127pub const WIDGETSCONFIG: &'static [u8; 32usize] = b"/mnt/ext1/system/config/widgets\0";
128pub const WIDGETSOPEN: &'static [u8; 41usize] = b"/mnt/ext1/system/config/widgets/open.cfg\0";
129pub const SWUPDATESTATUS: &'static [u8; 24usize] = b"/mnt/secure/swupdate.db\0";
130pub const TASKINFOPATH: &'static [u8; 14usize] = b"/var/run/task\0";
131pub const DOWNLOADFOLDER: &'static [u8; 20usize] = b"/mnt/ext1/Downloads\0";
132pub const CERTIFICATESFOLDER: &'static [u8; 30usize] = b"/mnt/ext1/system/Certificates\0";
133pub const PROXYCONFIGFILE: &'static [u8; 15usize] = b"/var/etc/proxy\0";
134pub const AUTO_CONNECT_APP: &'static [u8; 30usize] = b"/ebrmain/bin/auto_connect.app\0";
135pub const SILENT_CONNECT_CFG: &'static [u8; 46usize] =
136    b"/mnt/ext1/system/config/silent_connection.cfg\0";
137pub const SOCIAL_DIRECTORY: &'static [u8; 33usize] = b"/mnt/ext1/system/config/readrate\0";
138pub const SOCIAL_PENDING_ACTIONS_FILE: &'static [u8; 52usize] =
139    b"/mnt/ext1/system/config/readrate/pending_action.dat\0";
140pub const SOCIALCONFIG: &'static [u8; 44usize] = b"/mnt/ext1/system/config/readrate/social.cfg\0";
141pub const UNIVERSAL_SYNC_DIRECTORY: &'static [u8; 39usize] =
142    b"/mnt/ext1/system/config/universal_sync\0";
143pub const DROPBOX_DIRECTORY: &'static [u8; 32usize] = b"/mnt/ext1/system/config/dropbox\0";
144pub const PBCLOUD_CONFIG_FILE: &'static [u8; 36usize] = b"/mnt/ext1/system/config/pbcloud.cfg\0";
145pub const DEMO_APP_PATH: &'static [u8; 27usize] = b"/ebrmain/bin/picviewer.app\0";
146pub const DEMO_IMAGES_PATH: &'static [u8; 22usize] = b"/mnt/ext1/system/demo\0";
147pub const CHECKUPDATE_INFO_PATH: &'static [u8; 16usize] = b"/tmp/newsw.info\0";
148pub const DEVICE_VARIABLE_CFG: &'static [u8; 23usize] = b"/mnt/secure/device.cfg\0";
149pub const CONFIGURED_DEVICE_CFG: &'static [u8; 20usize] = b"/var/run/device.cfg\0";
150pub const LOGO_APP_PATH: &'static [u8; 32usize] = b"/ebrmain/bin/power_off_logo.app\0";
151pub const BROWSER_FOR_AUTH: &'static [u8; 25usize] = b"/ebrmain/bin/browser.app\0";
152pub const READER_MANAGER_SOCKET_NAME: &'static [u8; 28usize] = b"\0reader_manager_socket_name\0";
153pub const READER_CACHE_SOCKET_NAME: &'static [u8; 26usize] = b"\0reader_cache_socket_name\0";
154pub const PROFILE_LOCAL: i32 = 1;
155pub const PROFILE_SDCARD: i32 = 2;
156pub const SYSTEMDEPTH: i32 = 8;
157pub const MAXMSGSIZE: i32 = 65520;
158pub const BLACK: i32 = 0;
159pub const DGRAY: i32 = 5592405;
160pub const LGRAY: i32 = 11184810;
161pub const WHITE: i32 = 16777215;
162pub const ITEM_HEADER: i32 = 1;
163pub const ITEM_ACTIVE: i32 = 2;
164pub const ITEM_INACTIVE: i32 = 3;
165pub const ITEM_SUBMENU: i32 = 5;
166pub const ITEM_SEPARATOR: i32 = 6;
167pub const ITEM_BULLET: i32 = 7;
168pub const ITEM_TYPEMASK: i32 = 31;
169pub const ITEM_HIDDEN: i32 = 128;
170pub const ITEM_OLDMENU: i32 = 32768;
171pub const ITEM_ALTSTYLE: i32 = 64;
172pub const KBD_NORMAL: i32 = 0;
173pub const KBD_ENTEXT: i32 = 1;
174pub const KBD_PHONE: i32 = 2;
175pub const KBD_NUMERIC: i32 = 4;
176pub const KBD_IPADDR: i32 = 5;
177pub const KBD_FILENAME: i32 = 6;
178pub const KBD_URL: i32 = 7;
179pub const KBD_DATE: i32 = 8;
180pub const KBD_TIME: i32 = 9;
181pub const KBD_DATETIME: i32 = 10;
182pub const KBD_HEX: i32 = 11;
183pub const KBD_HOURS: i32 = 12;
184pub const KBD_UPPER: i32 = 16;
185pub const KBD_LOWER: i32 = 32;
186pub const KBD_FIRSTUPPER: i32 = 48;
187pub const KBD_PASSWORD: i32 = 256;
188pub const KBD_NOSELECT: i32 = 512;
189pub const KBD_SCREENTOP: i32 = 1024;
190pub const KBD_NOHEADER: i32 = 2048;
191pub const KBD_NOEVTSHOW: i32 = 4096;
192pub const KBD_SENDKEYBOARDSTATEEVENTS: i32 = 8192;
193pub const KBD_NOTOUCH: i32 = 16384;
194pub const KBD_PASSEVENTS: i32 = 32768;
195pub const KBD_NOUPDATE_AFTER_CLOSE: i32 = 65536;
196pub const KBD_EN_DEFAULT: i32 = 131072;
197pub const KBD_NOUPDATE_AFTER_OPEN: i32 = 262144;
198pub const KBD_NO_SELFCLOSE_ON_OK: i32 = 524288;
199pub const KBD_CUSTOM_ENTER_KEY: i32 = 1048576;
200pub const KBD_MARKED_ENTER_KEY: i32 = 2097152;
201pub const KBD_PASSWORD_WIFI: i32 = 4194304;
202pub const KBD_NEXT: i32 = 8388608;
203pub const NO_DISMISS: i32 = 32768;
204pub const WITH_SIZE: i32 = 1;
205pub const LIST_BEGINPAINT: i32 = 1;
206pub const LIST_PAINT: i32 = 2;
207pub const LIST_ENDPAINT: i32 = 3;
208pub const LIST_OPEN: i32 = 4;
209pub const LIST_MENU: i32 = 5;
210pub const LIST_DELETE: i32 = 6;
211pub const LIST_EXIT: i32 = 7;
212pub const LIST_ORIENTATION: i32 = 8;
213pub const LIST_POINTER: i32 = 9;
214pub const LIST_INFO: i32 = 11;
215pub const LIST_SCROLL: i32 = 12;
216pub const LISTFLAG_SCROLL: i32 = 1073741824;
217pub const BMK_CLOSED: i32 = -1;
218pub const BMK_SELECTED: i32 = 1;
219pub const BMK_ADDED: i32 = 2;
220pub const BMK_REMOVED: i32 = 3;
221pub const BMK_PAINT: i32 = 4;
222pub const CFG_TEXT: i32 = 1;
223pub const CFG_CHOICE: i32 = 2;
224pub const CFG_INDEX: i32 = 3;
225pub const CFG_TIME: i32 = 4;
226pub const CFG_FONT: i32 = 5;
227pub const CFG_FONTFACE: i32 = 6;
228pub const CFG_INFO: i32 = 7;
229pub const CFG_NUMBER: i32 = 8;
230pub const CFG_ENTEXT: i32 = 9;
231pub const CFG_PASSWORD: i32 = 10;
232pub const CFG_IPADDR: i32 = 11;
233pub const CFG_URL: i32 = 12;
234pub const CFG_PHONE: i32 = 13;
235pub const CFG_ACTIONS: i32 = 14;
236pub const CFG_CHOICE_SPECIAL_FONT: i32 = 15;
237pub const CFG_DIRECTORY: i32 = 16;
238pub const CFG_HOURS: i32 = 17;
239pub const CFG_CHECKBOX: i32 = 18;
240pub const CFG_SUBMENU_ACTION: i32 = 29;
241pub const CFG_CUSTOM: i32 = 30;
242pub const CFG_SUBMENU: i32 = 31;
243pub const CFG_MASK: i32 = 127;
244pub const CFG_FLAG_MASK: i32 = -128;
245pub const CFG_HIDDEN: i32 = 128;
246pub const CFG_READONLY: i32 = 256;
247pub const CFG_BSCSPEC: i32 = 512;
248pub const ALLTASKS: i32 = -1;
249pub const MAINTASK: i32 = -2;
250pub const OTHERTASKS: i32 = -3;
251pub const THISTASK: i32 = -4;
252pub const ACTIVETASK: i32 = -5;
253pub const MPLAYERTASK: i32 = -6;
254pub const DICTIONARYTASK: i32 = -7;
255pub const ALLSUBTASKS: i32 = -1;
256pub const CURRENTSUBTASK: i32 = -6;
257pub const TASK_HIDDEN: i32 = 1;
258pub const TASK_COPYLASTFB: i32 = 2;
259pub const TASK_NOUPDATEONFOCUS: i32 = 4;
260pub const TASK_SINGLEINSTANCE: i32 = 8;
261pub const TASK_SPYEVENTS: i32 = 16;
262pub const TASK_OUTOFSTACK: i32 = 32;
263pub const TASK_NOFORCEDKILL: i32 = 64;
264pub const TASK_MAKEACTIVE: i32 = 128;
265pub const TASK_GROUP1: i32 = 256;
266pub const TASK_GROUP2: i32 = 512;
267pub const TASK_OOMPROOF: i32 = 16384;
268pub const TASK_AUTORESTART: i32 = 32768;
269pub const TASK_DONTSENDTASKMSG: i32 = 65536;
270pub const TASK_DONTCHANGE: u32 = 4294967295;
271pub const TASK_BACKGROUND: i32 = 37;
272pub const TASK_NOHANDLER: i32 = 65573;
273pub const RQL_ADD: i32 = 1;
274pub const RQL_REPLACE: i32 = 2;
275pub const RQL_ADDIFNONE: i32 = 3;
276pub const RQL_REMOVE: i32 = 4;
277pub const ALIGN_LEFT: i32 = 1;
278pub const ALIGN_CENTER: i32 = 2;
279pub const ALIGN_RIGHT: i32 = 4;
280pub const ALIGN_FIT: i32 = 8;
281pub const VALIGN_TOP: i32 = 16;
282pub const VALIGN_MIDDLE: i32 = 32;
283pub const VALIGN_BOTTOM: i32 = 64;
284pub const ROTATE: i32 = 128;
285pub const HYPHENS: i32 = 256;
286pub const DOTS: i32 = 512;
287pub const RTLAUTO: i32 = 1024;
288pub const UNDERLINE: i32 = 2048;
289pub const STRETCH: i32 = 4096;
290pub const TILE: i32 = 8192;
291pub const TO_UPPER: i32 = 16384;
292pub const FR_CLOSE: i32 = 1;
293pub const FR_MOVEUP: i32 = 2;
294pub const FR_MOVEDOWN: i32 = 4;
295pub const FR_DICTIONARY: i32 = 67108864;
296pub const FR_NOMARGIN: i32 = 134217728;
297pub const FR_OVERLAP: i32 = 268435456;
298pub const FR_HEADER: i32 = 536870912;
299pub const FR_UPDATE: i32 = 1073741824;
300pub const FR_INFO: i32 = 65536;
301pub const FR_WARNING: i32 = 131072;
302pub const FR_ERROR: i32 = 196608;
303pub const FR_DIALOG: i32 = 262144;
304pub const FR_APP: i32 = 327680;
305pub const ARROW_LEFT: i32 = 1;
306pub const ARROW_RIGHT: i32 = 2;
307pub const ARROW_UP: i32 = 3;
308pub const ARROW_DOWN: i32 = 4;
309pub const SYMBOL_OK: i32 = 5;
310pub const SYMBOL_PAUSE: i32 = 6;
311pub const SYMBOL_BULLET: i32 = 7;
312pub const ARROW_UPDOWN: i32 = 8;
313pub const SYMBOL_MENU: i32 = 9;
314pub const IMAGE_BW: i32 = 1;
315pub const IMAGE_RGB: i32 = 24;
316pub const ROTATE0: i32 = 0;
317pub const ROTATE90: i32 = 1;
318pub const ROTATE270: i32 = 2;
319pub const ROTATE180: i32 = 3;
320pub const XMIRROR: i32 = 4;
321pub const YMIRROR: i32 = 8;
322pub const A2DITHER: i32 = 16;
323pub const DITHER_THRESHOLD: i32 = 0;
324pub const DITHER_PATTERN: i32 = 1;
325pub const DITHER_DIFFUSION: i32 = 2;
326pub const QN_X: i32 = 4096;
327pub const QN_Y: i32 = 8192;
328pub const QN_XY: i32 = 12288;
329pub const QN_SWAIT: i32 = 16384;
330pub const QN_RWAIT: i32 = 32768;
331pub const QN_CLEANUP: i32 = 65536;
332pub const MP_ONCE: i32 = 0;
333pub const MP_CONTINUOUS: i32 = 1;
334pub const MP_RANDOM: i32 = 2;
335pub const FTYPE_UNKNOWN: i32 = 0;
336pub const FTYPE_BOOK: i32 = 1;
337pub const FTYPE_PICTURE: i32 = 2;
338pub const FTYPE_MUSIC: i32 = 3;
339pub const FTYPE_APPLICATION: i32 = 4;
340pub const FTYPE_WEBLINK: i32 = 5;
341pub const FTYPE_FOLDER: i32 = 255;
342pub const OB_ADDTOLAST: i32 = 1;
343pub const OB_WITHRETURN: i32 = 2;
344pub const OB_PARAMSFIRST: i32 = 4;
345pub const OB_NONEWTASK: i32 = 8;
346pub const OB_SOFTUPDATE: i32 = 16;
347pub const OB_NOHOURGLASS: i32 = 32;
348pub const NET_BLUETOOTH: i32 = 1;
349pub const NET_WIFI: i32 = 2;
350pub const NET_CDMA3G: i32 = 4;
351pub const NET_BTREADY: i32 = 256;
352pub const NET_WIFIREADY: i32 = 512;
353pub const NET_CDMA3GREADY: i32 = 1024;
354pub const NET_CONNECTED: i32 = 3840;
355pub const CONN_GPRS: i32 = 1;
356pub const CONN_WIFI: i32 = 2;
357pub const CONN_CDMA3G: i32 = 3;
358pub const BLUETOOTH_OFF: i32 = 0;
359pub const BLUETOOTH_HIDDEN: i32 = 1;
360pub const BLUETOOTH_VISIBLE: i32 = 2;
361pub const NET_OK: i32 = 0;
362pub const NET_CONNECT: i32 = 1;
363pub const NET_TRANSFER: i32 = 2;
364pub const NET_FAIL: i32 = -11;
365pub const NET_ABORTED: i32 = -12;
366pub const NET_EINIT: i32 = -13;
367pub const NET_EWRONGID: i32 = -14;
368pub const NET_ENETWORK: i32 = -15;
369pub const NET_EFILE: i32 = -16;
370pub const NET_EPIPE: i32 = -17;
371pub const NET_ETHREAD: i32 = -18;
372pub const NET_EPROTO: i32 = -19;
373pub const NET_EURL: i32 = -20;
374pub const NET_ERESOLVE: i32 = -21;
375pub const NET_ECONNECT: i32 = -22;
376pub const NET_EACCESS: i32 = -23;
377pub const NET_ENOTFOUND: i32 = -24;
378pub const NET_EPARTIAL: i32 = -25;
379pub const NET_EBROKEN: i32 = -26;
380pub const NET_ETIMEOUT: i32 = -27;
381pub const NET_ESERVER: i32 = -28;
382pub const NET_EHTTP: i32 = -29;
383pub const NET_EHARDWARE: i32 = -30;
384pub const NET_ENOTCONF: i32 = -31;
385pub const NET_EBADCONF: i32 = -32;
386pub const NET_ENODEVICE: i32 = -33;
387pub const NET_EPPP: i32 = -34;
388pub const NET_EDISABLED: i32 = -35;
389pub const NET_EDHCP: i32 = -36;
390pub const NET_EWRONGKEY: i32 = -37;
391pub const NET_EAUTH: i32 = -38;
392pub const VN_NOPATH: i32 = 1;
393pub const VN_NOESCAPE: i32 = 2;
394pub const VN_ABSOLUTE: i32 = 4;
395pub const VN_RELATIVE: i32 = 8;
396pub const A2DP_DISCONNECTED: i32 = 0;
397pub const A2DP_CONNECTED_TO_SNK: i32 = 1;
398pub const CF_CONFIG_RESUME: i32 = 1;
399pub const FONT_ACTIVATE_CODE: u32 = 2410017735;
400pub const GSENSOR_OFF: i32 = 0;
401pub const GSENSOR_ON: i32 = 1;
402pub const GSENSOR_INTR: i32 = 2;
403pub type size_t = c_types::c_uint;
404pub type __quad_t = c_types::c_longlong;
405pub type __u_quad_t = c_types::c_ulonglong;
406pub type __dev_t = __u_quad_t;
407pub type __uid_t = c_types::c_uint;
408pub type __gid_t = c_types::c_uint;
409pub type __ino_t = c_types::c_ulong;
410pub type __mode_t = c_types::c_uint;
411pub type __nlink_t = c_types::c_uint;
412pub type __off_t = c_types::c_long;
413pub type __off64_t = __quad_t;
414pub type __pid_t = c_types::c_int;
415pub type __time_t = c_types::c_long;
416pub type __useconds_t = c_types::c_uint;
417pub type __blksize_t = c_types::c_long;
418pub type __blkcnt_t = c_types::c_long;
419pub type __syscall_slong_t = c_types::c_long;
420pub type FILE = _IO_FILE;
421pub type _IO_lock_t = c_types::c_void;
422#[repr(C)]
423#[derive(Debug, Copy, Clone)]
424pub struct _IO_marker {
425    pub _next: *mut _IO_marker,
426    pub _sbuf: *mut _IO_FILE,
427    pub _pos: c_types::c_int,
428}
429#[repr(C)]
430#[derive(Copy, Clone)]
431pub struct _IO_FILE {
432    pub _flags: c_types::c_int,
433    pub _IO_read_ptr: *mut c_types::c_char,
434    pub _IO_read_end: *mut c_types::c_char,
435    pub _IO_read_base: *mut c_types::c_char,
436    pub _IO_write_base: *mut c_types::c_char,
437    pub _IO_write_ptr: *mut c_types::c_char,
438    pub _IO_write_end: *mut c_types::c_char,
439    pub _IO_buf_base: *mut c_types::c_char,
440    pub _IO_buf_end: *mut c_types::c_char,
441    pub _IO_save_base: *mut c_types::c_char,
442    pub _IO_backup_base: *mut c_types::c_char,
443    pub _IO_save_end: *mut c_types::c_char,
444    pub _markers: *mut _IO_marker,
445    pub _chain: *mut _IO_FILE,
446    pub _fileno: c_types::c_int,
447    pub _flags2: c_types::c_int,
448    pub _old_offset: __off_t,
449    pub _cur_column: c_types::c_ushort,
450    pub _vtable_offset: c_types::c_schar,
451    pub _shortbuf: [c_types::c_char; 1usize],
452    pub _lock: *mut _IO_lock_t,
453    pub _offset: __off64_t,
454    pub __pad1: *mut c_types::c_void,
455    pub __pad2: *mut c_types::c_void,
456    pub __pad3: *mut c_types::c_void,
457    pub __pad4: *mut c_types::c_void,
458    pub __pad5: size_t,
459    pub _mode: c_types::c_int,
460    pub _unused2: [c_types::c_char; 40usize],
461}
462pub type mode_t = __mode_t;
463pub type pid_t = __pid_t;
464pub type time_t = __time_t;
465#[repr(C)]
466#[derive(Debug, Copy, Clone)]
467pub struct timespec {
468    pub tv_sec: __time_t,
469    pub tv_nsec: __syscall_slong_t,
470}
471#[repr(C)]
472#[derive(Debug, Copy, Clone)]
473pub struct stat {
474    pub st_dev: __dev_t,
475    pub __pad1: c_types::c_ushort,
476    pub st_ino: __ino_t,
477    pub st_mode: __mode_t,
478    pub st_nlink: __nlink_t,
479    pub st_uid: __uid_t,
480    pub st_gid: __gid_t,
481    pub st_rdev: __dev_t,
482    pub __pad2: c_types::c_ushort,
483    pub st_size: __off_t,
484    pub st_blksize: __blksize_t,
485    pub st_blocks: __blkcnt_t,
486    pub st_atim: timespec,
487    pub st_mtim: timespec,
488    pub st_ctim: timespec,
489    pub __glibc_reserved4: c_types::c_ulong,
490    pub __glibc_reserved5: c_types::c_ulong,
491}
492#[repr(C)]
493#[derive(Copy, Clone)]
494pub struct dirent {
495    pub d_ino: __ino_t,
496    pub d_off: __off_t,
497    pub d_reclen: c_types::c_ushort,
498    pub d_type: c_types::c_uchar,
499    pub d_name: [c_types::c_char; 256usize],
500}
501#[repr(C)]
502#[derive(Debug, Copy, Clone)]
503pub struct __dirstream {
504    _unused: [u8; 0],
505}
506pub type DIR = __dirstream;
507extern "C" {
508    pub static mut OBREEY_BSCONFIG_PARAMETR: *const c_types::c_char;
509}
510extern "C" {
511    pub static mut OBREEY_STORE_BSCONFIG_PARAM: *const c_types::c_char;
512}
513extern "C" {
514    pub static mut OBREEY_SOCIAL_COOKIES_PATH: *const c_types::c_char;
515}
516#[repr(u32)]
517#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
518pub enum AvrcpCommands {
519    AVRCP_NEXT = 0,
520    AVRCP_PREVIOUS = 1,
521    AVRCP_PAUSE = 2,
522    AVRCP_PLAY_PAUSE = 3,
523    AVRCP_STOP = 4,
524    AVRCP_PLAY = 5,
525    AVRCP_SET_VOLUME = 6,
526}
527#[repr(u32)]
528#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
529pub enum PB_STATE_e {
530    MP_STOPPED = 0,
531    MP_REQUEST_FOR_PLAY = 1,
532    MP_PLAYING = 2,
533    MP_PAUSED = 3,
534    MP_PREVTRACK = 4,
535    MP_NEXTTRACK = 5,
536    MP_TRACK_FINISHED = 6,
537    MP_LOAD_FILE_AND_PAUSE = 7,
538}
539pub use self::PB_STATE_e as PB_STATE;
540#[repr(u32)]
541#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
542pub enum PB_TTS_STATE_e {
543    TTS_STOPPED = 0,
544    TTS_PLAYING = 1,
545    TTS_PAUSED = 2,
546}
547pub use self::PB_TTS_STATE_e as PB_TTS_STATE;
548#[repr(u32)]
549#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
550pub enum WIFI_SECURITY {
551    NO = 0,
552    WEP = 1,
553    WPAEAP = 2,
554    WPAPSK = 3,
555}
556#[repr(i32)]
557#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
558pub enum NET_STATE {
559    NET_STATE_UNKNOWN = -1,
560    DISCONNECTED = 0,
561    CONNECTING = 1,
562    CONNECTED = 2,
563}
564#[repr(u32)]
565#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
566pub enum FONT_TYPE {
567    FONT_STD = 0,
568    FONT_BOLD = 1,
569    FONT_ITALIC = 2,
570    FONT_BOLDITALIC = 3,
571    FONT_MONO = 4,
572    FONT_FAMILY = 5,
573}
574#[repr(u32)]
575#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
576pub enum SideFlags {
577    SFLAGS_NONE = 0,
578    SFLAGS_LEFT = 1,
579    SFLAGS_RIGHT = 2,
580    SFLAGS_RIGHT_LEFT = 3,
581    SFLAGS_UP = 4,
582    SFLAGS_UP_LEFT = 5,
583    SFLAGS_UP_RIGHT = 6,
584    SFLAGS_UP_RIGHT_LEFT = 7,
585    SFLAGS_DOWN = 8,
586    SFLAGS_DOWN_LEFT = 9,
587    SFLAGS_DOWN_RIGHT = 10,
588    SFLAGS_DOWN_RIGHT_LEFT = 11,
589    SFLAGS_DOWN_UP = 12,
590    SFLAGS_DOWN_UP_LEFT = 13,
591    SFLAGS_DOWN_UP_RIGHT = 14,
592    SFLAGS_ALL = 15,
593}
594impl PanelType {
595    pub const DISABLED: PanelType = PanelType(0);
596}
597impl PanelType {
598    pub const ENABLED: PanelType = PanelType(2);
599}
600impl PanelType {
601    pub const EVENT_NO_HANDLING: PanelType = PanelType(4);
602}
603impl PanelType {
604    pub const NO_FB_OFFSET: PanelType = PanelType(8);
605}
606impl ::core::ops::BitOr<PanelType> for PanelType {
607    type Output = Self;
608    #[inline]
609    fn bitor(self, other: Self) -> Self {
610        PanelType(self.0 | other.0)
611    }
612}
613impl ::core::ops::BitOrAssign for PanelType {
614    #[inline]
615    fn bitor_assign(&mut self, rhs: PanelType) {
616        self.0 |= rhs.0;
617    }
618}
619impl ::core::ops::BitAnd<PanelType> for PanelType {
620    type Output = Self;
621    #[inline]
622    fn bitand(self, other: Self) -> Self {
623        PanelType(self.0 & other.0)
624    }
625}
626impl ::core::ops::BitAndAssign for PanelType {
627    #[inline]
628    fn bitand_assign(&mut self, rhs: PanelType) {
629        self.0 &= rhs.0;
630    }
631}
632#[repr(transparent)]
633#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
634pub struct PanelType(pub c_types::c_uint);
635extern "C" {
636    pub fn iv_get_default_font(fonttype: FONT_TYPE) -> *mut c_types::c_char;
637}
638#[repr(C)]
639#[derive(Debug, Copy, Clone)]
640pub struct irect_s {
641    pub x: c_types::c_int,
642    pub y: c_types::c_int,
643    pub w: c_types::c_int,
644    pub h: c_types::c_int,
645    pub flags: c_types::c_int,
646}
647pub type irect = irect_s;
648#[repr(C)]
649#[derive(Debug)]
650pub struct ibitmap_s {
651    pub width: c_types::c_ushort,
652    pub height: c_types::c_ushort,
653    pub depth: c_types::c_ushort,
654    pub scanline: c_types::c_ushort,
655    pub data: __IncompleteArrayField<c_types::c_uchar>,
656}
657pub type ibitmap = ibitmap_s;
658#[repr(C)]
659#[derive(Debug, Copy, Clone)]
660pub struct control_panel_s {
661    pub flags: c_types::c_int,
662}
663pub type control_panel = control_panel_s;
664pub type iv_handler = ::core::option::Option<
665    unsafe extern "C" fn(
666        type_: c_types::c_int,
667        par1: c_types::c_int,
668        par2: c_types::c_int,
669    ) -> c_types::c_int,
670>;
671pub type iv_timerproc = ::core::option::Option<unsafe extern "C" fn()>;
672pub type iv_timerprocEx =
673    ::core::option::Option<unsafe extern "C" fn(context: *mut c_types::c_void)>;
674pub type iv_menuhandler = ::core::option::Option<unsafe extern "C" fn(index: c_types::c_int)>;
675pub type iv_keyboardhandler =
676    ::core::option::Option<unsafe extern "C" fn(text: *mut c_types::c_char)>;
677pub type iv_keyboardhandlerex = ::core::option::Option<
678    unsafe extern "C" fn(text: *mut c_types::c_char, data: *mut c_types::c_void),
679>;
680pub type iv_dialoghandler = ::core::option::Option<unsafe extern "C" fn(button: c_types::c_int)>;
681pub type iv_timeedithandler =
682    ::core::option::Option<unsafe extern "C" fn(newtime: c_types::c_long)>;
683pub type iv_fontselecthandler = ::core::option::Option<
684    unsafe extern "C" fn(
685        fontr: *mut c_types::c_char,
686        fontb: *mut c_types::c_char,
687        fonti: *mut c_types::c_char,
688        fontbi: *mut c_types::c_char,
689    ),
690>;
691pub type iv_dirselecthandler =
692    ::core::option::Option<unsafe extern "C" fn(path: *mut c_types::c_char)>;
693pub type iv_confighandler = ::core::option::Option<unsafe extern "C" fn()>;
694pub type iv_itemchangehandler =
695    ::core::option::Option<unsafe extern "C" fn(name: *mut c_types::c_char)>;
696pub type iv_pageselecthandler = ::core::option::Option<unsafe extern "C" fn(page: c_types::c_int)>;
697pub type iv_bmkhandler = ::core::option::Option<
698    unsafe extern "C" fn(
699        action: c_types::c_int,
700        page: c_types::c_int,
701        position: c_types::c_longlong,
702    ),
703>;
704pub type iv_tochandler =
705    ::core::option::Option<unsafe extern "C" fn(position: c_types::c_longlong)>;
706pub type iv_itempaint = ::core::option::Option<
707    unsafe extern "C" fn(
708        x: c_types::c_int,
709        y: c_types::c_int,
710        index: c_types::c_int,
711        selected: c_types::c_int,
712    ),
713>;
714pub type iv_listhandler = ::core::option::Option<
715    unsafe extern "C" fn(
716        action: c_types::c_int,
717        x: c_types::c_int,
718        y: c_types::c_int,
719        idx: c_types::c_int,
720        state: c_types::c_int,
721    ) -> c_types::c_int,
722>;
723pub type iv_rotatehandler = ::core::option::Option<unsafe extern "C" fn(direction: c_types::c_int)>;
724pub type iv_turnproc =
725    ::core::option::Option<unsafe extern "C" fn(direction: c_types::c_int) -> c_types::c_int>;
726pub type iv_recurser = ::core::option::Option<
727    unsafe extern "C" fn(
728        path: *mut c_types::c_char,
729        type_: c_types::c_int,
730        data: *mut c_types::c_void,
731    ) -> c_types::c_int,
732>;
733pub type iv_msghandler = ::core::option::Option<
734    unsafe extern "C" fn(
735        task: c_types::c_int,
736        message: *mut c_types::c_void,
737        len: c_types::c_int,
738    ) -> c_types::c_int,
739>;
740pub type iv_requestlistener = ::core::option::Option<
741    unsafe extern "C" fn(
742        request: c_types::c_int,
743        data: *mut c_types::c_void,
744        inlen: c_types::c_int,
745        outlen: c_types::c_int,
746    ) -> c_types::c_int,
747>;
748pub type iv_hashenumproc = ::core::option::Option<
749    unsafe extern "C" fn(
750        name: *mut c_types::c_char,
751        value: *mut c_types::c_void,
752        userdata: *mut c_types::c_void,
753    ) -> c_types::c_int,
754>;
755pub type iv_hashcmpproc = ::core::option::Option<
756    unsafe extern "C" fn(
757        name1: *mut c_types::c_char,
758        value1: *mut c_types::c_void,
759        name2: *mut c_types::c_char,
760        value2: *mut c_types::c_void,
761    ) -> c_types::c_int,
762>;
763pub type iv_hashaddproc = ::core::option::Option<
764    unsafe extern "C" fn(data: *mut c_types::c_void) -> *mut c_types::c_void,
765>;
766pub type iv_hashdelproc = ::core::option::Option<unsafe extern "C" fn(data: *mut c_types::c_void)>;
767pub type iv_panelupdateshandler = ::core::option::Option<
768    unsafe extern "C" fn(
769        x: c_types::c_int,
770        y: c_types::c_int,
771        w: c_types::c_int,
772        h: c_types::c_int,
773    ),
774>;
775#[repr(C)]
776#[derive(Copy, Clone)]
777pub struct TransparentDefinition {
778    pub m_TRANSPARENT_MATRIX: [c_types::c_char; 256usize],
779    pub m_isInitTransparentMatrix: c_types::c_int,
780    pub m_PercentOfTransparent: c_types::c_int,
781}
782pub type TransparentHandle = TransparentDefinition;
783#[repr(C)]
784#[derive(Debug, Copy, Clone)]
785pub struct ihash_item_s {
786    pub name: *mut c_types::c_char,
787    pub value: *mut c_types::c_void,
788    pub next: *mut ihash_item_s,
789}
790pub type ihash_item = ihash_item_s;
791#[repr(C)]
792#[derive(Debug, Copy, Clone)]
793pub struct ihash_s {
794    pub prime: c_types::c_int,
795    pub count: c_types::c_int,
796    pub addproc: iv_hashaddproc,
797    pub delproc: iv_hashdelproc,
798    pub items: *mut *mut ihash_item_s,
799}
800pub type ihash = ihash_s;
801#[repr(C)]
802#[derive(Debug, Copy, Clone)]
803pub struct ifont_s {
804    pub name: *mut c_types::c_char,
805    pub family: *mut c_types::c_char,
806    pub size: c_types::c_int,
807    pub aa: c_types::c_uchar,
808    pub isbold: c_types::c_uchar,
809    pub isitalic: c_types::c_uchar,
810    pub _r1: c_types::c_uchar,
811    pub charset: c_types::c_ushort,
812    pub _r2: c_types::c_ushort,
813    pub color: c_types::c_int,
814    pub height: c_types::c_int,
815    pub linespacing: c_types::c_int,
816    pub baseline: c_types::c_int,
817    pub fdata: *mut c_types::c_void,
818}
819pub type ifont = ifont_s;
820#[repr(u32)]
821#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
822pub enum FONT_MENU_FLAGS {
823    FM_SHOW_SIZE = 1,
824}
825#[repr(C)]
826#[derive(Debug, Copy, Clone)]
827pub struct iuser_font_s {
828    pub show_font_name: *mut c_types::c_char,
829    pub real_font_name: *mut c_types::c_char,
830    pub font: *mut ifont,
831}
832pub type iuser_font = iuser_font_s;
833#[repr(C)]
834#[derive(Debug, Copy, Clone)]
835pub struct ifont_list_s {
836    pub list: *mut iuser_font,
837    pub count: c_types::c_int,
838}
839pub type ifont_list = ifont_list_s;
840#[repr(C)]
841#[derive(Debug, Copy, Clone)]
842pub struct ifont_menu_s {
843    pub menu_title: *mut c_types::c_char,
844    pub current_font: *mut c_types::c_char,
845    pub flags: FONT_MENU_FLAGS,
846    pub hproc: iv_fontselecthandler,
847    pub user_fonts: *mut ifont_list,
848}
849pub type ifont_menu = ifont_menu_s;
850#[repr(C)]
851#[derive(Debug, Copy, Clone)]
852pub struct imenu_s {
853    pub type_: c_types::c_short,
854    pub index: c_types::c_short,
855    pub text: *mut c_types::c_char,
856    pub submenu: *mut imenu_s,
857}
858pub type imenu = imenu_s;
859#[repr(C)]
860#[derive(Debug, Copy, Clone)]
861pub struct imenuex_s {
862    pub type_: c_types::c_short,
863    pub index: c_types::c_short,
864    pub text: *mut c_types::c_char,
865    pub submenu: *mut imenuex_s,
866    pub icon: *mut ibitmap,
867    pub reserved: *mut c_types::c_void,
868    pub font: *const ifont,
869}
870pub type imenuex = imenuex_s;
871#[repr(C)]
872#[derive(Debug, Copy, Clone)]
873pub struct icanvas_s {
874    pub width: c_types::c_int,
875    pub height: c_types::c_int,
876    pub scanline: c_types::c_int,
877    pub depth: c_types::c_int,
878    pub clipx1: c_types::c_int,
879    pub clipx2: c_types::c_int,
880    pub clipy1: c_types::c_int,
881    pub clipy2: c_types::c_int,
882    pub addr: *mut c_types::c_uchar,
883}
884pub type icanvas = icanvas_s;
885#[repr(C)]
886#[derive(Debug, Copy, Clone)]
887pub struct icontext_menu_properties_s {
888    pub font_normal: *mut ifont,
889    pub font_selected: *mut ifont,
890    pub font_disabled: *mut ifont,
891    pub background_color_normal: c_types::c_int,
892    pub background_color_disabled: c_types::c_int,
893    pub blackout: c_types::c_int,
894    pub item_height: c_types::c_int,
895    pub item_border_indent_horizontal: c_types::c_int,
896    pub separator_indent_horizontal: c_types::c_int,
897    pub separator_indent_vertical: c_types::c_int,
898    pub separator_height: c_types::c_int,
899    pub separator_style: c_types::c_int,
900    pub separator_color: c_types::c_int,
901    pub separator_frequency: c_types::c_int,
902    pub marker_height: c_types::c_int,
903    pub marker_indent_horizontal: c_types::c_int,
904    pub marker_style: c_types::c_int,
905    pub marker_color: c_types::c_int,
906    pub border_size: c_types::c_int,
907    pub border_radius: c_types::c_int,
908    pub title_height: c_types::c_int,
909    pub enable_pointer: c_types::c_int,
910    pub font_normal_color: c_types::c_int,
911    pub font_selected_color: c_types::c_int,
912    pub font_disabled_color: c_types::c_int,
913    pub bullet_show: c_types::c_int,
914    pub bullet_style: c_types::c_int,
915    pub item_border_indent_vertical: c_types::c_int,
916    pub background_style: c_types::c_int,
917}
918pub type icontext_menu_properties = icontext_menu_properties_s;
919#[repr(C)]
920#[derive(Debug, Copy, Clone)]
921pub struct ifont_selector_properties {
922    pub custom_font_enable: c_types::c_ushort,
923}
924pub type font_selector_properties = ifont_selector_properties;
925#[repr(C)]
926#[derive(Debug, Copy, Clone)]
927pub struct icontext_menu_s {
928    pub id: *const c_types::c_char,
929    pub hproc: iv_menuhandler,
930    pub menuex: *const imenuex,
931    pub menu: *const imenu,
932    pub pos_selected_item: irect,
933    pub pos_menu: irect,
934    pub properties: *mut icontext_menu_properties,
935    pub active_element: c_types::c_int,
936    pub enable_pointer: c_types::c_short,
937    pub enable_aura: c_types::c_short,
938    pub use_own_font: c_types::c_short,
939    pub update_after_close: c_types::c_short,
940    pub only_choise: c_types::c_short,
941}
942pub type icontext_menu = icontext_menu_s;
943#[repr(C)]
944#[derive(Debug, Copy, Clone)]
945pub struct iapp_caption_s {
946    pub rect_portrait: irect,
947    pub rect_landscape: irect,
948    pub font: *mut ifont,
949    pub title_height: c_types::c_int,
950    pub background_color: c_types::c_int,
951    pub is_active: c_types::c_short,
952    pub is_uppercase: c_types::c_short,
953}
954pub type iapp_caption = iapp_caption_s;
955#[repr(C)]
956#[derive(Debug, Copy, Clone)]
957pub struct itaskmgr_s {
958    pub title_height: c_types::c_int,
959    pub title_font: *mut ifont,
960    pub task_font: *mut ifont,
961    pub task_title_font: *mut ifont,
962    pub style: c_types::c_int,
963    pub profile_present: c_types::c_int,
964    pub profile_height: c_types::c_int,
965    pub profile_font: *mut ifont,
966    pub shortcut_height: c_types::c_int,
967    pub shortcut_width: c_types::c_int,
968    pub shortcut_font: *mut ifont,
969    pub task_height: c_types::c_int,
970    pub full_height: c_types::c_int,
971    pub full_width: c_types::c_int,
972    pub width: c_types::c_int,
973    pub height: c_types::c_int,
974    pub x: c_types::c_int,
975    pub y: c_types::c_int,
976    pub border_size: c_types::c_int,
977    pub indent_from_border: c_types::c_int,
978    pub bitmap: *mut *mut ibitmap,
979    pub bitmap_count: c_types::c_int,
980    pub separator_size: c_types::c_int,
981    pub exit_button_indent: c_types::c_int,
982    pub background_style: c_types::c_int,
983    pub separator_color: c_types::c_int,
984    pub border_color: c_types::c_int,
985}
986pub type itaskmgr = itaskmgr_s;
987#[repr(C)]
988#[derive(Debug, Copy, Clone)]
989pub struct ipager_s {
990    pub page_font: *mut ifont,
991    pub height: c_types::c_int,
992    pub indent_horizontal: c_types::c_int,
993    pub left_width: c_types::c_int,
994    pub page_width: c_types::c_int,
995    pub rigth_width: c_types::c_int,
996    pub separator_size: c_types::c_int,
997    pub icon_left: *const ibitmap,
998    pub icon_right: *const ibitmap,
999    pub current_page: c_types::c_int,
1000    pub total_pages: c_types::c_int,
1001    pub position: irect,
1002    pub orientation: c_types::c_int,
1003}
1004pub type ipager = ipager_s;
1005#[repr(C)]
1006#[derive(Debug, Copy, Clone)]
1007pub struct iselection_s {
1008    pub selection_style: c_types::c_int,
1009    pub background_color: c_types::c_int,
1010    pub background_style: c_types::c_int,
1011    pub border_size: c_types::c_int,
1012    pub border_radius: c_types::c_int,
1013    pub indent_horizontal: c_types::c_int,
1014    pub indent_left: c_types::c_int,
1015    pub indent_right: c_types::c_int,
1016}
1017pub type iselection = iselection_s;
1018#[repr(u32)]
1019#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1020pub enum AppStyles {
1021    STYLE_UNKNOWN = 0,
1022    STYLE_KEYBOARD = 1,
1023    STYLE_TOUCHPANEL = 2,
1024    STYLE_TOUCHPANEL_KEYBORAD = 3,
1025    STYLE_MAX_NOT_USED = 4,
1026}
1027#[repr(C)]
1028#[derive(Debug, Copy, Clone)]
1029pub struct iappstyle_s {
1030    pub app_style: AppStyles,
1031}
1032pub type iappstyle = iappstyle_s;
1033#[repr(C)]
1034#[derive(Debug, Copy, Clone)]
1035pub struct ievent_s {
1036    pub hproc: iv_handler,
1037    pub type_: c_types::c_ushort,
1038    pub mod_: c_types::c_ushort,
1039    pub par1: c_types::c_ushort,
1040    pub par2: c_types::c_ushort,
1041    pub data: *mut c_types::c_void,
1042}
1043pub type ievent = ievent_s;
1044#[repr(C)]
1045#[derive(Debug, Copy, Clone)]
1046pub struct iconfig_s {
1047    pub filename: *mut c_types::c_char,
1048    pub hash: *mut ihash,
1049    pub vhash: *mut ihash,
1050    pub modified_hash: *mut ihash,
1051    pub deleted_keys: *mut *mut c_types::c_char,
1052    pub changed: c_types::c_int,
1053}
1054pub type iconfig = iconfig_s;
1055#[repr(C)]
1056#[derive(Debug, Copy, Clone)]
1057pub struct iconfigedit_s {
1058    pub type_: c_types::c_int,
1059    pub icon: *const ibitmap,
1060    pub text: *mut c_types::c_char,
1061    pub hint: *mut c_types::c_char,
1062    pub name: *mut c_types::c_char,
1063    pub deflt: *mut c_types::c_char,
1064    pub variants: *mut *mut c_types::c_char,
1065    pub submenu: *mut iconfigedit_s,
1066    pub icon_theme: *mut *mut ibitmap,
1067}
1068pub type iconfigedit = iconfigedit_s;
1069#[repr(C)]
1070#[derive(Debug, Copy, Clone)]
1071pub struct oldconfigedit_s {
1072    pub text: *mut c_types::c_char,
1073    pub name: *mut c_types::c_char,
1074    pub type_: c_types::c_int,
1075    pub deflt: *mut c_types::c_char,
1076    pub variants: *mut *mut c_types::c_char,
1077}
1078pub type oldconfigedit = oldconfigedit_s;
1079#[repr(C)]
1080#[derive(Debug, Copy, Clone)]
1081pub struct tocentry_s {
1082    pub level: c_types::c_int,
1083    pub page: c_types::c_int,
1084    pub position: c_types::c_longlong,
1085    pub text: *mut c_types::c_char,
1086}
1087pub type tocentry = tocentry_s;
1088#[repr(C)]
1089#[derive(Debug, Copy, Clone)]
1090pub struct itimer_s {
1091    pub tp: iv_timerproc,
1092    pub weak: c_types::c_int,
1093    pub extime: c_types::c_longlong,
1094    pub name: [c_types::c_char; 32usize],
1095    pub context: *mut c_types::c_void,
1096    pub lastchecktime: c_types::c_longlong,
1097}
1098pub type itimer = itimer_s;
1099#[repr(C)]
1100#[derive(Debug, Copy, Clone)]
1101pub struct bookinfo_s {
1102    pub type_: c_types::c_int,
1103    pub typedesc: *mut c_types::c_char,
1104    pub path: *mut c_types::c_char,
1105    pub filename: *mut c_types::c_char,
1106    pub title: *mut c_types::c_char,
1107    pub author: *mut c_types::c_char,
1108    pub series: *mut c_types::c_char,
1109    pub numinseries: c_types::c_int,
1110    pub genre: [*mut c_types::c_char; 10usize],
1111    pub icon: *mut ibitmap,
1112    pub year: c_types::c_int,
1113    pub size: c_types::c_long,
1114    pub ctime: time_t,
1115    pub isbn: *mut c_types::c_char,
1116    pub meta_id: *mut c_types::c_char,
1117    pub first_author: *mut c_types::c_char,
1118    pub drm: c_types::c_int,
1119    pub annotation: *mut c_types::c_char,
1120    pub lang: *mut c_types::c_char,
1121    pub publisher: *mut c_types::c_char,
1122    pub identifiers: *mut c_types::c_char,
1123}
1124pub type bookinfo = bookinfo_s;
1125#[repr(C)]
1126#[derive(Debug, Copy, Clone)]
1127pub struct iv_filetype_s {
1128    pub extension: *mut c_types::c_char,
1129    pub description: *mut c_types::c_char,
1130    pub type_: c_types::c_int,
1131    pub program: *mut c_types::c_char,
1132    pub icon: *mut ibitmap,
1133}
1134pub type iv_filetype = iv_filetype_s;
1135#[repr(C)]
1136#[derive(Debug, Copy, Clone)]
1137pub struct iv_template_s {
1138    pub width: c_types::c_int,
1139    pub height: c_types::c_int,
1140    pub background: *mut ibitmap,
1141    pub bg_folder: *mut ibitmap,
1142    pub bg_folder_a: *mut ibitmap,
1143    pub bg_file: *mut ibitmap,
1144    pub bg_file_a: *mut ibitmap,
1145    pub iconpos: irect,
1146    pub mediaiconpos: irect,
1147    pub line1pos: irect,
1148    pub line2pos: irect,
1149    pub line3pos: irect,
1150    pub line1font: *mut ifont,
1151    pub line2font: *mut ifont,
1152    pub line3font: *mut ifont,
1153}
1154pub type iv_template = iv_template_s;
1155#[repr(C)]
1156#[derive(Debug, Copy, Clone)]
1157pub struct iv_wlist_s {
1158    pub word: *mut c_types::c_char,
1159    pub x1: c_types::c_short,
1160    pub y1: c_types::c_short,
1161    pub x2: c_types::c_short,
1162    pub y2: c_types::c_short,
1163}
1164pub type iv_wlist = iv_wlist_s;
1165#[repr(C)]
1166#[derive(Copy, Clone)]
1167pub struct iv_netinfo_s {
1168    pub connected: c_types::c_int,
1169    pub name: [c_types::c_char; 64usize],
1170    pub device: [c_types::c_char; 64usize],
1171    pub security: [c_types::c_char; 64usize],
1172    pub prefix: [c_types::c_char; 64usize],
1173    pub index: c_types::c_int,
1174    pub atime: c_types::c_int,
1175    pub speed: c_types::c_int,
1176    pub reserved_0e: c_types::c_int,
1177    pub bytes_in: c_types::c_ulong,
1178    pub bytes_out: c_types::c_ulong,
1179    pub packets_in: c_types::c_ulong,
1180    pub packets_out: c_types::c_ulong,
1181}
1182pub type iv_netinfo = iv_netinfo_s;
1183#[repr(C)]
1184#[derive(Debug, Copy, Clone)]
1185pub struct iv_sessioninfo_s {
1186    pub url: *mut c_types::c_char,
1187    pub ctype: *mut c_types::c_char,
1188    pub response: c_types::c_long,
1189    pub length: c_types::c_int,
1190    pub progress: c_types::c_int,
1191}
1192pub type iv_sessioninfo = iv_sessioninfo_s;
1193#[repr(C)]
1194#[derive(Debug)]
1195pub struct iv_fbinfo_s {
1196    pub version: c_types::c_int,
1197    pub flags: c_types::c_uint,
1198    pub shmkey: c_types::c_int,
1199    pub shmsize: c_types::c_int,
1200    pub refkey: c_types::c_int,
1201    pub refsize: c_types::c_int,
1202    pub width: c_types::c_int,
1203    pub height: c_types::c_int,
1204    pub vdepth: c_types::c_int,
1205    pub ndepth: c_types::c_int,
1206    pub orientation: c_types::c_int,
1207    pub _deprecated_cwidth: c_types::c_int,
1208    pub _deprecated_cheight: c_types::c_int,
1209    pub scanline: c_types::c_int,
1210    pub fb_offset: c_types::c_int,
1211    pub fb_size: c_types::c_int,
1212    pub ev_offset: c_types::c_int,
1213    pub ev_size: c_types::c_int,
1214    pub evhead: c_types::c_int,
1215    pub evtail: c_types::c_int,
1216    pub einkversion: c_types::c_int,
1217    pub reserved: [c_types::c_int; 15usize],
1218    pub data: __IncompleteArrayField<c_types::c_uchar>,
1219    pub fb_y_offset: c_types::c_int,
1220}
1221pub type iv_fbinfo = iv_fbinfo_s;
1222#[repr(C)]
1223#[derive(Debug, Copy, Clone)]
1224pub struct subtaskinfo_s {
1225    pub id: c_types::c_int,
1226    pub name: *mut c_types::c_char,
1227    pub book: *mut c_types::c_char,
1228    pub fgindex: c_types::c_int,
1229    pub order: c_types::c_int,
1230    pub rsv_1s: c_types::c_int,
1231}
1232pub type subtaskinfo = subtaskinfo_s;
1233#[repr(C)]
1234#[derive(Debug, Copy, Clone)]
1235pub struct taskinfo_s {
1236    pub task: c_types::c_int,
1237    pub nsubtasks: c_types::c_int,
1238    pub flags: c_types::c_uint,
1239    pub fbshmkey: c_types::c_int,
1240    pub fbshmsize: c_types::c_int,
1241    pub mainpid: pid_t,
1242    pub appname: *mut c_types::c_char,
1243    pub icon: *mut ibitmap,
1244    pub subtasks: *mut subtaskinfo,
1245    pub rsv_1: c_types::c_int,
1246    pub rsv_2: c_types::c_int,
1247    pub rsv_3: c_types::c_int,
1248    pub rsv_4: c_types::c_int,
1249}
1250pub type taskinfo = taskinfo_s;
1251#[repr(u32)]
1252#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1253pub enum input_dev_e {
1254    UNKNOWN = 0,
1255    CAPTOUCH = 1,
1256    DIGITIZER = 2,
1257    MAX_INPUT_DEV = 3,
1258}
1259#[repr(C)]
1260#[derive(Debug, Copy, Clone)]
1261pub struct iv_mtinfo_s {
1262    pub active: c_types::c_int,
1263    pub x: c_types::c_int,
1264    pub y: c_types::c_int,
1265    pub pressure: c_types::c_int,
1266    pub devtype: input_dev_e,
1267    pub rsv_2: c_types::c_int,
1268    pub timems: c_types::c_longlong,
1269}
1270pub type iv_mtinfo = iv_mtinfo_s;
1271#[repr(C)]
1272#[derive(Copy, Clone)]
1273pub struct apinfo_s {
1274    pub ssid: [c_types::c_char; 36usize],
1275    pub mode: c_types::c_int,
1276    pub channel: c_types::c_int,
1277    pub security: WIFI_SECURITY,
1278    pub quality: c_types::c_int,
1279    pub level: c_types::c_int,
1280    pub noise: c_types::c_int,
1281    pub mac: [c_types::c_uchar; 8usize],
1282    pub timestamp: time_t,
1283}
1284pub type wifiapinfo = apinfo_s;
1285#[repr(C)]
1286pub struct wifi_ap_list_s {
1287    pub ap_quantity: c_types::c_int,
1288    pub apinfo: __IncompleteArrayField<wifiapinfo>,
1289}
1290pub type iv_wifi_ap_list = wifi_ap_list_s;
1291pub type pointer_to_word_hand_t = ::core::option::Option<
1292    unsafe extern "C" fn(
1293        x: c_types::c_int,
1294        y: c_types::c_int,
1295        forward: c_types::c_int,
1296    ) -> *mut iv_wlist,
1297>;
1298#[repr(C)]
1299#[derive(Copy, Clone)]
1300pub union network_interface {
1301    pub intr: [c_types::c_char; 8usize],
1302    pub addr: [c_types::c_char; 16usize],
1303    pub hw_addr: [c_types::c_char; 18usize],
1304    _bindgen_union_align: [u8; 18usize],
1305}
1306#[repr(C)]
1307pub struct network_interface_array_s {
1308    pub count: c_types::c_uint,
1309    pub net_int: __IncompleteArrayField<network_interface>,
1310}
1311pub type network_interface_array = network_interface_array_s;
1312#[repr(u32)]
1313#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1314pub enum bt_mode_e {
1315    BT_MODE_OFF = 0,
1316    BT_MODE_HIDDEN = 1,
1317    BT_MODE_VISIBLE = 2,
1318}
1319pub use self::bt_mode_e as bt_mode;
1320#[repr(u32)]
1321#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1322pub enum bt_state_e {
1323    BT_STATE_OFF = 0,
1324    BT_STATE_SUSPENDED = 1,
1325    BT_STATE_READY = 2,
1326    BT_STATE_CONNECTED = 3,
1327    BT_STATE_TRANSFERRING = 4,
1328    BT_STATE_ERROR = 5,
1329    BT_STATE_MAX = 6,
1330}
1331pub use self::bt_state_e as bt_state;
1332#[repr(u32)]
1333#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1334pub enum bt_flags_e {
1335    BT_FLAG_UPDATE_TIMEOUT = 1,
1336    BT_FLAG_LOW_POWER = 2,
1337}
1338pub use self::bt_flags_e as bt_flags;
1339#[repr(u32)]
1340#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1341pub enum bt_service_e {
1342    BT_UNKNOWN = 0,
1343    BT_AUTH = 1,
1344    BT_OBEX = 2,
1345    BT_SECOND_SCREEN = 3,
1346}
1347#[repr(u32)]
1348#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1349pub enum bt_service_state_e {
1350    BT_SERVICE_ACTIVE = 0,
1351    BT_SERVICE_CANCEL = 1,
1352    BT_SERVICE_ERROR = 2,
1353}
1354#[repr(u32)]
1355#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1356pub enum obex_status_e {
1357    OBEX_UNKNOWN = 0,
1358    OBEX_ERROR = 1,
1359    OBEX_REQUEST_AUTH = 2,
1360    OBEX_REQUEST_AUTH_DONE = 3,
1361    OBEX_TRANSFERRING = 4,
1362    OBEX_DONE = 5,
1363}
1364#[repr(C)]
1365#[derive(Copy, Clone)]
1366pub struct obex_service_s {
1367    pub status: obex_status_e,
1368    pub auth: c_types::c_int,
1369    pub filesize: c_types::c_long,
1370    pub transferred: c_types::c_long,
1371    pub name: [c_types::c_char; 128usize],
1372    pub path: [c_types::c_char; 256usize],
1373    pub description: [c_types::c_char; 128usize],
1374    pub mimetype: [c_types::c_char; 64usize],
1375}
1376#[repr(C)]
1377#[derive(Copy, Clone)]
1378pub struct bt_service_obj_s {
1379    pub id: c_types::c_int,
1380    pub service: bt_service_e,
1381    pub state: bt_service_state_e,
1382    pub lock: c_types::c_int,
1383    pub users: [pid_t; 16usize],
1384    pub __bindgen_anon_1: bt_service_obj_s__bindgen_ty_1,
1385}
1386#[repr(C)]
1387#[derive(Copy, Clone)]
1388pub union bt_service_obj_s__bindgen_ty_1 {
1389    pub obex: obex_service_s,
1390    pub service_data: [c_types::c_char; 1024usize],
1391    _bindgen_union_align: [u32; 256usize],
1392}
1393pub type bt_service_obj = bt_service_obj_s;
1394#[repr(u32)]
1395#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1396pub enum audio_output_e {
1397    AUDIO_OUT_NONE = 0,
1398    AUDIO_OUT_HP = 1,
1399    AUDIO_OUT_BT = 2,
1400}
1401pub use self::audio_output_e as audio_output_t;
1402#[repr(C)]
1403#[derive(Debug, Copy, Clone)]
1404pub struct audio_output_info {
1405    pub type_: audio_output_t,
1406    pub description: [c_types::c_char; 32usize],
1407}
1408#[repr(C)]
1409#[derive(Copy, Clone)]
1410pub struct network_interface_info {
1411    pub ip_addr: network_interface,
1412    pub mask: network_interface,
1413    pub br_addr: network_interface,
1414    pub hw_addr: network_interface,
1415}
1416#[repr(C)]
1417#[derive(Debug, Copy, Clone)]
1418pub struct icolor_map_s {
1419    pub from_color: *mut c_types::c_int,
1420    pub to_color: *mut c_types::c_int,
1421    pub size: c_types::c_int,
1422}
1423pub type icolor_map = icolor_map_s;
1424#[repr(u32)]
1425#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1426pub enum APPLICATION_ATTRIBUTE {
1427    APPLICATION_READER = 0,
1428    APPLICATION_ATTRIBUTE_MAX = 31,
1429}
1430extern "C" {
1431    pub fn OpenScreen();
1432}
1433extern "C" {
1434    pub fn OpenScreenExt();
1435}
1436extern "C" {
1437    pub fn InkViewMain(h: iv_handler);
1438}
1439extern "C" {
1440    pub fn CloseApp();
1441}
1442extern "C" {
1443    pub fn InitInkview(reg_flags: c_types::c_int);
1444}
1445extern "C" {
1446    pub fn iRect(
1447        x: c_types::c_int,
1448        y: c_types::c_int,
1449        w: c_types::c_int,
1450        h: c_types::c_int,
1451        flags: c_types::c_int,
1452    ) -> irect;
1453}
1454extern "C" {
1455    pub fn ScreenWidth() -> c_types::c_int;
1456}
1457extern "C" {
1458    pub fn ScreenHeight() -> c_types::c_int;
1459}
1460extern "C" {
1461    pub fn SetOrientation(n: c_types::c_int);
1462}
1463extern "C" {
1464    pub fn GetOrientation() -> c_types::c_int;
1465}
1466extern "C" {
1467    pub fn SetGlobalOrientation(n: c_types::c_int);
1468}
1469extern "C" {
1470    pub fn GetGlobalOrientation() -> c_types::c_int;
1471}
1472extern "C" {
1473    pub fn QueryGSensor() -> c_types::c_int;
1474}
1475extern "C" {
1476    pub fn SetGSensor(mode: c_types::c_int);
1477}
1478extern "C" {
1479    pub fn ReadGSensor(
1480        x: *mut c_types::c_int,
1481        y: *mut c_types::c_int,
1482        z: *mut c_types::c_int,
1483    ) -> c_types::c_int;
1484}
1485extern "C" {
1486    pub fn CalibrateGSensor();
1487}
1488extern "C" {
1489    pub fn SetGSensorEnabled(onOff: bool) -> c_types::c_int;
1490}
1491extern "C" {
1492    pub fn IsGSensorEnabled() -> bool;
1493}
1494extern "C" {
1495    pub fn GetGSensorOrientation() -> c_types::c_int;
1496}
1497#[repr(u32)]
1498#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1499pub enum estyle {
1500    ROUND_ALL = 1,
1501    ROUND_TOP = 2,
1502    ROUND_DOWN = 3,
1503    ROUND_LEFT = 4,
1504    ROUND_RIGHT = 5,
1505    ROUND_TOP_LEFT = 6,
1506    ROUND_TOP_RIGHT = 7,
1507    ROUND_BOTTOM_LEFT = 8,
1508    ROUND_BOTTOM_RIGHT = 9,
1509}
1510extern "C" {
1511    pub fn ClearScreen();
1512}
1513extern "C" {
1514    pub fn SetClip(x: c_types::c_int, y: c_types::c_int, w: c_types::c_int, h: c_types::c_int);
1515}
1516extern "C" {
1517    pub fn SetClipRect(rect: *const irect);
1518}
1519extern "C" {
1520    pub fn GetClip(
1521        x: *mut c_types::c_int,
1522        y: *mut c_types::c_int,
1523        w: *mut c_types::c_int,
1524        h: *mut c_types::c_int,
1525    );
1526}
1527extern "C" {
1528    pub fn GetClipRect() -> irect;
1529}
1530extern "C" {
1531    pub fn MergeClipRect(rect: *const irect) -> irect;
1532}
1533extern "C" {
1534    pub fn DrawPixel(x: c_types::c_int, y: c_types::c_int, color: c_types::c_int);
1535}
1536extern "C" {
1537    pub fn DrawLine(
1538        x1: c_types::c_int,
1539        y1: c_types::c_int,
1540        x2: c_types::c_int,
1541        y2: c_types::c_int,
1542        color: c_types::c_int,
1543    );
1544}
1545extern "C" {
1546    pub fn DrawLineEx(
1547        x1: c_types::c_int,
1548        y1: c_types::c_int,
1549        x2: c_types::c_int,
1550        y2: c_types::c_int,
1551        color: c_types::c_int,
1552        step: c_types::c_int,
1553    );
1554}
1555extern "C" {
1556    pub fn DrawDashLine(
1557        x1: c_types::c_int,
1558        y1: c_types::c_int,
1559        x2: c_types::c_int,
1560        y2: c_types::c_int,
1561        color: c_types::c_int,
1562        fill: c_types::c_uint,
1563        space: c_types::c_uint,
1564    );
1565}
1566extern "C" {
1567    pub fn DrawRect(
1568        x: c_types::c_int,
1569        y: c_types::c_int,
1570        w: c_types::c_int,
1571        h: c_types::c_int,
1572        color: c_types::c_int,
1573    );
1574}
1575extern "C" {
1576    pub fn DrawRectRound(
1577        arg1: c_types::c_int,
1578        arg2: c_types::c_int,
1579        arg3: c_types::c_int,
1580        arg4: c_types::c_int,
1581        arg5: c_types::c_int,
1582        arg6: c_types::c_int,
1583    );
1584}
1585extern "C" {
1586    pub fn FillArea(
1587        x: c_types::c_int,
1588        y: c_types::c_int,
1589        w: c_types::c_int,
1590        h: c_types::c_int,
1591        color: c_types::c_int,
1592    );
1593}
1594extern "C" {
1595    pub fn FillAreaRect(rect: *const irect, color: c_types::c_int);
1596}
1597extern "C" {
1598    pub fn InvertArea(x: c_types::c_int, y: c_types::c_int, w: c_types::c_int, h: c_types::c_int);
1599}
1600extern "C" {
1601    pub fn InvertAreaBW(x: c_types::c_int, y: c_types::c_int, w: c_types::c_int, h: c_types::c_int);
1602}
1603extern "C" {
1604    pub fn ColorMapCreate(size: c_types::c_int) -> *mut icolor_map;
1605}
1606extern "C" {
1607    pub fn ColorMapDestroy(map: *mut *mut icolor_map);
1608}
1609extern "C" {
1610    pub fn InvertAreaMap(
1611        x: c_types::c_int,
1612        y: c_types::c_int,
1613        w: c_types::c_int,
1614        h: c_types::c_int,
1615        map: *mut icolor_map,
1616    );
1617}
1618extern "C" {
1619    pub fn DimArea(
1620        x: c_types::c_int,
1621        y: c_types::c_int,
1622        w: c_types::c_int,
1623        h: c_types::c_int,
1624        color: c_types::c_int,
1625    );
1626}
1627extern "C" {
1628    pub fn DrawSelection(
1629        x: c_types::c_int,
1630        y: c_types::c_int,
1631        w: c_types::c_int,
1632        h: c_types::c_int,
1633        color: c_types::c_int,
1634    );
1635}
1636extern "C" {
1637    pub fn DrawCircle(
1638        x0: c_types::c_int,
1639        y0: c_types::c_int,
1640        radius: c_types::c_int,
1641        color: c_types::c_int,
1642    );
1643}
1644extern "C" {
1645    pub fn DrawPickOut(
1646        x: c_types::c_int,
1647        y: c_types::c_int,
1648        w: c_types::c_int,
1649        h: c_types::c_int,
1650        key: *const c_types::c_char,
1651    );
1652}
1653extern "C" {
1654    pub fn DrawPickOutEx(rect: *const irect, key: *const c_types::c_char);
1655}
1656extern "C" {
1657    pub fn DitherArea(
1658        x: c_types::c_int,
1659        y: c_types::c_int,
1660        w: c_types::c_int,
1661        h: c_types::c_int,
1662        levels: c_types::c_int,
1663        method: c_types::c_int,
1664    );
1665}
1666extern "C" {
1667    pub fn DitherAreaQuick2Level(
1668        dx: c_types::c_int,
1669        dy: c_types::c_int,
1670        dw: c_types::c_int,
1671        dh: c_types::c_int,
1672    );
1673}
1674extern "C" {
1675    pub fn DitherAreaPattern2Level(
1676        dx: c_types::c_int,
1677        dy: c_types::c_int,
1678        dw: c_types::c_int,
1679        dh: c_types::c_int,
1680    );
1681}
1682extern "C" {
1683    pub fn QuickFloyd16Dither(
1684        buffer: *mut c_types::c_uchar,
1685        row_size: c_types::c_int,
1686        left: c_types::c_int,
1687        top: c_types::c_int,
1688        width: c_types::c_int,
1689        height: c_types::c_int,
1690    );
1691}
1692extern "C" {
1693    pub fn StretchArea(
1694        src: *const c_types::c_uchar,
1695        format: c_types::c_int,
1696        sx: c_types::c_int,
1697        sy: c_types::c_int,
1698        sw: c_types::c_int,
1699        sh: c_types::c_int,
1700        scanline: c_types::c_int,
1701        dx: c_types::c_int,
1702        dy: c_types::c_int,
1703        dw: c_types::c_int,
1704        dh: c_types::c_int,
1705        rotate: c_types::c_int,
1706    );
1707}
1708extern "C" {
1709    pub fn StretchAreaBW(
1710        src: *const c_types::c_uchar,
1711        format: c_types::c_int,
1712        sx: c_types::c_int,
1713        sy: c_types::c_int,
1714        sw: c_types::c_int,
1715        sh: c_types::c_int,
1716        scanline: c_types::c_int,
1717        dx: c_types::c_int,
1718        dy: c_types::c_int,
1719        dw: c_types::c_int,
1720        dh: c_types::c_int,
1721    );
1722}
1723extern "C" {
1724    pub fn SetCanvas(c: *mut icanvas);
1725}
1726extern "C" {
1727    pub fn GetCanvas() -> *mut icanvas;
1728}
1729extern "C" {
1730    pub fn Repaint();
1731}
1732extern "C" {
1733    pub fn DrawFrame(
1734        x: c_types::c_int,
1735        y: c_types::c_int,
1736        w: c_types::c_int,
1737        h: c_types::c_int,
1738        icon: *mut ibitmap,
1739        title: *mut c_types::c_char,
1740        flags: c_types::c_int,
1741        clientarea: *mut irect,
1742    );
1743}
1744extern "C" {
1745    pub fn CheckFramePointer(
1746        x: c_types::c_int,
1747        y: c_types::c_int,
1748        w: c_types::c_int,
1749        h: c_types::c_int,
1750        flags: c_types::c_int,
1751        ptx: c_types::c_int,
1752        pty: c_types::c_int,
1753    ) -> c_types::c_int;
1754}
1755extern "C" {
1756    pub fn DrawBorder(
1757        border_rect: *const irect,
1758        border_size: c_types::c_int,
1759        style: c_types::c_int,
1760        radius: c_types::c_int,
1761        color: c_types::c_int,
1762    );
1763}
1764extern "C" {
1765    pub fn DrawPager(pager: *mut ipager);
1766}
1767extern "C" {
1768    pub fn GetPagerRect(pager: *mut ipager) -> irect;
1769}
1770extern "C" {
1771    pub fn GetPagerHeight(pager: *mut ipager) -> c_types::c_int;
1772}
1773extern "C" {
1774    pub fn IsPagerEvent(
1775        pager: *mut ipager,
1776        type_: c_types::c_int,
1777        x: c_types::c_int,
1778        y: c_types::c_int,
1779    ) -> c_types::c_int;
1780}
1781extern "C" {
1782    pub fn PagerHandler(
1783        pager: *mut ipager,
1784        type_: c_types::c_int,
1785        x: c_types::c_int,
1786        y: c_types::c_int,
1787    ) -> c_types::c_int;
1788}
1789extern "C" {
1790    pub fn DrawDiagonalHatch(
1791        x: c_types::c_int,
1792        y: c_types::c_int,
1793        w: c_types::c_int,
1794        h: c_types::c_int,
1795        step: c_types::c_int,
1796        color: c_types::c_int,
1797    );
1798}
1799extern "C" {
1800    pub fn DrawDiagonalHatchLimits(
1801        x: c_types::c_int,
1802        y: c_types::c_int,
1803        w: c_types::c_int,
1804        h: c_types::c_int,
1805        step: c_types::c_int,
1806        color: c_types::c_int,
1807        limit: ::core::option::Option<
1808            unsafe extern "C" fn(arg1: c_types::c_int, arg2: c_types::c_int) -> c_types::c_int,
1809        >,
1810    );
1811}
1812extern "C" {
1813    pub fn Transparent(
1814        x: c_types::c_int,
1815        y: c_types::c_int,
1816        w: c_types::c_int,
1817        h: c_types::c_int,
1818        percent: c_types::c_int,
1819    );
1820}
1821extern "C" {
1822    pub fn TransparentRect(rect: irect, percent: c_types::c_int);
1823}
1824extern "C" {
1825    pub fn LoadBitmap(filename: *const c_types::c_char) -> *mut ibitmap;
1826}
1827extern "C" {
1828    pub fn zLoadBitmap(zf: *mut c_types::c_void, filename: *const c_types::c_char) -> *mut ibitmap;
1829}
1830extern "C" {
1831    pub fn SaveBitmap(filename: *const c_types::c_char, bm: *const ibitmap) -> c_types::c_int;
1832}
1833extern "C" {
1834    pub fn NewBitmap(w: c_types::c_int, h: c_types::c_int) -> *mut ibitmap;
1835}
1836extern "C" {
1837    pub fn SetLoadImageFlags(flags: c_types::c_int);
1838}
1839extern "C" {
1840    pub fn LoadJPEG(
1841        path: *const c_types::c_char,
1842        w: c_types::c_int,
1843        h: c_types::c_int,
1844        br: c_types::c_int,
1845        co: c_types::c_int,
1846        proportional: c_types::c_int,
1847    ) -> *mut ibitmap;
1848}
1849extern "C" {
1850    pub fn LoadTIFF(
1851        path: *const c_types::c_char,
1852        w: c_types::c_int,
1853        h: c_types::c_int,
1854        br: c_types::c_int,
1855        co: c_types::c_int,
1856        proportional: c_types::c_int,
1857    ) -> *mut ibitmap;
1858}
1859extern "C" {
1860    pub fn SaveJPEG(
1861        path: *const c_types::c_char,
1862        bmp: *mut ibitmap,
1863        quality: c_types::c_int,
1864    ) -> c_types::c_int;
1865}
1866extern "C" {
1867    pub fn LoadPNG(path: *const c_types::c_char, dither: c_types::c_int) -> *mut ibitmap;
1868}
1869extern "C" {
1870    pub fn LoadPNGStretch(
1871        path: *const c_types::c_char,
1872        width: c_types::c_int,
1873        height: c_types::c_int,
1874        proportional: c_types::c_int,
1875        dither: c_types::c_int,
1876    ) -> *mut ibitmap;
1877}
1878extern "C" {
1879    pub fn SavePNG(path: *const c_types::c_char, bmp: *const ibitmap) -> c_types::c_int;
1880}
1881extern "C" {
1882    pub fn SetTransparentColor(bmp: *mut *mut ibitmap, color: c_types::c_int);
1883}
1884extern "C" {
1885    pub fn MoveBitmap(bmp: *mut ibitmap, offset: c_types::c_int);
1886}
1887extern "C" {
1888    pub fn MoveBitmapRight(bm: *mut ibitmap, offset: c_types::c_int);
1889}
1890extern "C" {
1891    pub fn BitmapStretchCopy(
1892        bmp: *const ibitmap,
1893        sx: c_types::c_int,
1894        sy: c_types::c_int,
1895        sw: c_types::c_int,
1896        sh: c_types::c_int,
1897        width: c_types::c_int,
1898        height: c_types::c_int,
1899    ) -> *mut ibitmap;
1900}
1901extern "C" {
1902    pub fn DrawBitmap(x: c_types::c_int, y: c_types::c_int, b: *const ibitmap);
1903}
1904extern "C" {
1905    pub fn DrawBitmapArea(
1906        x: c_types::c_int,
1907        y: c_types::c_int,
1908        b: *const ibitmap,
1909        bx: c_types::c_int,
1910        by: c_types::c_int,
1911        bw: c_types::c_int,
1912        bh: c_types::c_int,
1913    );
1914}
1915extern "C" {
1916    pub fn DrawBitmapRect(
1917        x: c_types::c_int,
1918        y: c_types::c_int,
1919        w: c_types::c_int,
1920        h: c_types::c_int,
1921        b: *const ibitmap,
1922        flags: c_types::c_int,
1923    );
1924}
1925extern "C" {
1926    pub fn StretchBitmap(
1927        x: c_types::c_int,
1928        y: c_types::c_int,
1929        w: c_types::c_int,
1930        h: c_types::c_int,
1931        src: *const ibitmap,
1932        flags: c_types::c_int,
1933    );
1934}
1935extern "C" {
1936    pub fn TileBitmap(
1937        x: c_types::c_int,
1938        y: c_types::c_int,
1939        w: c_types::c_int,
1940        h: c_types::c_int,
1941        src: *const ibitmap,
1942    );
1943}
1944extern "C" {
1945    pub fn CopyBitmap(bm: *const ibitmap) -> *mut ibitmap;
1946}
1947extern "C" {
1948    pub fn MirrorBitmap(bm: *mut ibitmap, m: c_types::c_int);
1949}
1950extern "C" {
1951    pub fn EnumFonts() -> *mut *mut c_types::c_char;
1952}
1953extern "C" {
1954    pub fn EnumFontsFromDirectory(
1955        directory1: *const c_types::c_char,
1956        directory2: *const c_types::c_char,
1957    ) -> *mut *mut c_types::c_char;
1958}
1959#[repr(C)]
1960#[derive(Debug, Copy, Clone)]
1961pub struct FontForSort_s {
1962    pub name: *mut c_types::c_char,
1963    pub flags: c_types::c_int,
1964    pub font: *mut c_types::c_char,
1965}
1966pub type FontForSort = FontForSort_s;
1967extern "C" {
1968    pub fn EnumFontsEx() -> *mut FontForSort;
1969}
1970extern "C" {
1971    pub fn EnumFontsFromDirectoryEx(
1972        directory1: *const c_types::c_char,
1973        directory2: *const c_types::c_char,
1974    ) -> *mut FontForSort;
1975}
1976extern "C" {
1977    pub fn FreeFontsForSort(fonts: *mut FontForSort);
1978}
1979extern "C" {
1980    pub fn OpenFont(
1981        name: *const c_types::c_char,
1982        size: c_types::c_int,
1983        aa: c_types::c_int,
1984    ) -> *mut ifont;
1985}
1986extern "C" {
1987    pub fn CloseFont(f: *mut ifont);
1988}
1989extern "C" {
1990    pub fn SetFont(font: *const ifont, color: c_types::c_int);
1991}
1992extern "C" {
1993    pub fn GetFont() -> *const ifont;
1994}
1995extern "C" {
1996    pub fn DrawString(x: c_types::c_int, y: c_types::c_int, s: *const c_types::c_char);
1997}
1998extern "C" {
1999    pub fn DrawStringR(x: c_types::c_int, y: c_types::c_int, s: *const c_types::c_char);
2000}
2001extern "C" {
2002    pub fn TextRectHeight(
2003        width: c_types::c_int,
2004        s: *const c_types::c_char,
2005        flags: c_types::c_int,
2006    ) -> c_types::c_int;
2007}
2008extern "C" {
2009    pub fn TextRectHeightEx(
2010        width: c_types::c_int,
2011        height: c_types::c_int,
2012        s: *const c_types::c_char,
2013        flags: c_types::c_int,
2014    ) -> c_types::c_int;
2015}
2016extern "C" {
2017    pub fn MinimalTextRectWidth(w: c_types::c_int, s: *const c_types::c_char) -> c_types::c_int;
2018}
2019extern "C" {
2020    pub fn DrawTextRect(
2021        x: c_types::c_int,
2022        y: c_types::c_int,
2023        w: c_types::c_int,
2024        h: c_types::c_int,
2025        s: *const c_types::c_char,
2026        flags: c_types::c_int,
2027    ) -> *mut c_types::c_char;
2028}
2029extern "C" {
2030    pub fn CharWidth(c: c_types::c_ushort) -> c_types::c_int;
2031}
2032extern "C" {
2033    pub fn StringWidthExt(s: *const c_types::c_char, l: c_types::c_int) -> c_types::c_int;
2034}
2035extern "C" {
2036    pub fn StringWidth(s: *const c_types::c_char) -> c_types::c_int;
2037}
2038extern "C" {
2039    pub fn GetMultilineStringWidth(
2040        str_: *const c_types::c_char,
2041        area_width: c_types::c_int,
2042        font: *mut ifont,
2043        flags: c_types::c_int,
2044    ) -> c_types::c_int;
2045}
2046extern "C" {
2047    pub fn DrawSymbol(
2048        x: c_types::c_int,
2049        y: c_types::c_int,
2050        symbol: c_types::c_int,
2051    ) -> c_types::c_int;
2052}
2053extern "C" {
2054    pub fn RegisterFontList(fontlist: *mut *mut ifont, count: c_types::c_int);
2055}
2056extern "C" {
2057    pub fn SetTextStrength(n: c_types::c_int);
2058}
2059extern "C" {
2060    pub fn FullUpdate();
2061}
2062extern "C" {
2063    pub fn FullUpdateHQ();
2064}
2065extern "C" {
2066    pub fn SoftUpdate();
2067}
2068extern "C" {
2069    pub fn SoftUpdateHQ();
2070}
2071extern "C" {
2072    pub fn PartialUpdate(
2073        x: c_types::c_int,
2074        y: c_types::c_int,
2075        w: c_types::c_int,
2076        h: c_types::c_int,
2077    );
2078}
2079extern "C" {
2080    pub fn PartialUpdateBlack(
2081        x: c_types::c_int,
2082        y: c_types::c_int,
2083        w: c_types::c_int,
2084        h: c_types::c_int,
2085    );
2086}
2087extern "C" {
2088    pub fn PartialUpdateBW(
2089        x: c_types::c_int,
2090        y: c_types::c_int,
2091        w: c_types::c_int,
2092        h: c_types::c_int,
2093    );
2094}
2095extern "C" {
2096    pub fn PartialUpdateHQ(
2097        x: c_types::c_int,
2098        y: c_types::c_int,
2099        w: c_types::c_int,
2100        h: c_types::c_int,
2101    );
2102}
2103extern "C" {
2104    pub fn PartialUpdateDU4(
2105        x: c_types::c_int,
2106        y: c_types::c_int,
2107        w: c_types::c_int,
2108        h: c_types::c_int,
2109    );
2110}
2111extern "C" {
2112    pub fn DynamicUpdate(
2113        x: c_types::c_int,
2114        y: c_types::c_int,
2115        w: c_types::c_int,
2116        h: c_types::c_int,
2117    );
2118}
2119extern "C" {
2120    pub fn DynamicUpdateBW(
2121        x: c_types::c_int,
2122        y: c_types::c_int,
2123        w: c_types::c_int,
2124        h: c_types::c_int,
2125    );
2126}
2127extern "C" {
2128    pub fn DynamicUpdateA2(
2129        x: c_types::c_int,
2130        y: c_types::c_int,
2131        w: c_types::c_int,
2132        h: c_types::c_int,
2133    );
2134}
2135extern "C" {
2136    pub fn ExitUpdateA2();
2137}
2138extern "C" {
2139    pub fn IsInA2Update() -> c_types::c_int;
2140}
2141extern "C" {
2142    pub fn FineUpdate();
2143}
2144extern "C" {
2145    pub fn FineUpdateSupported() -> c_types::c_int;
2146}
2147extern "C" {
2148    pub fn HQUpdateSupported() -> c_types::c_int;
2149}
2150extern "C" {
2151    pub fn ScheduleUpdate(
2152        x: c_types::c_int,
2153        y: c_types::c_int,
2154        w: c_types::c_int,
2155        h: c_types::c_int,
2156        bw: c_types::c_int,
2157    );
2158}
2159extern "C" {
2160    pub fn WaitForUpdateComplete();
2161}
2162extern "C" {
2163    pub fn SetEventHandler(hproc: iv_handler) -> iv_handler;
2164}
2165extern "C" {
2166    pub fn SetEventHandlerEx(hproc: iv_handler) -> iv_handler;
2167}
2168extern "C" {
2169    pub fn GetEventHandler() -> iv_handler;
2170}
2171extern "C" {
2172    pub fn SendEvent(
2173        hproc: iv_handler,
2174        type_: c_types::c_int,
2175        par1: c_types::c_int,
2176        par2: c_types::c_int,
2177    );
2178}
2179extern "C" {
2180    pub fn SendEventEx(
2181        hproc: iv_handler,
2182        type_: c_types::c_int,
2183        par1: c_types::c_int,
2184        par2: c_types::c_int,
2185        data: *mut c_types::c_void,
2186    );
2187}
2188extern "C" {
2189    pub fn GetCurrentEventExData() -> *mut c_types::c_void;
2190}
2191extern "C" {
2192    pub fn ProcessEventLoop();
2193}
2194extern "C" {
2195    pub fn ProcessEventLoopQuick();
2196}
2197extern "C" {
2198    pub fn iv_evttype(type_: c_types::c_int) -> *mut c_types::c_char;
2199}
2200extern "C" {
2201    pub fn IsAnyEvents() -> c_types::c_char;
2202}
2203extern "C" {
2204    pub fn PrepareForLoop(hproc: iv_handler);
2205}
2206extern "C" {
2207    pub fn ClearOnExit();
2208}
2209extern "C" {
2210    pub fn SetHardTimer(name: *const c_types::c_char, tproc: iv_timerproc, ms: c_types::c_int);
2211}
2212extern "C" {
2213    pub fn SetHardTimerEx(
2214        name: *const c_types::c_char,
2215        tproc: iv_timerprocEx,
2216        context: *mut c_types::c_void,
2217        ms: c_types::c_int,
2218    );
2219}
2220extern "C" {
2221    pub fn SetWeakTimer(name: *const c_types::c_char, tproc: iv_timerproc, ms: c_types::c_int);
2222}
2223extern "C" {
2224    pub fn SetWeakTimerEx(
2225        name: *const c_types::c_char,
2226        tp: iv_timerprocEx,
2227        context: *mut c_types::c_void,
2228        ms: c_types::c_int,
2229    );
2230}
2231extern "C" {
2232    pub fn QueryTimer(tp: iv_timerproc) -> c_types::c_longlong;
2233}
2234extern "C" {
2235    pub fn QueryTimerEx(tp: iv_timerprocEx, context: *mut c_types::c_void) -> c_types::c_longlong;
2236}
2237extern "C" {
2238    pub fn ClearTimer(tproc: iv_timerproc);
2239}
2240extern "C" {
2241    pub fn ClearTimerEx(tproc: iv_timerprocEx, context: *mut c_types::c_void);
2242}
2243extern "C" {
2244    pub fn ClearTimerByName(name: *const c_types::c_char);
2245}
2246extern "C" {
2247    pub fn OpenMenu(
2248        menu: *mut imenu,
2249        pos: c_types::c_int,
2250        x: c_types::c_int,
2251        y: c_types::c_int,
2252        hproc: iv_menuhandler,
2253    );
2254}
2255extern "C" {
2256    pub fn OpenMenuEx(
2257        menu: *mut imenuex,
2258        pos: c_types::c_int,
2259        x: c_types::c_int,
2260        y: c_types::c_int,
2261        hproc: iv_menuhandler,
2262    );
2263}
2264extern "C" {
2265    pub fn UpdateMenuEx(menu: *mut imenuex);
2266}
2267extern "C" {
2268    pub fn OpenContextMenu(menu: *const icontext_menu);
2269}
2270extern "C" {
2271    pub fn SetContextMenu(menu: *const icontext_menu);
2272}
2273extern "C" {
2274    pub fn CreateContextMenu(id: *const c_types::c_char) -> *mut icontext_menu;
2275}
2276extern "C" {
2277    pub fn CloseContextMenu(menu: *mut icontext_menu);
2278}
2279extern "C" {
2280    pub fn OpenMenu3x3(
2281        mbitmap: *const ibitmap,
2282        strings: *mut *const c_types::c_char,
2283        hproc: iv_menuhandler,
2284    );
2285}
2286extern "C" {
2287    pub fn GetMenuRect(menu: *const imenu) -> irect;
2288}
2289extern "C" {
2290    pub fn GetMenuRectEx(menu: *const imenuex) -> irect;
2291}
2292extern "C" {
2293    pub fn OpenList(
2294        title: *const c_types::c_char,
2295        background: *const ibitmap,
2296        itemw: c_types::c_int,
2297        itemh: c_types::c_int,
2298        itemcount: c_types::c_int,
2299        cpos: c_types::c_int,
2300        hproc: iv_listhandler,
2301    );
2302}
2303extern "C" {
2304    pub fn SetListHeaderLevel(level: c_types::c_int);
2305}
2306extern "C" {
2307    pub fn GetListHeaderLevel() -> c_types::c_int;
2308}
2309extern "C" {
2310    pub fn OpenDummyList(
2311        title: *const c_types::c_char,
2312        background: *const ibitmap,
2313        text: *mut c_types::c_char,
2314        hproc: iv_listhandler,
2315    );
2316}
2317extern "C" {
2318    pub fn EnumKeyboards() -> *mut *mut c_types::c_char;
2319}
2320extern "C" {
2321    pub fn LoadKeyboard(kbdlang: *const c_types::c_char);
2322}
2323extern "C" {
2324    pub fn GetKeyboardFlags() -> c_types::c_int;
2325}
2326extern "C" {
2327    pub fn OpenKeyboard(
2328        title: *const c_types::c_char,
2329        buffer: *mut c_types::c_char,
2330        maxlen: c_types::c_int,
2331        flags: c_types::c_int,
2332        hproc: iv_keyboardhandler,
2333    );
2334}
2335extern "C" {
2336    pub fn OpenKeyboardEx(
2337        title: *const c_types::c_char,
2338        buffer: *mut c_types::c_char,
2339        maxlen: c_types::c_int,
2340        flags: c_types::c_int,
2341        hproc: iv_keyboardhandlerex,
2342        cb_data: *mut c_types::c_void,
2343    );
2344}
2345extern "C" {
2346    pub fn DrawKeyboard();
2347}
2348extern "C" {
2349    pub fn OpenCustomKeyboard(
2350        filename: *const c_types::c_char,
2351        title: *const c_types::c_char,
2352        buffer: *mut c_types::c_char,
2353        maxlen: c_types::c_int,
2354        flags: c_types::c_int,
2355        hproc: iv_keyboardhandler,
2356    );
2357}
2358extern "C" {
2359    pub fn CloseKeyboard();
2360}
2361extern "C" {
2362    pub fn GetKeyboardRect(rect: *mut irect);
2363}
2364extern "C" {
2365    pub fn GetKeyboardRectWithParams(
2366        title: *const c_types::c_char,
2367        buffer: *mut c_types::c_char,
2368        flags: c_types::c_int,
2369    ) -> irect;
2370}
2371extern "C" {
2372    pub fn OpenPageSelector(hproc: iv_pageselecthandler);
2373}
2374extern "C" {
2375    pub fn OpenTimeEdit(
2376        title: *const c_types::c_char,
2377        x: c_types::c_int,
2378        y: c_types::c_int,
2379        intime: c_types::c_long,
2380        hproc: iv_timeedithandler,
2381    );
2382}
2383extern "C" {
2384    pub fn OpenDirectorySelector(
2385        title: *const c_types::c_char,
2386        buf: *mut c_types::c_char,
2387        len: c_types::c_int,
2388        hproc: iv_dirselecthandler,
2389    );
2390}
2391extern "C" {
2392    pub fn OpenFontSelector(
2393        title: *const c_types::c_char,
2394        font: *const c_types::c_char,
2395        with_size: c_types::c_int,
2396        hproc: iv_fontselecthandler,
2397    );
2398}
2399extern "C" {
2400    pub fn OpenFontSelectorEx(menu: *const ifont_menu);
2401}
2402extern "C" {
2403    pub fn GetFontMenuStruct() -> ifont_menu;
2404}
2405extern "C" {
2406    pub fn ClearFontMenuStruct(menu: *mut ifont_menu);
2407}
2408extern "C" {
2409    pub fn ClearFontListStruct(list: *mut ifont_list);
2410}
2411extern "C" {
2412    pub fn SetFontMenuStruct(menu: *mut ifont_menu);
2413}
2414extern "C" {
2415    pub fn OpenBookmarks(
2416        page: c_types::c_int,
2417        position: c_types::c_longlong,
2418        bmklist: *mut c_types::c_int,
2419        poslist: *mut c_types::c_longlong,
2420        bmkcount: *mut c_types::c_int,
2421        maxbmks: c_types::c_int,
2422        hproc: iv_bmkhandler,
2423    );
2424}
2425extern "C" {
2426    pub fn OpenContents(
2427        toc: *mut tocentry,
2428        count: c_types::c_int,
2429        position: c_types::c_longlong,
2430        hproc: iv_tochandler,
2431    );
2432}
2433extern "C" {
2434    pub fn OpenRotateBox(hproc: iv_rotatehandler);
2435}
2436extern "C" {
2437    pub fn Message(
2438        icon: c_types::c_int,
2439        title: *const c_types::c_char,
2440        text: *const c_types::c_char,
2441        timeout: c_types::c_int,
2442    );
2443}
2444extern "C" {
2445    pub fn CloseDialog();
2446}
2447extern "C" {
2448    pub fn OpenProgressbar(
2449        icon: c_types::c_int,
2450        title: *const c_types::c_char,
2451        text: *const c_types::c_char,
2452        percent: c_types::c_int,
2453        hproc: iv_dialoghandler,
2454    );
2455}
2456extern "C" {
2457    pub fn CloseProgressbar();
2458}
2459extern "C" {
2460    pub fn SetManualPanelUpdates(enable: c_types::c_int, handler: iv_panelupdateshandler);
2461}
2462extern "C" {
2463    pub fn SetReadingMode(
2464        enable: c_types::c_int,
2465        after_time: c_types::c_int,
2466        update: c_types::c_int,
2467    );
2468}
2469extern "C" {
2470    pub fn SetPanelType(type_: c_types::c_int);
2471}
2472extern "C" {
2473    pub fn GetPanelType() -> c_types::c_int;
2474}
2475extern "C" {
2476    pub fn SetShowPanelReader(show: c_types::c_int);
2477}
2478extern "C" {
2479    pub fn SetPanelSeparatorEnabled(enable: c_types::c_int) -> c_types::c_int;
2480}
2481extern "C" {
2482    pub fn SetPanelKeyForFullScreenEnabled(key: *const c_types::c_char);
2483}
2484extern "C" {
2485    pub fn DrawPanel(
2486        icon: *const ibitmap,
2487        text: *const c_types::c_char,
2488        title: *const c_types::c_char,
2489        percent: c_types::c_int,
2490    ) -> c_types::c_int;
2491}
2492extern "C" {
2493    pub fn DrawTabs(
2494        icon: *const ibitmap,
2495        current: c_types::c_int,
2496        total: c_types::c_int,
2497    ) -> c_types::c_int;
2498}
2499extern "C" {
2500    pub fn OpenControlPanel(ctx: *mut control_panel);
2501}
2502extern "C" {
2503    pub fn PanelHeight() -> c_types::c_int;
2504}
2505extern "C" {
2506    pub fn SetKeyboardRate(t1: c_types::c_int, t2: c_types::c_int);
2507}
2508extern "C" {
2509    pub fn SetQuickNavigatorXY(x: c_types::c_int, y: c_types::c_int);
2510}
2511extern "C" {
2512    pub fn DrawApplicationCaption(caption: *const c_types::c_char, title_rect: *const irect);
2513}
2514extern "C" {
2515    pub fn GetCaptionHeight() -> c_types::c_int;
2516}
2517extern "C" {
2518    pub fn SetApplicationCaptionHeight(h: c_types::c_int);
2519}
2520extern "C" {
2521    pub fn LoadApplicationCaptionProperties() -> *mut iapp_caption;
2522}
2523extern "C" {
2524    pub fn LoadTaskManagerProperties() -> *mut itaskmgr;
2525}
2526extern "C" {
2527    pub fn LoadPagerProperties() -> *mut ipager;
2528}
2529extern "C" {
2530    pub fn LoadSelectionProperties(key: *const c_types::c_char) -> *mut iselection;
2531}
2532extern "C" {
2533    pub fn LoadContextMenuProperties() -> *mut icontext_menu_properties;
2534}
2535extern "C" {
2536    pub fn GetAppGlobalStyle() -> AppStyles;
2537}
2538extern "C" {
2539    pub fn GetAppStyle(key: *const c_types::c_char) -> AppStyles;
2540}
2541extern "C" {
2542    pub fn GetAppStyleEx(key: *const c_types::c_char) -> *mut iappstyle;
2543}
2544extern "C" {
2545    pub fn GetFontSelectorProperties() -> *mut font_selector_properties;
2546}
2547extern "C" {
2548    pub fn GetCustomFontString() -> *const c_types::c_char;
2549}
2550extern "C" {
2551    pub fn GetGlobalConfig() -> *mut iconfig;
2552}
2553extern "C" {
2554    pub fn OpenConfig(path: *const c_types::c_char, ce: *mut iconfigedit) -> *mut iconfig;
2555}
2556extern "C" {
2557    pub fn SaveConfig(cfg: *mut iconfig) -> c_types::c_int;
2558}
2559extern "C" {
2560    pub fn CloseConfig(cfg: *mut iconfig);
2561}
2562extern "C" {
2563    pub fn CloseConfigNoSave(cfg: *mut iconfig);
2564}
2565extern "C" {
2566    pub fn SetConfigEditorBackground(bmp: *mut ibitmap);
2567}
2568extern "C" {
2569    pub fn OpenConfigEditor(
2570        header: *const c_types::c_char,
2571        cfg: *mut iconfig,
2572        ce: *mut iconfigedit,
2573        hproc: iv_confighandler,
2574        cproc: iv_itemchangehandler,
2575    );
2576}
2577extern "C" {
2578    pub fn OpenConfigSubmenuExt(
2579        title: *const c_types::c_char,
2580        ice: *mut iconfigedit,
2581        pos: c_types::c_int,
2582    );
2583}
2584extern "C" {
2585    pub fn OpenConfigSubmenu(title: *const c_types::c_char, ice: *mut iconfigedit);
2586}
2587extern "C" {
2588    pub fn CloseConfigLevel();
2589}
2590extern "C" {
2591    pub fn ClearConfig(cfg: *mut iconfig);
2592}
2593extern "C" {
2594    pub fn GetKeyMapping(act0: *mut *const c_types::c_char, act1: *mut *const c_types::c_char);
2595}
2596extern "C" {
2597    pub fn GetKeyMappingEx(
2598        what: c_types::c_int,
2599        act0: *mut *const c_types::c_char,
2600        act1: *mut *const c_types::c_char,
2601        count: c_types::c_int,
2602    );
2603}
2604extern "C" {
2605    pub fn GetCurrentTask() -> c_types::c_int;
2606}
2607extern "C" {
2608    pub fn GetActiveTask(task: *mut c_types::c_int, subtask: *mut c_types::c_int);
2609}
2610extern "C" {
2611    pub fn GetPreviousTask(task: *mut c_types::c_int, subtask: *mut c_types::c_int);
2612}
2613extern "C" {
2614    pub fn GetPreviousTaskInStack(task: *mut c_types::c_int, subtask: *mut c_types::c_int);
2615}
2616extern "C" {
2617    pub fn GetTaskList(list: *mut c_types::c_int, size: c_types::c_int) -> c_types::c_int;
2618}
2619extern "C" {
2620    pub fn GetTaskInfo(task: c_types::c_int) -> *mut taskinfo;
2621}
2622extern "C" {
2623    pub fn SetTaskParameters(
2624        task: c_types::c_int,
2625        appname: *const c_types::c_char,
2626        name: *const c_types::c_char,
2627        icon: *mut ibitmap,
2628        flags: c_types::c_uint,
2629    ) -> c_types::c_int;
2630}
2631extern "C" {
2632    pub fn SetSubtaskInfo(
2633        task: c_types::c_int,
2634        subtask: c_types::c_int,
2635        name: *const c_types::c_char,
2636        book: *const c_types::c_char,
2637    ) -> c_types::c_int;
2638}
2639extern "C" {
2640    pub fn SetActiveTask(task: c_types::c_int, subtask: c_types::c_int) -> c_types::c_int;
2641}
2642extern "C" {
2643    pub fn CloseTask(
2644        task: c_types::c_int,
2645        subtask: c_types::c_int,
2646        force: c_types::c_int,
2647    ) -> c_types::c_int;
2648}
2649extern "C" {
2650    pub fn SetRequestListener(
2651        request: c_types::c_int,
2652        flags: c_types::c_int,
2653        hproc: iv_requestlistener,
2654    ) -> c_types::c_int;
2655}
2656extern "C" {
2657    pub fn SetMessageHandler(hproc: iv_msghandler);
2658}
2659extern "C" {
2660    pub fn OpenTaskList();
2661}
2662extern "C" {
2663    pub fn GetTaskFramebuffer(task: c_types::c_int) -> *mut icanvas;
2664}
2665extern "C" {
2666    pub fn GetTaskFramebufferInfo(task: c_types::c_int) -> *mut iv_fbinfo;
2667}
2668extern "C" {
2669    pub fn iv_wait_task_activation(timeout: c_types::c_int);
2670}
2671extern "C" {
2672    pub fn GetFrontlightVersion() -> c_types::c_int;
2673}
2674extern "C" {
2675    pub fn GetFrontlightState() -> c_types::c_int;
2676}
2677extern "C" {
2678    pub fn SetFrontlightState(flstate: c_types::c_int);
2679}
2680extern "C" {
2681    pub fn GetFrontlightEnabled() -> c_types::c_int;
2682}
2683extern "C" {
2684    pub fn SetFrontlightEnabled(enabled: c_types::c_int);
2685}
2686extern "C" {
2687    pub fn SetFrontlightStateEx(flstate: c_types::c_int, temporary: c_types::c_int);
2688}
2689extern "C" {
2690    pub fn OpenFrontLightConfig();
2691}
2692extern "C" {
2693    pub fn GetFrontlightColor() -> c_types::c_int;
2694}
2695extern "C" {
2696    pub fn SetFrontlightColor(color: c_types::c_int);
2697}
2698extern "C" {
2699    pub fn iv_stat(name: *const c_types::c_char, st: *mut stat) -> c_types::c_int;
2700}
2701extern "C" {
2702    pub fn iv_access(pathname: *const c_types::c_char, mode: c_types::c_int) -> c_types::c_int;
2703}
2704extern "C" {
2705    pub fn iv_fopen(name: *const c_types::c_char, mode: *const c_types::c_char) -> *mut FILE;
2706}
2707extern "C" {
2708    pub fn iv_fread(
2709        buffer: *mut c_types::c_void,
2710        size: c_types::c_int,
2711        count: c_types::c_int,
2712        f: *mut FILE,
2713    ) -> c_types::c_int;
2714}
2715extern "C" {
2716    pub fn iv_fwrite(
2717        buffer: *const c_types::c_void,
2718        size: c_types::c_int,
2719        count: c_types::c_int,
2720        f: *mut FILE,
2721    ) -> c_types::c_int;
2722}
2723extern "C" {
2724    pub fn iv_fseek(
2725        f: *mut FILE,
2726        offset: c_types::c_long,
2727        whence: c_types::c_int,
2728    ) -> c_types::c_int;
2729}
2730extern "C" {
2731    pub fn iv_ftell(f: *mut FILE) -> c_types::c_long;
2732}
2733extern "C" {
2734    pub fn iv_fclose(f: *mut FILE) -> c_types::c_int;
2735}
2736extern "C" {
2737    pub fn iv_fclose_no_sync(f: *mut FILE) -> c_types::c_int;
2738}
2739extern "C" {
2740    pub fn iv_fgetc(f: *mut FILE) -> c_types::c_int;
2741}
2742extern "C" {
2743    pub fn iv_fgets(
2744        string: *mut c_types::c_char,
2745        n: c_types::c_int,
2746        f: *mut FILE,
2747    ) -> *mut c_types::c_char;
2748}
2749extern "C" {
2750    pub fn iv_mkdir(pathname: *const c_types::c_char, mode: mode_t) -> c_types::c_int;
2751}
2752extern "C" {
2753    pub fn iv_buildpath(filename: *const c_types::c_char);
2754}
2755extern "C" {
2756    pub fn iv_opendir(dirname: *const c_types::c_char) -> *mut DIR;
2757}
2758extern "C" {
2759    pub fn iv_readdir(dir: *mut DIR) -> *mut dirent;
2760}
2761extern "C" {
2762    pub fn iv_closedir(dir: *mut DIR) -> c_types::c_int;
2763}
2764extern "C" {
2765    pub fn iv_unlink(name: *const c_types::c_char) -> c_types::c_int;
2766}
2767extern "C" {
2768    pub fn iv_rmdir(name: *const c_types::c_char) -> c_types::c_int;
2769}
2770extern "C" {
2771    pub fn iv_truncate(name: *const c_types::c_char, length: c_types::c_int) -> c_types::c_int;
2772}
2773extern "C" {
2774    pub fn iv_rename(
2775        oldname: *const c_types::c_char,
2776        newname: *const c_types::c_char,
2777    ) -> c_types::c_int;
2778}
2779extern "C" {
2780    pub fn iv_preload(name: *const c_types::c_char, count: c_types::c_int);
2781}
2782extern "C" {
2783    pub fn iv_sync();
2784}
2785extern "C" {
2786    pub fn iv_validate_name(s: *const c_types::c_char, flags: c_types::c_int) -> c_types::c_int;
2787}
2788extern "C" {
2789    pub fn iv_setbgresponse(t: c_types::c_int);
2790}
2791extern "C" {
2792    pub fn iv_ipc_request(
2793        type_: c_types::c_long,
2794        attr: c_types::c_long,
2795        data: *mut c_types::c_uchar,
2796        inlen: c_types::c_int,
2797        outlen: c_types::c_int,
2798    ) -> c_types::c_long;
2799}
2800extern "C" {
2801    pub fn iv_ipc_request_secure(
2802        type_: c_types::c_long,
2803        param: c_types::c_long,
2804        data: *mut c_types::c_uchar,
2805        inlen: c_types::c_int,
2806        outlen: c_types::c_int,
2807    ) -> c_types::c_long;
2808}
2809extern "C" {
2810    pub fn iv_ipc_cmd(type_: c_types::c_long, param: c_types::c_long) -> c_types::c_long;
2811}
2812extern "C" {
2813    pub fn iv_ipc_request_with_timeout(
2814        type_: c_types::c_long,
2815        param: c_types::c_long,
2816        data: *mut c_types::c_uchar,
2817        inlen: c_types::c_int,
2818        outlen: c_types::c_int,
2819        timeout_ms: c_types::c_int,
2820    ) -> c_types::c_long;
2821}
2822extern "C" {
2823    pub fn LoadLanguage(lang: *const c_types::c_char);
2824}
2825extern "C" {
2826    pub fn GetCurrentLangText(s: *const c_types::c_char) -> *const c_types::c_char;
2827}
2828extern "C" {
2829    pub fn GetLangText(s: *const c_types::c_char) -> *const c_types::c_char;
2830}
2831extern "C" {
2832    pub fn GetLangTextF(s: *const c_types::c_char, ...) -> *const c_types::c_char;
2833}
2834extern "C" {
2835    pub fn GetLangTextPlural(
2836        s: *const c_types::c_char,
2837        amount: c_types::c_int,
2838    ) -> *const c_types::c_char;
2839}
2840extern "C" {
2841    pub fn SetRTLBook(rtl: c_types::c_int);
2842}
2843#[repr(C)]
2844#[derive(Debug, Copy, Clone)]
2845pub struct iprofile_s {
2846    pub name: *mut c_types::c_char,
2847    pub path: *mut c_types::c_char,
2848    pub type_: c_types::c_int,
2849    pub avatar: *mut ibitmap,
2850}
2851pub type iprofile = iprofile_s;
2852#[repr(C)]
2853#[derive(Debug, Copy, Clone)]
2854pub struct iprofiles_s {
2855    pub profile: *mut iprofile,
2856    pub count: c_types::c_int,
2857}
2858pub type iprofiles = iprofiles_s;
2859extern "C" {
2860    pub fn GetProfileType(name: *const c_types::c_char) -> c_types::c_int;
2861}
2862extern "C" {
2863    pub fn GetProfileAvatar(name: *const c_types::c_char) -> *mut ibitmap;
2864}
2865extern "C" {
2866    pub fn SetProfileAvatar(name: *const c_types::c_char, ava: *mut ibitmap) -> c_types::c_int;
2867}
2868extern "C" {
2869    pub fn GetCurrentProfile() -> *mut c_types::c_char;
2870}
2871extern "C" {
2872    pub fn SetCurrentProfile(name: *const c_types::c_char, flags: c_types::c_int);
2873}
2874extern "C" {
2875    pub fn GetProfilesCountAfterEnum() -> c_types::c_int;
2876}
2877extern "C" {
2878    pub fn OpenProfileSelector();
2879}
2880extern "C" {
2881    pub fn GetLocalProfilesLimit() -> c_types::c_int;
2882}
2883extern "C" {
2884    pub fn GetSDProfilesLimit() -> c_types::c_int;
2885}
2886extern "C" {
2887    pub fn GetProfilesLimit() -> c_types::c_int;
2888}
2889extern "C" {
2890    pub fn ClearProfilesStruct(profiles: *mut iprofiles);
2891}
2892extern "C" {
2893    pub fn ClearProfileStruct(profile: *mut iprofile);
2894}
2895extern "C" {
2896    pub fn GetProfilesList(profiles: *mut iprofiles) -> c_types::c_int;
2897}
2898extern "C" {
2899    pub fn GetCurrentProfileEx(profile: *mut iprofile) -> c_types::c_int;
2900}
2901extern "C" {
2902    pub fn SetCurrentProfileEx(profile: *const iprofile) -> c_types::c_int;
2903}
2904extern "C" {
2905    pub fn GetProfilesCount() -> c_types::c_int;
2906}
2907extern "C" {
2908    pub fn OpenTheme(path: *const c_types::c_char);
2909}
2910extern "C" {
2911    pub fn GetResource(name: *const c_types::c_char, deflt: *const ibitmap) -> *mut ibitmap;
2912}
2913extern "C" {
2914    pub fn GetThemeInt(name: *const c_types::c_char, deflt: c_types::c_int) -> c_types::c_int;
2915}
2916extern "C" {
2917    pub fn GetThemeString(
2918        name: *const c_types::c_char,
2919        deflt: *const c_types::c_char,
2920    ) -> *const c_types::c_char;
2921}
2922extern "C" {
2923    pub fn GetThemeFont(name: *const c_types::c_char, deflt: *const c_types::c_char) -> *mut ifont;
2924}
2925extern "C" {
2926    pub fn GetThemeRect(
2927        name: *const c_types::c_char,
2928        rect: *mut irect,
2929        x: c_types::c_int,
2930        y: c_types::c_int,
2931        w: c_types::c_int,
2932        h: c_types::c_int,
2933        flags: c_types::c_int,
2934    );
2935}
2936extern "C" {
2937    pub fn GetKeyResource(key: *const c_types::c_char, deflt: *const ibitmap) -> *mut ibitmap;
2938}
2939extern "C" {
2940    pub fn GetSupportedFileTypes() -> *mut iv_filetype;
2941}
2942extern "C" {
2943    pub fn GetSupportedFileTypesLength() -> c_types::c_int;
2944}
2945extern "C" {
2946    pub fn GetBookInfo(name: *const c_types::c_char) -> *mut bookinfo;
2947}
2948extern "C" {
2949    pub fn GetBookInfoExt(
2950        path: *const c_types::c_char,
2951        separator: *const c_types::c_char,
2952    ) -> *mut bookinfo;
2953}
2954extern "C" {
2955    pub fn GetBookISBN(path: *const c_types::c_char) -> *mut c_types::c_char;
2956}
2957extern "C" {
2958    pub fn GetBookCover(
2959        name: *const c_types::c_char,
2960        width: c_types::c_int,
2961        height: c_types::c_int,
2962    ) -> *mut ibitmap;
2963}
2964#[repr(u32)]
2965#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
2966pub enum MencaFileStatus_e {
2967    kMencaNoStatus = 0,
2968    kMencaInCloud = 1,
2969    kMencaSyncing = 2,
2970    kMencaDownloaded = 3,
2971}
2972pub use self::MencaFileStatus_e as MencaFileStatus;
2973#[repr(C)]
2974#[derive(Debug, Copy, Clone)]
2975pub struct BookSyncStatus_s {
2976    pub menca_status_: MencaFileStatus,
2977}
2978pub type BookSyncStatus = BookSyncStatus_s;
2979extern "C" {
2980    pub fn GetBookSyncStatus(path: *const c_types::c_char) -> BookSyncStatus;
2981}
2982extern "C" {
2983    pub fn GetAssociatedFile(
2984        name: *const c_types::c_char,
2985        index: c_types::c_int,
2986    ) -> *mut c_types::c_char;
2987}
2988extern "C" {
2989    pub fn SetFileHandler(path: *const c_types::c_char, handler: *const c_types::c_char);
2990}
2991extern "C" {
2992    pub fn GetFileHandler(path: *const c_types::c_char) -> *const c_types::c_char;
2993}
2994extern "C" {
2995    pub fn OpenBook(
2996        path: *const c_types::c_char,
2997        parameters: *const c_types::c_char,
2998        flags: c_types::c_int,
2999    ) -> c_types::c_int;
3000}
3001extern "C" {
3002    pub fn GetLastOpen() -> *mut *mut c_types::c_char;
3003}
3004extern "C" {
3005    pub fn OpenLastBooks();
3006}
3007#[repr(u32)]
3008#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
3009pub enum AudioPlayerType_e {
3010    kAudioPlayer = 1,
3011    kAudioBooks = 2,
3012    kBrowser = 4,
3013}
3014pub use self::AudioPlayerType_e as AudioPlayerType;
3015#[repr(C)]
3016#[derive(Copy, Clone)]
3017pub struct AudioPlayingInfo_s {
3018    pub type_: AudioPlayerType,
3019    pub pid: c_types::c_int,
3020    pub title: [c_types::c_char; 512usize],
3021    pub author: [c_types::c_char; 512usize],
3022    pub duration: [c_types::c_char; 32usize],
3023    pub percent: c_types::c_int,
3024    pub play_state: c_types::c_int,
3025}
3026pub type AudioPlayingInfo = AudioPlayingInfo_s;
3027extern "C" {
3028    pub fn OpenPlayer();
3029}
3030extern "C" {
3031    pub fn ClosePlayer();
3032}
3033extern "C" {
3034    pub fn LoadPlaylist(pl: *mut *mut c_types::c_char);
3035}
3036extern "C" {
3037    pub fn GetPlaylist() -> *mut *mut c_types::c_char;
3038}
3039extern "C" {
3040    pub fn GetCurrentTrack() -> c_types::c_int;
3041}
3042extern "C" {
3043    pub fn GetTrackSize() -> c_types::c_int;
3044}
3045extern "C" {
3046    pub fn SetTrackPosition(pos: c_types::c_int);
3047}
3048extern "C" {
3049    pub fn GetTrackPosition() -> c_types::c_int;
3050}
3051extern "C" {
3052    pub fn SetPlayerState(state: c_types::c_int);
3053}
3054extern "C" {
3055    pub fn GetPlayerState() -> c_types::c_int;
3056}
3057extern "C" {
3058    pub fn SetPlayerMode(mode: c_types::c_int);
3059}
3060extern "C" {
3061    pub fn GetPlayerMode() -> c_types::c_int;
3062}
3063extern "C" {
3064    pub fn SetVolume(n: c_types::c_int);
3065}
3066extern "C" {
3067    pub fn GetVolume() -> c_types::c_int;
3068}
3069extern "C" {
3070    pub fn SetEqualizer(eq: *mut c_types::c_int);
3071}
3072extern "C" {
3073    pub fn GetEqualizer(eq: *mut c_types::c_int);
3074}
3075extern "C" {
3076    pub fn SetAudioPlayingInfo(info: AudioPlayingInfo) -> c_types::c_int;
3077}
3078extern "C" {
3079    pub fn GetAudioPlayingInfo(info: *mut AudioPlayingInfo) -> c_types::c_int;
3080}
3081extern "C" {
3082    pub fn GetHighVolumeTimeout() -> c_types::c_int;
3083}
3084extern "C" {
3085    pub fn LoadHighVolumeTimeout();
3086}
3087extern "C" {
3088    pub fn SaveHighVolumeTimeout();
3089}
3090extern "C" {
3091    pub fn GetSafeVolumeLimit() -> c_types::c_int;
3092}
3093extern "C" {
3094    pub fn GetHighVolumeMaxInterval() -> c_types::c_int;
3095}
3096extern "C" {
3097    pub fn OpenNotepad(name: *const c_types::c_char);
3098}
3099extern "C" {
3100    pub fn OpenNotesMenu(
3101        filename: *const c_types::c_char,
3102        title: *const c_types::c_char,
3103        position: c_types::c_longlong,
3104    );
3105}
3106extern "C" {
3107    pub fn OpenDictionary(name: *const c_types::c_char) -> c_types::c_int;
3108}
3109extern "C" {
3110    pub fn CloseDictionary();
3111}
3112extern "C" {
3113    pub fn GetWordListWithPrefix(
3114        prefix_utf8: *const c_types::c_char,
3115        maxWords: c_types::c_int,
3116        wordList: *mut *mut *mut c_types::c_char,
3117    ) -> c_types::c_int;
3118}
3119extern "C" {
3120    pub fn OpenDictionaryView(wordlist: *mut iv_wlist, dicname: *const c_types::c_char);
3121}
3122extern "C" {
3123    pub fn OpenControlledDictionaryView(
3124        pointer_handler: pointer_to_word_hand_t,
3125        wordlist: *mut iv_wlist,
3126        dicname: *const c_types::c_char,
3127    );
3128}
3129extern "C" {
3130    pub fn OpenFastTranslation(
3131        pointer_handler: pointer_to_word_hand_t,
3132        wordlist: *mut iv_wlist,
3133        pos: c_types::c_int,
3134        dicname: *const c_types::c_char,
3135    );
3136}
3137extern "C" {
3138    pub fn iv_reflow_start(
3139        x: c_types::c_int,
3140        y: c_types::c_int,
3141        w: c_types::c_int,
3142        h: c_types::c_int,
3143        scale: c_types::c_int,
3144    );
3145}
3146extern "C" {
3147    pub fn iv_reflow_bt();
3148}
3149extern "C" {
3150    pub fn iv_reflow_et();
3151}
3152extern "C" {
3153    pub fn iv_reflow_div();
3154}
3155extern "C" {
3156    pub fn iv_reflow_addchar(
3157        code: c_types::c_int,
3158        x: c_types::c_int,
3159        y: c_types::c_int,
3160        w: c_types::c_int,
3161        h: c_types::c_int,
3162    );
3163}
3164extern "C" {
3165    pub fn iv_reflow_addimage(
3166        x: c_types::c_int,
3167        y: c_types::c_int,
3168        w: c_types::c_int,
3169        h: c_types::c_int,
3170        flags: c_types::c_int,
3171    );
3172}
3173extern "C" {
3174    pub fn iv_reflow_subpages() -> c_types::c_int;
3175}
3176extern "C" {
3177    pub fn iv_reflow_render(spnum: c_types::c_int);
3178}
3179extern "C" {
3180    pub fn iv_reflow_getchar(x: *mut c_types::c_int, y: *mut c_types::c_int) -> c_types::c_int;
3181}
3182extern "C" {
3183    pub fn iv_reflow_getimage(
3184        x: *mut c_types::c_int,
3185        y: *mut c_types::c_int,
3186        scale: *mut c_types::c_int,
3187    ) -> c_types::c_int;
3188}
3189extern "C" {
3190    pub fn iv_reflow_words() -> c_types::c_int;
3191}
3192extern "C" {
3193    pub fn iv_reflow_getword(
3194        n: c_types::c_int,
3195        spnum: *mut c_types::c_int,
3196        x: *mut c_types::c_int,
3197        y: *mut c_types::c_int,
3198        w: *mut c_types::c_int,
3199        h: *mut c_types::c_int,
3200    ) -> *mut c_types::c_char;
3201}
3202extern "C" {
3203    pub fn iv_reflow_clear();
3204}
3205extern "C" {
3206    pub fn ClearAllScrolledAreas();
3207}
3208extern "C" {
3209    pub fn SetMinimalXScrollIndent(area: *mut irect, Xindent: c_types::c_int);
3210}
3211extern "C" {
3212    pub fn SetMinimalYScrollIndent(area: *mut irect, Yindent: c_types::c_int);
3213}
3214extern "C" {
3215    pub fn SetCurrentApplicationAttribute(attribute: APPLICATION_ATTRIBUTE, on: c_types::c_int);
3216}
3217extern "C" {
3218    pub fn iv_fullscreen();
3219}
3220extern "C" {
3221    pub fn iv_nofullscreen();
3222}
3223extern "C" {
3224    pub fn iv_sleepmode(on: c_types::c_int);
3225}
3226extern "C" {
3227    pub fn GetSleepmode() -> c_types::c_int;
3228}
3229extern "C" {
3230    pub fn GetBatteryPower() -> c_types::c_int;
3231}
3232extern "C" {
3233    pub fn GetTemperature() -> c_types::c_int;
3234}
3235extern "C" {
3236    pub fn GetDeviceModel() -> *mut c_types::c_char;
3237}
3238extern "C" {
3239    pub fn GetHardwareType() -> *mut c_types::c_char;
3240}
3241extern "C" {
3242    pub fn GetSoftwareVersion() -> *mut c_types::c_char;
3243}
3244extern "C" {
3245    pub fn GetSerialSoftwareInfo(
3246        device_model: *mut *mut c_types::c_char,
3247        major_version: *mut c_types::c_int,
3248        minor_version: *mut c_types::c_int,
3249        build_version: *mut c_types::c_int,
3250    ) -> c_types::c_int;
3251}
3252extern "C" {
3253    pub fn GetHardwareDepth() -> c_types::c_int;
3254}
3255extern "C" {
3256    pub fn GetSerialNumber() -> *mut c_types::c_char;
3257}
3258extern "C" {
3259    pub fn GetExternalCardSerialNumber() -> *const c_types::c_char;
3260}
3261extern "C" {
3262    pub fn GetWaveformFilename() -> *mut c_types::c_char;
3263}
3264extern "C" {
3265    pub fn GetDeviceKey() -> *mut c_types::c_char;
3266}
3267extern "C" {
3268    pub fn GetDeviceFingerprint() -> *mut c_types::c_uchar;
3269}
3270extern "C" {
3271    pub fn SetAutoPowerOff(en: c_types::c_int);
3272}
3273extern "C" {
3274    pub fn OpenMainMenu();
3275}
3276extern "C" {
3277    pub fn CloseAllTasks();
3278}
3279extern "C" {
3280    pub fn OpenCalendar();
3281}
3282extern "C" {
3283    pub fn GetWiFiScanResults(aps: *mut iv_wifi_ap_list) -> *mut iv_wifi_ap_list;
3284}
3285extern "C" {
3286    pub fn GetHwAddress() -> *mut c_types::c_char;
3287}
3288extern "C" {
3289    pub fn GetHwBTAddress() -> *mut c_types::c_char;
3290}
3291extern "C" {
3292    pub fn GetBluetoothMode() -> c_types::c_int;
3293}
3294extern "C" {
3295    pub fn SetBluetoothMode(mode: c_types::c_int, flags: c_types::c_int) -> c_types::c_int;
3296}
3297extern "C" {
3298    pub fn GetBluetoothStatus() -> bt_state;
3299}
3300extern "C" {
3301    pub fn SetBluetoothOn() -> c_types::c_int;
3302}
3303extern "C" {
3304    pub fn SetBluetoothOff() -> c_types::c_int;
3305}
3306extern "C" {
3307    pub fn OpenBTdevicesMenu(
3308        title: *mut c_types::c_char,
3309        x: c_types::c_int,
3310        y: c_types::c_int,
3311        hproc: iv_itemchangehandler,
3312    );
3313}
3314extern "C" {
3315    pub fn GetBTservice(
3316        mac: *const c_types::c_char,
3317        service: *const c_types::c_char,
3318    ) -> c_types::c_int;
3319}
3320extern "C" {
3321    pub fn OpenNetworkInfo();
3322}
3323extern "C" {
3324    pub fn GetUserAgent() -> *mut c_types::c_char;
3325}
3326extern "C" {
3327    pub fn GetDefaultUserAgent() -> *mut c_types::c_char;
3328}
3329extern "C" {
3330    pub fn GetProxyUrl() -> *mut c_types::c_char;
3331}
3332extern "C" {
3333    pub fn CloseSession(id: c_types::c_int);
3334}
3335extern "C" {
3336    pub fn SetUserAgent(id: c_types::c_int, ua: *const c_types::c_char);
3337}
3338extern "C" {
3339    pub fn SetProxy(
3340        id: c_types::c_int,
3341        host: *const c_types::c_char,
3342        port: c_types::c_int,
3343        user: *const c_types::c_char,
3344        pass: *const c_types::c_char,
3345    );
3346}
3347extern "C" {
3348    pub fn SetSessionFlag(
3349        _id: c_types::c_int,
3350        _flag: c_types::c_int,
3351        _value: *mut c_types::c_void,
3352    ) -> c_types::c_int;
3353}
3354extern "C" {
3355    pub fn GetSessionStatus(id: c_types::c_int) -> c_types::c_int;
3356}
3357extern "C" {
3358    pub fn GetHeader(id: c_types::c_int, name: *const c_types::c_char) -> *const c_types::c_char;
3359}
3360extern "C" {
3361    pub fn GetSessionInfo(id: c_types::c_int) -> *mut iv_sessioninfo;
3362}
3363extern "C" {
3364    pub fn SetPort(port: c_types::c_int);
3365}
3366extern "C" {
3367    pub fn GetTouchInfo() -> *mut iv_mtinfo;
3368}
3369extern "C" {
3370    pub fn GetTouchInfoI(index: c_types::c_uint) -> *mut iv_mtinfo;
3371}
3372extern "C" {
3373    pub fn iv_strcmp(s1: *const c_types::c_char, s2: *const c_types::c_char) -> c_types::c_int;
3374}
3375extern "C" {
3376    pub fn iv_strncmp(
3377        s1: *const c_types::c_char,
3378        s2: *const c_types::c_char,
3379        n: size_t,
3380    ) -> c_types::c_int;
3381}
3382extern "C" {
3383    pub fn iv_strcasecmp(s1: *const c_types::c_char, s2: *const c_types::c_char) -> c_types::c_int;
3384}
3385extern "C" {
3386    pub fn iv_strncasecmp(
3387        s1: *const c_types::c_char,
3388        s2: *const c_types::c_char,
3389        n: size_t,
3390    ) -> c_types::c_int;
3391}
3392extern "C" {
3393    pub fn GetDialogShow() -> c_types::c_int;
3394}
3395extern "C" {
3396    pub fn SetMenuFont(font: *mut ifont);
3397}
3398extern "C" {
3399    pub fn iv_get_obreey_status() -> c_types::c_int;
3400}
3401#[repr(C)]
3402#[derive(Debug, Copy, Clone)]
3403pub struct icustombubble_s {
3404    pub type_: c_types::c_int,
3405    pub bubble_pos: irect,
3406    pub arrow_pos: irect,
3407    pub arrow_bmp: *mut ibitmap,
3408    pub icon_bmp: *mut ibitmap,
3409    pub text_pos: irect,
3410    pub font: *mut ifont,
3411    pub text: *mut c_types::c_char,
3412}
3413pub type icustombubble = icustombubble_s;
3414#[repr(C)]
3415#[derive(Debug, Copy, Clone)]
3416pub struct icustomhero_s {
3417    pub pos: irect,
3418    pub name: *mut c_types::c_char,
3419    pub hero_bmp: *mut ibitmap,
3420    pub max_bubbles: c_types::c_int,
3421    pub bubbles: *mut *mut irect,
3422}
3423pub type icustomhero = icustomhero_s;
3424pub type iv_custombubbledraw =
3425    ::core::option::Option<unsafe extern "C" fn(bubble: *mut icustombubble)>;
3426pub type iv_customherodraw = ::core::option::Option<unsafe extern "C" fn(hero: *mut icustomhero)>;
3427extern "C" {
3428    pub fn GetNetInfo(interface: *const network_interface) -> *mut network_interface_info;
3429}
3430extern "C" {
3431    pub fn GetNetGateway(interface: *const network_interface) -> *mut network_interface;
3432}
3433extern "C" {
3434    pub fn GetNetDNS() -> *mut network_interface_array;
3435}
3436extern "C" {
3437    pub fn GetNetSignalQuality() -> c_types::c_int;
3438}
3439extern "C" {
3440    pub fn GetNetState() -> NET_STATE;
3441}
3442extern "C" {
3443    pub fn GetLastNetConnectionError() -> c_types::c_int;
3444}
3445extern "C" {
3446    pub fn GetNetList(path: *const c_types::c_char) -> c_types::c_int;
3447}
3448extern "C" {
3449    pub fn CopyBitmapNoTrack(bm: *const ibitmap) -> *mut ibitmap;
3450}
3451extern "C" {
3452    pub fn iv_usleep(__useconds: __useconds_t) -> c_types::c_int;
3453}
3454#[repr(i32)]
3455#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, FromPrimitive)]
3456pub enum Button {
3457    BUTTON1 = 0,
3458    BUTTON2 = 4096,
3459    BUTTON3 = 8192,
3460}
3461#[repr(i32)]
3462#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, FromPrimitive)]
3463pub enum Dither {
3464    THRESHOLD = 0,
3465    PATTERN = 1,
3466    DIFFUSION = 2,
3467}
3468#[repr(i32)]
3469#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, FromPrimitive)]
3470pub enum Event {
3471    INIT = 21,
3472    EXIT = 22,
3473    SHOW = 23,
3474    HIDE = 24,
3475    KEYPRESS = 25,
3476    KEYRELEASE = 26,
3477    KEYREPEAT = 28,
3478    POINTERUP = 29,
3479    POINTERDOWN = 30,
3480    POINTERMOVE = 31,
3481    ORIENTATION = 32,
3482    SCROLL = 33,
3483    POINTERLONG = 34,
3484    POINTERHOLD = 35,
3485    FOCUS = 36,
3486    UNFOCUS = 37,
3487    ACTIVATE = 38,
3488    MTSYNC = 39,
3489    TOUCHUP = 40,
3490    TOUCHDOWN = 41,
3491    TOUCHMOVE = 42,
3492    REPAINT = 43,
3493    POINTERDRAG = 44,
3494    POINTERCANCEL = 45,
3495    QN_MOVE = 51,
3496    QN_RELEASE = 52,
3497    QN_BORDER = 53,
3498    SNAPSHOT = 71,
3499    FSINCOMING = 72,
3500    FSCHANGED = 73,
3501    MP_STATECHANGED = 81,
3502    MP_TRACKCHANGED = 82,
3503    PREVPAGE = 91,
3504    NEXTPAGE = 92,
3505    OPENDIC = 93,
3506    CONTROL_PANEL_ABOUT_TO_OPEN = 94,
3507    UPDATE = 95,
3508    PANEL_BLUETOOTH_A2DP = 118,
3509    TAB = 119,
3510    PANEL = 120,
3511    PANEL_ICON = 121,
3512    PANEL_TEXT = 122,
3513    PANEL_PROGRESS = 123,
3514    PANEL_MPLAYER = 124,
3515    PANEL_USBDRIVE = 125,
3516    PANEL_NETWORK = 126,
3517    PANEL_CLOCK = 127,
3518    PANEL_BLUETOOTH = 128,
3519    PANEL_TASKLIST = 129,
3520    PANEL_OBREEY_SYNC = 130,
3521    PANEL_SETREADINGMODE = 131,
3522    PANEL_SETREADINGMODE_INVERT = 132,
3523    PANEL_FRONT_LIGHT = 133,
3524    GLOBALREQUEST = 149,
3525    GLOBALACTION = 150,
3526    FOREGROUND = 151,
3527    BACKGROUND = 152,
3528    SUBTASKCLOSE = 153,
3529    CONFIGCHANGED = 154,
3530    SAVESTATE = 155,
3531    OBREEY_CONFIG_CHANGED = 156,
3532    SDIN = 161,
3533    SDOUT = 162,
3534    BT_RXCOMPLETE = 171,
3535    BT_TXCOMPLETE = 172,
3536    SYNTH_ENDED = 200,
3537    DIC_CLOSED = 201,
3538    SHOW_KEYBOARD = 202,
3539    TEXTCLEAR = 209,
3540    EXT_KB = 210,
3541    LETTER = 211,
3542    CALLBACK = 212,
3543    SCANPROGRESS = 213,
3544    STOPSCAN = 214,
3545    STARTSCAN = 215,
3546    SCANSTOPPED = 216,
3547    POSTPONE_TIMED_POWEROFF = 217,
3548    FRAME_ACTIVATED = 218,
3549    FRAME_DEACTIVATED = 219,
3550    READ_PROGRESS_CHANGED = 220,
3551    DUMP_BITMAPS_DEBUG_INFO = 221,
3552    NET_CONNECTED = 256,
3553    NET_DISCONNECTED = 257,
3554    NET_FOUND_NEW_FW = 260,
3555    SYNTH_POSITION = 261,
3556    ASYNC_TASK_FINISHED = 262,
3557    STOP_PLAYING = 263,
3558    AVRCP_COMMAND = 264,
3559    AUDIO_CHANGED = 265,
3560}
3561#[repr(i32)]
3562#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, FromPrimitive)]
3563pub enum Icon {
3564    INFORMATION = 1,
3565    QUESTION = 2,
3566    WARNING = 3,
3567    ERROR = 4,
3568    WIFI = 5,
3569}
3570#[repr(i32)]
3571#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, FromPrimitive)]
3572pub enum Key {
3573    POWER = 1,
3574    COVEROPEN = 2,
3575    COVERCLOSE = 3,
3576    MENU_POWER = 4,
3577    ZOOMOUT = 6,
3578    ZOOMIN = 7,
3579    DELETE = 8,
3580    OK = 10,
3581    SHIFT = 14,
3582    LANGUAGECHANGE = 15,
3583    KEYBOARDCLOSE = 16,
3584    UP = 17,
3585    DOWN = 18,
3586    LEFT = 19,
3587    RIGHT = 20,
3588    MINUS = 21,
3589    PLUS = 22,
3590    MENU = 23,
3591    PREV = 24,
3592    NEXT = 25,
3593    HOME = 26,
3594    BACK = 27,
3595    PREV2 = 28,
3596    NEXT2 = 29,
3597    MUSIC = 30,
3598    KEY0 = 48,
3599    KEY1 = 49,
3600    KEY2 = 50,
3601    KEY3 = 51,
3602    KEY4 = 52,
3603    KEY5 = 53,
3604    KEY6 = 54,
3605    KEY7 = 55,
3606    KEY8 = 56,
3607    KEY9 = 57,
3608}
3609#[repr(i32)]
3610#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, FromPrimitive)]
3611pub enum Request {
3612    KEYLOCK = 65,
3613    MAINMENU = 66,
3614    EXIT = 67,
3615    LASTOPEN = 68,
3616    PROFILES = 69,
3617    SCREENSHOT = 70,
3618    CALC = 71,
3619    PLAYER = 72,
3620    PLAYPAUSE = 73,
3621    VOLUMEUP = 74,
3622    VOLUMEDOWN = 75,
3623    NETWORK = 76,
3624    BTSWITCH = 77,
3625    DROPCONN = 78,
3626    TASKMGR = 79,
3627    SWITCHTASK = 80,
3628    FLIPTASK = 81,
3629    KILLTASK = 82,
3630    POWEROFF = 83,
3631    OPENBOOK = 84,
3632    BOOKSTATE = 85,
3633    BOOKOPENED = 86,
3634    HEADCHNG = 87,
3635    OPENBOOK2 = 88,
3636    FRONTLIGHT = 89,
3637    KEYUNLOCK = 90,
3638    HOURGLASS = 91,
3639    MESSAGEBOX = 92,
3640    KEYHARDLOCK = 93,
3641    PB_CLOUD_NEW_POSITION = 94,
3642    PREVTRACK = 95,
3643    NEXTTRACK = 96,
3644}