[Midnightbsd-cvs] mports: mports/multimedia: Add kaffeine, the kde mplayer based

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Thu Sep 25 11:57:30 EDT 2008


Log Message:
-----------
Add kaffeine, the kde mplayer based video/audio player

Modified Files:
--------------
    mports/multimedia:
        Makefile (r1.45 -> r1.46)

Added Files:
-----------
    mports/multimedia/kaffeine:
        Makefile (r1.1)
        distinfo (r1.1)
        pkg-descr (r1.1)
        pkg-plist (r1.1)
    mports/multimedia/kaffeine/files:
        audio.h (r1.1)
        ca.h (r1.1)
        dmx.h (r1.1)
        frontend.h (r1.1)
        net.h (r1.1)
        patch-dvbsection.cpp (r1.1)
        patch-kaffeine-mimetypes-application-Makefile.in (r1.1)
        patch-kaffeine-src-kaffeine.cpp (r1.1)
        patch-raaf-dvb (r1.1)
        video.h (r1.1)

-------------- next part --------------
Index: Makefile
===================================================================
RCS file: /home/cvs/mports/multimedia/Makefile,v
retrieving revision 1.45
retrieving revision 1.46
diff -L multimedia/Makefile -L multimedia/Makefile -u -r1.45 -r1.46
--- multimedia/Makefile
+++ multimedia/Makefile
@@ -21,6 +21,7 @@
     SUBDIR += gstreamer-plugins-theora
     SUBDIR += gstreamer-plugins-ugly
     SUBDIR += gstreamer-plugins-xvid
+    SUBDIR += kaffeine
     SUBDIR += libdca
     SUBDIR += libdts
     SUBDIR += libdv
