Merge branch 'ni/cst-next' into ni/mp/cst-next

Conflicts:
	src/gui/streaminfo2.cpp


Origin commit data
------------------
Branch: ni/coolstream
Commit: e2dfa1c952
Author: vanhofen <vanhofen@gmx.de>
Date: 2016-09-30 (Fri, 30 Sep 2016)



------------------
This commit was generated by Migit
This commit is contained in:
vanhofen
2016-09-30 00:12:45 +02:00
5 changed files with 101 additions and 26 deletions

View File

@@ -28,7 +28,7 @@
#include <driver/fade.h> #include <driver/fade.h>
#include <unistd.h> #include <unistd.h>
#ifdef HAVE_COOL_HARDWARE #if HAVE_COOL_HARDWARE
#include <cnxtfb.h> #include <cnxtfb.h>
#endif #endif
@@ -61,6 +61,9 @@ void COSDFader::StartFadeIn()
#endif #endif
frameBuffer->setBlendLevel(fadeValue); frameBuffer->setBlendLevel(fadeValue);
#if HAVE_SPARK_HARDWARE || HAVE_DUCKBOX_HARDWARE || (HAVE_COOL_HARDWARE && defined(BOXMODEL_APOLLO))
usleep(60000);
#endif
fadeTimer = g_RCInput->addTimer( FADE_TIME, false ); fadeTimer = g_RCInput->addTimer( FADE_TIME, false );
} }
@@ -90,10 +93,12 @@ void COSDFader::StopFade()
if ( fadeIn || fadeOut ) { if ( fadeIn || fadeOut ) {
g_RCInput->killTimer(fadeTimer); g_RCInput->killTimer(fadeTimer);
#ifdef BOXMODEL_APOLLO #ifdef BOXMODEL_APOLLO
usleep(40000);
frameBuffer->setBlendMode(CNXTFB_BLEND_MODE_PER_PIXEL); // Global alpha multiplied with pixel alpha frameBuffer->setBlendMode(CNXTFB_BLEND_MODE_PER_PIXEL); // Global alpha multiplied with pixel alpha
#else #else
frameBuffer->setBlendMode(1); // Global alpha multiplied with pixel alpha frameBuffer->setBlendMode(1); // Global alpha multiplied with pixel alpha
#if HAVE_SPARK_HARDWARE || HAVE_DUCKBOX_HARDWARE || (HAVE_COOL_HARDWARE && defined(BOXMODEL_APOLLO))
usleep(60000);
#endif
#endif #endif
fadeIn = fadeOut = false; fadeIn = fadeOut = false;
} }
@@ -122,6 +127,9 @@ bool COSDFader::FadeDone()
frameBuffer->setBlendMode(CNXTFB_BLEND_MODE_PER_PIXEL); // Global alpha multiplied with pixel alpha frameBuffer->setBlendMode(CNXTFB_BLEND_MODE_PER_PIXEL); // Global alpha multiplied with pixel alpha
#else #else
frameBuffer->setBlendMode(1); // Global alpha multiplied with pixel alpha frameBuffer->setBlendMode(1); // Global alpha multiplied with pixel alpha
#if HAVE_SPARK_HARDWARE || HAVE_DUCKBOX_HARDWARE || (HAVE_COOL_HARDWARE && defined(BOXMODEL_APOLLO))
usleep(60000);
#endif
#endif #endif
} else } else
frameBuffer->setBlendLevel(fadeValue); frameBuffer->setBlendLevel(fadeValue);

View File

