summaryrefslogtreecommitdiffstats
path: root/abs/extra/xbmc
diff options
context:
space:
mode:
Diffstat (limited to 'abs/extra/xbmc')
-rw-r--r--abs/extra/xbmc/FEH.sh47
-rw-r--r--abs/extra/xbmc/Lircmap.xml233
-rw-r--r--abs/extra/xbmc/PKGBUILD116
-rw-r--r--abs/extra/xbmc/__changelog1
-rw-r--r--abs/extra/xbmc/use_cdio_system_headers_on_non_win32.patch130
-rw-r--r--abs/extra/xbmc/xbmc.install7
6 files changed, 534 insertions, 0 deletions
diff --git a/abs/extra/xbmc/FEH.sh b/abs/extra/xbmc/FEH.sh
new file mode 100644
index 0000000..9cbec63
--- /dev/null
+++ b/abs/extra/xbmc/FEH.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+function directRendering() {
+out=$(glxinfo | grep "direct rendering")
+direct=${out#"direct rendering: "}
+if [ "$direct" = "Yes" ]; then
+ return 0
+else
+ return 1
+fi
+}
+
+function colorDepth() {
+out=$(xdpyinfo | grep "depth of root")
+color=${out:27:2}
+if [ "$color" = "24" ]; then
+ return 0
+else
+ return 1
+fi
+}
+
+directRendering
+direct_ok=$?
+
+colorDepth
+color_ok=$?
+
+exit_val=0
+
+if [ $direct_ok -ne 0 ]; then
+ echo "XBMC needs hardware accelerated OpenGL rendering."
+ echo "Install an appropriate graphics driver."
+ echo " "
+ echo "Please consult XBMC Wiki for supported hardware"
+ echo "http://xbmc.org/wiki/?title=Supported_hardware"
+ exit_val=1
+fi
+
+if [ $color_ok -ne 0 ]; then
+ echo "XBMC cannot run unless the"
+ echo "screen color depth is atleast 24 bit."
+ echo " "
+ echo "Please reconfigure your screen."
+ exit_val=1
+fi
+
+exit $exit_val
diff --git a/abs/extra/xbmc/Lircmap.xml b/abs/extra/xbmc/Lircmap.xml
new file mode 100644
index 0000000..600567f
--- /dev/null
+++ b/abs/extra/xbmc/Lircmap.xml
@@ -0,0 +1,233 @@
+<!-- This file contains the mapping of LIRC keys to XBMC keys used in Keymap.xml -->
+<!-- -->
+<!-- How to add remotes -->
+<!-- <remote device="name_Lirc_calls_the_remote"> -->
+<!-- -->
+<!-- For the commands the layout following layout is used -->
+<!-- <XBMC_COMMAND>LircButtonName</XBMC_COMMAND> -->
+<!-- -->
+<!-- For a list of XBMC_COMMAND's check out the <remote> sections of keymap.xml -->
+
+<lircmap>
+ <remote device="mceusb">
+ <pause>Pause</pause>
+ <stop>Stop</stop>
+ <forward>Forward</forward>
+ <reverse>Rewind</reverse>
+ <left>Left</left>
+ <right>Right</right>
+ <up>Up</up>
+ <down>Down</down>
+ <select>OK</select>
+ <pageplus>ChanUp</pageplus>
+ <pageminus>ChanDown</pageminus>
+ <back>Back</back>
+ <menu>PreviousMenu</menu>
+ <title>Play</title>
+ <info>More</info>
+ <skipplus>Skip</skipplus>
+ <skipminus>Replay</skipminus>
+ <display>Teletext</display>
+ <start>Home</start>
+ <record>Record</record>
+ <volumeplus>VolUp</volumeplus>
+ <volumeminus>VolDown</volumeminus>
+ <mute>Mute</mute>
+ <power>Power</power>
+ <myvideo>Videos</myvideo>
+ <mymusic>Music</mymusic>
+ <mypictures>Pictures</mypictures>
+ <mytv>TV</mytv>
+ <one>One</one>
+ <two>Two</two>
+ <three>Three</three>
+ <four>Four</four>
+ <five>Five</five>
+ <six>Six</six>
+ <seven>Seven</seven>
+ <eight>Eight</eight>
+ <nine>Nine</nine>
+ <zero>Zero</zero>
+ <mytv>Red</mytv>
+ <mymusic>Green</mymusic>
+ <mypictures>Yellow</mypictures>
+ <myvideo>Blue</myvideo>
+ </remote>
+
+ <remote device="mceusb2">
+ <pause>Pause</pause>
+ <stop>Stop</stop>
+ <forward>Forward</forward>
+ <reverse>Rewind</reverse>
+ <left>Left</left>
+ <right>Right</right>
+ <up>Up</up>
+ <down>Down</down>
+ <select>OK</select>
+ <pageplus>ChanUp</pageplus>
+ <pageminus>ChanDown</pageminus>
+ <back>Back</back>
+ <menu>PreviousMenu</menu>
+ <title>Play</title>
+ <info>More</info>
+ <skipplus>Skip</skipplus>
+ <skipminus>Replay</skipminus>
+ <display>Teletext</display>
+ <start>Home</start>
+ <record>Record</record>
+ <volumeplus>VolUp</volumeplus>
+ <volumeminus>VolDown</volumeminus>
+ <mute>Mute</mute>
+ <power>Power</power>
+ <myvideo>Videos</myvideo>
+ <mymusic>Music</mymusic>
+ <mypictures>Pictures</mypictures>
+ <mytv>TV</mytv>
+ <one>One</one>
+ <two>Two</two>
+ <three>Three</three>
+ <four>Four</four>
+ <five>Five</five>
+ <six>Six</six>
+ <seven>Seven</seven>
+ <eight>Eight</eight>
+ <nine>Nine</nine>
+ <zero>Zero</zero>
+ <mytv>Red</mytv>
+ <mymusic>Green</mymusic>
+ <mypictures>Yellow</mypictures>
+ <myvideo>Blue</myvideo>
+ </remote>
+
+ <remote device="XboxDVDDongle">
+ <play>PLAY</play>
+ <pause>PAUSE</pause>
+ <stop>STOP</stop>
+ <forward>FORWARD</forward>
+ <reverse>REVERSE</reverse>
+ <left>LEFT</left>
+ <right>RIGHT</right>
+ <up>UP</up>
+ <down>DOWN</down>
+ <select>SELECT</select>
+ <back>BACK</back>
+ <menu>MENU</menu>
+ <title>TITLE</title>
+ <info>INFO</info>
+ <skipplus>SKIP+</skipplus>
+ <skipminus>SKIP-</skipminus>
+ <display>DISPLAY</display>
+ <one>1</one>
+ <two>2</two>
+ <three>3</three>
+ <four>4</four>
+ <five>5</five>
+ <six>6</six>
+ <seven>7</seven>
+ <eight>8</eight>
+ <nine>9</nine>
+ <zero>0</zero>
+ </remote>
+
+ <remote device="Microsoft_Xbox">
+ <play>PLAY</play>
+ <pause>PAUSE</pause>
+ <stop>STOP</stop>
+ <forward>FORWARD</forward>
+ <reverse>REVERSE</reverse>
+ <left>LEFT</left>
+ <right>RIGHT</right>
+ <up>UP</up>
+ <down>DOWN</down>
+ <select>SELECT</select>
+ <back>BACK</back>
+ <menu>MENU</menu>
+ <title>TITLE</title>
+ <info>INFO</info>
+ <skipplus>SKIP+</skipplus>
+ <skipminus>SKIP-</skipminus>
+ <display>DISPLAY</display>
+ <one>1</one>
+ <two>2</two>
+ <three>3</three>
+ <four>4</four>
+ <five>5</five>
+ <six>6</six>
+ <seven>7</seven>
+ <eight>8</eight>
+ <nine>9</nine>
+ <zero>0</zero>
+ </remote>
+
+ <remote device="PinnacleSysPCTVRemote">
+ <play>Play</play>
+ <pause>pause</pause>
+ <stop>Stop</stop>
+ <forward>FForward</forward>
+ <reverse>Rewind</reverse>
+ <left>Vol-Rew</left>
+ <right>Vol+FF</right>
+ <up>Chan+Play</up>
+ <down>Chan-Stop</down>
+ <pageplus>channel+</pageplus>
+ <pageminus>channel-</pageminus>
+ <select>middle</select>
+ <back>undo</back>
+ <menu>Menu</menu>
+ <title>L</title>
+ <info>Info</info>
+ <skipplus>next</skipplus>
+ <display>Fullscreen</display>
+ <record>Record</record>
+ <volumeplus>vol+</volumeplus>
+ <volumeminus>vol-</volumeminus>
+ <mute>Mute</mute>
+ <power>Power</power>
+ <one>1</one>
+ <two>2</two>
+ <three>3</three>
+ <four>4</four>
+ <five>5</five>
+ <six>6</six>
+ <seven>7</seven>
+ <eight>8</eight>
+ <nine>9</nine>
+ <zero>0</zero>
+ </remote>
+
+ <remote device="Streamzap_PC_Remote">
+ <play>PLAY</play>
+ <pause>PAUSE</pause>
+ <stop>STOP</stop>
+ <forward>&gt;&gt;</forward>
+ <reverse>&lt;&lt;</reverse>
+ <left>LEFT</left>
+ <right>RIGHT</right>
+ <up>UP</up>
+ <down>DOWN</down>
+ <pageplus>CH_UP</pageplus>
+ <pageminus>CH_DOWN</pageminus>
+ <select>OK</select>
+ <back>EXIT</back>
+ <menu>MENU</menu>
+ <title>RED</title>
+ <info>GREEN</info>
+ <skipplus>&gt;&gt;|</skipplus>
+ <display>YELLOW</display>
+ <record>RECORD</record>
+ <volumeplus>VOL_UP</volumeplus>
+ <volumeminus>VOL_DOWN</volumeminus>
+ <mute>MUTE</mute>
+ <power>POWER</power>
+ <one>1</one>
+ <two>2</two>
+ <three>3</three>
+ <four>4</four>
+ <five>5</five>
+ <six>6</six>
+ <seven>7</seven>
+ <eight>8</eight>
+ <nine>9</nine>
+ <zero>0</zero>
+ </remote>
+</lircmap>
diff --git a/abs/extra/xbmc/PKGBUILD b/abs/extra/xbmc/PKGBUILD
new file mode 100644
index 0000000..fc068d4
--- /dev/null
+++ b/abs/extra/xbmc/PKGBUILD
@@ -0,0 +1,116 @@
+# Contributor: [vEX] <niechift.dot.vex.at.gmail.dot.com>
+# Contributor: Zeqadious <zeqadious.at.gmail.dot.com>
+# Contributor: BlackEagle < ike DOT devolder AT herecura DOT be >
+
+# python dependency or not
+_ext_python="disable"
+
+pkgname=xbmc
+pkgver=9.11
+pkgrel=5
+pkgdesc="XBMC Media Center"
+arch=('i686' 'x86_64')
+url="http://xbmc.org"
+license=('GPL' 'custom')
+conflicts=('xbmc-svn')
+depends=('alsa-lib' 'curl' 'enca' 'faac' 'freetype2' 'fribidi' 'gawk' 'glew'
+ 'hal' 'jasper' 'libgl' 'libjpeg' 'libmad' 'libmysqlclient'
+ 'libxinerama' 'libxrandr' 'lzo2' 'sdl_image' 'sdl_mixer' 'sqlite3'
+ 'tre' 'unzip' 'x-server' 'libcdio' 'wavpack' 'libmpeg2' 'a52dec'
+ 'libdca' 'smbclient' 'faad2' 'libsamplerate' 'libmms' 'xorg-utils')
+if [ "$_ext_python" != "disable" ]; then
+ depends=( '${depends[@]}' 'python' )
+fi
+makedepends=('autoconf' 'automake' 'boost' 'cmake' 'gcc' 'gperf'
+ 'libtool>=2.2.6a-1' 'make' 'nasm' 'patch' 'pkgconfig' 'zip'
+ 'libvdpau')
+optdepends=('lirc: remote controller support'
+ 'smbclient: access windows shares'
+ 'unrar: access compressed files without unpacking them')
+install=${pkgname}.install
+options=(force)
+source=(http://downloads.sourceforge.net/project/xbmc/XBMC%20Source%20Code/Camelot%20-%20$pkgver/xbmc-${pkgver/_/-}.tar.gz
+ use_cdio_system_headers_on_non_win32.patch
+ FEH.sh
+ Lircmap.xml)
+
+build() {
+ cd "${srcdir}/xbmc-${pkgver/_/-}"
+ _xbmcprefix=/usr
+
+ patch -N -p1 -i ../use_cdio_system_headers_on_non_win32.patch || return 1
+ # fix lsb_release dependency
+ sed -i -e 's:/usr/bin/lsb_release -d:cat /etc/arch-release:' xbmc/utils/SystemInfo.cpp || return 1
+ # fix faulty declaration in DllLaoder wrapper
+ sed -i 's: ftell64: dll_ftell64:' xbmc/cores/DllLoader/exports/wrapper.c || return 1
+ # fix libjpeg7 delays
+ sed -i 's|cinfo.scale_denom = GetJpegScale();|cinfo.scale_denom = GetJpegScale(); cinfo.scale_num = 1;|' xbmc/lib/cximage-6.0/CxImage/ximajpg.cpp || return 1
+
+ if [ $NOEXTRACT -ne 1 ]; then
+ # Archlinux Branding by SVN_REV
+ export SVN_REV="-ARCH"
+
+ ./bootstrap
+ ./configure --prefix=${_xbmcprefix} \
+ --enable-vdpau \
+ --disable-pulse \
+ --disable-avahi \
+ --enable-external-liba52 \
+ --enable-external-libdts \
+ --enable-external-libmpeg2 \
+ --enable-external-libogg \
+ --enable-external-libwavpack \
+ --disable-external-libass \
+ --disable-external-ffmpeg \
+ --${_ext_python}-external-python \
+ --disable-debug || return 1
+ fi
+
+ make || return 1
+ make prefix=${pkgdir}${_xbmcprefix} install || return 1
+
+ # Fix the shell script
+ sed -i '3iexport SDL_AUDIODRIVER=alsa' ${pkgdir}${_xbmcprefix}/bin/xbmc
+
+ # if disabled external python install bash script and fix startup script
+ if [ "$_ext_python" = "disable" ]; then
+ install -Dm755 ${srcdir}/FEH.sh \
+ ${pkgdir}${_xbmcprefix}/share/xbmc/FEH.sh || return 1
+ sed -i -e "s/python \\${_xbmcprefix}\/share\/xbmc\/FEH.py \"\$@\"/\\${_xbmcprefix}\/share\/xbmc\/FEH.sh/g" ${pkgdir}${_xbmcprefix}/bin/xbmc || return 1
+ fi
+
+ # bin/xbmc lsb_release fix in xmbc startup script
+ sed -i -e 's/which lsb_release &> \/dev\/null/\[ -f \/etc\/arch-release ]/g' ${pkgdir}${_xbmcprefix}/bin/xbmc || return 1
+ sed -i -e "s/lsb_release -a 2> \/dev\/null | sed -e 's\/\^\/ \/'/cat \/etc\/arch-release/g" ${pkgdir}${_xbmcprefix}/bin/xbmc || return 1
+
+ # Menu item
+ install -Dm644 ${srcdir}/xbmc-${pkgver/_/-}/tools/Linux/xbmc.desktop \
+ ${pkgdir}/usr/share/applications/xbmc.desktop || return 1
+ install -Dm644 ${srcdir}/xbmc-${pkgver/_/-}/tools/Linux/xbmc.png \
+ ${pkgdir}/usr/share/pixmaps/xbmc.png || return 1
+
+ # XBMCTex
+ # install -Dm755 ${srcdir}/xbmc-${pkgver/_/-}/tools/XBMCTex/XBMCTex \
+ # ${pkgdir}${_xbmcprefix}/share/xbmc/tools/xbmctex || return 1
+
+ # License(s)
+ install -dm755 ${pkgdir}/usr/share/licenses/${pkgname}
+ for licensef in LICENSE.GPL README.linux copying.txt; do
+ mv ${pkgdir}${_xbmcprefix}/share/xbmc/${licensef} \
+ ${pkgdir}/usr/share/licenses/${pkgname} || return 1
+ done
+
+ # profile.d
+ mkdir -p $pkgdir/etc/profile.d/ && \
+ echo "export PATH=\$PATH:${_xbmcprefix}/bin" >$pkgdir/etc/profile.d/xbmc.sh && \
+ chmod 0755 $pkgdir/etc/profile.d/xbmc.sh || return 1
+
+ # fix .desktop
+ sed -i "s#Exec=xbmc#Exec=${_xbmcprefix}/bin/xbmc#" $pkgdir/usr/share/xsessions/XBMC.desktop $pkgdir/usr/share/applications/xbmc.desktop
+
+ # Use custom Lircmap to support StreamZap remote
+ cp ${srcdir}/Lircmap.xml ${pkgdir}${_xbmcprefix}/share/xbmc/system/Lircmap.xml
+}
+md5sums=('9a68ac1e2f44a54cc3803fcdb1265767'
+ '7b7403cdde791330b5ab70697d2054f2'
+ '0aa669eebaaf2a9f6e000e1f43869a7b')
diff --git a/abs/extra/xbmc/__changelog b/abs/extra/xbmc/__changelog
new file mode 100644
index 0000000..bbf1705
--- /dev/null
+++ b/abs/extra/xbmc/__changelog
@@ -0,0 +1 @@
+Added Lircmap.xml to PKGBUILD to support MCE2 and StreamZap remotes
diff --git a/abs/extra/xbmc/use_cdio_system_headers_on_non_win32.patch b/abs/extra/xbmc/use_cdio_system_headers_on_non_win32.patch
new file mode 100644
index 0000000..71f3885
--- /dev/null
+++ b/abs/extra/xbmc/use_cdio_system_headers_on_non_win32.patch
@@ -0,0 +1,130 @@
+diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
+index 9097519..9b6418d 100644
+--- a/xbmc/Application.cpp
++++ b/xbmc/Application.cpp
+@@ -236,7 +236,11 @@
+ #endif
+
+ #ifdef HAS_DVD_DRIVE
++#ifdef _WIN32
+ #include "lib/libcdio/logging.h"
++#else
++#include <cdio/logging.h>
++#endif
+ #endif
+
+ #ifdef HAS_HAL
+diff --git a/xbmc/FileSystem/Makefile b/xbmc/FileSystem/Makefile
+index 782d57a..1e524ed 100644
+--- a/xbmc/FileSystem/Makefile
++++ b/xbmc/FileSystem/Makefile
+@@ -1,5 +1,4 @@
+-INCLUDES=-I. -I../ -I../cores -I../linux -I../../guilib -I../lib/UnrarXLib -I../utils -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
+-INCLUDES+=-I../lib/libcdio/libcdio/include
++INCLUDES=-I. -I../ -I../cores -I../linux -I../../guilib -I../lib/UnrarXLib -I../utils -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I../lib
+
+ CXXFLAGS+=-D__STDC_FORMAT_MACROS \
+
+diff --git a/xbmc/FileSystem/cdioSupport.cpp b/xbmc/FileSystem/cdioSupport.cpp
+index 00e5fdd..21a0b67 100644
+--- a/xbmc/FileSystem/cdioSupport.cpp
++++ b/xbmc/FileSystem/cdioSupport.cpp
+@@ -26,7 +26,7 @@
+ #include "cdioSupport.h"
+ #include "utils/SingleLock.h"
+ #include "utils/log.h"
+-#ifndef _LINUX
++#ifdef _WIN32
+ #include "lib/libcdio/logging.h"
+ #include "lib/libcdio/util.h"
+ #include "lib/libcdio/mmc.h"
+diff --git a/xbmc/FileSystem/iso9660.cpp b/xbmc/FileSystem/iso9660.cpp
+index 6e1633f..58fbc50 100644
+--- a/xbmc/FileSystem/iso9660.cpp
++++ b/xbmc/FileSystem/iso9660.cpp
+@@ -44,7 +44,7 @@ ISO9660
+ #include "utils/CharsetConverter.h"
+
+ #include "DetectDVDType.h" // for MODE2_DATA_SIZE etc.
+-#ifdef _LINUX
++#ifndef _WIN32
+ #include <cdio/bytesex.h>
+ #else
+ #include "lib/libcdio/bytesex.h" // for from_723 & from_733
+diff --git a/xbmc/Makefile b/xbmc/Makefile
+index abfbdcb..f55381a 100644
+--- a/xbmc/Makefile
++++ b/xbmc/Makefile
+@@ -8,8 +8,6 @@ INCLUDES+=-Ilib/libUPnP/Platinum/Source/Core \
+ -Ilib/libUPnP/Neptune/Source/System/Posix \
+ -Ilib/libUPnP/Neptune/Source/Core
+
+-INCLUDES+=-Ilib/libcdio/libcdio/include
+-
+ SRCS=Application.cpp \
+ CueDocument.cpp \
+ GUISettings.cpp \
+diff --git a/xbmc/cdrip/CDDAReader.cpp b/xbmc/cdrip/CDDAReader.cpp
+index c8b37b2..e3e9c0b 100644
+--- a/xbmc/cdrip/CDDAReader.cpp
++++ b/xbmc/cdrip/CDDAReader.cpp
+@@ -24,7 +24,11 @@
+ #ifdef HAS_CDDA_RIPPER
+
+ #include "CDDAReader.h"
++#ifdef _WIN32
+ #include "lib/libcdio/cdio.h"
++#else
++#include <cdio/cdio.h>
++#endif
+ #include "utils/log.h"
+
+ #define SECTOR_COUNT 52
+diff --git a/xbmc/cores/paplayer/AC3CDDACodec.cpp b/xbmc/cores/paplayer/AC3CDDACodec.cpp
+index 20cded7..f2a077a 100644
+--- a/xbmc/cores/paplayer/AC3CDDACodec.cpp
++++ b/xbmc/cores/paplayer/AC3CDDACodec.cpp
+@@ -22,7 +22,11 @@
+ #include "system.h"
+ #include "AC3CDDACodec.h"
+ #ifdef HAS_AC3_CDDA_CODEC
++#ifdef _WIN32
+ #include "lib/libcdio/sector.h"
++#else
++#include <cdio/sector.h>
++#endif
+
+ AC3CDDACodec::AC3CDDACodec() : AC3Codec()
+ {
+diff --git a/xbmc/cores/paplayer/CDDAcodec.cpp b/xbmc/cores/paplayer/CDDAcodec.cpp
+index ca8f1be..42460dc 100644
+--- a/xbmc/cores/paplayer/CDDAcodec.cpp
++++ b/xbmc/cores/paplayer/CDDAcodec.cpp
+@@ -20,7 +20,11 @@
+ */
+
+ #include "CDDAcodec.h"
++#ifdef _WIN32
+ #include "lib/libcdio/sector.h"
++#else
++#include <cdio/sector.h>
++#endif
+
+ #define SECTOR_COUNT 55 // max. sectors that can be read at once
+ #define MAX_BUFFER_SIZE 2*SECTOR_COUNT*CDIO_CD_FRAMESIZE_RAW
+diff --git a/xbmc/cores/paplayer/DTSCDDACodec.cpp b/xbmc/cores/paplayer/DTSCDDACodec.cpp
+index e64cc2e..9bc46c6 100644
+--- a/xbmc/cores/paplayer/DTSCDDACodec.cpp
++++ b/xbmc/cores/paplayer/DTSCDDACodec.cpp
+@@ -22,7 +22,11 @@
+ #include "system.h"
+ #include "DTSCDDACodec.h"
+ #ifdef HAS_DTS_CODEC
++#ifdef _WIN32
+ #include "lib/libcdio/sector.h"
++#else
++#include <cdio/sector.h>
++#endif
+
+ DTSCDDACodec::DTSCDDACodec() : DTSCodec()
+ {
diff --git a/abs/extra/xbmc/xbmc.install b/abs/extra/xbmc/xbmc.install
new file mode 100644
index 0000000..eb4e9d4
--- /dev/null
+++ b/abs/extra/xbmc/xbmc.install
@@ -0,0 +1,7 @@
+post_install() {
+ echo ">> If XBMC won't start, but just segfaults, double check your X.Org config"
+ echo ">> so that your display depth is at least 24-bit. Eg: change "
+ echo ">> \"DefaultDepth 16\" under the \"Screen\" section so it says 24 instead"
+ echo ">> of 16."
+ /bin/true
+}