summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmmv <jmmv@pkgsrc.org>2004-01-26 11:36:35 +0000
committerjmmv <jmmv@pkgsrc.org>2004-01-26 11:36:35 +0000
commitf3cc95de980be3e63a93185b53e536fa6a83258b (patch)
tree212ee6140c7d13042264c31ca5eb0bd89d43fe79
parent192bba3de9511ffd991ab249dcb4f701ec6eb32a (diff)
downloadpkgsrc-f3cc95de980be3e63a93185b53e536fa6a83258b.tar.gz
Move fxtv to the new multimedia category (coming from graphics).
This is version 1.03nb4.
-rw-r--r--multimedia/fxtv/DESCR4
-rw-r--r--multimedia/fxtv/Makefile53
-rw-r--r--multimedia/fxtv/PLIST15
-rw-r--r--multimedia/fxtv/distinfo23
-rw-r--r--multimedia/fxtv/patches/patch-aa61
-rw-r--r--multimedia/fxtv/patches/patch-ab12
-rw-r--r--multimedia/fxtv/patches/patch-ac16
-rw-r--r--multimedia/fxtv/patches/patch-ad261
-rw-r--r--multimedia/fxtv/patches/patch-ae119
-rw-r--r--multimedia/fxtv/patches/patch-af13
-rw-r--r--multimedia/fxtv/patches/patch-ag59
-rw-r--r--multimedia/fxtv/patches/patch-ah12
-rw-r--r--multimedia/fxtv/patches/patch-ai31
-rw-r--r--multimedia/fxtv/patches/patch-aj38
-rw-r--r--multimedia/fxtv/patches/patch-ak21
-rw-r--r--multimedia/fxtv/patches/patch-al20
-rw-r--r--multimedia/fxtv/patches/patch-ba51
-rw-r--r--multimedia/fxtv/patches/patch-bb12
-rw-r--r--multimedia/fxtv/patches/patch-bc66
-rw-r--r--multimedia/fxtv/patches/patch-bd21
-rw-r--r--multimedia/fxtv/patches/patch-be13
-rw-r--r--multimedia/fxtv/patches/patch-bf70
-rw-r--r--multimedia/fxtv/patches/patch-bg14
23 files changed, 1005 insertions, 0 deletions
diff --git a/multimedia/fxtv/DESCR b/multimedia/fxtv/DESCR
new file mode 100644
index 00000000000..34927232924
--- /dev/null
+++ b/multimedia/fxtv/DESCR
@@ -0,0 +1,4 @@
+To use this application, you need a video capture/tuner card
+that's based on the Brooktree 848 capture chip, such as one of the
+Hauppauge Wincast/TV or Win/TV cards, the STV TV PCI card, or the
+Intel Smart Video Recorder III.
diff --git a/multimedia/fxtv/Makefile b/multimedia/fxtv/Makefile
new file mode 100644
index 00000000000..a31ae46d7ac
--- /dev/null
+++ b/multimedia/fxtv/Makefile
@@ -0,0 +1,53 @@
+# $NetBSD: Makefile,v 1.1.1.1 2004/01/26 11:36:35 jmmv Exp $
+
+DISTNAME= fxtv-1.03
+PKGREVISION= 4
+CATEGORIES= multimedia
+MASTER_SITES= ${HOMEPAGE}
+EXTRACT_SUFX= .tgz
+
+MAINTAINER= tron@NetBSD.org
+HOMEPAGE= http://people.freebsd.org/~rhh/fxtv/
+COMMENT= TV display application for Brooktree 848 compatible TV cards
+
+#ONLY_FOR_PLATFORM= NetBSD-1.[5-9]*-arm NetBSD-1.[5-9]*-arm32 \
+# NetBSD-1.[5-9]*-atari NetBSD-1.[5-9]*-i386
+
+USE_BUILDLINK2= YES
+USE_X11BASE= YES
+USE_GNU_TOOLS+= make
+XAW_TYPE?= 3d
+
+.include "../../mk/bsd.prefs.mk"
+
+MAKE_ENV+= X11PREFIX=${X11PREFIX}
+
+# The purpose of this check is to make sure that there is a "Xaw3d"
+# compatible widget set installed because normal "Xaw" won't work.
+#
+.if (${XAW_TYPE} == standard)
+XAW_TYPE= 3d
+.endif
+
+post-extract:
+ @${RM} -f ${WRKSRC}/videolib/videolib.o
+
+pre-configure:
+ cd ${WRKSRC}; for file in app_rsrc.h Fxtv; do \
+ ${SED} -e "s,/dev/dsp,${DEVOSSAUDIO},g" \
+ $${file} > $${file}.fixed; \
+ ${MV} -f $${file}.fixed $${file}; \
+ done
+ if [ -e /usr/include/machine/mouse.h ] ; then \
+ echo '#define HAVE_MOUSE_H 1' > ${WRKSRC}/netbsdconf.h; \
+ else \
+ echo '#define HAVE_MOUSE_H 0' > ${WRKSRC}/netbsdconf.h; \
+ fi
+
+.include "../../graphics/png/buildlink2.mk"
+.include "../../graphics/tiff/buildlink2.mk"
+.include "../../graphics/xpm/buildlink2.mk"
+.include "../../mk/xaw.buildlink2.mk"
+.include "../../mk/ossaudio.buildlink2.mk"
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/multimedia/fxtv/PLIST b/multimedia/fxtv/PLIST
new file mode 100644
index 00000000000..4bf5942bdaf
--- /dev/null
+++ b/multimedia/fxtv/PLIST
@@ -0,0 +1,15 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2004/01/26 11:36:35 jmmv Exp $
+bin/fxtv
+lib/X11/app-defaults/Fxtv
+lib/X11/fxtv/bitmaps/mini-camera.xpm
+lib/X11/fxtv/bitmaps/mini-down.xbm
+lib/X11/fxtv/bitmaps/mini-resize.xpm
+lib/X11/fxtv/bitmaps/mini-sound.xbm
+lib/X11/fxtv/bitmaps/mini-up.xbm
+lib/X11/fxtv/bitmaps/radio_off.xbm
+lib/X11/fxtv/bitmaps/radio_on.xbm
+lib/X11/fxtv/README
+lib/X11/fxtv/fxtv_cnvt.sh
+man/man1/fxtv.1
+@dirrm lib/X11/fxtv/bitmaps
+@dirrm lib/X11/fxtv
diff --git a/multimedia/fxtv/distinfo b/multimedia/fxtv/distinfo
new file mode 100644
index 00000000000..6306fa47116
--- /dev/null
+++ b/multimedia/fxtv/distinfo
@@ -0,0 +1,23 @@
+$NetBSD: distinfo,v 1.1.1.1 2004/01/26 11:36:35 jmmv Exp $
+
+SHA1 (fxtv-1.03.tgz) = 2ed9f2bee879a931c7f963a4ad7d07ef9cd297f9
+Size (fxtv-1.03.tgz) = 198669 bytes
+SHA1 (patch-aa) = cd994d512fe99e962cc9c505285da63d1421f81e
+SHA1 (patch-ab) = a62c497255063a88b7d240e902a45c85f59f84b0
+SHA1 (patch-ac) = 27a825287c17d1cc957fb89ba2f665c01f998c15
+SHA1 (patch-ad) = 39eb6a889ef76c27f2dd296385d9247c703db9eb
+SHA1 (patch-ae) = aa7689ff62388d4d50f89501f2c3084bc04409d8
+SHA1 (patch-af) = 50ab2d960955a8e97b6b56265195ec325b206cf9
+SHA1 (patch-ag) = 13655a94cd6200d12e25d406d7c1923f89000c80
+SHA1 (patch-ah) = 896d5164b176154b398f52d5c9887210da3d1e77
+SHA1 (patch-ai) = 85baa4b457dede91bf74ce0d8e4655fae9da2d96
+SHA1 (patch-aj) = 9a9427ba6c9d092e57f652bd6c278c96f9ba6d1c
+SHA1 (patch-ak) = 87e4f9636aa798f9f0f5a4e27a936f800461667a
+SHA1 (patch-al) = d60ac498f40cd9ec833ca436708cb140856826f1
+SHA1 (patch-ba) = 20efae40631bdb5be57e12445bf2135a47952763
+SHA1 (patch-bb) = 1a6cc73078ac7587e6df9de6c3ec9930e498484e
+SHA1 (patch-bc) = d5ddc97b1ba5a1660d622f20d89a3a680596f024
+SHA1 (patch-bd) = c24ef4e00d800368a843d0972d66080ddc2b07eb
+SHA1 (patch-be) = ff86cb36c3379727de59632ac29efdbbc6baa1ec
+SHA1 (patch-bf) = e3ce002d342ae508262f21e9eaa4af20d1d56f77
+SHA1 (patch-bg) = fa2895e34aea2be7fccfb912276a5fbfb6c9d1be
diff --git a/multimedia/fxtv/patches/patch-aa b/multimedia/fxtv/patches/patch-aa
new file mode 100644
index 00000000000..a2de46b59a1
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-aa
@@ -0,0 +1,61 @@
+$NetBSD: patch-aa,v 1.1.1.1 2004/01/26 11:36:35 jmmv Exp $
+
+--- Makefile.orig Mon Feb 12 23:08:59 2001
++++ Makefile
+@@ -4,13 +4,10 @@
+
+ HAVE_XFREE86 = YES
+
+-ifneq ($(X11PREFIX),) # NetBSD
+-X11BASE ?= $(X11PREFIX)
+-else
+ X11BASE ?= /usr/X11R6
+-endif
++X11BASEINST ?= $(PREFIX)
+
+-X11BASEINST ?= $(X11BASE)
++PREFIX ?= /usr/local
+ LOCALBASE ?= /usr/local
+ DEBUG = NO
+ OS = $(shell uname -s)
+@@ -24,15 +21,6 @@ override LIBDIRS = $(X11BASE)/
+ override SHELL = /bin/sh
+
+ #
+-# NetBSD stuff
+-#
+-ifeq ($(OS),NetBSD)
+- override INC += -I/usr/pkg/include
+- override LIBDIRS += /usr/pkg/lib
+- override LD_INC += -lossaudio -lz
+-endif
+-
+-#
+ # OpenBSD stuff
+ #
+ ifeq ($(OS),OpenBSD)
+@@ -72,6 +60,15 @@ endif
+
+ override CFLAGS += $(C_WARN_FLAG) -DX11BASE=\"$(X11BASEINST)\"
+
++#
++# NetBSD stuff
++#
++ifeq ($(OS),NetBSD)
++ override INC += -I$(LOCALBASE)/include
++ override LIBDIRS += $(LOCALBASE)/lib
++ override LD_INC += $(LIBOSSAUDIO) -lz
++endif
++
+ ifeq ($(OS), linux)
+ override CFLAGS = $(CFLAGS) -DOLD_TUNER_IFACE
+ endif
+@@ -81,7 +78,7 @@ endif
+ #
+ override LDFLAGS = $(LD_INC)
+ override VIDEOLIB_LIB = $(VIDEOLIB_DIR)/libvideo.a
+-override LIBS = -ltiff -ljpeg -lXaw3d -lXmu -lXt -lXpm \
++override LIBS = -lpng -ltiff -ljpeg -lXaw3d -lXmu -lXt -lXpm \
+ -lSM -lICE -lXext -lX11 -lm
+ ifeq ($(HAVE_XFREE86),YES)
+ override LIBS += -lXxf86dga -lXxf86vm
diff --git a/multimedia/fxtv/patches/patch-ab b/multimedia/fxtv/patches/patch-ab
new file mode 100644
index 00000000000..2aa8d8cf18e
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-ab
@@ -0,0 +1,12 @@
+$NetBSD: patch-ab,v 1.1.1.1 2004/01/26 11:36:35 jmmv Exp $
+
+--- pixelview_remote.c.orig Sun May 21 17:10:09 2000
++++ pixelview_remote.c Tue Feb 13 22:39:48 2001
+@@ -32,6 +32,7 @@
+ *
+ */
+
++#include <sys/ioctl.h>
+ #include <string.h>
+ #include <stdlib.h>
+ #include <stdio.h>
diff --git a/multimedia/fxtv/patches/patch-ac b/multimedia/fxtv/patches/patch-ac
new file mode 100644
index 00000000000..e885e7b944c
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-ac
@@ -0,0 +1,16 @@
+$NetBSD: patch-ac,v 1.1.1.1 2004/01/26 11:36:35 jmmv Exp $
+
+--- tvaudio.c.orig Mon Feb 12 15:56:29 2001
++++ tvaudio.c
+@@ -107,7 +107,11 @@
+ #ifdef SOUND_MIXER_VIDEO
+ else if ( STREQ( buf, "VIDEO" ) ) {
+ Mixer_dev_id = SOUND_MIXER_VIDEO;
++#ifndef SOUND_MASK_VIDEO
++ Mixer_dev_mask = 1 << SOUND_MIXER_VIDEO;
++#else
+ Mixer_dev_mask = SOUND_MASK_VIDEO;
++#endif
+ Mixer_dev_name = "VIDEO";
+ }
+ #endif
diff --git a/multimedia/fxtv/patches/patch-ad b/multimedia/fxtv/patches/patch-ad
new file mode 100644
index 00000000000..cf2da943717
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-ad
@@ -0,0 +1,261 @@
+$NetBSD: patch-ad,v 1.1.1.1 2004/01/26 11:36:38 jmmv Exp $
+
+--- app_rsrc.h.orig 2001-02-12 22:17:53.000000000 +0100
++++ app_rsrc.h
+@@ -80,6 +80,8 @@ typedef struct _AppResources {
+ int Bpp_24bit;
+ int Bpp_32bit;
+
++ Boolean aot_mode;
++
+ Boolean afc_mode;
+ Boolean disable_direct_v;
+ String remote_type; /* Type of Remote Control attached */
+@@ -191,6 +193,8 @@ extern AppResources App_res;
+
+ #define RNafc "afc"
+ #define RCafc "Afc"
++#define RNalwaysOnTop "alwaysOnTop"
++#define RCalwaysOnTop "AlwaysOnTop"
+
+ #define RNdisableDirectV "disableDirectV"
+ #define RCdisableDirectV "DisableDirectV"
+@@ -284,6 +288,7 @@ static XrmOptionDescRec Cmd_line_options
+ { "-Bpp24bit" , RNBpp24bit , XrmoptionSepArg, NULL },
+ { "-Bpp32bit" , RNBpp32bit , XrmoptionSepArg, NULL },
+
++ { "-noalwaysOnTop" , RNalwaysOnTop , XrmoptionNoArg , pFALSE },
+ { "-noafc" , RNafc , XrmoptionNoArg , pFALSE },
+ { "-disableDirectV" , RNdisableDirectV , XrmoptionNoArg , pTRUE },
+ { "-remoteType" , RNremoteType , XrmoptionSepArg, NULL },
+@@ -389,7 +394,7 @@ static XtResource Resources[] = {
+ (XtPointer) True },
+ { RNdspDevice, RCaudioDevice, XtRString, sizeof(String),
+ XtOffsetOf(AppResources, dsp_device ), XtRImmediate,
+- "/dev/dsp" },
++ "/dev/audio" },
+ { RNmixerDevice, RCaudioDevice, XtRString, sizeof(String),
+ XtOffsetOf(AppResources, mixer_device ), XtRImmediate,
+ "/dev/mixer" },
+@@ -434,6 +439,10 @@ static XtResource Resources[] = {
+ XtOffsetOf(AppResources, Bpp_32bit), XtRString,
+ "-1" /* 0 = Guess */ },
+
++ { RNalwaysOnTop, RCalwaysOnTop, XtRBoolean, sizeof(Boolean),
++ XtOffsetOf(AppResources, aot_mode), XtRImmediate,
++ (XtPointer) True },
++
+ { RNafc, RCafc, XtRBoolean, sizeof(Boolean),
+ XtOffsetOf(AppResources, afc_mode), XtRImmediate,
+ (XtPointer) True },
+@@ -525,96 +534,96 @@ static XtResource Resources[] = {
+ };
+
+
+-#define OPTION_HELP_STR "\
+- BSD X TV (fxtv), Version " VERS_STR ".
+- Written by Randall Hopper
+-
+-Please mail Fxtv and Bt848 driver-related comments and help requests to the
+-multimedia@freebsd.org list. Feel free to subscribe and contribute
+-(listserv: majordomo@freebsd.org).
+-
+-Available options:
+-
+--driverDefaults - Use appearance parms from driver on startup
+--colorbars - Turn on colorbar display (for testing)
+--hue [-90...90] - Initial Hue ; def=0
+--brightness [-50..50] - Initial Brightness (%); def=0
+--contrast [0..200] - Initial Contrast (%); def=100
+--satU [0..200] - U Saturation (%); def=100
+--satV [0..284] - V Saturation (%); def=100
+--aspectlock - Enable 4:3 aspect lock on video window
+-
+--deviceNumber <#> - bktr/tuner device numbers; def=0
+--inputFormat <fmt> - Tuner signal input format (ntsc,ntscm,ntscj,
+- palbdghi,pal,palm,paln,secam,palncomb,rsvd)
+-
+--tunerMode [cable|antenna] - Tuner Mode
+--defaultInput <input> - Startup tuner signal input
+- [tuner|video|svideo|csvideo|dev3]
+--defaultAudioInput <input> - Startup TV card audio input
+- [tuner|external|internal|auto]
+--defaultChannel <#> - Startup Channel Number
+--cableStationList <...> - List of cable station presets (see rsrc file)
+--antennaStationList <...> - List of antenna station presets
+--cableFreqSet <freqset> - Freq set for cable (def = cableirc)
+- [nabcst|cableirc|cablehrc|weurope|jpnbcst|
+- jpncable|xussr|australia|france]
+--antennaFreqSet <freqset> - Freq set for antenna (def = nabcst)
+-
+--noAudio - Suppress playing audio through soundcard
+--dspDevice - Override default DSP device (def=/dev/dsp)
+--mixerDevice - Override default mixer device (def=/dev/mixer)
+--mixerChannel - Audio mixer (line,line1/2/3,cd,mic,video)
+-
+--stationInWinTitle - Display station text in window title
+--stationInWinIcon - Display station text in window icon
+-
+--stationAnnotFont <fontpat> - Font pattern for station annot (see rsrc file)
+--stationAnnotColor <color> - Color for station annot
+--stationAnnotDelay <msec> - How long to display (0 = never; -1 = always)
+--stationAnnotIDOnly - Display station ID alone (when available)
+-
+--tunerModeAnnot{Font,Color,Delay}
+--inputDevAnnot{Font,Color,Delay}
+--volumeDevAnnot{Font,Color,Delay}
+--muteDevAnnot{Font,Color,Delay}
+- - Other annotation options (see stationAnnot)
+-
+--remoteType - Type of attached remote control
+- [None|X10|Hauppauge|PixelView]
+-
+--recCmdMpeg2 - MPEG-2 Audio record command
+--recCmdMpeg3 - MPEG-3 Audio record command
+--playCmdMpeg2 - MPEG-2 Audio play command
+--playCmdMpeg3 - MPEG-3 Audio play command
+-
+--videoCnvtScript - Video conversion workhorse script for vid encod.
+-
+--bswap2Bpp - Byte/word swap options for direct video
+--nobswap2Bpp (used to match driver's pixel format with
+--bswap3Bpp the video card's)
+--nobswap3Bpp
+--bswap4Bpp 2Bpp - 15/16-bpp modes
+--nobswap4Bpp 3Bpp - packed 24bpp modes
+--bwwap4Bpp 4Bpp - unpacked 24bpp modes
+--nowswap4Bpp
+-
+--Bpp24bit [3|4] - Set frame buffer Bytes-per-pixel for 24bpp mode
+--Bpp32bit [3|4] - Set frame buffer Bytes-per-pixel for 32bpp mode
+-
+--videoCapFile[1-4] - Optional paths (0-4) to scratch file paths to
+- use for video capture; spreads load across disks
+-
+--noafc - Disable AFC
+--disableDirectV - Disable DMA transfers straight to video card
+--debug <area> - Debug Msgs
+- {startup,driver,subproc,events,video,frame}
+--help - Display program options
+-
+-NOTE: All command line options are accessible as X resources as well.
+- The X resources have the same names as the command-line options.
+- See the sample Fxtv class resource file for details.
+-"
++#define OPTION_HELP_STR \
++" BSD X TV (fxtv), Version " VERS_STR ".\n" \
++" Written by Randall Hopper\n" \
++"\n" \
++"Please mail Fxtv and Bt848 driver-related comments and help requests to the\n" \
++"multimedia@freebsd.org list. Feel free to subscribe and contribute\n" \
++"(listserv: majordomo@freebsd.org).\n" \
++"\n" \
++"Available options:\n" \
++"\n" \
++"-driverDefaults - Use appearance parms from driver on startup\n" \
++"-colorbars - Turn on colorbar display (for testing)\n" \
++"-hue [-90...90] - Initial Hue ; def=0\n" \
++"-brightness [-50..50] - Initial Brightness (%); def=0\n" \
++"-contrast [0..200] - Initial Contrast (%); def=100\n" \
++"-satU [0..200] - U Saturation (%); def=100\n" \
++"-satV [0..284] - V Saturation (%); def=100\n" \
++"-aspectlock - Enable 4:3 aspect lock on video window\n" \
++"-noalwaysOnTop - Disable always on top\n" \
++"\n" \
++"-deviceNumber <#> - bktr/tuner device numbers; def=0\n" \
++"-inputFormat <fmt> - Tuner signal input format (ntsc,ntscm,ntscj,\n" \
++" palbdghi,pal,palm,paln,secam,palncomb,rsvd)\n" \
++"\n" \
++"-tunerMode [cable|antenna] - Tuner Mode\n" \
++"-defaultInput <input> - Startup tuner signal input\n" \
++" [tuner|video|svideo|csvideo|dev3]\n" \
++"-defaultAudioInput <input> - Startup TV card audio input\n" \
++" [tuner|external|internal|auto]\n" \
++"-defaultChannel <#> - Startup Channel Number\n" \
++"-cableStationList <...> - List of cable station presets (see rsrc file)\n" \
++"-antennaStationList <...> - List of antenna station presets\n" \
++"-cableFreqSet <freqset> - Freq set for cable (def = cableirc)\n" \
++" [nabcst|cableirc|cablehrc|weurope|jpnbcst|\n" \
++" jpncable|xussr|australia|france]\n" \
++"-antennaFreqSet <freqset> - Freq set for antenna (def = nabcst)\n" \
++"\n" \
++"-noAudio - Suppress playing audio through soundcard\n" \
++"-dspDevice - Override default DSP device (def=/dev/audio)\n" \
++"-mixerDevice - Override default mixer device (def=/dev/mixer)\n" \
++"-mixerChannel - Audio mixer (line,line1/2/3,cd,mic,video)\n" \
++"\n" \
++"-stationInWinTitle - Display station text in window title\n" \
++"-stationInWinIcon - Display station text in window icon\n" \
++"\n" \
++"-stationAnnotFont <fontpat> - Font pattern for station annot (see rsrc file)\n" \
++"-stationAnnotColor <color> - Color for station annot\n" \
++"-stationAnnotDelay <msec> - How long to display (0 = never; -1 = always)\n" \
++"-stationAnnotIDOnly - Display station ID alone (when available)\n" \
++"\n" \
++"-tunerModeAnnot{Font,Color,Delay}\n" \
++"-inputDevAnnot{Font,Color,Delay}\n" \
++"-volumeDevAnnot{Font,Color,Delay}\n" \
++"-muteDevAnnot{Font,Color,Delay}\n" \
++" - Other annotation options (see stationAnnot)\n" \
++"\n" \
++"-remoteType - Type of attached remote control\n" \
++" [None|X10|Hauppauge|PixelView]\n" \
++"\n" \
++"-recCmdMpeg2 - MPEG-2 Audio record command\n" \
++"-recCmdMpeg3 - MPEG-3 Audio record command\n" \
++"-playCmdMpeg2 - MPEG-2 Audio play command\n" \
++"-playCmdMpeg3 - MPEG-3 Audio play command\n" \
++"\n" \
++"-videoCnvtScript - Video conversion workhorse script for vid encod.\n" \
++"\n" \
++"-bswap2Bpp - Byte/word swap options for direct video\n" \
++"-nobswap2Bpp (used to match driver's pixel format with\n" \
++"-bswap3Bpp the video card's)\n" \
++"-nobswap3Bpp\n" \
++"-bswap4Bpp 2Bpp - 15/16-bpp modes\n" \
++"-nobswap4Bpp 3Bpp - packed 24bpp modes\n" \
++"-bwwap4Bpp 4Bpp - unpacked 24bpp modes\n" \
++"-nowswap4Bpp\n" \
++"\n" \
++"-Bpp24bit [3|4] - Set frame buffer Bytes-per-pixel for 24bpp mode\n" \
++"-Bpp32bit [3|4] - Set frame buffer Bytes-per-pixel for 32bpp mode\n" \
++"\n" \
++"-videoCapFile[1-4] - Optional paths (0-4) to scratch file paths to\n" \
++" use for video capture; spreads load across disks\n" \
++"\n" \
++"-noafc - Disable AFC\n" \
++"-disableDirectV - Disable DMA transfers straight to video card\n" \
++"-debug <area> - Debug Msgs\n" \
++" {startup,driver,subproc,events,video,frame}\n" \
++"-help - Display program options\n" \
++"\n" \
++"NOTE: All command line options are accessible as X resources as well.\n" \
++" The X resources have the same names as the command-line options.\n" \
++" See the sample Fxtv class resource file for details.\n"
+
+ static String fallback_resources[] = {
+ /*"Fxtv.geometry: +10+10",*/
+@@ -681,6 +690,7 @@ static String fallback_resources[] = {
+ "*menuBox*optionsMenu*captureToCmd.label: Capture To...",
+ "*menuBox*optionsMenu*saveOptionsCmd.label:Save Options",
+ "*menuBox*optionsMenu*setAfcCmd.label: AFC",
++ "*menuBox*optionsMenu*setAotCmd.label: Always on top",
+
+ "*menuBox*helpMenu.label: Help",
+ "*menuBox*helpMenu.menu.label: Help",
+@@ -789,6 +799,7 @@ static String fallback_resources[] = {
+ "*imageSaveDialog*suffixLabel.label: Append Img # Suffix",
+ "*imageSaveDialog*formatLabel.label: Format:",
+ "*imageSaveDialog*formatMenuBox*tiffCmd.label: TIFF",
++ "*imageSaveDialog*formatMenuBox*pngCmd.label: PNG",
+ "*imageSaveDialog*formatMenuBox*ppmCmd.label: PPM",
+ "*imageSaveDialog*okCmd.label: OK",
+
+@@ -902,6 +913,7 @@ static String fallback_resources[] = {
+ "*videoSaveDialog*imageEncLabel.label: IMAGE ENCODE",
+ "*videoSaveDialog*iFileFmtLabel.label: Format:",
+ "*videoSaveDialog*iFileFmtMenuBox*tiffCmd.label: TIFF",
++ "*videoSaveDialog*iFileFmtMenuBox*pngCmd.label: PNG",
+ "*videoSaveDialog*iFileFmtMenuBox*ppmCmd.label: PPM",
+ "*videoSaveDialog*iFileFmtMenuBox*yuvCmd.label: YUV",
+
diff --git a/multimedia/fxtv/patches/patch-ae b/multimedia/fxtv/patches/patch-ae
new file mode 100644
index 00000000000..3857ce8c817
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-ae
@@ -0,0 +1,119 @@
+$NetBSD: patch-ae,v 1.1.1.1 2004/01/26 11:36:38 jmmv Exp $
+
+--- imgsav.c.orig Sun Sep 26 16:35:06 1999
++++ imgsav.c
+@@ -29,6 +29,7 @@
+
+ /* ******************** Include Files ************** */
+
++#include <png.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+@@ -254,6 +255,96 @@ void TVIMGSAVDoSaveTIFF( char filename[]
+ }
+
+
++void TVIMGSAVDoSavePNG( char filename[], TV_IMAGE *img )
++{
++ char errmsg[160];
++ png_structp png_ptr;
++ png_infop info_ptr;
++ FILE *out;
++ TV_INT32 linebytes,
++ y,
++ pass,
++ compon;
++ TV_UINT8 *buf;
++
++ buf = NULL;
++ if ( img->pix_geom.type != TV_PIXELTYPE_RGB ) {
++ fprintf( stderr, "Attempt to save non-RGB data as TIFF\n" );
++ exit(1);
++ }
++
++ /* Open output file */
++ if ( (out = fopen( filename, "wb" )) == NULL ) {
++ sprintf( errmsg, "Can't open output file '%s'", filename );
++ XUTILDialogPause( TVTOPLEVEL, "Error", errmsg, TV_DIALOG_TYPE_OK );
++ return;
++ }
++
++ /* Create PNG data structures and initialize */
++ png_ptr = png_create_write_struct
++ (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
++ if (!png_ptr) {
++ sprintf( errmsg, "Can't create PNG write structure" );
++ XUTILDialogPause( TVTOPLEVEL, "Error", errmsg, TV_DIALOG_TYPE_OK );
++ return;
++ }
++ info_ptr = png_create_info_struct(png_ptr);
++ if (!info_ptr) {
++ png_destroy_write_struct(&png_ptr, NULL);
++ sprintf( errmsg, "Can't create PNG info structure" );
++ XUTILDialogPause( TVTOPLEVEL, "Error", errmsg, TV_DIALOG_TYPE_OK );
++ return;
++ }
++
++ if (setjmp(png_jmpbuf(png_ptr))) {
++ fprintf( stderr, "PNG write error\n" );
++ XBell( TVDISPLAY, 100 );
++ png_destroy_write_struct( &png_ptr, &info_ptr );
++ free( buf );
++ fclose( out );
++ unlink( filename );
++ return;
++ }
++ png_init_io(png_ptr, out);
++ /* fast compression */
++ png_set_compression_level(png_ptr, Z_BEST_SPEED);
++
++ /* Setup image format info (chunks) */
++ png_set_IHDR(png_ptr, info_ptr, img->geom.w, img->geom.h,
++ TV_BITS_PER_COMP, PNG_COLOR_TYPE_RGB /* XXX: ? */,
++ PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT,
++ PNG_FILTER_TYPE_DEFAULT);
++ /* and write it */
++ png_write_info(png_ptr, info_ptr);
++ /* flush image out every 50 rows */
++ png_set_flush(png_ptr, 50);
++
++ linebytes = img->geom.w * TV_BYTES_PER_PIX;
++
++ if ( (buf = malloc( linebytes )) == NULL )
++ TVUTILOutOfMemory();
++
++ /* Convert & write the image data */
++ for ( pass = 0; pass < 1; pass++ ) {
++ compon = DoRed | DoGreen | DoBlue;
++ for ( y = 0; y < img->geom.h; y++ ) {
++
++ /* Format scanline */
++ TVIMGSAVFmtScanline24bpp( img, y, compon, buf );
++
++ /* And write it in PNG */
++ png_write_row(png_ptr, buf);
++ }
++ }
++
++ /* All done. Close up shop and go home */
++ png_write_end(png_ptr, NULL);
++ png_destroy_write_struct(&png_ptr, &info_ptr);
++ fclose(out);
++ free( buf );
++}
++
++
+ void TVIMGSAVDoSavePPM( char filename[], TV_IMAGE *img )
+ {
+ static char *S_fp_buf = NULL;
+@@ -407,6 +498,9 @@ void TVIMGSAVDoSave( char filename[], TV
+ exit(1);
+ }
+ TVIMGSAVDoSaveTIFF( filename, img ); break;
++
++ case TV_STILL_FMT_PNG :
++ TVIMGSAVDoSavePNG ( filename, img ); break;
+
+ case TV_STILL_FMT_PPM :
+ TVIMGSAVDoSavePPM ( filename, img ); break;
diff --git a/multimedia/fxtv/patches/patch-af b/multimedia/fxtv/patches/patch-af
new file mode 100644
index 00000000000..c462d278fdd
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-af
@@ -0,0 +1,13 @@
+$NetBSD: patch-af,v 1.1.1.1 2004/01/26 11:36:38 jmmv Exp $
+
+--- tvutil.c.orig Mon May 13 13:43:42 2002
++++ tvutil.c Mon May 13 13:44:18 2002
+@@ -112,7 +112,7 @@
+ #elif defined(__bsdi__)
+ int mib[2] = { CTL_KERN, KERN_MAXFILES };
+ #elif defined(__NetBSD__)
+- int mib[2] = { CTL_KERN, OPEN_MAX };
++ int mib[2] = { CTL_KERN, KERN_MAXFILES };
+ #elif defined(__OpenBSD__)
+ int mib[2] = { CTL_KERN, OPEN_MAX };
+ #endif
diff --git a/multimedia/fxtv/patches/patch-ag b/multimedia/fxtv/patches/patch-ag
new file mode 100644
index 00000000000..dfdef768194
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-ag
@@ -0,0 +1,59 @@
+$NetBSD: patch-ag,v 1.1.1.1 2004/01/26 11:36:38 jmmv Exp $
+
+--- fxtv_cnvt.sh.orig Mon Feb 12 22:18:40 2001
++++ fxtv_cnvt.sh
+@@ -32,7 +32,7 @@
+ #VIDEO_TARGET_FPS="30"
+ #VIDEO_STREAM="YES"
+ #
+-#IMAGE_TARGET_FMT="YUV" # TIFF|PPM|YUV
++#IMAGE_TARGET_FMT="YUV" # TIFF|PNG|PPM|YUV
+ #
+ #CLEANUP_TEMP_FILES="YES"
+
+@@ -73,6 +73,10 @@ MPEG_ENC_PARAM_STR_TIFF=\
+ 'BASE_FILE_FORMAT PPM
+ INPUT_CONVERT tifftopnm *'
+
++MPEG_ENC_PARAM_STR_PNG=\
++'BASE_FILE_FORMAT PPM
++INPUT_CONVERT pngtopnm *'
++
+ MPEG_ENC_PARAM_STR_PPM=\
+ 'BASE_FILE_FORMAT PPM
+ INPUT_CONVERT *'
+@@ -181,8 +185,8 @@ GenAudioPipe() {
+
+ # Do we need an intermediate file?
+ if [ $mpeg_enc = YES ]; then
+- out_soxfn="$out_fnbase.aiff"
+- out_soxfmt="AIFF"
++ out_soxfn="$out_fnbase.raw"
++ out_soxfmt="RAW"
+ else
+ out_soxfn="$GAout_fn"
+ out_soxfmt="$out_fmt"
+@@ -258,6 +262,7 @@ WriteMPEGEncodeParamFile() {
+ # Write the frame-format specific part
+ case $frame_fmt in
+ TIFF) str="$MPEG_ENC_PARAM_STR_TIFF";;
++ PNG) str="$MPEG_ENC_PARAM_STR_PNG";;
+ PPM) str="$MPEG_ENC_PARAM_STR_PPM" ;;
+ YUV) str="$MPEG_ENC_PARAM_STR_IYUV";;
+ esac
+@@ -277,6 +282,7 @@ WriteMPEGEncodeParamFile() {
+ base=`basename $out_fnbase`
+ case $frame_fmt in
+ TIFF) ext="tif";;
++ PNG) ext="png";;
+ PPM) ext="ppm";;
+ YUV) ext="yuv";;
+ esac
+@@ -321,6 +327,7 @@ CountFrameFiles() {
+
+ case $frame_fmt in
+ TIFF) ext="tif";;
++ PNG) ext="png";;
+ PPM) ext="ppm";;
+ YUV) ext="yuv";;
+ esac
diff --git a/multimedia/fxtv/patches/patch-ah b/multimedia/fxtv/patches/patch-ah
new file mode 100644
index 00000000000..e835f0ffc2a
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-ah
@@ -0,0 +1,12 @@
+$NetBSD: patch-ah,v 1.1.1.1 2004/01/26 11:36:38 jmmv Exp $
+
+--- imgsav_dlg.c.orig Mon Sep 6 15:07:29 1999
++++ imgsav_dlg.c
+@@ -69,6 +69,7 @@ static Pixmap Select_pixmap = None,
+
+ static TV_IFILEFMT_ITEM_DEF Fmtitem_def[] = {
+ { TV_STILL_FMT_TIFF , "tiff", "tiffCmd" },
++ { TV_STILL_FMT_PNG , "png", "pngCmd" },
+ { TV_STILL_FMT_PPM , "ppm" , "ppmCmd" }
+ };
+
diff --git a/multimedia/fxtv/patches/patch-ai b/multimedia/fxtv/patches/patch-ai
new file mode 100644
index 00000000000..e18ccbaaff7
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-ai
@@ -0,0 +1,31 @@
+$NetBSD: patch-ai,v 1.1.1.1 2004/01/26 11:36:38 jmmv Exp $
+
+--- batch_mode.c.orig Sat Oct 23 15:50:35 1999
++++ batch_mode.c
+@@ -154,6 +154,8 @@ static void DoStreamVideo( TV_BATCH_PARM
+
+ if ( STREQ( parm->frame_fmt, "TIFF" ) )
+ fmt = TV_STILL_FMT_TIFF;
++ else if ( STREQ( parm->frame_fmt, "PNG" ) )
++ fmt = TV_STILL_FMT_PNG;
+ else if ( STREQ( parm->frame_fmt, "PPM" ) )
+ fmt = TV_STILL_FMT_PPM;
+ else if ( STREQ( parm->frame_fmt, "YUV" ) )
+@@ -175,6 +177,7 @@ static void DoStreamVideo( TV_BATCH_PARM
+ if ( parm->video_target && !video2stdout )
+ switch ( fmt ) {
+ case TV_STILL_FMT_TIFF : frame_ext = "tif"; break;
++ case TV_STILL_FMT_PNG : frame_ext = "png"; break;
+ case TV_STILL_FMT_PPM : frame_ext = "ppm"; break;
+ case TV_STILL_FMT_YUV : frame_ext = "yuv"; break;
+ default: abort();
+@@ -209,7 +212,8 @@ static void DoStreamVideo( TV_BATCH_PARM
+ return;
+
+ /* Sanity check raw data with save type */
+- if ( ((( fmt == TV_STILL_FMT_TIFF ) || ( fmt == TV_STILL_FMT_PPM )) &&
++ if ( ((( fmt == TV_STILL_FMT_TIFF ) || ( fmt == TV_STILL_FMT_PNG )
++ || ( fmt == TV_STILL_FMT_PPM )) &&
+ ( img.pix_geom.type != TV_PIXELTYPE_RGB )) ||
+ (( fmt == TV_STILL_FMT_YUV ) &&
+ ( img.pix_geom.type != TV_PIXELTYPE_YUV )) ) {
diff --git a/multimedia/fxtv/patches/patch-aj b/multimedia/fxtv/patches/patch-aj
new file mode 100644
index 00000000000..77468e22ca0
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-aj
@@ -0,0 +1,38 @@
+$NetBSD: patch-aj,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
+
+--- Fxtv.orig 2003-09-28 17:38:29.000000000 +0200
++++ Fxtv 2003-09-28 17:38:29.000000000 +0200
+@@ -11,6 +11,8 @@
+ ! tuner, video, svideo, csvideo, dev3
+ !Fxtv*defaultAudioInput: tuner
+ ! tuner, external, internal, auto
++Fxtv*alwaysOnTop: True
++ ! Always On Top
+ Fxtv*afc: False
+ ! Automatic Frequency Control
+ !Fxtv*remoteType: Hauppauge
+@@ -57,7 +59,7 @@
+
+ ! Method to override audio device
+ !Fxtv*doSound: true
+-!Fxtv*dspDevice: /dev/dsp
++!Fxtv*dspDevice: /dev/audio
+ !Fxtv*mixerDevice: /dev/mixer
+ !Fxtv*mixerChannel: line
+ ! line, line1/2/3, cd, mic, video
+@@ -320,6 +322,7 @@
+ *imageSaveDialog*suffixLabel.label: Append Img # Suffix
+ *imageSaveDialog*formatLabel.label: Format:
+ *imageSaveDialog*formatMenuBox*tiffCmd.label: TIFF
++*imageSaveDialog*formatMenuBox*pngCmd.label: PNG
+ *imageSaveDialog*formatMenuBox*ppmCmd.label: PPM
+ *imageSaveDialog*okCmd.label: OK
+
+@@ -432,6 +435,7 @@
+ *videoSaveDialog*imageEncLabel.label: IMAGE ENCODE
+ *videoSaveDialog*iFileFmtLabel.label: Format:
+ *videoSaveDialog*iFileFmtMenuBox*tiffCmd.label: TIFF
++*videoSaveDialog*iFileFmtMenuBox*pngCmd.label: PNG
+ *videoSaveDialog*iFileFmtMenuBox*ppmCmd.label: PPM
+ *videoSaveDialog*iFileFmtMenuBox*yuvCmd.label: YUV
+
diff --git a/multimedia/fxtv/patches/patch-ak b/multimedia/fxtv/patches/patch-ak
new file mode 100644
index 00000000000..82ada6b8419
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-ak
@@ -0,0 +1,21 @@
+$NetBSD: patch-ak,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
+
+--- glob.h.orig 2001-02-12 20:24:44.000000000 +0100
++++ glob.h
+@@ -54,6 +54,7 @@ typedef enum {
+
+ typedef enum {
+ TV_STILL_FMT_TIFF,
++ TV_STILL_FMT_PNG,
+ TV_STILL_FMT_PPM,
+ TV_STILL_FMT_YUV,
+ TV_NUM_STILL_FMTS
+@@ -133,6 +134,8 @@ typedef struct {
+ TV_TUNER_MODE tuner_mode;
+ TV_BOOL afc_mode;
+
++ TV_BOOL aot_mode;
++
+ TV_BOOL last_station_is_chan;
+ TV_INT32 last_chan;
+ double last_freq;
diff --git a/multimedia/fxtv/patches/patch-al b/multimedia/fxtv/patches/patch-al
new file mode 100644
index 00000000000..673575ccb23
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-al
@@ -0,0 +1,20 @@
+$NetBSD: patch-al,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
+
+--- vidsav_dlg.c.orig Mon Feb 12 22:20:10 2001
++++ vidsav_dlg.c
+@@ -235,6 +235,7 @@ static TV_ICAPFMT_ITEM_DEF Icap_fmt_
+
+ static TV_IFILEFMT_ITEM_DEF Ifile_fmt_item_def[] = {
+ { TV_STILL_FMT_TIFF , "tiff", "tiffCmd" },
++ { TV_STILL_FMT_PNG , "png", "pngCmd" },
+ { TV_STILL_FMT_PPM , "ppm" , "ppmCmd" },
+ { TV_STILL_FMT_YUV , "yuv" , "yuvCmd" }
+ };
+@@ -872,6 +873,7 @@ static TV_BOOL WriteVidConvertShScript(
+
+ switch ( p->img_sav_fmt ) {
+ case TV_STILL_FMT_TIFF : str = "TIFF"; break;
++ case TV_STILL_FMT_PNG : str = "PNG"; break;
+ case TV_STILL_FMT_PPM : str = "PPM" ; break;
+ case TV_STILL_FMT_YUV : str = "YUV" ; break;
+ default : str = "" ; break;
diff --git a/multimedia/fxtv/patches/patch-ba b/multimedia/fxtv/patches/patch-ba
new file mode 100644
index 00000000000..593b593b2f0
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-ba
@@ -0,0 +1,51 @@
+$NetBSD: patch-ba,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
+--- remote.c.orig Fri Jan 10 02:18:28 2003
++++ remote.c Fri Jan 10 02:18:32 2003
+@@ -33,6 +33,8 @@
+
+ /* ******************** Include Files ************** */
+
++#include "netbsdconf.h"
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <errno.h>
+@@ -53,8 +55,10 @@
+ # include <machine/mouse.h>
+ # endif
+ #else
++#if HAVE_MOUSE_H
+ # include <machine/mouse.h>
+ #endif
++#endif
+ #include <X11/Intrinsic.h>
+ #include "tvdebug.h"
+ #include "tvutil.h"
+@@ -62,6 +66,8 @@
+ #include "haup_remote.h"
+ #include "pixelview_remote.h"
+
++#if HAVE_MOUSE_H
++
+ /* ******************** Local defines ************** */
+
+ /* FIXME: Remove this old code someday */
+@@ -847,3 +853,18 @@
+ case REMOTE_TYPE_PIXELVIEW : TVPIXELVIEWREMOTEFlush(); break;
+ }
+ }
++
++#else /* HAVE_MOUSE_H */
++void
++TVREMOTEOpen( XtAppContext app_ctx,
++ char rem_type[],
++ TVREMOTE_CB_FUNCT *cb )
++ {
++ }
++
++void
++TVREMOTEFlush( void )
++ {
++ }
++
++#endif /* HAVE_MOUSE_H */
diff --git a/multimedia/fxtv/patches/patch-bb b/multimedia/fxtv/patches/patch-bb
new file mode 100644
index 00000000000..61c3669d0e8
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-bb
@@ -0,0 +1,12 @@
+$NetBSD: patch-bb,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
+
+--- glob.c.orig 2001-02-12 19:26:16.000000000 +0100
++++ glob.c
+@@ -131,6 +131,7 @@ void TVGLOBInitPrefs( TV_PREFS *p )
+ p->cable_freq_set = 1;
+ p->tuner_mode = TV_TUNER_MODE_ANTENNA;
+ p->afc_mode = TRUE;
++ p->aot_mode = TRUE;
+
+ p->last_chan = 3; /* -1 = use last_freq */
+ p->last_freq = 0.0;
diff --git a/multimedia/fxtv/patches/patch-bc b/multimedia/fxtv/patches/patch-bc
new file mode 100644
index 00000000000..561fbd488c2
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-bc
@@ -0,0 +1,66 @@
+$NetBSD: patch-bc,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
+
+--- tvmenu.c.orig 2001-02-12 22:19:33.000000000 +0100
++++ tvmenu.c
+@@ -103,7 +103,7 @@ typedef void XT_CB( Widget w, XtPointer
+
+ /* ******************** Forward declarations ************** */
+
+-static XT_CB QuitCB, FreezeCB, MuteCB, ZoomCB, InputCB, AfcCB, TModeCB,
++static XT_CB QuitCB, FreezeCB, MuteCB, ZoomCB, InputCB, AfcCB, AotCB, TModeCB,
+ ChanUpDnCB, AppearCB, AspectCB, AboutCB, ImgSavCB, ImgSavAsCB,
+ AudSavAsCB, VidSavAsCB, FormatCB, AudInpCB, StationPopupCB;
+
+@@ -160,6 +160,7 @@ static TV_MENUITEM_DEF Menuitem_def[] =
+ { TVMI( FORMAT,FORMAT_PALNCOMB ), "palncombFmt" , WC_mcmd , FormatCB },
+ { TVMI( OPTIONS,OPTIONS_ASPECT ), "aspectLockCmd" , WC_mcmd , AspectCB },
+ { TVMI( OPTIONS,OPTIONS_AFC ), "setAfcCmd", WC_mcmd , AfcCB },
++ { TVMI( OPTIONS,OPTIONS_AOT ), "setAotCmd", WC_mcmd , AotCB },
+ { TV_MENU_OPTIONS, -1 , "line" , WC_mline, NULL },
+ /*
+ { TVMI( OPTIONS,OPTIONS_SAVE ), "saveOptionsCmd", WC_mcmd , NULL },
+@@ -396,6 +397,16 @@ static void AfcCB( Widget w, XtPointer c
+ TVMENUSetSelectedAfcMode( p->afc_mode );
+ }
+
++/* AotCB - Change the always on top mode */
++static void AotCB( Widget w, XtPointer cl, XtPointer cb )
++{
++ TV_PREFS *p = &G_glob.prefs;
++
++ p->aot_mode = !p->aot_mode;
++ XUTILSetAlwaysOnTop( p->aot_mode );
++ TVMENUSetSelectedAotMode( p->aot_mode );
++}
++
+ void TVMENUSetSelectedInputFormat( TV_INPUT_FORMAT fmt )
+ {
+ TV_MENUITEM_DEF *mi;
+@@ -1008,6 +1019,19 @@ void TVMENUSetSelectedAfcMode( TV_BOOL a
+ NULL);
+ }
+
++void TVMENUSetSelectedAotMode( TV_BOOL aot )
++{
++ TV_MENUITEM_DEF *item = LookupMenuItemByKey( TV_MENUITEM_OPTIONS_AOT );
++ Pixmap pix;
++
++ if ( Select_pixmap == None )
++ TVMENULoadRadioPixmaps();
++
++ pix = aot ? Select_pixmap : Unselect_pixmap;
++ XtVaSetValues( item->wgt , XtNleftBitmap, pix,
++ NULL);
++}
++
+ void TVMENUSetSelectedAspectLock( TV_BOOL aspect_lock )
+ {
+ TV_MENUITEM_DEF *item = LookupMenuItemByKey( TV_MENUITEM_OPTIONS_ASPECT );
+@@ -1043,6 +1067,7 @@ void TVMENUResync()
+ TVMENUSetSelectedAudioInputDevice( aud_input );
+ TVMENUSetSelectedTunerMode ( p->tuner_mode );
+ TVMENUSetSelectedAfcMode ( p->afc_mode );
++ TVMENUSetSelectedAotMode ( p->aot_mode );
+ }
+
+ /* TVTOOLSSetStationText - Sets the channel text to the specified */
diff --git a/multimedia/fxtv/patches/patch-bd b/multimedia/fxtv/patches/patch-bd
new file mode 100644
index 00000000000..4935b444f95
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-bd
@@ -0,0 +1,21 @@
+$NetBSD: patch-bd,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
+
+--- tvmenu.h.orig 2001-02-12 20:00:59.000000000 +0100
++++ tvmenu.h
+@@ -63,6 +63,7 @@ typedef enum {
+ TV_MENUITEM_FORMAT_PALNCOMB,
+ TV_MENUITEM_OPTIONS_ASPECT,
+ TV_MENUITEM_OPTIONS_AFC,
++ TV_MENUITEM_OPTIONS_AOT,
+ TV_MENUITEM_OPTIONS_SAVE,
+ TV_MENUITEM_HELP_ABOUT,
+ TV_NUM_MENUITEMS
+@@ -101,6 +102,8 @@ void TVMENUSetSelectedAudioInputDevice(
+
+ void TVMENUSetSelectedAfcMode( TV_BOOL afc );
+
++void TVMENUSetSelectedAotMode( TV_BOOL aot );
++
+ void TVMENUSetSelectedAspectLock( TV_BOOL aspect_lock );
+
+ void TVMENUSetSelectedTunerMode( TV_TUNER_MODE mode );
diff --git a/multimedia/fxtv/patches/patch-be b/multimedia/fxtv/patches/patch-be
new file mode 100644
index 00000000000..41a65baa7a3
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-be
@@ -0,0 +1,13 @@
+$NetBSD: patch-be,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
+
+--- xutil.h.orig 2003-09-28 17:18:28.000000000 +0200
++++ xutil.h 2003-09-28 17:18:28.000000000 +0200
+@@ -137,6 +137,8 @@
+ int screen,
+ XVisualInfo **fb_visual );
+
++void XUTILSetAlwaysOnTop( TV_BOOL status );
++
+ #ifdef __cplusplus
+ } /* Close 'extern "C"' */
+ #endif
diff --git a/multimedia/fxtv/patches/patch-bf b/multimedia/fxtv/patches/patch-bf
new file mode 100644
index 00000000000..8d11067d163
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-bf
@@ -0,0 +1,70 @@
+$NetBSD: patch-bf,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
+
+--- xutil.c.orig 1999-11-05 01:38:54.000000000 +0100
++++ xutil.c
+@@ -44,6 +44,7 @@
+ #include <X11/Shell.h>
+ #include <X11/Xaw/Dialog.h>
+ #include <X11/xpm.h>
++#include "glob.h"
+ #include "tvdefines.h"
+ #include "xutil.h"
+ #include "app_rsrc.h"
+@@ -63,6 +64,10 @@ void XawScrollbarSetThumb( Widget w, flo
+
+ #define WM_BORDER_PAD 40
+
++#define _NET_WM_STATE_REMOVE 0
++#define _NET_WM_STATE_ADD 1
++#define _NET_WM_STATE_TOGGLE 2
++
+ typedef struct {
+ pid_t cmd_pid;
+ TVUTIL_PIPE_END end[3];
+@@ -1543,3 +1548,46 @@ void XUTILDetermineFrameBufferVisual( Di
+ }
+ }
+ }
++
++static void
++change_state (Display *d, Screen * screen, Window xwindow, int add,
++ Atom state1, Atom state2)
++{
++ XEvent xev;
++
++ xev.xclient.type = ClientMessage;
++ xev.xclient.serial = 0;
++ xev.xclient.send_event = True;
++ xev.xclient.display = d;
++ xev.xclient.window = xwindow;
++ xev.xclient.message_type = XInternAtom (d, "_NET_WM_STATE", FALSE);
++ xev.xclient.format = 32;
++ xev.xclient.data.l[0] = add ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE;
++ xev.xclient.data.l[1] = state1;
++ xev.xclient.data.l[2] = state2;
++
++ XSendEvent (d, RootWindowOfScreen (screen), False,
++ SubstructureRedirectMask | SubstructureNotifyMask, &xev);
++}
++
++void XUTILSetAlwaysOnTop(TV_BOOL status)
++{
++ Display *d = TVDISPLAY;
++ Screen *screen = XtScreen ( TVTOPLEVEL );
++ Window win = XtWindow ( TVTOPLEVEL );
++ static Atom xa_ABOVE = 0;
++ static Atom xa_BELOW = 0;
++
++ if (!xa_ABOVE)
++ {
++ xa_ABOVE = XInternAtom (d, "_NET_WM_STATE_ABOVE", FALSE);
++ xa_BELOW = XInternAtom (d, "_NET_WM_STATE_BELOW", FALSE);
++ }
++
++ if (status) {
++ change_state (d, screen, win, FALSE, xa_ABOVE, xa_BELOW);
++ change_state (d, screen, win, TRUE, xa_ABOVE, None);
++ } else {
++ change_state (d, screen, win, FALSE, xa_ABOVE, xa_BELOW);
++ }
++}
diff --git a/multimedia/fxtv/patches/patch-bg b/multimedia/fxtv/patches/patch-bg
new file mode 100644
index 00000000000..77a937c3dcb
--- /dev/null
+++ b/multimedia/fxtv/patches/patch-bg
@@ -0,0 +1,14 @@
+$NetBSD: patch-bg,v 1.1.1.1 2004/01/26 11:36:40 jmmv Exp $
+
+--- tv.c.orig 2001-02-12 20:03:09.000000000 +0100
++++ tv.c
+@@ -873,6 +873,9 @@ int main( int argc, char *argv[] )
+ S_wm_delete_window = XInternAtom( TVDISPLAY, "WM_DELETE_WINDOW", False );
+ XSetWMProtocols( TVDISPLAY, XtWindow( top_level ), &S_wm_delete_window, 1);
+
++ p->aot_mode = (App_res.aot_mode != FALSE);
++ XUTILSetAlwaysOnTop( p->aot_mode );
++
+ TVSCREENUpdateShellRsrcs( top_level, d->video_wgt );
+
+ TVMENUResync();