c16f8885dcd9b2f1c3c8e1c1b00b1e6daf2aa201
[picodrive.git] / plat.h
1 #ifdef __cplusplus
2 extern "C" {
3 #endif
4
5 /* stuff to be implemented by platform code */
6 extern const char *renderer_names[];
7 extern const char *renderer_names32x[];
8
9 void pemu_prep_defconfig(void);
10 void pemu_validate_config(void);
11 void pemu_loop_prep(void);
12 void pemu_loop_end(void);
13 void pemu_forced_frame(int no_scale, int do_emu); // ..to g_menubg_src_ptr
14 void pemu_finalize_frame(const char *fps, const char *notice_msg);
15
16 void pemu_sound_start(void);
17 void pemu_sound_stop(void);
18 void pemu_sound_wait(void);
19
20 void plat_early_init(void);
21 void plat_init(void);
22 void plat_finish(void);
23
24 /* return the dir/ where configs, saves, bios, etc. are found */
25 int  plat_get_root_dir(char *dst, int len);
26
27 /* used before things blocking for a while (these funcs redraw on return) */
28 void plat_status_msg_busy_first(const char *msg);
29 void plat_status_msg_busy_next(const char *msg);
30 void plat_status_msg_clear(void);
31
32 /* menu: enter (switch bpp, etc), begin/end drawing */
33 void plat_video_menu_enter(int is_rom_loaded);
34 void plat_video_menu_begin(void);
35 void plat_video_menu_end(void);
36
37 void plat_video_flip(void);
38 void plat_video_wait_vsync(void);
39 void plat_video_toggle_renderer(int change, int menu_call);
40
41 void plat_update_volume(int has_changed, int is_up);
42
43 int  plat_is_dir(const char *path);
44 int  plat_wait_event(int *fds_hnds, int count, int timeout_ms);
45 void plat_sleep_ms(int ms);
46
47 /* timers, to be used for time diff and must refer to the same clock */
48 unsigned int plat_get_ticks_ms(void);
49 unsigned int plat_get_ticks_us(void);
50 void plat_wait_till_us(unsigned int us);
51
52 const char  *plat_get_credits(void);
53 void plat_debug_cat(char *str);
54
55 #ifdef __cplusplus
56 } // extern "C"
57 #endif
58