mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-27 10:03:20 +00:00
multimedia/kodi: update to 17.1
- Add support for armv6 (RPi 1 and RPi 2) PR: 218121 Submitted by: Mikael Urankar <mikael.urankar@gmail.com> Reviewed by: swills Approved by: Mickael Maillot <mickael.maillot@gmail.com> (maintainer)
This commit is contained in:
parent
51ceec7e2c
commit
0c72f3c8c7
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=437676
@ -1,8 +1,7 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= kodi
|
||||
DISTVERSION= 16.1
|
||||
PORTREVISION= 11
|
||||
DISTVERSION= 17.1
|
||||
CATEGORIES= multimedia java
|
||||
|
||||
MAINTAINER= mickael.maillot@gmail.com
|
||||
@ -16,17 +15,14 @@ BUILD_DEPENDS= enca:converters/enca \
|
||||
cmake:devel/cmake \
|
||||
zip:archivers/zip \
|
||||
nasm:devel/nasm \
|
||||
gtk-update-icon-cache:x11-toolkits/gtk20 \
|
||||
swig3.0:devel/swig30
|
||||
LIB_DEPENDS= libass.so:multimedia/libass \
|
||||
libFLAC.so:audio/flac \
|
||||
libboost_thread.so:devel/boost-libs \
|
||||
libcdio.so:sysutils/libcdio \
|
||||
libcdio.so:sysutils/libcdio \
|
||||
libcrossguid.so:devel/libcrossguid \
|
||||
libcurl.so:ftp/curl \
|
||||
libdbus-1.so:devel/dbus \
|
||||
libdcadec.so:multimedia/libdcadec \
|
||||
libdrm.so:graphics/libdrm \
|
||||
libenca.so:converters/enca \
|
||||
libexpat.so:textproc/expat2\
|
||||
libfontconfig.so:x11-fonts/fontconfig \
|
||||
@ -55,37 +51,38 @@ LIB_DEPENDS= libass.so:multimedia/libass \
|
||||
libtiff.so:graphics/tiff \
|
||||
libtinyxml.so:textproc/tinyxml \
|
||||
libtspi.so:security/trousers \
|
||||
libunistring.so:devel/libunistring \
|
||||
libuuid.so:misc/e2fsprogs-libuuid \
|
||||
libvorbis.so:audio/libvorbis \
|
||||
libxslt.so:textproc/libxslt \
|
||||
libxslt.so:textproc/libxslt \
|
||||
libyajl.so:devel/yajl
|
||||
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \
|
||||
glxinfo:graphics/mesa-demos \
|
||||
python:lang/python \
|
||||
xdpyinfo:x11/xdpyinfo
|
||||
python:lang/python
|
||||
|
||||
CONFLICTS_BUILD=compat9x
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_TUPLE= xbmc:xbmc:c327c53 \
|
||||
xbmc:FFmpeg:2.8.6-Jarvis-16.0:ffmpeg/tools/depends/target/ffmpeg
|
||||
GH_TUPLE= xbmc:xbmc:fc1619b \
|
||||
xbmc:FFmpeg:3.1.6-Krypton:ffmpeg/tools/depends/target/ffmpeg \
|
||||
xbmc:libdvdcss:2f12236:libdvdcss/tools/depends/target/libdvdcss/native \
|
||||
xbmc:libdvdnav:981488f:libdvdnav/tools/depends/target/libdvdnav/native \
|
||||
xbmc:libdvdread:17d99db:libdvdread/tools/depends/target/libdvdread/native
|
||||
|
||||
USES= autoreconf:build compiler:c++11-lib gettext gmake iconv jpeg \
|
||||
libtool pkgconfig python:2 ssl
|
||||
GNU_CONFIGURE= yes
|
||||
USE_XORG= x11 xcb xext xmu xrandr xt xtst
|
||||
USE_GL= gl glu glew
|
||||
USE_SDL= image sdl2
|
||||
USE_JAVA= yes
|
||||
USE_GNOME= libxml2
|
||||
USE_LDCONFIG= yes
|
||||
JAVA_BUILD= jre
|
||||
NOPRECIOUSMAKEVARS= yes
|
||||
INSTALLS_ICONS= yes
|
||||
CONFIGURE_ENV= OPENSSL_LIBS="-L${OPENSSLLIB}" \
|
||||
OPENSSL_CFLAGS="-I${OPENSSLINC}"
|
||||
|
||||
ONLY_FOR_ARCHS= i386 amd64
|
||||
ONLY_FOR_ARCHS= amd64 armv6 i386
|
||||
KODI_ARCH_i386= x86
|
||||
KODI_ARCH_amd64=x86_64
|
||||
KODI_ARCH_armv6=armv6
|
||||
|
||||
PLIST_SUB= ARCH=${KODI_ARCH_${ARCH}}
|
||||
|
||||
@ -93,14 +90,24 @@ OPTIONS_SUB= yes
|
||||
OPTIONS_DEFINE= AIRPLAY AIRTUNES AVAHI CEC DOCS \
|
||||
LIBBLURAY LIRC MYSQL NFS NONFREE PULSEAUDIO RTMP \
|
||||
SFTP SMB VAAPI VDPAU WEBSERVER
|
||||
OPTIONS_SINGLE= RPI
|
||||
OPTIONS_SINGLE_RPI= RPI1 RPI2
|
||||
|
||||
OPTIONS_EXCLUDE_armv6= LIRC VAAPI VDPAU
|
||||
OPTIONS_EXCLUDE_amd64= RPI1 RPI2
|
||||
OPTIONS_EXCLUDE_i386= RPI1 RPI2
|
||||
|
||||
AIRPLAY_DESC= AirPlay support via libplist
|
||||
AIRTUNES_DESC= AirTunes support via libshairplay
|
||||
CEC_DESC= CEC adapter support
|
||||
NONFREE_DESC= Enable non-free components (rar, ccx, ffmpeg)
|
||||
SFTP_DESC= SSH SFTP support via libssh
|
||||
RPI1_DESC= build for RPI1-B (cpu=arm1176jzf-s)
|
||||
RPI2_DESC= build for RPI2 (cpu=cortex-a7, neon enabled)
|
||||
|
||||
OPTIONS_DEFAULT= AIRPLAY AIRTUNES AVAHI CEC LIBBLURAY LIRC \
|
||||
MYSQL NFS RTMP SFTP SMB VAAPI VDPAU WEBSERVER
|
||||
OPTIONS_DEFAULT_armv6= RPI1
|
||||
|
||||
AIRPLAY_LIB_DEPENDS= libplist.so:devel/libplist
|
||||
AIRPLAY_CONFIGURE_ENABLE= airplay
|
||||
@ -133,6 +140,9 @@ NONFREE_VARS= NO_CDROM="Restricted binary distribution" \
|
||||
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
|
||||
PULSEAUDIO_CONFIGURE_ENABLE= pulse
|
||||
|
||||
RPI1_CONFIGURE_ON= --with-platform=raspberry-pi
|
||||
RPI2_CONFIGURE_ON= --with-platform=raspberry-pi2
|
||||
|
||||
RTMP_LIB_DEPENDS= librtmp.so:multimedia/librtmp
|
||||
RTMP_CONFIGURE_ENABLE= rtmp
|
||||
|
||||
@ -154,12 +164,38 @@ SFTP_CONFIGURE_ENABLE= ssh
|
||||
|
||||
CONFIGURE_ARGS+= --disable-debug --disable-alsa --disable-texturepacker
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${ARCH} != "armv6"
|
||||
BUILD_DEPENDS+= gtk-update-icon-cache:x11-toolkits/gtk20
|
||||
LIB_DEPENDS+= libdrm.so:graphics/libdrm
|
||||
RUN_DEPENDS+= glxinfo:graphics/mesa-demos \
|
||||
xdpyinfo:x11/xdpyinfo
|
||||
USE_XORG= x11 xcb xext xmu xrandr xt xtst
|
||||
USE_GL= egl gl glu glew
|
||||
USE_SDL= image sdl2
|
||||
INSTALLS_ICONS= yes
|
||||
PLIST_SUB+= ARM="@comment "
|
||||
PLIST_SUB+= X86=""
|
||||
.else
|
||||
# armv6 (rpi1 and rpi2 only)
|
||||
EXTRA_PATCHES= ${FILESDIR}/extra-armv6_hal
|
||||
CONFIGURE_ARGS+= --enable-player=omxplayer
|
||||
LIB_DEPENDS+= libEGL.so:misc/raspberrypi-userland \
|
||||
libhal.so:sysutils/hal \
|
||||
libtiff.so:graphics/tiff
|
||||
PLIST_SUB+= ARM=""
|
||||
PLIST_SUB+= X86="@comment "
|
||||
SUB_FILES= pkg-message
|
||||
.endif
|
||||
|
||||
post-patch:
|
||||
${REINPLACE_CMD} 's;make;gmake;' \
|
||||
${WRKSRC}/bootstrap \
|
||||
${WRKSRC}/codegenerator.mk \
|
||||
${WRKSRC}/xbmc/Makefile.in
|
||||
${REINPLACE_CMD} 's;which swig;&3.0;' ${WRKSRC}/codegenerator.mk
|
||||
${RM} ${WRKSRC}/system/settings/rbp2.xml.orig
|
||||
|
||||
pre-configure:
|
||||
cd ${WRKSRC} && ${SH} ./bootstrap
|
||||
@ -170,6 +206,8 @@ post-install:
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/kodi/kodi.bin
|
||||
${FIND} ${STAGEDIR}${PREFIX}/lib/kodi -name '*.so' -or -name '*.xbs' -or -name '*.vis' \
|
||||
| ${XARGS} ${STRIP_CMD}
|
||||
.if ${ARCH} != armv6
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/kodi/kodi-xrandr
|
||||
.endif
|
||||
|
||||
.include <bsd.port.mk>
|
||||
.include <bsd.port.post.mk>
|
||||
|
@ -1,5 +1,11 @@
|
||||
TIMESTAMP = 1468326866
|
||||
SHA256 (xbmc-xbmc-16.1-c327c53_GH0.tar.gz) = 8ab5ef294d4b940072a05e682acb16fe17cb90e3e5875ecb1bb7835bb4a42cea
|
||||
SIZE (xbmc-xbmc-16.1-c327c53_GH0.tar.gz) = 52090841
|
||||
SHA256 (xbmc-FFmpeg-2.8.6-Jarvis-16.0_GH0.tar.gz) = b08d8dc171f19627025136b498dfcad4f1b84923de7a62696d8a9a7f1d979b01
|
||||
SIZE (xbmc-FFmpeg-2.8.6-Jarvis-16.0_GH0.tar.gz) = 10264915
|
||||
TIMESTAMP = 1490104616
|
||||
SHA256 (xbmc-xbmc-17.1-fc1619b_GH0.tar.gz) = d37923946f556167e2bae57c8ed6fde94e1c9996b2eb907ae2a843da242b2680
|
||||
SIZE (xbmc-xbmc-17.1-fc1619b_GH0.tar.gz) = 58455275
|
||||
SHA256 (xbmc-FFmpeg-3.1.6-Krypton_GH0.tar.gz) = 01f914742f6af8afd1d2eb076425975e24c4eed75f5d57f1c816086dc4625192
|
||||
SIZE (xbmc-FFmpeg-3.1.6-Krypton_GH0.tar.gz) = 11170735
|
||||
SHA256 (xbmc-libdvdcss-2f12236_GH0.tar.gz) = 7affd787569960bcca6a7a83dfbe807b461653ee9793c59551dabb88e640b3f4
|
||||
SIZE (xbmc-libdvdcss-2f12236_GH0.tar.gz) = 95311
|
||||
SHA256 (xbmc-libdvdnav-981488f_GH0.tar.gz) = b59d75536336893ef0e32a6660770b2250e0369d52ff02319d41def621fb42db
|
||||
SIZE (xbmc-libdvdnav-981488f_GH0.tar.gz) = 130513
|
||||
SHA256 (xbmc-libdvdread-17d99db_GH0.tar.gz) = 7b9e1861a9974ffb1542ab541d4e89a3239f6a65214a66d5cd10d216a2e7f575
|
||||
SIZE (xbmc-libdvdread-17d99db_GH0.tar.gz) = 124192
|
||||
|
@ -1,11 +0,0 @@
|
||||
--- Makefile.in.orig 2016-10-20 18:15:13 UTC
|
||||
+++ Makefile.in
|
||||
@@ -434,7 +434,7 @@ endif
|
||||
ifeq ($(findstring osx,@ARCH@), osx)
|
||||
$(SILENT_LD) $(CXX) $(LDFLAGS) -o @APP_NAME_LC@.bin $(MAINOBJS) -Wl,-all_load,-ObjC $(MAINOBJS) $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(OBJSXBMC) $(LIBS) -rdynamic
|
||||
else
|
||||
- $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) -o @APP_NAME_LC@.bin $(MAINOBJS) -Wl,--start-group $(MAINOBJS) $(DYNOBJSXBMC) $(OBJSXBMC) -Wl,--end-group $(NWAOBJSXBMC) $(LIBS) -rdynamic
|
||||
+ $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) -o @APP_NAME_LC@.bin $(MAINOBJS) -Wl,--start-group $(MAINOBJS) $(DYNOBJSXBMC) $(OBJSXBMC) -Wl,--end-group $(NWAOBJSXBMC) $(LIBS) -rdynamic ./tools/depends/native/libsquish-native/squish-install/lib/libsquish.a
|
||||
endif
|
||||
|
||||
@APP_NAME_LC@-xrandr: xbmc-xrandr.c
|
@ -1,20 +1,41 @@
|
||||
--- configure.ac.orig 2016-02-20 15:21:19 UTC
|
||||
--- configure.ac.orig 2016-10-08 UTC
|
||||
+++ configure.ac
|
||||
@@ -599,11 +599,13 @@ case $host in
|
||||
target_platform=target_linux
|
||||
@@ -564,12 +564,25 @@ case $host in
|
||||
CORE_SYSTEM_NAME=linux
|
||||
ARCH="x86-freebsd"
|
||||
MAKE="gmake"
|
||||
+ USE_STATIC_FFMPEG=1
|
||||
;;
|
||||
amd64-*-freebsd*)
|
||||
target_platform=target_linux
|
||||
CORE_SYSTEM_NAME=linux
|
||||
ARCH="x86_64-freebsd"
|
||||
MAKE="gmake"
|
||||
+ USE_STATIC_FFMPEG=1
|
||||
+ ;;
|
||||
+ armv6-*-freebsd*)
|
||||
+ target_platform=target_linux
|
||||
+ ARCH="armv6-freebsd"
|
||||
+ MAKE="gmake"
|
||||
+ USE_STATIC_FFMPEG=1
|
||||
+ use_arch="arm"
|
||||
+ use_neon=no
|
||||
+ use_gles=yes
|
||||
+ use_gl=no
|
||||
+ use_x11=no
|
||||
;;
|
||||
arm-apple-darwin*)
|
||||
use_joystick=no
|
||||
@@ -777,10 +779,16 @@ fi
|
||||
CORE_SYSTEM_NAME=ios
|
||||
@@ -684,7 +697,7 @@ if test "$target_platform" = "target_ras
|
||||
use_hardcoded_tables="yes"
|
||||
use_openmax=no
|
||||
CORE_SYSTEM_NAME=rbpi
|
||||
- ARCH="arm"
|
||||
+ ARCH="armv6-freebsd"
|
||||
AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
|
||||
USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
|
||||
USE_MMAL=1; AC_DEFINE([HAS_MMAL],[1],["Define to 1 if MMAL libs is enabled"])
|
||||
@@ -753,10 +766,16 @@ fi
|
||||
# platform specific flags
|
||||
if echo "$ARCH" | grep -q "freebsd" ; then
|
||||
LOCALBASE="${LOCALBASE:-/usr/local}"
|
||||
@ -34,15 +55,33 @@
|
||||
fi
|
||||
if test "$host_vendor" = "apple" ; then
|
||||
# standard application paths
|
||||
@@ -913,6 +921,7 @@ AC_LANG_POP([C++])
|
||||
@@ -796,8 +815,16 @@ if test "$host_vendor" = "apple" ; then
|
||||
LIBS="$LIBS -framework CoreFoundation"
|
||||
fi
|
||||
elif test "$target_platform" = "target_raspberry_pi"; then
|
||||
- ARCH="arm"
|
||||
+ CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include/interface/vcos/pthreads/ -I$LOCALBASE/include/interface/vcos -I$LOCALBASE/include/interface/ -I$LOCALBASE/include/interface/vmcs_host/linux"
|
||||
+ ARCH="armv6-freebsd"
|
||||
use_arch="arm"
|
||||
+ FFMPEG_OPTS="--cc=$CC --cxx=$CXX --disable-fast-unaligned --disable-vfp --disable-xlib --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape"
|
||||
+ if test "$use_platform" = "raspberry-pi2"; then
|
||||
+ CFLAGS="$CFLAGS -march=armv7a -mtune=cortex-a7 -mfpu=neon"
|
||||
+ CXXFLAGS="$CXXFLAGS -march=armv7a -mtune=cortex-a7 -mfpu=neon"
|
||||
+ FFMPEG_OPTS="${FFMPEG_OPTS} --enable-neon"
|
||||
+ fi
|
||||
+
|
||||
elif test "$use_arch" = "arm"; then
|
||||
CFLAGS="$CFLAGS -mno-apcs-stack-check"
|
||||
CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
|
||||
@@ -915,6 +942,7 @@ AC_LANG_POP([C++])
|
||||
|
||||
# Check inotify availability
|
||||
AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
|
||||
+AC_CHECK_LIB([inotify], [main],,)
|
||||
|
||||
# Checks for boost headers using CXX instead of CC
|
||||
AC_LANG_PUSH([C++])
|
||||
@@ -1228,12 +1237,13 @@ AS_CASE([x$use_libbluray],
|
||||
# Python
|
||||
if test -z "$PYTHON_NOVERSIONCHECK"; then
|
||||
@@ -1163,12 +1191,13 @@ AS_CASE([x$use_libbluray],
|
||||
)
|
||||
|
||||
#Check to see if libs are needed for functions that are often built-in to libc
|
||||
@ -57,7 +96,7 @@
|
||||
|
||||
# platform dependent libraries
|
||||
if test "$host_vendor" = "apple" ; then
|
||||
@@ -1654,7 +1664,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th
|
||||
@@ -1552,7 +1581,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th
|
||||
|
||||
if test "$cross_compiling" != "yes"; then
|
||||
if test "$use_debug" != "yes"; then
|
||||
@ -66,7 +105,7 @@
|
||||
fi
|
||||
if test "$use_optimizations" != "yes"; then
|
||||
FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations"
|
||||
@@ -1665,7 +1675,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th
|
||||
@@ -1563,7 +1592,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th
|
||||
SAVE_LIBS="$LIBS"
|
||||
# check for system installed ffmpeg. We require minimum versions.
|
||||
PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
|
||||
@ -75,25 +114,29 @@
|
||||
[FFMPEG_FOUND="false"])
|
||||
|
||||
if test "${USE_STATIC_FFMPEG}" = "1" && test "$FFMPEG_FOUND" = "true"; then
|
||||
@@ -1692,7 +1702,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th
|
||||
@@ -1590,7 +1619,11 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th
|
||||
elif test "$with_ffmpeg" = "force"; then
|
||||
# always build our ffmpeg
|
||||
AC_MSG_NOTICE("FFmpeg installation forced by user - installing our version")
|
||||
- CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
|
||||
+ CC="$CC" CPP="$CPP" CXX="$CXX" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS} || exit 1
|
||||
+ if test "$use_arch" = "arm"; then
|
||||
+ ASFLAGS="-no-integrated-as" CC="$CC" CPP="$CPP" CXX="$CXX" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS} || exit 1
|
||||
+ else
|
||||
+ CC="$CC" CPP="$CPP" CXX="$CXX" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS} || exit 1
|
||||
+ fi
|
||||
export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||
|
||||
elif test "$with_ffmpeg" != "no"; then
|
||||
@@ -1705,7 +1715,7 @@ fi
|
||||
@@ -1603,7 +1636,7 @@ fi
|
||||
|
||||
if test "$FFMPEG_FOUND" != "true"; then
|
||||
PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
|
||||
- [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
|
||||
+ [INCLUDES="$FFMPEG_CFLAGS $INCLUDES"; LIBS="$FFMPEG_LIBS $LIBS"; FFMPEG_FOUND="true"],
|
||||
- [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
|
||||
+ [INCLUDES="$FFMPEG_CFLAGS $INCLUDES"; LIBS="$FFMPEG_LIBS $LIBS"; FFMPEG_FOUND="true"],
|
||||
[AC_MSG_ERROR("ffmpeg not found")])
|
||||
fi
|
||||
|
||||
@@ -1731,9 +1741,9 @@ fi
|
||||
@@ -1627,9 +1660,9 @@ fi
|
||||
echo "Checking for SWIG installation"
|
||||
AC_PATH_PROG(SWIG_EXE, swig, "none")
|
||||
if test "$SWIG_EXE" = "none"; then
|
||||
@ -106,16 +149,7 @@
|
||||
fi
|
||||
fi
|
||||
if test "$SWIG_EXE" = "none"; then
|
||||
@@ -2065,7 +2075,7 @@ fi
|
||||
# we don't compile with default upstream squish, so we use our own one
|
||||
# even on non unified deps platforms
|
||||
if test "$cross_compiling" != "yes"; then
|
||||
- make -C ${abs_top_srcdir}/tools/depends/native/libsquish-native CXX=${CXX}
|
||||
+ $MAKE -C ${abs_top_srcdir}/tools/depends/native/libsquish-native CXX=${CXX}
|
||||
export PKG_CONFIG_PATH="${abs_top_srcdir}/tools/depends/native/libsquish-native/squish-install/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||
fi
|
||||
PKG_CHECK_MODULES([SQUISH], [squish],
|
||||
@@ -2076,7 +2086,7 @@ if test "x$use_texturepacker" != "xno";
|
||||
@@ -1922,7 +1955,7 @@ if test "x$use_texturepacker" != "xno";
|
||||
AC_PATH_PROG([TEXTUREPACKER], [TexturePacker], ["none"],
|
||||
[$PATH$PATH_SEPARATOR${abs_top_srcdir}/tools/depends/native/TexturePacker/bin])
|
||||
if test "$TEXTUREPACKER" = "none"; then
|
||||
@ -124,7 +158,7 @@
|
||||
TEXTUREPACKER="${abs_top_srcdir}/tools/depends/native/TexturePacker/bin/TexturePacker"
|
||||
fi
|
||||
if test -x "$TEXTUREPACKER"; then
|
||||
@@ -2346,6 +2356,8 @@ if test "$host_vendor" = "apple" ; then
|
||||
@@ -2142,6 +2175,8 @@ if test "$host_vendor" = "apple" ; then
|
||||
LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
|
||||
fi
|
||||
|
||||
@ -132,4 +166,4 @@
|
||||
+
|
||||
OUTPUT_FILES="Makefile \
|
||||
Makefile.include \
|
||||
addons/skin.confluence/media/Makefile \
|
||||
addons/skin.estuary/media/Makefile \
|
||||
|
30
multimedia/kodi/files/patch-m4_xbmc__arch.m4
Normal file
30
multimedia/kodi/files/patch-m4_xbmc__arch.m4
Normal file
@ -0,0 +1,30 @@
|
||||
--- m4/xbmc_arch.m4.orig 2016-10-08 UTC
|
||||
+++ m4/xbmc_arch.m4
|
||||
@@ -14,6 +14,9 @@ case $build in
|
||||
amd64-*-freebsd*)
|
||||
AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
|
||||
;;
|
||||
+ armv6-*-freebsd*)
|
||||
+ AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
|
||||
+ ;;
|
||||
*86*-apple-darwin*)
|
||||
AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
|
||||
;;
|
||||
@@ -45,6 +48,9 @@ case $host in
|
||||
amd64-*-freebsd*)
|
||||
AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
|
||||
;;
|
||||
+ armv6-*-freebsd*)
|
||||
+ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
|
||||
+ ;;
|
||||
arm-apple-darwin*)
|
||||
AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_IOS -D_LINUX")
|
||||
;;
|
||||
@@ -78,6 +84,6 @@ if test "$target_platform" = "target_and
|
||||
fi
|
||||
|
||||
if test "$target_platform" = "target_raspberry_pi" ; then
|
||||
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
|
||||
+ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
|
||||
fi
|
||||
])
|
11
multimedia/kodi/files/patch-system_settings_rbp2.xml
Normal file
11
multimedia/kodi/files/patch-system_settings_rbp2.xml
Normal file
@ -0,0 +1,11 @@
|
||||
--- ./system/settings/rbp2.xml.orig 2016-11-24 09:26:41 UTC
|
||||
+++ ./system/settings/rbp2.xml
|
||||
@@ -4,7 +4,7 @@
|
||||
<category id="videoplayer">
|
||||
<group id="3">
|
||||
<setting id="videoplayer.useomxplayer">
|
||||
- <default>false</default>
|
||||
+ <default>true</default>
|
||||
</setting>
|
||||
</group>
|
||||
</category>
|
@ -1,5 +1,5 @@
|
||||
--- tools/depends/target/ffmpeg/FFmpeg-2.8.6-Jarvis-16.0/configure.orig 2016-02-03 20:33:07 UTC
|
||||
+++ tools/depends/target/ffmpeg/FFmpeg-2.8.6-Jarvis-16.0/configure
|
||||
--- tools/depends/target/ffmpeg/FFmpeg-3.1.6-Krypton/configure.orig 2016-02-03 20:33:07 UTC
|
||||
+++ tools/depends/target/ffmpeg/FFmpeg-3.1.6-Krypton/configure
|
||||
@@ -5683,6 +5683,7 @@ elif enabled llvm_gcc; then
|
||||
check_cflags -mllvm -stack-alignment=16
|
||||
elif enabled clang; then
|
@ -1,5 +1,5 @@
|
||||
--- tools/depends/target/ffmpeg/FFmpeg-2.8.6-Jarvis-16.0/libavutil/x86/asm.h.orig 2016-02-03 20:33:07 UTC
|
||||
+++ tools/depends/target/ffmpeg/FFmpeg-2.8.6-Jarvis-16.0/libavutil/x86/asm.h
|
||||
--- tools/depends/target/ffmpeg/FFmpeg-3.1.6-Krypton/libavutil/x86/asm.h 2016-10-08 UTC
|
||||
+++ tools/depends/target/ffmpeg/FFmpeg-3.1.6-Krypton/libavutil/x86/asm.h.orig
|
||||
@@ -72,7 +72,7 @@ typedef int32_t x86_reg;
|
||||
typedef int x86_reg;
|
||||
#endif
|
@ -1,4 +1,4 @@
|
||||
--- tools/depends/target/ffmpeg/autobuild.sh.orig 2016-02-20 15:21:19 UTC
|
||||
--- tools/depends/target/ffmpeg/autobuild.sh.orig 2016-10-08 UTC
|
||||
+++ tools/depends/target/ffmpeg/autobuild.sh
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/bin/bash
|
||||
@ -8,7 +8,7 @@
|
||||
# http://xbmc.org
|
||||
@@ -27,7 +27,8 @@ BASE_URL=$(grep "BASE_URL=" FFMPEG-VERSI
|
||||
VERSION=$(grep "VERSION=" FFMPEG-VERSION | sed 's/VERSION=//g')
|
||||
ARCHIVE=ffmpeg-${VERSION}.tar.gz
|
||||
ARCHIVE=ffmpeg-$(echo "${VERSION}" | sed 's/\//-/g').tar.gz
|
||||
|
||||
-function usage {
|
||||
+usage()
|
||||
@ -16,7 +16,7 @@
|
||||
echo "usage $(basename $0)
|
||||
[-p | --prefix] ... ffmepg install prefix
|
||||
[-d | --download] ... no build, download tarfile only
|
||||
@@ -82,6 +83,14 @@ do
|
||||
@@ -82,6 +83,46 @@ do
|
||||
FLAGS="$FLAGS --extra-cxxflags=\"${1#*=}\""
|
||||
shift
|
||||
;;
|
||||
@ -27,11 +27,43 @@
|
||||
+ --cxx=*)
|
||||
+ FLAGS="$FLAGS --cxx=${1#*=}"
|
||||
+ shift
|
||||
+ ;;
|
||||
+ --disable-xlib)
|
||||
+ FLAGS="$FLAGS --disable-xlib"
|
||||
+ shift
|
||||
+ ;;
|
||||
+ --disable-libxcb)
|
||||
+ FLAGS="$FLAGS --disable-libxcb"
|
||||
+ shift
|
||||
+ ;;
|
||||
+ --disable-libxcb-shm)
|
||||
+ FLAGS="$FLAGS --disable-libxcb-shm"
|
||||
+ shift
|
||||
+ ;;
|
||||
+ --disable-libxcb-xfixes)
|
||||
+ FLAGS="$FLAGS --disable-libxcb-xfixes"
|
||||
+ shift
|
||||
+ ;;
|
||||
+ --disable-libxcb-shape)
|
||||
+ FLAGS="$FLAGS --disable-libxcb-shape"
|
||||
+ shift
|
||||
+ ;;
|
||||
+ --disable-fast-unaligned)
|
||||
+ FLAGS="$FLAGS --disable-fast-unaligned"
|
||||
+ shift
|
||||
+ ;;
|
||||
+ --disable-vfp)
|
||||
+ FLAGS="$FLAGS --disable-vfp"
|
||||
+ shift
|
||||
+ ;;
|
||||
+ --enable-neon)
|
||||
+ FLAGS="$FLAGS --enable-neon --cpu=armv7-a"
|
||||
+ shift
|
||||
+ ;;
|
||||
-j)
|
||||
BUILDTHREADS=$2
|
||||
shift 2
|
||||
@@ -100,7 +109,7 @@ do
|
||||
@@ -100,7 +141,7 @@ do
|
||||
esac
|
||||
done
|
||||
|
||||
@ -40,12 +72,16 @@
|
||||
[ ${BUILDTHREADS} -eq 0 ] && BUILDTHREADS=1
|
||||
|
||||
[ -z ${VERSION} ] && exit 3
|
||||
@@ -110,10 +119,10 @@ then
|
||||
@@ -110,12 +151,12 @@ then
|
||||
[ "$VERSION" == "$CURVER" ] && exit 0
|
||||
fi
|
||||
|
||||
-[ -f ${ARCHIVE} ] || curl -Ls --create-dirs -f -o ${ARCHIVE} ${BASE_URL}/${VERSION}.tar.gz
|
||||
+#[ -f ${ARCHIVE} ] || curl -Ls --create-dirs -f -o ${ARCHIVE} ${BASE_URL}/${VERSION}.tar.gz
|
||||
-[ -f ${ARCHIVE} ] ||
|
||||
- curl -Ls --create-dirs -f -o ${ARCHIVE} ${BASE_URL}/${VERSION}.tar.gz ||
|
||||
- { echo "error fetching ${BASE_URL}/${VERSION}.tar.gz" ; exit 3; }
|
||||
+#[ -f ${ARCHIVE} ] ||
|
||||
+# curl -Ls --create-dirs -f -o ${ARCHIVE} ${BASE_URL}/${VERSION}.tar.gz ||
|
||||
+# { echo "error fetching ${BASE_URL}/${VERSION}.tar.gz" ; exit 3; }
|
||||
[ $downloadonly ] && exit 0
|
||||
|
||||
-[ -d ffmpeg-${VERSION} ] && rm -rf ffmpeg-${VERSION} && rm .ffmpeg-installed >/dev/null 2>&1
|
||||
@ -53,21 +89,21 @@
|
||||
if [ -d ${FFMPEG_PREFIX} ]
|
||||
then
|
||||
[ -w ${FFMPEG_PREFIX} ] || SUDO="sudo"
|
||||
@@ -121,9 +130,9 @@ else
|
||||
@@ -123,9 +164,9 @@ else
|
||||
[ -w $(dirname ${FFMPEG_PREFIX}) ] || SUDO="sudo"
|
||||
fi
|
||||
|
||||
-mkdir ffmpeg-${VERSION}
|
||||
-cd ffmpeg-${VERSION} || exit 2
|
||||
-tar --strip-components=1 -xf ../${ARCHIVE}
|
||||
+#mkdir ffmpeg-${VERSION}
|
||||
+cd FFmpeg-${VERSION} || exit 2
|
||||
+#tar --strip-components=1 -xf ../${ARCHIVE}
|
||||
-mkdir -p "ffmpeg-${VERSION}"
|
||||
-cd "ffmpeg-${VERSION}" || exit 2
|
||||
-tar --strip-components=1 -xf $MYDIR/${ARCHIVE}
|
||||
+#mkdir -p "ffmpeg-${VERSION}"
|
||||
+cd "FFmpeg-${VERSION}" || exit 2
|
||||
+#tar --strip-components=1 -xf $MYDIR/${ARCHIVE}
|
||||
|
||||
CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \
|
||||
./configure --prefix=$FFMPEG_PREFIX \
|
||||
@@ -162,11 +171,11 @@ CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LD
|
||||
--enable-libdcadec \
|
||||
@@ -162,11 +203,11 @@ CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LD
|
||||
--disable-mipsdspr2 \
|
||||
${FLAGS}
|
||||
|
||||
-make -j ${BUILDTHREADS}
|
||||
@ -75,8 +111,8 @@
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
[ ${SUDO} ] && echo "Root privileges are required to install to ${FFMPEG_PREFIX}"
|
||||
- ${SUDO} make install && echo "$VERSION" > ../.ffmpeg-installed
|
||||
+ ${SUDO} gmake install && echo "$VERSION" > ../.ffmpeg-installed
|
||||
- ${SUDO} make install && echo "$VERSION" > $MYDIR/.ffmpeg-installed
|
||||
+ ${SUDO} gmake install && echo "$VERSION" > $MYDIR/.ffmpeg-installed
|
||||
else
|
||||
echo "ERROR: Building ffmpeg failed"
|
||||
exit 1
|
||||
|
@ -0,0 +1,23 @@
|
||||
--- tools/depends/target/libdvdcss/Makefile.orig 2016-11-12 UTC
|
||||
+++ tools/depends/target/libdvdcss/Makefile
|
||||
@@ -33,14 +33,14 @@ endif
|
||||
|
||||
all: .installed-$(PLATFORM)
|
||||
|
||||
-download: $(TARBALLS_LOCATION)/$(ARCHIVE)
|
||||
+#download: $(TARBALLS_LOCATION)/$(ARCHIVE)
|
||||
|
||||
-$(TARBALLS_LOCATION)/$(ARCHIVE):
|
||||
- cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) -o $(TARBALLS_LOCATION)/$(ARCHIVE) $(BASE_URL)/archive/$(VERSION).tar.gz
|
||||
+#$(TARBALLS_LOCATION)/$(ARCHIVE):
|
||||
+# cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) -o $(TARBALLS_LOCATION)/$(ARCHIVE) $(BASE_URL)/archive/$(VERSION).tar.gz
|
||||
|
||||
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
|
||||
- rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
|
||||
- cd $(PLATFORM); $(ARCHIVE_TOOL) $(TARBALLS_LOCATION)/$(ARCHIVE)
|
||||
+$(PLATFORM): $(DEPS)
|
||||
+# rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
|
||||
+# cd $(PLATFORM); $(ARCHIVE_TOOL) $(TARBALLS_LOCATION)/$(ARCHIVE)
|
||||
cd $(PLATFORM); $(AUTORECONF) -vif && ac_cv_path_GIT= ./configure $(config)
|
||||
|
||||
$(PLATFORM)/.libs/$(LIBNAME).a: $(PLATFORM)
|
@ -0,0 +1,21 @@
|
||||
--- tools/depends/target/libdvdnav/Makefile.orig 2016-11-12 UTC
|
||||
+++ tools/depends/target/libdvdnav/Makefile
|
||||
@@ -44,14 +44,14 @@ CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
|
||||
|
||||
all: .installed-$(PLATFORM)
|
||||
|
||||
-download: $(TARBALLS_LOCATION)/$(ARCHIVE)
|
||||
+#download: $(TARBALLS_LOCATION)/$(ARCHIVE)
|
||||
|
||||
$(TARBALLS_LOCATION)/$(ARCHIVE):
|
||||
cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) -o $(TARBALLS_LOCATION)/$(ARCHIVE) $(BASE_URL)/archive/$(VERSION).tar.gz
|
||||
|
||||
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
|
||||
- rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
|
||||
- cd $(PLATFORM); $(ARCHIVE_TOOL) $(TARBALLS_LOCATION)/$(ARCHIVE)
|
||||
+$(PLATFORM): $(DEPS)
|
||||
+# rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
|
||||
+# cd $(PLATFORM); $(ARCHIVE_TOOL) $(TARBALLS_LOCATION)/$(ARCHIVE)
|
||||
cd $(PLATFORM); $(AUTORECONF) -vif && $(PKGCONFIGPATH) CFLAGS="$(CFLAGS) $(EXTRA_CFLAGS)" ac_cv_path_GIT= ./configure $(config)
|
||||
|
||||
$(PLATFORM)/.libs/$(LIBNAME).a: $(PLATFORM)
|
@ -0,0 +1,23 @@
|
||||
--- tools/depends/target/libdvdread/Makefile.orig 2016-11-12 UTC
|
||||
+++ tools/depends/target/libdvdread/Makefile
|
||||
@@ -47,14 +47,14 @@ CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
|
||||
|
||||
all: .installed-$(PLATFORM)
|
||||
|
||||
-download: $(TARBALLS_LOCATION)/$(ARCHIVE)
|
||||
+#download: $(TARBALLS_LOCATION)/$(ARCHIVE)
|
||||
|
||||
-$(TARBALLS_LOCATION)/$(ARCHIVE):
|
||||
- cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) -o $(TARBALLS_LOCATION)/$(ARCHIVE) $(BASE_URL)/archive/$(VERSION).tar.gz
|
||||
+#$(TARBALLS_LOCATION)/$(ARCHIVE):
|
||||
+# cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) -o $(TARBALLS_LOCATION)/$(ARCHIVE) $(BASE_URL)/archive/$(VERSION).tar.gz
|
||||
|
||||
-$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
|
||||
- rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
|
||||
- cd $(PLATFORM); $(ARCHIVE_TOOL) $(TARBALLS_LOCATION)/$(ARCHIVE)
|
||||
+$(PLATFORM): $(DEPS)
|
||||
+# rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
|
||||
+# cd $(PLATFORM); $(ARCHIVE_TOOL) $(TARBALLS_LOCATION)/$(ARCHIVE)
|
||||
cd $(PLATFORM); $(AUTORECONF) -vif && $(PKGCONFIGPATH) CFLAGS="$(CFLAGS) $(EXTRA_CFLAGS)" ac_cv_path_GIT= ./configure $(config)
|
||||
|
||||
$(PLATFORM)/.libs/$(LIBNAME).a: $(PLATFORM)
|
@ -0,0 +1,11 @@
|
||||
--- xbmc/cores/VideoPlayer/Process/overrides/linux/ProcessInfoLinux.cpp.orig 2017-03-04 19:48:40 UTC
|
||||
+++ xbmc/cores/VideoPlayer/Process/overrides/linux/ProcessInfoLinux.cpp
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "threads/SingleLock.h"
|
||||
|
||||
// Override for platform ports
|
||||
-#if defined(TARGET_LINUX)
|
||||
+#if defined(TARGET_LINUX) || defined(TARGET_FREEBSD)
|
||||
|
||||
CProcessInfo* CProcessInfo::CreateInstance()
|
||||
{
|
@ -1,11 +0,0 @@
|
||||
--- xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp
|
||||
@@ -289,6 +289,8 @@ bool CAESinkOSS::Initialize(AEAudioForma
|
||||
#endif
|
||||
|
||||
int tmp = (CAEUtil::DataFormatToBits(format.m_dataFormat) >> 3) * format.m_channelLayout.Count() * OSS_FRAMES;
|
||||
+ if (AE_IS_RAW_HD(format.m_dataFormat) && m_initFormat.m_dataFormat != AE_FMT_LPCM)
|
||||
+ tmp *= 8;
|
||||
int pos = 0;
|
||||
while ((tmp & 0x1) == 0x0)
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
--- xbmc/cores/dvdplayer/DVDDemuxSPU.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/cores/dvdplayer/DVDDemuxSPU.cpp
|
||||
--- xbmc/cores/VideoPlayer/DVDDemuxSPU.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/cores/VideoPlayer/DVDDemuxSPU.cpp
|
||||
@@ -18,6 +18,7 @@
|
||||
*
|
||||
*/
|
@ -1,10 +0,0 @@
|
||||
--- xbmc/dialogs/GUIDialogGamepad.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/dialogs/GUIDialogGamepad.cpp
|
||||
@@ -18,6 +18,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include <stdlib.h>
|
||||
#include "GUIDialogGamepad.h"
|
||||
#include "utils/md5.h"
|
||||
#include "utils/StringUtils.h"
|
@ -1,10 +0,0 @@
|
||||
--- xbmc/dialogs/GUIDialogNumeric.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/dialogs/GUIDialogNumeric.cpp
|
||||
@@ -18,6 +18,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include <stdlib.h>
|
||||
#include "GUIDialogNumeric.h"
|
||||
|
||||
#include <cassert>
|
@ -1,10 +0,0 @@
|
||||
--- xbmc/guilib/GUIAction.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/guilib/GUIAction.cpp
|
||||
@@ -18,6 +18,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include <stdlib.h>
|
||||
#include "GUIAction.h"
|
||||
#include "utils/StringUtils.h"
|
||||
#include "GUIWindowManager.h"
|
@ -1,10 +0,0 @@
|
||||
--- xbmc/guilib/GUISpinControl.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/guilib/GUISpinControl.cpp
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "input/Key.h"
|
||||
#include "utils/StringUtils.h"
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
|
||||
#define SPIN_BUTTON_DOWN 1
|
||||
#define SPIN_BUTTON_UP 2
|
@ -1,5 +1,5 @@
|
||||
--- xbmc/guilib/TextureBundleXPR.h.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/guilib/TextureBundleXPR.h
|
||||
--- xbmc/guilib/TextureBundleXBT.h.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/guilib/TextureBundleXBT.h
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <string>
|
||||
#include <stdint.h>
|
@ -1,10 +0,0 @@
|
||||
--- xbmc/interfaces/builtins/GUIContainerBuiltins.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/interfaces/builtins/GUIContainerBuiltins.cpp
|
||||
@@ -18,6 +18,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include <stdlib.h>
|
||||
#include "GUIContainerBuiltins.h"
|
||||
|
||||
#include "guilib/GUIWindowManager.h"
|
@ -1,10 +0,0 @@
|
||||
--- xbmc/interfaces/legacy/Dialog.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/interfaces/legacy/Dialog.cpp
|
||||
@@ -19,6 +19,7 @@
|
||||
*/
|
||||
#include "LanguageHook.h"
|
||||
|
||||
+#include <stdlib.h>
|
||||
#include "dialogs/GUIDialogOK.h"
|
||||
#include "dialogs/GUIDialogYesNo.h"
|
||||
#include "dialogs/GUIDialogSelect.h"
|
10
multimedia/kodi/files/patch-xbmc_linux_PlatformDefs.h
Normal file
10
multimedia/kodi/files/patch-xbmc_linux_PlatformDefs.h
Normal file
@ -0,0 +1,10 @@
|
||||
--- xbmc/linux/PlatformDefs.h.orig 2017-03-04 19:20:36 UTC
|
||||
+++ xbmc/linux/PlatformDefs.h
|
||||
@@ -52,6 +52,7 @@
|
||||
#endif
|
||||
#elif defined(TARGET_FREEBSD)
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/types.h>
|
||||
#else
|
@ -1,10 +0,0 @@
|
||||
--- xbmc/linux/XFileUtils.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/linux/XFileUtils.cpp
|
||||
@@ -37,6 +37,7 @@
|
||||
#endif
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
+#include <stdlib.h>
|
||||
|
||||
#if defined(TARGET_ANDROID)
|
||||
#include <sys/file.h>
|
@ -1,10 +0,0 @@
|
||||
--- xbmc/music/tags/MusicInfoTagLoaderCDDA.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/music/tags/MusicInfoTagLoaderCDDA.cpp
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "profiles/ProfilesManager.h"
|
||||
#include "storage/MediaManager.h"
|
||||
#include "utils/log.h"
|
||||
+#include <stdlib.h>
|
||||
|
||||
using namespace MUSIC_INFO;
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- xbmc/main/main.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/main/main.cpp
|
||||
--- xbmc/platform/posix/main.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/platform/posix/main.cpp
|
||||
@@ -28,6 +28,7 @@
|
||||
#ifdef TARGET_POSIX
|
||||
#include <sys/resource.h>
|
@ -1,10 +0,0 @@
|
||||
--- xbmc/pvr/PVRActionListener.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/pvr/PVRActionListener.cpp
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "settings/Settings.h"
|
||||
#include "utils/log.h"
|
||||
#include "utils/StringUtils.h"
|
||||
+#include <stdlib.h>
|
||||
|
||||
#include "pvr/PVRManager.h"
|
||||
#include "pvr/channels/PVRChannelGroupsContainer.h"
|
@ -1,10 +0,0 @@
|
||||
--- xbmc/pvr/recordings/PVRRecording.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/pvr/recordings/PVRRecording.cpp
|
||||
@@ -18,6 +18,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include <stdlib.h>
|
||||
#include "dialogs/GUIDialogOK.h"
|
||||
#include "epg/Epg.h"
|
||||
#include "epg/EpgContainer.h"
|
@ -1,10 +0,0 @@
|
||||
--- xbmc/storage/linux/DeviceKitDisksProvider.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/storage/linux/DeviceKitDisksProvider.cpp
|
||||
@@ -19,6 +19,7 @@
|
||||
*/
|
||||
#include "DeviceKitDisksProvider.h"
|
||||
#ifdef HAS_DBUS
|
||||
+#include <stdlib.h>
|
||||
#include "settings/AdvancedSettings.h"
|
||||
#include "guilib/LocalizeStrings.h"
|
||||
#include "utils/log.h"
|
@ -1,10 +0,0 @@
|
||||
--- xbmc/storage/linux/UDisksProvider.cpp.orig 2016-02-20 15:21:19 UTC
|
||||
+++ xbmc/storage/linux/UDisksProvider.cpp
|
||||
@@ -19,6 +19,7 @@
|
||||
*/
|
||||
#include "UDisksProvider.h"
|
||||
#ifdef HAS_DBUS
|
||||
+#include <stdlib.h>
|
||||
#include "settings/AdvancedSettings.h"
|
||||
#include "guilib/LocalizeStrings.h"
|
||||
#include "utils/log.h"
|
14
multimedia/kodi/files/patch-xbmc_system.h
Normal file
14
multimedia/kodi/files/patch-xbmc_system.h
Normal file
@ -0,0 +1,14 @@
|
||||
--- xbmc/system.h.orig 2015-08-16 16:37:32 UTC
|
||||
+++ xbmc/system.h
|
||||
@@ -166,7 +166,11 @@
|
||||
#endif
|
||||
#else
|
||||
#ifndef HAVE_X11
|
||||
+#if defined(TARGET_LINUX)
|
||||
#define HAS_LINUX_EVENTS
|
||||
+#elif defined(TARGET_FREEBSD)
|
||||
+#define HAS_FREEBSD_EVENTS
|
||||
+#endif
|
||||
#endif
|
||||
#endif
|
||||
#define HAS_LINUX_NETWORK
|
27
multimedia/kodi/files/patch-xbmc_utils_CPUInfo.cpp
Normal file
27
multimedia/kodi/files/patch-xbmc_utils_CPUInfo.cpp
Normal file
@ -0,0 +1,27 @@
|
||||
--- xbmc/utils/CPUInfo.cpp.orig 2016-04-24 UTC
|
||||
+++ xbmc/utils/CPUInfo.cpp
|
||||
@@ -584,6 +584,14 @@ bool CCPUInfo::getTemperature(CTemperatu
|
||||
#if defined(TARGET_DARWIN_OSX)
|
||||
value = SMCGetTemperature(SMC_KEY_CPU_TEMP);
|
||||
scale = 'c';
|
||||
+#elif defined(TARGET_RASPBERRY_PI)
|
||||
+ size_t len;
|
||||
+ len = sizeof(value);
|
||||
+ if (sysctlbyname("dev.cpu.0.temperature", &value, &len, NULL, 0) != 0)
|
||||
+ return false;
|
||||
+ /* temperature is in kelvin * 10 */
|
||||
+ value = (value - 2732) / 10;
|
||||
+ scale = 'c';
|
||||
#else
|
||||
int ret = 0;
|
||||
FILE *p = NULL;
|
||||
@@ -937,6 +945,9 @@ bool CCPUInfo::HasNeon()
|
||||
#elif defined(TARGET_DARWIN_IOS)
|
||||
has_neon = 1;
|
||||
|
||||
+#elif defined(__FreeBSD__) && defined(__ARM_NEON__)
|
||||
+ has_neon = 1;
|
||||
+
|
||||
#elif defined(TARGET_LINUX) && defined(__ARM_NEON__)
|
||||
if (has_neon == -1)
|
||||
{
|
8
multimedia/kodi/files/patch-xbmc_windowing_Makefile.in
Normal file
8
multimedia/kodi/files/patch-xbmc_windowing_Makefile.in
Normal file
@ -0,0 +1,8 @@
|
||||
--- xbmc/windowing/Makefile.in.orig 2016-10-08 UTC
|
||||
+++ xbmc/windowing/Makefile.in
|
||||
@@ -1,4 +1,5 @@
|
||||
SRCS=WinEventsSDL.cpp \
|
||||
+ WinEventsFreeBSD.cpp \
|
||||
WinEventsLinux.cpp \
|
||||
WinEventsX11.cpp \
|
||||
WinSystem.cpp \
|
13
multimedia/kodi/files/patch-xbmc_windowing_WinEvents.cpp
Normal file
13
multimedia/kodi/files/patch-xbmc_windowing_WinEvents.cpp
Normal file
@ -0,0 +1,13 @@
|
||||
--- xbmc/windowing/WinEvents.cpp.orig 2015-08-16 16:37:32 UTC
|
||||
+++ xbmc/windowing/WinEvents.cpp
|
||||
@@ -38,6 +38,10 @@
|
||||
#include "android/WinEventsAndroid.h"
|
||||
#define WinEventsType CWinEventsAndroid
|
||||
|
||||
+#elif defined(TARGET_FREEBSD) && defined(TARGET_RASPBERRY_PI)
|
||||
+#include "WinEventsFreeBSD.h"
|
||||
+#define WinEventsType CWinEventsFreeBSD
|
||||
+
|
||||
#elif (defined(TARGET_FREEBSD) || defined(TARGET_LINUX)) && defined(HAS_SDL_WIN_EVENTS)
|
||||
#include "WinEventsSDL.h"
|
||||
#define WinEventsType CWinEventsSDL
|
531
multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.cpp
Normal file
531
multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.cpp
Normal file
@ -0,0 +1,531 @@
|
||||
--- xbmc/windowing/WinEventsFreeBSD.cpp.orig 2016-03-02 09:32:08 UTC
|
||||
+++ xbmc/windowing/WinEventsFreeBSD.cpp
|
||||
@@ -0,0 +1,528 @@
|
||||
+/*
|
||||
+ * Portions copied from:
|
||||
+ * xbmc/input/linux/LinuxInputDevices.cpp
|
||||
+ * https://github.com/gonzoua/quake3/blob/master/code/es/es_input.c
|
||||
+ *
|
||||
+ * This Program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 2, or (at your option)
|
||||
+ * any later version.
|
||||
+ *
|
||||
+ * This Program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with XBMC; see the file COPYING. If not, see
|
||||
+ * <http://www.gnu.org/licenses/>.
|
||||
+ */
|
||||
+
|
||||
+#include "system.h"
|
||||
+
|
||||
+#ifdef HAS_FREEBSD_EVENTS
|
||||
+
|
||||
+#include "WinEventsFreeBSD.h"
|
||||
+#include "WinEvents.h"
|
||||
+#include "XBMC_events.h"
|
||||
+#include "guilib/GraphicContext.h"
|
||||
+#include "input/XBMC_keysym.h"
|
||||
+#include "Application.h"
|
||||
+#include "input/MouseStat.h"
|
||||
+#include "utils/log.h"
|
||||
+
|
||||
+#include "es_scancodes.h"
|
||||
+
|
||||
+struct termios kbd_orig_tty;
|
||||
+int orig_kbd_mode;
|
||||
+int kbd_fd = -1;
|
||||
+
|
||||
+typedef struct {
|
||||
+ unsigned short Key;
|
||||
+ XBMCKey xbmcKey;
|
||||
+} KeyMap;
|
||||
+
|
||||
+static const
|
||||
+KeyMap keyMap[] = {
|
||||
+ { SCANCODE_ESCAPE , XBMCK_ESCAPE },
|
||||
+ { SCANCODE_1 , XBMCK_1 },
|
||||
+ { SCANCODE_2 , XBMCK_2 },
|
||||
+ { SCANCODE_3 , XBMCK_3 },
|
||||
+ { SCANCODE_4 , XBMCK_4 },
|
||||
+ { SCANCODE_5 , XBMCK_5 },
|
||||
+ { SCANCODE_6 , XBMCK_6 },
|
||||
+ { SCANCODE_7 , XBMCK_7 },
|
||||
+ { SCANCODE_8 , XBMCK_8 },
|
||||
+ { SCANCODE_9 , XBMCK_9 },
|
||||
+ { SCANCODE_0 , XBMCK_0 },
|
||||
+ { SCANCODE_MINUS , XBMCK_MINUS },
|
||||
+ { SCANCODE_EQUAL , XBMCK_EQUALS },
|
||||
+ { SCANCODE_BACKSPACE , XBMCK_BACKSPACE },
|
||||
+ { SCANCODE_TAB , XBMCK_TAB },
|
||||
+ { SCANCODE_Q , XBMCK_q },
|
||||
+ { SCANCODE_W , XBMCK_w },
|
||||
+ { SCANCODE_E , XBMCK_e },
|
||||
+ { SCANCODE_R , XBMCK_r },
|
||||
+ { SCANCODE_T , XBMCK_t },
|
||||
+ { SCANCODE_Y , XBMCK_y },
|
||||
+ { SCANCODE_U , XBMCK_u },
|
||||
+ { SCANCODE_I , XBMCK_i },
|
||||
+ { SCANCODE_O , XBMCK_o },
|
||||
+ { SCANCODE_P , XBMCK_p },
|
||||
+ { SCANCODE_BRACKET_LEFT , XBMCK_LEFTBRACKET },
|
||||
+ { SCANCODE_BRACKET_RIGHT , XBMCK_RIGHTBRACKET},
|
||||
+ { SCANCODE_ENTER , XBMCK_RETURN },
|
||||
+ { SCANCODE_LEFTCONTROL , XBMCK_LCTRL },
|
||||
+ { SCANCODE_A , XBMCK_a },
|
||||
+ { SCANCODE_S , XBMCK_s },
|
||||
+ { SCANCODE_D , XBMCK_d },
|
||||
+ { SCANCODE_F , XBMCK_f },
|
||||
+ { SCANCODE_G , XBMCK_g },
|
||||
+ { SCANCODE_H , XBMCK_h },
|
||||
+ { SCANCODE_J , XBMCK_j },
|
||||
+ { SCANCODE_K , XBMCK_k },
|
||||
+ { SCANCODE_L , XBMCK_l },
|
||||
+ { SCANCODE_SEMICOLON , XBMCK_SEMICOLON },
|
||||
+ { SCANCODE_APOSTROPHE , XBMCK_QUOTE },
|
||||
+ { SCANCODE_GRAVE , XBMCK_BACKQUOTE },
|
||||
+ { SCANCODE_LEFTSHIFT , XBMCK_LSHIFT },
|
||||
+ { SCANCODE_BACKSLASH , XBMCK_BACKSLASH },
|
||||
+ { SCANCODE_Z , XBMCK_z },
|
||||
+ { SCANCODE_X , XBMCK_x },
|
||||
+ { SCANCODE_C , XBMCK_c },
|
||||
+ { SCANCODE_V , XBMCK_v },
|
||||
+ { SCANCODE_B , XBMCK_b },
|
||||
+ { SCANCODE_N , XBMCK_n },
|
||||
+ { SCANCODE_M , XBMCK_m },
|
||||
+ { SCANCODE_COMMA , XBMCK_COMMA },
|
||||
+ { SCANCODE_PERIOD , XBMCK_PERIOD },
|
||||
+ { SCANCODE_SLASH , XBMCK_SLASH },
|
||||
+ { SCANCODE_RIGHTSHIFT , XBMCK_RSHIFT },
|
||||
+ { SCANCODE_KEYPADMULTIPLY , XBMCK_KP_MULTIPLY },
|
||||
+ { SCANCODE_LEFTALT , XBMCK_LALT },
|
||||
+ { SCANCODE_SPACE , XBMCK_SPACE },
|
||||
+ { SCANCODE_CAPSLOCK , XBMCK_CAPSLOCK },
|
||||
+ { SCANCODE_F1 , XBMCK_F1 },
|
||||
+ { SCANCODE_F2 , XBMCK_F2 },
|
||||
+ { SCANCODE_F3 , XBMCK_F3 },
|
||||
+ { SCANCODE_F4 , XBMCK_F4 },
|
||||
+ { SCANCODE_F5 , XBMCK_F5 },
|
||||
+ { SCANCODE_F6 , XBMCK_F6 },
|
||||
+ { SCANCODE_F7 , XBMCK_F7 },
|
||||
+ { SCANCODE_F8 , XBMCK_F8 },
|
||||
+ { SCANCODE_F9 , XBMCK_F9 },
|
||||
+ { SCANCODE_F10 , XBMCK_F10 },
|
||||
+ { SCANCODE_NUMLOCK , XBMCK_NUMLOCK },
|
||||
+ { SCANCODE_SCROLLLOCK , XBMCK_SCROLLOCK },
|
||||
+ { SCANCODE_KEYPAD7 , XBMCK_KP7 },
|
||||
+ { SCANCODE_KEYPAD8 , XBMCK_KP8 },
|
||||
+ { SCANCODE_KEYPAD9 , XBMCK_KP9 },
|
||||
+ { SCANCODE_KEYPADMINUS , XBMCK_KP_MINUS },
|
||||
+ { SCANCODE_KEYPAD4 , XBMCK_KP4 },
|
||||
+ { SCANCODE_KEYPAD5 , XBMCK_KP5 },
|
||||
+ { SCANCODE_KEYPAD6 , XBMCK_KP6 },
|
||||
+ { SCANCODE_KEYPADPLUS , XBMCK_KP_PLUS },
|
||||
+ { SCANCODE_KEYPAD1 , XBMCK_KP1 },
|
||||
+ { SCANCODE_KEYPAD2 , XBMCK_KP2 },
|
||||
+ { SCANCODE_KEYPAD3 , XBMCK_KP3 },
|
||||
+ { SCANCODE_KEYPAD0 , XBMCK_KP0 },
|
||||
+ { SCANCODE_KEYPADPERIOD , XBMCK_KP_PERIOD },
|
||||
+ { SCANCODE_BACKSLASH , XBMCK_BACKSLASH },
|
||||
+ { SCANCODE_F11 , XBMCK_F11 },
|
||||
+ { SCANCODE_F12 , XBMCK_F12 },
|
||||
+ { SCANCODE_KEYPADENTER , XBMCK_KP_ENTER },
|
||||
+ { SCANCODE_RIGHTCONTROL , XBMCK_RCTRL },
|
||||
+ { SCANCODE_KEYPADDIVIDE , XBMCK_KP_DIVIDE },
|
||||
+ { SCANCODE_PRINTSCREEN , XBMCK_PRINT },
|
||||
+ { SCANCODE_RIGHTALT , XBMCK_MODE },
|
||||
+ { SCANCODE_HOME , XBMCK_HOME },
|
||||
+ { SCANCODE_CURSORBLOCKUP , XBMCK_UP },
|
||||
+ { SCANCODE_PAGEUP , XBMCK_PAGEUP },
|
||||
+ { SCANCODE_CURSORBLOCKLEFT , XBMCK_LEFT },
|
||||
+ { SCANCODE_CURSORBLOCKRIGHT , XBMCK_RIGHT },
|
||||
+ { SCANCODE_END , XBMCK_END },
|
||||
+ { SCANCODE_CURSORBLOCKDOWN , XBMCK_DOWN },
|
||||
+ { SCANCODE_PAGEDOWN , XBMCK_PAGEDOWN },
|
||||
+ { SCANCODE_INSERT , XBMCK_INSERT },
|
||||
+ { SCANCODE_PRINTSCREEN , XBMCK_PRINT },
|
||||
+ { SCANCODE_BACKSPACE , XBMCK_BACKSPACE },
|
||||
+};
|
||||
+
|
||||
+/*
|
||||
+ * Translates a FreeBSD input keycode into an XBMC keycode.
|
||||
+ */
|
||||
+XBMCKey CWinEventsFreeBSD::TranslateKey(unsigned short code)
|
||||
+{
|
||||
+ for (size_t index = 0; index < sizeof(keyMap) / sizeof(KeyMap); index++) {
|
||||
+ if (code == keyMap[index].Key)
|
||||
+ return keyMap[index].xbmcKey;
|
||||
+ }
|
||||
+
|
||||
+ return XBMCK_UNKNOWN;
|
||||
+}
|
||||
+
|
||||
+XBMCMod CWinEventsFreeBSD::UpdateModifiers(XBMCKey key, XBMC_EventType xbmcKey)
|
||||
+{
|
||||
+ XBMCMod modifier = XBMCKMOD_NONE;
|
||||
+
|
||||
+ switch (key) {
|
||||
+ case XBMCK_LSHIFT: modifier = XBMCKMOD_LSHIFT; break;
|
||||
+ case XBMCK_RSHIFT: modifier = XBMCKMOD_RSHIFT; break;
|
||||
+ case XBMCK_LCTRL: modifier = XBMCKMOD_LCTRL; break;
|
||||
+ case XBMCK_RCTRL: modifier = XBMCKMOD_RCTRL; break;
|
||||
+ case XBMCK_LALT: modifier = XBMCKMOD_LALT; break;
|
||||
+ case XBMCK_RALT: modifier = XBMCKMOD_RALT; break;
|
||||
+ case XBMCK_LMETA: modifier = XBMCKMOD_LMETA; break;
|
||||
+ case XBMCK_RMETA: modifier = XBMCKMOD_RMETA; break;
|
||||
+ default: break;
|
||||
+ }
|
||||
+
|
||||
+ if (xbmcKey == XBMC_KEYDOWN) {
|
||||
+ m_keyMods |= modifier;
|
||||
+ } else {
|
||||
+ m_keyMods &= ~modifier;
|
||||
+ }
|
||||
+
|
||||
+ if (xbmcKey == XBMC_KEYDOWN) {
|
||||
+ modifier = XBMCKMOD_NONE;
|
||||
+ switch (key) {
|
||||
+ case XBMCK_NUMLOCK: modifier = XBMCKMOD_NUM; break;
|
||||
+ case XBMCK_CAPSLOCK: modifier = XBMCKMOD_CAPS; break;
|
||||
+ default: break;
|
||||
+ }
|
||||
+
|
||||
+ if (m_keyMods & modifier) {
|
||||
+ m_keyMods &= ~modifier;
|
||||
+ } else {
|
||||
+ m_keyMods |= modifier;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return (XBMCMod) m_keyMods;
|
||||
+}
|
||||
+
|
||||
+bool CWinEventsFreeBSD::MessagePump()
|
||||
+{
|
||||
+ bool ret = false;
|
||||
+
|
||||
+ if (mouse_fd < 0)
|
||||
+ init_mouse();
|
||||
+
|
||||
+ if (kbd_fd < 0)
|
||||
+ init_kbd();
|
||||
+
|
||||
+ while (has_kbd_event()) {
|
||||
+ process_kbd_events();
|
||||
+ ret = true;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ while (has_mouse_event()) {
|
||||
+ process_mouse_events();
|
||||
+ ret = true;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+size_t CWinEventsFreeBSD::GetQueueSize()
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+void CWinEventsFreeBSD::init_kbd()
|
||||
+{
|
||||
+ struct sigaction sa = {{0}};
|
||||
+ struct termios kbdtty;
|
||||
+
|
||||
+ kbd_fd = fileno(stdin);
|
||||
+ if (kbd_fd < 0)
|
||||
+ return;
|
||||
+
|
||||
+ if (ioctl(kbd_fd, KDGKBMODE, &orig_kbd_mode)) {
|
||||
+ CLog::Log(LOGDEBUG, "ioctl(KDGKBMODE)");
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ if (ioctl(kbd_fd, KDSKBMODE, K_CODE)) {
|
||||
+ CLog::Log(LOGDEBUG, "ioctl(KDSKBMODE)");
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ if (tcgetattr(kbd_fd, &kbdtty)) {
|
||||
+ CLog::Log(LOGDEBUG, "tcgetattr");
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ sa.sa_handler = restore_signal;
|
||||
+ sa.sa_flags = SA_RESTART | SA_RESETHAND;
|
||||
+ sigemptyset(&sa.sa_mask);
|
||||
+
|
||||
+ sigaction(SIGABRT, &sa, NULL);
|
||||
+ sigaction(SIGBUS, &sa, NULL);
|
||||
+ sigaction(SIGFPE, &sa, NULL);
|
||||
+ sigaction(SIGILL, &sa, NULL);
|
||||
+ sigaction(SIGQUIT, &sa, NULL);
|
||||
+ sigaction(SIGSEGV, &sa, NULL);
|
||||
+
|
||||
+ kbd_orig_tty = kbdtty;
|
||||
+
|
||||
+ kbdtty.c_iflag = IGNPAR | IGNBRK;
|
||||
+ /* kbdtty.c_oflag = 0; */
|
||||
+ kbdtty.c_cflag = CREAD | CS8;
|
||||
+ kbdtty.c_lflag = 0;
|
||||
+ kbdtty.c_cc[VTIME] = 0;
|
||||
+ kbdtty.c_cc[VMIN] = 1;
|
||||
+ cfsetispeed(&kbdtty, 9600);
|
||||
+ cfsetospeed(&kbdtty, 9600);
|
||||
+ if (tcsetattr(kbd_fd, TCSANOW, &kbdtty) < 0) {
|
||||
+ CLog::Log(LOGDEBUG, "tcsetattr");
|
||||
+ }
|
||||
+ return;
|
||||
+
|
||||
+out:
|
||||
+ kbd_fd = -1;
|
||||
+}
|
||||
+
|
||||
+void CWinEventsFreeBSD::restore_signal(int sig)
|
||||
+{
|
||||
+ close_kbd();
|
||||
+ kill(getpid(), sig);
|
||||
+}
|
||||
+
|
||||
+void CWinEventsFreeBSD::close_kbd()
|
||||
+{
|
||||
+ if (kbd_fd < 0)
|
||||
+ return;
|
||||
+
|
||||
+ if (tcsetattr(kbd_fd, TCSANOW, &kbd_orig_tty) < 0)
|
||||
+ CLog::Log(LOGDEBUG, "tcsetattr");
|
||||
+
|
||||
+ if (ioctl(kbd_fd, KDSKBMODE, orig_kbd_mode))
|
||||
+ CLog::Log(LOGDEBUG, "ioctl(KDSKBMODE)");
|
||||
+
|
||||
+ kbd_fd = -1;
|
||||
+}
|
||||
+
|
||||
+int CWinEventsFreeBSD::has_kbd_event(void)
|
||||
+{
|
||||
+ struct timeval tv;
|
||||
+ fd_set fds;
|
||||
+
|
||||
+ if (kbd_fd < 0)
|
||||
+ return(0);
|
||||
+
|
||||
+ tv.tv_sec = 0;
|
||||
+ tv.tv_usec = 0;
|
||||
+
|
||||
+ FD_ZERO(&fds);
|
||||
+ FD_SET(kbd_fd, &fds);
|
||||
+
|
||||
+ select(FD_SETSIZE, &fds, NULL, NULL, &tv);
|
||||
+
|
||||
+ return FD_ISSET(kbd_fd, &fds);
|
||||
+}
|
||||
+
|
||||
+void CWinEventsFreeBSD::process_kbd_events(void)
|
||||
+{
|
||||
+ uint8_t code[4];
|
||||
+ int bytes;
|
||||
+ XBMCKey key;
|
||||
+
|
||||
+ if (kbd_fd < 0)
|
||||
+ return;
|
||||
+
|
||||
+ bytes = read(kbd_fd, code, sizeof(code));
|
||||
+ for (int i = 0; i < bytes; i++) {
|
||||
+ key = TranslateKey(code[i] & 0x7f);
|
||||
+ if (code[i] & 0x80) {
|
||||
+ XBMC_Event newEvent;
|
||||
+ newEvent.type = XBMC_KEYUP;
|
||||
+ newEvent.key.keysym.scancode = code[i];
|
||||
+ newEvent.key.keysym.unicode = 0;
|
||||
+ newEvent.key.keysym.sym = key;
|
||||
+ newEvent.key.keysym.mod = UpdateModifiers(key, XBMC_KEYUP);
|
||||
+ newEvent.key.state = XBMC_RELEASED;
|
||||
+ newEvent.key.type = XBMC_KEYUP;
|
||||
+ newEvent.key.which = 0;
|
||||
+ g_application.OnEvent(newEvent);
|
||||
+ } else {
|
||||
+ XBMC_Event newEvent;
|
||||
+ newEvent.type = XBMC_KEYDOWN;
|
||||
+ newEvent.key.keysym.scancode = code[i];
|
||||
+ newEvent.key.keysym.unicode = 0;
|
||||
+ newEvent.key.keysym.sym = key;
|
||||
+ newEvent.key.keysym.mod = UpdateModifiers(key, XBMC_KEYDOWN);
|
||||
+ newEvent.key.state = XBMC_PRESSED;
|
||||
+ newEvent.key.type = XBMC_KEYDOWN;
|
||||
+ newEvent.key.which = 0;
|
||||
+ g_application.OnEvent(newEvent);
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void CWinEventsFreeBSD::init_mouse()
|
||||
+{
|
||||
+ mouse_fd = open("/dev/sysmouse", O_RDONLY);
|
||||
+ if (mouse_fd < 0) {
|
||||
+ CLog::Log(LOGDEBUG, "open /dev/sysmouse failed");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ int level = 1;
|
||||
+ if (ioctl(mouse_fd, MOUSE_SETLEVEL, &level)) {
|
||||
+ close(mouse_fd);
|
||||
+ CLog::Log(LOGDEBUG, "ioctl MOUSE_SETLEVEL failed");
|
||||
+ return;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+int CWinEventsFreeBSD::has_mouse_event(void)
|
||||
+{
|
||||
+ struct timeval tv;
|
||||
+ fd_set fds;
|
||||
+
|
||||
+ if (mouse_fd < 0)
|
||||
+ return 0;
|
||||
+
|
||||
+ tv.tv_sec = 0;
|
||||
+ tv.tv_usec = 0;
|
||||
+ FD_ZERO(&fds);
|
||||
+ FD_SET(mouse_fd, &fds);
|
||||
+ select(mouse_fd+1, &fds, NULL, NULL, &tv);
|
||||
+
|
||||
+ return FD_ISSET(mouse_fd, &fds);
|
||||
+}
|
||||
+
|
||||
+void CWinEventsFreeBSD::send_mouse_event(int button, int pressed)
|
||||
+{
|
||||
+ uint8_t b;
|
||||
+ switch (button) {
|
||||
+ case 0:
|
||||
+ b = XBMC_BUTTON_RIGHT;
|
||||
+ break;
|
||||
+ case 1:
|
||||
+ b = XBMC_BUTTON_RIGHT;
|
||||
+ break;
|
||||
+ case 2:
|
||||
+ b = XBMC_BUTTON_LEFT;
|
||||
+ break;
|
||||
+ default:
|
||||
+ b = 0xff;
|
||||
+ }
|
||||
+
|
||||
+ if (b != 0xff) {
|
||||
+ if (pressed == 1) {
|
||||
+ XBMC_Event newEvent;
|
||||
+ newEvent.type = XBMC_MOUSEBUTTONDOWN;
|
||||
+ newEvent.button.button = b;
|
||||
+ newEvent.button.state = XBMC_PRESSED;
|
||||
+ newEvent.button.type = XBMC_MOUSEBUTTONDOWN;
|
||||
+ newEvent.button.x = m_mouseX;
|
||||
+ newEvent.button.y = m_mouseY;
|
||||
+ g_application.OnEvent(newEvent);
|
||||
+ } else {
|
||||
+ XBMC_Event newEvent;
|
||||
+ newEvent.type = XBMC_MOUSEBUTTONUP;
|
||||
+ newEvent.button.button = b;
|
||||
+ newEvent.button.state = XBMC_RELEASED;
|
||||
+ newEvent.button.type = XBMC_MOUSEBUTTONUP;
|
||||
+ newEvent.button.x = m_mouseX;
|
||||
+ newEvent.button.y = m_mouseY;
|
||||
+ g_application.OnEvent(newEvent);
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void CWinEventsFreeBSD::process_mouse_events(void)
|
||||
+{
|
||||
+ int8_t packet[MOUSE_SYS_PACKETSIZE];
|
||||
+ uint8_t status, changed;
|
||||
+ int16_t relx, rely;
|
||||
+
|
||||
+ if (mouse_fd < 0)
|
||||
+ return;
|
||||
+
|
||||
+ if (read(mouse_fd, packet, sizeof(packet)) < sizeof(packet))
|
||||
+ return;
|
||||
+
|
||||
+ /* handle button click */
|
||||
+ status = packet[0] & MOUSE_SYS_STDBUTTONS;
|
||||
+ changed = status ^ mouse_buttons;
|
||||
+ if (changed) {
|
||||
+ for (int i = 0; i < 3; i++)
|
||||
+ if (changed & (1<<i))
|
||||
+ send_mouse_event(i, ((status & (1<<i)) == 0));
|
||||
+ }
|
||||
+
|
||||
+ /* XBMC_BUTTON_WHEELUP */
|
||||
+ if (packet[5] != 0) {
|
||||
+ XBMC_Event newEvent;
|
||||
+ newEvent.type = XBMC_MOUSEBUTTONDOWN;
|
||||
+ newEvent.button.button = XBMC_BUTTON_WHEELUP;
|
||||
+ newEvent.button.state = XBMC_PRESSED;
|
||||
+ newEvent.button.x = m_mouseX;
|
||||
+ newEvent.button.y = m_mouseY;
|
||||
+ g_application.OnEvent(newEvent);
|
||||
+
|
||||
+ newEvent.type = XBMC_MOUSEBUTTONUP;
|
||||
+ newEvent.button.state = XBMC_RELEASED;
|
||||
+ g_application.OnEvent(newEvent);
|
||||
+ }
|
||||
+ /* XBMC_BUTTON_WHEELDOWN */
|
||||
+ if (packet[6] != 0) {
|
||||
+ XBMC_Event newEvent;
|
||||
+ newEvent.type = XBMC_MOUSEBUTTONDOWN;
|
||||
+ newEvent.button.button = XBMC_BUTTON_WHEELDOWN;
|
||||
+ newEvent.button.state = XBMC_PRESSED;
|
||||
+ newEvent.button.x = m_mouseX;
|
||||
+ newEvent.button.y = m_mouseY;
|
||||
+ g_application.OnEvent(newEvent);
|
||||
+
|
||||
+ newEvent.type = XBMC_MOUSEBUTTONUP;
|
||||
+ newEvent.button.state = XBMC_RELEASED;
|
||||
+ g_application.OnEvent(newEvent);
|
||||
+ }
|
||||
+
|
||||
+ mouse_buttons = status;
|
||||
+
|
||||
+ relx = packet[1] + packet[3];
|
||||
+ rely = -(packet[2] + packet[4]);
|
||||
+
|
||||
+ m_mouseX += relx;
|
||||
+ m_mouseY += rely;
|
||||
+
|
||||
+ // limit the mouse to the screen width
|
||||
+ m_mouseX = std::min(g_graphicsContext.GetWidth(), m_mouseX);
|
||||
+ m_mouseX = std::max(0, m_mouseX);
|
||||
+
|
||||
+ // limit the mouse to the screen height
|
||||
+ m_mouseY = std::min(g_graphicsContext.GetHeight(), m_mouseY);
|
||||
+ m_mouseY = std::max(0, m_mouseY);
|
||||
+
|
||||
+ XBMC_Event newEvent;
|
||||
+ newEvent.type = XBMC_MOUSEMOTION;
|
||||
+ newEvent.motion.type = XBMC_MOUSEMOTION;
|
||||
+ newEvent.motion.xrel = relx;
|
||||
+ newEvent.motion.yrel = rely;
|
||||
+ newEvent.motion.x = m_mouseX;
|
||||
+ newEvent.motion.y = m_mouseY;
|
||||
+ newEvent.motion.state = 0;
|
||||
+ newEvent.motion.which = 0;
|
||||
+ g_application.OnEvent(newEvent);
|
||||
+}
|
||||
+
|
||||
+void CWinEventsFreeBSD::close_mouse()
|
||||
+{
|
||||
+ close(mouse_fd);
|
||||
+ mouse_fd = -1;
|
||||
+}
|
||||
+
|
||||
+CWinEventsFreeBSD::~CWinEventsFreeBSD()
|
||||
+{
|
||||
+ close_kbd();
|
||||
+ close_mouse();
|
||||
+}
|
||||
+
|
||||
+#endif
|
@ -0,0 +1,77 @@
|
||||
--- xbmc/windowing/WinEventsFreeBSD.h.orig 2016-03-02 09:32:08 UTC
|
||||
+++ xbmc/windowing/WinEventsFreeBSD.h
|
||||
@@ -0,0 +1,74 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2005-2013 Team XBMC
|
||||
+ * http://xbmc.org
|
||||
+ *
|
||||
+ * This Program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 2, or (at your option)
|
||||
+ * any later version.
|
||||
+ *
|
||||
+ * This Program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with XBMC; see the file COPYING. If not, see
|
||||
+ * <http://www.gnu.org/licenses/>.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#ifndef WINDOW_EVENTS_FREEBSD_H
|
||||
+#define WINDOW_EVENTS_FREEBSD_H
|
||||
+
|
||||
+#pragma once
|
||||
+#include "windowing/WinEvents.h"
|
||||
+
|
||||
+#include <unistd.h>
|
||||
+#include <termios.h>
|
||||
+#include <stdio.h>
|
||||
+#include <sys/select.h>
|
||||
+#include <sys/mouse.h>
|
||||
+#include <fcntl.h>
|
||||
+#include <unistd.h>
|
||||
+
|
||||
+#include <termios.h>
|
||||
+#include <sys/kbio.h>
|
||||
+
|
||||
+#include <signal.h>
|
||||
+
|
||||
+class CWinEventsFreeBSD : public IWinEvents
|
||||
+{
|
||||
+public:
|
||||
+
|
||||
+ bool MessagePump();
|
||||
+ size_t GetQueueSize();
|
||||
+ ~CWinEventsFreeBSD();
|
||||
+
|
||||
+private:
|
||||
+
|
||||
+ int m_keyMods = 0;
|
||||
+
|
||||
+ int mouse_fd = -1;
|
||||
+ uint8_t mouse_buttons = MOUSE_SYS_STDBUTTONS;
|
||||
+ int m_mouseX = 0;
|
||||
+ int m_mouseY = 0;
|
||||
+
|
||||
+ void init_kbd();
|
||||
+ int has_kbd_event(void);
|
||||
+ void process_kbd_events(void);
|
||||
+ static void close_kbd();
|
||||
+ static void restore_signal(int sig);
|
||||
+ XBMCKey TranslateKey(unsigned short);
|
||||
+ XBMCMod UpdateModifiers(XBMCKey, XBMC_EventType);
|
||||
+
|
||||
+ void init_mouse();
|
||||
+ int has_mouse_event(void);
|
||||
+ void send_mouse_event(int, int);
|
||||
+ void process_mouse_events(void);
|
||||
+ void close_mouse();
|
||||
+
|
||||
+ void Shutdown();
|
||||
+};
|
||||
+
|
||||
+#endif
|
@ -0,0 +1,21 @@
|
||||
--- xbmc/windowing/WindowingFactory.h.orig 2015-11-12 02:33:50 UTC
|
||||
+++ xbmc/windowing/WindowingFactory.h
|
||||
@@ -38,11 +38,14 @@
|
||||
#elif defined(TARGET_LINUX) && defined(HAS_GLES) && defined(HAS_EGL) && !defined(HAVE_X11)
|
||||
#include "egl/WinSystemEGL.h"
|
||||
|
||||
-#elif defined(TARGET_FREEBSD) && defined(HAS_GL) && defined(HAVE_X11)
|
||||
-#include "X11/WinSystemX11GL.h"
|
||||
+#elif defined(TARGET_FREEBSD) && defined(HAVE_X11) && defined(HAS_GL)
|
||||
+#include "X11/WinSystemX11GLContext.h"
|
||||
|
||||
-#elif defined(TARGET_FREEBSD) && defined(HAS_GLES) && defined(HAS_EGL)
|
||||
-#include "egl/WinSystemGLES.h"
|
||||
+#elif defined(TARGET_FREEBSD) && defined(HAVE_X11) && defined(HAS_GLES)
|
||||
+#include "X11/WinSystemX11GLESContext.h"
|
||||
+
|
||||
+#elif defined(TARGET_FREEBSD) && defined(TARGET_RASPBERRY_PI)
|
||||
+#include "egl/WinSystemEGL.h"
|
||||
|
||||
#elif defined(TARGET_DARWIN_OSX)
|
||||
#include "osx/WinSystemOSXGL.h"
|
@ -0,0 +1,15 @@
|
||||
--- xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp.orig 2015-11-12 03:09:15 UTC
|
||||
+++ xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
|
||||
@@ -17,6 +17,7 @@
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
+#if defined(__linux__)
|
||||
|
||||
#include "EGLNativeTypeAmlogic.h"
|
||||
#include "guilib/gui3d.h"
|
||||
@@ -305,3 +306,4 @@ void CEGLNativeTypeAmlogic::DisableFreeS
|
||||
close(fd0);
|
||||
}
|
||||
}
|
||||
+#endif
|
141
multimedia/kodi/files/patch-xbmc_windowing_es__scancodes.h
Normal file
141
multimedia/kodi/files/patch-xbmc_windowing_es__scancodes.h
Normal file
@ -0,0 +1,141 @@
|
||||
--- xbmc/windowing/es_scancodes.h.orig 2015-12-01 17:53:48 UTC
|
||||
+++ xbmc/windowing/es_scancodes.h
|
||||
@@ -0,0 +1,138 @@
|
||||
+/* Scancodes for the Linux framebuffer console
|
||||
+ - Taken with thanks from SVGAlib 1.4.0
|
||||
+
|
||||
+ Then taken from SDL nd modified to BSD scancodes
|
||||
+*/
|
||||
+
|
||||
+#define SCANCODE_ESCAPE 1
|
||||
+
|
||||
+#define SCANCODE_1 2
|
||||
+#define SCANCODE_2 3
|
||||
+#define SCANCODE_3 4
|
||||
+#define SCANCODE_4 5
|
||||
+#define SCANCODE_5 6
|
||||
+#define SCANCODE_6 7
|
||||
+#define SCANCODE_7 8
|
||||
+#define SCANCODE_8 9
|
||||
+#define SCANCODE_9 10
|
||||
+#define SCANCODE_0 11
|
||||
+
|
||||
+#define SCANCODE_MINUS 12
|
||||
+#define SCANCODE_EQUAL 13
|
||||
+
|
||||
+#define SCANCODE_BACKSPACE 14
|
||||
+#define SCANCODE_TAB 15
|
||||
+
|
||||
+#define SCANCODE_Q 16
|
||||
+#define SCANCODE_W 17
|
||||
+#define SCANCODE_E 18
|
||||
+#define SCANCODE_R 19
|
||||
+#define SCANCODE_T 20
|
||||
+#define SCANCODE_Y 21
|
||||
+#define SCANCODE_U 22
|
||||
+#define SCANCODE_I 23
|
||||
+#define SCANCODE_O 24
|
||||
+#define SCANCODE_P 25
|
||||
+#define SCANCODE_BRACKET_LEFT 26
|
||||
+#define SCANCODE_BRACKET_RIGHT 27
|
||||
+
|
||||
+#define SCANCODE_ENTER 28
|
||||
+
|
||||
+#define SCANCODE_LEFTCONTROL 29
|
||||
+
|
||||
+#define SCANCODE_A 30
|
||||
+#define SCANCODE_S 31
|
||||
+#define SCANCODE_D 32
|
||||
+#define SCANCODE_F 33
|
||||
+#define SCANCODE_G 34
|
||||
+#define SCANCODE_H 35
|
||||
+#define SCANCODE_J 36
|
||||
+#define SCANCODE_K 37
|
||||
+#define SCANCODE_L 38
|
||||
+#define SCANCODE_SEMICOLON 39
|
||||
+#define SCANCODE_APOSTROPHE 40
|
||||
+#define SCANCODE_GRAVE 41
|
||||
+
|
||||
+#define SCANCODE_LEFTSHIFT 42
|
||||
+#define SCANCODE_BACKSLASH 43
|
||||
+
|
||||
+#define SCANCODE_Z 44
|
||||
+#define SCANCODE_X 45
|
||||
+#define SCANCODE_C 46
|
||||
+#define SCANCODE_V 47
|
||||
+#define SCANCODE_B 48
|
||||
+#define SCANCODE_N 49
|
||||
+#define SCANCODE_M 50
|
||||
+#define SCANCODE_COMMA 51
|
||||
+#define SCANCODE_PERIOD 52
|
||||
+#define SCANCODE_SLASH 53
|
||||
+
|
||||
+#define SCANCODE_RIGHTSHIFT 54
|
||||
+#define SCANCODE_KEYPADMULTIPLY 55
|
||||
+
|
||||
+#define SCANCODE_LEFTALT 56
|
||||
+#define SCANCODE_SPACE 57
|
||||
+#define SCANCODE_CAPSLOCK 58
|
||||
+
|
||||
+#define SCANCODE_F1 59
|
||||
+#define SCANCODE_F2 60
|
||||
+#define SCANCODE_F3 61
|
||||
+#define SCANCODE_F4 62
|
||||
+#define SCANCODE_F5 63
|
||||
+#define SCANCODE_F6 64
|
||||
+#define SCANCODE_F7 65
|
||||
+#define SCANCODE_F8 66
|
||||
+#define SCANCODE_F9 67
|
||||
+#define SCANCODE_F10 68
|
||||
+
|
||||
+#define SCANCODE_NUMLOCK 69
|
||||
+#define SCANCODE_SCROLLLOCK 70
|
||||
+
|
||||
+#define SCANCODE_KEYPAD7 71
|
||||
+#define SCANCODE_CURSORUPLEFT 71
|
||||
+#define SCANCODE_KEYPAD8 72
|
||||
+#define SCANCODE_CURSORUP 72
|
||||
+#define SCANCODE_KEYPAD9 73
|
||||
+#define SCANCODE_CURSORUPRIGHT 73
|
||||
+#define SCANCODE_KEYPADMINUS 74
|
||||
+#define SCANCODE_KEYPAD4 75
|
||||
+#define SCANCODE_CURSORLEFT 75
|
||||
+#define SCANCODE_KEYPAD5 76
|
||||
+#define SCANCODE_KEYPAD6 77
|
||||
+#define SCANCODE_CURSORRIGHT 77
|
||||
+#define SCANCODE_KEYPADPLUS 78
|
||||
+#define SCANCODE_KEYPAD1 79
|
||||
+#define SCANCODE_CURSORDOWNLEFT 79
|
||||
+#define SCANCODE_KEYPAD2 80
|
||||
+#define SCANCODE_CURSORDOWN 80
|
||||
+#define SCANCODE_KEYPAD3 81
|
||||
+#define SCANCODE_CURSORDOWNRIGHT 81
|
||||
+#define SCANCODE_KEYPAD0 82
|
||||
+#define SCANCODE_KEYPADPERIOD 83
|
||||
+
|
||||
+#define SCANCODE_LESS 86
|
||||
+
|
||||
+#define SCANCODE_F11 87
|
||||
+#define SCANCODE_F12 88
|
||||
+
|
||||
+#define SCANCODE_KEYPADENTER 89
|
||||
+#define SCANCODE_RIGHTCONTROL 90
|
||||
+#define SCANCODE_KEYPADDIVIDE 91
|
||||
+#define SCANCODE_PRINTSCREEN 92
|
||||
+#define SCANCODE_RIGHTALT 93
|
||||
+#define SCANCODE_BREAK 104
|
||||
+
|
||||
+#define SCANCODE_HOME 94
|
||||
+#define SCANCODE_CURSORBLOCKUP 95
|
||||
+#define SCANCODE_PAGEUP 96
|
||||
+#define SCANCODE_CURSORBLOCKLEFT 97
|
||||
+#define SCANCODE_CURSORBLOCKRIGHT 98
|
||||
+#define SCANCODE_END 99
|
||||
+#define SCANCODE_CURSORBLOCKDOWN 100
|
||||
+#define SCANCODE_PAGEDOWN 101
|
||||
+#define SCANCODE_INSERT 102
|
||||
+#define SCANCODE_REMOVE 103
|
||||
+
|
||||
+#define SCANCODE_LEFTWIN 105
|
||||
+#define SCANCODE_RIGHTWIN 106
|
||||
+
|
26
multimedia/kodi/files/pkg-message.in
Normal file
26
multimedia/kodi/files/pkg-message.in
Normal file
@ -0,0 +1,26 @@
|
||||
gpu_mem should be set to 128M on a Pi1 and 256M on a Pi2,
|
||||
the file to modify is /boot/msdos/config.txt
|
||||
|
||||
To enable the automount feature, make sure your user is allowed to mount
|
||||
removable devices, dbus and hald are running and these lines are present in
|
||||
.kodi/userdata/advancedsettings.xml
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<advancedsettings>
|
||||
<handlemounting>true</handlemounting>
|
||||
</advancedsettings>
|
||||
|
||||
For a better user experience put the following settings in /etc/rc.conf:
|
||||
powerd_enable="YES"
|
||||
|
||||
moused_enable="YES"
|
||||
moused_type="auto"
|
||||
moused_port="/dev/ums0" # Set to your mouse port.
|
||||
moused_flags="-F 25" # Limit report rate to 25 reports/sec, you can bump it
|
||||
# to 40 on a Pi2
|
||||
|
||||
To run kodi:
|
||||
kodi ; sysctl dev.fb.0.resync=1
|
||||
|
||||
Keyboard is in QWERTY, the layout can be changed in kodi:
|
||||
System -> Settings -> Appearance -> International -> Keyboard layouts
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user