diff options
53 files changed, 3775 insertions, 0 deletions
diff --git a/multimedia/Makefile b/multimedia/Makefile index f033060cc6a2..73da4dfd91ea 100644 --- a/multimedia/Makefile +++ b/multimedia/Makefile @@ -367,6 +367,7 @@ SUBDIR += xanim SUBDIR += xawtv SUBDIR += xbmc + SUBDIR += xbmc-pvr SUBDIR += xfce4-media SUBDIR += xfce4-parole SUBDIR += xfce4-xmms-plugin diff --git a/multimedia/xbmc-pvr/Makefile b/multimedia/xbmc-pvr/Makefile new file mode 100644 index 000000000000..f10d507bfc42 --- /dev/null +++ b/multimedia/xbmc-pvr/Makefile @@ -0,0 +1,253 @@ +# New ports collection makefile for: xbmc +# Date created: 2010-09-16 +# Whom: Mickael Maillot <mickael.maillot@gmail.com> +# +# $FreeBSD$ +# + +PORTNAME= xbmc +PORTVERSION= 57 +CATEGORIES= multimedia +MASTER_SITES= LOCAL/nox +PKGNAMESUFFIX= -pvr-ppa-odk +DISTNAME= opdenkamp-${PORTNAME}${PKGNAMESUFFIX}${PORTVERSION}-0-g${GITHASH} + +MAINTAINER= nox@FreeBSD.org +COMMENT= XBMC is an award winning media center application - PVR branch + +LICENSE= GPLv2 + +BUILD_DEPENDS= enca:${PORTSDIR}/converters/enca \ + gawk:${PORTSDIR}/lang/gawk \ + gperf:${PORTSDIR}/devel/gperf \ + cmake:${PORTSDIR}/devel/cmake \ + zip:${PORTSDIR}/archivers/zip \ + unzip:${PORTSDIR}/archivers/unzip \ + nasm:${PORTSDIR}/devel/nasm \ + dvdread-config:${PORTSDIR}/multimedia/libdvdread + +LIB_DEPENDS= asound.2:${PORTSDIR}/audio/alsa-lib \ + boost_thread.4:${PORTSDIR}/devel/boost-libs \ + cdio.12:${PORTSDIR}/sysutils/libcdio \ + curl.6:${PORTSDIR}/ftp/curl \ + dbus-1.3:${PORTSDIR}/devel/dbus \ + enca.5:${PORTSDIR}/converters/enca \ + GLEW.1:${PORTSDIR}/graphics/glew \ + avcodec.1:${PORTSDIR}/multimedia/ffmpeg \ + fontconfig.1:${PORTSDIR}/x11-fonts/fontconfig \ + freetype.9:${PORTSDIR}/print/freetype2 \ + fribidi.3:${PORTSDIR}/converters/fribidi \ + lzo2.2:${PORTSDIR}/archivers/lzo2 \ + jasper.4:${PORTSDIR}/graphics/jasper \ + jpeg.11:${PORTSDIR}/graphics/jpeg \ + faad.2:${PORTSDIR}/audio/faad \ + mad:${PORTSDIR}/audio/libmad \ + modplug:${PORTSDIR}/audio/libmodplug \ + mpeg2:${PORTSDIR}/multimedia/libmpeg2 \ + ogg.7:${PORTSDIR}/audio/libogg \ + pcre.0:${PORTSDIR}/devel/pcre \ + png.6:${PORTSDIR}/graphics/png \ + samplerate.1:${PORTSDIR}/audio/libsamplerate \ + smbclient.0:${PORTSDIR}/net/samba-libsmbclient \ + sqlite3.8:${PORTSDIR}/databases/sqlite3 \ + vorbis.4:${PORTSDIR}/audio/libvorbis \ + ass.5:${PORTSDIR}/multimedia/libass \ + wavpack.2:${PORTSDIR}/audio/wavpack \ + yajl:${PORTSDIR}/devel/yajl \ + plist:${PORTSDIR}/devel/libplist + +RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:${PORTSDIR}/audio/alsa-plugins \ + ${PYTHON_SITELIBDIR}/_sqlite3.so:${PORTSDIR}/databases/py-sqlite3 \ + glxinfo:${PORTSDIR}/graphics/mesa-demos \ + ${PYTHON_SITELIBDIR}/PIL/__init__.py:${PORTSDIR}/graphics/py-imaging \ + xdpyinfo:${PORTSDIR}/x11/xdpyinfo + +GITHASH= d967ec3 +WRKSRC= ${WRKDIR}/opdenkamp-${PORTNAME}-${GITHASH} +FETCH_ARGS= -Fpr +USE_GMAKE= yes +USE_GNOME= pkgconfig +USE_AUTOTOOLS= autoconf libtool automake libltdl +GNU_CONFIGURE= yes +USE_XORG= xinerama xt xmu xrandr xtst +USE_GL= glu +USE_SDL= image mixer sdl +USE_MYSQL= yes +USE_PYTHON= 2.5-2.7 +MAKE_JOBS_SAFE= yes +NOPRECIOUSMAKEVARS= yes +INSTALLS_ICONS= yes +ONLY_FOR_ARCHS= i386 amd64 +USE_LDCONFIG= ${PREFIX}/lib/xbmc/system \ + ${PREFIX}/lib/xbmc/system/players/dvdplayer \ + ${PREFIX}/lib/xbmc/system/players/paplayer +CONFLICTS_INSTALL= xbmc-[0-9]* + +PLIST_SUB+= PYVER="${PYTHON_VERSION:S/python//:S/.//g}" + +OPTIONS= AVAHI "Enable Avahi support" on \ + LIBBLURAY "Enable libbluray support" on \ + FAAC "Enable FAAC support" off \ + HAL "Enable HAL support" on \ + LIRC "Enable lirc support" off \ + MMS "Enable mms:// & mmsh:// support" on \ + NONFREE "Enable non-free components (rar, ccx, ffmpeg)" off \ + PULSE "Enable PulseAudio support" off \ + RTMP "RTMP support via librtmp" off \ + VAAPI "Enable VAAPI support" off \ + VDPAU "Enable VDPAU support" off \ + WEBSERVER "Build Internal Webserver" off + +DESKTOP_ENTRIES="XBMC" \ + "${COMMENT}" \ + "${DATADIR}/media/icon.png" \ + "xbmc" \ + "AudioVideo;Video;" \ + true + +CPPFLAGS+= -I${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib + +CONFIGURE_ARGS+= --enable-external-libraries + +.include <bsd.port.pre.mk> + +.if defined(WITH_DEBUG) +CONFIGURE_ARGS+= --enable-debug +.else +CONFIGURE_ARGS+= --disable-debug +.endif + +.if ${ARCH} == i386 +PLIST_SUB+= ARCH="x86" +.else +PLIST_SUB+= ARCH="x86_64" +.endif + +.if !defined(WITHOUT_AVAHI) +CONFIGURE_ARGS+= --enable-avahi +LIB_DEPENDS+= avahi-common.3:${PORTSDIR}/net/avahi-app +.else +CONFIGURE_ARGS+= --disable-avahi +.endif + +.if !defined(WITHOUT_LIBBLURAY) +CONFIGURE_ARGS+= --enable-libbluray +LIB_DEPENDS+= bluray.0:${PORTSDIR}/multimedia/libbluray +.else +CONFIGURE_ARGS+= --disable-libbluray +.endif + +.if defined(WITH_FAAC) +CONFIGURE_ARGS+= --enable-faac +LIB_DEPENDS+= faac.0:${PORTSDIR}/audio/faac +.else +CONFIGURE_ARGS+= --disable-faac +.endif + +.if !defined(WITHOUT_HAL) +CONFIGURE_ARGS+= --enable-hal +LIB_DEPENDS+= hal.1:${PORTSDIR}/sysutils/hal +.else +CONFIGURE_ARGS+= --disable-hal +.endif + +.if defined(WITH_LIRC) +RUN_DEPENDS+= lircd:${PORTSDIR}/comms/lirc +.endif + +.if !defined(WITHOUT_MMS) +CONFIGURE_ARGS+= --enable-libmms +LIB_DEPENDS+= mms.0:${PORTSDIR}/net/libmms +.else +CONFIGURE_ARGS+= --disable-libmms +.endif + +.if defined(WITH_NONFREE) +CONFIGURE_ARGS+= --enable-non-free +NO_CDROM= Restricted binary distribution +NO_PACKAGE= ${NO_CDROM} +.else +CONFIGURE_ARGS+= --disable-non-free +.endif + +.if defined(WITH_PULSE) +CONFIGURE_ARGS+= --enable-pulse +LIB_DEPENDS+= pulse.0:${PORTSDIR}/audio/pulseaudio +.else +CONFIGURE_ARGS+= --disable-pulse +.endif + +.if defined(WITH_RTMP) +CONFIGURE_ARGS+= --enable-rtmp +LIB_DEPENDS+= rtmp.0:${PORTSDIR}/multimedia/rtmpdump +.else +CONFIGURE_ARGS+= --disable-rtmp +.endif + +.if defined(WITH_VAAPI) +LIB_DEPENDS+= va.1:${PORTSDIR}/multimedia/libva +CONFIGURE_ARGS+= --enable-vaapi +.else +CONFIGURE_ARGS+= --disable-vaapi +.endif + +.if defined(WITH_VDPAU) +LIB_DEPENDS+= vdpau.1:${PORTSDIR}/multimedia/libvdpau +CONFIGURE_ARGS+= --enable-vdpau +.else +CONFIGURE_ARGS+= --disable-vdpau +.endif + +.if defined(WITH_WEBSERVER) +CONFIGURE_ARGS+= --enable-webserver +LIB_DEPENDS+= microhttpd.23:${PORTSDIR}/www/libmicrohttpd +PLIST_SUB+= HTTPD="" +.else +CONFIGURE_ARGS+= --disable-webserver +PLIST_SUB+= HTTPD="@comment " +.endif + +post-patch: + @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ + ${WRKSRC}/configure.in \ + ${WRKSRC}/lib/asap/Makefile.in \ + ${WRKSRC}/lib/libdvd/libdvdnav/configure.ac \ + ${WRKSRC}/lib/libdvd/libdvdnav/configure2 \ + ${WRKSRC}/lib/libdvd/libdvdread/configure.ac \ + ${WRKSRC}/lib/libdvd/libdvdread/configure2 \ + ${WRKSRC}/lib/libsidplay2/libsidplay/unix/my_macros.m4 \ + ${WRKSRC}/lib/timidity/configure.in \ + ${WRKSRC}/xbmc/screensavers/rsxs-0.9/acinclude.m4 + ${RM} ${WRKSRC}/addons/library.xbmc.addon/libXBMC_addon.h.orig + ${RM} ${WRKSRC}/addons/library.xbmc.gui/libXBMC_gui.h.orig + ${RM} ${WRKSRC}/addons/library.xbmc.pvr/libXBMC_pvr.h.orig +# XXX somehow there are still references to linux libraries, if you find +# where they come from please tell us! +.if ${ARCH} == "amd64" + ${LN} -s libXBMC_addon-x86_64-freebsd.so ${WRKSRC}/addons/library.xbmc.addon/libXBMC_addon-x86_64-linux.so + ${LN} -s libXBMC_gui-x86_64-freebsd.so ${WRKSRC}/addons/library.xbmc.gui/libXBMC_gui-x86_64-linux.so + ${LN} -s libXBMC_pvr-x86_64-freebsd.so ${WRKSRC}/addons/library.xbmc.pvr/libXBMC_pvr-x86_64-linux.so +.else + ${LN} -s libXBMC_addon-i386-freebsd.so ${WRKSRC}/addons/library.xbmc.addon/libXBMC_addon-i486-linux.so + ${LN} -s libXBMC_gui-i386-freebsd.so ${WRKSRC}/addons/library.xbmc.gui/libXBMC_gui-i486-linux.so + ${LN} -s libXBMC_pvr-i386-freebsd.so ${WRKSRC}/addons/library.xbmc.pvr/libXBMC_pvr-i486-linux.so +.endif + +pre-configure: + cd ${WRKSRC} && ./bootstrap + +post-install: +# XXX somehow there are still references to linux libraries, if you find +# where they come from please tell us! +.if ${ARCH} == "amd64" + ${LN} -s libXBMC_addon-x86_64-freebsd.so ${PREFIX}/lib/xbmc/addons/library.xbmc.addon/libXBMC_addon-x86_64-linux.so + ${LN} -s libXBMC_gui-x86_64-freebsd.so ${PREFIX}/lib/xbmc/addons/library.xbmc.gui/libXBMC_gui-x86_64-linux.so + ${LN} -s libXBMC_pvr-x86_64-freebsd.so ${PREFIX}/lib/xbmc/addons/library.xbmc.pvr/libXBMC_pvr-x86_64-linux.so +.else + ${LN} -s libXBMC_addon-i386-freebsd.so ${PREFIX}/lib/xbmc/addons/library.xbmc.addon/libXBMC_addon-i486-linux.so + ${LN} -s libXBMC_gui-i386-freebsd.so ${PREFIX}/lib/xbmc/addons/library.xbmc.gui/libXBMC_gui-i486-linux.so + ${LN} -s libXBMC_pvr-i386-freebsd.so ${PREFIX}/lib/xbmc/addons/library.xbmc.pvr/libXBMC_pvr-i486-linux.so +.endif + +.include <bsd.port.post.mk> diff --git a/multimedia/xbmc-pvr/distinfo b/multimedia/xbmc-pvr/distinfo new file mode 100644 index 000000000000..736456970544 --- /dev/null +++ b/multimedia/xbmc-pvr/distinfo @@ -0,0 +1,2 @@ +SHA256 (opdenkamp-xbmc-pvr-ppa-odk57-0-gd967ec3.tar.gz) = 291937b30f203608e255482d304ad6af36939a3544d3144e4cdaec2c6a3638f2 +SIZE (opdenkamp-xbmc-pvr-ppa-odk57-0-gd967ec3.tar.gz) = 57863915 diff --git a/multimedia/xbmc-pvr/files/patch-Makefile.in b/multimedia/xbmc-pvr/files/patch-Makefile.in new file mode 100644 index 000000000000..7b91c2766829 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-Makefile.in @@ -0,0 +1,20 @@ +--- Makefile.in.orig ++++ Makefile.in +@@ -127,7 +127,6 @@ PAPCODECS_DIRS= \ + lib/timidity \ + lib/libsidplay2 \ + lib/stsound/StSoundLibrary \ +- lib/snesapu/SNES/SNESAPU \ + lib/vgmstream + + ifeq (@USE_ASAP_CODEC@,1) +@@ -463,9 +462,6 @@ ifeq (@USE_ASAP_CODEC@,1) + endif + endif + $(MAKE) -C lib/stsound/StSoundLibrary +-ifeq ($(or $(findstring powerpc,@ARCH@),$(findstring x86_64-linux,@ARCH@),$(findstring arm, @ARCH@)),) +- $(MAKE) -C lib/snesapu/SNES/SNESAPU +-endif + imagelib: dllloader + $(MAKE) -C lib/cximage-6.0 + diff --git a/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.addon-libXBMC_addon.h b/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.addon-libXBMC_addon.h new file mode 100644 index 000000000000..0bf0700d9473 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.addon-libXBMC_addon.h @@ -0,0 +1,34 @@ +--- addons/library.xbmc.addon/libXBMC_addon.h.orig ++++ addons/library.xbmc.addon/libXBMC_addon.h +@@ -40,15 +40,31 @@ + #define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-x86-osx.so" + #endif + #elif defined(__x86_64__) ++#ifdef __FreeBSD__ ++#define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-x86_64-freebsd.so" ++#else + #define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-x86_64-linux.so" ++#endif + #elif defined(_POWERPC) ++#ifdef __FreeBSD__ ++#define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-powerpc-freebsd.so" ++#else + #define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-powerpc-linux.so" ++#endif + #elif defined(_POWERPC64) ++#ifdef __FreeBSD__ ++#define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-powerpc64-freebsd.so" ++#else + #define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-powerpc64-linux.so" ++#endif + #elif defined(_ARMEL) + #define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-arm.so" + #else /* !__x86_64__ && !__powerpc__ */ ++#ifdef __FreeBSD__ ++#define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-i386-freebsd.so" ++#else + #define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-i486-linux.so" ++#endif + #endif /* __x86_64__ */ + #endif /* _LINUX */ + diff --git a/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.gui-libXBMC_gui.h b/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.gui-libXBMC_gui.h new file mode 100644 index 000000000000..713eaef89290 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.gui-libXBMC_gui.h @@ -0,0 +1,32 @@ +--- addons/library.xbmc.gui/libXBMC_gui.h.orig ++++ addons/library.xbmc.gui/libXBMC_gui.h +@@ -44,13 +44,29 @@ typedef void* GUIHANDLE; + #elif defined(_ARMEL) + #define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-arm.so" + #elif defined(__x86_64__) ++#ifdef __FreeBSD__ ++#define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-x86_64-freebsd.so" ++#else + #define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-x86_64-linux.so" ++#endif + #elif defined(_POWERPC) ++#ifdef __FreeBSD__ ++#define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-powerpc-freebsd.so" ++#else + #define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-powerpc-linux.so" ++#endif + #elif defined(_POWERPC64) ++#ifdef __FreeBSD__ ++#define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-powerpc64-freebsd.so" ++#else + #define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-powerpc64-linux.so" ++#endif + #else /* !__x86_64__ && !__powerpc__ && !_ARMEL */ ++#ifdef __FreeBSD__ ++#define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-i386-freebsd.so" ++#else + #define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-i486-linux.so" ++#endif + #endif /* __x86_64__ */ + #endif /* _LINUX */ + diff --git a/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.pvr-libXBMC_pvr.h b/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.pvr-libXBMC_pvr.h new file mode 100644 index 000000000000..9cde7f07926e --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.pvr-libXBMC_pvr.h @@ -0,0 +1,34 @@ +--- addons/library.xbmc.pvr/libXBMC_pvr.h.orig ++++ addons/library.xbmc.pvr/libXBMC_pvr.h +@@ -41,15 +41,31 @@ + #define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-x86-osx.so" + #endif + #elif defined(__x86_64__) ++#ifdef __FreeBSD__ ++#define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-x86_64-freebsd.so" ++#else + #define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-x86_64-linux.so" ++#endif + #elif defined(_POWERPC) ++#ifdef __FreeBSD__ ++#define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-powerpc-freebsd.so" ++#else + #define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-powerpc-linux.so" ++#endif + #elif defined(_POWERPC64) ++#ifdef __FreeBSD__ ++#define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-powerpc64-freebsd.so" ++#else + #define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-powerpc64-linux.so" ++#endif + #elif defined(_ARMEL) + #define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-arm.so" + #else /* !__x86_64__ && !__powerpc__ */ ++#ifdef __FreeBSD__ ++#define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-i386-freebsd.so" ++#else + #define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-i486-linux.so" ++#endif + #endif /* __x86_64__ */ + #endif /* _LINUX */ + diff --git a/multimedia/xbmc-pvr/files/patch-configure.in b/multimedia/xbmc-pvr/files/patch-configure.in new file mode 100644 index 000000000000..d6268eb37958 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-configure.in @@ -0,0 +1,116 @@ +--- configure.in.orig ++++ configure.in +@@ -20,7 +20,7 @@ AC_DEFUN([XB_FIND_SONAME], + [ + if [[ "$host_vendor" != "apple" ]]; then + AC_MSG_CHECKING([for lib$2 soname]) +- $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}') ++ $1_FILENAME=$($CC -nostdlib $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}') + if [[ ! -z $$1_FILENAME ]]; then + $1_SONAME=$(objdump -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}') + fi +@@ -377,6 +377,12 @@ AC_ARG_ENABLE([texturepacker], + [use_texturepacker=$enableval], + [use_texturepacker=auto]) + ++AC_ARG_ENABLE([libmms], ++ [AS_HELP_STRING([--enable-libmms], ++ [enable mms:// and mmsh:// support (default is auto)])], ++ [use_libmms=$enableval], ++ [use_libmms=auto]) ++ + AC_ARG_WITH([lirc-device], + [AS_HELP_STRING([--with-lirc-device=file], + [specify the default LIRC device (default is /dev/lircd)])], +@@ -445,6 +451,20 @@ case $host in + ARCH="x86_64-linux" + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") + ;; ++ i386-*-freebsd*) ++ ARCH="x86-freebsd" ++ MAKE="gmake" ++ CFLAGS="$CFLAGS -I/usr/local/include" ++ CXXFLAGS="$CXXFLAGS -I/usr/local/include" ++ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") ++ ;; ++ amd64-*-freebsd*) ++ ARCH="x86_64-freebsd" ++ MAKE="gmake" ++ CFLAGS="$CFLAGS -I/usr/local/include" ++ CXXFLAGS="$CXXFLAGS -I/usr/local/include" ++ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") ++ ;; + arm-apple-darwin*) + use_joystick=no + use_crystalhd=no +@@ -622,6 +642,8 @@ INCLUDES="$INCLUDES -I\$(abs_top_srcdir) + # Check inotify availability + AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),) + ++AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[""]),) ++ + # Checks for boost headers using CXX instead of CC + AC_LANG_PUSH([C++]) + AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library)) +@@ -774,6 +796,29 @@ AS_CASE([x$use_libbluray], + ] + ) + ++# check for libmms ++AS_CASE([x$use_libmms], ++ [xyes],[ ++ PKG_CHECK_MODULES([LIBMMS],[libmms],[use_libmms="yes"], AC_MSG_ERROR($missing_library)) ++ ], ++ [xauto],[ ++ PKG_CHECK_MODULES([LIBMMS],[libmms],[use_libmms="yes"], [use_libmms="no"]) ++ ]) ++ ++AS_CASE([x$use_libmms], ++ [xyes],[ ++ INCLUDES="$INCLUDES $LIBMMS_CFLAGS"; ++ LIBS="$LIBS $LIBMMS_LIBS"; ++ if test "$host_vendor" != "apple"; then ++ XB_FIND_SONAME([MMS], [mms], [use_libmms]) ++ fi; ++ AC_DEFINE([HAVE_LIBMMS], 1, [System has libmms library]) ++ AC_SUBST([HAVE_LIBMMS], 1) ++ ],[ ++ AC_SUBST([HAVE_LIBMMS], 0) ++ ] ++) ++ + # platform dependent libraries + if test "$host_vendor" = "apple" ; then + AC_CHECK_LIB([iconv], [main],, AC_MSG_ERROR($missing_library)) +@@ -783,8 +828,10 @@ if test "$host_vendor" = "apple" ; then + AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"]) + fi + else ++ if echo "$ARCH" | grep -vq freebsd; then + AC_CHECK_LIB([dl], [main],, AC_MSG_ERROR($missing_library)) + AC_CHECK_LIB([resolv], [main],, AC_MSG_ERROR($missing_library)) ++ fi + AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage + AC_CHECK_LIB([rt], [clock_gettime],, AC_MSG_ERROR($missing_library)) + +@@ -1634,6 +1681,12 @@ else + USE_TEXTUREPACKER=0 + fi + ++if test "$use_libmms" = "yes"; then ++ final_message="$final_message\n MMS Support:\tYes" ++else ++ final_message="$final_message\n MMS Support:\tNo" ++fi ++ + if test "$use_mid" = "yes"; then + final_message="$final_message\n MID Support:\tYes" + SDL_DEFINES="$SDL_DEFINES -DMID" +@@ -1837,7 +1890,6 @@ OUTPUT_FILES="Makefile \ + lib/nosefart/Makefile \ + lib/libsidplay2/Makefile \ + lib/vgmstream/Makefile \ +- lib/snesapu/SNES/SNESAPU/Makefile \ + lib/stsound/StSoundLibrary/Makefile \ + xbmc/cores/playercorefactory/Makefile \ + xbmc/music/karaoke/Makefile \ diff --git a/multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-dcr.c b/multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-dcr.c new file mode 100644 index 000000000000..89e251ea6f31 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-dcr.c @@ -0,0 +1,12 @@ +--- lib/cximage-6.0/raw/dcr.c.orig ++++ lib/cximage-6.0/raw/dcr.c +@@ -144,7 +144,9 @@ int DCR_CLASS main (int argc, char **arg + + //!!! set return point for error handling + if (setjmp (dcr.failure)) { ++#if !defined(__FreeBSD__) + if (fileno(dcr.obj_) > 2) (*dcr.ops_->close_)(dcr.obj_); ++#endif + if (fileno(ofp) > 2) fclose(ofp); + status = 1; + goto cleanup; diff --git a/multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-libdcr.h b/multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-libdcr.h new file mode 100644 index 000000000000..c5ce6a61cb7a --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-libdcr.h @@ -0,0 +1,11 @@ +--- lib/cximage-6.0/raw/libdcr.h.orig ++++ lib/cximage-6.0/raw/libdcr.h +@@ -41,7 +41,7 @@ + #include <setjmp.h> + #include <sys/types.h> + #endif +-#if defined(_LINUX) || defined(__APPLE__) ++#if defined(_LINUX) || defined(__APPLE__) || defined(__FreeBSD__) + #include <setjmp.h> + #include <sys/types.h> + #define _swab swab diff --git a/multimedia/xbmc-pvr/files/patch-lib-libPlatform-linux-os_posix.h b/multimedia/xbmc-pvr/files/patch-lib-libPlatform-linux-os_posix.h new file mode 100644 index 000000000000..0bc12b5ed5f6 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-lib-libPlatform-linux-os_posix.h @@ -0,0 +1,11 @@ +--- lib/libPlatform/linux/os_posix.h.orig ++++ lib/libPlatform/linux/os_posix.h +@@ -32,7 +32,7 @@ + #include <sys/timeb.h> + #include <sys/resource.h> + #include <sys/syscall.h> +-#ifndef __APPLE__ ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + #include <sys/prctl.h> + #endif + #include <pthread.h> diff --git a/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-httpClient.c b/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-httpClient.c new file mode 100644 index 000000000000..edaa6db0ebf0 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-httpClient.c @@ -0,0 +1,14 @@ +--- lib/libXDAAP/httpClient.c.orig ++++ lib/libXDAAP/httpClient.c +@@ -61,6 +61,11 @@ + #include <netinet/in.h> + #endif + ++#if defined(__FreeBSD__) ++#include <sys/types.h> ++#include <sys/socket.h> ++#endif /* __FreeBSD__ */ ++ + struct HTTP_ConnectionTAG + { + char *host; diff --git a/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-ioloop.c b/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-ioloop.c new file mode 100644 index 000000000000..c6f339b78f52 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-ioloop.c @@ -0,0 +1,13 @@ +--- lib/libXDAAP/ioloop.c.orig ++++ lib/libXDAAP/ioloop.c +@@ -122,9 +122,9 @@ + + void fd_event_reset(fd_event *event) + { +- event->signalled = 0; + char buf[1] = {0}; + int flags; ++ event->signalled = 0; + + /* set non-blocking on read pipe */ + flags = fcntl(event->pipe[0], F_GETFL, 0); diff --git a/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-threadpool.c b/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-threadpool.c new file mode 100644 index 000000000000..23f35c268e5d --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-threadpool.c @@ -0,0 +1,15 @@ +--- lib/libXDAAP/threadpool.c.orig ++++ lib/libXDAAP/threadpool.c +@@ -279,10 +279,10 @@ + void CP_ThreadPool_QueueWorkItem(CP_SThreadPool *pTPThis, CP_TPfnJob pfnCallback, + void *arg1, void *arg2) + { +- ts_mutex_lock(pTPThis->mtJobQueueMutex); +- + CP_STPJobQueue *pTPJQNewJob = malloc(sizeof(CP_STPJobQueue)); + ++ ts_mutex_lock(pTPThis->mtJobQueueMutex); ++ + pTPJQNewJob->fnJobCallback = pfnCallback; + pTPJQNewJob->arg1 = arg1; + pTPJQNewJob->arg2 = arg2; diff --git a/multimedia/xbmc-pvr/files/patch-lib-libsidplay2-eventh b/multimedia/xbmc-pvr/files/patch-lib-libsidplay2-eventh new file mode 100644 index 000000000000..5aa7a10ac035 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-lib-libsidplay2-eventh @@ -0,0 +1,88 @@ +--- lib/libsidplay2/libsidplay/src/event.cpp.orig ++++ lib/libsidplay2/libsidplay/src/event.cpp +@@ -50,7 +50,7 @@ + ***************************************************************************/ + + #include <string.h> +-#include "event.h" ++#include "../../include/sidplay/event.h" + + #define EVENT_TIMEWARP_COUNT 0x0FFFFF + +--- lib/libsidplay2/libsidplay/src/mos6510/mos6510.h.orig ++++ lib/libsidplay2/libsidplay/src/mos6510/mos6510.h +@@ -36,7 +36,7 @@ + #include "config.h" + #include "component.h" + #include "sidenv.h" +-#include "event.h" ++#include "../../include/sidplay/event.h" + + #undef MOS6510_VERSION + #undef MOS6510_DATE +--- lib/libsidplay2/libsidplay/include/sidplay/c64env.h.orig ++++ lib/libsidplay2/libsidplay/include/sidplay/c64env.h +@@ -19,7 +19,7 @@ + #define _c64env_h_ + + #include "sidtypes.h" +-#include "event.h" ++#include "../../include/sidplay/event.h" + + /* An implementation of of this class can be created to perform the C64 + specifics. A pointer to this child class can then be passed to +--- lib/libsidplay2/libsidplay/include/sidplay/sid2types.h.orig ++++ lib/libsidplay2/libsidplay/include/sidplay/sid2types.h +@@ -19,7 +19,7 @@ + #define _sid2types_h_ + + #include "sidtypes.h" +-#include "event.h" ++#include "../../include/sidplay/event.h" + + class sidbuilder; + struct SidTuneInfo; +--- lib/libsidplay2/libsidplay/src/mos6526/mos6526.h.orig ++++ lib/libsidplay2/libsidplay/src/mos6526/mos6526.h +@@ -85,7 +85,7 @@ + #define _mos6526_h_ + + #include "component.h" +-#include "event.h" ++#include "../../include/sidplay/event.h" + + class MOS6526: public component + { +--- lib/libsidplay2/libsidplay/src/mos656x/mos656x.h.orig ++++ lib/libsidplay2/libsidplay/src/mos656x/mos656x.h +@@ -19,7 +19,7 @@ + #define _mos656x_h_ + + #include "component.h" +-#include "event.h" ++#include "../../include/sidplay/event.h" + + typedef enum + { +--- lib/libsidplay2/libsidplay/src/sid6526/sid6526.h.orig ++++ lib/libsidplay2/libsidplay/src/sid6526/sid6526.h +@@ -38,7 +38,7 @@ + #define _sid6526_h_ + + #include "component.h" +-#include "event.h" ++#include "../../include/sidplay/event.h" + #include "c64env.h" + + class SID6526: public component +--- lib/libsidplay2/libsidplay/src/xsid/xsid.h.orig ++++ lib/libsidplay2/libsidplay/src/xsid/xsid.h +@@ -106,7 +106,7 @@ programmed with. + + #include "config.h" + #include "sidbuilder.h" +-#include "event.h" ++#include "../../include/sidplay/event.h" + + // XSID configuration settings + //#define XSID_DEBUG 1 diff --git a/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__ploader.c b/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__ploader.c new file mode 100644 index 000000000000..790e45dc0778 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__ploader.c @@ -0,0 +1,55 @@ +--- ./lib/cpluff/libcpluff/ploader.c.orig 2010-07-09 17:51:15.000000000 +0200 ++++ ./lib/cpluff/libcpluff/ploader.c 2010-12-01 12:17:34.288126970 +0100 +@@ -161,15 +161,15 @@ + cpi_warnf(plcontext->context, + N_("Suspicious plug-in descriptor content in %s, line %d, column %d (%s)."), + plcontext->file, +- XML_GetCurrentLineNumber(plcontext->parser), +- XML_GetCurrentColumnNumber(plcontext->parser) + 1, ++ (int)XML_GetCurrentLineNumber(plcontext->parser), ++ (int)XML_GetCurrentColumnNumber(plcontext->parser) + 1, + message); + } else { + cpi_errorf(plcontext->context, + N_("Invalid plug-in descriptor content in %s, line %d, column %d (%s)."), + plcontext->file, +- XML_GetCurrentLineNumber(plcontext->parser), +- XML_GetCurrentColumnNumber(plcontext->parser) + 1, ++ (int)XML_GetCurrentLineNumber(plcontext->parser), ++ (int)XML_GetCurrentColumnNumber(plcontext->parser) + 1, + message); + } + if (!warn) { +@@ -188,8 +188,8 @@ + cpi_errorf(plcontext->context, + N_("Insufficient system resources to parse plug-in descriptor content in %s, line %d, column %d."), + plcontext->file, +- XML_GetCurrentLineNumber(plcontext->parser), +- XML_GetCurrentColumnNumber(plcontext->parser) + 1); ++ (int)XML_GetCurrentLineNumber(plcontext->parser), ++ (int)XML_GetCurrentColumnNumber(plcontext->parser) + 1); + } + plcontext->resource_error_count++; + } +@@ -1084,8 +1084,8 @@ + cpi_errorf(context, + N_("XML parsing error in %s, line %d, column %d (%s)."), + file, +- XML_GetErrorLineNumber(parser), +- XML_GetErrorColumnNumber(parser) + 1, ++ (int)XML_GetErrorLineNumber(parser), ++ (int)XML_GetErrorColumnNumber(parser) + 1, + XML_ErrorString(XML_GetErrorCode(parser))); + cpi_unlock_context(context); + } +@@ -1270,8 +1270,8 @@ + cpi_errorf(context, + N_("XML parsing error in %s, line %d, column %d (%s)."), + file, +- XML_GetErrorLineNumber(parser), +- XML_GetErrorColumnNumber(parser) + 1, ++ (int)XML_GetErrorLineNumber(parser), ++ (int)XML_GetErrorColumnNumber(parser) + 1, + XML_ErrorString(XML_GetErrorCode(parser))); + cpi_unlock_context(context); + } diff --git a/multimedia/xbmc-pvr/files/patch-libdl-freebsd b/multimedia/xbmc-pvr/files/patch-libdl-freebsd new file mode 100644 index 000000000000..e983e0a8e96d --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-libdl-freebsd @@ -0,0 +1,43 @@ +--- xbmc/pvrclients/MediaPortal/Makefile.in.orig ++++ xbmc/pvrclients/MediaPortal/Makefile.in +@@ -5,7 +5,7 @@ + # how to reach the author. + # + +-LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a lib/tinyxml/tinyxml.a -ldl ++LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a lib/tinyxml/tinyxml.a + LIBDIR = @abs_top_srcdir@/addons/pvr.team-mediaportal.tvserver + LIB = @abs_top_srcdir@/addons/pvr.team-mediaportal.tvserver/XBMC_MPTV.pvr + +--- xbmc/pvrclients/mythtv/Makefile.in.orig ++++ xbmc/pvrclients/mythtv/Makefile.in +@@ -5,7 +5,6 @@ + # how to reach the author. + # + +-LIBS = -ldl + LIBDIR = @abs_top_srcdir@/addons/pvr.mythtv + LIB = @abs_top_srcdir@/addons/pvr.mythtv/XBMC_Mythtv.pvr + +--- xbmc/pvrclients/tvheadend/Makefile.in.orig ++++ xbmc/pvrclients/tvheadend/Makefile.in +@@ -6,7 +6,7 @@ + # + + LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a \ +- @abs_top_srcdir@/lib/libhts/libhts.a -ldl ++ @abs_top_srcdir@/lib/libhts/libhts.a + LIBDIR = @abs_top_srcdir@/addons/pvr.hts + LIB = @abs_top_srcdir@/addons/pvr.hts/XBMC_Tvheadend.pvr + +--- xbmc/pvrclients/vdr-vnsi/Makefile.in.orig ++++ xbmc/pvrclients/vdr-vnsi/Makefile.in +@@ -5,7 +5,7 @@ + # how to reach the author. + # + +-LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a -ldl -lpthread ++LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a -lpthread + LIBDIR = @abs_top_srcdir@/addons/pvr.vdr.vnsi + LIB = @abs_top_srcdir@/addons/pvr.vdr.vnsi/XBMC_VDR_vnsi.pvr + diff --git a/multimedia/xbmc-pvr/files/patch-threadid-freebsd b/multimedia/xbmc-pvr/files/patch-threadid-freebsd new file mode 100644 index 000000000000..1150f6a486a1 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-threadid-freebsd @@ -0,0 +1,177 @@ +--- xbmc/linux/XThreadUtils.cpp.orig ++++ xbmc/linux/XThreadUtils.cpp +@@ -38,7 +38,11 @@ HANDLE WINAPI CreateThread( + LPTHREAD_START_ROUTINE lpStartAddress, + LPVOID lpParameter, + DWORD dwCreationFlags, ++#ifdef __FreeBSD__ ++ LPLONG lpThreadId ++#else + LPDWORD lpThreadId ++#endif + ) { + + // a thread handle would actually contain an event +@@ -62,8 +66,12 @@ HANDLE WINAPI CreateThread( + pthread_attr_destroy(&attr); + + if (h && lpThreadId) ++#ifdef __FreeBSD__ ++ *lpThreadId = (LONG)h->m_hThread; ++#else + // WARNING: This can truncate thread IDs on x86_64. + *lpThreadId = (DWORD)h->m_hThread; ++#endif + return h; + } + +@@ -89,10 +97,18 @@ HANDLE _beginthreadex( + int ( *start_address )( void * ), + void *arglist, + unsigned initflag, ++#ifdef __FreeBSD__ ++ unsigned long *thrdaddr ++#else + unsigned *thrdaddr ++#endif + ) { + ++#ifdef __FreeBSD__ ++ HANDLE h = CreateThread(NULL, stack_size, start_address, arglist, initflag, (LPLONG)thrdaddr); ++#else + HANDLE h = CreateThread(NULL, stack_size, start_address, arglist, initflag, (LPDWORD)thrdaddr); ++#endif + return h; + + } +--- xbmc/linux/XThreadUtils.h.orig ++++ xbmc/linux/XThreadUtils.h +@@ -30,7 +30,11 @@ HANDLE WINAPI CreateThread( + LPTHREAD_START_ROUTINE lpStartAddress, + LPVOID lpParameter, + DWORD dwCreationFlags, ++#ifdef __FreeBSD__ ++ LPLONG lpThreadId ++#else + LPDWORD lpThreadId ++#endif + ); + + HANDLE _beginthreadex( +@@ -39,7 +43,11 @@ HANDLE _beginthreadex( + int ( *start_address )( void * ), + void *arglist, + unsigned initflag, ++#ifdef __FreeBSD__ ++ unsigned long *thrdaddr ++#else + unsigned *thrdaddr ++#endif + ); + + uintptr_t _beginthread( +--- lib/asap/win32/winamp/in_asap.c.orig ++++ lib/asap/win32/winamp/in_asap.c +@@ -305,7 +305,11 @@ static int play(char *fn) + { + int song; + int maxlatency; ++#ifdef __FreeBSD__ ++ LONG threadId; ++#else + DWORD threadId; ++#endif + strcpy(current_filename_with_song, fn); + song = extractSongNumber(fn, current_filename); + if (!loadModule(current_filename, module, &module_len)) +--- lib/timidity/interface/w32g.h.orig ++++ lib/timidity/interface/w32g.h +@@ -65,9 +65,14 @@ typedef LPTHREAD_START_ROUTINE BCC_BEGIN + #define crt_beginthread(start_address,stack_size,arglist) \ + (HANDLE)_beginthread((BCC_BEGINTHREAD_START_ADDRESS)start_address,(unsigned)stack_size,(void *)arglist) + #else ++#ifdef __FreeBSD__ ++#define crt_beginthread(start_address,stack_size,arglist) \ ++(HANDLE)CreateThread(NULL,(DWORD)stack_size,(LPTHREAD_START_ROUTINE)start_address,(LPVOID)arglist,0,NULL) ++#else + #define crt_beginthread(start_address,stack_size,arglist) \ + (HANDLE)CreateThread(NULL,(DWORD)stack_size,(LPTHREAD_START_ROUTINE)start_address,(LPVOID)arglist,0,&dwTmp) + #endif ++#endif + + // (HANDLE)crt_beginthreadex(LPSECURITY_ATTRIBUTES security, DWORD stack_size, LPTHREAD_START_ROUTINE start_address, LPVOID arglist, DWORD initflag, LPDWORD thrdaddr ); + #if defined(_MSC_VER) || defined(__WATCOMC__) +@@ -77,9 +82,14 @@ typedef LPTHREAD_START_ROUTINE BCC_BEGIN + #define crt_beginthreadex(security,stack_size,start_address,arglist,initflag,thrdaddr ) \ + (HANDLE)_beginthreadNT((BCC_BEGINTHREAD_START_ADDRESS)start_address,(unsigned)stack_size,(void *)arglist,(void *)security_attrib,(unsigned long)create_flags,(unsigned long *)thread_id) + #else ++#ifdef __FreeBSD__ ++#define crt_beginthreadex(security,stack_size,start_address,arglist,initflag,thrdaddr ) \ ++(HANDLE)CreateThread((LPSECURITY_ATTRIBUTES)security,(DWORD)stack_size,(LPTHREAD_START_ROUTINE)start_address,(LPVOID)arglist,(DWORD)initflag,(LPLONG)thrdaddr) ++#else + #define crt_beginthreadex(security,stack_size,start_address,arglist,initflag,thrdaddr ) \ + (HANDLE)CreateThread((LPSECURITY_ATTRIBUTES)security,(DWORD)stack_size,(LPTHREAD_START_ROUTINE)start_address,(LPVOID)arglist,(DWORD)initflag,(LPDWORD)thrdaddr) + #endif ++#endif + + #if defined(_MSC_VER) || defined(__WATCOMC__) + #define crt_endthread() _endthread() +--- lib/timidity/timidity/gogo_a.c.orig ++++ lib/timidity/timidity/gogo_a.c +@@ -109,9 +109,14 @@ typedef LPTHREAD_START_ROUTINE BCC_BEGIN + #define crt_beginthreadex(security,stack_size,start_address,arglist,initflag,thrdaddr ) \ + (HANDLE)_beginthreadNT((BCC_BEGINTHREAD_START_ADDRESS)start_address,(unsigned)stack_size,(void *)arglist,(void *)security_attrib,(unsigned long)create_flags,(unsigned long *)thread_id) + #else ++#ifdef __FreeBSD__ ++#define crt_beginthreadex(security,stack_size,start_address,arglist,initflag,thrdaddr ) \ ++(HANDLE)CreateThread((LPSECURITY_ATTRIBUTES)security,(DWORD)stack_size,(LPTHREAD_START_ROUTINE)start_address,(LPVOID)arglist,(DWORD)initflag,(LPLONG)thrdaddr) ++#else + #define crt_beginthreadex(security,stack_size,start_address,arglist,initflag,thrdaddr ) \ + (HANDLE)CreateThread((LPSECURITY_ATTRIBUTES)security,(DWORD)stack_size,(LPTHREAD_START_ROUTINE)start_address,(LPVOID)arglist,(DWORD)initflag,(LPDWORD)thrdaddr) + #endif ++#endif + + volatile extern char *w32g_output_dir; + volatile extern int w32g_auto_output_mode; +--- xbmc/visualizations/XBMCProjectM/libprojectM/fftsg.cpp.orig ++++ xbmc/visualizations/XBMCProjectM/libprojectM/fftsg.cpp +@@ -782,6 +782,16 @@ void makect(int nc, int *ip, double *c) + #include <stdio.h> + #include <stdlib.h> + #define cdft_thread_t HANDLE ++#ifdef __FreeBSD__ ++#define cdft_thread_create(thp,func,argp) { \ ++ LONG thid; \ ++ *(thp) = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) func, (LPVOID) argp, 0, &thid); \ ++ if (*(thp) == 0) { \ ++ fprintf(stderr, "cdft thread error\n"); \ ++ exit(1); \ ++ } \ ++} ++#else + #define cdft_thread_create(thp,func,argp) { \ + DWORD thid; \ + *(thp) = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) func, (LPVOID) argp, 0, &thid); \ +@@ -790,6 +800,7 @@ void makect(int nc, int *ip, double *c) + exit(1); \ + } \ + } ++#endif + #define cdft_thread_wait(th) { \ + WaitForSingleObject(th, INFINITE); \ + CloseHandle(th); \ +--- xbmc/threads/Thread.h.orig ++++ xbmc/threads/Thread.h +@@ -117,8 +117,12 @@ private: + ThreadIdentifier ThreadId() const; + bool m_bAutoDelete; + CEvent m_StopEvent; ++#ifdef __FreeBSD__ ++ unsigned long m_ThreadId; ++#else + unsigned m_ThreadId; // This value is unreliable on platforms using pthreads + // Use m_ThreadHandle->m_hThread instead ++#endif + IRunnable* m_pRunnable; + + unsigned __int64 m_iLastUsage; diff --git a/multimedia/xbmc-pvr/files/patch-tools-TexturePacker-XBTFWriter.cpp b/multimedia/xbmc-pvr/files/patch-tools-TexturePacker-XBTFWriter.cpp new file mode 100644 index 000000000000..160b5c780443 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-tools-TexturePacker-XBTFWriter.cpp @@ -0,0 +1,11 @@ +--- tools/TexturePacker/XBTFWriter.cpp.orig ++++ tools/TexturePacker/XBTFWriter.cpp +@@ -26,6 +26,8 @@ + #include "utils/EndianSwap.h" + #if !defined(__APPLE__) && !defined(__FreeBSD__) + #include <malloc.h> ++#else ++#include <stdlib.h> + #endif + #include <memory.h> + diff --git a/multimedia/xbmc-pvr/files/patch-tools__Linux__xbmc.sh.in b/multimedia/xbmc-pvr/files/patch-tools__Linux__xbmc.sh.in new file mode 100644 index 000000000000..2978dfbf69c8 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-tools__Linux__xbmc.sh.in @@ -0,0 +1,28 @@ +--- ./tools/Linux/xbmc.sh.in.orig 2010-10-28 21:09:04.000000000 +0200 ++++ ./tools/Linux/xbmc.sh.in 2010-12-01 12:17:34.286115032 +0100 +@@ -23,6 +23,8 @@ + exec_prefix="@exec_prefix@" + datarootdir="@datarootdir@" + LIBDIR="@libdir@" ++export XBMC_BIN_HOME="${LIBDIR}/xbmc" ++export XBMC_HOME="${datarootdir}/xbmc" + + # Check for some options used by this script + while [ "$#" -gt "0" ] +@@ -103,11 +105,11 @@ + echo "Crash report available at $FILE" + } + +-python @datadir@/xbmc/FEH.py $SAVED_ARGS +-RET=$? +-if [ $RET -ne 0 ]; then +- exit $RET +-fi ++# python @datadir@/xbmc/FEH.py $SAVED_ARGS ++# RET=$? ++# if [ $RET -ne 0 ]; then ++# exit $RET ++# fi + + if which gdb >/dev/null 2>&1; then + # Output warning in case ulimit is unsupported by shell diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.cpp new file mode 100644 index 000000000000..4cf7c797fd8f --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.cpp @@ -0,0 +1,33 @@ +--- xbmc/cores/VideoRenderers/LinuxRendererGL.cpp.orig ++++ xbmc/cores/VideoRenderers/LinuxRendererGL.cpp +@@ -159,6 +159,10 @@ CLinuxRendererGL::CLinuxRendererGL() + m_rgbPbo = 0; + + m_dllSwScale = new DllSwScale; ++ ++#ifdef __FreeBSD__ ++ m_tid = NULL; ++#endif + } + + CLinuxRendererGL::~CLinuxRendererGL() +@@ -247,6 +251,9 @@ bool CLinuxRendererGL::ValidateRenderTar + (this->*m_textureCreate)(i); + + m_bValidated = true; ++#ifdef __FreeBSD__ ++ m_tid = pthread_self(); ++#endif + return true; + } + return false; +@@ -716,6 +723,9 @@ unsigned int CLinuxRendererGL::PreInit() + CSingleLock lock(g_graphicsContext); + m_bConfigured = false; + m_bValidated = false; ++#ifdef __FreeBSD__ // XXX Will this leak? It's needed to avoid crashes... :( ++ if (pthread_self() == m_tid) ++#endif + UnInit(); + m_resolution = g_guiSettings.m_LookAndFeelResolution; + if ( m_resolution == RES_WINDOW ) diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.h b/multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.h new file mode 100644 index 000000000000..b797b3c2b7a7 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.h @@ -0,0 +1,13 @@ +--- xbmc/cores/VideoRenderers/LinuxRendererGL.h.orig ++++ xbmc/cores/VideoRenderers/LinuxRendererGL.h +@@ -228,6 +228,10 @@ protected: + int m_currentField; + int m_reloadShaders; + ++#ifdef __FreeBSD__ ++ pthread_t m_tid; ++#endif ++ + struct YUVPLANE + { + GLuint id; diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-filesystem-CacheStrategy.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-filesystem-CacheStrategy.cpp new file mode 100644 index 000000000000..b12763337061 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-filesystem-CacheStrategy.cpp @@ -0,0 +1,33 @@ +--- xbmc/filesystem/CacheStrategy.cpp.orig ++++ xbmc/filesystem/CacheStrategy.cpp +@@ -93,7 +93,8 @@ + + if(m_hCacheFileWrite == INVALID_HANDLE_VALUE) + { +- CLog::Log(LOGERROR, "%s - failed to create file %s with error code %d", __FUNCTION__, fileName.c_str(), GetLastError()); ++ CLog::Log(LOGERROR, "%s - failed to create file %s with error code %d", ++ __FUNCTION__, fileName.c_str(), (int)GetLastError()); + Close(); + return CACHE_RC_ERROR; + } +@@ -107,7 +108,8 @@ + + if(m_hCacheFileRead == INVALID_HANDLE_VALUE) + { +- CLog::Log(LOGERROR, "%s - failed to open file %s with error code %d", __FUNCTION__, fileName.c_str(), GetLastError()); ++ CLog::Log(LOGERROR, "%s - failed to open file %s with error code %d", ++ __FUNCTION__, fileName.c_str(), (int)GetLastError()); + Close(); + return CACHE_RC_ERROR; + } +@@ -140,8 +142,8 @@ + DWORD iWritten=0; + if (!WriteFile(m_hCacheFileWrite, pBuffer, iSize, &iWritten, NULL)) + { +- CLog::Log(LOGERROR, "%s - failed to write to file. err: %u", +- __FUNCTION__, GetLastError()); ++ CLog::Log(LOGERROR, "%s - failed to write to file. err: %d", ++ __FUNCTION__, (int)GetLastError()); + return CACHE_RC_ERROR; + } + diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-filesystem-SAPDirectory.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-filesystem-SAPDirectory.cpp new file mode 100644 index 000000000000..ef727b4f0e71 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-filesystem-SAPDirectory.cpp @@ -0,0 +1,12 @@ +--- xbmc/filesystem/SAPDirectory.cpp.orig ++++ xbmc/filesystem/SAPDirectory.cpp +@@ -31,6 +31,9 @@ + #ifdef __APPLE__ + #include "OSXGNUReplacements.h" // strnlen + #endif ++#ifdef __FreeBSD__ ++#include "FreeBSDGNUReplacements.h" // strnlen ++#endif + + #include <sys/socket.h> + #include <netinet/in.h> diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-music-tags-MusicInfoTagLoaderWMA.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-music-tags-MusicInfoTagLoaderWMA.cpp new file mode 100644 index 000000000000..ef424f687f6a --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-music-tags-MusicInfoTagLoaderWMA.cpp @@ -0,0 +1,11 @@ +--- xbmc/music/tags/MusicInfoTagLoaderWMA.cpp.orig ++++ xbmc/music/tags/MusicInfoTagLoaderWMA.cpp +@@ -538,7 +538,7 @@ + "Unable to create album art for %s " + "(extension=%s, size=%u)", + tag.GetURL().c_str(), strExtension.c_str(), +- picture.dwDataLen); ++ (unsigned int)picture.dwDataLen); + } + } + } diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-network-Network.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-network-Network.cpp new file mode 100644 index 000000000000..d00736f26e2b --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-network-Network.cpp @@ -0,0 +1,12 @@ +--- xbmc/network/Network.cpp.orig ++++ xbmc/network/Network.cpp +@@ -31,6 +31,9 @@ + + #include <netinet/in.h> + #include <arpa/inet.h> ++#ifdef __FreeBSD__ ++#include <sys/socket.h> ++#endif + + using namespace std; + diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-network-linux-NetworkLinux.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-network-linux-NetworkLinux.cpp new file mode 100644 index 000000000000..1f81e1c0af55 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-network-linux-NetworkLinux.cpp @@ -0,0 +1,195 @@ +--- xbmc/network/linux/NetworkLinux.cpp.orig ++++ xbmc/network/linux/NetworkLinux.cpp +@@ -23,14 +23,14 @@ + #include <sys/socket.h> + #include <netinet/in.h> + #include <arpa/inet.h> +-#ifndef __APPLE__ ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + #include <linux/if.h> + #include <linux/wireless.h> + #include <linux/sockios.h> + #endif + #include <errno.h> + #include <resolv.h> +-#if defined(__APPLE__) ++#if defined(__APPLE__) || defined(__FreeBSD__) + #include <sys/sockio.h> + #include <net/if.h> + #include <net/if_dl.h> +@@ -42,6 +42,9 @@ + #include "NetworkLinux.h" + #include "Util.h" + #include "utils/log.h" ++#if defined(__FreeBSD__) ++#include <net/route.h> ++#endif + + using namespace std; + +@@ -64,7 +67,7 @@ CStdString& CNetworkInterfaceLinux::GetN + + bool CNetworkInterfaceLinux::IsWireless() + { +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(__FreeBSD__) + return false; + #else + struct iwreq wrq; +@@ -144,7 +147,7 @@ CStdString CNetworkInterfaceLinux::GetCu + { + CStdString result = ""; + +-#ifndef __APPLE__ ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + char essid[IW_ESSID_MAX_SIZE + 1]; + memset(&essid, 0, sizeof(essid)); + +@@ -166,7 +169,84 @@ CStdString CNetworkInterfaceLinux::GetCu + { + CStdString result = ""; + +-#ifndef __APPLE__ ++#if defined(__FreeBSD__) ++ struct { ++ struct rt_msghdr m_rtm; ++ char m_space[512]; ++ } m_rtmsg; ++ int s, seq, l, pid, rtm_addrs, i; ++ struct sockaddr so_dst, so_mask; ++ struct rt_msghdr rtm; ++ char *cp = m_rtmsg.m_space; ++ struct sockaddr *gate = NULL, *sa; ++ struct rt_msghdr *rtm_aux; ++ ++#define ROUNDUP(a) \ ++ ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) ++ ++#define NEXTADDR(w, u) \ ++ if (rtm_addrs & (w)) {\ ++ l = ROUNDUP(u.sa_len); memmove(cp, &(u), l); cp += l;\ ++ } ++ ++#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) ++ ++ pid = getpid(); ++ seq = 0; ++ rtm_addrs = RTA_DST | RTA_NETMASK; ++ ++ bzero(&so_dst, sizeof(so_dst)); ++ bzero(&so_mask, sizeof(so_mask)); ++ bzero(&rtm, sizeof(struct rt_msghdr)); ++ ++ rtm.rtm_type = RTM_GET; ++ rtm.rtm_flags = RTF_UP | RTF_GATEWAY; ++ rtm.rtm_version = RTM_VERSION; ++ rtm.rtm_seq = ++seq; ++ rtm.rtm_addrs = rtm_addrs; ++ ++ so_dst.sa_family = AF_INET; ++ so_dst.sa_len = sizeof(struct sockaddr_in); ++ so_mask.sa_family = AF_INET; ++ so_mask.sa_len = sizeof(struct sockaddr_in); ++ ++ NEXTADDR(RTA_DST, so_dst); ++ NEXTADDR(RTA_NETMASK, so_mask); ++ ++ rtm.rtm_msglen = l = cp - (char *)&m_rtmsg; ++ ++ s = socket(PF_ROUTE, SOCK_RAW, 0); ++ ++ if (write(s, (char *)&m_rtmsg, l) < 0) ++ return result; ++ ++ do { ++ l = read(s, (char *)&m_rtmsg, sizeof(m_rtmsg)); ++ } while (l > 0 && (rtm.rtm_seq != seq || rtm.rtm_pid != pid)); ++ ++ close(s); ++ ++ rtm_aux = &rtm; ++ ++ cp = ((char *)(rtm_aux + 1)); ++ if (rtm_aux->rtm_addrs) { ++ for (i = 1; i; i <<= 1) ++ if (i & rtm_aux->rtm_addrs) { ++ sa = (struct sockaddr *)cp; ++ if (i == RTA_GATEWAY) ++ gate = sa; ++ ADVANCE(cp, sa); ++ } ++ } ++ else ++ return result; ++ ++ if (gate != NULL) ++ result = inet_ntoa(((struct sockaddr_in *)gate)->sin_addr); ++ ++ return result; ++ ++#elif !defined(__APPLE__) + FILE* fp = fopen("/proc/net/route", "r"); + if (!fp) + { +@@ -267,7 +347,7 @@ CNetworkInterface* CNetworkLinux::GetFir + CStdString CNetworkLinux::GetMacAddress(CStdString interfaceName) + { + CStdString result = "00:00:00:00:00:00"; +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(__FreeBSD__) + + #if ! defined(IFT_ETHER) + #define IFT_ETHER 0x6/* Ethernet CSMACD */ +@@ -333,7 +413,7 @@ void CNetworkLinux::queryInterfaceList() + CStdString macAddr = ""; + m_interfaces.clear(); + +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(__FreeBSD__) + + // Query the list of interfaces. + struct ifaddrs *list; +@@ -352,7 +432,6 @@ void CNetworkLinux::queryInterfaceList() + } + + freeifaddrs(list); +- + #else + FILE* fp = fopen("/proc/net/dev", "r"); + if (!fp) +@@ -394,7 +473,7 @@ void CNetworkLinux::queryInterfaceList() + std::vector<CStdString> CNetworkLinux::GetNameServers(void) + { + std::vector<CStdString> result; +-#ifndef __APPLE__ ++#if !defined(__APPLE__) + res_init(); + + for (int i = 0; i < _res.nscount; i ++) +@@ -430,7 +509,7 @@ std::vector<NetworkAccessPoint> CNetwork + if (!IsWireless()) + return result; + +-#ifndef __APPLE__ ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + // Query the wireless extentsions version number. It will help us when we + // parse the resulting events + struct iwreq iwr; +@@ -616,7 +695,7 @@ void CNetworkInterfaceLinux::GetSettings + encryptionMode = ENC_NONE; + assignment = NETWORK_DISABLED; + +-#ifndef __APPLE__ ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + FILE* fp = fopen("/etc/network/interfaces", "r"); + if (!fp) + { +@@ -692,7 +771,7 @@ void CNetworkInterfaceLinux::GetSettings + + void CNetworkInterfaceLinux::SetSettings(NetworkAssignment& assignment, CStdString& ipAddress, CStdString& networkMask, CStdString& defaultGateway, CStdString& essId, CStdString& key, EncMode& encryptionMode) + { +-#ifndef __APPLE__ ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + FILE* fr = fopen("/etc/network/interfaces", "r"); + if (!fr) + { diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-programs-ProgramDatabase.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-programs-ProgramDatabase.cpp new file mode 100644 index 000000000000..c8d453fbed6c --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-programs-ProgramDatabase.cpp @@ -0,0 +1,11 @@ +--- xbmc/programs/ProgramDatabase.cpp.orig ++++ xbmc/programs/ProgramDatabase.cpp +@@ -63,7 +63,7 @@ + catch (...) + { + CLog::Log(LOGERROR, "programdatabase::unable to create tables:%u", +- GetLastError()); ++ (unsigned int)GetLastError()); + return false; + } + diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-MediaPortal-CriticalSection.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-MediaPortal-CriticalSection.cpp new file mode 100644 index 000000000000..374bbbd7a02e --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-MediaPortal-CriticalSection.cpp @@ -0,0 +1,13 @@ +--- xbmc/pvrclients/MediaPortal/CriticalSection.cpp.orig ++++ xbmc/pvrclients/MediaPortal/CriticalSection.cpp +@@ -18,6 +18,10 @@ + + #include "CriticalSection.h" + ++#ifdef __FreeBSD__ ++#define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE ++#endif ++ + CCriticalSection::CCriticalSection(void) + { + } diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.cpp new file mode 100644 index 000000000000..d92a000eb95d --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.cpp @@ -0,0 +1,38 @@ +--- xbmc/pvrclients/tvheadend/thread.cpp.orig ++++ xbmc/pvrclients/tvheadend/thread.cpp +@@ -25,10 +25,14 @@ + + #include "thread.h" + #include <errno.h> +-#ifndef __APPLE__ ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + #include <malloc.h> + #endif + ++#if defined(__FreeBSD__) ++#include <signal.h> ++#endif ++ + #if !defined(__WINDOWS__) + #include <sys/signal.h> + #endif +@@ -164,7 +168,7 @@ cMutex::cMutex(void) + locked = 0; + pthread_mutexattr_t attr; + pthread_mutexattr_init(&attr); +-#ifndef __APPLE__ ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK_NP); + #else + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK); +@@ -342,8 +346,8 @@ void cThread::Cancel(int WaitSeconds) + + tThreadId cThread::ThreadId(void) + { +-#ifdef __APPLE__ +- return (int)pthread_self(); ++#if defined(__APPLE__) || defined(__FreeBSD__) ++ return (tThreadId)pthread_self(); + #else + #ifdef __WINDOWS__ + return GetCurrentThreadId(); diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.h b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.h new file mode 100644 index 000000000000..67aee89d1235 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.h @@ -0,0 +1,23 @@ +--- xbmc/pvrclients/tvheadend/thread.h.orig ++++ xbmc/pvrclients/tvheadend/thread.h +@@ -76,7 +76,11 @@ public: + void Unlock(void); + }; + ++#ifdef __FreeBSD__ ++typedef pthread_t tThreadId; ++#else + typedef pid_t tThreadId; ++#endif + + class cThread { + friend class cThreadLock; +@@ -127,7 +131,7 @@ public: + bool Active(void); + ///< Checks whether the thread is still alive. + static tThreadId ThreadId(void); +- static tThreadId IsMainThread(void) { return ThreadId() == mainThreadId; } ++ static int IsMainThread(void) { return ThreadId() == mainThreadId; } + static void SetMainThreadId(void); + }; + diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.cpp new file mode 100644 index 000000000000..4145da7e3b18 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.cpp @@ -0,0 +1,38 @@ +--- xbmc/pvrclients/vdr-vnsi/thread.cpp.orig ++++ xbmc/pvrclients/vdr-vnsi/thread.cpp +@@ -28,10 +28,14 @@ + #include "thread.h" + #include "client.h" + +-#ifndef __APPLE__ ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + #include <malloc.h> + #endif + ++#if defined(__FreeBSD__) ++#include <signal.h> ++#endif ++ + #if !defined(__WINDOWS__) + #include <sys/signal.h> + #endif +@@ -162,7 +166,7 @@ cMutex::cMutex(void) + locked = 0; + pthread_mutexattr_t attr; + pthread_mutexattr_init(&attr); +-#ifndef __APPLE__ ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK_NP); + #else + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK); +@@ -348,8 +352,8 @@ void cThread::Cancel(int WaitSeconds) + + tThreadId cThread::ThreadId(void) + { +-#ifdef __APPLE__ +- return (int)pthread_self(); ++#if defined(__APPLE__) || defined(__FreeBSD__) ++ return (tThreadId)pthread_self(); + #else + #ifdef __WINDOWS__ + return GetCurrentThreadId(); diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.h b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.h new file mode 100644 index 000000000000..a7dd2dc4af8a --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.h @@ -0,0 +1,23 @@ +--- xbmc/pvrclients/vdr-vnsi/thread.h.orig ++++ xbmc/pvrclients/vdr-vnsi/thread.h +@@ -76,7 +76,11 @@ public: + void Unlock(void); + }; + ++#ifdef __FreeBSD__ ++typedef pthread_t tThreadId; ++#else + typedef pid_t tThreadId; ++#endif + + class cThread { + friend class cThreadLock; +@@ -123,7 +127,7 @@ public: + bool Active(void); + ///< Checks whether the thread is still alive. + static tThreadId ThreadId(void); +- static tThreadId IsMainThread(void) { return ThreadId() == mainThreadId; } ++ static int IsMainThread(void) { return ThreadId() == mainThreadId; } + static void SetMainThreadId(void); + }; + diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-storage-IoSupport.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-storage-IoSupport.cpp new file mode 100644 index 000000000000..a4d2a5a950e9 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-storage-IoSupport.cpp @@ -0,0 +1,39 @@ +--- xbmc/storage/IoSupport.cpp.orig ++++ xbmc/storage/IoSupport.cpp +@@ -30,7 +30,7 @@ + #include "WIN32Util.h" + #include "utils/CharsetConverter.h" + #endif +-#if defined (_LINUX) && !defined(__APPLE__) ++#if defined (_LINUX) && !defined(__APPLE__) && !defined(__FreeBSD__) + #include <linux/limits.h> + #include <sys/types.h> + #include <sys/ioctl.h> +@@ -54,6 +54,9 @@ + #include <IOKit/storage/IOStorageDeviceCharacteristics.h> + #endif + #endif ++#ifdef __FreeBSD__ ++#include <sys/syslimits.h> ++#endif + #include "cdioSupport.h" + #include "filesystem/iso9660.h" + #include "MediaManager.h" +@@ -226,7 +229,7 @@ HRESULT CIoSupport::EjectTray( const boo + HRESULT CIoSupport::CloseTray() + { + #ifdef HAS_DVD_DRIVE +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(__FreeBSD__) + // FIXME... + #elif defined(_LINUX) + char* dvdDevice = CLibcdio::GetInstance()->GetDeviceFileName(); +@@ -402,6 +405,8 @@ INT CIoSupport::ReadSectorMode2(HANDLE h + return -1; + } + return MODE2_DATA_SIZE; ++#elif defined(__FreeBSD__) ++ // TODO + #elif defined(_LINUX) + if (hDevice->m_bCDROM) + { diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-utils-StdString.h b/multimedia/xbmc-pvr/files/patch-xbmc-utils-StdString.h new file mode 100644 index 000000000000..679b55a02fd2 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-utils-StdString.h @@ -0,0 +1,10 @@ +--- xbmc/utils/StdString.h.orig ++++ xbmc/utils/StdString.h +@@ -2,6 +2,7 @@ + #include <string> + #include <stdint.h> + #include <vector> ++#include <cstring> + + #if defined(_WIN32) && !defined(va_copy) + #define va_copy(dst, src) ((dst) = (src)) diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-windowing-X11-XRandR.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-windowing-X11-XRandR.cpp new file mode 100644 index 000000000000..f2da68fe0f59 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc-windowing-X11-XRandR.cpp @@ -0,0 +1,14 @@ +--- xbmc/windowing/X11/XRandR.cpp.orig ++++ xbmc/windowing/X11/XRandR.cpp +@@ -29,6 +29,11 @@ + #include "tinyXML/tinyxml.h" + #include "../xbmc/utils/log.h" + ++#if defined(__FreeBSD__) ++#include <sys/types.h> ++#include <sys/wait.h> ++#endif ++ + using namespace std; + + CXRandR::CXRandR(bool query) diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__ViewDatabase.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__ViewDatabase.cpp new file mode 100644 index 000000000000..1ba267d3e0e6 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__ViewDatabase.cpp @@ -0,0 +1,11 @@ +--- ./xbmc/ViewDatabase.cpp.orig 2010-07-03 13:07:36.000000000 +0200 ++++ ./xbmc/ViewDatabase.cpp 2010-12-01 12:17:34.233780060 +0100 +@@ -62,7 +62,7 @@ + catch (...) + { + CLog::Log(LOGERROR, "%s unable to create tables:%u", +- __FUNCTION__, GetLastError()); ++ __FUNCTION__, (unsigned int)GetLastError()); + return false; + } + diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__addons__Addon.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__addons__Addon.cpp new file mode 100644 index 000000000000..984f019fc92c --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__addons__Addon.cpp @@ -0,0 +1,12 @@ +--- xbmc/addons/Addon.cpp.orig ++++ xbmc/addons/Addon.cpp +@@ -28,6 +28,9 @@ + #ifdef __APPLE__ + #include "../osx/OSXGNUReplacements.h" + #endif ++#ifdef __FreeBSD__ ++#include "FreeBSDGNUReplacements.h" // strverscmp ++#endif + #include "utils/log.h" + #include "utils/URIUtils.h" + #include <vector> diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.cpp new file mode 100644 index 000000000000..8c3c2d432595 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.cpp @@ -0,0 +1,169 @@ +--- xbmc/cores/DllLoader/exports/emu_msvcrt.cpp.orig ++++ xbmc/cores/DllLoader/exports/emu_msvcrt.cpp +@@ -27,7 +27,7 @@ + #include <direct.h> + #include <process.h> + #else +-#ifndef __APPLE__ ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + #include <mntent.h> + #endif + #endif +@@ -36,6 +36,7 @@ + #include <sys/timeb.h> + #include "system.h" // for HAS_DVD_DRIVE + #ifdef HAS_DVD_DRIVE ++#if !defined(__FreeBSD__) + #ifdef _LINUX + #include <sys/ioctl.h> + #ifndef __APPLE__ +@@ -45,6 +46,7 @@ + #endif + #endif + #endif ++#endif + #include <fcntl.h> + #include <time.h> + #include <signal.h> +@@ -139,6 +141,8 @@ extern "C" void __stdcall init_emu_envir + dll_putenv("OS=darwin"); + #elif defined(_LINUX) + dll_putenv("OS=linux"); ++#elif defined(__FreeBSD__) ++ dll_putenv("OS=freebsd"); + #else + dll_putenv("OS=unknown"); + #endif +@@ -159,11 +163,11 @@ extern "C" void __stdcall init_emu_envir + dll_putenv(string("PATH=.;" + _P("special://xbmc") + ";" + _P("special://xbmc/system/python")).c_str()); + } + //dll_putenv("PYTHONCASEOK=1"); +- //dll_putenv("PYTHONDEBUG=1"); ++ dll_putenv("PYTHONDEBUG=1"); + //dll_putenv("PYTHONVERBOSE=2"); // "1" for normal verbose, "2" for more verbose ? + dll_putenv("PYTHONOPTIMIZE=1"); + //dll_putenv("PYTHONDUMPREFS=1"); +- //dll_putenv("THREADDEBUG=1"); ++ dll_putenv("THREADDEBUG=1"); + //dll_putenv("PYTHONMALLOCSTATS=1"); + //dll_putenv("PYTHONY2K=1"); + dll_putenv("TEMP=special://temp/temp"); // for python tempdir +@@ -1159,7 +1163,7 @@ extern "C" + FILE* dll_fopen(const char* filename, const char* mode) + { + FILE* file = NULL; +-#if defined(_LINUX) && !defined(__APPLE__) ++#if defined(_LINUX) && !defined(__APPLE__) && !defined(__FreeBSD__) + if (strcmp(filename, MOUNTED) == 0 + || strcmp(filename, MNTTAB) == 0) + { +@@ -1267,7 +1271,7 @@ extern "C" + { + // it might be something else than a file, or the file is not emulated + // let the operating system handle it +-#if defined(__APPLE__) ++#if defined(__APPLE__) || defined(__FreeBSD__) + return fseek(stream, offset, origin); + #else + return fseeko64(stream, offset, origin); +@@ -1332,7 +1336,7 @@ extern "C" + { + // it might be something else than a file, or the file is not emulated + // let the operating system handle it +-#if defined(__APPLE__) ++#if defined(__APPLE__) || defined(__FreeBSD__) + return ftello(stream); + #else + return ftello64(stream); +@@ -1378,7 +1382,7 @@ extern "C" + CLog::Log(LOGWARNING, "msvcrt.dll: dll_telli64 called, TODO: add 'int64 -> long' type checking"); //warning + #ifndef _LINUX + return (__int64)tell(fd); +-#elif defined(__APPLE__) ++#elif defined(__APPLE__) || defined(__FreeBSD__) + return lseek(fd, 0, SEEK_CUR); + #else + return lseek64(fd, 0, SEEK_CUR); +@@ -1555,7 +1559,7 @@ extern "C" + int ret; + + ret = dll_fgetpos64(stream, &tmpPos); +-#if !defined(_LINUX) || defined(__APPLE__) ++#if !defined(_LINUX) || defined(__APPLE__) || defined(__FreeBSD__) + *pos = (fpos_t)tmpPos; + #else + pos->__pos = (off_t)tmpPos.__pos; +@@ -1568,7 +1572,7 @@ extern "C" + CFile* pFile = g_emuFileWrapper.GetFileXbmcByStream(stream); + if (pFile != NULL) + { +-#if !defined(_LINUX) || defined(__APPLE__) ++#if !defined(_LINUX) || defined(__APPLE__) || defined(__FreeBSD__) + *pos = pFile->GetPosition(); + #else + pos->__pos = pFile->GetPosition(); +@@ -1590,7 +1594,7 @@ extern "C" + int fd = g_emuFileWrapper.GetDescriptorByStream(stream); + if (fd >= 0) + { +-#if !defined(_LINUX) || defined(__APPLE__) ++#if !defined(_LINUX) || defined(__APPLE__) || defined(__FreeBSD__) + if (dll_lseeki64(fd, *pos, SEEK_SET) >= 0) + #else + if (dll_lseeki64(fd, (__off64_t)pos->__pos, SEEK_SET) >= 0) +@@ -1607,7 +1611,7 @@ extern "C" + { + // it might be something else than a file, or the file is not emulated + // let the operating system handle it +-#if !defined(_LINUX) || defined(__APPLE__) ++#if !defined(_LINUX) || defined(__APPLE__) || defined(__FreeBSD__) + return fsetpos(stream, pos); + #else + return fsetpos64(stream, pos); +@@ -1623,7 +1627,7 @@ extern "C" + if (fd >= 0) + { + fpos64_t tmpPos; +-#if !defined(_LINUX) || defined(__APPLE__) ++#if !defined(_LINUX) || defined(__APPLE__) || defined(__FreeBSD__) + tmpPos= *pos; + #else + tmpPos.__pos = (off64_t)(pos->__pos); +@@ -2069,7 +2073,7 @@ extern "C" + return (char***)&t; + } + +-#ifdef _LINUX ++#if defined(_LINUX) + int * __cdecl dll_errno(void) + { + return &errno; +@@ -2083,7 +2087,9 @@ extern "C" + return -1; + + #ifdef HAS_DVD_DRIVE +-#ifndef __APPLE__ ++#if defined(__FreeBSD__) ++ if (0) ++#elif !defined(__APPLE__) + if(request == DVD_READ_STRUCT || request == DVD_AUTH) + #else + if(request == DKIOCDVDSENDKEY || request == DKIOCDVDREPORTKEY || request == DKIOCDVDREADSTRUCTURE) +@@ -2125,7 +2131,7 @@ extern "C" + CLog::Log(LOGERROR, "%s - getmntent is not implemented for our virtual filesystem", __FUNCTION__); + return NULL; + } +-#if defined(_LINUX) && !defined(__APPLE__) ++#if defined(_LINUX) && !defined(__APPLE__) && !defined(__FreeBSD__) + return getmntent(fp); + #else + CLog::Log(LOGWARNING, "%s - unimplemented function called", __FUNCTION__); +@@ -2150,7 +2156,7 @@ extern "C" + else + return 0; + } +-#ifdef _LINUX ++#if defined(_LINUX) + return 0; + #else + return _filbuf(fp); diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.h b/multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.h new file mode 100644 index 000000000000..49d9bbde9d11 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.h @@ -0,0 +1,18 @@ +--- ./xbmc/cores/DllLoader/exports/emu_msvcrt.h.orig 2010-05-28 21:31:42.000000000 +0200 ++++ ./xbmc/cores/DllLoader/exports/emu_msvcrt.h 2010-12-01 12:17:34.210600869 +0100 +@@ -35,9 +35,15 @@ + + typedef void ( *PFV)(void); + ++#if defined(__FreeBSD__) ++#define __IS_STDIN_STREAM(stream) (stream->_file == STDIN_FILENO) ++#define __IS_STDOUT_STREAM(stream) (stream->_file == STDOUT_FILENO) ++#define __IS_STDERR_STREAM(stream) (stream->_file == STDERR_FILENO) ++#else + #define __IS_STDIN_STREAM(stream) (stream == stdin || stream->_file == stdin->_file || stream->_file == 0) + #define __IS_STDOUT_STREAM(stream) (stream == stdout || stream->_file == stdout->_file || stream->_file == 1) + #define __IS_STDERR_STREAM(stream) (stream == stderr || stream->_file == stderr->_file || stream->_file == 2) ++#endif + #define IS_STDIN_STREAM(stream) (stream != NULL && __IS_STDIN_STREAM(stream)) + #define IS_STDOUT_STREAM(stream) (stream != NULL && __IS_STDOUT_STREAM(stream)) + #define IS_STDERR_STREAM(stream) (stream != NULL && __IS_STDERR_STREAM(stream)) diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDAudio.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDAudio.cpp new file mode 100644 index 000000000000..a033b5cd72bb --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDAudio.cpp @@ -0,0 +1,19 @@ +--- xbmc/cores/dvdplayer/DVDAudio.cpp.orig ++++ xbmc/cores/dvdplayer/DVDAudio.cpp +@@ -237,14 +237,14 @@ void CDVDAudio::Finish() + + if(silence > 0 && m_iBufferSize > 0) + { +- CLog::Log(LOGDEBUG, "CDVDAudio::Drain - adding %d bytes of silence, buffer size: %d, chunk size: %d", silence, m_iBufferSize, m_dwPacketSize); ++ CLog::Log(LOGDEBUG, "CDVDAudio::Drain - adding %d bytes of silence, buffer size: %d, chunk size: %d", (int)silence, (int)m_iBufferSize, (int)m_dwPacketSize); + m_pBuffer = (BYTE*)realloc(m_pBuffer, m_iBufferSize + silence); + memset(m_pBuffer+m_iBufferSize, 0, silence); + m_iBufferSize += silence; + } + + if(AddPacketsRenderer(m_pBuffer, m_iBufferSize, lock) != m_iBufferSize) +- CLog::Log(LOGERROR, "CDVDAudio::Drain - failed to play the final %d bytes", m_iBufferSize); ++ CLog::Log(LOGERROR, "CDVDAudio::Drain - failed to play the final %d bytes", (int)m_iBufferSize); + + m_iBufferSize = 0; + } diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDPlayer.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDPlayer.cpp new file mode 100644 index 000000000000..2d4e0d1ce03a --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDPlayer.cpp @@ -0,0 +1,11 @@ +--- ./xbmc/cores/dvdplayer/DVDPlayer.cpp.orig 2010-10-27 19:02:14.000000000 +0200 ++++ ./xbmc/cores/dvdplayer/DVDPlayer.cpp 2010-12-01 12:17:34.204563658 +0100 +@@ -2868,7 +2868,7 @@ + m_dvd.state = DVDSTATE_STILL; + CLog::Log(LOGDEBUG, + "DVDNAV_STILL_FRAME - waiting %i sec, with delay of %d sec", +- still_event->length, time / 1000); ++ still_event->length, (int)(time / 1000)); + } + return NAVRESULT_HOLD; + } diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__Makefile.in b/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__Makefile.in new file mode 100644 index 000000000000..f1db1efcc51a --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__Makefile.in @@ -0,0 +1,10 @@ +--- xbmc/cores/paplayer/Makefile.in.orig 2011-02-23 22:23:24.000000000 +0100 ++++ xbmc/cores/paplayer/Makefile.in 2011-02-23 22:24:24.000000000 +0100 +@@ -20,7 +20,6 @@ + endif + + ifneq ($(ARCH), arm) +- CXXFLAGS+=-DHAS_SPC_CODEC + SRCS+=SPCCodec.cpp + endif + diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__PAPlayer.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__PAPlayer.cpp new file mode 100644 index 000000000000..c223b20e2d4a --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__PAPlayer.cpp @@ -0,0 +1,12 @@ +--- xbmc/cores/paplayer/PAPlayer.cpp.orig ++++ xbmc/cores/paplayer/PAPlayer.cpp +@@ -341,7 +341,8 @@ + + if(silence > 0 && m_bufferPos[stream] > 0) + { +- CLog::Log(LOGDEBUG, "PAPlayer: Drain - adding %d bytes of silence, real pcmdata size: %d, chunk size: %d", silence, m_bufferPos[stream], m_pAudioDecoder[stream]->GetChunkLen()); ++ CLog::Log(LOGDEBUG, "PAPlayer: Drain - adding %d bytes of silence, real pcmdata size: %d, chunk size: %d", ++ (int)silence, m_bufferPos[stream], m_pAudioDecoder[stream]->GetChunkLen()); + memset(m_pcmBuffer[stream] + m_bufferPos[stream], 0, silence); + m_bufferPos[stream] += silence; + } diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__WAVcodec.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__WAVcodec.cpp new file mode 100644 index 000000000000..f74132730272 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__WAVcodec.cpp @@ -0,0 +1,11 @@ +--- ./xbmc/cores/paplayer/WAVcodec.cpp.orig 2010-06-03 06:23:58.000000000 +0200 ++++ ./xbmc/cores/paplayer/WAVcodec.cpp 2010-12-01 12:17:34.221698375 +0100 +@@ -137,7 +137,7 @@ + return false; + } + m_ChannelMask = Endian_SwapLE32(wfx.dwChannelMask); +- CLog::Log(LOGINFO, "WAVCodec::Init - WAVE_FORMAT_EXTENSIBLE detected, channel mask: %d", m_ChannelMask); ++ CLog::Log(LOGINFO, "WAVCodec::Init - WAVE_FORMAT_EXTENSIBLE detected, channel mask: %d", (int)m_ChannelMask); + + wfx.SubFormat.Data1 = Endian_SwapLE32(wfx.SubFormat.Data1); + wfx.SubFormat.Data2 = Endian_SwapLE16(wfx.SubFormat.Data2); diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.c b/multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.c new file mode 100644 index 000000000000..41313ca75aa5 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.c @@ -0,0 +1,255 @@ +--- /dev/null 2010-12-16 16:44:10.000000000 +0100 ++++ xbmc/linux/FreeBSDGNUReplacements.c 2010-12-16 16:45:22.613185593 +0100 +@@ -0,0 +1,252 @@ ++ ++#include "FreeBSDGNUReplacements.h" ++ ++#if __FreeBSD_version < 800067 ++ ++/*- ++ * Copyright (c) 2009 David Schultz <das@FreeBSD.org> ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++size_t ++strnlen(const char *s, size_t maxlen) ++{ ++ size_t len; ++ ++ for (len = 0; len < maxlen; len++, s++) { ++ if (!*s) ++ break; ++ } ++ return (len); ++} ++ ++/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. ++*/ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <limits.h> ++#include <errno.h> ++ ++/* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR ++ (and null-terminate it). *LINEPTR is a pointer returned from malloc (or ++ NULL), pointing to *N characters of space. It is realloc'd as ++ necessary. Returns the number of characters read (not including the ++ null terminator), or -1 on error or EOF. */ ++ ++ssize_t ++getdelim(char **lineptr, size_t *n, int terminator, FILE *stream) ++{ ++ char *line, *p; ++ size_t size, copy; ++ ++ if (stream == NULL || lineptr == NULL || n == NULL) ++ { ++ errno = EINVAL; ++ return -1; ++ } ++ ++ if (ferror (stream)) ++ return -1; ++ ++ /* Make sure we have a line buffer to start with. */ ++ if (*lineptr == NULL || *n < 2) /* !seen and no buf yet need 2 chars. */ ++ { ++#ifndef MAX_CANON ++#define MAX_CANON 256 ++#endif ++ line = (char *)realloc (*lineptr, MAX_CANON); ++ if (line == NULL) ++ return -1; ++ *lineptr = line; ++ *n = MAX_CANON; ++ } ++ ++ line = *lineptr; ++ size = *n; ++ ++ copy = size; ++ p = line; ++ ++ while (1) ++ { ++ size_t len; ++ ++ while (--copy > 0) ++ { ++ register int c = getc (stream); ++ if (c == EOF) ++ goto lose; ++ else if ((*p++ = c) == terminator) ++ goto win; ++ } ++ ++ /* Need to enlarge the line buffer. */ ++ len = p - line; ++ size *= 2; ++ line = (char *)realloc (line, size); ++ if (line == NULL) ++ goto lose; ++ *lineptr = line; ++ *n = size; ++ p = line + len; ++ copy = size - len; ++ } ++ ++ lose: ++ if (p == *lineptr) ++ return -1; ++ /* Return a partial line since we got an error in the middle. */ ++ win: ++ *p = '\0'; ++ return p - *lineptr; ++} ++ ++#endif ++ ++/* Compare strings while treating digits characters numerically. ++ Copyright (C) 1997, 2002, 2005 Free Software Foundation, Inc. ++ This file is part of the libiberty library. ++ Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997. ++ ++ Libiberty is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ Libiberty 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ 02110-1301 USA. */ ++ ++#include <ctype.h> ++ ++#define ISASCII(c) isascii(c) ++#define ISDIGIT(c) (ISASCII (c) && isdigit (c)) ++/* states: S_N: normal, S_I: comparing integral part, S_F: comparing ++ fractional parts, S_Z: idem but with leading Zeroes only */ ++#define S_N 0x0 ++#define S_I 0x4 ++#define S_F 0x8 ++#define S_Z 0xC ++ ++/* result_type: CMP: return diff; LEN: compare using len_diff/diff */ ++#define CMP 2 ++#define LEN 3 ++ ++ ++/* Compare S1 and S2 as strings holding indices/version numbers, ++ returning less than, equal to or greater than zero if S1 is less than, ++ equal to or greater than S2 (for more info, see the Glibc texinfo doc). */ ++ ++int ++strverscmp (const char *s1, const char *s2) ++{ ++ const unsigned char *p1 = (const unsigned char *) s1; ++ const unsigned char *p2 = (const unsigned char *) s2; ++ unsigned char c1, c2; ++ int state; ++ int diff; ++ ++ /* Symbol(s) 0 [1-9] others (padding) ++ Transition (10) 0 (01) d (00) x (11) - */ ++ static const unsigned int next_state[] = ++ { ++ /* state x d 0 - */ ++ /* S_N */ S_N, S_I, S_Z, S_N, ++ /* S_I */ S_N, S_I, S_I, S_I, ++ /* S_F */ S_N, S_F, S_F, S_F, ++ /* S_Z */ S_N, S_F, S_Z, S_Z ++ }; ++ ++ static const int result_type[] = ++ { ++ /* state x/x x/d x/0 x/- d/x d/d d/0 d/- ++ 0/x 0/d 0/0 0/- -/x -/d -/0 -/- */ ++ ++ /* S_N */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, ++ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, ++ /* S_I */ CMP, -1, -1, CMP, +1, LEN, LEN, CMP, ++ +1, LEN, LEN, CMP, CMP, CMP, CMP, CMP, ++ /* S_F */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, ++ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, ++ /* S_Z */ CMP, +1, +1, CMP, -1, CMP, CMP, CMP, ++ -1, CMP, CMP, CMP ++ }; ++ ++ if (p1 == p2) ++ return 0; ++ ++ c1 = *p1++; ++ c2 = *p2++; ++ /* Hint: '0' is a digit too. */ ++ state = S_N | ((c1 == '0') + (ISDIGIT (c1) != 0)); ++ ++ while ((diff = c1 - c2) == 0 && c1 != '\0') ++ { ++ state = next_state[state]; ++ c1 = *p1++; ++ c2 = *p2++; ++ state |= (c1 == '0') + (ISDIGIT (c1) != 0); ++ } ++ ++ state = result_type[state << 2 | (((c2 == '0') + (ISDIGIT (c2) != 0)))]; ++ ++ switch (state) ++ { ++ case CMP: ++ return diff; ++ ++ case LEN: ++ while (ISDIGIT (*p1++)) ++ if (!ISDIGIT (*p2++)) ++ return 1; ++ ++ return ISDIGIT (*p2) ? -1 : diff; ++ ++ default: ++ return state; ++ } ++} diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.h b/multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.h new file mode 100644 index 000000000000..1b65441afd4e --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.h @@ -0,0 +1,28 @@ +--- /dev/null 2010-12-16 17:00:01.000000000 +0100 ++++ xbmc/linux/FreeBSDGNUReplacements.h 2010-12-16 16:54:02.098300652 +0100 +@@ -0,0 +1,25 @@ ++#ifndef __FREEBSDGNUREPLACEMENTS_H__ ++#define __FREEBSDGNUREPLACEMENTS_H__ ++ ++#include <sys/param.h> ++#include <string.h> ++#include <stdio.h> ++ ++#ifdef __cplusplus ++extern "C" { ++#endif /* __cplusplus */ ++ ++#if __FreeBSD_version < 800067 ++ ++size_t strnlen(const char *s, size_t n); ++ssize_t getdelim(char **lineptr, size_t *n, int delimiter, FILE *stream); ++ ++#endif ++ ++int strverscmp(const char *s1, const char *s2); ++ ++#ifdef __cplusplus ++} ++#endif /* __cplusplus */ ++ ++#endif diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__linux__LinuxTimezone.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__linux__LinuxTimezone.cpp new file mode 100644 index 000000000000..717435bccce9 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__linux__LinuxTimezone.cpp @@ -0,0 +1,189 @@ +--- xbmc/linux/LinuxTimezone.cpp (revision 35637) ++++ xbmc/linux/LinuxTimezone.cpp (working copy) +@@ -28,6 +28,12 @@ + #include "OSXGNUReplacements.h" + #endif + ++#if defined(__FreeBSD__) ++#include "FreeBSDGNUReplacements.h" // getdelim ++#include <sys/types.h> ++#include <dirent.h> ++#endif ++ + #include "Util.h" + + using namespace std; +@@ -90,7 +96,11 @@ CLinuxTimezone::CLinuxTimezone() : m_IsD + } + + // Load countries ++#if defined(__FreeBSD__) ++ fp = fopen("/usr/share/misc/iso3166", "r"); ++#else + fp = fopen("/usr/share/zoneinfo/iso3166.tab", "r"); ++#endif + if (fp) + { + CStdString countryCode; +@@ -110,7 +120,14 @@ CLinuxTimezone::CLinuxTimezone() : m_IsD + // Search for the first non space from the 2nd character and on + int i = 2; + while (s[i] == ' ' || s[i] == '\t') i++; +- ++#if defined(__FreeBSD__) ++ // skip three ++ while (s[i] != ' ' && s[i] != '\t') i++; ++ while (s[i] == ' ' || s[i] == '\t') i++; ++ // skip number ++ while (s[i] != ' ' && s[i] != '\t') i++; ++ while (s[i] == ' ' || s[i] == '\t') i++; ++#endif + countryCode = s.Left(2); + countryName = s.Mid(i); + +@@ -156,15 +173,137 @@ void CLinuxTimezone::SetTimezone(CStdStr + + if (use_timezone) + { ++#if defined(__FreeBSD__) ++ setenv("TZ", timezoneName.c_str(), 1); ++ tzset(); ++#else + static char env_var[255]; + sprintf(env_var, "TZ=:%s", timezoneName.c_str()); + putenv(env_var); ++#endif + tzset(); + } + } + ++#if defined(__FreeBSD__) ++/* ++* Scans the specified directory and its subdirectories to find a ++* zoneinfo file which has the same content as /etc/localtime given in ++* 'buf'. Returns a zone ID if found, otherwise, NULL is returned. ++*/ ++static char * ++findZoneinfoFile(char *buf, size_t size, const char *dir) ++{ ++ DIR *dirp = NULL; ++ struct stat statbuf; ++ struct dirent entry; ++ struct dirent *dp; ++ char *pathname = NULL; ++ int fd = -1; ++ char *dbuf = NULL; ++ char *tz = NULL; ++ char *p; ++ ++ dirp = opendir(dir); ++ if (dirp == NULL) ++ return NULL; ++ ++ while (readdir_r(dirp, &entry, &dp) == 0 && dp != NULL) { ++ if (dp->d_name[0] == '.') ++ continue; ++ ++ if (strcmp(dp->d_name, "zone.tab") == 0) ++ continue; ++ ++ p = (char *)malloc(strlen(dir) + strlen(dp->d_name) + 2); ++ if (p == NULL) ++ break; ++ ++ pathname = strcat(strcat(strcpy(p, dir), "/"), dp->d_name); ++ if (pathname == NULL) ++ break; ++ ++ if (stat(pathname, &statbuf) == -1) ++ break; ++ ++ if (S_ISDIR(statbuf.st_mode)) { ++ tz = findZoneinfoFile(buf, size, pathname); ++ if (tz != NULL) ++ break; ++ } else if (S_ISREG(statbuf.st_mode) && (size_t)statbuf.st_size == size) { ++ dbuf = (char *)malloc(size); ++ if (dbuf == NULL) ++ break; ++ if ((fd = open(pathname, O_RDONLY)) == -1) { ++ fd = 0; ++ break; ++ } ++ if (read(fd, dbuf, size) != (ssize_t)size) ++ break; ++ if (memcmp(buf, dbuf, size) == 0) { ++ p = strstr(pathname, "zoneinfo/"); ++ if (p == NULL) ++ break; ++ p += strlen("zoneinfo/"); ++ tz = strdup(p); ++ break; ++ } ++ free(dbuf); ++ dbuf = NULL; ++ (void)close(fd); ++ fd = 0; ++ } ++ free(pathname); ++ pathname = NULL; ++ } ++ ++ if (dirp != NULL) ++ (void)closedir(dirp); ++ if (pathname != NULL) ++ free(pathname); ++ if (fd != 0) ++ (void)close(fd); ++ if (dbuf != NULL) ++ free(dbuf); ++ ++ return tz; ++} ++#endif ++ + CStdString CLinuxTimezone::GetOSConfiguredTimezone() + { ++#if defined(__FreeBSD__) ++ const char * timezonefile = "/etc/localtime"; ++ struct stat statbuf; ++ int fd; ++ char *buf; ++ char *tz; ++ size_t size; ++ ++ if (lstat(timezonefile, &statbuf) == -1) ++ return ""; ++ if (!S_ISREG(statbuf.st_mode)) ++ return ""; ++ ++ size = (size_t)statbuf.st_size; ++ buf = (char *)malloc(size); ++ ++ if ((fd = open(timezonefile, O_RDONLY)) == -1) { ++ free(buf); ++ return ""; ++ } ++ ++ if (read(fd, buf, size) != (ssize_t) size) { ++ (void)close(fd); ++ free(buf); ++ return ""; ++ } ++ (void)close(fd); ++ ++ tz = findZoneinfoFile(buf, size, "/usr/share/zoneinfo"); ++ free(buf); ++ return tz; ++#else + char timezoneName[255]; + + // try Slackware approach first +@@ -191,6 +330,7 @@ CStdString CLinuxTimezone::GetOSConfigur + } + + return timezoneName; ++#endif + } + + CLinuxTimezone g_timezone; diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__linux__Makefile.in b/multimedia/xbmc-pvr/files/patch-xbmc__linux__Makefile.in new file mode 100644 index 000000000000..8e17efc2af9b --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__linux__Makefile.in @@ -0,0 +1,15 @@ +Index: xbmc/linux/Makefile.in +=================================================================== +--- xbmc/linux/Makefile.in (revision 35575) ++++ xbmc/linux/Makefile.in (working copy) +@@ -9,6 +9,10 @@ + + SRCS=ConvUtils.cpp XEventUtils.cpp XFileUtils.cpp XHandle.cpp XSyncUtils.cpp XTimeUtils.cpp XMemUtils.cpp XThreadUtils.cpp NetworkLinux.cpp LinuxResourceCounter.cpp LinuxTimezone.cpp XRandR.cpp XCriticalSection.cpp XLCDproc.cpp HALManager.cpp HALPowerSyscall.cpp ConsoleDeviceKitPowerSyscall.cpp DBusUtil.cpp DBusMessage.cpp ZeroconfAvahi.cpp ZeroconfBrowserAvahi.cpp HALProvider.cpp PosixMountProvider.cpp DeviceKitDisksProvider.cpp UDisksProvider.cpp ConsoleUPowerSyscall.cpp + ++ifeq ($(findstring freebsd,$(ARCH)), freebsd) ++ SRCS+=FreeBSDGNUReplacements.cpp ++endif ++ + LIB=linux.a + + include ../../Makefile.include diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__linux__PlatformDefs.h b/multimedia/xbmc-pvr/files/patch-xbmc__linux__PlatformDefs.h new file mode 100644 index 000000000000..bd6970259cf1 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__linux__PlatformDefs.h @@ -0,0 +1,48 @@ +--- ./xbmc/linux/PlatformDefs.h.orig 2010-06-09 07:05:59.000000000 +0200 ++++ ./xbmc/linux/PlatformDefs.h 2010-12-01 12:17:34.264972083 +0100 +@@ -39,11 +39,15 @@ + #include <unistd.h> + #include <pthread.h> + #include <string.h> +-#ifdef __APPLE__ ++#if defined(__APPLE__) + #include <stdio.h> + #include <sys/sysctl.h> + #include <mach/mach.h> +-#else ++#elif defined(__FreeBSD__) ++#include <stdio.h> ++#include <sys/sysctl.h> ++#include <sys/types.h> ++#else /* !__APPLE__ && !__FreeBSD__ */ + #include <sys/sysinfo.h> + #endif + #include <sys/time.h> +@@ -166,7 +170,7 @@ + #define CALLBACK __stdcall + #define WINAPI __stdcall + #define WINAPIV __cdecl +-#ifndef __APPLE__ ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + #define APIENTRY WINAPI + #else + #define APIENTRY +@@ -344,14 +360,16 @@ typedef int (*LPTHREAD_START_ROUTINE)(vo + #define _O_WRONLY O_WRONLY + #define _off_t off_t + +-#if defined(__APPLE__) ++#if defined(__APPLE__) || defined(__FreeBSD__) ++#ifdef __APPLE__ + #include <sched.h> + #include <AvailabilityMacros.h> ++#endif + typedef int64_t off64_t; + typedef off_t __off_t; + typedef off64_t __off64_t; + typedef fpos_t fpos64_t; +-#if (MAC_OS_X_VERSION_MAX_ALLOWED < 1050) ++#if defined(__FreeBSD__) || (defined(__APPLE__) && (MAC_OS_X_VERSION_MAX_ALLOWED < 1050)) + #define __stat64 stat + #define stat64 stat + #define statfs64 statfs diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__screensavers__rsxs-0.9__lib__stdbool_.h b/multimedia/xbmc-pvr/files/patch-xbmc__screensavers__rsxs-0.9__lib__stdbool_.h new file mode 100644 index 000000000000..102e2de80f07 --- /dev/null +++ b/multimedia/xbmc-pvr/files/patch-xbmc__screensavers__rsxs-0.9__lib__stdbool_.h @@ -0,0 +1,12 @@ +--- ./xbmc/screensavers/rsxs-0.9/lib/stdbool_.h.orig 2007-10-08 19:37:14.000000000 +0200 ++++ ./xbmc/screensavers/rsxs-0.9/lib/stdbool_.h 2010-12-01 12:17:34.237808685 +0100 +@@ -101,7 +101,9 @@ + # else + /* With this compiler, trust the _Bool type if the compiler has it. */ + # if !@HAVE__BOOL@ ++#if !defined(__FreeBSD__) + typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool; ++#endif + # endif + # endif + #endif diff --git a/multimedia/xbmc-pvr/pkg-descr b/multimedia/xbmc-pvr/pkg-descr new file mode 100644 index 000000000000..2d1e487c796c --- /dev/null +++ b/multimedia/xbmc-pvr/pkg-descr @@ -0,0 +1,12 @@ +XBMC Media Center (formerly named "XBox Media Center") +is a free and open source cross-platform media-player +and entertainment hub. + +This is a tagged release of the XBMC pvr-ppa-odk branch that adds +PVR functionality using tvheadend (not ported to FreeBSD yet but +can be used over the network), MythTV (currently broken), or VDR +(via external plugins), and is located at: + +https://github.com/opdenkamp/xbmc + +WWW: http://xbmc.org/ diff --git a/multimedia/xbmc-pvr/pkg-plist b/multimedia/xbmc-pvr/pkg-plist new file mode 100644 index 000000000000..8e435a05c163 --- /dev/null +++ b/multimedia/xbmc-pvr/pkg-plist @@ -0,0 +1,1455 @@ +bin/xbmc +bin/xbmc-standalone +lib/xbmc/addons/library.xbmc.addon/libXBMC_addon-%%ARCH%%-freebsd.so +lib/xbmc/addons/library.xbmc.gui/libXBMC_gui-%%ARCH%%-freebsd.so +lib/xbmc/addons/library.xbmc.pvr/libXBMC_pvr-%%ARCH%%-freebsd.so +lib/xbmc/addons/library.xbmc.addon/libXBMC_addon-%%ARCH%%-linux.so +lib/xbmc/addons/library.xbmc.gui/libXBMC_gui-%%ARCH%%-linux.so +lib/xbmc/addons/library.xbmc.pvr/libXBMC_pvr-%%ARCH%%-linux.so +lib/xbmc/addons/pvr.hts/XBMC_Tvheadend.pvr +lib/xbmc/addons/pvr.mythtv/XBMC_Mythtv.pvr +lib/xbmc/addons/pvr.team-mediaportal.tvserver/XBMC_MPTV.pvr +lib/xbmc/addons/pvr.vdr.vnsi/XBMC_VDR_vnsi.pvr +lib/xbmc/addons/screensaver.rsxs.euphoria/Euphoria.xbs +lib/xbmc/addons/screensaver.rsxs.plasma/Plasma.xbs +lib/xbmc/addons/screensaver.rsxs.solarwinds/Solarwinds.xbs +lib/xbmc/addons/visualization.glspectrum/opengl_spectrum.vis +lib/xbmc/addons/visualization.projectm/projectM.vis +lib/xbmc/addons/visualization.waveform/Waveform.vis +lib/xbmc/system/ImageLib-%%ARCH%%-freebsd.so +lib/xbmc/system/hdhomerun-%%ARCH%%-freebsd.so +lib/xbmc/system/libcmyth-%%ARCH%%-freebsd.so +lib/xbmc/system/libcpluff-%%ARCH%%-freebsd.so +lib/xbmc/system/libexif-%%ARCH%%-freebsd.so +lib/xbmc/system/libid3tag-%%ARCH%%-freebsd.so +lib/xbmc/system/players/dvdplayer/libdvdcss-%%ARCH%%-freebsd.so +lib/xbmc/system/players/dvdplayer/libdvdnav-%%ARCH%%-freebsd.so +lib/xbmc/system/players/paplayer/adpcm-%%ARCH%%-freebsd.so +lib/xbmc/system/players/paplayer/libsidplay2-%%ARCH%%-freebsd.so +lib/xbmc/system/players/paplayer/nosefart-%%ARCH%%-freebsd.so +lib/xbmc/system/players/paplayer/stsoundlibrary-%%ARCH%%-freebsd.so +lib/xbmc/system/players/paplayer/timidity-%%ARCH%%-freebsd.so +lib/xbmc/system/players/paplayer/vgmstream-%%ARCH%%-freebsd.so +lib/xbmc/xbmc-xrandr +lib/xbmc/xbmc.bin +%%DOCSDIR%%/LICENSE.GPL +%%DOCSDIR%%/README.linux +%%DOCSDIR%%/copying.txt +%%DOCSDIR%%/keymapping.txt +share/icons/hicolor/256x256/apps/xbmc.png +share/icons/hicolor/48x48/apps/xbmc.png +%%DATADIR%%/FEH.py +%%DATADIR%%/addons/library.xbmc.addon/dlfcn-win32.cpp +%%DATADIR%%/addons/library.xbmc.addon/dlfcn-win32.h +%%DATADIR%%/addons/library.xbmc.addon/libXBMC_addon.h +%%DATADIR%%/addons/library.xbmc.gui/libXBMC_gui.h +%%DATADIR%%/addons/library.xbmc.pvr/libXBMC_pvr.h +%%DATADIR%%/addons/metadata.albums.allmusic.com/addon.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/allmusic.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/icon.png +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Bulgarian/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Chinese (Simple)/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/English/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/French/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/German/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Hungarian/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Korean/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Polish/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Portuguese/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Russian/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Spanish/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Swedish/strings.xml +%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/settings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/addon.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/allmusic.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/icon.png +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Bulgarian/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Chinese (Simple)/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/English/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/French/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/German/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Hungarian/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Korean/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Polish/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Portuguese/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Russian/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Spanish/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Swedish/strings.xml +%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/settings.xml +%%DATADIR%%/addons/metadata.common.allmusic.com/addon.xml +%%DATADIR%%/addons/metadata.common.allmusic.com/allmusic.xml +%%DATADIR%%/addons/metadata.common.hdtrailers.net/addon.xml +%%DATADIR%%/addons/metadata.common.hdtrailers.net/hdtrailers.xml +%%DATADIR%%/addons/metadata.common.htbackdrops.com/addon.xml +%%DATADIR%%/addons/metadata.common.htbackdrops.com/htbackdrops.xml +%%DATADIR%%/addons/metadata.common.imdb.com/addon.xml +%%DATADIR%%/addons/metadata.common.imdb.com/changelog.txt +%%DATADIR%%/addons/metadata.common.imdb.com/imdb.xml +%%DATADIR%%/addons/metadata.common.last.fm/addon.xml +%%DATADIR%%/addons/metadata.common.last.fm/lastfm.xml +%%DATADIR%%/addons/metadata.common.themoviedb.org/addon.xml +%%DATADIR%%/addons/metadata.common.themoviedb.org/tmdb.xml +%%DATADIR%%/addons/metadata.themoviedb.org/addon.xml +%%DATADIR%%/addons/metadata.themoviedb.org/changelog.txt +%%DATADIR%%/addons/metadata.themoviedb.org/icon.png +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Bulgarian/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Chinese (Simple)/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/English/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/French/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/German/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Hungarian/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Korean/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Polish/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Portuguese/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Romanian/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Russian/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Spanish/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Swedish/strings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/resources/settings.xml +%%DATADIR%%/addons/metadata.themoviedb.org/tmdb.xml +%%DATADIR%%/addons/metadata.tvdb.com/addon.xml +%%DATADIR%%/addons/metadata.tvdb.com/changelog.txt +%%DATADIR%%/addons/metadata.tvdb.com/icon.png +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Chinese (Simple)/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/English/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/French/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/German/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Hungarian/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Korean/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Polish/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Portuguese/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Russian/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Spanish/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Swedish/strings.xml +%%DATADIR%%/addons/metadata.tvdb.com/resources/settings.xml +%%DATADIR%%/addons/metadata.tvdb.com/tvdb.xml +%%DATADIR%%/addons/metadata.yahoomusic.com/addon.xml +%%DATADIR%%/addons/metadata.yahoomusic.com/icon.png +%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/English/strings.xml +%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Hungarian/strings.xml +%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Korean/strings.xml +%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Polish/strings.xml +%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Portuguese/strings.xml +%%DATADIR%%/addons/metadata.yahoomusic.com/resources/settings.xml +%%DATADIR%%/addons/metadata.yahoomusic.com/yahoomusic.xml +%%DATADIR%%/addons/pvr.hts/addon.xml +%%DATADIR%%/addons/pvr.hts/icon.png +%%DATADIR%%/addons/pvr.hts/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/pvr.hts/resources/language/English/strings.xml +%%DATADIR%%/addons/pvr.hts/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/pvr.hts/resources/language/German/strings.xml +%%DATADIR%%/addons/pvr.hts/resources/settings.xml +%%DATADIR%%/addons/pvr.mythtv/addon.xml +%%DATADIR%%/addons/pvr.mythtv/icon.png +%%DATADIR%%/addons/pvr.mythtv/resources/language/English/strings.xml +%%DATADIR%%/addons/pvr.mythtv/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/pvr.mythtv/resources/language/German/strings.xml +%%DATADIR%%/addons/pvr.mythtv/resources/settings.xml +%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/LICENSE.txt +%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/addon.xml +%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/changelog.txt +%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/icon.png +%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/genre_translation.xml +%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/English/strings.xml +%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/German/strings.xml +%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/settings.xml +%%DATADIR%%/addons/pvr.vdr.vnsi/addon.xml +%%DATADIR%%/addons/pvr.vdr.vnsi/icon.png +%%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/English/strings.xml +%%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/German/strings.xml +%%DATADIR%%/addons/pvr.vdr.vnsi/resources/settings.xml +%%DATADIR%%/addons/pvr.vdr.vnsi/resources/skins/Confluence/720p/ChannelScan.xml +%%DATADIR%%/addons/repository.xbmc.org/addon.xml +%%DATADIR%%/addons/repository.xbmc.org/icon.png +%%DATADIR%%/addons/screensaver.rsxs.euphoria/addon.xml +%%DATADIR%%/addons/screensaver.rsxs.euphoria/icon.png +%%DATADIR%%/addons/screensaver.rsxs.plasma/addon.xml +%%DATADIR%%/addons/screensaver.rsxs.plasma/icon.png +%%DATADIR%%/addons/screensaver.rsxs.solarwinds/addon.xml +%%DATADIR%%/addons/screensaver.rsxs.solarwinds/icon.png +%%DATADIR%%/addons/screensaver.xbmc.builtin.black/addon.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.black/icon.png +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/addon.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/icon.png +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Bulgarian/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Chinese (Simple)/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/English/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/French/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/German/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Hungarian/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Korean/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Polish/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Portuguese/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Russian/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Slovenian/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Spanish/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Swedish/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/settings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/addon.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/icon.png +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Chinese (Simple)/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/English/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/French/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/German/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Hungarian/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Korean/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Polish/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Russian/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Slovenian/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Spanish/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Swedish/strings.xml +%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/settings.xml +%%DATADIR%%/addons/script.module.pil/addon.xml +%%DATADIR%%/addons/script.module.pysqlite/addon.xml +%%DATADIR%%/addons/script.module.pysqlite/lib/pysqlite2/__init__.py +%%DATADIR%%/addons/skin.confluence/720p/AddonBrowser.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogAddonInfo.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogAddonSettings.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogAlbumInfo.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogBusy.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogButtonMenu.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogContentSettings.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogContextMenu.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogExtendedProgressBar.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogFavourites.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogFileStacking.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogGamepad.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogKaiToast.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogKaraokeSongSelector.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogKaraokeSongSelectorLarge.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogKeyboard.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogMediaSource.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogMusicScan.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogMuteBug.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogNetworkSetup.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogNumeric.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogOK.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogPVRChannelManager.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogPVRChannelsOSD.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogPVRGroupManager.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogPVRGuideInfo.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogPVRGuideOSD.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogPVRGuideSearch.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogPVRRecordingInfo.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogPVRTimerSettings.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogPeripheralManager.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogPeripheralSettings.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogPictureInfo.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogProgress.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogSeekBar.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogSelect.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogSlider.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogSongInfo.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogTextViewer.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogVideoInfo.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogVideoScan.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogVolumeBar.xml +%%DATADIR%%/addons/skin.confluence/720p/DialogYesNo.xml +%%DATADIR%%/addons/skin.confluence/720p/FileBrowser.xml +%%DATADIR%%/addons/skin.confluence/720p/FileManager.xml +%%DATADIR%%/addons/skin.confluence/720p/Font.xml +%%DATADIR%%/addons/skin.confluence/720p/Home.xml +%%DATADIR%%/addons/skin.confluence/720p/IncludesBackgroundBuilding.xml +%%DATADIR%%/addons/skin.confluence/720p/IncludesCodecFlagging.xml +%%DATADIR%%/addons/skin.confluence/720p/IncludesHomeMenuItems.xml +%%DATADIR%%/addons/skin.confluence/720p/IncludesHomeRecentlyAdded.xml +%%DATADIR%%/addons/skin.confluence/720p/LockSettings.xml +%%DATADIR%%/addons/skin.confluence/720p/LoginScreen.xml +%%DATADIR%%/addons/skin.confluence/720p/MusicKaraokeLyrics.xml +%%DATADIR%%/addons/skin.confluence/720p/MusicOSD.xml +%%DATADIR%%/addons/skin.confluence/720p/MusicOverlay.xml +%%DATADIR%%/addons/skin.confluence/720p/MusicVisualisation.xml +%%DATADIR%%/addons/skin.confluence/720p/MyMusicNav.xml +%%DATADIR%%/addons/skin.confluence/720p/MyMusicPlaylist.xml +%%DATADIR%%/addons/skin.confluence/720p/MyMusicPlaylistEditor.xml +%%DATADIR%%/addons/skin.confluence/720p/MyMusicSongs.xml +%%DATADIR%%/addons/skin.confluence/720p/MyPVR.xml +%%DATADIR%%/addons/skin.confluence/720p/MyPics.xml +%%DATADIR%%/addons/skin.confluence/720p/MyPrograms.xml +%%DATADIR%%/addons/skin.confluence/720p/MyVideoNav.xml +%%DATADIR%%/addons/skin.confluence/720p/MyVideoPlaylist.xml +%%DATADIR%%/addons/skin.confluence/720p/MyWeather.xml +%%DATADIR%%/addons/skin.confluence/720p/PlayerControls.xml +%%DATADIR%%/addons/skin.confluence/720p/Pointer.xml +%%DATADIR%%/addons/skin.confluence/720p/ProfileSettings.xml +%%DATADIR%%/addons/skin.confluence/720p/Settings.xml +%%DATADIR%%/addons/skin.confluence/720p/SettingsCategory.xml +%%DATADIR%%/addons/skin.confluence/720p/SettingsProfile.xml +%%DATADIR%%/addons/skin.confluence/720p/SettingsScreenCalibration.xml +%%DATADIR%%/addons/skin.confluence/720p/SettingsSystemInfo.xml +%%DATADIR%%/addons/skin.confluence/720p/SlideShow.xml +%%DATADIR%%/addons/skin.confluence/720p/SmartPlaylistEditor.xml +%%DATADIR%%/addons/skin.confluence/720p/SmartPlaylistRule.xml +%%DATADIR%%/addons/skin.confluence/720p/Startup.xml +%%DATADIR%%/addons/skin.confluence/720p/VideoFullScreen.xml +%%DATADIR%%/addons/skin.confluence/720p/VideoOSD.xml +%%DATADIR%%/addons/skin.confluence/720p/VideoOSDBookmarks.xml +%%DATADIR%%/addons/skin.confluence/720p/VideoOSDSettings.xml +%%DATADIR%%/addons/skin.confluence/720p/VideoOverlay.xml +%%DATADIR%%/addons/skin.confluence/720p/ViewsAddonBrowser.xml +%%DATADIR%%/addons/skin.confluence/720p/ViewsFileMode.xml +%%DATADIR%%/addons/skin.confluence/720p/ViewsLiveTV.xml +%%DATADIR%%/addons/skin.confluence/720p/ViewsMusicLibrary.xml +%%DATADIR%%/addons/skin.confluence/720p/ViewsPVR.xml +%%DATADIR%%/addons/skin.confluence/720p/ViewsPictures.xml +%%DATADIR%%/addons/skin.confluence/720p/ViewsVideoLibrary.xml +%%DATADIR%%/addons/skin.confluence/720p/VisualisationPresetList.xml +%%DATADIR%%/addons/skin.confluence/720p/custom_SkinSetting_1111.xml +%%DATADIR%%/addons/skin.confluence/720p/defaults.xml +%%DATADIR%%/addons/skin.confluence/720p/includes.xml +%%DATADIR%%/addons/skin.confluence/720p/script-RSS_Editor-rssEditor.xml +%%DATADIR%%/addons/skin.confluence/720p/script-RSS_Editor-setEditor.xml +%%DATADIR%%/addons/skin.confluence/720p/script-XBMC_Lyrics-main.xml +%%DATADIR%%/addons/skin.confluence/720p/weather+/10DayForecast.xml +%%DATADIR%%/addons/skin.confluence/720p/weather+/36HourForecast.xml +%%DATADIR%%/addons/skin.confluence/720p/weather+/HourlyForecast.xml +%%DATADIR%%/addons/skin.confluence/720p/weather+/MapsVideo.xml +%%DATADIR%%/addons/skin.confluence/720p/weather+/WeekendForecast.xml +%%DATADIR%%/addons/skin.confluence/addon.xml +%%DATADIR%%/addons/skin.confluence/backgrounds/addons.jpg +%%DATADIR%%/addons/skin.confluence/backgrounds/appearance.jpg +%%DATADIR%%/addons/skin.confluence/backgrounds/media-overlay.png +%%DATADIR%%/addons/skin.confluence/backgrounds/music.jpg +%%DATADIR%%/addons/skin.confluence/backgrounds/network.jpg +%%DATADIR%%/addons/skin.confluence/backgrounds/pictures.jpg +%%DATADIR%%/addons/skin.confluence/backgrounds/playdisc.jpg +%%DATADIR%%/addons/skin.confluence/backgrounds/programs.jpg +%%DATADIR%%/addons/skin.confluence/backgrounds/settings.jpg +%%DATADIR%%/addons/skin.confluence/backgrounds/skinsetting.jpg +%%DATADIR%%/addons/skin.confluence/backgrounds/system.jpg +%%DATADIR%%/addons/skin.confluence/backgrounds/tv.jpg +%%DATADIR%%/addons/skin.confluence/backgrounds/videos.jpg +%%DATADIR%%/addons/skin.confluence/backgrounds/weather.jpg +%%DATADIR%%/addons/skin.confluence/build.bat +%%DATADIR%%/addons/skin.confluence/changelog.txt +%%DATADIR%%/addons/skin.confluence/colors/defaults.xml +%%DATADIR%%/addons/skin.confluence/fonts/DefaultCaps.ttf +%%DATADIR%%/addons/skin.confluence/fonts/DejaVuSans-Bold-Caps.ttf +%%DATADIR%%/addons/skin.confluence/fonts/DejaVuSans-Bold.ttf +%%DATADIR%%/addons/skin.confluence/fonts/DejaVuSans.ttf +%%DATADIR%%/addons/skin.confluence/icon.png +%%DATADIR%%/addons/skin.confluence/language/Afrikaans/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Bulgarian/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Catalan/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Chinese (Simple)/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Chinese (Traditional)/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Czech/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Danish/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Dutch/strings.xml +%%DATADIR%%/addons/skin.confluence/language/English/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Finnish/strings.xml +%%DATADIR%%/addons/skin.confluence/language/French/strings.xml +%%DATADIR%%/addons/skin.confluence/language/German/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Greek/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Hungarian/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Icelandic/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Italian/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Japanese/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Korean/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Norwegian/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Polish/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Portuguese (Brazil)/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Portuguese/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Romanian/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Russian/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Serbian (Cyrillic)/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Serbian/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Slovak/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Slovenian/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Spanish/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Swedish/strings.xml +%%DATADIR%%/addons/skin.confluence/language/Turkish/strings.xml +%%DATADIR%%/addons/skin.confluence/media/ArrowDown.png +%%DATADIR%%/addons/skin.confluence/media/ArrowUp.png +%%DATADIR%%/addons/skin.confluence/media/CalibrateBottomRight.png +%%DATADIR%%/addons/skin.confluence/media/CalibratePixelRatio.png +%%DATADIR%%/addons/skin.confluence/media/CalibrateSubtitles.png +%%DATADIR%%/addons/skin.confluence/media/CalibrateTopLeft.png +%%DATADIR%%/addons/skin.confluence/media/CenterRating/rating0.png +%%DATADIR%%/addons/skin.confluence/media/CenterRating/rating1.png +%%DATADIR%%/addons/skin.confluence/media/CenterRating/rating2.png +%%DATADIR%%/addons/skin.confluence/media/CenterRating/rating3.png +%%DATADIR%%/addons/skin.confluence/media/CenterRating/rating4.png +%%DATADIR%%/addons/skin.confluence/media/CenterRating/rating5.png +%%DATADIR%%/addons/skin.confluence/media/Confluence_Logo.png +%%DATADIR%%/addons/skin.confluence/media/ContentPanel.png +%%DATADIR%%/addons/skin.confluence/media/ContentPanelMirror.png +%%DATADIR%%/addons/skin.confluence/media/DefaultActor.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddSource.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddon.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonAlbumInfo.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonArtistInfo.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonLyrics.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonMovieInfo.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonMusic.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonMusicVideoInfo.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonNone.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonPicture.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonProgram.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonRepository.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonScreensaver.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonService.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonSkin.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonSubtitles.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonTvInfo.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonVideo.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonVisualization.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonWeather.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAddonWebSkin.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAlbumCover.png +%%DATADIR%%/addons/skin.confluence/media/DefaultArtist.png +%%DATADIR%%/addons/skin.confluence/media/DefaultAudio.png +%%DATADIR%%/addons/skin.confluence/media/DefaultCDDA.png +%%DATADIR%%/addons/skin.confluence/media/DefaultDVDEmpty.png +%%DATADIR%%/addons/skin.confluence/media/DefaultDVDRom.png +%%DATADIR%%/addons/skin.confluence/media/DefaultFile.png +%%DATADIR%%/addons/skin.confluence/media/DefaultFolder.png +%%DATADIR%%/addons/skin.confluence/media/DefaultFolderBack.png +%%DATADIR%%/addons/skin.confluence/media/DefaultHardDisk.png +%%DATADIR%%/addons/skin.confluence/media/DefaultIconError.png +%%DATADIR%%/addons/skin.confluence/media/DefaultIconInfo.png +%%DATADIR%%/addons/skin.confluence/media/DefaultIconWarning.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMovies.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMusicAlbums.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMusicArtists.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMusicCompilations.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMusicGenres.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMusicPlaylists.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMusicPlugins.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMusicRecentlyAdded.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMusicRecentlyPlayed.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMusicSongs.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMusicTop100.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMusicVideos.png +%%DATADIR%%/addons/skin.confluence/media/DefaultMusicYears.png +%%DATADIR%%/addons/skin.confluence/media/DefaultNetwork.png +%%DATADIR%%/addons/skin.confluence/media/DefaultPicture.png +%%DATADIR%%/addons/skin.confluence/media/DefaultPlaylist.png +%%DATADIR%%/addons/skin.confluence/media/DefaultProgram.png +%%DATADIR%%/addons/skin.confluence/media/DefaultRecentlyAddedEpisodes.png +%%DATADIR%%/addons/skin.confluence/media/DefaultRecentlyAddedMovies.png +%%DATADIR%%/addons/skin.confluence/media/DefaultRecentlyAddedMusicVideos.png +%%DATADIR%%/addons/skin.confluence/media/DefaultTVShows.png +%%DATADIR%%/addons/skin.confluence/media/DefaultVideo.png +%%DATADIR%%/addons/skin.confluence/media/DefaultVideoCover.png +%%DATADIR%%/addons/skin.confluence/media/DefaultVideoPlaylists.png +%%DATADIR%%/addons/skin.confluence/media/DefaultVideoPlugins.png +%%DATADIR%%/addons/skin.confluence/media/DialogBack.png +%%DATADIR%%/addons/skin.confluence/media/DialogBack2.png +%%DATADIR%%/addons/skin.confluence/media/DialogCloseButton-focus.png +%%DATADIR%%/addons/skin.confluence/media/DialogCloseButton.png +%%DATADIR%%/addons/skin.confluence/media/DialogContextBottom.png +%%DATADIR%%/addons/skin.confluence/media/DialogContextMiddle.png +%%DATADIR%%/addons/skin.confluence/media/DialogContextTop.png +%%DATADIR%%/addons/skin.confluence/media/Fanart_Fallback_Music_Small.jpg +%%DATADIR%%/addons/skin.confluence/media/Fanart_Fallback_Small.jpg +%%DATADIR%%/addons/skin.confluence/media/GlassOverlay.png +%%DATADIR%%/addons/skin.confluence/media/GlassTitleBar.png +%%DATADIR%%/addons/skin.confluence/media/GoFullscreen.png +%%DATADIR%%/addons/skin.confluence/media/HasSub.png +%%DATADIR%%/addons/skin.confluence/media/HomeBack.png +%%DATADIR%%/addons/skin.confluence/media/HomeBladeSub.png +%%DATADIR%%/addons/skin.confluence/media/HomeButtonsBack.png +%%DATADIR%%/addons/skin.confluence/media/HomeIcon-Focus.png +%%DATADIR%%/addons/skin.confluence/media/HomeIcon.png +%%DATADIR%%/addons/skin.confluence/media/HomeNowPlayingBack.png +%%DATADIR%%/addons/skin.confluence/media/HomeOverlay1.png +%%DATADIR%%/addons/skin.confluence/media/HomeSeperator.png +%%DATADIR%%/addons/skin.confluence/media/HomeSubEnd.png +%%DATADIR%%/addons/skin.confluence/media/HomeSubFO.png +%%DATADIR%%/addons/skin.confluence/media/HomeSubNF.png +%%DATADIR%%/addons/skin.confluence/media/InfoMessagePanel.png +%%DATADIR%%/addons/skin.confluence/media/KeyboardCornerBottom.png +%%DATADIR%%/addons/skin.confluence/media/KeyboardCornerBottomNF.png +%%DATADIR%%/addons/skin.confluence/media/KeyboardCornerTop.png +%%DATADIR%%/addons/skin.confluence/media/KeyboardCornerTopNF.png +%%DATADIR%%/addons/skin.confluence/media/KeyboardEditArea.png +%%DATADIR%%/addons/skin.confluence/media/KeyboardKey.png +%%DATADIR%%/addons/skin.confluence/media/KeyboardKeyNF.png +%%DATADIR%%/addons/skin.confluence/media/LeftRating/rating0.png +%%DATADIR%%/addons/skin.confluence/media/LeftRating/rating1.png +%%DATADIR%%/addons/skin.confluence/media/LeftRating/rating2.png +%%DATADIR%%/addons/skin.confluence/media/LeftRating/rating3.png +%%DATADIR%%/addons/skin.confluence/media/LeftRating/rating4.png +%%DATADIR%%/addons/skin.confluence/media/LeftRating/rating5.png +%%DATADIR%%/addons/skin.confluence/media/Makefile +%%DATADIR%%/addons/skin.confluence/media/Makefile.in +%%DATADIR%%/addons/skin.confluence/media/MediaBladeSub.png +%%DATADIR%%/addons/skin.confluence/media/MediaItemDetailBG.png +%%DATADIR%%/addons/skin.confluence/media/MenuItemFO.png +%%DATADIR%%/addons/skin.confluence/media/MenuItemNF.png +%%DATADIR%%/addons/skin.confluence/media/NowPlayingIcon.png +%%DATADIR%%/addons/skin.confluence/media/OSD16x.png +%%DATADIR%%/addons/skin.confluence/media/OSD2x.png +%%DATADIR%%/addons/skin.confluence/media/OSD32x.png +%%DATADIR%%/addons/skin.confluence/media/OSD4x.png +%%DATADIR%%/addons/skin.confluence/media/OSD8x.png +%%DATADIR%%/addons/skin.confluence/media/OSDAudioFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDAudioNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDBookmarksFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDBookmarksNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDChannelDownFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDChannelDownNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDChannelListFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDChannelListNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDChannelUPFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDChannelUPNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDDvdFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDDvdNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDForwardFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDForwardNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDLyricsFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDLyricsNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDNextTrackFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDNextTrackNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDPause.png +%%DATADIR%%/addons/skin.confluence/media/OSDPauseFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDPauseNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDPlay.png +%%DATADIR%%/addons/skin.confluence/media/OSDPlayFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDPlayNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDPlaylistFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDPlaylistNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDPreFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDPreNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDPresetSettingsFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDPresetSettingsNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDPrevTrackFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDPrevTrackNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDProgressBack.png +%%DATADIR%%/addons/skin.confluence/media/OSDProgressMid.png +%%DATADIR%%/addons/skin.confluence/media/OSDProgressMidLight.png +%%DATADIR%%/addons/skin.confluence/media/OSDRandomOffFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDRandomOffNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDRandomOnFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDRandomOnNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDRecordOffFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDRecordOffNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDRecordOnFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDRecordOnNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDRepeatAllFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDRepeatAllNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDRepeatFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDRepeatNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDRepeatOneFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDRepeatOneNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDRewindFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDRewindNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDSeekForward.png +%%DATADIR%%/addons/skin.confluence/media/OSDSeekFrame.png +%%DATADIR%%/addons/skin.confluence/media/OSDSeekRewind.png +%%DATADIR%%/addons/skin.confluence/media/OSDStopFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDStopNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDSubtitlesFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDSubtitlesNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDTeleTextFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDTeleTextNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDVideoFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDVideoNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDVizFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDVizNF.png +%%DATADIR%%/addons/skin.confluence/media/OSDepgFO.png +%%DATADIR%%/addons/skin.confluence/media/OSDepgNF.png +%%DATADIR%%/addons/skin.confluence/media/OverlayDialogBackground.png +%%DATADIR%%/addons/skin.confluence/media/OverlayHD.png +%%DATADIR%%/addons/skin.confluence/media/OverlayLocked.png +%%DATADIR%%/addons/skin.confluence/media/OverlayRAR.png +%%DATADIR%%/addons/skin.confluence/media/OverlayWatched.png +%%DATADIR%%/addons/skin.confluence/media/PVR-HasTimer.png +%%DATADIR%%/addons/skin.confluence/media/PVR-IsRecording.png +%%DATADIR%%/addons/skin.confluence/media/RecentAddedBack.png +%%DATADIR%%/addons/skin.confluence/media/ScrollBarH.png +%%DATADIR%%/addons/skin.confluence/media/ScrollBarH_bar.png +%%DATADIR%%/addons/skin.confluence/media/ScrollBarH_bar_focus.png +%%DATADIR%%/addons/skin.confluence/media/ScrollBarNib.png +%%DATADIR%%/addons/skin.confluence/media/ScrollBarV.png +%%DATADIR%%/addons/skin.confluence/media/ScrollBarV_bar.png +%%DATADIR%%/addons/skin.confluence/media/ScrollBarV_bar_focus.png +%%DATADIR%%/addons/skin.confluence/media/ShutdownButtonFocus.png +%%DATADIR%%/addons/skin.confluence/media/ShutdownButtonNoFocus.png +%%DATADIR%%/addons/skin.confluence/media/SideFade.png +%%DATADIR%%/addons/skin.confluence/media/StackFO.png +%%DATADIR%%/addons/skin.confluence/media/StackNF.png +%%DATADIR%%/addons/skin.confluence/media/Textures.xbt +%%DATADIR%%/addons/skin.confluence/media/ThumbBG.png +%%DATADIR%%/addons/skin.confluence/media/ThumbBorder.png +%%DATADIR%%/addons/skin.confluence/media/ThumbShadow.png +%%DATADIR%%/addons/skin.confluence/media/VolumeIcon-Mute.png +%%DATADIR%%/addons/skin.confluence/media/VolumeIcon.png +%%DATADIR%%/addons/skin.confluence/media/black-back.png +%%DATADIR%%/addons/skin.confluence/media/black-back2.png +%%DATADIR%%/addons/skin.confluence/media/busy.png +%%DATADIR%%/addons/skin.confluence/media/button-focus.png +%%DATADIR%%/addons/skin.confluence/media/button-focus2.png +%%DATADIR%%/addons/skin.confluence/media/button-nofocus.png +%%DATADIR%%/addons/skin.confluence/media/defaultDVDFull.png +%%DATADIR%%/addons/skin.confluence/media/dialogheader.png +%%DATADIR%%/addons/skin.confluence/media/diffuse_mirror2.png +%%DATADIR%%/addons/skin.confluence/media/diffuse_mirror3.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/0.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/112.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/128.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/144.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/16.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/160.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/176.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/192.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/208.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/224.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/240.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/32.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/48.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/64.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/80.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/96.png +%%DATADIR%%/addons/skin.confluence/media/epg-genres/genre-numbers.txt +%%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio/1.33.png +%%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio/1.66.png +%%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio/1.78.png +%%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio/1.85.png +%%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio/2.20.png +%%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio/2.35.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/0.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/1.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/10.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/2.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/3.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/4.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/5.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/6.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/7.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/8.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/aac.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/ac3.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/aif.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/aifc.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/aiff.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/alac.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/ape.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/avc.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/cdda.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/dca.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/dts.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/dtshd_hra.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/dtshd_ma.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/eac3.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/flac.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/mp1.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/mp2.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/mp3.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/ogg.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/pcm_bluray.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/truehd.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/wav.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/wavpack.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/wma.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/wmapro.png +%%DATADIR%%/addons/skin.confluence/media/flagging/audio/wmav2.png +%%DATADIR%%/addons/skin.confluence/media/flagging/blank.png +%%DATADIR%%/addons/skin.confluence/media/flagging/lists/1080.png +%%DATADIR%%/addons/skin.confluence/media/flagging/lists/480.png +%%DATADIR%%/addons/skin.confluence/media/flagging/lists/540.png +%%DATADIR%%/addons/skin.confluence/media/flagging/lists/576.png +%%DATADIR%%/addons/skin.confluence/media/flagging/lists/720.png +%%DATADIR%%/addons/skin.confluence/media/flagging/ratings/mpaa_general.png +%%DATADIR%%/addons/skin.confluence/media/flagging/ratings/mpaa_nc17.png +%%DATADIR%%/addons/skin.confluence/media/flagging/ratings/mpaa_notrated.png +%%DATADIR%%/addons/skin.confluence/media/flagging/ratings/mpaa_pg.png +%%DATADIR%%/addons/skin.confluence/media/flagging/ratings/mpaa_pg13.png +%%DATADIR%%/addons/skin.confluence/media/flagging/ratings/mpaa_restricted.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/1080.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/480.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/540.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/576.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/720.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/avc1.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/bluray.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/divx.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/dvd.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/flv.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/h264.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/hddvd.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/mpeg1video.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/mpeg2video.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/tv.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/vc-1.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/vhs.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/vp8.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/wvc1.png +%%DATADIR%%/addons/skin.confluence/media/flagging/video/xvid.png +%%DATADIR%%/addons/skin.confluence/media/floor.png +%%DATADIR%%/addons/skin.confluence/media/folder-focus.png +%%DATADIR%%/addons/skin.confluence/media/gradient.png +%%DATADIR%%/addons/skin.confluence/media/header.png +%%DATADIR%%/addons/skin.confluence/media/home-favourites-FO.png +%%DATADIR%%/addons/skin.confluence/media/home-favourites.png +%%DATADIR%%/addons/skin.confluence/media/home-power-FO.png +%%DATADIR%%/addons/skin.confluence/media/home-power-inhibit-FO.png +%%DATADIR%%/addons/skin.confluence/media/home-power-inhibit.png +%%DATADIR%%/addons/skin.confluence/media/home-power.png +%%DATADIR%%/addons/skin.confluence/media/icon-mute.png +%%DATADIR%%/addons/skin.confluence/media/icon-rss.png +%%DATADIR%%/addons/skin.confluence/media/icon-video.png +%%DATADIR%%/addons/skin.confluence/media/icon-weather.png +%%DATADIR%%/addons/skin.confluence/media/lastfm-hate-focus.png +%%DATADIR%%/addons/skin.confluence/media/lastfm-hate-nofocus.png +%%DATADIR%%/addons/skin.confluence/media/lastfm-love-focus.png +%%DATADIR%%/addons/skin.confluence/media/lastfm-love-nofocus.png +%%DATADIR%%/addons/skin.confluence/media/osd_slider_bg.png +%%DATADIR%%/addons/skin.confluence/media/osd_slider_bg_2.png +%%DATADIR%%/addons/skin.confluence/media/osd_slider_nib.png +%%DATADIR%%/addons/skin.confluence/media/osd_slider_nibNF.png +%%DATADIR%%/addons/skin.confluence/media/pointer-focus-click.png +%%DATADIR%%/addons/skin.confluence/media/pointer-focus-drag.png +%%DATADIR%%/addons/skin.confluence/media/pointer-focus.png +%%DATADIR%%/addons/skin.confluence/media/pointer-nofocus.png +%%DATADIR%%/addons/skin.confluence/media/radiobutton-focus.png +%%DATADIR%%/addons/skin.confluence/media/radiobutton-nofocus.png +%%DATADIR%%/addons/skin.confluence/media/scroll-down-2.png +%%DATADIR%%/addons/skin.confluence/media/scroll-down-focus-2.png +%%DATADIR%%/addons/skin.confluence/media/scroll-down-focus.png +%%DATADIR%%/addons/skin.confluence/media/scroll-down.png +%%DATADIR%%/addons/skin.confluence/media/scroll-left-focus.png +%%DATADIR%%/addons/skin.confluence/media/scroll-left.png +%%DATADIR%%/addons/skin.confluence/media/scroll-right-focus.png +%%DATADIR%%/addons/skin.confluence/media/scroll-right.png +%%DATADIR%%/addons/skin.confluence/media/scroll-up-2.png +%%DATADIR%%/addons/skin.confluence/media/scroll-up-focus-2.png +%%DATADIR%%/addons/skin.confluence/media/scroll-up-focus.png +%%DATADIR%%/addons/skin.confluence/media/scroll-up.png +%%DATADIR%%/addons/skin.confluence/media/seekslider.png +%%DATADIR%%/addons/skin.confluence/media/seekslider2.png +%%DATADIR%%/addons/skin.confluence/media/separator.png +%%DATADIR%%/addons/skin.confluence/media/separator2.png +%%DATADIR%%/addons/skin.confluence/media/separator_vertical.png +%%DATADIR%%/addons/skin.confluence/media/unknown-user.png +%%DATADIR%%/addons/skin.confluence/media/xbmc-logo.png +%%DATADIR%%/addons/skin.confluence/sounds/back.wav +%%DATADIR%%/addons/skin.confluence/sounds/click.wav +%%DATADIR%%/addons/skin.confluence/sounds/cursor.wav +%%DATADIR%%/addons/skin.confluence/sounds/notify.wav +%%DATADIR%%/addons/skin.confluence/sounds/out.wav +%%DATADIR%%/addons/skin.confluence/sounds/shutter.wav +%%DATADIR%%/addons/skin.confluence/sounds/sounds.xml +%%DATADIR%%/addons/visualization.dxspectrum/addon.xml +%%DATADIR%%/addons/visualization.dxspectrum/icon.png +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Bulgarian/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Chinese (Simple)/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/English/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/French/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/German/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Hungarian/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Korean/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Polish/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Portuguese/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Romanian/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Slovenian/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Spanish/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Swedish/strings.xml +%%DATADIR%%/addons/visualization.dxspectrum/resources/settings.xml +%%DATADIR%%/addons/visualization.glspectrum/addon.xml +%%DATADIR%%/addons/visualization.glspectrum/icon.png +%%DATADIR%%/addons/visualization.glspectrum/resources/language/Bulgarian/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/Chinese (Simple)/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/English/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/French/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/German/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/Hungarian/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/Korean/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/Polish/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/Russian/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/Slovenian/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/Spanish/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/language/Swedish/strings.xml +%%DATADIR%%/addons/visualization.glspectrum/resources/settings.xml +%%DATADIR%%/addons/visualization.itunes/addon.xml +%%DATADIR%%/addons/visualization.milkdrop/addon.xml +%%DATADIR%%/addons/visualization.milkdrop/icon.png +%%DATADIR%%/addons/visualization.milkdrop/presets/WA51-presets(265).zip +%%DATADIR%%/addons/visualization.milkdrop/presets/Winamp-presets(436).zip +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Bulgarian/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Chinese (Simple)/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/English/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/French/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/German/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Hungarian/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Korean/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Polish/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Portuguese/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Romanian/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Russian/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Slovenian/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Spanish/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/language/Swedish/strings.xml +%%DATADIR%%/addons/visualization.milkdrop/resources/settings.xml +%%DATADIR%%/addons/visualization.projectm/addon.xml +%%DATADIR%%/addons/visualization.projectm/icon.png +%%DATADIR%%/addons/visualization.projectm/resources/language/Bulgarian/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/Chinese (Simple)/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/Dutch/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/English/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/Finnish/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/French/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/German/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/Hungarian/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/Korean/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/Polish/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/Portuguese/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/Russian/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/Slovenian/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/Spanish/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/language/Swedish/strings.xml +%%DATADIR%%/addons/visualization.projectm/resources/presets.zip +%%DATADIR%%/addons/visualization.projectm/resources/settings.xml +%%DATADIR%%/addons/visualization.waveform/addon.xml +%%DATADIR%%/addons/visualization.waveform/icon.png +%%DATADIR%%/addons/weather.wunderground/LICENSE.txt +%%DATADIR%%/addons/weather.wunderground/addon.xml +%%DATADIR%%/addons/weather.wunderground/changelog.txt +%%DATADIR%%/addons/weather.wunderground/default.py +%%DATADIR%%/addons/weather.wunderground/icon.png +%%DATADIR%%/addons/weather.wunderground/resources/language/English/strings.xml +%%DATADIR%%/addons/weather.wunderground/resources/language/German/strings.xml +%%DATADIR%%/addons/weather.wunderground/resources/lib/utilities.py +%%DATADIR%%/addons/weather.wunderground/resources/settings.xml +%%DATADIR%%/addons/webinterface.default/addon.xml +%%DATADIR%%/addons/webinterface.default/css/core.css +%%DATADIR%%/addons/webinterface.default/css/ipad.css +%%DATADIR%%/addons/webinterface.default/favicon.ico +%%DATADIR%%/addons/webinterface.default/icon.png +%%DATADIR%%/addons/webinterface.default/images/DefaultAlbumCover.png +%%DATADIR%%/addons/webinterface.default/images/DefaultVideo.png +%%DATADIR%%/addons/webinterface.default/images/ajax-loader.gif +%%DATADIR%%/addons/webinterface.default/images/close-button.png +%%DATADIR%%/addons/webinterface.default/images/remote.jpg +%%DATADIR%%/addons/webinterface.default/index.html +%%DATADIR%%/addons/webinterface.default/js/Core.js +%%DATADIR%%/addons/webinterface.default/js/Launcher.js +%%DATADIR%%/addons/webinterface.default/js/MediaLibrary.js +%%DATADIR%%/addons/webinterface.default/js/NowPlayingManager.js +%%DATADIR%%/addons/webinterface.default/js/iscroll-min.js +%%DATADIR%%/addons/webinterface.default/js/jquery-1.5.2.js +%%DATADIR%%/addons/webinterface.default/js/jquery-1.5.2.min.js +%%DATADIR%%/addons/webinterface.default/js/jquery.lazyload.js +%%DATADIR%%/addons/xbmc.addon/addon.xml +%%DATADIR%%/addons/xbmc.addon/metadata.xsd +%%DATADIR%%/addons/xbmc.addon/repository.xsd +%%DATADIR%%/addons/xbmc.core/addon.xml +%%DATADIR%%/addons/xbmc.gui/addon.xml +%%DATADIR%%/addons/xbmc.gui/skin.xsd +%%DATADIR%%/addons/xbmc.json/addon.xml +%%DATADIR%%/addons/xbmc.metadata/addon.xml +%%DATADIR%%/addons/xbmc.metadata/scraper.xsd +%%DATADIR%%/addons/xbmc.python/addon.xml +%%DATADIR%%/addons/xbmc.python/pluginsource.xsd +%%DATADIR%%/addons/xbmc.python/script.xsd +%%DATADIR%%/language/Afrikaans/langinfo.xml +%%DATADIR%%/language/Afrikaans/strings.xml +%%DATADIR%%/language/Basque/langinfo.xml +%%DATADIR%%/language/Basque/strings.xml +%%DATADIR%%/language/Bosnian/langinfo.xml +%%DATADIR%%/language/Bosnian/strings.xml +%%DATADIR%%/language/Bulgarian/langinfo.xml +%%DATADIR%%/language/Bulgarian/strings.xml +%%DATADIR%%/language/Catalan/langinfo.xml +%%DATADIR%%/language/Catalan/strings.xml +%%DATADIR%%/language/Chinese (Simple)/langinfo.xml +%%DATADIR%%/language/Chinese (Simple)/strings.xml +%%DATADIR%%/language/Chinese (Traditional)/langinfo.xml +%%DATADIR%%/language/Chinese (Traditional)/strings.xml +%%DATADIR%%/language/Croatian/langinfo.xml +%%DATADIR%%/language/Croatian/strings.xml +%%DATADIR%%/language/Czech/langinfo.xml +%%DATADIR%%/language/Czech/strings.xml +%%DATADIR%%/language/Danish/langinfo.xml +%%DATADIR%%/language/Danish/strings.xml +%%DATADIR%%/language/Dutch/langinfo.xml +%%DATADIR%%/language/Dutch/strings.xml +%%DATADIR%%/language/English (US)/langinfo.xml +%%DATADIR%%/language/English (US)/strings.xml +%%DATADIR%%/language/English/langinfo.xml +%%DATADIR%%/language/English/strings.xml +%%DATADIR%%/language/Esperanto/langinfo.xml +%%DATADIR%%/language/Esperanto/strings.xml +%%DATADIR%%/language/Finnish/langinfo.xml +%%DATADIR%%/language/Finnish/strings.xml +%%DATADIR%%/language/French/langinfo.xml +%%DATADIR%%/language/French/strings.xml +%%DATADIR%%/language/German/keyboardmap.xml +%%DATADIR%%/language/German/langinfo.xml +%%DATADIR%%/language/German/strings.xml +%%DATADIR%%/language/Greek/langinfo.xml +%%DATADIR%%/language/Greek/strings.xml +%%DATADIR%%/language/Hebrew/langinfo.xml +%%DATADIR%%/language/Hebrew/strings.xml +%%DATADIR%%/language/Hindi (Devanagiri)/langinfo.xml +%%DATADIR%%/language/Hindi (Devanagiri)/strings.xml +%%DATADIR%%/language/Hungarian/langinfo.xml +%%DATADIR%%/language/Hungarian/strings.xml +%%DATADIR%%/language/Icelandic/langinfo.xml +%%DATADIR%%/language/Icelandic/strings.xml +%%DATADIR%%/language/Indonesian/langinfo.xml +%%DATADIR%%/language/Indonesian/strings.xml +%%DATADIR%%/language/Italian/langinfo.xml +%%DATADIR%%/language/Italian/strings.xml +%%DATADIR%%/language/Japanese/langinfo.xml +%%DATADIR%%/language/Japanese/strings.xml +%%DATADIR%%/language/Korean/langinfo.xml +%%DATADIR%%/language/Korean/strings.xml +%%DATADIR%%/language/Maltese/langinfo.xml +%%DATADIR%%/language/Maltese/strings.xml +%%DATADIR%%/language/Norwegian/langinfo.xml +%%DATADIR%%/language/Norwegian/strings.xml +%%DATADIR%%/language/Polish/langinfo.xml +%%DATADIR%%/language/Polish/strings.xml +%%DATADIR%%/language/Portuguese (Brazil)/langinfo.xml +%%DATADIR%%/language/Portuguese (Brazil)/strings.xml +%%DATADIR%%/language/Portuguese/langinfo.xml +%%DATADIR%%/language/Portuguese/strings.xml +%%DATADIR%%/language/Romanian/langinfo.xml +%%DATADIR%%/language/Romanian/strings.xml +%%DATADIR%%/language/Russian/langinfo.xml +%%DATADIR%%/language/Russian/strings.xml +%%DATADIR%%/language/Serbian (Cyrillic)/langinfo.xml +%%DATADIR%%/language/Serbian (Cyrillic)/strings.xml +%%DATADIR%%/language/Serbian/langinfo.xml +%%DATADIR%%/language/Serbian/strings.xml +%%DATADIR%%/language/Slovak/langinfo.xml +%%DATADIR%%/language/Slovak/strings.xml +%%DATADIR%%/language/Slovenian/langinfo.xml +%%DATADIR%%/language/Slovenian/strings.xml +%%DATADIR%%/language/Spanish (Mexico)/langinfo.xml +%%DATADIR%%/language/Spanish (Mexico)/strings.xml +%%DATADIR%%/language/Spanish/langinfo.xml +%%DATADIR%%/language/Spanish/strings.xml +%%DATADIR%%/language/Swedish/langinfo.xml +%%DATADIR%%/language/Swedish/strings.xml +%%DATADIR%%/language/Thai/langinfo.xml +%%DATADIR%%/language/Thai/strings.xml +%%DATADIR%%/language/Turkish/langinfo.xml +%%DATADIR%%/language/Turkish/strings.xml +%%DATADIR%%/language/Ukrainian/langinfo.xml +%%DATADIR%%/language/Ukrainian/strings.xml +%%DATADIR%%/media/Fonts/arial.ttf +%%DATADIR%%/media/Fonts/teletext.ttf +%%DATADIR%%/media/Splash.png +%%DATADIR%%/media/icon.png +%%DATADIR%%/media/icon32x32.png +%%DATADIR%%/media/weather.zip +%%DATADIR%%/media/xbmc.icns +%%DATADIR%%/sounds/Bursting Bubbles/nav.wav +%%DATADIR%%/sounds/Bursting Bubbles/sounds.xml +%%DATADIR%%/system/IRSSmap.xml +%%DATADIR%%/system/Lircmap.xml +%%DATADIR%%/system/X10-Lola-IRSSmap.xml +%%DATADIR%%/system/asound.conf +%%DATADIR%%/system/colors.xml +%%DATADIR%%/system/keymaps/appcommand.xml +%%DATADIR%%/system/keymaps/gamepad.xml +%%DATADIR%%/system/keymaps/joystick.Alienware.Dual.Compatible.Controller.xml +%%DATADIR%%/system/keymaps/joystick.AppleRemote.xml +%%DATADIR%%/system/keymaps/joystick.Harmony.xml +%%DATADIR%%/system/keymaps/joystick.Interact.AxisPad.xml +%%DATADIR%%/system/keymaps/joystick.Logitech.RumblePad.2.xml +%%DATADIR%%/system/keymaps/joystick.Microsoft.Xbox.360.Controller.xml +%%DATADIR%%/system/keymaps/joystick.Microsoft.Xbox.Controller.S.xml +%%DATADIR%%/system/keymaps/joystick.PS3.Remote.Keyboard.xml +%%DATADIR%%/system/keymaps/joystick.Sony.PLAYSTATION(R)3.Controller.xml +%%DATADIR%%/system/keymaps/joystick.WiiRemote.xml +%%DATADIR%%/system/keymaps/keyboard.xml +%%DATADIR%%/system/keymaps/mouse.xml +%%DATADIR%%/system/keymaps/nyxboard/keyboard.xml +%%DATADIR%%/system/keymaps/remote.xml +%%DATADIR%%/system/peripherals.xml +%%DATADIR%%/system/playercorefactory.xml +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-autohint.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-no-sub-pixel.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-sub-pixel-bgr.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-sub-pixel-rgb.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-sub-pixel-vbgr.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-sub-pixel-vrgb.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-unhinted.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/20-fix-globaladvance.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/20-lohit-gujarati.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/20-unhint-small-vera.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/30-amt-aliases.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/30-urw-aliases.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/40-generic.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/49-sansserif.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/50-user.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/51-local.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/60-latin.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/65-fonts-persian.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/65-nonlatin.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/69-unifont.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/70-no-bitmaps.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/70-yes-bitmaps.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/80-delicious.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/90-synthetic.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/README +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/20-fix-globaladvance.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/20-lohit-gujarati.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/20-unhint-small-vera.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/30-amt-aliases.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/30-urw-aliases.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/40-generic.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/49-sansserif.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/50-user.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/51-local.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/60-latin.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/65-fonts-persian.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/65-nonlatin.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/69-unifont.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/80-delicious.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/90-synthetic.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/fonts.conf +%%DATADIR%%/system/players/dvdplayer/etc/fonts/fonts.dtd +%%DATADIR%%/system/python/readme.txt +%%DATADIR%%/system/shaders/convolution-4x4.glsl +%%DATADIR%%/system/shaders/convolution-4x4_d3d.fx +%%DATADIR%%/system/shaders/convolution-6x6.glsl +%%DATADIR%%/system/shaders/convolution-6x6_d3d.fx +%%DATADIR%%/system/shaders/convolutionsep-4x4_d3d.fx +%%DATADIR%%/system/shaders/convolutionsep-6x6_d3d.fx +%%DATADIR%%/system/shaders/guishader_frag_default.glsl +%%DATADIR%%/system/shaders/guishader_frag_fonts.glsl +%%DATADIR%%/system/shaders/guishader_frag_multi.glsl +%%DATADIR%%/system/shaders/guishader_frag_multi_blendcolor.glsl +%%DATADIR%%/system/shaders/guishader_frag_rgba.glsl +%%DATADIR%%/system/shaders/guishader_frag_rgba_blendcolor.glsl +%%DATADIR%%/system/shaders/guishader_frag_texture.glsl +%%DATADIR%%/system/shaders/guishader_frag_texture_noblend.glsl +%%DATADIR%%/system/shaders/guishader_vert.glsl +%%DATADIR%%/system/shaders/stretch.glsl +%%DATADIR%%/system/shaders/testshader.fx +%%DATADIR%%/system/shaders/yuv2rgb_basic.glsl +%%DATADIR%%/system/shaders/yuv2rgb_basic_2d.arb +%%DATADIR%%/system/shaders/yuv2rgb_basic_2d_UYVY.arb +%%DATADIR%%/system/shaders/yuv2rgb_basic_2d_YUY2.arb +%%DATADIR%%/system/shaders/yuv2rgb_basic_gles.glsl +%%DATADIR%%/system/shaders/yuv2rgb_basic_rect.arb +%%DATADIR%%/system/shaders/yuv2rgb_basic_rect_UYVY.arb +%%DATADIR%%/system/shaders/yuv2rgb_basic_rect_YUY2.arb +%%DATADIR%%/system/shaders/yuv2rgb_bob.glsl +%%DATADIR%%/system/shaders/yuv2rgb_bob_gles.glsl +%%DATADIR%%/system/shaders/yuv2rgb_d3d.fx +%%DATADIR%%/system/shaders/yuv2rgb_vertex.glsl +%%DATADIR%%/system/shaders/yuv2rgb_vertex_gles.glsl +%%DATADIR%%/userdata/LCD.xml +%%DATADIR%%/userdata/ModeLines_template.xml +%%DATADIR%%/userdata/PictureIcon/Picon/tuxbox.png +%%DATADIR%%/userdata/PictureIcon/Readme.txt +%%DATADIR%%/userdata/PictureIcon/picon.xml +%%DATADIR%%/userdata/RssFeeds.xml +share/xsessions/XBMC.desktop +@dirrmtry share/xsessions +@dirrmtry share/icons/hicolor/48x48/apps +@dirrmtry share/icons/hicolor/48x48 +@dirrmtry share/icons/hicolor/256x256/apps +@dirrmtry share/icons/hicolor/256x256 +@dirrmtry share/icons/hicolor +@dirrmtry share/icons +@dirrm lib/xbmc/system/players/paplayer +@dirrm lib/xbmc/system/players/dvdplayer +@dirrm lib/xbmc/system/players +@dirrm lib/xbmc/system +@dirrm lib/xbmc/addons/visualization.waveform +@dirrm lib/xbmc/addons/visualization.projectm +@dirrm lib/xbmc/addons/visualization.glspectrum +@dirrm lib/xbmc/addons/screensaver.rsxs.solarwinds +@dirrm lib/xbmc/addons/screensaver.rsxs.plasma +@dirrm lib/xbmc/addons/screensaver.rsxs.euphoria +@dirrm lib/xbmc/addons/pvr.vdr.vnsi +@dirrm lib/xbmc/addons/pvr.team-mediaportal.tvserver +@dirrm lib/xbmc/addons/pvr.mythtv +@dirrm lib/xbmc/addons/pvr.hts +@dirrm lib/xbmc/addons/library.xbmc.pvr +@dirrm lib/xbmc/addons/library.xbmc.gui +@dirrm lib/xbmc/addons/library.xbmc.addon +@dirrm lib/xbmc/addons +@dirrm lib/xbmc +@dirrm %%DOCSDIR%% +@dirrm %%DATADIR%%/userdata/PictureIcon/Picon +@dirrm %%DATADIR%%/userdata/PictureIcon +@dirrm %%DATADIR%%/userdata +@dirrm %%DATADIR%%/system/shaders +@dirrm %%DATADIR%%/system/python +@dirrm %%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d +@dirrm %%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail +@dirrm %%DATADIR%%/system/players/dvdplayer/etc/fonts +@dirrm %%DATADIR%%/system/players/dvdplayer/etc +@dirrm %%DATADIR%%/system/players/dvdplayer +@dirrm %%DATADIR%%/system/players +@dirrm %%DATADIR%%/system/keymaps/nyxboard +@dirrm %%DATADIR%%/system/keymaps +@dirrm %%DATADIR%%/system +@dirrm %%DATADIR%%/sounds/Bursting Bubbles +@dirrm %%DATADIR%%/sounds +@dirrm %%DATADIR%%/media/Fonts +@dirrm %%DATADIR%%/media +@dirrm %%DATADIR%%/language/Ukrainian +@dirrm %%DATADIR%%/language/Turkish +@dirrm %%DATADIR%%/language/Thai +@dirrm %%DATADIR%%/language/Swedish +@dirrm %%DATADIR%%/language/Spanish (Mexico) +@dirrm %%DATADIR%%/language/Spanish +@dirrm %%DATADIR%%/language/Slovenian +@dirrm %%DATADIR%%/language/Slovak +@dirrm %%DATADIR%%/language/Serbian (Cyrillic) +@dirrm %%DATADIR%%/language/Serbian +@dirrm %%DATADIR%%/language/Russian +@dirrm %%DATADIR%%/language/Romanian +@dirrm %%DATADIR%%/language/Portuguese (Brazil) +@dirrm %%DATADIR%%/language/Portuguese +@dirrm %%DATADIR%%/language/Polish +@dirrm %%DATADIR%%/language/Norwegian +@dirrm %%DATADIR%%/language/Maltese +@dirrm %%DATADIR%%/language/Korean +@dirrm %%DATADIR%%/language/Japanese +@dirrm %%DATADIR%%/language/Italian +@dirrm %%DATADIR%%/language/Indonesian +@dirrm %%DATADIR%%/language/Icelandic +@dirrm %%DATADIR%%/language/Hungarian +@dirrm %%DATADIR%%/language/Hindi (Devanagiri) +@dirrm %%DATADIR%%/language/Hebrew +@dirrm %%DATADIR%%/language/Greek +@dirrm %%DATADIR%%/language/German +@dirrm %%DATADIR%%/language/French +@dirrm %%DATADIR%%/language/Finnish +@dirrm %%DATADIR%%/language/Esperanto +@dirrm %%DATADIR%%/language/English (US) +@dirrm %%DATADIR%%/language/English +@dirrm %%DATADIR%%/language/Dutch +@dirrm %%DATADIR%%/language/Danish +@dirrm %%DATADIR%%/language/Czech +@dirrm %%DATADIR%%/language/Croatian +@dirrm %%DATADIR%%/language/Chinese (Traditional) +@dirrm %%DATADIR%%/language/Chinese (Simple) +@dirrm %%DATADIR%%/language/Catalan +@dirrm %%DATADIR%%/language/Bulgarian +@dirrm %%DATADIR%%/language/Bosnian +@dirrm %%DATADIR%%/language/Basque +@dirrm %%DATADIR%%/language/Afrikaans +@dirrm %%DATADIR%%/language +@dirrm %%DATADIR%%/addons/xbmc.python +@dirrm %%DATADIR%%/addons/xbmc.metadata +@dirrm %%DATADIR%%/addons/xbmc.json +@dirrm %%DATADIR%%/addons/xbmc.gui +@dirrm %%DATADIR%%/addons/xbmc.core +@dirrm %%DATADIR%%/addons/xbmc.addon +@dirrm %%DATADIR%%/addons/webinterface.default/js +@dirrm %%DATADIR%%/addons/webinterface.default/images +@dirrm %%DATADIR%%/addons/webinterface.default/css +@dirrm %%DATADIR%%/addons/webinterface.default +@dirrm %%DATADIR%%/addons/weather.wunderground/resources/lib +@dirrm %%DATADIR%%/addons/weather.wunderground/resources/language/German +@dirrm %%DATADIR%%/addons/weather.wunderground/resources/language/English +@dirrm %%DATADIR%%/addons/weather.wunderground/resources/language +@dirrm %%DATADIR%%/addons/weather.wunderground/resources +@dirrm %%DATADIR%%/addons/weather.wunderground +@dirrm %%DATADIR%%/addons/visualization.waveform +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Swedish +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Spanish +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Slovenian +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Russian +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Portuguese +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Polish +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Korean +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Hungarian +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/German +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/French +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Finnish +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/English +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Dutch +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Chinese (Simple) +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Bulgarian +@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language +@dirrm %%DATADIR%%/addons/visualization.projectm/resources +@dirrm %%DATADIR%%/addons/visualization.projectm +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Swedish +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Spanish +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Slovenian +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Russian +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Romanian +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Portuguese +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Polish +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Korean +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Hungarian +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/German +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/French +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Finnish +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/English +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Dutch +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Chinese (Simple) +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Bulgarian +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language +@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources +@dirrm %%DATADIR%%/addons/visualization.milkdrop/presets +@dirrm %%DATADIR%%/addons/visualization.milkdrop +@dirrm %%DATADIR%%/addons/visualization.itunes +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Swedish +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Spanish +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Slovenian +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Russian +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Polish +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Korean +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Hungarian +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/German +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/French +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Finnish +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/English +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Dutch +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Chinese (Simple) +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Bulgarian +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language +@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources +@dirrm %%DATADIR%%/addons/visualization.glspectrum +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Swedish +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Spanish +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Slovenian +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Romanian +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Portuguese +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Polish +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Korean +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Hungarian +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/German +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/French +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Finnish +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/English +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Dutch +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Chinese (Simple) +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Bulgarian +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language +@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources +@dirrm %%DATADIR%%/addons/visualization.dxspectrum +@dirrm %%DATADIR%%/addons/skin.confluence/sounds +@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging/video +@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging/ratings +@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging/lists +@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging/audio +@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio +@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging +@dirrm %%DATADIR%%/addons/skin.confluence/media/epg-genres +@dirrm %%DATADIR%%/addons/skin.confluence/media/LeftRating +@dirrm %%DATADIR%%/addons/skin.confluence/media/CenterRating +@dirrm %%DATADIR%%/addons/skin.confluence/media +@dirrm %%DATADIR%%/addons/skin.confluence/language/Turkish +@dirrm %%DATADIR%%/addons/skin.confluence/language/Swedish +@dirrm %%DATADIR%%/addons/skin.confluence/language/Spanish +@dirrm %%DATADIR%%/addons/skin.confluence/language/Slovenian +@dirrm %%DATADIR%%/addons/skin.confluence/language/Slovak +@dirrm %%DATADIR%%/addons/skin.confluence/language/Serbian (Cyrillic) +@dirrm %%DATADIR%%/addons/skin.confluence/language/Serbian +@dirrm %%DATADIR%%/addons/skin.confluence/language/Russian +@dirrm %%DATADIR%%/addons/skin.confluence/language/Romanian +@dirrm %%DATADIR%%/addons/skin.confluence/language/Portuguese (Brazil) +@dirrm %%DATADIR%%/addons/skin.confluence/language/Portuguese +@dirrm %%DATADIR%%/addons/skin.confluence/language/Polish +@dirrm %%DATADIR%%/addons/skin.confluence/language/Norwegian +@dirrm %%DATADIR%%/addons/skin.confluence/language/Korean +@dirrm %%DATADIR%%/addons/skin.confluence/language/Japanese +@dirrm %%DATADIR%%/addons/skin.confluence/language/Italian +@dirrm %%DATADIR%%/addons/skin.confluence/language/Icelandic +@dirrm %%DATADIR%%/addons/skin.confluence/language/Hungarian +@dirrm %%DATADIR%%/addons/skin.confluence/language/Greek +@dirrm %%DATADIR%%/addons/skin.confluence/language/German +@dirrm %%DATADIR%%/addons/skin.confluence/language/French +@dirrm %%DATADIR%%/addons/skin.confluence/language/Finnish +@dirrm %%DATADIR%%/addons/skin.confluence/language/English +@dirrm %%DATADIR%%/addons/skin.confluence/language/Dutch +@dirrm %%DATADIR%%/addons/skin.confluence/language/Danish +@dirrm %%DATADIR%%/addons/skin.confluence/language/Czech +@dirrm %%DATADIR%%/addons/skin.confluence/language/Chinese (Traditional) +@dirrm %%DATADIR%%/addons/skin.confluence/language/Chinese (Simple) +@dirrm %%DATADIR%%/addons/skin.confluence/language/Catalan +@dirrm %%DATADIR%%/addons/skin.confluence/language/Bulgarian +@dirrm %%DATADIR%%/addons/skin.confluence/language/Afrikaans +@dirrm %%DATADIR%%/addons/skin.confluence/language +@dirrm %%DATADIR%%/addons/skin.confluence/fonts +@dirrm %%DATADIR%%/addons/skin.confluence/colors +@dirrm %%DATADIR%%/addons/skin.confluence/backgrounds +@dirrm %%DATADIR%%/addons/skin.confluence/720p/weather+ +@dirrm %%DATADIR%%/addons/skin.confluence/720p +@dirrm %%DATADIR%%/addons/skin.confluence +@dirrm %%DATADIR%%/addons/script.module.pysqlite/lib/pysqlite2 +@dirrm %%DATADIR%%/addons/script.module.pysqlite/lib +@dirrm %%DATADIR%%/addons/script.module.pysqlite +@dirrm %%DATADIR%%/addons/script.module.pil +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Swedish +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Spanish +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Slovenian +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Russian +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Polish +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Korean +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Hungarian +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/German +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/French +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Finnish +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/English +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Dutch +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Chinese (Simple) +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Swedish +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Spanish +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Slovenian +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Russian +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Portuguese +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Polish +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Korean +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Hungarian +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/German +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/French +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Finnish +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/English +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Dutch +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Chinese (Simple) +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Bulgarian +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim +@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.black +@dirrm %%DATADIR%%/addons/screensaver.rsxs.solarwinds +@dirrm %%DATADIR%%/addons/screensaver.rsxs.plasma +@dirrm %%DATADIR%%/addons/screensaver.rsxs.euphoria +@dirrm %%DATADIR%%/addons/repository.xbmc.org +@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/skins/Confluence/720p +@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/skins/Confluence +@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/skins +@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/German +@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/Finnish +@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/English +@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/Dutch +@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/language +@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources +@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi +@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/German +@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/Finnish +@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/English +@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/Dutch +@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language +@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources +@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver +@dirrm %%DATADIR%%/addons/pvr.mythtv/resources/language/German +@dirrm %%DATADIR%%/addons/pvr.mythtv/resources/language/Finnish +@dirrm %%DATADIR%%/addons/pvr.mythtv/resources/language/English +@dirrm %%DATADIR%%/addons/pvr.mythtv/resources/language +@dirrm %%DATADIR%%/addons/pvr.mythtv/resources +@dirrm %%DATADIR%%/addons/pvr.mythtv +@dirrm %%DATADIR%%/addons/pvr.hts/resources/language/German +@dirrm %%DATADIR%%/addons/pvr.hts/resources/language/Finnish +@dirrm %%DATADIR%%/addons/pvr.hts/resources/language/English +@dirrm %%DATADIR%%/addons/pvr.hts/resources/language/Dutch +@dirrm %%DATADIR%%/addons/pvr.hts/resources/language +@dirrm %%DATADIR%%/addons/pvr.hts/resources +@dirrm %%DATADIR%%/addons/pvr.hts +@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Portuguese +@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Polish +@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Korean +@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Hungarian +@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/English +@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Dutch +@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language +@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources +@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Swedish +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Spanish +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Russian +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Portuguese +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Polish +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Korean +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Hungarian +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/German +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/French +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Finnish +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/English +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Dutch +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Chinese (Simple) +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language +@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources +@dirrm %%DATADIR%%/addons/metadata.tvdb.com +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Swedish +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Spanish +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Russian +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Romanian +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Portuguese +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Polish +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Korean +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Hungarian +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/German +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/French +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/English +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Dutch +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Chinese (Simple) +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Bulgarian +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources +@dirrm %%DATADIR%%/addons/metadata.themoviedb.org +@dirrm %%DATADIR%%/addons/metadata.common.themoviedb.org +@dirrm %%DATADIR%%/addons/metadata.common.last.fm +@dirrm %%DATADIR%%/addons/metadata.common.imdb.com +@dirrm %%DATADIR%%/addons/metadata.common.htbackdrops.com +@dirrm %%DATADIR%%/addons/metadata.common.hdtrailers.net +@dirrm %%DATADIR%%/addons/metadata.common.allmusic.com +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Swedish +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Spanish +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Russian +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Portuguese +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Polish +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Korean +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Hungarian +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/German +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/French +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Finnish +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/English +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Dutch +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Chinese (Simple) +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Bulgarian +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources +@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Swedish +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Spanish +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Russian +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Portuguese +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Polish +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Korean +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Hungarian +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/German +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/French +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Finnish +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/English +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Dutch +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Chinese (Simple) +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Bulgarian +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources +@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com +@dirrm %%DATADIR%%/addons/library.xbmc.pvr +@dirrm %%DATADIR%%/addons/library.xbmc.gui +@dirrm %%DATADIR%%/addons/library.xbmc.addon +@dirrmtry %%DATADIR%%/addons +@dirrmtry %%DATADIR%% |