diff --git a/acinclude.m4 b/acinclude.m4
index 1a1d652bb..aaa49cb0a 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -418,6 +418,10 @@ AC_ARG_WITH(boxtype,
tripledragon|coolstream|spark|azbox|generic|armbox)
BOXTYPE="$withval"
;;
+ vusolo4k)
+ BOXTYPE="armbox"
+ BOXMODEL="$withval"
+ ;;
*)
AC_MSG_ERROR([bad value $withval for --with-boxtype])
;;
@@ -426,7 +430,7 @@ AC_ARG_WITH(boxtype,
AC_ARG_WITH(boxmodel,
AS_HELP_STRING([--with-boxmodel], [valid for coolstream: hd1, hd2])
-AS_HELP_STRING([], [valid for armbox: hd51, hd60])
+AS_HELP_STRING([], [valid for armbox: hd51, hd60, vusolo4k])
AS_HELP_STRING([], [valid for generic: raspi]),
[case "${withval}" in
hd1|hd2)
@@ -448,6 +452,13 @@ AS_HELP_STRING([], [valid for generic: raspi]),
AC_MSG_ERROR([unknown model $withval for boxtype $BOXTYPE])
fi
;;
+ vusolo4k)
+ if test "$BOXTYPE" = "armbox"; then
+ BOXMODEL="$withval"
+ else
+ AC_MSG_ERROR([unknown model $withval for boxtype $BOXTYPE])
+ fi
+ ;;
hd51|hd60)
if test "$BOXTYPE" = "armbox"; then
BOXMODEL="$withval"
@@ -482,6 +493,7 @@ AM_CONDITIONAL(BOXMODEL_CS_HD2, test "$BOXMODEL" = "hd2")
AM_CONDITIONAL(BOXMODEL_HD51, test "$BOXMODEL" = "hd51")
AM_CONDITIONAL(BOXMODEL_HD60, test "$BOXMODEL" = "hd60")
+AM_CONDITIONAL(BOXMODEL_VUSOLO4K, test "$BOXMODEL" = "vusolo4k")
AM_CONDITIONAL(BOXMODEL_RASPI, test "$BOXMODEL" = "raspi")
@@ -511,6 +523,9 @@ elif test "$BOXMODEL" = "hd51"; then
elif test "$BOXMODEL" = "hd60"; then
AC_DEFINE(BOXMODEL_HD60, 1, [hd60])
AC_DEFINE(ENABLE_CHANGE_OSD_RESOLUTION, 1, [enable change the osd resolution])
+elif test "$BOXMODEL" = "vusolo4k"; then
+ AC_DEFINE(BOXMODEL_VUSOLO4K, 1, [vusolo4k])
+ AC_DEFINE(ENABLE_CHANGE_OSD_RESOLUTION, 1, [enable change the osd resolution])
elif test "$BOXMODEL" = "raspi"; then
AC_DEFINE(BOXMODEL_RASPI, 1, [raspberry pi])
fi
diff --git a/data/y-web/Y_Blocks.txt b/data/y-web/Y_Blocks.txt
index 838fcba16..bb20623b4 100644
--- a/data/y-web/Y_Blocks.txt
+++ b/data/y-web/Y_Blocks.txt
@@ -524,9 +524,10 @@ start-block~remote
{=if-equal:{=var-get:boxtype=}~CST Trinity Duo~ {=include-block:Y_Blocks.txt;rc_cst_v6=}~
{=if-equal:{=var-get:boxtype=}~AX-Technologies HD51~{=include-block:Y_Blocks.txt;rc_ax_hd51=}~
{=if-equal:{=var-get:boxtype=}~Mutant HD51~ {=include-block:Y_Blocks.txt;rc_mutant_hd51=}~
+ {=if-equal:{=var-get:boxtype=}~VU SOLO4K~ {=include-block:Y_Blocks.txt;rc_vusolo4k=}~
{=comment:fallback~=} {=include-block:Y_Blocks.txt;rc_cst_v1=}
- =}=}=}=}=}=}=}=}=}=}
+ =}=}=}=}=}=}=}=}=}=}=}
=}=}
~
{=if-equal:{=var-get:yfbtype=}~-2~ {=include-block:Y_Blocks.txt;rc_dbox_philips=}~
@@ -541,9 +542,10 @@ start-block~remote
{=if-equal:{=var-get:yfbtype=}~8~ {=include-block:Y_Blocks.txt;rc_cst_v6=}~
{=if-equal:{=var-get:yfbtype=}~9~ {=include-block:Y_Blocks.txt;rc_ax_hd51=}~
{=if-equal:{=var-get:yfbtype=}~10~ {=include-block:Y_Blocks.txt;rc_mutant_hd51=}~
+ {=if-equal:{=var-get:yfbtype=}~11~ {=include-block:Y_Blocks.txt;rc_vusolo4k=}~
{=comment:fallback~=} {=include-block:Y_Blocks.txt;rc_cst_v1=}
- =}=}=}=}=}=}=}=}=}=}=}=}
+ =}=}=}=}=}=}=}=}=}=}=}=}=}
=}
end-block~remote
@@ -1051,3 +1053,56 @@ start-block~rc_mutant_hd51
end-block~rc_mutant_hd51
+
+# ------ Remote VU Solo 4K
+start-block~rc_vusolo4k
+
+
+end-block~rc_vusolo4k
diff --git a/data/y-web/Y_Settings_yWeb.yhtm b/data/y-web/Y_Settings_yWeb.yhtm
index cf0f6a1fb..e081a499f 100644
--- a/data/y-web/Y_Settings_yWeb.yhtm
+++ b/data/y-web/Y_Settings_yWeb.yhtm
@@ -42,6 +42,7 @@ function do_init(){
case "8": // cst trinity duo
case "9": // ax hd51
case "10": // mutant hd51
+ case "11": // vusolo4k
sel=(sel*1+val*1);
break;
default:
@@ -131,6 +132,7 @@ select {
+
diff --git a/data/y-web/images/Makefile.am b/data/y-web/images/Makefile.am
index 192f0febc..62745cabe 100644
--- a/data/y-web/images/Makefile.am
+++ b/data/y-web/images/Makefile.am
@@ -91,11 +91,15 @@ install_DATA += rc_cst_v1.jpg \
rc_cst_v6.png
endif
-if BOXTYPE_ARMBOX
+if BOXMODEL_HD51
install_DATA += rc_ax_hd51.png \
rc_mutant_hd51.png
endif
+if BOXMODEL_VUSOLO4K
+install_DATA += rc_vusolo4k.png
+endif
+
# file manager
install_DATA += chmod.png \
copy.gif \
diff --git a/data/y-web/images/rc_vusolo4k.png b/data/y-web/images/rc_vusolo4k.png
new file mode 100644
index 000000000..6c7caf116
Binary files /dev/null and b/data/y-web/images/rc_vusolo4k.png differ
diff --git a/src/driver/rcinput.h b/src/driver/rcinput.h
index 7314acc39..669a4c88a 100644
--- a/src/driver/rcinput.h
+++ b/src/driver/rcinput.h
@@ -223,8 +223,13 @@ class CRCInput
RC_tv = KEY_TV,
RC_radio = KEY_RADIO,
RC_text = KEY_TEXT,
+#if defined BOXMODEL_VUSOLO4K
+ RC_info = 0xFFFE,
+ RC_epg = KEY_INFO,
+#else
RC_info = KEY_INFO,
RC_epg = KEY_EPG,
+#endif
RC_recall = KEY_LAST,
RC_favorites = KEY_FAVORITES,
RC_sat = KEY_SAT,
diff --git a/src/gui/scan_setup.h b/src/gui/scan_setup.h
index 53eca560d..bb749eed1 100644
--- a/src/gui/scan_setup.h
+++ b/src/gui/scan_setup.h
@@ -66,7 +66,11 @@ class CScanSetup : public CMenuTarget, public CChangeObserver
CGenericMenuActivate msettings;
CMenuOptionChooser * linkfe;
+#if BOXMODEL_VUSOLO4K
+ std::string modestr[16];
+#else
std::string modestr[4];
+#endif
/* variables for selected frontend */
/* diseqc mode */
diff --git a/src/neutrino.cpp b/src/neutrino.cpp
index 04feade35..aa288e61b 100644
--- a/src/neutrino.cpp
+++ b/src/neutrino.cpp
@@ -4852,9 +4852,12 @@ void CNeutrinoApp::loadKeys(const char * fname)
g_settings.mpkey_rewind = tconfig.getInt32( "mpkey.rewind", CRCInput::RC_rewind );
g_settings.mpkey_forward = tconfig.getInt32( "mpkey.forward", CRCInput::RC_forward );
g_settings.mpkey_stop = tconfig.getInt32( "mpkey.stop", CRCInput::RC_stop );
-#if HAVE_ARM_HARDWARE
+#if BOXMODEL_HD51 || BOXMODEL_HD60
g_settings.mpkey_play = tconfig.getInt32( "mpkey.play", CRCInput::RC_playpause );
g_settings.mpkey_pause = tconfig.getInt32( "mpkey.pause", CRCInput::RC_playpause );
+#elif BOXMODEL_VUSOLO4K
+ g_settings.mpkey_play = tconfig.getInt32( "mpkey.play", CRCInput::RC_play );
+ g_settings.mpkey_pause = tconfig.getInt32( "mpkey.pause", CRCInput::RC_playpause );
#else
g_settings.mpkey_play = tconfig.getInt32( "mpkey.play", CRCInput::RC_play );
g_settings.mpkey_pause = tconfig.getInt32( "mpkey.pause", CRCInput::RC_pause );
diff --git a/src/zapit/include/zapit/femanager.h b/src/zapit/include/zapit/femanager.h
index 10890d40d..298c250b6 100644
--- a/src/zapit/include/zapit/femanager.h
+++ b/src/zapit/include/zapit/femanager.h
@@ -31,8 +31,13 @@
#include
+#ifdef BOXMODEL_VUSOLO4K
+#define MAX_FE 16
+#define MAX_ADAPTERS 4
+#else
#define MAX_FE 4
#define MAX_ADAPTERS 4
+#endif
//#define DYNAMIC_DEMUX
//#define MAKE_FE_KEY(adapter, number) ((adapter << 8) | (number & 0xFF))
diff --git a/src/zapit/src/frontend.cpp b/src/zapit/src/frontend.cpp
index 74ec168b4..a59110d25 100644
--- a/src/zapit/src/frontend.cpp
+++ b/src/zapit/src/frontend.cpp
@@ -1225,7 +1225,11 @@ bool CFrontend::buildProperties(const FrontendParameters *feparams, struct dtv_p
case FEC_2_3:
fec = FEC_2_3;
if (feparams->delsys == DVB_S2 && feparams->modulation == PSK_8)
+#if defined BOXMODEL_VUSOLO4K
+ pilot = PILOT_AUTO;
+#else
pilot = PILOT_ON;
+#endif
break;
case FEC_3_4:
fec = FEC_3_4;