allow to play audiofiles with multiformat player; split into video and audio

Origin commit data
------------------
Branch: ni/coolstream
Commit: ab3b4993ae
Author: vanhofen <vanhofen@gmx.de>
Date: 2017-10-28 (Sat, 28 Oct 2017)

Origin message was:
------------------
- allow to play audiofiles with multiformat player; split into video and audio

------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
vanhofen
2017-10-28 19:13:45 +02:00
parent 8815c20c50
commit 1e886e96a8
13 changed files with 121 additions and 64 deletions

View File

@@ -1071,6 +1071,7 @@ mainmenu.games Spiele
mainmenu.head Hauptmenü
mainmenu.lua Plugins
mainmenu.media Multimedia
mainmenu.mediaplayer Mediaplayer
mainmenu.movieplayer Movieplayer
mainmenu.pausesectionsd EPG auslesen
mainmenu.pictureviewer Bildbetrachter
@@ -2032,7 +2033,8 @@ movieplayer.bookmarkname Bookmark Name
movieplayer.bookmarkname_hint1 Geben Sie den Namen für das neue Lesezeichen ein
movieplayer.bookmarkname_hint2
movieplayer.chapters Kapitel
movieplayer.fileplayback Abspielen (Multiformat)
movieplayer.fileplayback_audio Multiformat-Audioplayer
movieplayer.fileplayback_video Multiformat-Videoplayer
movieplayer.head Movieplayer
movieplayer.help_additional Weitere benutzerdefinierte Tastenbelegungen sind unter "Hauptmenü" > "Einstellungen" > "Tasten" > "Bearbeiten" > "Movieplayer" zu finden.\n\nWährend der Wiedergabe von Filmen sind im Hauptmenü einige Menüpunkte deaktiviert.
movieplayer.help_button_1 1 Minute zurück

View File

@@ -1070,6 +1070,7 @@ mainmenu.games Games
mainmenu.head Main Menu
mainmenu.lua Lua Plugins
mainmenu.media Media
mainmenu.mediaplayer Mediaplayer
mainmenu.movieplayer Movieplayer
mainmenu.pausesectionsd Read EPG
mainmenu.pictureviewer Picture viewer
@@ -2031,7 +2032,8 @@ movieplayer.bookmarkname Bookmarkname
movieplayer.bookmarkname_hint1 Enter a name for your new bookmark
movieplayer.bookmarkname_hint2
movieplayer.chapters Chapters
movieplayer.fileplayback File play
movieplayer.fileplayback_audio Multiformat audioplayer
movieplayer.fileplayback_video Multiformat videoplayer
movieplayer.head Movieplayer
movieplayer.help_additional To find more user definable key bindings, see "Mainmenu" > "Settings" > "Keys" > "Edit" > "Movieplayer".\n\nWhile movie playback some menuitems in mainmenu are deactivated.
movieplayer.help_button_1 1 minute backward

View File