@@ -31,6 +31,7 @@
#include <global.h> #include <global.h>
#include <neutrino.h> #include <neutrino.h>
#include <driver/fade.h>
#include <driver/fontrenderer.h> #include <driver/fontrenderer.h>
#include <driver/rcinput.h> #include <driver/rcinput.h>
#include <driver/screen_max.h> #include <driver/screen_max.h>
@@ -146,45 +147,72 @@ int CImageInfoNI::exec(CMenuTarget* parent, const std::string &)
parent->hide(); parent->hide();
neutrino_msg_t msg; neutrino_msg_t msg;
_stat cpu; neutrino_msg_t postmsg = 0;
_stat cpu;
cpu.usr = 0; cpu.usr = 0;
cpu.nice = 0; cpu.nice = 0;
cpu.system = 0; cpu.system = 0;
cpu.idle = 0; cpu.idle = 0;
sigBox_pos = 0; sigBox_pos = 0;
COSDFader fader(g_settings.theme.menu_Content_alpha);
fader.StartFadeIn();
bool fadeout = false;
paint(); paint();
paint_pig (xcpu, y + 10, width/3, height/3); paint_pig(xcpu, y + 10, width/3, height/3);
StartInfoThread(); StartInfoThread();
while (1) while (1)
{ {
neutrino_msg_data_t data; neutrino_msg_data_t data;
uint64_t timeoutEnd = CRCInput::calcTimeoutEnd_MS(100); uint64_t timeoutEnd = CRCInput::calcTimeoutEnd_MS(100);
g_RCInput->getMsgAbsoluteTimeout( &msg, &data, &timeoutEnd ); g_RCInput->getMsgAbsoluteTimeout(&msg, &data, &timeoutEnd);
if(msg == CRCInput::RC_setup) { if ((msg == NeutrinoMessages::EVT_TIMER) && (data == fader.GetFadeTimer()))
res = menu_return::RETURN_EXIT_ALL; {
break; if (fader.FadeDone())
{
break;
}
} }
else if (CNeutrinoApp::getInstance()->listModeKey(msg)) { else if (msg == CRCInput::RC_setup)
g_RCInput->postMsg (msg, 0); {
res = menu_return::RETURN_EXIT_ALL; res = menu_return::RETURN_EXIT_ALL;
break; fadeout = true;
} }
else if (msg == (neutrino_msg_t) g_settings.key_screenshot) { else if (CNeutrinoApp::getInstance()->listModeKey(msg))
CNeutrinoApp::getInstance ()->handleMsg (msg, data); {
postmsg = msg;
res = menu_return::RETURN_EXIT_ALL;
fadeout = true;
}
else if (msg == (neutrino_msg_t) g_settings.key_screenshot)
{
CNeutrinoApp::getInstance()->handleMsg(msg, data);
continue; continue;
} }
else if (msg <= CRCInput::RC_MaxRC) else if (msg <= CRCInput::RC_MaxRC)
{ {
break; fadeout = true;
} }
if ( msg > CRCInput::RC_MaxRC && msg != CRCInput::RC_timeout) if (msg > CRCInput::RC_MaxRC && msg != CRCInput::RC_timeout)
{ {
CNeutrinoApp::getInstance()->handleMsg( msg, data ); CNeutrinoApp::getInstance()->handleMsg(msg, data);
}
if (fadeout && msg == CRCInput::RC_timeout)
{
if (fader.StartFadeOut())
{
msg = 0;
}
else
{
break;
}
} }
Stat_Info(&cpu); Stat_Info(&cpu);
@@ -192,7 +220,14 @@ int CImageInfoNI::exec(CMenuTarget* parent, const std::string &)
} }
StopInfoThread(); StopInfoThread();
hide(); hide();
fader.StopFade();
if (postmsg)
{
g_RCInput->postMsg(postmsg, 0);
}
return res; return res;
} }

View File

