043ebca136
Add mode to play multiple mpeg files in the same directory in the order the file browser shows. In this mode, Mpegplayer exits after finishing the last .mpg file. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28667 a1c6a512-1295-4272-9138-f99709370657
115 lines
2.8 KiB
C
115 lines
2.8 KiB
C
|
|
#include "plugin.h"
|
|
|
|
#define SETTINGS_VERSION 5
|
|
#define SETTINGS_MIN_VERSION 1
|
|
#define SETTINGS_FILENAME "mpegplayer.cfg"
|
|
|
|
#if defined(TOSHIBA_GIGABEAT_F) || defined(SANSA_E200) || defined(SANSA_C200) \
|
|
|| defined(IRIVER_H10) || defined(COWON_D2) || defined(PHILIPS_HDD1630) \
|
|
|| defined(SANSA_FUZE) || defined(SANSA_E200V2) || defined(SANSA_FUZEV2) \
|
|
|| defined(TOSHIBA_GIGABEAT_S)
|
|
#define MPEG_OPTION_DITHERING_ENABLED 1
|
|
#endif
|
|
|
|
#ifndef MPEG_OPTION_DITHERING_ENABLED
|
|
#define MPEG_OPTION_DITHERING_ENABLED 0
|
|
#endif
|
|
|
|
enum mpeg_option_id
|
|
{
|
|
#if MPEG_OPTION_DITHERING_ENABLED
|
|
MPEG_OPTION_DITHERING,
|
|
#endif
|
|
MPEG_OPTION_DISPLAY_FPS,
|
|
MPEG_OPTION_LIMIT_FPS,
|
|
MPEG_OPTION_SKIP_FRAMES,
|
|
#ifdef HAVE_BACKLIGHT_BRIGHTNESS
|
|
MPEG_OPTION_BACKLIGHT_BRIGHTNESS,
|
|
#endif
|
|
};
|
|
|
|
enum mpeg_audio_option_id
|
|
{
|
|
MPEG_AUDIO_TONE_CONTROLS,
|
|
MPEG_AUDIO_CHANNEL_MODES,
|
|
MPEG_AUDIO_CROSSFEED,
|
|
MPEG_AUDIO_EQUALIZER,
|
|
MPEG_AUDIO_DITHERING,
|
|
};
|
|
|
|
enum mpeg_resume_id
|
|
{
|
|
MPEG_RESUME_MENU_ALWAYS = 0,
|
|
MPEG_RESUME_MENU_IF_INCOMPLETE,
|
|
MPEG_RESUME_RESTART,
|
|
MPEG_RESUME_ALWAYS,
|
|
MPEG_RESUME_NUM_OPTIONS,
|
|
};
|
|
|
|
enum mpeg_start_id
|
|
{
|
|
MPEG_START_RESTART,
|
|
MPEG_START_RESUME,
|
|
MPEG_START_SEEK,
|
|
MPEG_START_SETTINGS,
|
|
MPEG_START_QUIT,
|
|
MPEG_START_EXIT,
|
|
};
|
|
|
|
enum mpeg_setting_id
|
|
{
|
|
MPEG_SETTING_DISPLAY_SETTINGS,
|
|
MPEG_SETTING_AUDIO_SETTINGS,
|
|
MPEG_SETTING_ENABLE_START_MENU,
|
|
MPEG_SETTING_PLAY_MODE,
|
|
MPEG_SETTING_CLEAR_RESUMES,
|
|
};
|
|
|
|
enum mpeg_menu_id
|
|
{
|
|
MPEG_MENU_SETTINGS,
|
|
MPEG_MENU_RESUME,
|
|
MPEG_MENU_QUIT,
|
|
};
|
|
|
|
struct mpeg_settings {
|
|
int showfps; /* flag to display fps */
|
|
int limitfps; /* flag to limit fps */
|
|
int skipframes; /* flag to skip frames */
|
|
int resume_options; /* type of resume action at start */
|
|
int resume_count; /* total # of resumes in config file */
|
|
int resume_time; /* resume time for current mpeg (in half minutes) */
|
|
char resume_filename[MAX_PATH]; /* filename of current mpeg */
|
|
#if MPEG_OPTION_DITHERING_ENABLED
|
|
int displayoptions;
|
|
#endif
|
|
int play_mode; /* play single file or all files in directory */
|
|
/* Audio options - simple on/off specification */
|
|
int tone_controls;
|
|
int channel_modes;
|
|
int crossfeed;
|
|
int equalizer;
|
|
int dithering;
|
|
/* Backlight options */
|
|
#ifdef HAVE_BACKLIGHT_BRIGHTNESS
|
|
int backlight_brightness;
|
|
#endif
|
|
};
|
|
|
|
extern struct mpeg_settings settings;
|
|
|
|
int mpeg_start_menu(uint32_t duration);
|
|
int mpeg_menu(void);
|
|
|
|
void mpeg_menu_sysevent_clear(void);
|
|
long mpeg_menu_sysevent(void);
|
|
int mpeg_menu_sysevent_callback(int btn, const struct menu_item_ex *menu);
|
|
void mpeg_menu_sysevent_handle(void);
|
|
|
|
void init_settings(const char* filename);
|
|
void save_settings(void);
|
|
|
|
#ifdef HAVE_BACKLIGHT_BRIGHTNESS
|
|
void mpeg_backlight_update_brightness(int value);
|
|
#endif
|