--- /dev/null
+++ multimedia/kaffeine/pkg-descr
@@ -0,0 +1,12 @@
+kaffeine is a xine-based multimedia player for KDE.
+
+* Full Drag and Drop support
+* Import Noatun-playlists as well as M3U, ASX and PLS-Files
+* Editable Playlist
+* Export Playlist to HTML or PDF (KDE-Print)
+* Edit Xine-Options via GUI
+* Support for saving screenshots as PNG, BMP or XBM
+* The ability to prevent the screensaver from activating OSD Titles
+
+Author:	Juergen Kofler <kaffeine at gmx.net>
+WWW:	http://kaffeine.sourceforge.net/
--- /dev/null
+++ multimedia/kaffeine/pkg-plist
@@ -0,0 +1,163 @@
+ at comment $MidnightBSD: mports/multimedia/kaffeine/pkg-plist,v 1.1 2008/09/25 15:57:27 laffer1 Exp $
+bin/kaffeine
+include/kaffeine/kaffeineaudioencoder.h
+include/kaffeine/mrl.h
+include/kaffeine/kaffeinepart.h
+include/kaffeine/xine_part.h
+include/kaffeine/xine_part_iface.h
+include/kaffeine/kaffeinedvbevents.h
+include/kaffeine/kaffeinedvbplugin.h
+include/kaffeine/kaffeinedvbsection.h
+%%NOGSTREAMER%%lib/kde3/libgstreamerpart.a
+%%NOGSTREAMER%%lib/kde3/libgstreamerpart.so
+%%NOGSTREAMER%%lib/kde3/libgstreamerpart.la
+%%NOLAME%%lib/kde3/libkaffeinemp3lame.a
+%%NOLAME%%lib/kde3/libkaffeinemp3lame.la
+%%NOLAME%%lib/kde3/libkaffeinemp3lame.so
+lib/kde3/libkaffeineoggvorbis.a
+lib/kde3/libkaffeineoggvorbis.la
+lib/kde3/libkaffeineoggvorbis.so
+lib/libkaffeineaudioencoder.a
+lib/libkaffeineaudioencoder.la
+lib/libkaffeineaudioencoder.so
+lib/libkaffeineaudioencoder.so.0
+lib/libkaffeineepgplugin.so.0
+lib/libkaffeineepgplugin.so
+lib/libkaffeineepgplugin.la
+lib/libkaffeineepgplugin.a
+lib/libkaffeinepart.so
+lib/libkaffeinepart.la
+lib/libkaffeinepart.a
+lib/libkaffeinedvbplugin.so.0
+lib/libkaffeinedvbplugin.so
+lib/libkaffeinedvbplugin.la
+lib/libkaffeinedvbplugin.a
+lib/kde3/libxinepart.so
+lib/kde3/libxinepart.la
+lib/kde3/libxinepart.a
+share/applications/kde/kaffeine.desktop
+%%NOGSTREAMER%%share/apps/gstreamerpart/gstreamer_part.rc
+share/apps/kaffeine/kaffeinedisc.rc
+share/apps/kaffeine/kaffeineplaylist.rc
+share/apps/kaffeine/kaffeineui.rc
+share/apps/kaffeine/nocover.png
+share/apps/kaffeine/logo
+share/apps/kaffeine/logo.mpg
+share/apps/kaffeine/logo.avi
+share/apps/kaffeine/mms.protocol
+share/apps/kaffeine/rtsp.protocol
+share/apps/kaffeine/dvbdata.tar.gz
+share/apps/kaffeine/xine_part.rc
+share/apps/kaffeine/pics/playing.png
+share/apps/kaffeine/kaffeinedvb.rc
+share/apps/konqueror/servicemenus/kaffeine_open_directory.desktop
+share/apps/konqueror/servicemenus/kaffeine_append_file.desktop
+share/apps/konqueror/servicemenus/kaffeine_play_audiocd.desktop
+share/apps/konqueror/servicemenus/kaffeine_play_dvd.desktop
+share/apps/konqueror/servicemenus/kaffeine_play_vcd.desktop
+share/apps/profiles/kaffeine.profile.xml
+share/doc/HTML/en/kaffeine/startwindow.png
+share/doc/HTML/en/kaffeine/kaffeinepart.png
+share/doc/HTML/en/kaffeine/playlistwin.png
+share/doc/HTML/en/kaffeine/index.docbook
+share/doc/HTML/en/kaffeine/index.cache.bz2
+share/doc/HTML/en/kaffeine/common
+share/doc/HTML/en/kaffeine/discwindow.png
+share/doc/HTML/en/kaffeine/dvbbroadcast.png
+share/doc/HTML/en/kaffeine/dvbclient.png
+share/doc/HTML/en/kaffeine/dvbwin.png
+share/doc/HTML/en/kaffeine/dvblive.jpg
+share/doc/HTML/en/kaffeine/dvbscan.png
+share/doc/HTML/en/kaffeine/dvbepg.png
+share/doc/HTML/en/kaffeine/dvbconfig.png
+share/doc/HTML/en/kaffeine/dvbtimers.png
+share/doc/HTML/en/kaffeine/gstpart.png
+share/icons/hicolor/128x128/apps/kaffeine.png
+%%NOGSTREAMER%%share/icons/hicolor/16x16/apps/gstreamer.png
+share/icons/hicolor/16x16/apps/kaffeine.png
+share/icons/hicolor/16x16/apps/kdvbra.png
+share/icons/hicolor/16x16/apps/kdvbrac.png
+share/icons/hicolor/16x16/apps/kdvbtv.png
+share/icons/hicolor/16x16/apps/kdvbtvc.png
+share/icons/hicolor/16x16/apps/kilogram.png
+share/icons/hicolor/16x16/mimetypes/mime_kaffeine.png
+share/icons/hicolor/16x16/actions/player_mute.png
+share/icons/hicolor/16x16/actions/player_record.png
+share/icons/hicolor/22x22/apps/kaffeine.png
+share/icons/hicolor/22x22/apps/kilogram.png
+share/icons/hicolor/22x22/actions/player_mute.png
+share/icons/hicolor/22x22/actions/player_record.png
+share/icons/hicolor/32x32/actions/player_mute.png
+share/icons/hicolor/32x32/actions/player_record.png
+share/icons/hicolor/32x32/apps/kaffeine-pause.png
+share/icons/hicolor/32x32/apps/kaffeine-play.png
+share/icons/hicolor/32x32/apps/kaffeine-record.png
+share/icons/hicolor/32x32/apps/kaffeine.png
+share/icons/hicolor/32x32/apps/kilogram.png
+share/icons/hicolor/32x32/mimetypes/mime_kaffeine.png
+share/icons/hicolor/48x48/apps/kaffeine.png
+share/icons/hicolor/48x48/mimetypes/mime_kaffeine.png
+share/icons/hicolor/64x64/apps/kaffeine.png
+share/locale/bg/LC_MESSAGES/kaffeine.mo
+share/locale/bn/LC_MESSAGES/kaffeine.mo
+share/locale/br/LC_MESSAGES/kaffeine.mo
+share/locale/ca/LC_MESSAGES/kaffeine.mo
+share/locale/cs/LC_MESSAGES/kaffeine.mo
+share/locale/da/LC_MESSAGES/kaffeine.mo
+share/locale/de/LC_MESSAGES/kaffeine.mo
+share/locale/el/LC_MESSAGES/kaffeine.mo
+share/locale/es/LC_MESSAGES/kaffeine.mo
+share/locale/fi/LC_MESSAGES/kaffeine.mo
+share/locale/fr/LC_MESSAGES/kaffeine.mo
+share/locale/ga/LC_MESSAGES/kaffeine.mo
+share/locale/gl/LC_MESSAGES/kaffeine.mo
+share/locale/he/LC_MESSAGES/kaffeine.mo
+share/locale/hu/LC_MESSAGES/kaffeine.mo
+share/locale/it/LC_MESSAGES/kaffeine.mo
+share/locale/ja/LC_MESSAGES/kaffeine.mo
+share/locale/lt/LC_MESSAGES/kaffeine.mo
+share/locale/mk/LC_MESSAGES/kaffeine.mo
+share/locale/nb/LC_MESSAGES/kaffeine.mo
+share/locale/nn/LC_MESSAGES/kaffeine.mo
+share/locale/nl/LC_MESSAGES/kaffeine.mo
+share/locale/pa/LC_MESSAGES/kaffeine.mo
+share/locale/pl/LC_MESSAGES/kaffeine.mo
+share/locale/pt/LC_MESSAGES/kaffeine.mo
+share/locale/pt_BR/LC_MESSAGES/kaffeine.mo
+share/locale/ru/LC_MESSAGES/kaffeine.mo
+share/locale/sk/LC_MESSAGES/kaffeine.mo
+share/locale/sr/LC_MESSAGES/kaffeine.mo
+share/locale/sr at Latn/LC_MESSAGES/kaffeine.mo
+share/locale/sv/LC_MESSAGES/kaffeine.mo
+share/locale/tr/LC_MESSAGES/kaffeine.mo
+share/locale/uk/LC_MESSAGES/kaffeine.mo
+share/locale/uz/LC_MESSAGES/kaffeine.mo
+share/locale/zh_CN/LC_MESSAGES/kaffeine.mo
+share/locale/et/LC_MESSAGES/kaffeine.mo
+share/locale/zh_TW/LC_MESSAGES/kaffeine.mo
+share/locale/ar/LC_MESSAGES/kaffeine.mo
+share/locale/ka/LC_MESSAGES/kaffeine.mo
+share/locale/km/LC_MESSAGES/kaffeine.mo
+share/locale/se/LC_MESSAGES/kaffeine.mo
+share/locale/tg/LC_MESSAGES/kaffeine.mo
+share/mimelnk/application/x-kaffeine.desktop
+%%NOGSTREAMER%%share/services/gstreamer_part.desktop
+%%NOLAME%%share/services/kaffeinemp3lame.desktop
+share/services/kaffeineoggvorbis.desktop
+share/services/xine_part.desktop
+share/servicetypes/kaffeineaudioencoder.desktop
+share/servicetypes/kaffeinedvbplugin.desktop
+share/servicetypes/kaffeineepgplugin.desktop
+ at dirrm include/kaffeine
+ at dirrm share/apps/kaffeine/pics
+ at dirrm share/apps/kaffeine
+ at dirrm share/doc/HTML/en/kaffeine
+ at dirrmtry share/apps/konqueror/servicemenus
+ at dirrmtry share/apps/konqueror
+ at dirrmtry share/locale/km/LC_MESSAGES
+ at dirrmtry share/locale/km
+ at dirrmtry share/locale/tg/LC_MESSAGES
+ at dirrmtry share/locale/tg
+ at dirrmtry share/locale/se/LC_MESSAGES
+ at dirrmtry share/locale/se
+%%NOGSTREAMER%%@dirrm share/apps/gstreamerpart
--- /dev/null
+++ multimedia/kaffeine/Makefile
@@ -0,0 +1,62 @@
+# New ports collection makefile for:	kaffeine
+# Date created:				Sept 25, 2008
+# Whom:					laffer1
+#
+# $MidnightBSD: mports/multimedia/kaffeine/Makefile,v 1.1 2008/09/25 15:57:27 laffer1 Exp $
+
+PORTNAME=	kaffeine
+PORTVERSION=	0.8.7
+CATEGORIES=	multimedia kde
+MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
+MASTER_SITE_SUBDIR=	kaffeine
+
+MAINTAINER=	ports at MidnightBSD.org
+COMMENT=	A xine-base multimedia player
+LICENSE=	gpl2
+
+LIB_DEPENDS=	xine.1:${PORTSDIR}/multimedia/libxine \
+		cdda_paranoia.0:${PORTSDIR}/audio/cdparanoia \
+		xcb.1:${PORTSDIR}/x11/libxcb
+
+USE_BZIP2=		yes
+USE_KDELIBS_VER=	3
+USE_GMAKE=		yes
+USE_GETTEXT=		yes
+USE_LDCONFIG=		yes
+USE_AUTOTOOLS=		libtool:15
+CONFIGURE_ENV=		CXXFLAGS="${CFLAGS} -I${WRKSRC}" CFLAGS="${CFLAGS} -I${WRKSRC}"
+DVB_HEADERS=		ca.h dmx.h frontend.h net.h audio.h video.h
+
+.ifdef (WITH_GSTREAMER)
+USE_GSTREAMER=		yes
+PLIST_SUB+=		NOGSTREAMER=""
+.else
+PLIST_SUB+=		NOGSTREAMER="@comment "
+.endif
+.ifdef (WITH_LAME)
+LIB_DEPENDS+=	mp3lame.0:${PORTSDIR}/audio/lame
+PLIST_SUB+=	NOLAME=""
+.else
+CONFIGURE_ARGS+=	--without-lame
+PLIST_SUB+=	NOLAME="@comment "
+.endif
+
+.include <bsd.port.pre.mk>
+
+.ifndef (WITH_GSTREAMER)
+CONFIGURE_ARGS+=	--without-gstreamer
+.endif
+
+post-patch:
+	${REINPLACE_CMD} -e "s,xx,," ${WRKSRC}/po/Makefile.in
+	${REINPLACE_CMD} "s,#include <endian.h>,," \
+		${WRKSRC}/kaffeine/src/input/disc/paranoia.cpp
+	${REINPLACE_CMD} "s,#include <linux/types.h>,," \
+		${WRKSRC}/kaffeine/src/input/dvb/lib/libdvbapi/dvbvideo.c
+	${MKDIR} ${WRKSRC}/linux/dvb
+	cd ${FILESDIR}; ${CP} ${DVB_HEADERS} ${WRKSRC}/linux/dvb
+	${REINPLACE_CMD} -e "s,^LIBTOOL=,#LIBTOOL=,; \
+			s,-0.8.6,," ${WRKSRC}/configure
+	${TOUCH} -t 200401230000 ${WRKSRC}/admin/acinclude.m4.in
+
+.include <bsd.port.post.mk>
--- /dev/null
+++ multimedia/kaffeine/distinfo
@@ -0,0 +1,3 @@
+MD5 (kaffeine-0.8.7.tar.bz2) = 3ce644c3c5a9583e9df7187f2cf1d8de
+SHA256 (kaffeine-0.8.7.tar.bz2) = fb65306f04138a990b2a66a3709e3038e7eb7e3254af09f21a4e7075ec949e1d
+SIZE (kaffeine-0.8.7.tar.bz2) = 2973819
--- /dev/null
+++ multimedia/kaffeine/files/patch-kaffeine-mimetypes-application-Makefile.in
@@ -0,0 +1,20 @@
+--- kaffeine/mimetypes/application/Makefile.in.orig	Wed Sep 27 16:44:00 2006
++++ kaffeine/mimetypes/application/Makefile.in	Wed Sep 27 16:44:21 2006
+@@ -337,7 +337,7 @@
+ xdg_appsdir = @xdg_appsdir@
+ xdg_directorydir = @xdg_directorydir@
+ xdg_menudir = @xdg_menudir@
+-mime_DATA = x-kaffeine.desktop x-mplayer2.desktop
++mime_DATA = x-kaffeine.desktop
+ mimedir = $(kde_mimedir)/application
+ EXTRA_DIST = $(mime_DATA)
+ #>- all: all-am
+@@ -544,7 +544,7 @@
+ .NOEXPORT:
+ 
+ #>+ 2
+-KDE_DIST=x-kaffeine.desktop x-mplayer2.desktop Makefile.in Makefile.am 
++KDE_DIST=x-kaffeine.desktop Makefile.in Makefile.am 
+ 
+ #>+ 2
+ docs-am:
--- /dev/null
+++ multimedia/kaffeine/files/net.h
@@ -0,0 +1,60 @@
+/* 
+ * net.h
+ *
+ * Copyright (C) 2000 Marcus Metzler <marcus at convergence.de>
+ *                  & Ralph  Metzler <ralph at convergence.de>
+                      for convergence integrated media GmbH
+ *
+ * This program 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ */
+
+#ifndef _DVBNET_H_
+#define _DVBNET_H_
+
+#ifndef LINUX_TYPES_ADDED
+#define LINUX_TYPES_ADDED
+#include <sys/types.h>
+typedef uint64_t __u64;
+typedef uint32_t __u32;
+typedef uint16_t __u16;
+typedef uint8_t __u8;
+#endif
+
+
+struct dvb_net_if {
+	__u16 pid;
+	__u16 if_num;
+	__u8 feedtype;
+#define DVB_NET_FEEDTYPE_MPE 0	/* multi protocol encapsulation */
+#define DVB_NET_FEEDTYPE_ULE 1	/* ultra lightweight encapsulation */
+};
+
+
+#define NET_ADD_IF                 _IOWR('o', 52, struct dvb_net_if)
+#define NET_REMOVE_IF              _IO('o', 53)
+#define NET_GET_IF                 _IOWR('o', 54, struct dvb_net_if)
+
+
+/* binary compatibility cruft: */
+struct __dvb_net_if_old {
+	__u16 pid;
+	__u16 if_num;
+};
+#define __NET_ADD_IF_OLD _IOWR('o', 52, struct __dvb_net_if_old)
+#define __NET_GET_IF_OLD _IOWR('o', 54, struct __dvb_net_if_old)
+
+
+#endif /*_DVBNET_H_*/
--- /dev/null
+++ multimedia/kaffeine/files/patch-kaffeine-src-kaffeine.cpp
@@ -0,0 +1,10 @@
+--- kaffeine/src/kaffeine.cpp.orig	Fri Dec  1 19:17:37 2006
++++ kaffeine/src/kaffeine.cpp	Fri Dec  1 19:18:01 2006
+@@ -26,6 +26,7 @@
+ #include "kaffeine.h"
+ 
+ #include <dcopref.h>
++#include <kapplication.h>
+ #include <kkeydialog.h>
+ #include <kfiledialog.h>
+ #include <kdirselectdialog.h>
--- /dev/null
+++ multimedia/kaffeine/files/audio.h
@@ -0,0 +1,133 @@
+/*
+ * audio.h
+ *
+ * Copyright (C) 2000 Ralph  Metzler <ralph at convergence.de>
+ *                  & Marcus Metzler <marcus at convergence.de>
+ *                    for convergence integrated media GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Lesser Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ */
+
+#ifndef _DVBAUDIO_H_
+#define _DVBAUDIO_H_
+
+#include <sys/types.h>
+
+
+typedef enum {
+	AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */
+	AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */
+} audio_stream_source_t;
+
+
+typedef enum {
+	AUDIO_STOPPED,      /* Device is stopped */
+	AUDIO_PLAYING,      /* Device is currently playing */
+	AUDIO_PAUSED        /* Device is paused */
+} audio_play_state_t;
+
+
+typedef enum {
+	AUDIO_STEREO,
+	AUDIO_MONO_LEFT,
+	AUDIO_MONO_RIGHT
+} audio_channel_select_t;
+
+
+typedef struct audio_mixer {
+	unsigned int volume_left;
+	unsigned int volume_right;
+  // what else do we need? bass, pass-through, ...
+} audio_mixer_t;
+
+
+typedef struct audio_status {
+	int                    AV_sync_state;  /* sync audio and video? */
+	int                    mute_state;     /* audio is muted */
+	audio_play_state_t     play_state;     /* current playback state */
+	audio_stream_source_t  stream_source;  /* current stream source */
+	audio_channel_select_t channel_select; /* currently selected channel */
+	int                    bypass_mode;    /* pass on audio data to */
+	audio_mixer_t	       mixer_state;    /* current mixer state */
+} audio_status_t;                              /* separate decoder hardware */
+
+
+typedef
+struct audio_karaoke{  /* if Vocal1 or Vocal2 are non-zero, they get mixed  */
+	int vocal1;    /* into left and right t at 70% each */
+	int vocal2;    /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/
+	int melody;    /* mixed into the left channel and */
+		       /* Vocal2 into the right channel at 100% each. */
+		       /* if Melody is non-zero, the melody channel gets mixed*/
+} audio_karaoke_t;     /* into left and right  */
+
+
+typedef uint16_t audio_attributes_t;
+/*   bits: descr. */
+/*   15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, */
+/*   12    multichannel extension */
+/*   11-10 audio type (0=not spec, 1=language included) */
+/*    9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround) */
+/*    7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit,  */
+/*    5- 4 Sample frequency fs (0=48kHz, 1=96kHz) */
+/*    2- 0 number of audio channels (n+1 channels) */
+
+
+/* for GET_CAPABILITIES and SET_FORMAT, the latter should only set one bit */
+#define AUDIO_CAP_DTS    1
+#define AUDIO_CAP_LPCM   2
+#define AUDIO_CAP_MP1    4
+#define AUDIO_CAP_MP2    8
+#define AUDIO_CAP_MP3   16
+#define AUDIO_CAP_AAC   32
+#define AUDIO_CAP_OGG   64
+#define AUDIO_CAP_SDDS 128
+#define AUDIO_CAP_AC3  256
+
+#define AUDIO_STOP                 _IO('o', 1)
+#define AUDIO_PLAY                 _IO('o', 2)
+#define AUDIO_PAUSE                _IO('o', 3)
+#define AUDIO_CONTINUE             _IO('o', 4)
+#define AUDIO_SELECT_SOURCE        _IO('o', 5)
+#define AUDIO_SET_MUTE             _IO('o', 6)
+#define AUDIO_SET_AV_SYNC          _IO('o', 7)
+#define AUDIO_SET_BYPASS_MODE      _IO('o', 8)
+#define AUDIO_CHANNEL_SELECT       _IO('o', 9)
+#define AUDIO_GET_STATUS           _IOR('o', 10, audio_status_t)
+
+#define AUDIO_GET_CAPABILITIES     _IOR('o', 11, unsigned int)
+#define AUDIO_CLEAR_BUFFER         _IO('o',  12)
+#define AUDIO_SET_ID               _IO('o', 13)
+#define AUDIO_SET_MIXER            _IOW('o', 14, audio_mixer_t)
+#define AUDIO_SET_STREAMTYPE       _IO('o', 15)
+#define AUDIO_SET_EXT_ID           _IO('o', 16)
+#define AUDIO_SET_ATTRIBUTES       _IOW('o', 17, audio_attributes_t)
+#define AUDIO_SET_KARAOKE          _IOW('o', 18, audio_karaoke_t)
+
+/**
+ * AUDIO_GET_PTS
+ *
+ * Read the 33 bit presentation time stamp as defined
+ * in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
+ *
+ * The PTS should belong to the currently played
+ * frame if possible, but may also be a value close to it
+ * like the PTS of the last decoded frame or the last PTS
+ * extracted by the PES parser.
+ */
+#define AUDIO_GET_PTS              _IOR('o', 19, __u64)
+
+#endif /* _DVBAUDIO_H_ */
--- /dev/null
+++ multimedia/kaffeine/files/video.h
@@ -0,0 +1,195 @@
+/* 
+ * video.h
+ *
+ * Copyright (C) 2000 Marcus Metzler <marcus at convergence.de>
+ *                  & Ralph  Metzler <ralph at convergence.de>
+                      for convergence integrated media GmbH
+ *
+ * This program 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ */
+
+#ifndef _DVBVIDEO_H_
+#define _DVBVIDEO_H_
+
+#include <sys/types.h>
+#include <time.h>
+
+
+typedef enum {
+	VIDEO_FORMAT_4_3,     /* Select 4:3 format */
+        VIDEO_FORMAT_16_9,    /* Select 16:9 format. */
+	VIDEO_FORMAT_221_1    /* 2.21:1 */
+} video_format_t;
+
+
+typedef enum {
+	 VIDEO_SYSTEM_PAL, 
+	 VIDEO_SYSTEM_NTSC, 
+	 VIDEO_SYSTEM_PALN, 
+	 VIDEO_SYSTEM_PALNc, 
+	 VIDEO_SYSTEM_PALM, 
+	 VIDEO_SYSTEM_NTSC60, 
+	 VIDEO_SYSTEM_PAL60,
+	 VIDEO_SYSTEM_PALM60
+} video_system_t;
+
+
+typedef enum {   
+        VIDEO_PAN_SCAN,       /* use pan and scan format */
+	VIDEO_LETTER_BOX,     /* use letterbox format */
+	VIDEO_CENTER_CUT_OUT  /* use center cut out format */
+} video_displayformat_t;
+
+typedef struct {
+	int w;
+	int h;
+	video_format_t aspect_ratio;
+} video_size_t;
+
+typedef enum {
+        VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */ 
+	VIDEO_SOURCE_MEMORY /* If this source is selected, the stream 
+			       comes from the user through the write 
+			       system call */ 
+} video_stream_source_t;
+
+
+typedef enum {
+	VIDEO_STOPPED, /* Video is stopped */ 
+        VIDEO_PLAYING, /* Video is currently playing */ 
+	VIDEO_FREEZED  /* Video is freezed */ 
+} video_play_state_t; 
+
+
+struct video_event { 
+        int32_t type; 
+#define VIDEO_EVENT_SIZE_CHANGED 1
+        time_t timestamp;
+	union {
+	        video_size_t size;
+	} u;
+};
+
+
+struct video_status { 
+        int                   video_blank;   /* blank video on freeze? */
+        video_play_state_t    play_state;    /* current state of playback */  
+        video_stream_source_t stream_source; /* current source (demux/memory) */
+        video_format_t        video_format;  /* current aspect ratio of stream*/
+        video_displayformat_t display_format;/* selected cropping mode */
+};
+
+
+struct video_still_picture {
+        char *iFrame;        /* pointer to a single iframe in memory */
+        int32_t size; 
+};
+
+
+typedef 
+struct video_highlight {
+	int     active;      /*    1=show highlight, 0=hide highlight */
+	uint8_t contrast1;   /*    7- 4  Pattern pixel contrast */
+                             /*    3- 0  Background pixel contrast */
+	uint8_t contrast2;   /*    7- 4  Emphasis pixel-2 contrast */
+                             /*    3- 0  Emphasis pixel-1 contrast */
+	uint8_t color1;      /*    7- 4  Pattern pixel color */
+                             /*    3- 0  Background pixel color */
+	uint8_t color2;      /*    7- 4  Emphasis pixel-2 color */
+                             /*    3- 0  Emphasis pixel-1 color */
+ 	uint32_t ypos;       /*   23-22  auto action mode */
+                             /*   21-12  start y */
+                             /*    9- 0  end y */
+	uint32_t xpos;       /*   23-22  button color number */
+                             /*   21-12  start x */
+                             /*    9- 0  end x */
+} video_highlight_t;
+
+
+typedef struct video_spu {
+	int active;
+	int stream_id;
+} video_spu_t;
+
+
+typedef struct video_spu_palette {      /* SPU Palette information */
+	int length;
+	uint8_t *palette;
+} video_spu_palette_t;
+
+
+typedef struct video_navi_pack {
+	int length;          /* 0 ... 1024 */
+	uint8_t data[1024];
+} video_navi_pack_t;
+
+
+typedef uint16_t video_attributes_t;
+/*   bits: descr. */
+/*   15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */
+/*   13-12 TV system (0=525/60, 1=625/50) */
+/*   11-10 Aspect ratio (0=4:3, 3=16:9) */
+/*    9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-sca */
+/*    7    line 21-1 data present in GOP (1=yes, 0=no) */
+/*    6    line 21-2 data present in GOP (1=yes, 0=no) */
+/*    5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 */
+/*    2    source letterboxed (1=yes, 0=no) */
+/*    0    film/camera mode (0=camera, 1=film (625/50 only)) */
+
+
+/* bit definitions for capabilities: */
+/* can the hardware decode MPEG1 and/or MPEG2? */
+#define VIDEO_CAP_MPEG1   1 
+#define VIDEO_CAP_MPEG2   2
+/* can you send a system and/or program stream to video device?
+   (you still have to open the video and the audio device but only 
+    send the stream to the video device) */
+#define VIDEO_CAP_SYS     4
+#define VIDEO_CAP_PROG    8
+/* can the driver also handle SPU, NAVI and CSS encoded data? 
+   (CSS API is not present yet) */
+#define VIDEO_CAP_SPU    16
+#define VIDEO_CAP_NAVI   32
+#define VIDEO_CAP_CSS    64
+
+
+#define VIDEO_STOP                 _IO('o', 21) 
+#define VIDEO_PLAY                 _IO('o', 22)
+#define VIDEO_FREEZE               _IO('o', 23)
+#define VIDEO_CONTINUE             _IO('o', 24)
+#define VIDEO_SELECT_SOURCE        _IO('o', 25)
+#define VIDEO_SET_BLANK            _IO('o', 26)
+#define VIDEO_GET_STATUS           _IOR('o', 27, struct video_status)
+#define VIDEO_GET_EVENT            _IOR('o', 28, struct video_event)
+#define VIDEO_SET_DISPLAY_FORMAT   _IO('o', 29)
+#define VIDEO_STILLPICTURE         _IOW('o', 30, struct video_still_picture)
+#define VIDEO_FAST_FORWARD         _IO('o', 31)
+#define VIDEO_SLOWMOTION           _IO('o', 32)
+#define VIDEO_GET_CAPABILITIES     _IOR('o', 33, unsigned int)
+#define VIDEO_CLEAR_BUFFER         _IO('o',  34)
+#define VIDEO_SET_ID               _IO('o', 35)
+#define VIDEO_SET_STREAMTYPE       _IO('o', 36)
+#define VIDEO_SET_FORMAT           _IO('o', 37)
+#define VIDEO_SET_SYSTEM           _IO('o', 38)
+#define VIDEO_SET_HIGHLIGHT        _IOW('o', 39, video_highlight_t)
+#define VIDEO_SET_SPU              _IOW('o', 50, video_spu_t)
+#define VIDEO_SET_SPU_PALETTE      _IOW('o', 51, video_spu_palette_t)
+#define VIDEO_GET_NAVI             _IOR('o', 52, video_navi_pack_t)
+#define VIDEO_SET_ATTRIBUTES       _IO('o', 53)
+#define VIDEO_GET_SIZE             _IOR('o', 55, video_size_t)
+
+#endif /*_DVBVIDEO_H_*/
+
--- /dev/null
+++ multimedia/kaffeine/files/patch-dvbsection.cpp
@@ -0,0 +1,22 @@
+--- kaffeine/src/input/dvb/plugins/epg/kaffeinedvbsection.cpp.orig	2008-01-30 22:22:36.000000000 +0100
++++ kaffeine/src/input/dvb/plugins/epg/kaffeinedvbsection.cpp	2008-01-30 22:26:23.000000000 +0100
+@@ -134,7 +134,8 @@
+ bool KaffeineDVBsection::doIconv( QCString &s, QCString table, char *buffer, int buflen )
+ {
+ 	size_t inSize, outSize=buflen;
+-	char *inBuf, *outBuf;
++	const char *inBuf;
++	char *outBuf;
+ 	iconv_t cd;
+ 
+ 	inSize = s.length();
+@@ -230,7 +231,8 @@
+ 	char c[4];
+ 	QString s;
+ 
+-	memset( mempcpy( c, buf+2, 3 ), 0, 1 );
++	memcpy(c,buf+2,3);
++	c[3] = 0;
+ 	s = c;
+ 	return s;
+ }
--- /dev/null
+++ multimedia/kaffeine/files/dmx.h
@@ -0,0 +1,184 @@
+/* 
+ * dmx.h
+ *
+ * Copyright (C) 2000 Marcus Metzler <marcus at convergence.de>
+ *                  & Ralph  Metzler <ralph at convergence.de>
+                      for convergence integrated media GmbH
+ *
+ * This program 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ */
+
+#ifndef _DVBDMX_H_
+#define _DVBDMX_H_
+
+#ifndef LINUX_TYPES_ADDED
+#define LINUX_TYPES_ADDED
+#include <sys/types.h>
+typedef uint64_t __u64;
+typedef uint32_t __u32;
+typedef uint16_t __u16;
+typedef uint8_t __u8;
+#endif
+
+#include <time.h>
+
+#define DMX_FILTER_SIZE 16
+
+typedef enum
+{
+	DMX_OUT_DECODER, /* Streaming directly to decoder. */
+	DMX_OUT_TAP,     /* Output going to a memory buffer */
+	                 /* (to be retrieved via the read command).*/
+	DMX_OUT_TS_TAP   /* Output multiplexed into a new TS  */
+	                 /* (to be retrieved by reading from the */
+	                 /* logical DVR device).                 */
+} dmx_output_t;
+
+
+typedef enum
+{
+	DMX_IN_FRONTEND, /* Input from a front-end device.  */
+	DMX_IN_DVR       /* Input from the logical DVR device.  */
+} dmx_input_t;
+
+
+typedef enum
+{
+        DMX_PES_AUDIO0,
+	DMX_PES_VIDEO0,
+	DMX_PES_TELETEXT0,
+	DMX_PES_SUBTITLE0,
+	DMX_PES_PCR0,
+
+        DMX_PES_AUDIO1,
+	DMX_PES_VIDEO1,
+	DMX_PES_TELETEXT1,
+	DMX_PES_SUBTITLE1,
+	DMX_PES_PCR1,
+
+        DMX_PES_AUDIO2,
+	DMX_PES_VIDEO2,
+	DMX_PES_TELETEXT2,
+	DMX_PES_SUBTITLE2,
+	DMX_PES_PCR2,
+
+        DMX_PES_AUDIO3,
+	DMX_PES_VIDEO3,
+	DMX_PES_TELETEXT3,
+	DMX_PES_SUBTITLE3,
+	DMX_PES_PCR3,
+
+	DMX_PES_OTHER
+} dmx_pes_type_t;
+
+#define DMX_PES_AUDIO    DMX_PES_AUDIO0
+#define DMX_PES_VIDEO    DMX_PES_VIDEO0
+#define DMX_PES_TELETEXT DMX_PES_TELETEXT0
+#define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0
+#define DMX_PES_PCR      DMX_PES_PCR0
+
+
+typedef enum
+{
+        DMX_SCRAMBLING_EV,
+        DMX_FRONTEND_EV
+} dmx_event_t;
+
+
+typedef enum
+{
+	DMX_SCRAMBLING_OFF,
+	DMX_SCRAMBLING_ON
+} dmx_scrambling_status_t;
+
+
+typedef struct dmx_filter
+{
+	__u8  filter[DMX_FILTER_SIZE];
+	__u8  mask[DMX_FILTER_SIZE];
+	__u8  mode[DMX_FILTER_SIZE];
+} dmx_filter_t;
+
+
+struct dmx_sct_filter_params
+{
+	__u16            pid;
+	dmx_filter_t        filter;
+	__u32            timeout;
+	__u32            flags;
+#define DMX_CHECK_CRC       1
+#define DMX_ONESHOT         2
+#define DMX_IMMEDIATE_START 4
+#define DMX_KERNEL_CLIENT   0x8000
+};
+
+
+struct dmx_pes_filter_params
+{
+	__u16            pid;
+	dmx_input_t         input;
+	dmx_output_t        output;
+	dmx_pes_type_t      pes_type;
+	__u32            flags;
+};
+
+
+struct dmx_event
+{
+	dmx_event_t         event;
+	time_t              timeStamp;
+	union
+	{
+		dmx_scrambling_status_t scrambling;
+	} u;
+};
+
+typedef struct dmx_caps {
+	__u32 caps;
+	int num_decoders; 
+} dmx_caps_t;
+
+typedef enum {
+	DMX_SOURCE_FRONT0 = 0,
+	DMX_SOURCE_FRONT1,
+	DMX_SOURCE_FRONT2,
+	DMX_SOURCE_FRONT3,
+	DMX_SOURCE_DVR0   = 16,
+	DMX_SOURCE_DVR1,
+	DMX_SOURCE_DVR2,
+	DMX_SOURCE_DVR3
+} dmx_source_t;
+
+struct dmx_stc {
+	unsigned int num;	/* input : which STC? 0..N */
+	unsigned int base;	/* output: divisor for stc to get 90 kHz clock */
+	__u64 stc;		/* output: stc in 'base'*90 kHz units */
+};
+
+
+#define DMX_START                _IO('o',41) 
+#define DMX_STOP                 _IO('o',42)
+#define DMX_SET_FILTER           _IOW('o',43,struct dmx_sct_filter_params)
+#define DMX_SET_PES_FILTER       _IOW('o',44,struct dmx_pes_filter_params)
+#define DMX_SET_BUFFER_SIZE      _IO('o',45)
+#define DMX_GET_EVENT            _IOR('o',46,struct dmx_event)
+#define DMX_GET_PES_PIDS         _IOR('o', 47, __u16[5])
+#define DMX_GET_CAPS             _IOR('o',48,dmx_caps_t)
+#define DMX_SET_SOURCE           _IOW('o',49,dmx_source_t)
+#define DMX_GET_STC              _IOWR('o',50,struct dmx_stc)
+
+#endif /*_DVBDMX_H_*/
+
--- /dev/null
+++ multimedia/kaffeine/files/patch-raaf-dvb
@@ -0,0 +1,76 @@
+--- kaffeine/src/input/dvb/dvbstream.cpp.orig	Fri Dec 29 08:36:14 2006
++++ kaffeine/src/input/dvb/dvbstream.cpp	Fri Dec 29 08:36:51 2006
+@@ -24,14 +24,13 @@
+ #include <sys/ioctl.h>
+ #include <sys/time.h>
+ #include <sys/stat.h>
++#include <netinet/in.h>
+ #include <resolv.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <signal.h>
+-#include <values.h>
+ #include <string.h>
+ #include <sys/socket.h>
+-#include <netinet/in.h>
+ #include <netdb.h>
+ #include <errno.h>
+ 
+--- kaffeine/src/input/dvb/dvbout.cpp.orig	Fri Dec 29 08:37:56 2006
++++ kaffeine/src/input/dvb/dvbout.cpp	Fri Dec 29 08:40:09 2006
+@@ -527,12 +527,15 @@
+ 	if ( haveLive && fdPipe ) {
+ 		while ( haveLive && fdPipe ) {
+ 			if ( wDist>0 ) {
++				int  i;
+ 				if ( wpatpmt ) {
+ 					write( fdPipe, tspat, TS_SIZE );
+ 					write( fdPipe, tspmt, TS_SIZE );
+ 					wpatpmt = false;
+ 				}
+-				write( fdPipe, wBuf+(wRead*TS_SIZE*NTS), TS_SIZE*NTS );
++				for(i = 0; i < NTS; ++i)
++					write( fdPipe, wBuf+(wRead*TS_SIZE*NTS)
++						+(i * TS_SIZE), TS_SIZE);
+ 				--wDist;
+ 				++wRead;
+ 				if ( wRead>99 )
+--- kaffeine/src/input/dvb/lib/libucsi/endianops.h.orig	Sun Nov 26 20:12:16 2006
++++ kaffeine/src/input/dvb/lib/libucsi/endianops.h	Fri Dec 29 08:56:47 2006
+@@ -27,15 +27,33 @@
+ #endif
+ 
+ #include <stdint.h>
+-#include <byteswap.h>
+-#include <endian.h>
+ 
+ #define __ucsi_packed __attribute__((packed))
+ 
+ 
++#define bswap_16(x) \
++        ((((x) & 0xff00) >> 8) | \
++       (((x) & 0x00ff) << 8))
+ 
++#define bswap_32(x) \
++       ((((x) & 0xff000000) >> 24) | \
++       (((x) & 0x00ff0000) >>  8) | \
++       (((x) & 0x0000ff00) <<  8) | \
++       (((x) & 0x000000ff) << 24))
+ 
+-#if __BYTE_ORDER == __BIG_ENDIAN
++static inline uint64_t
++bswap_64(uint64_t _x)
++{
++
++        return ((_x >> 56) | ((_x >> 40) & 0xff00) | ((_x >> 24) & 0xff0000) |
++            ((_x >> 8) & 0xff000000) | ((_x << 8) & ((uint64_t)0xff << 32)) |
++            ((_x << 24) & ((uint64_t)0xff << 40)) |
++            ((_x << 40) & ((uint64_t)0xff << 48)) | ((_x << 56)));
++}
++
++
++
++#if BYTE_ORDER == BIG_ENDIAN
+ #define EBIT2(x1,x2) x1 x2
+ #define EBIT3(x1,x2,x3) x1 x2 x3
+ #define EBIT4(x1,x2,x3,x4) x1 x2 x3 x4
--- /dev/null
+++ multimedia/kaffeine/files/frontend.h
@@ -0,0 +1,278 @@
+/*
+ * frontend.h
+ *
+ * Copyright (C) 2000 Marcus Metzler <marcus at convergence.de>
+ *                    Ralph  Metzler <ralph at convergence.de>
+ *                    Holger Waechtler <holger at convergence.de>
+ *                    Andre Draszik <ad at convergence.de>
+ *                    for convergence integrated media GmbH
+ *
+ * This program 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ */
+
+#ifndef _DVBFRONTEND_H_
+#define _DVBFRONTEND_H_
+
+#ifndef LINUX_TYPES_ADDED
+#define LINUX_TYPES_ADDED
+#include <sys/types.h>
+typedef uint64_t __u64;
+typedef uint32_t __u32;
+typedef uint16_t __u16;
+typedef uint8_t __u8;
+#endif
+
+
+
+typedef enum fe_type {
+        FE_QPSK,
+        FE_QAM,
+	FE_OFDM,
+	FE_ATSC
+} fe_type_t;
+
+
+typedef enum fe_caps {
+	FE_IS_STUPID                  = 0,
+	FE_CAN_INVERSION_AUTO         = 0x1,
+	FE_CAN_FEC_1_2                = 0x2,
+	FE_CAN_FEC_2_3                = 0x4,
+	FE_CAN_FEC_3_4                = 0x8,
+	FE_CAN_FEC_4_5                = 0x10,
+	FE_CAN_FEC_5_6                = 0x20,
+	FE_CAN_FEC_6_7                = 0x40,
+	FE_CAN_FEC_7_8                = 0x80,
+	FE_CAN_FEC_8_9                = 0x100,
+	FE_CAN_FEC_AUTO               = 0x200,
+	FE_CAN_QPSK                   = 0x400,
+	FE_CAN_QAM_16                 = 0x800,
+	FE_CAN_QAM_32                 = 0x1000,
+	FE_CAN_QAM_64                 = 0x2000,
+	FE_CAN_QAM_128                = 0x4000,
+	FE_CAN_QAM_256                = 0x8000,
+	FE_CAN_QAM_AUTO               = 0x10000,
+	FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000,
+	FE_CAN_BANDWIDTH_AUTO         = 0x40000,
+	FE_CAN_GUARD_INTERVAL_AUTO    = 0x80000,
+	FE_CAN_HIERARCHY_AUTO         = 0x100000,
+	FE_CAN_8VSB			= 0x200000,
+	FE_CAN_16VSB			= 0x400000,
+	FE_NEEDS_BENDING		= 0x20000000, // not supported anymore, don't use (frontend requires frequency bending)
+	FE_CAN_RECOVER                = 0x40000000, // frontend can recover from a cable unplug automatically
+	FE_CAN_MUTE_TS                = 0x80000000  // frontend can stop spurious TS data output
+} fe_caps_t;
+
+
+struct dvb_frontend_info {
+	char       name[128];
+        fe_type_t  type;
+        __u32      frequency_min;
+        __u32      frequency_max;
+	__u32      frequency_stepsize;
+	__u32      frequency_tolerance;
+	__u32      symbol_rate_min;
+        __u32      symbol_rate_max;
+	__u32      symbol_rate_tolerance;     /* ppm */
+	__u32      notifier_delay;		/* DEPRECATED */
+	fe_caps_t  caps;
+};
+
+
+/**
+ *  Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for
+ *  the meaning of this struct...
+ */
+struct dvb_diseqc_master_cmd {
+        __u8 msg [6];        /*  { framing, address, command, data [3] } */
+        __u8 msg_len;        /*  valid values are 3...6  */
+};
+
+
+struct dvb_diseqc_slave_reply {
+	__u8 msg [4];        /*  { framing, data [3] } */
+	__u8 msg_len;        /*  valid values are 0...4, 0 means no msg  */
+	int     timeout;        /*  return from ioctl after timeout ms with */
+};                              /*  errorcode when no message was received  */
+
+
+typedef enum fe_sec_voltage {
+        SEC_VOLTAGE_13,
+        SEC_VOLTAGE_18,
+	SEC_VOLTAGE_OFF
+} fe_sec_voltage_t;
+
+
+typedef enum fe_sec_tone_mode {
+        SEC_TONE_ON,
+        SEC_TONE_OFF
+} fe_sec_tone_mode_t;
+
+
+typedef enum fe_sec_mini_cmd {
+        SEC_MINI_A,
+        SEC_MINI_B
+} fe_sec_mini_cmd_t;
+
+
+typedef enum fe_status {
+	FE_HAS_SIGNAL     = 0x01,   /*  found something above the noise level */
+	FE_HAS_CARRIER    = 0x02,   /*  found a DVB signal  */
+	FE_HAS_VITERBI    = 0x04,   /*  FEC is stable  */
+	FE_HAS_SYNC       = 0x08,   /*  found sync bytes  */
+	FE_HAS_LOCK       = 0x10,   /*  everything's working... */
+	FE_TIMEDOUT       = 0x20,   /*  no lock within the last ~2 seconds */
+	FE_REINIT         = 0x40    /*  frontend was reinitialized,  */
+} fe_status_t;                      /*  application is recommended to reset */
+                                    /*  DiSEqC, tone and parameters */
+
+typedef enum fe_spectral_inversion {
+        INVERSION_OFF,
+        INVERSION_ON,
+        INVERSION_AUTO
+} fe_spectral_inversion_t;
+
+
+typedef enum fe_code_rate {
+        FEC_NONE = 0,
+        FEC_1_2,
+        FEC_2_3,
+        FEC_3_4,
+        FEC_4_5,
+        FEC_5_6,
+        FEC_6_7,
+        FEC_7_8,
+        FEC_8_9,
+        FEC_AUTO
+} fe_code_rate_t;
+
+
+typedef enum fe_modulation {
+        QPSK,
+        QAM_16,
+        QAM_32,
+        QAM_64,
+        QAM_128,
+        QAM_256,
+	QAM_AUTO,
+	VSB_8,
+	VSB_16
+} fe_modulation_t;
+
+typedef enum fe_transmit_mode {
+	TRANSMISSION_MODE_2K,
+	TRANSMISSION_MODE_8K,
+	TRANSMISSION_MODE_AUTO
+} fe_transmit_mode_t;
+
+typedef enum fe_bandwidth {
+	BANDWIDTH_8_MHZ,
+	BANDWIDTH_7_MHZ,
+	BANDWIDTH_6_MHZ,
+	BANDWIDTH_AUTO
+} fe_bandwidth_t;
+
+
+typedef enum fe_guard_interval {
+	GUARD_INTERVAL_1_32,
+	GUARD_INTERVAL_1_16,
+	GUARD_INTERVAL_1_8,
+	GUARD_INTERVAL_1_4,
+	GUARD_INTERVAL_AUTO
+} fe_guard_interval_t;
+
+
+typedef enum fe_hierarchy {
+	HIERARCHY_NONE,
+	HIERARCHY_1,
+	HIERARCHY_2,
+	HIERARCHY_4,
+	HIERARCHY_AUTO
+} fe_hierarchy_t;
+
+
+struct dvb_qpsk_parameters {
+        __u32           symbol_rate;  /* symbol rate in Symbols per second */
+        fe_code_rate_t  fec_inner;    /* forward error correction (see above) */
+};
+
+
+struct dvb_qam_parameters {
+        __u32            symbol_rate; /* symbol rate in Symbols per second */
+        fe_code_rate_t   fec_inner;   /* forward error correction (see above) */
+        fe_modulation_t  modulation;  /* modulation type (see above) */
+};
+
+struct dvb_vsb_parameters {
+	fe_modulation_t	modulation;  /* modulation type (see above) */
+};
+
+struct dvb_ofdm_parameters {
+        fe_bandwidth_t      bandwidth;
+        fe_code_rate_t      code_rate_HP;  /* high priority stream code rate */
+        fe_code_rate_t      code_rate_LP;  /* low priority stream code rate */
+        fe_modulation_t     constellation; /* modulation type (see above) */
+        fe_transmit_mode_t  transmission_mode;
+        fe_guard_interval_t guard_interval;
+        fe_hierarchy_t      hierarchy_information;
+};
+
+
+struct dvb_frontend_parameters {
+	__u32 frequency;     /* (absolute) frequency in Hz for QAM/OFDM/ATSC */
+                                  /* intermediate frequency in kHz for QPSK */
+	fe_spectral_inversion_t inversion;
+	union {
+		struct dvb_qpsk_parameters qpsk;
+		struct dvb_qam_parameters  qam;
+		struct dvb_ofdm_parameters ofdm;
+		struct dvb_vsb_parameters vsb;
+	} u;
+};
+
+
+struct dvb_frontend_event {
+	fe_status_t status;
+	struct dvb_frontend_parameters parameters;
+};
+
+
+
+#define FE_GET_INFO                _IOR('o', 61, struct dvb_frontend_info)
+
+#define FE_DISEQC_RESET_OVERLOAD   _IO('o', 62)
+#define FE_DISEQC_SEND_MASTER_CMD  _IOW('o', 63, struct dvb_diseqc_master_cmd)
+#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply)
+#define FE_DISEQC_SEND_BURST       _IO('o', 65)  /* fe_sec_mini_cmd_t */
+
+#define FE_SET_TONE                _IO('o', 66)  /* fe_sec_tone_mode_t */
+#define FE_SET_VOLTAGE             _IO('o', 67)  /* fe_sec_voltage_t */
+#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68)  /* int */
+
+#define FE_READ_STATUS             _IOR('o', 69, fe_status_t)
+#define FE_READ_BER                _IOR('o', 70, __u32)
+#define FE_READ_SIGNAL_STRENGTH    _IOR('o', 71, __u16)
+#define FE_READ_SNR                _IOR('o', 72, __u16)
+#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32)
+
+#define FE_SET_FRONTEND            _IOW('o', 76, struct dvb_frontend_parameters)
+#define FE_GET_FRONTEND            _IOR('o', 77, struct dvb_frontend_parameters)
+#define FE_GET_EVENT               _IOR('o', 78, struct dvb_frontend_event)
+
+#define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */
+
+
+#endif /*_DVBFRONTEND_H_*/
+
--- /dev/null
+++ multimedia/kaffeine/files/ca.h
@@ -0,0 +1,91 @@
+/* 
+ * ca.h
+ *
+ * Copyright (C) 2000 Ralph  Metzler <ralph at convergence.de>
+ *                  & Marcus Metzler <marcus at convergence.de>
+                      for convergence integrated media GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Lesser Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ */
+
+#ifndef _DVBCA_H_
+#define _DVBCA_H_
+
+/* slot interface types and info */
+
+typedef struct ca_slot_info {
+        int num;               /* slot number */
+
+        int type;              /* CA interface this slot supports */
+#define CA_CI            1     /* CI high level interface */
+#define CA_CI_LINK       2     /* CI link layer level interface */
+#define CA_CI_PHYS       4     /* CI physical layer level interface */
+#define CA_DESCR         8     /* built-in descrambler */
+#define CA_SC          128     /* simple smart card interface */
+
+        unsigned int flags;
+#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */
+#define CA_CI_MODULE_READY   2
+} ca_slot_info_t;
+
+
+/* descrambler types and info */
+
+typedef struct ca_descr_info {
+        unsigned int num;          /* number of available descramblers (keys) */
+        unsigned int type;         /* type of supported scrambling system */
+#define CA_ECD           1
+#define CA_NDS           2
+#define CA_DSS           4
+} ca_descr_info_t;
+
+typedef struct ca_caps {
+        unsigned int slot_num;     /* total number of CA card and module slots */
+        unsigned int slot_type;    /* OR of all supported types */
+        unsigned int descr_num;    /* total number of descrambler slots (keys) */
+        unsigned int descr_type;   /* OR of all supported types */
+} ca_caps_t;
+
+/* a message to/from a CI-CAM */
+typedef struct ca_msg {
+        unsigned int index;
+        unsigned int type;
+        unsigned int length;
+        unsigned char msg[256];
+} ca_msg_t;
+
+typedef struct ca_descr {
+        unsigned int index;
+        unsigned int parity;	/* 0 == even, 1 == odd */
+        unsigned char cw[8];
+} ca_descr_t;
+
+typedef struct ca_pid {
+        unsigned int pid;
+        int index;		/* -1 == disable*/
+} ca_pid_t;
+
+#define CA_RESET          _IO('o', 128)
+#define CA_GET_CAP        _IOR('o', 129, ca_caps_t)
+#define CA_GET_SLOT_INFO  _IOR('o', 130, ca_slot_info_t)
+#define CA_GET_DESCR_INFO _IOR('o', 131, ca_descr_info_t)
+#define CA_GET_MSG        _IOR('o', 132, ca_msg_t)
+#define CA_SEND_MSG       _IOW('o', 133, ca_msg_t)
+#define CA_SET_DESCR      _IOW('o', 134, ca_descr_t)
+#define CA_SET_PID        _IOW('o', 135, ca_pid_t)
+
+#endif
+


More information about the Midnightbsd-cvs mailing list