mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-30 17:01:15 +02:00
gui/moviebrowser.cpp: add support for marked file list to play
This commit is contained in:
@@ -73,7 +73,7 @@ OpenThreads::Condition CMoviePlayerGui::cond;
|
||||
CMoviePlayerGui& CMoviePlayerGui::getInstance()
|
||||
{
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> m_lock(bgmutex);
|
||||
if ( !instance_mp )
|
||||
if (!instance_mp )
|
||||
{
|
||||
instance_mp = new CMoviePlayerGui();
|
||||
printf("[neutrino CMoviePlayerGui] Instance created...\n");
|
||||
@@ -94,7 +94,6 @@ CMoviePlayerGui::~CMoviePlayerGui()
|
||||
delete filebrowser;
|
||||
delete bookmarkmanager;
|
||||
delete playback;
|
||||
filelist.clear();
|
||||
instance_mp = NULL;
|
||||
}
|
||||
|
||||
@@ -226,25 +225,14 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey)
|
||||
perror(MOVIEPLAYER_START_SCRIPT " failed");
|
||||
|
||||
Cleanup();
|
||||
|
||||
isMovieBrowser = false;
|
||||
isBookmark = false;
|
||||
timeshift = 0;
|
||||
isHTTP = false;
|
||||
isUPNP = false;
|
||||
isWebTV = false;
|
||||
isYT = false;
|
||||
|
||||
filelist_it = filelist.end();
|
||||
filelist.clear();
|
||||
ClearFlags();
|
||||
ClearQueue();
|
||||
|
||||
if (actionKey == "tsmoviebrowser") {
|
||||
isMovieBrowser = true;
|
||||
moviebrowser->setMode(MB_SHOW_RECORDS);
|
||||
}
|
||||
else if (actionKey == "ytplayback") {
|
||||
CAudioMute::getInstance()->enableMuteIcon(false);
|
||||
InfoClock->enableInfoClock(false);
|
||||
isMovieBrowser = true;
|
||||
moviebrowser->setMode(MB_SHOW_YT);
|
||||
isYT = true;
|
||||
@@ -267,12 +255,12 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey)
|
||||
#endif
|
||||
else if (actionKey == "upnp") {
|
||||
isUPNP = true;
|
||||
is_file_player = 1;
|
||||
is_file_player = false;
|
||||
PlayFile();
|
||||
}
|
||||
else if (actionKey == "http") {
|
||||
isHTTP = true;
|
||||
is_file_player = 1;
|
||||
is_file_player = false;
|
||||
PlayFile();
|
||||
}
|
||||
else {
|
||||
@@ -280,7 +268,7 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey)
|
||||
}
|
||||
|
||||
while(!isHTTP && !isUPNP && SelectFile()) {
|
||||
if(timeshift != TSHIFT_MODE_OFF) {
|
||||
if (timeshift != TSHIFT_MODE_OFF) {
|
||||
PlayFile();
|
||||
break;
|
||||
}
|
||||
@@ -298,12 +286,7 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey)
|
||||
|
||||
CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO);
|
||||
|
||||
if (isYT) {
|
||||
CAudioMute::getInstance()->enableMuteIcon(true);
|
||||
InfoClock->enableInfoClock(true);
|
||||
}
|
||||
|
||||
if (timeshift){
|
||||
if (timeshift) {
|
||||
timeshift = 0;
|
||||
return menu_return::RETURN_EXIT_ALL;
|
||||
}
|
||||
@@ -353,11 +336,11 @@ void CMoviePlayerGui::updateLcd()
|
||||
|
||||
void CMoviePlayerGui::fillPids()
|
||||
{
|
||||
if(p_movie_info == NULL)
|
||||
if (p_movie_info == NULL)
|
||||
return;
|
||||
|
||||
numpida = 0; currentapid = 0;
|
||||
if(!p_movie_info->audioPids.empty()) {
|
||||
if (!p_movie_info->audioPids.empty()) {
|
||||
currentapid = p_movie_info->audioPids[0].epgAudioPid;
|
||||
currentac3 = p_movie_info->audioPids[0].atype;
|
||||
}
|
||||
@@ -376,7 +359,6 @@ void CMoviePlayerGui::fillPids()
|
||||
|
||||
void CMoviePlayerGui::Cleanup()
|
||||
{
|
||||
/*clear audiopids */
|
||||
for (int i = 0; i < numpida; i++) {
|
||||
apids[i] = 0;
|
||||
ac3flags[i] = 0;
|
||||
@@ -395,18 +377,44 @@ void CMoviePlayerGui::Cleanup()
|
||||
currentaudioname = "Unk";
|
||||
}
|
||||
|
||||
void CMoviePlayerGui::ClearFlags()
|
||||
{
|
||||
isMovieBrowser = false;
|
||||
isBookmark = false;
|
||||
isHTTP = false;
|
||||
isUPNP = false;
|
||||
isWebTV = false;
|
||||
isYT = false;
|
||||
is_file_player = false;
|
||||
timeshift = TSHIFT_MODE_OFF;
|
||||
}
|
||||
|
||||
void CMoviePlayerGui::ClearQueue()
|
||||
{
|
||||
repeat_mode = REPEAT_OFF;
|
||||
filelist.clear();
|
||||
filelist_it = filelist.end();
|
||||
milist.clear();
|
||||
}
|
||||
|
||||
void CMoviePlayerGui::EnableClockAndMute(bool enable)
|
||||
{
|
||||
CAudioMute::getInstance()->enableMuteIcon(enable);
|
||||
InfoClock->enableInfoClock(enable);
|
||||
}
|
||||
|
||||
void CMoviePlayerGui::makeFilename()
|
||||
{
|
||||
if(pretty_name.empty()) {
|
||||
if (pretty_name.empty()) {
|
||||
std::string::size_type pos = file_name.find_last_of('/');
|
||||
if(pos != std::string::npos) {
|
||||
if (pos != std::string::npos) {
|
||||
pretty_name = file_name.substr(pos+1);
|
||||
std::replace(pretty_name.begin(), pretty_name.end(), '_', ' ');
|
||||
} else
|
||||
pretty_name = file_name;
|
||||
|
||||
if(pretty_name.substr(0,14)=="videoplayback?"){//youtube name
|
||||
if(!p_movie_info->epgTitle.empty())
|
||||
if (pretty_name.substr(0,14)=="videoplayback?") {//youtube name
|
||||
if (!p_movie_info->epgTitle.empty())
|
||||
pretty_name = p_movie_info->epgTitle;
|
||||
else
|
||||
pretty_name = "";
|
||||
@@ -423,9 +431,20 @@ bool CMoviePlayerGui::prepareFile(CFile *file)
|
||||
currentspid = -1;
|
||||
numsubs = 0;
|
||||
file_name = file->Name;
|
||||
if(file->getType() == CFile::FILE_PLAYLIST)
|
||||
if (isMovieBrowser) {
|
||||
if (filelist_it != filelist.end()) {
|
||||
unsigned idx = filelist_it - filelist.begin();
|
||||
p_movie_info = &milist[idx];
|
||||
}
|
||||
if (isYT) {
|
||||
file_name = file->Url;
|
||||
is_file_player = true;
|
||||
}
|
||||
fillPids();
|
||||
}
|
||||
else if (file->getType() == CFile::FILE_PLAYLIST)
|
||||
parsePlaylist(file);
|
||||
else if(file->getType() == CFile::FILE_ISO)
|
||||
else if (file->getType() == CFile::FILE_ISO)
|
||||
ret = mountIso(file);
|
||||
|
||||
if (ret)
|
||||
@@ -453,7 +472,7 @@ bool CMoviePlayerGui::SelectFile()
|
||||
ret = true;
|
||||
}
|
||||
#if 0 // TODO
|
||||
else if(isBookmark) {
|
||||
else if (isBookmark) {
|
||||
const CBookmark * theBookmark = bookmarkmanager->getBookmark(NULL);
|
||||
if (theBookmark == NULL) {
|
||||
bookmarkmanager->flush();
|
||||
@@ -466,33 +485,29 @@ bool CMoviePlayerGui::SelectFile()
|
||||
}
|
||||
#endif
|
||||
else if (isMovieBrowser) {
|
||||
EnableClockAndMute(false);
|
||||
if (moviebrowser->exec(Path_local.c_str())) {
|
||||
// get the current path and file name
|
||||
Path_local = moviebrowser->getCurrentDir();
|
||||
CFile *file;
|
||||
if ((file = moviebrowser->getSelectedFile()) != NULL) {
|
||||
// get the movie info handle (to be used for e.g. bookmark handling)
|
||||
CFile *file = NULL;
|
||||
filelist_it = filelist.end();
|
||||
if (moviebrowser->getSelectedFiles(filelist, milist)) {
|
||||
filelist_it = filelist.begin();
|
||||
p_movie_info = &(*milist.begin());
|
||||
file = &(*filelist_it);
|
||||
}
|
||||
else if ((file = moviebrowser->getSelectedFile()) != NULL) {
|
||||
p_movie_info = moviebrowser->getCurrentMovieInfo();
|
||||
if (moviebrowser->getMode() == MB_SHOW_RECORDS) {
|
||||
file_name = file->Name;
|
||||
}
|
||||
else if (isYT) {
|
||||
file_name = file->Url;
|
||||
is_file_player = true;
|
||||
}
|
||||
fillPids();
|
||||
|
||||
// get the start position for the movie
|
||||
startposition = 1000 * moviebrowser->getCurrentStartPos();
|
||||
printf("CMoviePlayerGui::SelectFile: file %s start %d apid %X atype %d vpid %x vtype %d\n", file_name.c_str(), startposition, currentapid, currentac3, vpid, vtype);
|
||||
|
||||
ret = true;
|
||||
}
|
||||
if (p_movie_info)
|
||||
ret = prepareFile(&p_movie_info->file);
|
||||
} else
|
||||
menu_ret = moviebrowser->getMenuRet();
|
||||
EnableClockAndMute(true);
|
||||
} else { // filebrowser
|
||||
CAudioMute::getInstance()->enableMuteIcon(false);
|
||||
InfoClock->enableInfoClock(false);
|
||||
EnableClockAndMute(false);
|
||||
if (filebrowser->exec(Path_local.c_str()) == true) {
|
||||
Path_local = filebrowser->getCurrentDir();
|
||||
CFile *file = filebrowser->getSelectedFile();
|
||||
@@ -501,19 +516,15 @@ bool CMoviePlayerGui::SelectFile()
|
||||
if (filelist.size() > 0) {
|
||||
filelist_it = filelist.begin();
|
||||
file = &(*filelist_it);
|
||||
}
|
||||
}
|
||||
if (file) {
|
||||
is_file_player = true;
|
||||
ret = prepareFile(file);
|
||||
}
|
||||
} else
|
||||
menu_ret = filebrowser->getMenuRet();
|
||||
CAudioMute::getInstance()->enableMuteIcon(true);
|
||||
InfoClock->enableInfoClock(true);
|
||||
EnableClockAndMute(true);
|
||||
}
|
||||
if (ret)
|
||||
makeFilename();
|
||||
//store last multiformat play dir
|
||||
g_settings.network_nfs_moviedir = Path_local;
|
||||
|
||||
return ret;
|
||||
@@ -524,7 +535,7 @@ void *CMoviePlayerGui::ShowStartHint(void *arg)
|
||||
set_threadname(__func__);
|
||||
CMoviePlayerGui *caller = (CMoviePlayerGui *)arg;
|
||||
CHintBox *hintbox = NULL;
|
||||
if(!caller->pretty_name.empty()){
|
||||
if (!caller->pretty_name.empty()) {
|
||||
hintbox = new CHintBox(LOCALE_MOVIEPLAYER_STARTING, caller->pretty_name.c_str(), 450, NEUTRINO_ICON_MOVIEPLAYER);
|
||||
hintbox->paint();
|
||||
}
|
||||
@@ -548,7 +559,7 @@ void *CMoviePlayerGui::ShowStartHint(void *arg)
|
||||
CNeutrinoApp::getInstance()->handleMsg(msg, data);
|
||||
}
|
||||
}
|
||||
if(hintbox != NULL){
|
||||
if (hintbox != NULL) {
|
||||
hintbox->hide();
|
||||
delete hintbox;
|
||||
}
|
||||
@@ -590,25 +601,21 @@ bool CMoviePlayerGui::PlayBackgroundStart(const std::string &file, const std::st
|
||||
}
|
||||
|
||||
Cleanup();
|
||||
#if 0
|
||||
isNK = false;
|
||||
#endif
|
||||
isYT = false;
|
||||
ClearFlags();
|
||||
ClearQueue();
|
||||
|
||||
isWebTV = true;
|
||||
is_file_player = 1;
|
||||
isMovieBrowser = false;
|
||||
isUPNP = false;
|
||||
isBookmark = false;
|
||||
timeshift = TSHIFT_MODE_OFF;
|
||||
is_file_player = true;
|
||||
isHTTP = true;
|
||||
|
||||
|
||||
file_name = file;
|
||||
pretty_name = name;
|
||||
MI_MOVIE_INFO _mi;
|
||||
mi.epgTitle = name;
|
||||
mi.epgChannel = file;
|
||||
mi.epgId = chan;
|
||||
p_movie_info = &mi;
|
||||
|
||||
movie_info.epgTitle = name;
|
||||
movie_info.epgChannel = file;
|
||||
movie_info.epgId = chan;
|
||||
p_movie_info = &movie_info;
|
||||
|
||||
bool res = PlayFileStart();
|
||||
if (res) {
|
||||
@@ -685,8 +692,8 @@ bool CMoviePlayerGui::PlayFileStart(void)
|
||||
if (p_movie_info) {
|
||||
if (timeshift != TSHIFT_MODE_OFF) {
|
||||
// p_movie_info may be invalidated by CRecordManager while we're still using it. Create and use a copy.
|
||||
mi = *p_movie_info;
|
||||
p_movie_info = &mi;
|
||||
movie_info = *p_movie_info;
|
||||
p_movie_info = &movie_info;
|
||||
}
|
||||
|
||||
duration = p_movie_info->length * 60 * 1000;
|
||||
@@ -706,7 +713,7 @@ bool CMoviePlayerGui::PlayFileStart(void)
|
||||
pthread_join(thrStartHint, NULL);
|
||||
}
|
||||
|
||||
if(!res) {
|
||||
if (!res) {
|
||||
playback->Close();
|
||||
repeat_mode = REPEAT_OFF;
|
||||
return false;
|
||||
@@ -714,7 +721,7 @@ bool CMoviePlayerGui::PlayFileStart(void)
|
||||
repeat_mode = (repeat_mode_enum) g_settings.movieplayer_repeat_on;
|
||||
playstate = CMoviePlayerGui::PLAY;
|
||||
CVFD::getInstance()->ShowIcon(FP_ICON_PLAY, true);
|
||||
if(timeshift) {
|
||||
if (timeshift) {
|
||||
startposition = -1;
|
||||
int i;
|
||||
int towait = (timeshift == 1) ? TIMESHIFT_SECONDS+1 : TIMESHIFT_SECONDS;
|
||||
@@ -723,28 +730,28 @@ bool CMoviePlayerGui::PlayFileStart(void)
|
||||
startposition = (duration - position);
|
||||
|
||||
//printf("CMoviePlayerGui::PlayFile: waiting for data, position %d duration %d (%d), start %d\n", position, duration, towait, startposition);
|
||||
if(startposition > towait*1000)
|
||||
if (startposition > towait*1000)
|
||||
break;
|
||||
|
||||
usleep(20000);
|
||||
}
|
||||
if(timeshift == 3) {
|
||||
if (timeshift == 3) {
|
||||
startposition = duration;
|
||||
} else {
|
||||
if(g_settings.timeshift_pause)
|
||||
if (g_settings.timeshift_pause)
|
||||
playstate = CMoviePlayerGui::PAUSE;
|
||||
if(timeshift == 1)
|
||||
if (timeshift == 1)
|
||||
startposition = 0;
|
||||
else
|
||||
startposition = duration - TIMESHIFT_SECONDS*1000;
|
||||
}
|
||||
printf("******************* Timeshift %d, position %d, seek to %d seconds\n", timeshift, position, startposition/1000);
|
||||
}
|
||||
if(!is_file_player && startposition >= 0)//FIXME no jump for file at start yet
|
||||
if (!is_file_player && startposition >= 0)//FIXME no jump for file at start yet
|
||||
playback->SetPosition(startposition, true);
|
||||
|
||||
/* playback->Start() starts paused */
|
||||
if(timeshift == 3) {
|
||||
if (timeshift == 3) {
|
||||
speed = -1;
|
||||
playback->SetSpeed(-1);
|
||||
playstate = CMoviePlayerGui::REW;
|
||||
@@ -752,7 +759,7 @@ bool CMoviePlayerGui::PlayFileStart(void)
|
||||
FileTime.switchMode(position, duration);
|
||||
time_forced = true;
|
||||
}
|
||||
} else if(!timeshift || !g_settings.timeshift_pause) {
|
||||
} else if (!timeshift || !g_settings.timeshift_pause) {
|
||||
playback->SetSpeed(1);
|
||||
}
|
||||
}
|
||||
@@ -760,8 +767,7 @@ bool CMoviePlayerGui::PlayFileStart(void)
|
||||
if (is_file_player)
|
||||
selectAutoLang();
|
||||
|
||||
CAudioMute::getInstance()->enableMuteIcon(true);
|
||||
InfoClock->enableInfoClock(true);
|
||||
EnableClockAndMute(true);
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -794,9 +800,9 @@ void CMoviePlayerGui::PlayFileLoop(void)
|
||||
g_RCInput->getMsg(&msg, &data, 10); // 1 secs..
|
||||
|
||||
if ((playstate >= CMoviePlayerGui::PLAY) && (timeshift || (playstate != CMoviePlayerGui::PAUSE))) {
|
||||
if(playback->GetPosition(position, duration)) {
|
||||
if (playback->GetPosition(position, duration)) {
|
||||
FileTime.update(position, duration);
|
||||
if(duration > 100)
|
||||
if (duration > 100)
|
||||
file_prozent = (unsigned char) (position / (duration / 100));
|
||||
|
||||
CVFD::getInstance()->showPercentOver(file_prozent);
|
||||
@@ -837,9 +843,7 @@ void CMoviePlayerGui::PlayFileLoop(void)
|
||||
if (stop_it)
|
||||
playstate = CMoviePlayerGui::STOPPED;
|
||||
|
||||
repeat_mode = REPEAT_OFF;
|
||||
filelist.clear();
|
||||
filelist_it = filelist.end();
|
||||
ClearQueue();
|
||||
} else if ((filelist.size() > 0 && msg == (neutrino_msg_t) CRCInput::RC_right)) {
|
||||
if (filelist_it < (filelist.end() - 1)) {
|
||||
++filelist_it;
|
||||
@@ -850,18 +854,17 @@ void CMoviePlayerGui::PlayFileLoop(void)
|
||||
filelist_it = filelist.begin();
|
||||
playstate = CMoviePlayerGui::STOPPED;
|
||||
}
|
||||
} else if(filelist.size() > 1 && msg == (neutrino_msg_t) CRCInput::RC_left) {
|
||||
} else if (filelist.size() > 1 && msg == (neutrino_msg_t) CRCInput::RC_left) {
|
||||
if (filelist_it != filelist.begin()) {
|
||||
playstate = CMoviePlayerGui::STOPPED;
|
||||
--filelist_it;
|
||||
}
|
||||
} else if(!timeshift && !isWebTV && !isYT && (msg == (neutrino_msg_t) g_settings.mpkey_next_repeat_mode)) {
|
||||
} else if (!timeshift && !isWebTV /* && !isYT */ && (msg == (neutrino_msg_t) g_settings.mpkey_next_repeat_mode)) {
|
||||
repeat_mode = (repeat_mode_enum)((int)repeat_mode + 1);
|
||||
if (repeat_mode > (int) REPEAT_ALL)
|
||||
repeat_mode = REPEAT_OFF;
|
||||
g_settings.movieplayer_repeat_on = repeat_mode;
|
||||
callInfoViewer();
|
||||
|
||||
} else if (msg == (neutrino_msg_t) g_settings.mpkey_play) {
|
||||
if (time_forced) {
|
||||
time_forced = false;
|
||||
@@ -902,7 +905,7 @@ void CMoviePlayerGui::PlayFileLoop(void)
|
||||
selectAudioPid();
|
||||
update_lcd = true;
|
||||
clearSubtitle();
|
||||
} else if ( msg == (neutrino_msg_t) g_settings.mpkey_subtitle) {
|
||||
} else if (msg == (neutrino_msg_t) g_settings.mpkey_subtitle) {
|
||||
selectSubtitle();
|
||||
clearSubtitle();
|
||||
update_lcd = true;
|
||||
@@ -975,43 +978,41 @@ void CMoviePlayerGui::PlayFileLoop(void)
|
||||
callInfoViewer();
|
||||
update_lcd = true;
|
||||
clearSubtitle();
|
||||
} else if(timeshift && (msg == CRCInput::RC_text || msg == CRCInput::RC_epg || msg == NeutrinoMessages::SHOW_EPG)) {
|
||||
} else if (timeshift && (msg == CRCInput::RC_text || msg == CRCInput::RC_epg || msg == NeutrinoMessages::SHOW_EPG)) {
|
||||
bool restore = FileTime.IsVisible();
|
||||
FileTime.kill();
|
||||
|
||||
if( msg == CRCInput::RC_epg )
|
||||
if (msg == CRCInput::RC_epg )
|
||||
g_EventList->exec(CNeutrinoApp::getInstance()->channelList->getActiveChannel_ChannelID(), CNeutrinoApp::getInstance()->channelList->getActiveChannelName());
|
||||
else if(msg == NeutrinoMessages::SHOW_EPG)
|
||||
else if (msg == NeutrinoMessages::SHOW_EPG)
|
||||
g_EpgData->show(CNeutrinoApp::getInstance()->channelList->getActiveChannel_ChannelID());
|
||||
else {
|
||||
if(g_settings.cacheTXT)
|
||||
if (g_settings.cacheTXT)
|
||||
tuxtxt_stop();
|
||||
tuxtx_main(g_RCInput->getFileHandle(), g_RemoteControl->current_PIDs.PIDs.vtxtpid, 0, 2);
|
||||
frameBuffer->paintBackground();
|
||||
}
|
||||
if(restore)
|
||||
if (restore)
|
||||
FileTime.show(position);
|
||||
} else if (msg == NeutrinoMessages::SHOW_EPG) {
|
||||
handleMovieBrowser(NeutrinoMessages::SHOW_EPG, position);
|
||||
} else if (msg == (neutrino_msg_t) g_settings.key_screenshot) {
|
||||
makeScreenShot();
|
||||
} else if ( msg == NeutrinoMessages::EVT_SUBT_MESSAGE) {
|
||||
} else if (msg == NeutrinoMessages::EVT_SUBT_MESSAGE) {
|
||||
showSubtitle(data);
|
||||
} else if ( msg == NeutrinoMessages::ANNOUNCE_RECORD ||
|
||||
} else if (msg == NeutrinoMessages::ANNOUNCE_RECORD ||
|
||||
msg == NeutrinoMessages::RECORD_START) {
|
||||
CNeutrinoApp::getInstance()->handleMsg(msg, data);
|
||||
} else if ( msg == NeutrinoMessages::ZAPTO ||
|
||||
} else if (msg == NeutrinoMessages::ZAPTO ||
|
||||
msg == NeutrinoMessages::STANDBY_ON ||
|
||||
msg == NeutrinoMessages::SHUTDOWN ||
|
||||
((msg == NeutrinoMessages::SLEEPTIMER) && !data) ) { // Exit for Record/Zapto Timers
|
||||
printf("CMoviePlayerGui::PlayFile: ZAPTO etc..\n");
|
||||
if(msg != NeutrinoMessages::ZAPTO)
|
||||
if (msg != NeutrinoMessages::ZAPTO)
|
||||
menu_ret = menu_return::RETURN_EXIT_ALL;
|
||||
|
||||
playstate = CMoviePlayerGui::STOPPED;
|
||||
repeat_mode = REPEAT_OFF;
|
||||
filelist.clear();
|
||||
filelist_it = filelist.end();
|
||||
ClearQueue();
|
||||
g_RCInput->postMsg(msg, data);
|
||||
} else if (msg == CRCInput::RC_timeout || msg == NeutrinoMessages::EVT_TIMER) {
|
||||
if (playstate == CMoviePlayerGui::PLAY && (position >= 300000 || (duration<300000 && (position>(duration /2)))))
|
||||
@@ -1025,11 +1026,9 @@ void CMoviePlayerGui::PlayFileLoop(void)
|
||||
printf("CMoviePlayerGui::PlayFile: neutrino handleMsg messages_return::cancel_all\n");
|
||||
menu_ret = menu_return::RETURN_EXIT_ALL;
|
||||
playstate = CMoviePlayerGui::STOPPED;
|
||||
repeat_mode = REPEAT_OFF;
|
||||
filelist.clear();
|
||||
filelist_it = filelist.end();
|
||||
ClearQueue();
|
||||
}
|
||||
else if ( msg <= CRCInput::RC_MaxRC ) {
|
||||
else if (msg <= CRCInput::RC_MaxRC ) {
|
||||
update_lcd = true;
|
||||
clearSubtitle();
|
||||
}
|
||||
@@ -1071,8 +1070,6 @@ void CMoviePlayerGui::PlayFileEnd(bool restore)
|
||||
if (restore)
|
||||
restoreNeutrino();
|
||||
|
||||
CAudioMute::getInstance()->enableMuteIcon(false);
|
||||
InfoClock->enableInfoClock(false);
|
||||
stopped = true;
|
||||
printf("%s: stopped\n", __func__);
|
||||
if (filelist.size() > 0 && filelist_it != filelist.end()) {
|
||||
@@ -1083,7 +1080,7 @@ void CMoviePlayerGui::PlayFileEnd(bool restore)
|
||||
|
||||
void CMoviePlayerGui::callInfoViewer()
|
||||
{
|
||||
if(timeshift) {
|
||||
if (timeshift) {
|
||||
g_InfoViewer->showTitle(CNeutrinoApp::getInstance()->channelList->getActiveChannelNumber(),
|
||||
CNeutrinoApp::getInstance()->channelList->getActiveChannelName(),
|
||||
CNeutrinoApp::getInstance()->channelList->getActiveSatellitePosition(),
|
||||
@@ -1152,23 +1149,23 @@ void CMoviePlayerGui::addAudioFormat(int count, std::string &apidtitle, bool& en
|
||||
}
|
||||
}
|
||||
|
||||
void CMoviePlayerGui::getCurrentAudioName( bool file_player, std::string &audioname)
|
||||
void CMoviePlayerGui::getCurrentAudioName(bool file_player, std::string &audioname)
|
||||
{
|
||||
if(file_player && !numpida){
|
||||
if (file_player && !numpida) {
|
||||
playback->FindAllPids(apids, ac3flags, &numpida, language);
|
||||
if(numpida)
|
||||
if (numpida)
|
||||
currentapid = apids[0];
|
||||
}
|
||||
bool dumm = true;
|
||||
for (unsigned int count = 0; count < numpida; count++) {
|
||||
if(currentapid == apids[count]){
|
||||
if(!file_player){
|
||||
if (currentapid == apids[count]) {
|
||||
if (!file_player) {
|
||||
getAudioName(apids[count], audioname);
|
||||
return ;
|
||||
} else if (!language[count].empty()){
|
||||
} else if (!language[count].empty()) {
|
||||
audioname = language[count];
|
||||
addAudioFormat(count, audioname, dumm);
|
||||
if(!dumm && (count < numpida)){
|
||||
if (!dumm && (count < numpida)) {
|
||||
currentapid = apids[count+1];
|
||||
continue;
|
||||
}
|
||||
@@ -1178,7 +1175,7 @@ void CMoviePlayerGui::getCurrentAudioName( bool file_player, std::string &audion
|
||||
sprintf(apidnumber, "Stream %d %X", count + 1, apids[count]);
|
||||
audioname = apidnumber;
|
||||
addAudioFormat(count, audioname, dumm);
|
||||
if(!dumm && (count < numpida)){
|
||||
if (!dumm && (count < numpida)) {
|
||||
currentapid = apids[count+1];
|
||||
continue;
|
||||
}
|
||||
@@ -1195,9 +1192,9 @@ void CMoviePlayerGui::selectAudioPid()
|
||||
int select = -1;
|
||||
CMenuSelectorTarget * selector = new CMenuSelectorTarget(&select);
|
||||
|
||||
if(is_file_player && !numpida){
|
||||
if (is_file_player && !numpida) {
|
||||
playback->FindAllPids(apids, ac3flags, &numpida, language);
|
||||
if(numpida)
|
||||
if (numpida)
|
||||
currentapid = apids[0];
|
||||
}
|
||||
for (unsigned int count = 0; count < numpida; count++) {
|
||||
@@ -1206,10 +1203,10 @@ void CMoviePlayerGui::selectAudioPid()
|
||||
bool defpid = currentapid ? (currentapid == apids[count]) : (count == 0);
|
||||
std::string apidtitle;
|
||||
|
||||
if(!is_file_player){
|
||||
if (!is_file_player) {
|
||||
name_ok = getAudioName(apids[count], apidtitle);
|
||||
}
|
||||
else if (!language[count].empty()){
|
||||
else if (!language[count].empty()) {
|
||||
apidtitle = language[count];
|
||||
name_ok = true;
|
||||
}
|
||||
@@ -1219,7 +1216,7 @@ void CMoviePlayerGui::selectAudioPid()
|
||||
apidtitle = apidnumber;
|
||||
}
|
||||
addAudioFormat(count, apidtitle, enabled);
|
||||
if(defpid && !enabled && (count < numpida)){
|
||||
if (defpid && !enabled && (count < numpida)) {
|
||||
currentapid = apids[count+1];
|
||||
defpid = false;
|
||||
}
|
||||
@@ -1247,7 +1244,7 @@ void CMoviePlayerGui::selectAudioPid()
|
||||
APIDSelector.exec(NULL, "");
|
||||
delete selector;
|
||||
printf("CMoviePlayerGui::selectAudioPid: selected %d (%x) current %x\n", select, (select >= 0) ? apids[select] : -1, currentapid);
|
||||
if((select >= 0) && (currentapid != apids[select])) {
|
||||
if ((select >= 0) && (currentapid != apids[select])) {
|
||||
currentapid = apids[select];
|
||||
currentac3 = ac3flags[select];
|
||||
playback->SetAPid(currentapid, currentac3);
|
||||
@@ -1282,7 +1279,7 @@ void CMoviePlayerGui::handleMovieBrowser(neutrino_msg_t msg, int /*position*/)
|
||||
static bool showLoopHintBox = false; // flag to check whether the box shall be painted
|
||||
|
||||
int play_sec = position / 1000; // get current seconds from moviestart
|
||||
if(msg == CRCInput::RC_nokey) {
|
||||
if (msg == CRCInput::RC_nokey) {
|
||||
printf("CMoviePlayerGui::handleMovieBrowser: reset vars\n");
|
||||
// reset statics
|
||||
jump_not_until = 0;
|
||||
@@ -1311,7 +1308,7 @@ void CMoviePlayerGui::handleMovieBrowser(neutrino_msg_t msg, int /*position*/)
|
||||
//p_movie_info->fileInfoStale(); //TODO: we might to tell the Moviebrowser that the movie info has changed, but this could cause long reload times when reentering the Moviebrowser
|
||||
}
|
||||
}
|
||||
else if((msg == 0) && isMovieBrowser && (playstate == CMoviePlayerGui::PLAY) && p_movie_info) {
|
||||
else if ((msg == 0) && isMovieBrowser && (playstate == CMoviePlayerGui::PLAY) && p_movie_info) {
|
||||
if (play_sec + 10 < jump_not_until || play_sec > jump_not_until + 10)
|
||||
jump_not_until = 0; // check if !jump is stale (e.g. if user jumped forward or backward)
|
||||
|
||||
@@ -1526,8 +1523,8 @@ void CMoviePlayerGui::handleMovieBrowser(neutrino_msg_t msg, int /*position*/)
|
||||
|
||||
void CMoviePlayerGui::UpdatePosition()
|
||||
{
|
||||
if(playback->GetPosition(position, duration)) {
|
||||
if(duration > 100)
|
||||
if (playback->GetPosition(position, duration)) {
|
||||
if (duration > 100)
|
||||
file_prozent = (unsigned char) (position / (duration / 100));
|
||||
FileTime.update(position, duration);
|
||||
#ifdef DEBUG
|
||||
@@ -1602,7 +1599,7 @@ void CMoviePlayerGui::selectChapter()
|
||||
delete pselector;
|
||||
printf("CMoviePlayerGui::selectChapter: selected %d (%d)\n", select, (select >= 0) ? positions[select] : -1);
|
||||
printf("CMoviePlayerGui::selectChapter: pselected %d (%d)\n", pselect, (pselect >= 0) ? playlists[pselect] : -1);
|
||||
if(select >= 0) {
|
||||
if (select >= 0) {
|
||||
playback->SetPosition(positions[select], true);
|
||||
} else if (pselect >= 0) {
|
||||
numsubs = numpida = 0;
|
||||
@@ -1622,7 +1619,7 @@ void CMoviePlayerGui::selectSubtitle()
|
||||
|
||||
int select = -1;
|
||||
CMenuSelectorTarget * selector = new CMenuSelectorTarget(&select);
|
||||
if(!numsubs)
|
||||
if (!numsubs)
|
||||
playback->FindAllSubs(spids, sub_supported, &numsubs, slanguage);
|
||||
|
||||
CMenuOptionStringChooser * sc = new CMenuOptionStringChooser(LOCALE_SUBTITLES_CHARSET, &g_settings.subs_charset, true, NULL, CRCInput::RC_red, NULL, true);
|
||||
@@ -1658,13 +1655,13 @@ void CMoviePlayerGui::selectSubtitle()
|
||||
APIDSelector.exec(NULL, "");
|
||||
delete selector;
|
||||
printf("CMoviePlayerGui::selectSubtitle: selected %d (%x) current %x\n", select, (select >= 0) ? spids[select] : -1, currentspid);
|
||||
if((select >= 0) && (select < numsubs) && (currentspid != spids[select])) {
|
||||
if ((select >= 0) && (select < numsubs) && (currentspid != spids[select])) {
|
||||
currentspid = spids[select];
|
||||
/* external subtitles pid is 0x1FFF */
|
||||
ext_subs = (currentspid == 0x1FFF);
|
||||
playback->SelectSubtitles(currentspid);
|
||||
printf("[movieplayer] spid changed to %d\n", currentspid);
|
||||
} else if ( select > 0) {
|
||||
} else if (select > 0) {
|
||||
ext_subs = false;
|
||||
currentspid = -1;
|
||||
playback->SelectSubtitles(currentspid);
|
||||
@@ -1878,7 +1875,7 @@ void CMoviePlayerGui::selectAutoLang()
|
||||
}
|
||||
}
|
||||
}
|
||||
if(g_settings.auto_lang && (numpida > 1)) {
|
||||
if (g_settings.auto_lang && (numpida > 1)) {
|
||||
int pref_idx = -1;
|
||||
|
||||
playback->FindAllPids(apids, ac3flags, &numpida, language);
|
||||
@@ -1928,11 +1925,11 @@ void CMoviePlayerGui::parsePlaylist(CFile *file)
|
||||
if (strlen(cLine) > 0 && cLine[0]!='#')
|
||||
{
|
||||
char *url = NULL;
|
||||
if ( (url = strstr(cLine, "http://")) || (url = strstr(cLine, "rtmp://")) || (url = strstr(cLine, "rtsp://")) ){
|
||||
if ((url = strstr(cLine, "http://")) || (url = strstr(cLine, "rtmp://")) || (url = strstr(cLine, "rtsp://")) ) {
|
||||
if (url != NULL) {
|
||||
printf("name %s [%d] url: %s\n", name, dur, url);
|
||||
file_name = url;
|
||||
if(strlen(name))
|
||||
if (strlen(name))
|
||||
pretty_name = name;
|
||||
}
|
||||
}
|
||||
@@ -1980,7 +1977,7 @@ void CMoviePlayerGui::makeScreenShot(bool autoshot, bool forcover)
|
||||
|
||||
if (!cover) {
|
||||
pos = fname.find_last_of('/');
|
||||
if(pos != std::string::npos)
|
||||
if (pos != std::string::npos)
|
||||
fname.replace(0, pos, g_settings.screenshot_dir);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user