A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 110 lines 2.7 kB view raw
1 2#include "plugin.h" 3 4#define SETTINGS_VERSION 5 5#define SETTINGS_MIN_VERSION 1 6#define SETTINGS_FILENAME "mpegplayer.cfg" 7 8#if defined(TOSHIBA_GIGABEAT_F) || defined(SANSA_E200) || defined(SANSA_C200) \ 9 || defined(IRIVER_H10) || defined(COWON_D2) || defined(PHILIPS_HDD1630) \ 10 || defined(SANSA_FUZE) || defined(SANSA_E200V2) || defined(SANSA_FUZEV2) \ 11 || defined(TOSHIBA_GIGABEAT_S) || defined(PHILIPS_SA9200) 12#define MPEG_OPTION_DITHERING_ENABLED 1 13#endif 14 15#ifndef MPEG_OPTION_DITHERING_ENABLED 16#define MPEG_OPTION_DITHERING_ENABLED 0 17#endif 18 19enum mpeg_option_id 20{ 21#if MPEG_OPTION_DITHERING_ENABLED 22 MPEG_OPTION_DITHERING, 23#endif 24 MPEG_OPTION_DISPLAY_FPS, 25 MPEG_OPTION_LIMIT_FPS, 26 MPEG_OPTION_SKIP_FRAMES, 27#ifdef HAVE_BACKLIGHT_BRIGHTNESS 28 MPEG_OPTION_BACKLIGHT_BRIGHTNESS, 29#endif 30}; 31 32enum mpeg_audio_option_id 33{ 34 MPEG_AUDIO_TONE_CONTROLS, 35 MPEG_AUDIO_CHANNEL_MODES, 36 MPEG_AUDIO_CROSSFEED, 37 MPEG_AUDIO_EQUALIZER, 38 MPEG_AUDIO_DITHERING, 39}; 40 41enum mpeg_resume_id 42{ 43 MPEG_RESUME_MENU_ALWAYS = 0, 44 MPEG_RESUME_MENU_IF_INCOMPLETE, 45 MPEG_RESUME_RESTART, 46 MPEG_RESUME_ALWAYS, 47 MPEG_RESUME_NUM_OPTIONS, 48}; 49 50enum mpeg_start_id 51{ 52 MPEG_START_RESTART, 53 MPEG_START_RESUME, 54 MPEG_START_SEEK, 55 MPEG_START_SETTINGS, 56 MPEG_START_QUIT, 57 MPEG_START_EXIT, 58}; 59 60enum mpeg_setting_id 61{ 62 MPEG_SETTING_DISPLAY_SETTINGS, 63 MPEG_SETTING_AUDIO_SETTINGS, 64 MPEG_SETTING_ENABLE_START_MENU, 65 MPEG_SETTING_PLAY_MODE, 66 MPEG_SETTING_CLEAR_RESUMES, 67}; 68 69enum mpeg_menu_id 70{ 71 MPEG_MENU_SETTINGS, 72 MPEG_MENU_RESUME, 73 MPEG_MENU_QUIT, 74}; 75 76struct mpeg_settings { 77 int showfps; /* flag to display fps */ 78 int limitfps; /* flag to limit fps */ 79 int skipframes; /* flag to skip frames */ 80 int resume_options; /* type of resume action at start */ 81 int resume_count; /* total # of resumes in config file */ 82 int resume_time; /* resume time for current mpeg (in half minutes) */ 83 char resume_filename[MAX_PATH]; /* filename of current mpeg */ 84#if MPEG_OPTION_DITHERING_ENABLED 85 int displayoptions; 86#endif 87 int play_mode; /* play single file or all files in directory */ 88 /* Audio options - simple on/off specification */ 89 int tone_controls; 90 int channel_modes; 91 int crossfeed; 92 int equalizer; 93 int dithering; 94 /* Backlight options */ 95#ifdef HAVE_BACKLIGHT_BRIGHTNESS 96 int backlight_brightness; 97#endif 98}; 99 100extern struct mpeg_settings settings; 101 102int mpeg_start_menu(uint32_t duration); 103int mpeg_menu(void); 104 105void init_settings(const char* filename); 106void save_settings(void); 107 108#ifdef HAVE_BACKLIGHT_BRIGHTNESS 109void mpeg_backlight_update_brightness(int value); 110#endif