diff --git a/configure.ac b/configure.ac index d2d311d28..c0fd9e477 100644 --- a/configure.ac +++ b/configure.ac @@ -306,6 +306,8 @@ AC_ARG_ENABLE(pip, AC_DEFINE(ENABLE_PIP, 1, [enable picture in picture support])) AM_CONDITIONAL(ENABLE_PIP, test "$enable_pip" = "yes") +if test "$BOXMODEL" = "vusolo4k" -o "$BOXMODEL" = "vuduo4k" -o "$BOXMODEL" = "vuduo4kse" -o "$BOXMODEL" = "vuultimo4k" -o "$BOXMODEL" = "vuuno4kse" -o "$BOXMODEL" = "vuuno4k"; then + AC_ARG_ENABLE(quadpip, AS_HELP_STRING([--enable-quadpip], [enable quad picture in picture support @<:@default=no@:>@]), AC_DEFINE(ENABLE_QUADPIP, 1, [enable quad picture in picture support])) @@ -314,6 +316,8 @@ AM_CONDITIONAL(ENABLE_QUADPIP, test "$enable_quadpip" = "yes") AS_IF(test "$enable_pip" != "yes", AS_IF(test "$enable_quadpip" = "yes", AC_MSG_ERROR([--enable-quadpip depends on --enable-pip]))) +fi + AC_ARG_ENABLE(dynamicdemux, AS_HELP_STRING([--enable-dynamicdemux], [enable dynamic demux @<:@default=no@:>@]), AC_DEFINE(DYNAMIC_DEMUX, 1, [enable dynamic demux])) diff --git a/src/gui/quadpip_setup.cpp b/src/gui/quadpip_setup.cpp index c82bdb73e..2688f540b 100644 --- a/src/gui/quadpip_setup.cpp +++ b/src/gui/quadpip_setup.cpp @@ -34,6 +34,7 @@ #include #include +#include #include #include @@ -89,7 +90,7 @@ int CQuadPiPSetup::exec(CMenuTarget *parent, const std::string &/*actionKey*/) /*shows the QuadPiP setup menue*/ int CQuadPiPSetup::showQuadPiPSetup() { - CMenuWidget *quadpipsetup = new CMenuWidget(LOCALE_QUADPIP, NEUTRINO_ICON_SETTINGS); + CMenuWidget *quadpipsetup = new CMenuWidget(LOCALE_QUADPIP, NEUTRINO_ICON_SETTINGS, (int) w_max (35, 15), MN_WIDGET_ID_MENU_QUADPIP); // menu head quadpipsetup->addItem(GenericMenuSeparator); @@ -134,7 +135,7 @@ bool CQuadPiPSetupNotifier::changeNotify(const neutrino_locale_t, void */*Data*/ videoDecoder->QuadPiP(true); for (unsigned i = 0; i < pip_devs; i++) { - usleep(200); // delay time for zap etc. + usleep(100); // delay time for zap etc. if (i == 0) { CNeutrinoApp::getInstance()->channelList->zapTo_ChannelID(g_settings.quadpip_channel_id_window[i]); @@ -142,13 +143,13 @@ bool CQuadPiPSetupNotifier::changeNotify(const neutrino_locale_t, void */*Data*/ } if (i >= 1 && g_settings.quadpip_channel_id_window[i] != 0) { - CZapit::getInstance()->StartPip(g_settings.quadpip_channel_id_window[i], i - 1); - g_Zapit->zapTo_pip(g_settings.quadpip_channel_id_window[i], i - 1); - pipAudioDemux[i - 1]->Start(); - pipAudioDecoder[i - 1]->Start(); - usleep(100); // delay for audio start/stop for audio later at window selection - pipAudioDemux[i - 1]->Stop(); - pipAudioDecoder[i - 1]->Stop(); + CZapit::getInstance()->StartPip(g_settings.quadpip_channel_id_window[i], i-1); + g_Zapit->zapTo_pip(g_settings.quadpip_channel_id_window[i], i-1); + pipAudioDemux[i-1]->Start(); + pipAudioDecoder[i-1]->Start(); + usleep(50); // delay for audio start/stop for audio later at window selection + pipAudioDemux[i-1]->Stop(); + pipAudioDecoder[i-1]->Stop(); if (i == 1) pipVideoDecoder[i - 1]->Pig(fb_w, 0, fb_w, fb_h, CFrameBuffer::getInstance()->getScreenWidth(true), CFrameBuffer::getInstance()->getScreenHeight(true)); diff --git a/src/neutrino_menue.h b/src/neutrino_menue.h index 821c18d06..6db65367e 100644 --- a/src/neutrino_menue.h +++ b/src/neutrino_menue.h @@ -219,6 +219,11 @@ enum MN_WIDGET_ID MN_WIDGET_ID_GLCD_THEME_SETTINGS, MN_WIDGET_ID_GLCD_THEME_POSITION_SETTINGS, +#if ENABLE_PIP && ENABLE_QUADPIP + //quadpip + MN_WIDGET_ID_MENU_QUADPIP, +#endif + MN_WIDGET_ID_MAX };