mpegplayer: Make playback engine fully seekable and frame-accurate and split into...
[Rockbox.git] / apps / plugins / mpegplayer / mpeg_settings.h
blob3186c73f2cd5e4bd5eedee27018dea93c5a14667
2 #include "plugin.h"
4 #if defined(TOSHIBA_GIGABEAT_F) || defined(SANSA_E200) || defined(SANSA_C200)
5 #define MPEG_OPTION_DITHERING_ENABLED 1
6 #endif
8 #ifndef MPEG_OPTION_DITHERING_ENABLED
9 #define MPEG_OPTION_DITHERING_ENABLED 0
10 #endif
12 enum mpeg_option_id
14 #if MPEG_OPTION_DITHERING_ENABLED
15 MPEG_OPTION_DITHERING,
16 #endif
17 MPEG_OPTION_DISPLAY_FPS,
18 MPEG_OPTION_LIMIT_FPS,
19 MPEG_OPTION_SKIP_FRAMES,
22 enum mpeg_start_id
24 MPEG_START_RESTART,
25 MPEG_START_RESUME,
26 MPEG_START_SEEK,
27 MPEG_START_QUIT,
30 enum mpeg_menu_id
32 MPEG_MENU_DISPLAY_SETTINGS,
33 MPEG_MENU_ENABLE_START_MENU,
34 MPEG_MENU_CLEAR_RESUMES,
35 MPEG_MENU_QUIT,
38 struct mpeg_settings {
39 int showfps; /* flag to display fps */
40 int limitfps; /* flag to limit fps */
41 int skipframes; /* flag to skip frames */
42 int enable_start_menu; /* flag to enable/disable start menu */
43 int resume_count; /* total # of resumes in config file */
44 int resume_time; /* resume time for current mpeg (in half minutes) */
45 char resume_filename[MAX_PATH]; /* filename of current mpeg */
46 #if MPEG_OPTION_DITHERING_ENABLED
47 int displayoptions;
48 #endif
51 extern struct mpeg_settings settings;
53 int get_start_time(uint32_t duration);
54 enum mpeg_start_id mpeg_start_menu(uint32_t duration);
55 enum mpeg_menu_id mpeg_menu(void);
56 void init_settings(const char* filename);
57 void save_settings(void);
58 void clear_resume_count(void);