@@ -928,7 +928,7 @@ bool CFileBrowser::exec(const char * const dirname)
return res;
}
bool CFileBrowser::playlist_manager(CFileList &playlist, unsigned int playing)
bool CFileBrowser::playlist_manager(CFileList &playlist, unsigned int playing, bool is_audio_player)
{
neutrino_msg_t msg;
neutrino_msg_data_t data;
@@ -1065,7 +1065,7 @@ bool CFileBrowser::playlist_manager(CFileList &playlist, unsigned int playing)
addfiles->Hide_records = true;
addfiles->Multi_Select = true;
addfiles->Dirs_Selectable = true;
addfiles->exec(g_settings.network_nfs_moviedir.c_str());
addfiles->exec(is_audio_player ? g_settings.network_nfs_audioplayerdir.c_str() : g_settings.network_nfs_moviedir.c_str());
CFileList tmplist = addfiles->getSelectedFiles();
filelist.insert( filelist.end(), tmplist.begin(), tmplist.end() );
tmplist.clear();

View File

@@ -220,7 +220,7 @@ class CFileBrowser
~CFileBrowser();
bool exec(const char * const dirname);
bool playlist_manager(CFileList &playlist,unsigned int playing);
bool playlist_manager(CFileList &playlist, unsigned int playing, bool is_audio_player = false);
CFile *getSelectedFile();
inline const CFileList & getSelectedFiles(void) const

View File

@@ -156,7 +156,7 @@ int CMediaPlayerMenu::initMenuMedia(CMenuWidget *m, CPersonalizeGui *p)
personalize->addItem(multimedia_menu, fw_inet, &g_settings.personalize[SNeutrinoSettings::P_MEDIA_INETPLAY]);
//init movieplayer submenu
CMenuWidget *movieplayer_menu = new CMenuWidget(LOCALE_MAINMENU_MOVIEPLAYER, NEUTRINO_ICON_MULTIMEDIA, width, MN_WIDGET_ID_MEDIA_MOVIEPLAYER);
CMenuWidget *movieplayer_menu = new CMenuWidget(LOCALE_MAINMENU_MEDIAPLAYER, NEUTRINO_ICON_MULTIMEDIA, width, MN_WIDGET_ID_MEDIA_MOVIEPLAYER);
personalize->addWidget(movieplayer_menu);
personalize->addIntroItems(movieplayer_menu);
@@ -165,18 +165,23 @@ int CMediaPlayerMenu::initMenuMedia(CMenuWidget *m, CPersonalizeGui *p)
fw_mbrowser->setHint(NEUTRINO_ICON_HINT_MB, LOCALE_MENU_HINT_MB);
personalize->addItem(movieplayer_menu, fw_mbrowser, &g_settings.personalize[SNeutrinoSettings::P_MPLAYER_MBROWSER]);
//fileplayback
CMenuForwarder *fw_fileplay = new CMenuForwarder(LOCALE_MOVIEPLAYER_FILEPLAYBACK, true, NULL, &CMoviePlayerGui::getInstance(), "fileplayback", CRCInput::RC_green);
fw_fileplay->setHint(NEUTRINO_ICON_HINT_FILEPLAY, LOCALE_MENU_HINT_FILEPLAY);
personalize->addItem(movieplayer_menu, fw_fileplay, &g_settings.personalize[SNeutrinoSettings::P_MPLAYER_FILEPLAY]);
//fileplayback video
CMenuForwarder *fw_fileplay_video = new CMenuForwarder(LOCALE_MOVIEPLAYER_FILEPLAYBACK_VIDEO, true, NULL, &CMoviePlayerGui::getInstance(), "fileplayback_video", CRCInput::RC_green);
fw_fileplay_video->setHint(NEUTRINO_ICON_HINT_FILEPLAY, LOCALE_MENU_HINT_FILEPLAY);
personalize->addItem(movieplayer_menu, fw_fileplay_video, &g_settings.personalize[SNeutrinoSettings::P_MPLAYER_FILEPLAY_VIDEO]);
//fileplayback audio
CMenuForwarder *fw_fileplay_audio = new CMenuForwarder(LOCALE_MOVIEPLAYER_FILEPLAYBACK_AUDIO, true, NULL, &CMoviePlayerGui::getInstance(), "fileplayback_audio", CRCInput::RC_yellow);
fw_fileplay_audio->setHint(NEUTRINO_ICON_HINT_FILEPLAY, LOCALE_MENU_HINT_FILEPLAY);
personalize->addItem(movieplayer_menu, fw_fileplay_audio, &g_settings.personalize[SNeutrinoSettings::P_MPLAYER_FILEPLAY_AUDIO]);
//ytplayback
CMenuForwarder *fw_ytplay = new CMenuForwarder(LOCALE_MOVIEPLAYER_YTPLAYBACK, g_settings.youtube_enabled, NULL, &CMoviePlayerGui::getInstance(), "ytplayback", CRCInput::RC_yellow);
CMenuForwarder *fw_ytplay = new CMenuForwarder(LOCALE_MOVIEPLAYER_YTPLAYBACK, g_settings.youtube_enabled, NULL, &CMoviePlayerGui::getInstance(), "ytplayback", CRCInput::RC_blue);
fw_ytplay->setHint(NEUTRINO_ICON_HINT_YTPLAY, LOCALE_MENU_HINT_YTPLAY);
personalize->addItem(movieplayer_menu, fw_ytplay, &g_settings.personalize[SNeutrinoSettings::P_MPLAYER_YTPLAY]);
//add movieplayer submenu
CMenuForwarder *fw_mp = new CMenuForwarder(LOCALE_MAINMENU_MOVIEPLAYER, enabled, NULL, movieplayer_menu, NULL, CRCInput::RC_yellow);
CMenuForwarder *fw_mp = new CMenuForwarder(LOCALE_MAINMENU_MEDIAPLAYER, enabled, NULL, movieplayer_menu, NULL, CRCInput::RC_yellow);
fw_mp->setHint(NEUTRINO_ICON_HINT_MOVIE, LOCALE_MENU_HINT_MOVIE);
personalize->addItem(multimedia_menu, fw_mp, &g_settings.personalize[SNeutrinoSettings::P_MEDIA_MPLAYER], false, CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION);

View File

@@ -198,35 +198,49 @@ void CMoviePlayerGui::Init(void)
if (bookmarkmanager == NULL)
bookmarkmanager = new CBookmarkManager();
tsfilefilter.addFilter("ts");
#if HAVE_TRIPLEDRAGON
tsfilefilter.addFilter("vdr");
#else
tsfilefilter.addFilter("avi");
tsfilefilter.addFilter("mkv");
tsfilefilter.addFilter("wav");
tsfilefilter.addFilter("asf");
tsfilefilter.addFilter("aiff");
#endif
tsfilefilter.addFilter("mpg");
tsfilefilter.addFilter("mpeg");
tsfilefilter.addFilter("m2p");
tsfilefilter.addFilter("mpv");
tsfilefilter.addFilter("vob");
tsfilefilter.addFilter("m2ts");
tsfilefilter.addFilter("mp4");
tsfilefilter.addFilter("mov");
tsfilefilter.addFilter("m3u");
tsfilefilter.addFilter("m3u8");
tsfilefilter.addFilter("pls");
tsfilefilter.addFilter("iso");
#if HAVE_SPARK_HARDWARE || HAVE_DUCKBOX_HARDWARE
tsfilefilter.addFilter("trp");
tsfilefilter.addFilter("vdr");
tsfilefilter.addFilter("mp3");
tsfilefilter.addFilter("flv");
tsfilefilter.addFilter("wmv");
// video files
filefilter_video.addFilter("ts");
#if !HAVE_TRIPLEDRAGON
filefilter_video.addFilter("asf");
filefilter_video.addFilter("avi");
filefilter_video.addFilter("mkv");
#endif
filefilter_video.addFilter("flv");
filefilter_video.addFilter("iso");
filefilter_video.addFilter("m2p");
filefilter_video.addFilter("m2ts");
filefilter_video.addFilter("mov");
filefilter_video.addFilter("mp4");
filefilter_video.addFilter("mpeg");
filefilter_video.addFilter("mpg");
filefilter_video.addFilter("mpv");
filefilter_video.addFilter("pls");
filefilter_video.addFilter("trp");
filefilter_video.addFilter("vdr");
filefilter_video.addFilter("vob");
filefilter_video.addFilter("wmv");
// video playlists
filefilter_video.addFilter("m3u");
filefilter_video.addFilter("m3u8");
// audio files
filefilter_audio.addFilter("aac");
filefilter_audio.addFilter("aif");
filefilter_audio.addFilter("aiff");
filefilter_audio.addFilter("cdr");
filefilter_audio.addFilter("dts");
filefilter_audio.addFilter("flac");
filefilter_audio.addFilter("flv");
filefilter_audio.addFilter("m2a");
filefilter_audio.addFilter("m4a");
filefilter_audio.addFilter("mp2");
filefilter_audio.addFilter("mp3");
filefilter_audio.addFilter("mpa");
filefilter_audio.addFilter("ogg");
filefilter_audio.addFilter("wav");
// audio playlists
filefilter_audio.addFilter("m3u");
filefilter_audio.addFilter("m3u8");
if (g_settings.network_nfs_moviedir.empty())
Path_local = "/";
@@ -238,7 +252,7 @@ void CMoviePlayerGui::Init(void)
else
filebrowser = new CFileBrowser();
filebrowser->Filter = &tsfilefilter;
// filebrowser->Filter is set in exec() function
filebrowser->Hide_records = true;
filebrowser->Multi_Select = true;
filebrowser->Dirs_Selectable = true;
@@ -301,6 +315,9 @@ void CMoviePlayerGui::cutNeutrino()
g_Zapit->setStandby(true);
#endif
if (is_audio_player)
frameBuffer->showFrame("mp3.jpg");
m_LastMode = (CNeutrinoApp::getInstance()->getMode() /*| NeutrinoMessages::norezap*/);
if (isWebTV)
m_LastMode |= NeutrinoMessages::norezap;
@@ -370,17 +387,22 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey)
parent->hide();
//NI
if (actionKey == "fileplayback" || actionKey == "tsmoviebrowser")
if (actionKey == "fileplayback_video" || actionKey == "fileplayback_audio" || actionKey == "tsmoviebrowser")
{
if(actionKey == "fileplayback") {
if (actionKey == "fileplayback_video") {
printf("[movieplayer] wakeup_hdd(%s) for %s\n", g_settings.network_nfs_moviedir.c_str(), actionKey.c_str());
wakeup_hdd(g_settings.network_nfs_moviedir.c_str(),true);
wakeup_hdd(g_settings.network_nfs_moviedir.c_str(), true);
}
else if (actionKey == "fileplayback_audio") {
printf("[movieplayer] wakeup_hdd(%s) for %s\n", g_settings.network_nfs_audioplayerdir.c_str(), actionKey.c_str());
wakeup_hdd(g_settings.network_nfs_audioplayerdir.c_str(), true);
}
else {
printf("[movieplayer] wakeup_hdd(%s) for %s\n", g_settings.network_nfs_recordingdir.c_str(), actionKey.c_str());
wakeup_hdd(g_settings.network_nfs_recordingdir.c_str(),true);
wakeup_hdd(g_settings.network_nfs_recordingdir.c_str(), true);
}
}
if (!access(MOVIEPLAYER_START_SCRIPT, X_OK)) {
puts("[movieplayer.cpp] executing " MOVIEPLAYER_START_SCRIPT ".");
if (my_system(MOVIEPLAYER_START_SCRIPT) != 0)
@@ -399,7 +421,7 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey)
if (actionKey == "tsmoviebrowser") {
isMovieBrowser = true;
moviebrowser->setMode(MB_SHOW_RECORDS);
wakeup_hdd(g_settings.network_nfs_recordingdir.c_str());
//wakeup_hdd(g_settings.network_nfs_recordingdir.c_str());
}
#if 0
else if (actionKey == "ytplayback") {
@@ -408,8 +430,17 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey)
isYT = true;
}
#endif
else if (actionKey == "fileplayback") {
wakeup_hdd(g_settings.network_nfs_moviedir.c_str());
else if (actionKey == "fileplayback_video") {
is_audio_player = false;
if (filebrowser)
filebrowser->Filter = &filefilter_video;
//wakeup_hdd(g_settings.network_nfs_moviedir.c_str());
}
else if (actionKey == "fileplayback_audio") {
is_audio_player = true;
if (filebrowser)
filebrowser->Filter = &filefilter_audio;
//wakeup_hdd(g_settings.network_nfs_audioplayerdir.c_str());
}
else if (actionKey == "timeshift") {
timeshift = TSHIFT_MODE_ON;
@@ -660,6 +691,7 @@ void CMoviePlayerGui::ClearFlags()
isWebTV = false;
isYT = false;
is_file_player = false;
is_audio_player = false;
timeshift = TSHIFT_MODE_OFF;
}
@@ -763,12 +795,19 @@ bool CMoviePlayerGui::SelectFile()
file_name.clear();
cookie_header.clear();
//reinit Path_local for webif reloadsetup
if (g_settings.network_nfs_moviedir.empty())
Path_local = "/";
Path_local = "/";
if (is_audio_player)
{
if (!g_settings.network_nfs_audioplayerdir.empty())
Path_local = g_settings.network_nfs_audioplayerdir;
}
else
Path_local = g_settings.network_nfs_moviedir;
{
if (!g_settings.network_nfs_moviedir.empty())
Path_local = g_settings.network_nfs_moviedir;
}
printf("CMoviePlayerGui::SelectFile: isBookmark %d timeshift %d isMovieBrowser %d\n", isBookmark, timeshift, isMovieBrowser);
printf("CMoviePlayerGui::SelectFile: isBookmark %d timeshift %d isMovieBrowser %d is_audio_player %d\n", isBookmark, timeshift, isMovieBrowser, is_audio_player);
//NI wakeup_hdd(g_settings.network_nfs_recordingdir.c_str());
if (timeshift != TSHIFT_MODE_OFF) {
@@ -839,7 +878,8 @@ bool CMoviePlayerGui::SelectFile()
menu_ret = filebrowser->getMenuRet();
enableOsdElements(MUTE);
}
g_settings.network_nfs_moviedir = Path_local;
if (!is_audio_player)
g_settings.network_nfs_moviedir = Path_local;
return ret;
}
@@ -1743,7 +1783,7 @@ void CMoviePlayerGui::PlayFileLoop(void)
pfile = &(*filelist_it);
int selected = std::distance( filelist.begin(), filelist_it );
filelist_it = filelist.end();
if (playlist->playlist_manager(filelist, selected))
if (playlist->playlist_manager(filelist, selected, is_audio_player))
{
playstate = CMoviePlayerGui::STOPPED;
CFile *sfile = NULL;
@@ -1837,7 +1877,7 @@ void CMoviePlayerGui::PlayFileLoop(void)
CFile *pfile = NULL;
int selected = std::distance( filelist.begin(), filelist_it );
filelist_it = filelist.end();
if (playlist->playlist_manager(filelist, selected))
if (playlist->playlist_manager(filelist, selected, is_audio_player))
{
playstate = CMoviePlayerGui::STOPPED;
CFile *sfile = NULL;

View File

@@ -189,10 +189,12 @@ class CMoviePlayerGui : public CMenuTarget
/* playback from file */
bool is_file_player;
bool is_audio_player;
bool iso_file;
bool stopped;
CFileBrowser * filebrowser;
CFileFilter tsfilefilter;
CFileFilter filefilter_video;
CFileFilter filefilter_audio;
CFileList filelist;
CFileList::iterator filelist_it;
CFileList::iterator vzap_it;

View File

@@ -443,10 +443,10 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg)
menu_item->setHint(NEUTRINO_ICON_HINT_YTPLAY, LOCALE_MENU_HINT_YTPLAY);
break;
}
case SNeutrinoSettings::ITEM_FILEPLAY:
case SNeutrinoSettings::ITEM_FILEPLAY_VIDEO:
{
keyhelper.get(&key,&icon);
menu_item = new CMenuForwarder(LOCALE_MOVIEPLAYER_FILEPLAYBACK, !_mode_ts, NULL, neutrino, "fileplayback", key, icon);
menu_item = new CMenuForwarder(LOCALE_MOVIEPLAYER_FILEPLAYBACK_VIDEO, !_mode_ts, NULL, neutrino, "fileplayback_video", key, icon);
menu_item->setHint(NEUTRINO_ICON_HINT_FILEPLAY, LOCALE_MENU_HINT_FILEPLAY);
break;
}

