diff --git a/acinclude.m4 b/acinclude.m4 index 0ded93b..3a412ac 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -88,7 +88,7 @@ AC_ARG_WITH(boxtype, AC_ARG_WITH(boxmodel, AS_HELP_STRING([--with-boxmodel], [valid for generic: generic, raspi]) -AS_HELP_STRING([], [valid for armbox: hd60, hd61, multibox, multiboxse, hd51, bre2ze4k, h7, e4hdultra, osmini4k, osmio4k, osmio4kplus, vusolo4k, vuduo4k, vuduo4kse, vuultimo4k, vuuno4k, vuuno4kse, vuzero4k]) +AS_HELP_STRING([], [valid for armbox: hd60, hd61, multibox, multiboxse, hd51, bre2ze4k, h7, e4hdultra, protek4k, osmini4k, osmio4k, osmio4kplus, vusolo4k, vuduo4k, vuduo4kse, vuultimo4k, vuuno4k, vuuno4kse, vuzero4k]) AS_HELP_STRING([], [valid for mipsbox: vuduo, vuduo2, gb800se, osnino, osninoplus, osninopro]), [case "${withval}" in generic|raspi) @@ -98,7 +98,7 @@ AS_HELP_STRING([], [valid for mipsbox: vuduo, vuduo2, gb800se, osnino, osninoplu AC_MSG_ERROR([unknown model $withval for boxtype $BOXTYPE]) fi ;; - hd60|hd61|multibox|multiboxse|hd51|bre2ze4k|h7|e4hdultra|osmini4k|osmio4k|osmio4kplus|vusolo4k|vuduo4k|vuduo4kse|vuultimo4k|vuuno4k|vuuno4kse|vuzero4k) + hd60|hd61|multibox|multiboxse|hd51|bre2ze4k|h7|e4hdultra|protek4k|osmini4k|osmio4k|osmio4kplus|vusolo4k|vuduo4k|vuduo4kse|vuultimo4k|vuuno4k|vuuno4kse|vuzero4k) if test "$BOXTYPE" = "armbox"; then BOXMODEL="$withval" else @@ -139,6 +139,7 @@ AM_CONDITIONAL(BOXMODEL_HD51, test "$BOXMODEL" = "hd51") AM_CONDITIONAL(BOXMODEL_BRE2ZE4K, test "$BOXMODEL" = "bre2ze4k") AM_CONDITIONAL(BOXMODEL_H7, test "$BOXMODEL" = "h7") AM_CONDITIONAL(BOXMODEL_E4HDULTRA, test "$BOXMODEL" = "e4hdultra") +AM_CONDITIONAL(BOXMODEL_PROTEK4K, test "$BOXMODEL" = "protek4k") AM_CONDITIONAL(BOXMODEL_OSMINI4K, test "$BOXMODEL" = "osmini4k") AM_CONDITIONAL(BOXMODEL_OSMIO4K, test "$BOXMODEL" = "osmio4k") @@ -194,6 +195,8 @@ elif test "$BOXMODEL" = "h7"; then AC_DEFINE(BOXMODEL_H7, 1, [h7]) elif test "$BOXMODEL" = "e4hdultra"; then AC_DEFINE(BOXMODEL_E4HDULTRA, 1, [e4hdultra]) +elif test "$BOXMODEL" = "protek4k"; then + AC_DEFINE(BOXMODEL_PROTEK4K, 1, [protek4k]) elif test "$BOXMODEL" = "osmini4k"; then AC_DEFINE(BOXMODEL_OSMINI4K, 1, [osmini4k]) diff --git a/libarmbox/audio.cpp b/libarmbox/audio.cpp index 5b49beb..967060b 100644 --- a/libarmbox/audio.cpp +++ b/libarmbox/audio.cpp @@ -323,7 +323,7 @@ int cAudio::PrepareClipPlay(int ch, int srate, int bits, int little_endian) perror("SNDCTL_DSP_CHANNELS"); if (ioctl(clipfd, SNDCTL_DSP_SPEED, &srate)) perror("SNDCTL_DSP_SPEED"); -#if !BOXMODEL_HD51 && !BOXMODEL_BRE2ZE4K && !BOXMODEL_H7 && !BOXMODEL_E4HDULTRA +#if !BOXMODEL_HD51 && !BOXMODEL_BRE2ZE4K && !BOXMODEL_H7 && !BOXMODEL_E4HDULTRA && !BOXMODEL_PROTEK4K if (ioctl(clipfd, SNDCTL_DSP_RESET)) perror("SNDCTL_DSP_RESET"); #endif @@ -394,7 +394,7 @@ int cAudio::WriteClip(unsigned char *buffer, int size) hal_info("%s: clipfd not yet opened\n", __FUNCTION__); return -1; } -#if BOXMODEL_HD51 || BOXMODEL_BRE2ZE4K || BOXMODEL_H7 || BOXMODEL_E4HDULTRA +#if BOXMODEL_HD51 || BOXMODEL_BRE2ZE4K || BOXMODEL_H7 || BOXMODEL_E4HDULTRA || BOXMODEL_PROTEK4K again: #endif ret = write(clipfd, buffer, size); @@ -403,7 +403,7 @@ again: hal_info("%s: write error (%m)\n", __FUNCTION__); return ret; } -#if BOXMODEL_HD51 || BOXMODEL_BRE2ZE4K || BOXMODEL_H7 || BOXMODEL_E4HDULTRA +#if BOXMODEL_HD51 || BOXMODEL_BRE2ZE4K || BOXMODEL_H7 || BOXMODEL_E4HDULTRA || BOXMODEL_PROTEK4K if (ret != size) { hal_info("cAudio::%s: difference > to write (%d) != written (%d) try (%d) > reset dsp and restart write\n", __FUNCTION__, size, ret, count); diff --git a/libarmbox/hardware_caps.c b/libarmbox/hardware_caps.c index a2615fd..340f1e4 100644 --- a/libarmbox/hardware_caps.c +++ b/libarmbox/hardware_caps.c @@ -267,6 +267,27 @@ hw_caps_t *get_hwcaps(void) strcpy(caps.boxname, "E4HD 4K ULTRA"); strcpy(caps.boxarch, "BCM7252S"); #endif +#if BOXMODEL_PROTEK4K + caps.has_CI = 1; + caps.can_cec = 1; + caps.can_cpufreq = 0; + caps.can_shutdown = 1; + caps.display_xres = 220; + caps.display_yres = 176; + caps.display_type = HW_DISPLAY_GFX; + caps.display_can_umlauts = 0; + caps.display_can_deepstandby = 0; + caps.display_can_set_brightness = 1; + caps.display_has_statusline = 0; + caps.display_has_colon = 0; + caps.has_button_timer = 1; + caps.has_button_vformat = 0; + caps.has_HDMI = 1; + strcpy(caps.startup_file, "STARTUP"); + strcpy(caps.boxvendor, "Protek"); + strcpy(caps.boxname, "Protek 4K UHD"); + strcpy(caps.boxarch, "BCM7252S"); +#endif #if BOXMODEL_HD60 caps.has_CI = 0; caps.can_cec = 1;