summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2009-10-25 12:56:11 +0000
committerphintuka <phintuka>2009-10-25 12:56:11 +0000
commite005e232a4a934b443e6fdf1a9455564237be904 (patch)
tree73dc92ccf9f399bfb43f49f5ea7df8efd67bc879
parent70d437d4beabd0254c618e2f491e26c06c4d94ac (diff)
downloadxineliboutput-e005e232a4a934b443e6fdf1a9455564237be904.tar.gz
xineliboutput-e005e232a4a934b443e6fdf1a9455564237be904.tar.bz2
Added setup options for selecting items in media player menu
-rw-r--r--config.c4
-rw-r--r--config.h12
-rw-r--r--menu.c36
-rw-r--r--setup_menu.c18
4 files changed, 52 insertions, 18 deletions
diff --git a/config.c b/config.c
index 6bbc1cac..33cc3960 100644
--- a/config.c
+++ b/config.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: config.c,v 1.85 2009-08-19 13:12:10 phintuka Exp $
+ * $Id: config.c,v 1.86 2009-10-25 12:56:11 phintuka Exp $
*
*/
@@ -668,6 +668,7 @@ config_t::config_t() {
cache_implicit_playlists = 1;
enable_id3_scanner = 1;
dvd_arrow_keys_control_playback = 1;
+ media_menu_items = ~0;
main_menu_mode = ShowMenu;
force_primary_device = 0;
@@ -923,6 +924,7 @@ bool config_t::SetupParse(const char *Name, const char *Value)
else if (!strcasecmp(Name, "Media.CacheImplicitPlaylists")) cache_implicit_playlists = atoi(Value);
else if (!strcasecmp(Name, "Media.EnableID3Scanner")) enable_id3_scanner = atoi(Value);
else if (!strcasecmp(Name, "Media.DVD.ArrowKeysControlPlayback")) dvd_arrow_keys_control_playback = atoi(Value);
+ else if (!strcasecmp(Name, "Media.MenuItems")) media_menu_items = atoi(Value);
else if (!strcasecmp(Name, "Playlist.Tracknumber")) playlist_tracknumber = atoi(Value);
else if (!strcasecmp(Name, "Playlist.Artist")) playlist_artist = atoi(Value);
diff --git a/config.h b/config.h
index e399b092..ec7dc2c2 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: config.h,v 1.64 2009-08-19 13:12:10 phintuka Exp $
+ * $Id: config.h,v 1.65 2009-10-25 12:56:11 phintuka Exp $
*
*/
@@ -166,6 +166,15 @@
#define OSD_SIZE_custom 4
#define OSD_SIZE_count 5
+// Media player menu (bitmask)
+#define MEDIA_MENU_FILES (1<<0)
+#define MEDIA_MENU_MUSIC (1<<1)
+#define MEDIA_MENU_IMAGES (1<<2)
+#define MEDIA_MENU_DVD (1<<3)
+#define MEDIA_MENU_CD (1<<4)
+#define MEDIA_MENU_VIDEO_SETUP (1<<6)
+#define MEDIA_MENU_AUDIO_SETUP (1<<7)
+
// Video decoder
#define DECODER_MPEG2_auto 0 /* use value from frontend config_xineliboutput */
#define DECODER_MPEG2_LIBMPEG2 1
@@ -318,6 +327,7 @@ class config_t {
int playlist_artist;
int playlist_album;
int dvd_arrow_keys_control_playback;
+ uint media_menu_items; // enabled items in media player menu (bitmask)
// Audio visualization
char audio_visualization[64];
diff --git a/menu.c b/menu.c
index fa7c56a1..689827de 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c,v 1.68 2009-08-03 12:40:09 phintuka Exp $
+ * $Id: menu.c,v 1.69 2009-10-25 12:56:11 phintuka Exp $
*
*/
@@ -518,17 +518,26 @@ cMenuXinelib::cMenuXinelib()
novideo = cXinelibDevice::Instance().GetPlayMode() == pmAudioOnlyBlack ? 1 : 0;
Add(NewTitle(tr("Media")));
- Add(new cOsdItem(tr("Play file >>"), osUser1));
- Add(new cOsdItem(tr("Play music >>"), osUser2));
- Add(new cOsdItem(tr("View images >>"), osUser3));
- if(xc.remote_mode)
- Add(new cOsdItem(tr("Play remote DVD >>"), osUser4));
- else
- Add(new cOsdItem(tr("Play DVD disc >>"), osUser4));
- if(xc.remote_mode)
- Add(new cOsdItem(tr("Play remote CD >>"), osUser6));
- else
- Add(new cOsdItem(tr("Play audio CD >>"), osUser6));
+ if (xc.media_menu_items & MEDIA_MENU_FILES)
+ Add(new cOsdItem(tr("Play file >>"), osUser1));
+ if (xc.media_menu_items & MEDIA_MENU_MUSIC)
+ Add(new cOsdItem(tr("Play music >>"), osUser2));
+ if (xc.media_menu_items & MEDIA_MENU_IMAGES)
+ Add(new cOsdItem(tr("View images >>"), osUser3));
+ if (xc.media_menu_items & MEDIA_MENU_DVD) {
+ if(xc.remote_mode)
+ Add(new cOsdItem(tr("Play remote DVD >>"), osUser4));
+ else
+ Add(new cOsdItem(tr("Play DVD disc >>"), osUser4));
+ }
+ if (xc.media_menu_items & MEDIA_MENU_CD) {
+ if(xc.remote_mode)
+ Add(new cOsdItem(tr("Play remote CD >>"), osUser6));
+ else
+ Add(new cOsdItem(tr("Play audio CD >>"), osUser6));
+ }
+
+ if (xc.media_menu_items & MEDIA_MENU_VIDEO_SETUP) {
Add(NewTitle(tr("Video settings")));
Add(ctrl_novideo = new cMenuEditBoolItem(tr("Play only audio"),
&novideo));
@@ -541,7 +550,9 @@ cMenuXinelib::cMenuXinelib()
Add(video_ctrl_interlace_order = new cMenuEditStraI18nItem(tr("Interlaced Field Order"),
&field_order, 2, xc.s_fieldOrder));
#endif
+ }
+ if (xc.media_menu_items & MEDIA_MENU_AUDIO_SETUP) {
Add(NewTitle(tr("Audio settings")));
#ifdef ENABLE_TEST_POSTPLUGINS
Add(ctrl_headphone = new cMenuEditBoolItem(tr("Headphone audio mode"),
@@ -554,6 +565,7 @@ cMenuXinelib::cMenuXinelib()
&compression, 100, 500, NULL, tr("Off")));
Add(new cOsdItem(tr("Audio equalizer >>"), osUser7));
+ }
switch(xc.main_menu_mode) {
case ShowFiles: AddSubMenu(new cMenuBrowseFiles(ShowFiles)); break;
diff --git a/setup_menu.c b/setup_menu.c
index ed962003..426dc31b 100644
--- a/setup_menu.c
+++ b/setup_menu.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: setup_menu.c,v 1.71 2009-08-07 12:29:31 phintuka Exp $
+ * $Id: setup_menu.c,v 1.72 2009-10-25 12:56:11 phintuka Exp $
*
*/
@@ -1675,27 +1675,37 @@ void cMenuSetupMediaPlayer::Set(void)
Add(new cMenuEditBoolItem(tr("Arrow keys control DVD playback"),
&newconfig.dvd_arrow_keys_control_playback));
+ Add(NewTitle(tr("Media Player")));
+ Add(new cMenuEditBitItem(tr("Play file >>"), &newconfig.media_menu_items, MEDIA_MENU_FILES));
+ Add(new cMenuEditBitItem(tr("Play music >>"), &newconfig.media_menu_items, MEDIA_MENU_MUSIC));
+ Add(new cMenuEditBitItem(tr("View images >>"), &newconfig.media_menu_items, MEDIA_MENU_IMAGES));
+ Add(new cMenuEditBitItem(tr("Play DVD disc >>"), &newconfig.media_menu_items, MEDIA_MENU_DVD));
+ Add(new cMenuEditBitItem(tr("Play audio CD >>"), &newconfig.media_menu_items, MEDIA_MENU_CD));
+ Add(new cMenuEditBitItem(tr("Video settings"), &newconfig.media_menu_items, MEDIA_MENU_VIDEO_SETUP));
+ Add(new cMenuEditBitItem(tr("Audio settings"), &newconfig.media_menu_items, MEDIA_MENU_AUDIO_SETUP));
+
if(current<1) current=1; /* first item is not selectable */
SetCurrent(Get(current));
Display();
}
eOSState cMenuSetupMediaPlayer::ProcessKey(eKeys Key)
-{
+{
eOSState state = cMenuSetupPage::ProcessKey(Key);
return state;
}
void cMenuSetupMediaPlayer::Store(void)
-{
+{
memcpy(&xc, &newconfig, sizeof(config_t));
-
+
SetupStore("Playlist.Tracknumber", xc.playlist_tracknumber);
SetupStore("Playlist.Album", xc.playlist_album);
SetupStore("Playlist.Artist", xc.playlist_artist);
SetupStore("Media.CacheImplicitPlaylists", xc.cache_implicit_playlists);
SetupStore("Media.EnableID3Scanner", xc.enable_id3_scanner);
SetupStore("Media.DVD.ArrowKeysControlPlayback", xc.dvd_arrow_keys_control_playback);
+ SetupStore("Media.MenuItems", xc.media_menu_items);
Setup.Save();
}