@@ -1445,7 +1445,7 @@ void CMoviePlayerGui::PlayFileLoop(void)
} else if (msg == (neutrino_msg_t) g_settings.key_quickzap_up || msg == (neutrino_msg_t) g_settings.key_quickzap_down) { } else if (msg == (neutrino_msg_t) g_settings.key_quickzap_up || msg == (neutrino_msg_t) g_settings.key_quickzap_down) {
quickZap(msg); quickZap(msg);
} else if (fromInfoviewer && msg == CRCInput::RC_ok && !filelist.empty()) { } else if (fromInfoviewer && msg == CRCInput::RC_ok && !filelist.empty()) {
printf("CMoviePlayerGui::%s: start playlist movie #%ld\n", __func__, vzap_it - filelist.begin()); printf("CMoviePlayerGui::%s: start playlist movie #%d\n", __func__, (int)(vzap_it - filelist.begin()));
fromInfoviewer = false; fromInfoviewer = false;
playstate = CMoviePlayerGui::STOPPED; playstate = CMoviePlayerGui::STOPPED;
filelist_it = vzap_it; filelist_it = vzap_it;
@@ -1722,7 +1722,7 @@ void CMoviePlayerGui::PlayFileEnd(bool restore)
void CMoviePlayerGui::set_vzap_it(bool up) void CMoviePlayerGui::set_vzap_it(bool up)
{ {
//printf("CMoviePlayerGui::%s: vzap_it: %d count %s\n", __func__, vzap_it - filelist.begin(), up ? "up" : "down"); //printf("CMoviePlayerGui::%s: vzap_it: %d count %s\n", __func__, (int)(vzap_it - filelist.begin()), up ? "up" : "down");
if (up) if (up)
{ {
if (vzap_it < (filelist.end() - 1)) if (vzap_it < (filelist.end() - 1))
@@ -1733,7 +1733,7 @@ void CMoviePlayerGui::set_vzap_it(bool up)
if (vzap_it > filelist.begin()) if (vzap_it > filelist.begin())
--vzap_it; --vzap_it;
} }
//printf("CMoviePlayerGui::%s: vzap_it: %d\n", __func__, vzap_it - filelist.begin()); //printf("CMoviePlayerGui::%s: vzap_it: %d\n", __func__, (int)(vzap_it - filelist.begin()));
} }
void CMoviePlayerGui::callInfoViewer(bool init_vzap_it) void CMoviePlayerGui::callInfoViewer(bool init_vzap_it)

View File

@@ -37,6 +37,7 @@
#include <neutrino.h> #include <neutrino.h>
#include <driver/abstime.h> #include <driver/abstime.h>
#include <driver/fade.h>
#include <driver/display.h> #include <driver/display.h>
#include <driver/fontrenderer.h> #include <driver/fontrenderer.h>
#include <driver/rcinput.h> #include <driver/rcinput.h>
@@ -59,7 +60,7 @@ extern cAudio * audioDecoder;
extern CRemoteControl *g_RemoteControl; /* neutrino.cpp */ extern CRemoteControl *g_RemoteControl; /* neutrino.cpp */
CStreamInfo2::CStreamInfo2 () CStreamInfo2::CStreamInfo2() : fader(g_settings.theme.menu_Content_alpha)
{ {
frameBuffer = CFrameBuffer::getInstance (); frameBuffer = CFrameBuffer::getInstance ();
pip = NULL; pip = NULL;
@@ -125,9 +126,11 @@ int CStreamInfo2::exec (CMenuTarget * parent, const std::string &)
frontend = CFEManager::getInstance()->getLiveFE(); frontend = CFEManager::getInstance()->getLiveFE();
fader.StartFadeIn();
paint (paint_mode); paint (paint_mode);
int res = doSignalStrengthLoop (); int res = doSignalStrengthLoop ();
hide (); hide ();
fader.StopFade();
return res; return res;
} }
@@ -137,7 +140,9 @@ int CStreamInfo2::doSignalStrengthLoop ()
#define BAR_HEIGHT 12 #define BAR_HEIGHT 12
int res = menu_return::RETURN_REPAINT; int res = menu_return::RETURN_REPAINT;
bool fadeout = false;
neutrino_msg_t msg; neutrino_msg_t msg;
neutrino_msg_t postmsg = 0;
uint64_t maxb, minb, lastb, tmp_rate; uint64_t maxb, minb, lastb, tmp_rate;
unsigned int current_pmt_version = (unsigned int)-1; unsigned int current_pmt_version = (unsigned int)-1;
int cnt = 0; int cnt = 0;
@@ -152,12 +157,31 @@ int CStreamInfo2::doSignalStrengthLoop ()
int dx1 = x + 10; int dx1 = x + 10;
ts_setup (); ts_setup ();
while (1) { while (1) {
#if 0
neutrino_msg_data_t data; neutrino_msg_data_t data;
uint64_t timeoutEnd = CRCInput::calcTimeoutEnd_MS (100); uint64_t timeoutEnd = CRCInput::calcTimeoutEnd_MS (100);
g_RCInput->getMsgAbsoluteTimeout (&msg, &data, &timeoutEnd); g_RCInput->getMsgAbsoluteTimeout (&msg, &data, &timeoutEnd);
#endif
if ((msg == NeutrinoMessages::EVT_TIMER) && (data == fader.GetFadeTimer()))
{
if (fader.FadeDone())
{
break;
}
continue;
}
if (fadeout && msg == CRCInput::RC_timeout)
{
if (fader.StartFadeOut())
{
msg = 0;
continue;
}
else
{
break;
}
}
if (!mp) { if (!mp) {
signal.sig = frontend->getSignalStrength() & 0xFFFF; signal.sig = frontend->getSignalStrength() & 0xFFFF;
@@ -247,12 +271,12 @@ int CStreamInfo2::doSignalStrengthLoop ()
} }
else if(msg == CRCInput::RC_setup) { else if(msg == CRCInput::RC_setup) {
res = menu_return::RETURN_EXIT_ALL; res = menu_return::RETURN_EXIT_ALL;
break; fadeout = true;
} }
else if(CNeutrinoApp::getInstance()->listModeKey(msg)) { else if(CNeutrinoApp::getInstance()->listModeKey(msg)) {
g_RCInput->postMsg (msg, 0); postmsg = msg;
res = menu_return::RETURN_EXIT_ALL; res = menu_return::RETURN_EXIT_ALL;
break; fadeout = true;
} }
else if (msg == (neutrino_msg_t) g_settings.key_screenshot) { else if (msg == (neutrino_msg_t) g_settings.key_screenshot) {
CNeutrinoApp::getInstance ()->handleMsg (msg, data); CNeutrinoApp::getInstance ()->handleMsg (msg, data);
@@ -261,7 +285,7 @@ int CStreamInfo2::doSignalStrengthLoop ()
// -- any key --> abort // -- any key --> abort
if (msg <= CRCInput::RC_MaxRC) if (msg <= CRCInput::RC_MaxRC)
break; fadeout = true;
// -- push other events // -- push other events
if (msg > CRCInput::RC_MaxRC && msg != CRCInput::RC_timeout) if (msg > CRCInput::RC_MaxRC && msg != CRCInput::RC_timeout)
@@ -270,6 +294,12 @@ int CStreamInfo2::doSignalStrengthLoop ()
delete signalbox; delete signalbox;
signalbox = NULL; signalbox = NULL;
ts_close (); ts_close ();
if (postmsg)
{
g_RCInput->postMsg(postmsg, 0);
}
return res; return res;
} }

View File

@@ -31,6 +31,7 @@
#include <zapit/femanager.h> #include <zapit/femanager.h>
class COSDFader;
class CStreamInfo2 : public CMenuTarget class CStreamInfo2 : public CMenuTarget
{ {
private: private:
@@ -39,6 +40,7 @@ class CStreamInfo2 : public CMenuTarget
CFrontend *frontend; CFrontend *frontend;
CComponentsPIP * pip; CComponentsPIP * pip;
CMoviePlayerGui *mp; CMoviePlayerGui *mp;
COSDFader fader;
int x; int x;
int y; int y;
int width; int width;