View File

@@ -93,7 +93,7 @@ static keyvals usermenu_items[] =
{ SNeutrinoSettings::ITEM_CAMD_RESET, LOCALE_CAMD_RESET, usermenu_show }, //NI
{ SNeutrinoSettings::ITEM_INFOICONS, LOCALE_INFOICONS_SWITCH_ON, usermenu_show }, //NI
{ SNeutrinoSettings::ITEM_YOUTUBE, LOCALE_MOVIEPLAYER_YTPLAYBACK, usermenu_show },
{ SNeutrinoSettings::ITEM_FILEPLAY, LOCALE_MOVIEPLAYER_FILEPLAYBACK, usermenu_show },
{ SNeutrinoSettings::ITEM_FILEPLAY_VIDEO, LOCALE_MOVIEPLAYER_FILEPLAYBACK_VIDEO, usermenu_show },
{ SNeutrinoSettings::ITEM_TOOLS, LOCALE_MAINMENU_TOOLS, usermenu_show },
{ SNeutrinoSettings::ITEM_LUA, LOCALE_MAINMENU_LUA, usermenu_show },
{ SNeutrinoSettings::ITEM_TUNER_RESTART, LOCALE_SERVICEMENU_RESTART_TUNER, usermenu_show }, //NI

View File

@@ -1097,6 +1097,7 @@ typedef enum
LOCALE_MAINMENU_HEAD,
LOCALE_MAINMENU_LUA,
LOCALE_MAINMENU_MEDIA,
LOCALE_MAINMENU_MEDIAPLAYER,
LOCALE_MAINMENU_MOVIEPLAYER,
LOCALE_MAINMENU_PAUSESECTIONSD,
LOCALE_MAINMENU_PICTUREVIEWER,
@@ -2058,7 +2059,8 @@ typedef enum
LOCALE_MOVIEPLAYER_BOOKMARKNAME_HINT1,
LOCALE_MOVIEPLAYER_BOOKMARKNAME_HINT2,
LOCALE_MOVIEPLAYER_CHAPTERS,
LOCALE_MOVIEPLAYER_FILEPLAYBACK,
LOCALE_MOVIEPLAYER_FILEPLAYBACK_AUDIO,
LOCALE_MOVIEPLAYER_FILEPLAYBACK_VIDEO,
LOCALE_MOVIEPLAYER_HEAD,
LOCALE_MOVIEPLAYER_HELP_ADDITIONAL,
LOCALE_MOVIEPLAYER_HELP_BUTTON_1,

