diff options
author | nox <nox@FreeBSD.org> | 2011-12-19 02:32:02 +0800 |
---|---|---|
committer | nox <nox@FreeBSD.org> | 2011-12-19 02:32:02 +0800 |
commit | e5de8425c02a590182b5268e4c008d93dc64426a (patch) | |
tree | 8a1549f5b7ec2e87e3f64d2e32a47baf3914b82b /multimedia/xbmc-pvr | |
parent | 8214b9eee4fe29ed356474223a5974697cb673ff (diff) | |
download | freebsd-ports-gnome-e5de8425c02a590182b5268e4c008d93dc64426a.tar.gz freebsd-ports-gnome-e5de8425c02a590182b5268e4c008d93dc64426a.tar.zst freebsd-ports-gnome-e5de8425c02a590182b5268e4c008d93dc64426a.zip |
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/
Diffstat (limited to 'multimedia/xbmc-pvr')
52 files changed, 3774 insertions, 0 deletions
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%% |