View File

@@ -1097,6 +1097,7 @@ const char * locale_real_names[] =
"mainmenu.head",
"mainmenu.lua",
"mainmenu.media",
"mainmenu.mediaplayer",
"mainmenu.movieplayer",
"mainmenu.pausesectionsd",
"mainmenu.pictureviewer",
@@ -2058,7 +2059,8 @@ const char * locale_real_names[] =
"movieplayer.bookmarkname_hint1",
"movieplayer.bookmarkname_hint2",
"movieplayer.chapters",
"movieplayer.fileplayback",
"movieplayer.fileplayback_audio",
"movieplayer.fileplayback_video",
"movieplayer.head",
"movieplayer.help_additional",
"movieplayer.help_button_1",

View File

@@ -99,7 +99,8 @@ const struct personalize_settings_t personalize_settings[SNeutrinoSettings::P_SE
//media menu->movieplayer
{"personalize_mplayer_mbrowswer" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE},
{"personalize_mplayer_fileplay" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE},
{"personalize_mplayer_fileplay_video" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE},
{"personalize_mplayer_fileplay_audio" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE},
{"personalize_mplayer_ytplay" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE},
//key

View File

@@ -400,7 +400,8 @@ struct SNeutrinoSettings
//movieplayer menu
P_MPLAYER_MBROWSER,
P_MPLAYER_FILEPLAY,
P_MPLAYER_FILEPLAY_VIDEO,
P_MPLAYER_FILEPLAY_AUDIO,
P_MPLAYER_YTPLAY,
//feature keys
@@ -915,7 +916,7 @@ struct SNeutrinoSettings
ITEM_CAMD_RESET = 23, //NI
ITEM_INFOICONS = 24, //NI
ITEM_YOUTUBE = 25,
ITEM_FILEPLAY = 26,
ITEM_FILEPLAY_VIDEO = 26,
ITEM_TOOLS = 27,
ITEM_LUA = 28,
ITEM_TUNER_RESTART = 29, //NI