debian/0000775000000000000000000000000012237755162007202 5ustar debian/dirs0000664000000000000000000000003312207177513010055 0ustar usr/bin usr/share/man/man1 debian/source/0000775000000000000000000000000012207177513010475 5ustar debian/source/format0000664000000000000000000000001412207177513011703 0ustar 3.0 (quilt) debian/copyright0000664000000000000000000000237112207177513011133 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: dvbcut Source: https://dvbcut.svn.sourceforge.net/svnroot/dvbcut Files: * Copyright: 2006-2009 Michael Riepe 2005-2007 Sven Over License: GPL-2+ Files: debian/* Copyright: 2012 Reinhard Tartler 2012 Alessio Treglia 2009-2012 Fabrice Coutadeur 2005-2007 Sven Over License: GPL-2+ License: GPL-2+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 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. Comment: On Debian systems, the complete text of the GNU General Public License version 2 can be found in `/usr/share/common-licenses/GPL-2'. . You should have received a copy of the GNU General Public License along with this program. If not, see debian/changelog0000664000000000000000000001276112237755162011063 0ustar dvbcut (0.5.4+svn178-4build1) trusty; urgency=low * No change rebuild against libav 9. -- Dmitrijs Ledkovs Sun, 10 Nov 2013 19:11:46 +0000 dvbcut (0.5.4+svn178-4) unstable; urgency=low * Team upload. * Upload to unstable. * debian/control: - Bump Standards-Version to 3.9.4. - Build-Depends: requires debhelper >= 8.1 for build-{arch,indep} support. - Vcs-*: use anonscm.debian.org. -- Sebastian Ramacher Wed, 04 Sep 2013 16:38:27 +0200 dvbcut (0.5.4+svn178-3) experimental; urgency=low [ Alessio Treglia ] * compile against libav 9 [ Reinhard Tartler ] * add patch from rpmfusion to allow compilation against libav9 * add missing config.sub and config.guess files -- Reinhard Tartler Sat, 02 Mar 2013 20:12:53 +0100 dvbcut (0.5.4+svn178-2) unstable; urgency=low * Team upload. [ Fabrice Coutadeur ] * Adapt package to use debhelper tiny form: + debian/rules: - use debhelper tiny form - Adapt dh_auto_configure target for automake build system - Delete generated files in override_dh_auto_clean to be able to build dvbcut locally twice + debian/dvbcut.menu: rename menu file to dvbcut.menu to makes it automatically installable by debhelper + debian/dvbcut.install: rename install file to dvbcut.install as stated in the debhelper manpage and Manually installs files to avoid the local update of the mime database * Change back build system to autotools so that qt4 patch can be adopted upstream (Closes: #656793). + debian/control: - Drop scons build dependency. It's not used anymore. - Drop cmake dependency - Added b-d on autoconf to generate configure script - Added b-d on pkg-config, used to get qt4 libs and includes + port-to-qt4.patch: - Drop cmake files from qt4 patch - Update configure and src/Makefile.in for qt4 + This allows the automatic installation of desktop file and icon (Closes: #660009) * Refresh fix-ftbfs-libav0.7 patch to use -pab as quilt arg. This makes futur refreshes lighter. * Rename docs to dvbcut.docs and manpages to dvbcut.manpages to follow debhelper recommendations. thanks bojo42 for the tip. * fix_gcc_4.7.patch: fix FTBFS with gcc 4.7 because of missing include. (Closes: #667154) [ Alessio Treglia ] * Add patch to fix "Unable to open stream" error. (LP: #875030) * Update debian/copyright to copyright format 1.0. * Bump Standards. -- Alessio Treglia Tue, 24 Apr 2012 12:54:45 +0200 dvbcut (0.5.4+svn178-1) unstable; urgency=low [ Fabrice Coutadeur ] * Imported Upstream version 0.5.4+svn178. - Drop fix-ftbfs-gcc4.6 patch as it has been integrated upstream - Refresh port-to-qt4 patch * Update port-to-qt4 patch to make dvbcut usable in wheeezy (Closes: #641992, LP: #896811). Thanks Jindrich Makovicka for the patch! * port-to-qt4.patch: updated to get rid of file: prefix in the index filename * debian/rules: updated to add build-indep and build-arch recommended targets. This fixes a lintian warning. [ Reinhard Tartler ] * remove traces of the included source copy of ffmpeg * make buildlogs more verbose * Use distro-wide provided standard compiler flags -- Reinhard Tartler Sat, 21 Jan 2012 08:45:41 +0100 dvbcut (0.5.4+svn170-2) unstable; urgency=low * Upload to unstable. -- Reinhard Tartler Fri, 02 Sep 2011 11:22:19 +0200 dvbcut (0.5.4+svn170-1) experimental; urgency=low * New upstream version * Drop patches that are already applied in this upstream version * Apply patch from upstream to support qt4 * Build against qt4 * Add patch to build against Libav 0.7, Closes: #632415 Thanks to Fabrice Coutadeur * Tighten build dependencies to build against Libav 0.7 -- Reinhard Tartler Sat, 02 Jul 2011 10:59:23 +0200 dvbcut (0.5.4+svn146-2) unstable; urgency=low * Team upload. * Add patch to fix build failure with GCC4.5 (Closes: #622079). * Take patch from upstream's SVN trunk to prevent build failures with GCC4.6. * Add gbp config file. * debian/control: - Correct team's name. - Bump Standards. -- Alessio Treglia Thu, 05 May 2011 14:26:49 +0200 dvbcut (0.5.4+svn146-1) unstable; urgency=low * Package dvbcut for debian. Closes: #457272 * Add homepage field * Add watch file * Bump standards version, no changes needed * Bump debhelper compat level to 7 * Add libswscale-dev to build depends * Use Source Format 3.0 (quilt) * Fix FTBFS with gcc-4.4 * update config.sub and config.guess -- Reinhard Tartler Wed, 23 Feb 2011 11:53:19 +0100 dvbcut (0.5.4+r146-0ubuntu1~ppa) intrepid; urgency=low * First ubuntu version (SVN - revision 146) -- Fabrice Coutadeur Tue, 13 Jan 2009 22:13:06 +0100 dvbcut (0.5.4) unstable; urgency=low * New upstream version. -- Sven Over Fri, 13 Apr 2007 19:43:07 +0100 dvbcut (0.5.3) unstable; urgency=low * New upstream version. -- Sven Over Fri, 16 Dec 2005 20:15:12 +0100 dvbcut (0.5.2) unstable; urgency=low * New upstream version. * Downgraded libao-dev build-dependency to work on sarge. -- Sven Over Sun, 11 Dec 2005 13:00:12 +0100 dvbcut (0.5.1) unstable; urgency=low * Initial Release. -- Sven Over Sun, 27 Nov 2005 17:26:15 +0100 debian/dvbcut.docs0000664000000000000000000000003412207177513011333 0ustar README README.icons CREDITS debian/dvbcut.manpages0000664000000000000000000000001112207177513012171 0ustar dvbcut.1 debian/gbp.conf0000664000000000000000000000003612207177513010613 0ustar [DEFAULT] pristine-tar = True debian/control0000664000000000000000000000257312237755162010614 0ustar Source: dvbcut Section: graphics Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian Multimedia Maintainers Uploaders: Reinhard Tartler , Fabrice Coutadeur Build-Depends: debhelper (>= 8.1), dh-autoreconf, liba52-0.7.4-dev, libao-dev, libavcodec-dev (>> 6:9~), libavformat-dev (>> 6:9~), libavutil-dev (>> 6:9~), libmad0-dev, libpostproc-dev, libqt4-dev, libswscale-dev (>> 6:9~), pkg-config, qt4-dev-tools Vcs-Git: git://anonscm.debian.org/pkg-multimedia/dvbcut.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-multimedia/dvbcut.git;a=summary Homepage: http://dvbcut.sourceforge.net/ Standards-Version: 3.9.4 Package: dvbcut Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} Recommends: mplayer Description: Qt application for cutting parts out of DVB streams DVBcut is a Qt application that allows you to select certain parts of an MPEG transport stream (as received via Digital Video Broadcasting, DVB) and save these parts into a single MPEG output file. It follows a `keyhole surgery'' approach where the input video and audio data is mostly kept unchanged, and only very few frames at the beginning and/or end of the selected range are re-encoded in order to obtain a valid MPEG file. debian/dvbcut.install0000664000000000000000000000024012207177513012050 0ustar dvbcut.desktop usr/share/applications dvbcut.svg usr/share/dvbcut/icons dvbcut.xml usr/share/mime/packages src/dvbcut usr/bin src/dvbcut_en.html usr/share/help debian/rules0000775000000000000000000000246312207177513010262 0ustar #!/usr/bin/make -f DEB_SOURCE := $(shell dpkg-parsechangelog | sed -n 's/^Source: //p') DEB_VERSION := $(shell dpkg-parsechangelog | sed -n 's/^Version: //p') UPSTREAM_VERSION := $(shell echo $(DEB_VERSION) | sed -r ' s/\+[^+]+$$//') SVN_VERSION := $(shell echo $(DEB_VERSION) | sed -r 's/^[0-9.:-]+\+r//; s/-[^-]+$$//' ) SVN_URL := http://dvbcut.svn.sourceforge.net/svnroot/dvbcut/trunk ORIG_TAR_GZ := ../$(DEB_SOURCE)_$(UPSTREAM_VERSION)+svn$(SVN_VERSION).orig.tar.gz CFLAGS := $(shell dpkg-buildflags --get CFLAGS) CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) %: dh $@ --buildsystem=autoconf --with=autoreconf override_dh_auto_configure: ln -sf debian/config.sub ln -sf debian/config.guess dh_auto_configure -- --with-ffmpeg=/usr override_dh_auto_clean: rm -rf ffmpeg.src rm -rf ffmpeg-patches [ ! -f makefile ] || make -f makefile distclean dh_clean bin/dvbcut dvbcut.desktop src/Makefile src/dvbcut src/qrc_icons.cpp dh_clean config.sub config.guess dh_auto_clean override_dh_auto_install: get-orig-source: TMPDIR=`mktemp -d` && \ trap 'rm -rf $${TMPDIR}' EXIT && \ svn export -r$(SVN_VERSION) $(SVN_URL) $${TMPDIR}/dvbcut && \ rm -rf $${TMPDIR}/dvbcut/ffmpeg.src && \ rm -rf $${TMPDIR}/dvbcut/ffmpeg-patches && \ rm -rf $${TMPDIR}/dvbcut/debian && \ tar czvf $(ORIG_TAR_GZ) -C $${TMPDIR} dvbcut debian/config.guess0000775000000000000000000012743212207177513011526 0ustar #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-02-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 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 General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: debian/watch0000664000000000000000000000006412207177513010226 0ustar version=2 http://sf.net/dvbcut/dvbcut_(.+)\.tar\.bz2debian/dvbcut.menu0000664000000000000000000000017612207177513011356 0ustar ?package(dvbcut):needs="X11" section="Applications/Graphics"\ title="DVBcut" command="/usr/bin/dvbcut"\ hints="Video,DVB" debian/config.sub0000775000000000000000000010532712207177513011170 0ustar #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-04-18' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 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 General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: debian/patches/0000775000000000000000000000000012207177513010624 5ustar debian/patches/fix-ftbfs-libav0.7.patch0000664000000000000000000000736412207177513015067 0ustar Description: fix FTBFS with libav 0.7 by replacing deprecated functions with their substitute. Author: Fabrice Coutadeur Bug-Debian: http://bugs.debian.org/632415 Forwarded: no --- a/src/lavfmuxer.h +++ b/src/lavfmuxer.h @@ -73,7 +73,7 @@ public: avp.dts=dts; avp.stream_index=st[str].stream_index; if (flags & MUXER_FLAG_KEY) - avp.flags |= PKT_FLAG_KEY; + avp.flags |= AV_PKT_FLAG_KEY; int rv=av_interleaved_write_frame(avfc,&avp); --- a/src/lavfmuxer.cpp +++ b/src/lavfmuxer.cpp @@ -34,12 +34,12 @@ extern "C" { lavfmuxer::lavfmuxer(const char *format, uint32_t audiostreammask, mpgfile &mpg, const char *filename) : muxer(), avfc(0), fileopened(false) { - fmt = guess_format(format, NULL, NULL); + fmt = av_guess_format(format, NULL, NULL); if (!fmt) { return; } - avfc=av_alloc_format_context(); + avfc=avformat_alloc_context(); if (!avfc) return; @@ -73,7 +73,7 @@ lavfmuxer::lavfmuxer(const char *format, av_free(s->codec); s->codec = avcodec_alloc_context(); avcodec_get_context_defaults(s->codec); - s->codec->codec_type=CODEC_TYPE_AUDIO; + s->codec->codec_type=AVMEDIA_TYPE_AUDIO; s->codec->codec_id = (mpg.getstreamtype(astr)==streamtype::ac3audio) ? CODEC_ID_AC3 : CODEC_ID_MP2; s->codec->rc_buffer_size = 224*1024*8; @@ -92,6 +92,14 @@ lavfmuxer::lavfmuxer(const char *format, int16_t samples[AVCODEC_MAX_AUDIO_FRAME_SIZE/sizeof(int16_t)]; int frame_size=sizeof(samples); //fprintf(stderr, "** decode audio size=%d\n", sd->inbytes()); +#if LIBAVCODEC_VERSION_INT > ((52<<16)+(25<<8)+0) + AVPacket pkt; + av_init_packet( &pkt ); + pkt.data = (uint8_t*) sd->getdata(); + pkt.size = sd->inbytes(); + avcodec_decode_audio3 + (s->codec,samples,&frame_size, &pkt); +#else #if LIBAVCODEC_VERSION_INT >= ((52<<16)+(0<<8)+0) avcodec_decode_audio2 #else @@ -100,6 +108,7 @@ lavfmuxer::lavfmuxer(const char *format, (s->codec,samples,&frame_size, (uint8_t*) sd->getdata(),sd->inbytes()); avcodec_close(s->codec); +#endif } break; } --- a/src/mpgfile.cpp +++ b/src/mpgfile.cpp @@ -161,8 +161,17 @@ void mpgfile::decodegop(int start, int s while (decodebytes>0) { frameFinished=0; +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52,23,0) + AVPacket pkt; + av_init_packet( &pkt ); + pkt.data = (uint8_t*) data; + pkt.size = decodebytes; + int bytesDecoded=avcodec_decode_video2( S->avcc, avf, + &frameFinished, &pkt ); +#else int bytesDecoded=avcodec_decode_video(S->avcc, avf, &frameFinished, (uint8_t*) data, decodebytes); +#endif if (bytesDecoded<0) { fprintf(stderr,"libavcodec error while decoding frame #%d\n",pic); @@ -201,7 +210,16 @@ void mpgfile::decodegop(int start, int s if (pic < stop) { int frameFinished=0; +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52,23,0) + AVPacket pkt; + av_init_packet( &pkt ); + pkt.data = NULL; + pkt.size = 0; + avcodec_decode_video2( S->avcc, avf, + &frameFinished, &pkt ); +#else avcodec_decode_video(S->avcc, avf, &frameFinished, NULL, 0); +#endif if (frameFinished) { if (last_cpn!=avf->coded_picture_number) @@ -248,7 +266,7 @@ void mpgfile::initcodeccontexts(int vid) stream *S=&s[VIDEOSTREAM]; S->id=vid; S->allocavcc(); - S->avcc->codec_type=CODEC_TYPE_VIDEO; + S->avcc->codec_type=AVMEDIA_TYPE_VIDEO; S->avcc->codec_id=CODEC_ID_MPEG2VIDEO; S->dec=avcodec_find_decoder(CODEC_ID_MPEG2VIDEO); S->enc=avcodec_find_encoder(CODEC_ID_MPEG2VIDEO); debian/patches/updateimagedisplayfix.patch0000664000000000000000000000126012207177513016226 0ustar Description: Force update the picture of the videostream. From: https://bugs.launchpad.net/ubuntu/+source/dvbcut/+bug/875030/comments/3 Bug-Ubuntu: https://launchpad.net/bugs/875030 Bug: http://sourceforge.net/support/tracker.php?aid=3520951 Reviewed-by: Alessio Treglia --- src/dvbcut.cpp | 1 + 1 file changed, 1 insertion(+) --- dvbcut.orig/src/dvbcut.cpp +++ dvbcut/src/dvbcut.cpp @@ -1592,6 +1592,7 @@ void dvbcut::updateimagedisplay() QImage px=imgp->getimage(curpic,fine); ui->imagedisplay->setMinimumSize(px.size()); ui->imagedisplay->setPixmap(QPixmap::fromImage(px)); + ui->imagedisplay->update(); qApp->processEvents(); } } debian/patches/libav9.patch0000664000000000000000000001320012207177513013027 0ustar From: David Timms Description: add ffmpeg-0.11.1 patch Origin: rpmfusion, http://download1.rpmfusion.org/free/fedora/releases/18/Everything/source/SRPMS/dvbcut-0.6.1-8.svn179.fc18.src.rpm Updated-by: Reinhard Tartler --- a/src/lavfmuxer.cpp +++ b/src/lavfmuxer.cpp @@ -43,9 +43,16 @@ lavfmuxer::lavfmuxer(const char *format, if (!avfc) return; +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 35, 0) +// todo: what here ? +// maybe: AVFormatContext::audio_preload but no direct access. +// AVOptions +// iformat +#else avfc->preload= (int)(.5*AV_TIME_BASE); - avfc->max_delay= (int)(.7*AV_TIME_BASE); avfc->mux_rate=10080000; +#endif + avfc->max_delay= (int)(.7*AV_TIME_BASE); avfc->oformat=fmt; strncpy(avfc->filename, filename, sizeof(avfc->filename)); @@ -53,7 +60,7 @@ lavfmuxer::lavfmuxer(const char *format, int id=0; st[VIDEOSTREAM].stream_index=id; - AVStream *s=st[VIDEOSTREAM].avstr=av_new_stream(avfc,id++); + AVStream *s=st[VIDEOSTREAM].avstr=avformat_new_stream(avfc, NULL); strpres[VIDEOSTREAM]=true; av_free(s->codec); mpg.setvideoencodingparameters(); @@ -67,12 +74,12 @@ lavfmuxer::lavfmuxer(const char *format, if (audiostreammask & (1u<codec) av_free(s->codec); - s->codec = avcodec_alloc_context(); - avcodec_get_context_defaults(s->codec); + s->codec = avcodec_alloc_context3(NULL); + avcodec_get_context_defaults3(s->codec, NULL); s->codec->codec_type=AVMEDIA_TYPE_AUDIO; s->codec->codec_id = (mpg.getstreamtype(astr)==streamtype::ac3audio) ? CODEC_ID_AC3 : CODEC_ID_MP2; @@ -87,8 +94,8 @@ lavfmuxer::lavfmuxer(const char *format, break; if (sd->getitemlistsize() > 1) { - if (!avcodec_open(s->codec, - avcodec_find_decoder(s->codec->codec_id))) { + if (!avcodec_open2(s->codec, + avcodec_find_decoder(s->codec->codec_id), NULL)) { int16_t samples[AVCODEC_MAX_AUDIO_FRAME_SIZE/sizeof(int16_t)]; int frame_size=sizeof(samples); //fprintf(stderr, "** decode audio size=%d\n", sd->inbytes()); @@ -115,19 +122,36 @@ lavfmuxer::lavfmuxer(const char *format, } } +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 35, 0) + // error: 'av_set_parameters' was not declared in this scope + if (!(fmt->flags & AVFMT_NOFILE)&&(avio_open(&avfc->pb, filename, AVIO_FLAG_WRITE) < 0)) { +#else if ((av_set_parameters(avfc, NULL) < 0) || (!(fmt->flags & AVFMT_NOFILE)&&(url_fopen(&avfc->pb, filename, URL_WRONLY) < 0))) { +#endif av_free(avfc); avfc=0; return; } +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 35, 0) +// todo: what here ? +// maybe: AVFormatContext::audio_preload but no direct access. +// AVOptions +// iformat +#else avfc->preload= (int)(.5*AV_TIME_BASE); - avfc->max_delay= (int)(.7*AV_TIME_BASE); avfc->mux_rate=10080000; +#endif + avfc->max_delay= (int)(.7*AV_TIME_BASE); - +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 35, 0) + av_dump_format(avfc, 0, filename, 1); + fileopened=true; + avformat_write_header(avfc, NULL); +#else dump_format(avfc, 0, filename, 1); fileopened=true; av_write_header(avfc); +#endif } @@ -137,7 +161,9 @@ lavfmuxer::~lavfmuxer() if (fileopened) { av_write_trailer(avfc); if (!(fmt->flags & AVFMT_NOFILE)) -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(0<<8)+0) +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 35, 0) + avio_close(avfc->pb); +#elif LIBAVFORMAT_VERSION_INT >= ((52<<16)+(0<<8)+0) url_fclose(avfc->pb); #else url_fclose(&avfc->pb); --- a/src/mpgfile.cpp +++ b/src/mpgfile.cpp @@ -115,7 +115,7 @@ void mpgfile::decodegop(int start, int s sd->discard(idx[streampic].getpos().packetoffset()); } - if (int rv=avcodec_open(S->avcc, S->dec)) + if (int rv=avcodec_open2(S->avcc, S->dec, NULL)) { fprintf(stderr,"avcodec_open returned %d\n",rv); return; @@ -717,7 +717,7 @@ void mpgfile::recodevideo(muxer &mux, in return; s[VIDEOSTREAM].setvideoencodingparameters(); - if (int rv=avcodec_open(avcc, s[VIDEOSTREAM].enc)) + if (int rv=avcodec_open2(avcc, s[VIDEOSTREAM].enc, NULL)) { if (log) log->printerror("avcodec_open(mpeg2video_encoder) returned %d",rv); @@ -741,8 +741,11 @@ void mpgfile::recodevideo(muxer &mux, in f->pts=idx[idx.indexnr(start+p)].getpts()-startpts; f->coded_picture_number=f->display_picture_number=p; f->key_frame=(p==0)?1:0; +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 35, 0) + f->pict_type=(p==0)?AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P; +#else f->pict_type=(p==0)?FF_I_TYPE:FF_P_TYPE; - +#endif out = avcodec_encode_video(avcc, buf, m2v.getsize(), f); --- a/src/avframe.h +++ b/src/avframe.h @@ -22,7 +22,8 @@ #define _DVBCUT_AVFRAME_H extern "C" { -#include +#include +#include #ifdef HAVE_LIB_SWSCALE #include #endif --- a/src/stream.h +++ b/src/stream.h @@ -24,7 +24,8 @@ #include extern "C" { -#include +#include +#include } class stream @@ -52,8 +53,8 @@ protected: { if (avcc) av_free(avcc); - avcc=avcodec_alloc_context(); - avcodec_get_context_defaults(avcc); + avcc=avcodec_alloc_context3(NULL); + avcodec_get_context_defaults3(avcc, NULL); } void setvideoencodingparameters(bool interlaced=false) { debian/patches/port-to-qt4.patch0000664000000000000000000071564612207177513014002 0ustar From: Raik Bieniek Subject: qt4 support Origin: upstream, http://www.mail-archive.com/dvbcut-devel@lists.sourceforge.net/msg00196.html Hi, i've created a patch for SVN revision 170 that makes it possible to build dvbcut with Qt4 libraries. I don't know much about autotools so i used cmake as build system. Regards, Raik --- /dev/null +++ b/icons/icons.qrc @@ -0,0 +1,8 @@ + + + bookmark.png + chapter.png + play.png + stop.png + + --- a/src/avframe.cpp +++ b/src/avframe.cpp @@ -116,9 +116,9 @@ QImage avframe::getqimage(bool scaled, d if ((scaled && w!=dw)||(viewscalefactor!=1.0)) { #ifdef SMOOTHSCALE - im = im.smoothScale(int((scaled?dw:w)/viewscalefactor+0.5), int(h/viewscalefactor+0.5)); + im = im.scaled(int((scaled?dw:w)/viewscalefactor+0.5), int(h/viewscalefactor+0.5), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); #else - im = im.scale(int((scaled?dw:w)/viewscalefactor+0.5), int(h/viewscalefactor+0.5)); + im = im.scaled(int((scaled?dw:w)/viewscalefactor+0.5), int(h/viewscalefactor+0.5)); #endif } --- a/src/differenceimageprovider.cpp +++ b/src/differenceimageprovider.cpp @@ -63,7 +63,7 @@ void differenceimageprovider::decodepict delete *it; if (im.size()!=baseimg.size()) - im=im.scale(baseimg.size()); + im=im.scaled(baseimg.size()); if (im.depth()==32 && baseimg.depth()==32) for (int y=0;y #include #include -#include +#include #include #include #include @@ -122,9 +122,9 @@ void dvbcut::setbusy(bool b) // ************************************************************************** // *** dvbcut::dvbcut (private constructor) -dvbcut::dvbcut(QWidget *parent, const char *name, WFlags fl) - :dvbcutbase(parent, name, fl), - audiotrackpopup(0), recentfilespopup(0), editconvertpopup(0), audiotrackmenuid(-1), +dvbcut::dvbcut(QWidget *parent, const char *name, Qt::WFlags fl) + :Q3MainWindow(parent), + audiotrackpopup(0), recentfilespopup(0), editconvertpopup(0), audiotrackmenu(0), buf(8 << 20, 128 << 20), mpg(0), pictures(0), curpic(~0), showimage(true), fine(false), @@ -132,35 +132,46 @@ dvbcut::dvbcut(QWidget *parent, const ch mplayer_process(0), imgp(0), busy(0), viewscalefactor(1.0), nogui(false) -{ + { + ui = new Ui::dvbcutbase(); + ui->setupUi(this); #ifndef HAVE_LIB_AO - playAudio1Action->setEnabled(false); - playAudio2Action->setEnabled(false); - playAudio1Action->removeFrom(playToolbar); - playAudio2Action->removeFrom(playToolbar); - playAudio1Action->removeFrom(playMenu); - playAudio2Action->removeFrom(playMenu); + ui->playAudio1Action->setEnabled(false); + ui->playAudio2Action->setEnabled(false); + ui->playToolbar->removeAction(ui->playAudio1Action); + ui->playToolbar->removeAction(ui->playAudio2Action); + ui->playMenu->removeAction(ui->playAudio1Action); + ui->playMenu->removeAction(ui->playAudio2Action); #endif // ! HAVE_LIB_AO - audiotrackpopup=new QPopupMenu(this); - playMenu->insertSeparator(); - audiotrackmenuid=playMenu->insertItem(QString("Audio track"),audiotrackpopup); + audiotrackpopup=new QMenu(QString("Audio track"), this); + ui->playMenu->insertSeparator(); + audiotrackmenu=ui->playMenu->addMenu(audiotrackpopup); connect( audiotrackpopup, SIGNAL( activated(int) ), this, SLOT( audiotrackchosen(int) ) ); - recentfilespopup=new QPopupMenu(this); - fileMenu->insertItem(QString("Open recent..."),recentfilespopup,-1,2); + recentfilespopup=new QMenu(QString("Open recent..."), this); + ui->fileMenu->insertMenu(ui->fileSaveAction, recentfilespopup); connect( recentfilespopup, SIGNAL( activated(int) ), this, SLOT( loadrecentfile(int) ) ); connect( recentfilespopup, SIGNAL( aboutToShow() ), this, SLOT( abouttoshowrecentfiles() ) ); - editconvertpopup=new QPopupMenu(this); - editMenu->insertItem(QString("Convert bookmarks"),editconvertpopup,-1,8); + editconvertpopup=new QMenu(QString("Convert bookmarks"), this); + ui->editMenu->insertMenu(ui->editBookmarkAction, editconvertpopup); connect( editconvertpopup, SIGNAL( activated(int) ), this, SLOT( editConvert(int) ) ); connect( editconvertpopup, SIGNAL( aboutToShow() ), this, SLOT( abouttoshoweditconvert() ) ); + + ui->fileOpenAction->setIcon(QIcon::fromTheme("document-open")); + ui->fileSaveAction->setIcon(QIcon::fromTheme("document-save")); + ui->fileSaveAsAction->setIcon(QIcon::fromTheme("document-save-as")); + ui->snapshotSaveAction->setIcon(QIcon::fromTheme("camera-photo")); + ui->playPlayAction->setIcon(QIcon::fromTheme("media-playback-start")); + ui->playStopAction->setIcon(QIcon::fromTheme("media-playback-pause")); + ui->playAudio1Action->setIcon(QIcon::fromTheme("media-seek-backward")); + ui->playAudio2Action->setIcon(QIcon::fromTheme("media-seek-forward")); setviewscalefactor(settings().viewscalefactor); // install event handler - linslider->installEventFilter(this); + ui->linslider->installEventFilter(this); // set caption setCaption(QString(VERSION_STRING)); @@ -172,7 +183,7 @@ dvbcut::dvbcut(QWidget *parent, const ch dvbcut::~dvbcut() { if (mplayer_process) { - mplayer_process->tryTerminate(); + mplayer_process->terminate(); delete mplayer_process; } @@ -187,6 +198,8 @@ dvbcut::~dvbcut() delete imgp; if (mpg) delete mpg; + if(ui) + delete ui; } // ************************************************************************** @@ -213,18 +226,18 @@ void dvbcut::fileSaveAs() prefix = prefix.substr(0, lastdot); prjfilen = prefix + ".dvbcut"; int nr = 0; - while (QFileInfo(QString(prjfilen)).exists()) + while (QFileInfo(QString::fromStdString(prjfilen)).exists()) prjfilen = prefix + "_" + ((const char*)QString::number(++nr)) + ".dvbcut"; } QString s=QFileDialog::getSaveFileName( - prjfilen, + QString::fromStdString(prjfilen), settings().prjfilter, this, "Save project as...", "Choose the name of the project file" ); - if (!s) + if (s.isNull()) return; if (QFileInfo(s).exists() && question( @@ -245,10 +258,12 @@ void dvbcut::fileSave() return; } - QFile outfile(prjfilen); - if (!outfile.open(IO_WriteOnly)) { - critical("Failed to write project file - dvbcut", - QString(prjfilen) + ":\nCould not open file"); + QFile outfile(QString::fromStdString(prjfilen)); + if (!outfile.open(QIODevice::WriteOnly)) { + QMessageBox::critical(this,"Failed to write project file - dvbcut",QString::fromStdString(prjfilen)+ + ":\nCould not open file", + QMessageBox::Abort, + QMessageBox::NoButton); return; } @@ -264,18 +279,18 @@ void dvbcut::fileSave() std::list::const_iterator it = mpgfilen.begin(); while (it != mpgfilen.end()) { QDomElement elem = doc.createElement("mpgfile"); - elem.setAttribute("path", *it); + elem.setAttribute("path", QString::fromStdString(*it)); root.appendChild(elem); ++it; } if (!idxfilen.empty()) { QDomElement elem = doc.createElement("idxfile"); - elem.setAttribute("path", idxfilen); + elem.setAttribute("path", QString::fromStdString(idxfilen)); root.appendChild(elem); } - for (QListBoxItem *item=eventlist->firstItem();item;item=item->next()) + for (Q3ListBoxItem *item=ui->eventlist->firstItem();item;item=item->next()) if (item->rtti()==EventListItem::RTTI()) { QString elemname; EventListItem *eli=(EventListItem*)item; @@ -300,7 +315,7 @@ void dvbcut::fileSave() QTextStream stream(&outfile); stream.setEncoding(QTextStream::Latin1); stream << "\n"; - stream << doc.toCString(); + stream << doc.toString().toStdString().c_str(); outfile.close(); } @@ -316,7 +331,7 @@ void dvbcut::chapterSnapshotsSave() { int found=0; std::vector piclist; - for (QListBoxItem *item=eventlist->firstItem();item;item=item->next()) + for (Q3ListBoxItem *item=ui->eventlist->firstItem();item;item=item->next()) if (item->rtti()==EventListItem::RTTI()) { EventListItem *eli=(EventListItem*)item; if (eli->geteventtype()==EventListItem::chapter) { @@ -345,15 +360,15 @@ void dvbcut::snapshotSave(std::vector= 0 && lastdot > lastslash) prefix = prefix.left(lastdot); int nr = first; @@ -395,13 +410,13 @@ void dvbcut::snapshotSave(std::vectormessage("Saved snapshot: " + s); + statusBar()->showMessage("Saved snapshot: " + s); else - statusBar()->message("*** Unable to save snapshot: " + s + "! ***"); + statusBar()->showMessage("*** Unable to save snapshot: " + s + "! ***"); // try to "increment" the choosen filename for next snapshot (or use old name as default) // No usage of "delim", so it's possible to choose any prefix in front of the number field! - i = s.findRev(QRegExp("\\d{"+QString::number(width)+","+QString::number(width)+"}\\."+ext+"$")); + i = s.lastIndexOf(QRegExp("\\d{"+QString::number(width)+","+QString::number(width)+"}\\."+ext+"$")); if (i>0) { nr = s.mid(i,width).toInt(&ok,10); if (ok) @@ -512,31 +527,31 @@ void dvbcut::fileExport() newexpfilen=newexpfilen.substr(0,lastdot); expfilen=newexpfilen+".mpg"; int nr=0; - while (QFileInfo(QString(expfilen)).exists()) + while (QFileInfo(QString::fromStdString(expfilen)).exists()) expfilen=newexpfilen+"_"+((const char*)QString::number(++nr))+".mpg"; } } - std::auto_ptr expd(new exportdialog(expfilen,this)); - expd->muxercombo->insertItem("MPEG program stream/DVD (DVBCUT multiplexer)"); - expd->muxercombo->insertItem("MPEG program stream (DVBCUT multiplexer)"); - expd->muxercombo->insertItem("MPEG program stream/DVD (libavformat)"); - expd->muxercombo->insertItem("MPEG transport stream (libavformat)"); + std::auto_ptr expd(new exportdialog(QString::fromStdString(expfilen),this)); + expd->ui->muxercombo->insertItem("MPEG program stream/DVD (DVBCUT multiplexer)"); + expd->ui->muxercombo->insertItem("MPEG program stream (DVBCUT multiplexer)"); + expd->ui->muxercombo->insertItem("MPEG program stream/DVD (libavformat)"); + expd->ui->muxercombo->insertItem("MPEG transport stream (libavformat)"); #ifndef __WIN32__ // add possible user configured pipe commands - int pipe_items_start=expd->muxercombo->count(); + int pipe_items_start=expd->ui->muxercombo->count(); for (unsigned int i = 0; i < settings().pipe_command.size(); ++i) - expd->muxercombo->insertItem(settings().pipe_label[i]); + expd->ui->muxercombo->insertItem(settings().pipe_label[i]); #endif if (settings().export_format < 0 - || settings().export_format >= expd->muxercombo->count()) + || settings().export_format >= expd->ui->muxercombo->count()) settings().export_format = 0; - expd->muxercombo->setCurrentItem(settings().export_format); + expd->ui->muxercombo->setCurrentItem(settings().export_format); for(int a=0;agetaudiostreams();++a) { - expd->audiolist->insertItem(mpg->getstreaminfo(audiostream(a)).c_str()); - expd->audiolist->setSelected(a,true); + expd->ui->audiolist->insertItem(mpg->getstreaminfo(audiostream(a)).c_str()); + expd->ui->audiolist->setSelected(a,true); } int expfmt = 0; @@ -545,14 +560,14 @@ void dvbcut::fileExport() if (!expd->exec()) return; - settings().export_format = expd->muxercombo->currentItem(); - expfmt = expd->muxercombo->currentItem(); + settings().export_format = expd->ui->muxercombo->currentItem(); + expfmt = expd->ui->muxercombo->currentItem(); - expfilen=(const char *)(expd->filenameline->text()); + expfilen=(const char *)(expd->ui->filenameline->text()); if (expfilen.empty()) return; expd->hide(); - } else if (exportformat > 0 && exportformat < expd->muxercombo->count()) + } else if (exportformat > 0 && exportformat < expd->ui->muxercombo->count()) expfmt = exportformat; // create usable chapter lists @@ -641,9 +656,9 @@ void dvbcut::fileExport() } } else #endif - if (QFileInfo(expfilen).exists() && question( + if (QFileInfo(QString::fromStdString(expfilen)).exists() && question( "File exists - dvbcut", - expfilen+"\nalready exists. " + QString::fromStdString(expfilen)+"\nalready exists. " "Overwrite?") != QMessageBox::Yes) return; @@ -655,7 +670,7 @@ void dvbcut::fileExport() } else { prgwin = new progresswindow(this); - prgwin->setCaption(QString("export - " + expfilen)); + prgwin->setCaption(QString("export - " + QString::fromStdString(expfilen))); log = prgwin; } @@ -665,7 +680,7 @@ void dvbcut::fileExport() uint32_t audiostreammask(0); for(int a=0;agetaudiostreams();++a) - if (expd->audiolist->isSelected(a)) + if (expd->ui->audiolist->isSelected(a)) audiostreammask|=1u<print("Command reported some problems... please check!"); } //else @@ -816,7 +831,7 @@ void dvbcut::fileClose() void dvbcut::addEventListItem(int pic, EventListItem::eventtype type) { //check if requested EventListItem is already in list to avoid doubles! - for (QListBoxItem *item=eventlist->firstItem();item;item=item->next()) + for (Q3ListBoxItem *item=ui->eventlist->firstItem();item;item=item->next()) if (item->rtti()==EventListItem::RTTI()) { EventListItem *eli=(EventListItem*)item; if (pic==eli->getpicture() && type==eli->geteventtype()) @@ -828,8 +843,8 @@ void dvbcut::addEventListItem(int pic, E p = imgp->getimage(pic); else p = imageprovider(*mpg, new dvbcutbusy(this), false, 4).getimage(pic); - - new EventListItem(eventlist, p, type, pic, (*mpg)[pic].getpicturetype(), + + new EventListItem(ui->eventlist, p, type, pic, (*mpg)[pic].getpicturetype(), (*mpg)[pic].getpts() - firstpts); } @@ -897,7 +912,7 @@ void dvbcut::editAutoChapters() p1 = p2; p2 = imgp->getimage(pic,fine); if (p2.size()!=p1.size()) - p2=p2.scale(p1.size()); + p2=p2.scaled(p1.size()); // calculate color distance between two consecutive frames double dist=0.; @@ -920,7 +935,7 @@ void dvbcut::editAutoChapters() //fprintf(stderr,"%d, DIST=%f\n",pic,dist); if(dist>settings().chapter_threshold) { inpic=pic; - statusBar()->message(QString().sprintf("%d. Scene change @ %d, DIST=%f\n",chapters+1,inpic,dist)); + statusBar()->showMessage(QString().sprintf("%d. Scene change @ %d, DIST=%f\n",chapters+1,inpic,dist)); break; } } @@ -943,7 +958,7 @@ void dvbcut::editSuggest() found++; } if (!found) - statusBar()->message(QString("*** No aspect ratio changes detected! ***")); + statusBar()->showMessage(QString("*** No aspect ratio changes detected! ***")); } void dvbcut::editImport() @@ -955,7 +970,7 @@ void dvbcut::editImport() found++; } if (!found) - statusBar()->message(QString("*** No valid bookmarks available/found! ***")); + statusBar()->showMessage(QString("*** No valid bookmarks available/found! ***")); } @@ -975,7 +990,7 @@ void dvbcut::editConvert(int option) int found=0; std::vector cutlist; - for (QListBoxItem *item=eventlist->firstItem();item;item=item->next()) + for (Q3ListBoxItem *item=ui->eventlist->firstItem();item;item=item->next()) if (item->rtti()==EventListItem::RTTI()) { EventListItem *eli=(EventListItem*)item; if (eli->geteventtype()==EventListItem::bookmark) { @@ -988,10 +1003,10 @@ void dvbcut::editConvert(int option) addStartStopItems(cutlist, option); if (found%2) - statusBar()->message(QString("*** No matching stop marker!!! ***")); + statusBar()->showMessage(QString("*** No matching stop marker!!! ***")); } else - statusBar()->message(QString("*** No bookmarks to convert! ***")); + statusBar()->showMessage(QString("*** No bookmarks to convert! ***")); } void dvbcut::addStartStopItems(std::vector cutlist, int option) @@ -1005,10 +1020,10 @@ void dvbcut::addStartStopItems(std::vect alternate=false; // make sure list is sorted... - sort(cutlist.begin(),cutlist.end()); + std::sort(cutlist.begin(),cutlist.end()); // ...AND there are no old START/STOP pairs!!! - for (QListBoxItem *item=eventlist->firstItem();item;item=item->next()) + for (Q3ListBoxItem *item=ui->eventlist->firstItem();item;item=item->next()) if (item->rtti()==EventListItem::RTTI()) { EventListItem *eli=(EventListItem*)item; if (eli->geteventtype()==EventListItem::start || eli->geteventtype()==EventListItem::stop) @@ -1040,9 +1055,9 @@ void dvbcut::addStartStopItems(std::vect void dvbcut::viewDifference() { - viewNormalAction->setOn(false); - viewUnscaledAction->setOn(false); - viewDifferenceAction->setOn(true); + ui->viewNormalAction->setChecked(false); + ui->viewUnscaledAction->setChecked(false); + ui->viewDifferenceAction->setChecked(true); if (imgp) delete imgp; @@ -1053,9 +1068,9 @@ void dvbcut::viewDifference() void dvbcut::viewUnscaled() { - viewNormalAction->setOn(false); - viewUnscaledAction->setOn(true); - viewDifferenceAction->setOn(false); + ui->viewNormalAction->setChecked(false); + ui->viewUnscaledAction->setChecked(true); + ui->viewDifferenceAction->setChecked(false); if (!imgp || imgp->rtti()!=IMAGEPROVIDER_UNSCALED) { if (imgp) @@ -1068,9 +1083,9 @@ void dvbcut::viewUnscaled() void dvbcut::viewNormal() { - viewNormalAction->setOn(true); - viewUnscaledAction->setOn(false); - viewDifferenceAction->setOn(false); + ui->viewNormalAction->setChecked(true); + ui->viewUnscaledAction->setChecked(false); + ui->viewDifferenceAction->setChecked(false); if (!imgp || imgp->rtti()!=IMAGEPROVIDER_STANDARD) { if (imgp) @@ -1115,88 +1130,81 @@ void dvbcut::playPlay() if (mplayer_process) return; - eventlist->setEnabled(false); - linslider->setEnabled(false); - jogslider->setEnabled(false); - gobutton->setEnabled(false); - goinput->setEnabled(false); - gobutton2->setEnabled(false); - goinput2->setEnabled(false); + + ui->eventlist->setEnabled(false); + ui->linslider->setEnabled(false); + ui->jogslider->setEnabled(false); + ui->gobutton->setEnabled(false); + ui->goinput->setEnabled(false); + ui->gobutton2->setEnabled(false); + ui->goinput2->setEnabled(false); #ifdef HAVE_LIB_AO - playAudio1Action->setEnabled(false); - playAudio2Action->setEnabled(false); + ui->playAudio1Action->setEnabled(false); + ui->playAudio2Action->setEnabled(false); #endif // HAVE_LIB_AO - playPlayAction->setEnabled(false); - playStopAction->setEnabled(true); - menubar->setItemEnabled(audiotrackmenuid,false); - - fileOpenAction->setEnabled(false); - fileSaveAction->setEnabled(false); - fileSaveAsAction->setEnabled(false); - snapshotSaveAction->setEnabled(false); - chapterSnapshotsSaveAction->setEnabled(false); - fileExportAction->setEnabled(false); + ui->playPlayAction->setEnabled(false); + ui->playStopAction->setEnabled(true); + audiotrackmenu->setEnabled(false); + + ui->fileOpenAction->setEnabled(false); + ui->fileSaveAction->setEnabled(false); + ui->fileSaveAsAction->setEnabled(false); + ui->snapshotSaveAction->setEnabled(false); + ui->chapterSnapshotsSaveAction->setEnabled(false); + ui->fileExportAction->setEnabled(false); showimage=false; - imagedisplay->setPixmap(QPixmap()); - imagedisplay->grabKeyboard(); + ui->imagedisplay->setPixmap(QPixmap()); + ui->imagedisplay->grabKeyboard(); fine=true; - linslider->setValue(mpg->lastiframe(curpic)); + ui->linslider->setValue(mpg->lastiframe(curpic)); dvbcut_off_t offset=(*mpg)[curpic].getpos().packetposition(); mplayer_curpts=(*mpg)[curpic].getpts(); + QString process("mplayer"); + QStringList arguments; + + arguments << "-noconsolecontrols"; dvbcut_off_t partoffset; int partindex = buf.getfilenum(offset, partoffset); if (partindex == -1) return; // what else can we do? - mplayer_process=new QProcess(QString("mplayer")); - mplayer_process->addArgument("-noconsolecontrols"); #ifdef __WIN32__ - mplayer_process->addArgument("-vo"); - mplayer_process->addArgument("directx:noaccel"); + arguments << "-vo" << "directx:noaccel"; #endif - mplayer_process->addArgument("-wid"); - mplayer_process->addArgument(QString().sprintf("0x%x",int(imagedisplay->winId()))); - mplayer_process->addArgument("-sb"); - mplayer_process->addArgument(QString::number(offset - partoffset)); - mplayer_process->addArgument("-geometry"); - mplayer_process->addArgument(QString().sprintf("%dx%d+0+0",int(imagedisplay->width()),int(imagedisplay->height()))); + arguments << "-wid" << QString().sprintf("0x%x",int(ui->imagedisplay->winId())); + arguments << "-sb" << QString::number(offset - partoffset); + arguments << "-geometry" << QString().sprintf("%dx%d+0+0",int(ui->imagedisplay->width()),int(ui->imagedisplay->height())); if (currentaudiotrack>=0 && currentaudiotrackgetaudiostreams()) { - mplayer_process->addArgument("-aid"); - mplayer_process->addArgument(QString().sprintf("0x%x",int(mpg->mplayeraudioid(currentaudiotrack)))); - } - + arguments << "-aid" << QString().sprintf("0x%x",int(mpg->mplayeraudioid(currentaudiotrack))); + } + // for now, pass all filenames from the current one up to the last one std::list::const_iterator it = mpgfilen.begin(); for (int i = 0; it != mpgfilen.end(); ++i, ++it) if (i >= partindex) - mplayer_process->addArgument(QString(*it)); - - mplayer_process->setCommunication(QProcess::Stdout|QProcess::Stderr|QProcess::DupStderr); - - connect(mplayer_process, SIGNAL(processExited()), this, SLOT(mplayer_exited())); - connect(mplayer_process, SIGNAL(readyReadStdout()), this, SLOT(mplayer_readstdout())); + arguments << QString::fromStdString(*it); + + mplayer_process=new QProcess(this); + mplayer_process->setReadChannel(QProcess::StandardOutput); + mplayer_process->setProcessChannelMode(QProcess::MergedChannels); + connect(mplayer_process, SIGNAL(finished(int)), this, SLOT(mplayer_exited())); + connect(mplayer_process, SIGNAL(readyReadStandardOutput()), this, SLOT(mplayer_readstdout())); mplayer_success=false; - - if (!mplayer_process->start()) { - delete mplayer_process; - mplayer_process=0; - mplayer_exited(); - return; - } + mplayer_process->start(process, arguments); } void dvbcut::playStop() { if (mplayer_process) - mplayer_process->tryTerminate(); + mplayer_process->terminate(); } void dvbcut::playAudio1() @@ -1255,7 +1263,7 @@ void dvbcut::jogsliderreleased() { jogsliding=false; jogmiddlepic=curpic; - jogslider->setValue(0); + ui->jogslider->setValue(0); } void dvbcut::jogslidervalue(int v) @@ -1301,24 +1309,23 @@ void dvbcut::jogslidervalue(int v) } else fine=true; - if (curpic!=newpic) - linslider->setValue(newpic); + if (curpic!=newpic) + ui->linslider->setValue(newpic); fine=false; } - -void dvbcut::doubleclickedeventlist(QListBoxItem *lbi) +void dvbcut::doubleclickedeventlist(Q3ListBoxItem *lbi) { if (lbi->rtti()!=EventListItem::RTTI()) return; fine=true; - linslider->setValue(((EventListItem*)lbi)->getpicture()); + ui->linslider->setValue(((EventListItem*)lbi)->getpicture()); fine=false; } -void dvbcut::eventlistcontextmenu(QListBoxItem *lbi, const QPoint &point) +void dvbcut::eventlistcontextmenu(Q3ListBoxItem *lbi, const QPoint &point) { if (!lbi) return; @@ -1327,7 +1334,7 @@ void dvbcut::eventlistcontextmenu(QListB // is it a problem to have no "const EventListItem &eli=..."? Needed for seteventtype()...! EventListItem &eli=*static_cast(lbi); - QPopupMenu popup(eventlist); + Q3PopupMenu popup(ui->eventlist); popup.insertItem("Go to",1); popup.insertItem("Delete",2); popup.insertItem("Delete others",3); @@ -1341,14 +1348,14 @@ void dvbcut::eventlistcontextmenu(QListB popup.insertItem("Convert to bookmark",11); popup.insertItem("Display difference from this picture",12); - QListBox *lb=lbi->listBox(); - QListBoxItem *first=lb->firstItem(),*current,*next; + Q3ListBox *lb=lbi->listBox(); + Q3ListBoxItem *first=lb->firstItem(),*current,*next; EventListItem::eventtype cmptype=EventListItem::none, cmptype2=EventListItem::none; switch (popup.exec(point)) { case 1: fine=true; - linslider->setValue(eli.getpicture()); + ui->linslider->setValue(eli.getpicture()); fine=false; break; @@ -1418,9 +1425,9 @@ void dvbcut::eventlistcontextmenu(QListB delete imgp; imgp=new differenceimageprovider(*mpg,eli.getpicture(),new dvbcutbusy(this),false,viewscalefactor); updateimagedisplay(); - viewNormalAction->setOn(false); - viewUnscaledAction->setOn(false); - viewDifferenceAction->setOn(true); + ui->viewNormalAction->setChecked(false); + ui->viewUnscaledAction->setChecked(false); + ui->viewDifferenceAction->setChecked(true); break; } @@ -1428,19 +1435,19 @@ void dvbcut::eventlistcontextmenu(QListB void dvbcut::clickedgo() { - QString text=goinput->text(); - text.stripWhiteSpace(); + QString text=ui->goinput->text(); + text.trimmed(); bool okay=false; int inpic; if (text.contains(':') || text.contains('.')) { okay=true; - inpic=string2pts(text)/getTimePerFrame(); + inpic=string2pts(text.toStdString())/getTimePerFrame(); } else inpic=text.toInt(&okay,0); if (okay) { fine=true; - linslider->setValue(inpic); + ui->linslider->setValue(inpic); fine=false; } //goinput->clear(); @@ -1448,13 +1455,13 @@ void dvbcut::clickedgo() void dvbcut::clickedgo2() { - QString text=goinput2->text(); - text.stripWhiteSpace(); + QString text=ui->goinput2->text(); + text.trimmed(); bool okay=false; int inpic, outpic; if (text.contains(':') || text.contains('.')) { okay=true; - outpic=string2pts(text)/getTimePerFrame(); + outpic=string2pts(text.toStdString())/getTimePerFrame(); } else outpic=text.toInt(&okay,0); @@ -1464,7 +1471,7 @@ void dvbcut::clickedgo2() std::upper_bound(quick_picture_lookup.begin(),quick_picture_lookup.end(),outpic,quick_picture_lookup_s::cmp_outpicture()); inpic=outpic-it->outpicture+it->stoppicture; fine=true; - linslider->setValue(inpic); + ui->linslider->setValue(inpic); fine=false; } //goinput2->clear(); @@ -1475,42 +1482,44 @@ void dvbcut::mplayer_exited() if (mplayer_process) { if (!mplayer_success)// && !mplayer_process->normalExit()) { - mplayererrorbase *meb=new mplayererrorbase(this,0,false,WDestructiveClose); - meb->textbrowser->setText(mplayer_out); - meb->show(); + mplayererrorbase *meb=new mplayererrorbase(this); + meb->setText(mplayer_out); } - - - delete mplayer_process; + mplayer_process->deleteLater(); mplayer_process=0; } - - eventlist->setEnabled(true); - linslider->setEnabled(true); - jogslider->setEnabled(true); - gobutton->setEnabled(true); - goinput->setEnabled(true); - gobutton2->setEnabled(true); - goinput2->setEnabled(true); + + ui->eventlist->setEnabled(true); + ui->linslider->setEnabled(true); + ui->jogslider->setEnabled(true); + ui->gobutton->setEnabled(true); + ui->goinput->setEnabled(true); + ui->eventlist->setEnabled(true); + ui->linslider->setEnabled(true); + ui->jogslider->setEnabled(true); + ui->gobutton->setEnabled(true); + ui->goinput->setEnabled(true); + ui->gobutton2->setEnabled(true); + ui->goinput2->setEnabled(true); #ifdef HAVE_LIB_AO - playAudio1Action->setEnabled(true); - playAudio2Action->setEnabled(true); + ui->playAudio1Action->setEnabled(true); + ui->playAudio2Action->setEnabled(true); #endif // HAVE_LIB_AO - playPlayAction->setEnabled(true); - playStopAction->setEnabled(false); - menubar->setItemEnabled(audiotrackmenuid,true); - - fileOpenAction->setEnabled(true); - fileSaveAction->setEnabled(true); - fileSaveAsAction->setEnabled(true); - snapshotSaveAction->setEnabled(true); - chapterSnapshotsSaveAction->setEnabled(true); - fileExportAction->setEnabled(true); + ui->playPlayAction->setEnabled(true); + ui->playStopAction->setEnabled(false); + audiotrackmenu->setEnabled(true); + + ui->fileOpenAction->setEnabled(true); + ui->fileSaveAction->setEnabled(true); + ui->fileSaveAsAction->setEnabled(true); + ui->snapshotSaveAction->setEnabled(true); + ui->chapterSnapshotsSaveAction->setEnabled(true); + ui->fileExportAction->setEnabled(true); - imagedisplay->releaseKeyboard(); + ui->imagedisplay->releaseKeyboard(); int cp=curpic; jogmiddlepic=curpic; @@ -1518,7 +1527,7 @@ void dvbcut::mplayer_exited() showimage=true; fine=true; linslidervalue(cp); - linslider->setValue(cp); + ui->linslider->setValue(cp); fine=false; } @@ -1527,19 +1536,19 @@ void dvbcut::mplayer_readstdout() if (!mplayer_process) return; - QString line(mplayer_process->readStdout()); + QString line(mplayer_process->readAllStandardOutput()); if (!line.length()) return; if (!mplayer_success) mplayer_out += line; - int pos=line.find("V:"); + int pos=line.indexOf("V:"); if (pos<0) return; line.remove(0,pos+2); - line=line.stripWhiteSpace(); + line=line.trimmed(); for(pos=0;pos<(signed)line.length();++pos) if ((line[pos]<'0' || line[pos]>'9')&&line[pos]!='.') break; @@ -1572,7 +1581,7 @@ void dvbcut::mplayer_readstdout() mplayer_curpts=(*mpg)[--cp].getpts(); } - linslider->setValue(cp); + ui->linslider->setValue(cp); } void dvbcut::updateimagedisplay() @@ -1580,9 +1589,9 @@ void dvbcut::updateimagedisplay() if (showimage) { if (!imgp) imgp=new imageprovider(*mpg,new dvbcutbusy(this),false,viewscalefactor); - QPixmap px=imgp->getimage(curpic,fine); - imagedisplay->setMinimumSize(px.size()); - imagedisplay->setPixmap(px); + QImage px=imgp->getimage(curpic,fine); + ui->imagedisplay->setMinimumSize(px.size()); + ui->imagedisplay->setPixmap(QPixmap::fromImage(px)); qApp->processEvents(); } } @@ -1601,10 +1610,10 @@ void dvbcut::abouttoshowrecentfiles() recentfilespopup->clear(); QString menuitem; for(unsigned int id=0; id1) menuitem += " ... (+" + QString::number(settings().recentfiles[id].first.size()-1) + ")"; - recentfilespopup->insertItem(menuitem,(signed)id); + recentfilespopup->addAction(menuitem); } } @@ -1638,7 +1647,7 @@ void dvbcut::open(std::list // remember last directory if requested if (settings().lastdir_update) { QString dir = fn.front(); - int n = dir.findRev('/'); + int n = dir.lastIndexOf('/'); if (n > 0) dir = dir.left(n); // adding a slash is NEEDED for top level directories (win or linux), and doesn't matter otherwise! @@ -1656,7 +1665,7 @@ void dvbcut::open(std::list std::string filename = filenames.front(); // a valid file name has been entered - setCaption(QString(VERSION_STRING " - " + filename)); + setCaption(QString(VERSION_STRING " - " + QString::fromStdString(filename))); // reset inbuffer buf.reset(); @@ -1672,76 +1681,75 @@ void dvbcut::open(std::list delete imgp; imgp=0; } - eventlist->clear(); - imagedisplay->setBackgroundMode(Qt::PaletteBackground); - imagedisplay->setMinimumSize(QSize(0,0)); - imagedisplay->setPixmap(QPixmap()); - pictimelabel->clear(); - pictimelabel2->clear(); - picinfolabel->clear(); - picinfolabel2->clear(); - linslider->setValue(0); - jogslider->setValue(0); - - viewNormalAction->setOn(true); - viewUnscaledAction->setOn(false); - viewDifferenceAction->setOn(false); - - fileOpenAction->setEnabled(false); - fileSaveAction->setEnabled(false); - fileSaveAsAction->setEnabled(false); - snapshotSaveAction->setEnabled(false); - chapterSnapshotsSaveAction->setEnabled(false); + ui->eventlist->clear(); + ui->imagedisplay->setBackgroundMode(Qt::PaletteBackground); + ui->imagedisplay->setMinimumSize(QSize(0,0)); + ui->imagedisplay->setPixmap(QPixmap()); + ui->pictimelabel->clear(); + ui->pictimelabel2->clear(); + ui->picinfolabel->clear(); + ui->picinfolabel2->clear(); + ui->linslider->setValue(0); + ui->jogslider->setValue(0); + + ui->viewNormalAction->setChecked(true); + ui->viewUnscaledAction->setChecked(false); + ui->viewDifferenceAction->setChecked(false); + + ui->fileOpenAction->setEnabled(false); + ui->fileSaveAction->setEnabled(false); + ui->fileSaveAsAction->setEnabled(false); + ui->snapshotSaveAction->setEnabled(false); + ui->chapterSnapshotsSaveAction->setEnabled(false); // enable closing even if no file was loaded (mr) //fileCloseAction->setEnabled(false); - fileExportAction->setEnabled(false); - playPlayAction->setEnabled(false); - playStopAction->setEnabled(false); - menubar->setItemEnabled(audiotrackmenuid,false); + ui->fileExportAction->setEnabled(false); + ui->playPlayAction->setEnabled(false); + ui->playStopAction->setEnabled(false); + audiotrackmenu->setEnabled(false); audiotrackpopup->clear(); - editStartAction->setEnabled(false); - editStopAction->setEnabled(false); - editChapterAction->setEnabled(false); - editBookmarkAction->setEnabled(false); - editAutoChaptersAction->setEnabled(false); - editSuggestAction->setEnabled(false); - editImportAction->setEnabled(false); + ui->editStartAction->setEnabled(false); + ui->editStopAction->setEnabled(false); + ui->editChapterAction->setEnabled(false); + ui->editBookmarkAction->setEnabled(false); + ui->editAutoChaptersAction->setEnabled(false); + ui->editSuggestAction->setEnabled(false); + ui->editImportAction->setEnabled(false); //editConvertAction->setEnabled(false); #ifdef HAVE_LIB_AO - playAudio1Action->setEnabled(false); - playAudio2Action->setEnabled(false); + ui->playAudio1Action->setEnabled(false); + ui->playAudio2Action->setEnabled(false); #endif // HAVE_LIB_AO - viewNormalAction->setEnabled(false); - viewUnscaledAction->setEnabled(false); - viewDifferenceAction->setEnabled(false); - - eventlist->setEnabled(false); - imagedisplay->setEnabled(false); - pictimelabel->setEnabled(false); - pictimelabel2->setEnabled(false); - picinfolabel->setEnabled(false); - picinfolabel2->setEnabled(false); - goinput->setEnabled(false); - gobutton->setEnabled(false); - goinput2->setEnabled(false); - gobutton2->setEnabled(false); - linslider->setEnabled(false); - jogslider->setEnabled(false); + ui->viewNormalAction->setEnabled(false); + ui->viewUnscaledAction->setEnabled(false); + ui->viewDifferenceAction->setEnabled(false); + + ui->eventlist->setEnabled(false); + ui->imagedisplay->setEnabled(false); + ui->pictimelabel->setEnabled(false); + ui->pictimelabel2->setEnabled(false); + ui->picinfolabel->setEnabled(false); + ui->picinfolabel2->setEnabled(false); + ui->goinput->setEnabled(false); + ui->gobutton->setEnabled(false); + ui->goinput2->setEnabled(false); + ui->gobutton2->setEnabled(false); + ui->linslider->setEnabled(false); + ui->jogslider->setEnabled(false); std::string prjfilename; QDomDocument domdoc; { - QFile infile(filename); - if (infile.open(IO_ReadOnly)) { + QFile infile(QString::fromStdString(filename)); + if (infile.open(QIODevice::ReadOnly)) { + char buff[512]; QString line; - while (line.length()==0) { - if (infile.readLine(line,512)<=0) - break; - line=line.stripWhiteSpace(); - } + qint64 readBytes = infile.readLine(buff,512); + if(readBytes>0) + line = QString::fromAscii(buff, readBytes); if (line.startsWith(QString(" QDomElement docelem = domdoc.documentElement(); if (docelem.tagName() != "dvbcut") { critical("Failed to read project file - dvbcut", - QString(filename) + ":\nNot a valid dvbcut project file"); - fileOpenAction->setEnabled(true); + QString::fromStdString(filename) + ":\nNot a valid dvbcut project file"); + ui->fileOpenAction->setEnabled(true); return; } // parse elements, new-style first @@ -1807,16 +1815,16 @@ void dvbcut::open(std::list // sanity check if (filenames.empty()) { critical("Failed to read project file - dvbcut", - QString(filename) + ":\nNo MPEG filename given in project file"); - fileOpenAction->setEnabled(true); + QString::fromStdString(filename) + ":\nNo MPEG filename given in project file"); + ui->fileOpenAction->setEnabled(true); return; } prjfilename = filename; } else { critical("Failed to read project file - dvbcut", - QString(filename) + ":\n" + errormsg); - fileOpenAction->setEnabled(true); + QString::fromStdString(filename) + ":\n" + errormsg); + ui->fileOpenAction->setEnabled(true); return; } } @@ -1842,7 +1850,7 @@ void dvbcut::open(std::list if (!mpg) { critical("Failed to open file - dvbcut", errormessage); - fileOpenAction->setEnabled(true); + ui->fileOpenAction->setEnabled(true); return; } @@ -1859,19 +1867,19 @@ void dvbcut::open(std::list */ QUrl u; u.setProtocol(QString("file")); - u.setPath(QString(idxfilename)); + u.setPath(QString::fromStdString(idxfilename)); if (chdir((const char*)u.dirPath()) == -1) chdir("/"); - QString relname = QString("file:") + u.fileName(); + QString relname = u.fileName(); QString s=QFileDialog::getSaveFileName( relname, settings().idxfilter, this, "Choose index file...", "Choose the name of the index file" ); - if (!s) { + if (s.isEmpty()) { delete mpg; mpg=0; - fileOpenAction->setEnabled(true); + ui->fileOpenAction->setEnabled(true); return; } idxfilename=(const char*)s; @@ -1895,21 +1903,21 @@ void dvbcut::open(std::list delete mpg; mpg=0; critical("Failed to open file - dvbcut",errorstring); - fileOpenAction->setEnabled(true); + ui->fileOpenAction->setEnabled(true); return; } if (pictures==-2) { delete mpg; mpg=0; critical("Invalid index file - dvbcut", errorstring); - fileOpenAction->setEnabled(true); + ui->fileOpenAction->setEnabled(true); return; } if (pictures<=-3) { delete mpg; mpg=0; critical("Index file mismatch - dvbcut", errorstring); - fileOpenAction->setEnabled(true); + ui->fileOpenAction->setEnabled(true); return; } } @@ -1928,7 +1936,7 @@ void dvbcut::open(std::list if (psb.cancelled()) { delete mpg; mpg=0; - fileOpenAction->setEnabled(true); + ui->fileOpenAction->setEnabled(true); return; } @@ -1936,11 +1944,11 @@ void dvbcut::open(std::list delete mpg; mpg=0; critical("Error creating index - dvbcut", - QString("Cannot create index for\n")+filename+":\n"+errorstring); - fileOpenAction->setEnabled(true); + QString("Cannot create index for\n")+QString::fromStdString(filename)+":\n"+QString::fromStdString(errorstring)); + ui->fileOpenAction->setEnabled(true); return; } else if (!errorstring.empty()) { - critical("Error saving index file - dvbcut", QString(errorstring)); + critical("Error saving index file - dvbcut", QString::fromStdString(errorstring)); } } @@ -1948,8 +1956,8 @@ void dvbcut::open(std::list delete mpg; mpg=0; critical("Invalid MPEG file - dvbcut", - QString("The chosen file\n")+filename+"\ndoes not contain any video"); - fileOpenAction->setEnabled(true); + QString("The chosen file\n")+QString::fromStdString(filename)+"\ndoes not contain any video"); + ui->fileOpenAction->setEnabled(true); return; } @@ -1973,19 +1981,19 @@ void dvbcut::open(std::list timeperframe=(*mpg)[1].getpts()-(*mpg)[0].getpts(); double fps=27.e6/double(mpgfile::frameratescr[(*mpg)[0].getframerate()]); - linslider->setMaxValue(pictures-1); - linslider->setLineStep(int(300*fps)); - linslider->setPageStep(int(900*fps)); + ui->linslider->setMaximum(pictures-1); + ui->linslider->setSingleStep(int(300*fps)); + ui->linslider->setPageStep(int(900*fps)); if (settings().lin_interval > 0) - linslider->setTickInterval(int(settings().lin_interval*fps)); + ui->linslider->setTickInterval(int(settings().lin_interval*fps)); //alpha=log(jog_maximum)/double(100000-jog_offset); // with alternative function alpha=log(settings().jog_maximum)/100000.; if (settings().jog_interval > 0 && settings().jog_interval <= 100000) - jogslider->setTickInterval(int(100000/settings().jog_interval)); + ui->jogslider->setTickInterval(int(100000/settings().jog_interval)); - imagedisplay->setBackgroundMode(Qt::NoBackground); + ui->imagedisplay->setBackgroundMode(Qt::NoBackground); curpic=~0; showimage=true; fine=false; @@ -1994,12 +2002,12 @@ void dvbcut::open(std::list imgp=new imageprovider(*mpg,new dvbcutbusy(this),false,viewscalefactor); linslidervalue(0); - linslider->setValue(0); - jogslider->setValue(0); + ui->linslider->setValue(0); + ui->jogslider->setValue(0); { - EventListItem *eli=new EventListItem(0,imgp->getimage(0),EventListItem::start,9999999,2,0); - eventlist->setMinimumWidth(eli->width(eventlist)+24); + EventListItem *eli=new EventListItem(0,QPixmap::fromImage(imgp->getimage(0)),EventListItem::start,9999999,2,0); + ui->eventlist->setMinimumWidth(eli->width(ui->eventlist)+24); delete eli; } @@ -2023,12 +2031,12 @@ void dvbcut::open(std::list QString str=e.attribute("picture","-1"); if (str.contains(':') || str.contains('.')) { okay=true; - picnum=string2pts(str)/getTimePerFrame(); + picnum=string2pts(str.toStdString())/getTimePerFrame(); } else picnum=str.toInt(&okay,0); if (okay && picnum>=0 && picnumgetimage(picnum),evt,picnum,(*mpg)[picnum].getpicturetype(),(*mpg)[picnum].getpts()-firstpts); + new EventListItem(ui->eventlist,QPixmap::fromImage(imgp->getimage(picnum)),evt,picnum,(*mpg)[picnum].getpicturetype(),(*mpg)[picnum].getpts()-firstpts); qApp->processEvents(); } } @@ -2036,56 +2044,56 @@ void dvbcut::open(std::list update_quick_picture_lookup_table(); - fileOpenAction->setEnabled(true); - fileSaveAction->setEnabled(true); - fileSaveAsAction->setEnabled(true); - snapshotSaveAction->setEnabled(true); - chapterSnapshotsSaveAction->setEnabled(true); - fileCloseAction->setEnabled(true); - fileExportAction->setEnabled(true); - playPlayAction->setEnabled(true); - menubar->setItemEnabled(audiotrackmenuid,true); - playStopAction->setEnabled(false); - editStartAction->setEnabled(true); - editStopAction->setEnabled(true); - editChapterAction->setEnabled(true); - editBookmarkAction->setEnabled(true); - editAutoChaptersAction->setEnabled(true); - editSuggestAction->setEnabled(true); - editImportAction->setEnabled(true); + ui->fileOpenAction->setEnabled(true); + ui->fileSaveAction->setEnabled(true); + ui->fileSaveAsAction->setEnabled(true); + ui->snapshotSaveAction->setEnabled(true); + ui->chapterSnapshotsSaveAction->setEnabled(true); + ui->fileCloseAction->setEnabled(true); + ui->fileExportAction->setEnabled(true); + ui->playPlayAction->setEnabled(true); + audiotrackmenu->setEnabled(true); + ui->playStopAction->setEnabled(false); + ui->editStartAction->setEnabled(true); + ui->editStopAction->setEnabled(true); + ui->editChapterAction->setEnabled(true); + ui->editBookmarkAction->setEnabled(true); + ui->editAutoChaptersAction->setEnabled(true); + ui->editSuggestAction->setEnabled(true); + ui->editImportAction->setEnabled(true); //editConvertAction->setEnabled(true); - viewNormalAction->setEnabled(true); - viewUnscaledAction->setEnabled(true); - viewDifferenceAction->setEnabled(true); + ui->viewNormalAction->setEnabled(true); + ui->viewUnscaledAction->setEnabled(true); + ui->viewDifferenceAction->setEnabled(true); #ifdef HAVE_LIB_AO if (mpg->getaudiostreams()) { - playAudio1Action->setEnabled(true); - playAudio2Action->setEnabled(true); + ui->playAudio1Action->setEnabled(true); + ui->playAudio2Action->setEnabled(true); } #endif // HAVE_LIB_AO - eventlist->setEnabled(true); - imagedisplay->setEnabled(true); - pictimelabel->setEnabled(true); - pictimelabel2->setEnabled(true); - picinfolabel->setEnabled(true); - picinfolabel2->setEnabled(true); - goinput->setEnabled(true); - gobutton->setEnabled(true); - goinput2->setEnabled(true); - gobutton2->setEnabled(true); - linslider->setEnabled(true); - jogslider->setEnabled(true); + ui->eventlist->setEnabled(true); + ui->imagedisplay->setEnabled(true); + ui->pictimelabel->setEnabled(true); + ui->pictimelabel2->setEnabled(true); + ui->picinfolabel->setEnabled(true); + ui->picinfolabel2->setEnabled(true); + ui->goinput->setEnabled(true); + ui->gobutton->setEnabled(true); + ui->goinput2->setEnabled(true); + ui->gobutton2->setEnabled(true); + ui->linslider->setEnabled(true); + ui->jogslider->setEnabled(true); // audiotrackmenuids.clear(); for(int a=0;agetaudiostreams();++a) { // audiotrackmenuids.push_back(audiotrackpopup->insertItem(QString(mpg->getstreaminfo(audiostream(a))))); - audiotrackpopup->insertItem(QString(mpg->getstreaminfo(audiostream(a))),a); + audiotrackpopup->insertItem(QString::fromStdString(mpg->getstreaminfo(audiostream(a))),a); } if (mpg->getaudiostreams()>0) { - audiotrackpopup->setItemChecked(0,true); + audiotrackpopup->actions().at(0)->setChecked(true); currentaudiotrack=0; } else currentaudiotrack=-1; @@ -2115,10 +2123,10 @@ void dvbcut::setviewscalefactor(double f { if (factor<=0.0) factor=1.0; - viewFullSizeAction->setOn(factor==1.0); - viewHalfSizeAction->setOn(factor==2.0); - viewQuarterSizeAction->setOn(factor==4.0); - viewCustomSizeAction->setOn(factor==settings().viewscalefactor_custom); + ui->viewFullSizeAction->setChecked(factor==1.0); + ui->viewHalfSizeAction->setChecked(factor==2.0); + ui->viewQuarterSizeAction->setChecked(factor==4.0); + ui->viewCustomSizeAction->setChecked(factor==settings().viewscalefactor_custom); settings().viewscalefactor = factor; @@ -2136,32 +2144,32 @@ bool dvbcut::eventFilter(QObject *watche int delta = 0; int incr = WHEEL_INCR_NORMAL; - if (e->type() == QEvent::Wheel && watched != jogslider) { + if (e->type() == QEvent::Wheel && watched != ui->jogslider) { QWheelEvent *we = (QWheelEvent*)e; // Note: delta is a multiple of 120 (see Qt documentation) delta = we->delta(); - if (we->state() & AltButton) + if (we->state() & Qt::Key_Alt) incr = WHEEL_INCR_ALT; - else if (we->state() & ControlButton) + else if (we->state() & Qt::Key_Control) incr = WHEEL_INCR_CTRL; - else if (we->state() & ShiftButton) + else if (we->state() & Qt::Key_Shift) incr = WHEEL_INCR_SHIFT; } else if (e->type() == QEvent::KeyPress) { QKeyEvent *ke = (QKeyEvent*)e; delta = ke->count() * settings().wheel_delta; - if (ke->key() == Key_Right) + if (ke->key() == Qt::Key_Right) delta = -delta; - else if (ke->key() != Key_Left) + else if (ke->key() != Qt::Key_Left) myEvent = false; - if (ke->state() & AltButton) + if (ke->state() & Qt::Key_Alt) incr = WHEEL_INCR_ALT; - else if (ke->state() & ControlButton) + else if (ke->state() & Qt::Key_Control) incr = WHEEL_INCR_CTRL; - else if (ke->state() & ShiftButton) + else if (ke->state() & Qt::Key_Shift) incr = WHEEL_INCR_SHIFT; } - else + else myEvent = false; if (myEvent) { @@ -2177,14 +2185,15 @@ bool dvbcut::eventFilter(QObject *watche newpos = 0; else if (newpos >= pictures) newpos = pictures - 1; - linslider->setValue(newpos); + ui->linslider->setValue(newpos); fine = save; } return true; } // propagate to base class - return dvbcutbase::eventFilter(watched, e); + //return ui->eventFilter(watched, e); + return Q3MainWindow::eventFilter(watched, e); } int @@ -2199,6 +2208,11 @@ dvbcut::question(const QString & caption } int +dvbcut::critical(const QString & caption, const std::string & text) { + return critical(caption, QString::fromStdString(text)); +} + +int dvbcut::critical(const QString & caption, const QString & text) { if (nogui) { @@ -2281,24 +2295,24 @@ void dvbcut::update_time_display() + " " + timestr(pts); QString outtime = QString(mark) + " " + timestr(outpts); - pictimelabel->setText(curtime); - pictimelabel2->setText(outtime); - goinput->setText(QString::number(curpic)); - goinput2->setText(QString::number(outpic)); + ui->pictimelabel->setText(curtime); + ui->pictimelabel2->setText(outtime); + ui->goinput->setText(QString::number(curpic)); + ui->goinput2->setText(QString::number(outpic)); int res=idx.getresolution(); // are found video resolutions stored in index? if (res) { // new index with resolution bits set and lookup table at the end - picinfolabel->setText(QString::number(mpg->getwidth(res)) + "x" + ui->picinfolabel->setText(QString::number(mpg->getwidth(res)) + "x" + QString::number(mpg->getheight(res))); } else { // in case of an old index file type (or if we don't want to change the index format/encoding?) // ==> get info directly from each image (which could be somewhat slower?!?) QImage p = imageprovider(*mpg, new dvbcutbusy(this), true).getimage(curpic,false); - picinfolabel->setText(QString::number(p.width()) + "x" + ui->picinfolabel->setText(QString::number(p.width()) + "x" + QString::number(p.height())); } - picinfolabel2->setText(QString(FR[idx.getframerate()]) + "fps, " + ui->picinfolabel2->setText(QString(FR[idx.getframerate()]) + "fps, " + QString(AR[idx.getaspectratio()])); } @@ -2330,7 +2344,7 @@ void dvbcut::update_quick_picture_lookup startpts=0; } - for (QListBoxItem *item=eventlist->firstItem();item;item=item->next()) + for (Q3ListBoxItem *item=ui->eventlist->firstItem();item;item=item->next()) if (item->rtti()==EventListItem::RTTI()) { const EventListItem &eli=*static_cast(item); switch (eli.geteventtype()) { @@ -2402,8 +2416,8 @@ void dvbcut::helpAboutAction_activated() "").arg(VERSION_STRING)); } -#include -#include +#include +#include #include #include #include @@ -2413,10 +2427,10 @@ public: helpDialog(QWidget *parent, const char *name, QString file) : QDialog(parent, name) { - vbox = new QVBox(this); + vbox = new Q3VBox(this); vbox->resize(640, 480); viewer = new QTextBrowser(vbox); - hbox = new QHBox(vbox); + hbox = new Q3HBox(vbox); prev = new QPushButton(tr("Prev"), hbox); next = new QPushButton(tr("Next"), hbox); home = new QPushButton(tr("Home"), hbox); @@ -2442,8 +2456,8 @@ public: delete vbox; } private: - QVBox *vbox; - QHBox *hbox; + Q3VBox *vbox; + Q3HBox *hbox; QTextBrowser *viewer; QPushButton *prev, *next, *home, *close; }; --- a/src/dvbcut.h +++ b/src/dvbcut.h @@ -25,14 +25,14 @@ #include #include #include "mpgfile.h" -#include "dvbcutbase.h" +#include "ui_dvbcutbase.h" #include "pts.h" #include "eventlistitem.h" class QProcess; class imageprovider; -class dvbcut: public dvbcutbase +class dvbcut: public Q3MainWindow { Q_OBJECT @@ -73,9 +73,9 @@ public: protected: quick_picture_lookup_t quick_picture_lookup; std::list chapterlist; - - QPopupMenu *audiotrackpopup,*recentfilespopup,*editconvertpopup; - int audiotrackmenuid; + + QMenu *audiotrackpopup,*recentfilespopup,*editconvertpopup; + QAction* audiotrackmenu; inbuffer buf; mpgfile *mpg; int pictures; @@ -101,8 +101,9 @@ protected: bool nogui; int exportformat; bool start_bof; - bool stop_eof; - + bool stop_eof; + Ui::dvbcutbase* ui; + protected: // QPixmap getpixmap(int picture, bool allgop=false); void exportvideo(const char *fmt); @@ -118,6 +119,7 @@ protected: // QMessagebox interface int question(const QString & caption, const QString & text); int critical(const QString & caption, const QString & text); + int critical(const QString & caption, const std::string & text); // filename handling void make_canonical(std::string &filename); @@ -136,7 +138,7 @@ protected slots: public: ~dvbcut(); - dvbcut(QWidget *parent = 0, const char *name = 0, WFlags fl = WType_TopLevel|WDestructiveClose ); + dvbcut(QWidget *parent = 0, const char *name = 0, Qt::WFlags fl = Qt::Window); void open(std::list filenames=std::list(), std::string idxfilename=std::string(), std::string expfilename=std::string()); void setbusy(bool b=true); @@ -180,8 +182,8 @@ public slots: virtual void jogsliderreleased(); virtual void jogslidervalue(int); virtual void linslidervalue(int); - virtual void doubleclickedeventlist(QListBoxItem *lbi); - virtual void eventlistcontextmenu(QListBoxItem *, const QPoint &); + virtual void doubleclickedeventlist(Q3ListBoxItem *lbi); + virtual void eventlistcontextmenu(Q3ListBoxItem *, const QPoint &); virtual void mplayer_exited(); virtual void mplayer_readstdout(); virtual void clickedgo(); --- a/src/dvbcutbase.ui +++ b/src/dvbcutbase.ui @@ -1,1338 +1,1677 @@ - -dvbcutbase - - - dvbcutbase - - - - 0 - 0 - 741 - 580 - - - - dvbcut - - + + + dvbcutbase + + + + 0 + 0 + 741 + 580 + + + + dvbcut + + + false + + + + + 0 + 53 + 741 + 527 + + + + + + + Qt::Horizontal + + + false - - - - unnamed - - - - splitter3 - + + + + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 100 + + + + false + + + + + - Horizontal + Qt::Horizontal - - - eventlist - - - false - - - - - layout7 - - - - unnamed - - - 0 - - - - layout6 - - - - unnamed - - - - imagedisplay - - - - 0 - 0 - 0 - 0 - - - - - 100 - 100 - - - - - - spacer1 - - - Horizontal - - - Expanding - - - - 503 - 16 - - - - - - - - spacer4 - - - Vertical - - - Expanding - - - - 16 - 254 - - - - - - layout6 - - - - unnamed - - - - goinput - - - false - - - - 1 - 0 - 0 - 0 - - - - 16 - - - - - gobutton - - - false - - - go - - - - - spacer6 - - - Horizontal - - - Expanding - - - - 2 - 10 - - - - - - picinfolabel - - - false - - - - 10 - 0 - - - - - Monospace - 10 - - - - - - - AlignVCenter|AlignRight - - - - - spacer6 - - - Horizontal - - - Expanding - - - - 2 - 10 - - - - - - goinput2 - - - false - - - - 1 - 0 - 0 - 0 - - - - 16 - - - - - gobutton2 - - - false - - - go - - - - - - - layout6 - - - - unnamed - - - - pictimelabel - - - false - - - - 160 - 0 - - - - - Monospace - 16 - - - - - - - AlignVCenter|AlignRight - - - - - spacer6 - - - Horizontal - - - Expanding - - - - 2 - 10 - - - - - - picinfolabel2 - - - false - - - - 10 - 0 - - - - - Monospace - 10 - - - - - - - AlignVCenter|AlignRight - - - - - spacer6 - - - Horizontal - - - Expanding - - - - 2 - 10 - - - - - - pictimelabel2 - - - false - - - - 160 - 0 - - - - - Monospace - 16 - - - - - - - AlignVCenter|AlignRight - - - - - - - - - - line3 + + QSizePolicy::Expanding - - HLine + + + 503 + 16 + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 16 + 254 + + + + + + + + + + false + + + + 0 + 0 + + + + 16 + + + + + + + false - - Sunken + + go + + + + - Horizontal + Qt::Horizontal - - - - linslider + + QSizePolicy::Expanding + + + 2 + 10 + + + + + + - false - - - 180000 - - - 7500 - - - 45000 + false + + + 10 + 0 + + + + + Monospace + 10 + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false + + + + + - Horizontal - - - Both + Qt::Horizontal - - 90000 + + QSizePolicy::Expanding - - - - jogslider + + + 2 + 10 + + + + + + + + false + + + 0 + 0 + + + + 16 + + + + + - false + false - - -100000 + + go + + + + + + + + + + + false - - 100000 + + + 160 + 0 + + + + + Monospace + 16 + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false + + + + + + + Qt::Horizontal - - 10000 + + QSizePolicy::Expanding - - 10000 + + + 2 + 10 + + + + + + + + false + + + 10 + 0 + + + + + Monospace + 10 + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false + + + + + - Horizontal + Qt::Horizontal - - Both + + QSizePolicy::Expanding - - 100000 + + + 2 + 10 + + + + + + + + false - - - - - - menubar - - - true - - - - - - - - - - - - + + + 160 + 0 + + + + + Monospace + 16 + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false + + + + + + + + - - - - - - - - - + + + + QFrame::HLine + + + QFrame::Sunken + + - - - - - - - - - - - - + + + + false + + + 180000 + + + 7500 + + + 45000 + + + Qt::Horizontal + + + QSlider::TicksBothSides + + + 90000 + + - - - - - - + + + + false + + + -100000 + + + 100000 + + + 10000 + + + 10000 + + + Qt::Horizontal + + + QSlider::TicksBothSides + + + 100000 + + - - - - - - - - - fileToolbar - - - File toolbar - - - - - - - - - Toolbar - - - Edit toolbar - - - - - - - - - playToolbar - - - Play toolbar - - - - - - - - - - - fileOpenAction - - - image0 - - - Open - - - &Open... - - - O - - - - - fileSaveAction - - - false - - - false - - - image1 - - - Save - - - &Save - - - S - - - - - fileSaveAsAction - - - false - - - image2 - - - Save As - - - Save &As... - - - - - - - - fileCloseAction - - - image3 - - - Close - - - Ctrl+Q - - - - - playAudio1Action - - - false - - - image4 - - - Audio ->| - - - Play audio: last 2 seconds - - - Shift+> - - - - - playAudio2Action - - - false - - - image5 - - - Audio |-> - - - Play audio: next 2 seconds - - - < - - - - - playPlayAction - - - false - - - image6 - - - Play - - - P - - - - - playStopAction - - - false - - - image7 - - - Stop - - - Q - - - - - editStartAction - - - false - - - image8 - - - Set start marker - - - A - - - - - editStopAction - - - false - - - image9 - - - Set stop marker - - - N - - - - - editChapterAction - - - false - - - image10 - - - Set chapter marker - - - C - - - - - editBookmarkAction - - - false - - - image11 - - - Set bookmark - - - B - - - - - editAutoChaptersAction - - - false - - - Auto chapters - - - Ctrl+C - - - - - editSuggestAction - - - false - - - Suggest bookmarks - - - M - - - - - editImportAction - - - false - - - Import bookmarks - - - I - - - - - fileNewAction - - - image12 - - - New - - - - - fileExportAction - - - false - - - Export video... - - - E - - - - - viewNormalAction - - - true - - - true - - - Normal - - - Ctrl+N - - - - - viewUnscaledAction - - - true - - - Unscaled - - - Ctrl+U - - - - - viewDifferenceAction - - - true - - - Show difference to current picture - - - Ctrl+D - - - - - viewFullSizeAction - - - true - - - true - - - Full size - - - Ctrl+1 - - - - - viewQuarterSizeAction - - - true - - - Quarter size - - - Ctrl+4 - - - - - viewCustomSizeAction - - - true - - - Custom size - - - Ctrl+3 - - - - - zoomInAction - - - Zoom in - - - Ctrl++ - - - - - zoomOutAction - - - Zoom out - - - Ctrl+- - - - - - viewHalfSizeAction - - - true - - - Half size - - - Ctrl+2 - - - - - snapshotSaveAction - - - false - - - image13 - - - Save Snapshot - - - G - - - - - chapterSnapshotsSaveAction - - - false - - - Save Chapter Snapshots - - - Ctrl+G - - - - - helpAboutAction - - - &About - - - &About - - - About - - - About - - - - - helpContentAction - - - &Contents - - - &Contents - - - Contents - - - F1 - - - - - - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003f749444154388db5955f68d56518c73fe7777ed333dd3f67fecb74c722ed62f9071223332c5620062d0982a88bec22888aeac242322d2b2808b12e022fb4a0eea216155de46866641bcaccd4e2b464736ecef36f673be7fcfebc7f9eb78b6dce95125ef8c2c3fbc0fb3c9ff7e179bf0f6fc239c78d58de0da10289eb4d78f5cdeeb41877a86696b7b65cd62b3e7a7f63e96a71d755f16b6f75bfd4dc98eaddfe54ebe6ed4fb636599143d70c76ce5dd3a6d6ae777ad6eedcdbd3dbd935e2aa55e7b259ed4647adfbf860c63df3c24fed57e3265a9efec3b56f5e8808280bda08cac017df0f95c26fd7ccdbf3def13de95b9a763ff8400b8df53518e3d0da628c23954af2fabbdda5b1f178c5e707ee9fd192c4a61de7dcbedd2b5006220bca40ac61a82f64e058866d6dcbb86b5d335a835260ed34d839c7df8315f67e78aae387d3899739b5b97f0aecff5b6e46c170cf10f526e28d17d730a716acbd7a1b451cad2b9bd8b4aeb95da4f069e729a6c156a6c1a5f3214327fa79b82d4d7a79ed35df0560b462d8df71099c43ebb9648aa3fb5873642d22e01cfe95d58c8f8c73cffa25ff0b2d5585adbb32b4dd7b33b72eab4304d2ab16a7cb55fb8a3694f67f70bcdeb7329de02d5dc8ce83a7d9b05e7016ac58ac15c438c43acca4ffddaf451edbd2c2ac054d1c190011989d82df7ac7ea073bfbb240d78c567c753847faf605ac5eea33efa63904e20895235410448e400b5104cfae5c4c5ce3d3736e029af0a03010923dd66f914a9a847b7b06f8f0d12c99cf5a2964358df37da40e7265c89761e0225446211f433e0bc592259f8b090a152e9ec9521aae96881283d4db5578aecb376602fa634fc8a63b1ba84d41cdc21a7a33e32c58de40e602f40dc048ce90cb5b2ee50db9bc21288584a52aa5e1519c721090c5b73ed8b3641eeaf765526e47ba8b6cdbd84c55e0520c59af813f4f5ac42509228752102921568e2816f2b9001d68983b176c0cc490544d383900e08915c6abf0fbd9128fb7d59129c285224440b12c8c5584583b22e5501a4a639a919100ebcfc64bcd9e2997a469c4d231a963387caccc7dab1b19a9409d0f4b525067a16189cf585161fc04cd6268d011f58b14b735259138468218136bc2c0902bc8fc81419da57fcb4900df5847d72f05763cba883bea276f9e075a431439b4f68863431c5b94f250ca278a0c5afb44512d4ad5a0548a2f8f8ecdffe4bcfbe6b274ab81a17fa0cc231b660e85e781ef7b2493093ccf9bf4bdcbbee74d9c4df93f9f0941dcd753f97e61b8ca734fb4fc67ba92c9097338440cb1d284514c186a824011c53151a8d15a88b5a1efaf002e6cedb80cc64bd079a2c8ddcf8fe1c42102884344b056b05a30c6608d608dc1188bd1163132b18ba51a38085cc79585256ed467fa0f0f457af9307ab8bf0000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000002c249444154388dd5943d8f1c4510869fd99d35773ef0c705c8329203021001827f8090900810883f003111227506d14504fc03624840204182217300423210fa641964c9be1577bb33bbd3dd55d5d504333bc7c96b3b764badaaee19bdfdf4dbd50d4f5bab36c90f3ffefa515d4f0f5433b37a42d376c4a464cbccea29661911c52ca36aa86ea271e79f39f3a3c577cd62f5f1cf373e5f00d41be1ba9e1ebcf4cab54b5071edea3e9f7ef10dcb2670e1b95d3efbe4fdc7d27d7fe3167fdebafdc1b75ffd02f0e119e194942e0ad5b0899bbf1f72f9c279ea7af2c46d2f9a0e07dcf3bb23e82691617b55d50bef5fdce3e517aff0c295cb4f14163196cb1529c938772a2c8aa831a97ac2b7df7895abcf5f64ffd2b38f15752f2c9b96e5a2c12c3f2c9cc410cd94629c341defbdf53aa5144a81f9713be4fd7813cd8c939396a307c774216266db887b2bba98f8ed8f3ba865cc32967dc8bdaf889c1131624834cb96f53a707cd212a33c8a581155421c4aca725f529607ff8d98941885b65d11ba484a424a8a88106324e72dc23a58e1ee9cdf3d87651f6ad7a88ae30693929996ccce6cca64f71cb349c56c3ae12804521272f647111b3bcfcc78e7cdd7707742104248a4a4a8da6097f5072d36f62fbffe8979488ff718c02c1342220441d5b6089f5d208920a2dbad484911cd981a77effecbfdfb0daa365c611daeb08ef698f5e23b3b35290a49d2766119c84c95aa2aecedd588802ad475a1ae613a2d98c16452502d5455011c1988ddb7799c94d5ba239bb15a45168b6ea4ea094f1f21111d1fa1d9ac1aac90edc43124d6eb407147d570cfe4fc7037eba3bb8d42fd42b29d38c4440809bc606694e2b8f7bdcff330ee63ce9bbca022a828ee5b88c33ab25eb4e46cac56cbf1e44fabe0ec21aae6f19f75db90ba35bead8e8fe78bebf7fe7e701053e2f65f87e45c46e29c0ba5f8ffe64ebfb917ee1dcee982e2ce759edaf61f121ae0ff0b36cf4c0000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003fe49444154388dd593cb6b5d551487bf73ee39378f9bf7a3a6e94b694b2bb65a1111a13a102b82edc0fe0d0a82e0d006670e041d8aa8d38238d18120522cad5207c596da121f55aad69b3ed2a4499a9b7bef39679fbdd77e38484c93b60a1dba266bb3f8f1b1d66fed15711fb1f03ed5643cfdc00dbcf96a73aa7db53d75e9a3b9b3c78f1e38c9dc9ddae47ec07137bbba7686fdd591ebd1e0de57b635ebd36f0767fb4ef0cd3b074ea2d681bf3e7eee485c8927ac78d224a6d9cad1c6e2ac234d2a586b31c662ade3d78e0f93a7fb8fd7b8f62951fb045d0b8f76deca8b873f0b2f77c217ebc169357d77c7cecdc49598cd63831c79ef738cb13c30dac7c46b2fad0a8364985f5e27f6319440d3b37875961fd28387cf3716a68137d64da7b5509486521b004e9fff83d9f926aa346b64015b3f4a7564065add20fdf8762fbf15db311bf7e0bd3b7497c7462c461c61a53032d8c3eeed1b7968ebe8aac8e737201c230a03a03ba0eca2b950e5f7aea768b60a8cc85dfb488cb118b144d172e1e073fbd83a3ecc86e1de956603be718ab8a30ed910f80a2eebc36e7a9cf9eb63349b0dac75f7020b462cce7b1aad82c32f3e4108811002f38b6d708afef65754077b60b102ba83765ee5726d2f4bb94315e5bf812d228e565672eea73ad63aac7588f558e718f5177876cf34a8412080d4b8382d7ca92d8b799b526b9cfb8f8e556910eb1071cbd93a82e43c367686a46f1c16045c42d1709cbab9911b91c31883526bc1fb60f9365c62c461c4e17da0d655c5a6cb9d6a6de9e347366d0b607a0003b687bfaecdd0ecdb4d8f4bb99917686d70ce03fb52a00ba80226d15a3022f4f674f2c2fe4770ce5396069535e96c9ea636340a6d03a146de70c896e739f4e43318717cfcc9318a4221622ac0c81a27d25856bedb3fdee6b922cf4ba45ca223aa1345034037f8216e3522dae916546968b532f2bc4015eade1e6b2d88388a4253af2f3037d746c452b10d86c7c7408621aae26ccccfd714533d31aa9ca2b33341a912630cdef93bb93e316229b5c11a431c07babb13440249d6c2fbed50dd859319ea93df32dbb117224f9ac684e011238811bc5f053b960f5e275a0bedaca05a89c9b29266b340c4d2b1344f36344054445c3e53e7eccc832c25bdd84c61ad234d638c118c15bcf70168ad403d4c8644294d912b7c9a206271cee1bd23cb0cdf7f779eeeca247fb60650dd9bf062f1dee19c238a02ce59bcb3048287c97cad17b1521aa50c6569b0d61282c77b8f379672fa0a57cc18a677332184d59193a442b59ae2bc47ac5b6bc5ede5a9a2245b6a6192983c6f216211b198da06f48e03844a8d542cb03c490860ad43298d6ab7d0457eafe591cccf2e4e4c5d9e9e10112e5eb884f7cb9d39e757dfb7f3fadaec95065a5bbc8fdeba8bfcbf8bbf01e870cbc9b35858b90000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003af49444154388db594cb4b5c7714c73ff7cecb71948c5aeb23a40e2a11a3a4137c40121314e2a6949a5ae8a248c042762163fe806cb20d014d28a19b062ca5cca2af84d0d48d4348e988265c939829d18266a2b5a3ce4c7dcdcc9d997bbaa8f7a613b559e50b67f3bbe77cee79fc7e471111de86ec008aa2eceb70f2e467dd40b79980882022a1703818da2f464450446417b8ab6bc00b0c8918014551bd0e871da7d3898890c9e8e87a867c3e97044644647872f2bbe41bc15d5d037ee096aaaafe8e8e36fafa7a686e7e8fe26297e5138944191bfb8d3b777e2697cb6a22323835f5bdb62f78073a5e5e5eeebd74e9739a9a0efd6f1fa3d118376e7c43243293047a1e3efc41db05de297fbcacaccc3f3434484d4d05f9bc81cda6ee0935bfa55219ae5efd8ae7cf7fd7809e478f7e4c8a08ff8d1a5255d5dfdfff0145454ea2d1183e5f159595074824360aece5cb182d2d3e9c4e3be9b4cec0401f1e4fa95f44864c98051631028d8d0d54567a595fdfe2c489163c1e37151507a8ababb6a0f1f83a67ceb403505f5f8bcbe504a0a3a30dc3300226cf0eff5e294551bd0d0d75c4e3eb002c2f2768687003505b5b81ae67d1b459ce9e3d6595b8b4b4c6eddb21161797492492d86c36efd1a31f760321fb8e4fb779a5e2f1bf01b87bf7577a7b3b696eae03c0e7abc6e7abb6a02f5efcc5e5cb5fb0b5b5659d399d2e72b95c371052cd293a1c0e36363689c7939605836368dadcaec1ed050570bbdd980fc96e8201d6d692bcaec9c967f8fd8d0567f3f3cbbba00086218818afc000998c4e3c9e28703c7ebc8df3e73fda05387dfa7de01cd7af8f169c6f6f6f5a499aad08e97a065dd7c966b364b3593a3bfd5cb8f04941f9f7ef4f17c02f5e3c87a22896a5d36944246481c3e160289fcf2553a914369b8daaaa7709043eb520d1688c2b57bee4e6cd6f79f0e04901bcb7f71476bb9dcdcd0df2f95cf2d9b35f5e817734924c2670bb8bc864328c8ede03607171956bd7be4655554a4b4b181dfd8989890800131311a6a69ee07617b1b21203183161568f456458d7337db1d88afff0e146342d8288303bbb80aaaa949478ac0c82c17b2c2cfc49383c4d498987a74f6748a5b63560d8f4295842ededfd7e11193f78f090f7c891261c0eebbf7b4ad7b33c7e3cc3fcfc1f49a0271219dbbd844cb5b57dec17915b6e77b1bfb5b595fafabd37dcdcdc02d3d31a1b1beb1a306842f705031c3bd6e705860cc308b85c2e6f79f93bd4d45423222c2d2db1baba423a9db2167d2432f6e645ffba76de7eb7886018793330644e7f2f59e0b7a17f00e0d8fac4fa42f0780000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000004b849444154388d8d955d88954518c77f33ef3be773dfb3c7768feb6a9d5d9508d3cace6620954561a17d5c284816045d08095d481041d145f421741174215ebcd15d7491640465a5141126921edbccec83d6cf6c77cf7e9d733ce7fd9ee9e2acbb4b59f9c09f19e699f9f19f676618c17f4465e7b0025302dd8f31393080f1307a54e9c6f8517763f86f6bc57f40d703dbc0ac455046a83c003a6863920bc0b0d0f1be8a79f7b0ebbac9ff822b3b875782d885a59ee8cae78a4b7a0bb2af27c34dbd4db22ae1f7a92ece8e6b266a353d55f73c1d7b8795b9fcdaade6fd23aeebc6570557760e0f80d84baab069ed8a2c9bd739dc728361715161c9ce54034c37634646230e547dbe39394de8354ea7f5d40b6bccbe0357e0d6df9ceee92a141e7a6c7db778eabe2c37f65ba495459440181bdefc38a4b25c6249416fc1e6960145df22c59971d3dbf0c51d93667975d350f662b55a3573e0fe75cfec26e53cfef09d45f1e89022a524616c08a28ef61e4c786d7b9637f607dcbcd410c406630c4baf533839257eba98f4f8a1514b397170686828b23a6e8faf17567af76d2b0b994d15859410461a3fd204b37afa812e2c29d8b0cae6ad4f22569612fcc810c6868192623a2a707eb435584b6e18eee3f419abf2cc3105ec721c67c3036bf36251170491c18fe6dd0691e1fa520adb12d896e09e55367bbe4858568c0922c35dab0b6cb8d9e6a3238d54cb8f232bae7f238112b0b650e896c54c4ca395506fc5ffd0d7c3751aadcea167529257b66538f493e287b33e00712268b2446ad4ea8628976da01f21cbbd8ec00b355ea8f96dd2b9eadd3e743ae0f5ed12654bb2698b17b76478e3c34e4e23c0ce83b0fab152651bc821d3f99c8a9869696a7e372f6fcde0e4acabc21746316ff1d2d6dcfca31002643a2b348ebc32d8f0156375c9c635e69aa057a23b37ff14c45caba504e3a183f6582bcb997a81937f285a81b966b01fcdf7050612df17260e6c8c1e052ed4db7a7922b27cfa034c7b06276380ce86b4e908e0b9cd9051f3b077be82671fecb80dc3004c322e756bd456ba311e59c56182a9bb5561a914c0f1912bcb128258126b819381e71f81b4ddc978a1c1fdd270e07bc3b30f5a80418493dac6ffb568cefd298fba1b43a1e37d4950afab649a52aec5e2055ae63419e86ef2ead6987b5781982de4be233ed5df2ed3976fcd9a30687fba9549c60e765b135312a062de3dac63ef83e64c8dee549b52cea394f728e53cfaf21e7d5d6d6e5fd1b11a449afd471afc38d2989b033072c94787f52f6f9287be059a1640b55a35d7579e1c092256699d0c2cebb1442e2d482bd3916de829d82c2e2a3e3fde60f84c9b94dd191744bcbdff927eef8bf3c77a92537b8be2d2a93930c0c315353969cac7ea9ebdbad18e079d9ce23ac726a524295b70a116f2cb459f0bb510650b940513f588932375466b8d63a5f8c4eeb2ac7e074cb8ae9bcc81abd5aad934949b9a348327ea9e95abd5a3c1663b4e65ec58e4b33602811f6a8c49989c6ef1e3d9b6fef97cf3f2cc4ce3b39ee4d4de59e8b8ebbad1c23b3d173b76ec9040fe245bef8f65d7168d5a2da5e877b25616a0e925be4ef4b88dff6b26193b385bd33160e65f7f90057001a4c693c1624394cb58a9b20047a0a5307120756bb468cefdd96d4d4c014dc0735d572f64fc051ce25446f3d12e580000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000004bc49444154388d95955f88d45514c73ff7fe7ebff93fb393bbab8de4ec6e521266c96c45d24b051256f4606551d09b903df5564f051148f45411423f28a2871e92880a12ac20ca32dac636354b526b35dd9dd999d9f9f39bdfdf7b6f0f939659465fb80fe79e733e1cee39f75ec16554db35ef8099045dc1981c18c0f818bde8e85ee36b776bf46fb9e232d02dc00e309b1154114e1e001d0e31ea34302f74b2b7665e3fe0baaefa4f706dd7fc7a104f62398f14f2b9f2951325b9663cc386893e594771a25de0978666b9d9d4edaeefebc43fe098c1f33798b7bf725d37f947706dd7fc14883da44adb365f9de5ee9b8b6c5a67585d76b0e428d4009d7ec2c9c5988fea019f1fee10f9bd6369dd7eea7ab3f7a3f370eb6f95be5a2895eeba6fcb9878ecf62cd7542cd28e45ac204a0c2fef53dc3805520a264a369ba61cd65ce170aa61267a81b8a96566eadb66b367eaf5bab900aedcfcf86e52c587efb9a52c429d61f3d40816c6a3f5c667f0dc43195e7c3fe6da358a3031186358bbcaa19873c40f67d4781019672d87f6cfcecec6d6a8da6fb7082bbdfbc6f5a5cc8edb326cbf35cd522762186ac258f3ee9cc5b30fa6914270c7f53627ce0544b126880d51625855907891cd42339e6eaa75f36b3876caae3d3ee760cc8e423e53aaad4f2184219fb1e8fb9a20d27cf17386e71eca5ce8436325a6eb5d3c044a1b365414df9f4817dbadc2f6463c7dd0062681cda5d2982c671286c1e874067ec2c153399e79203d6a9a31fcd68af8f6f880283123a0329c692b0e2f96e9f939fa14a46665634f54ab365041c8ea4451e0479a813faae6e0a9dc45952a0daf7d6280fc25333f35019ffe9806db066155b052551bc821d3f99c13b3e2694a790d701114c0b6c4257be735084058f0f11101329d159aa27dded90b1c96ba86525efe63f2e554c8c0d4e49f9742a0a50dc64787c3252f8ba732e48aff1fbcd4852f7e0281011504c224a18dd18bc0e9ee50cf2891c58b47c1cfbca37962abe4caf2c8f62378f22d5858be142c2484114451084635a4f616a5a37b0d609eb0ad1dcb60cb51c717960d2f7ca068f6467636054fdf07abc76010429868b45668ad305a91b215226a699be078d9fc7a4e7eed6e8d844ef6aab0db75548772260060223ba4b3e2f1d2871eedc1a8a13393f0ca639a99729f75a501958247a5e0b13ae7e1a80e3ae87819b5b47fcc5a6e5b00f7d6e499b3dc30234c327bd5b8439418ceb67cd2324625310bcd986bd6a6c8a625694770e0c80a8554423e959077126c1173fa5c8bd0ebecdb24de7b13685800f57add5c557bf46418739d17245361ac45ca16a41d43da31049162a119b2be92e693effa7406d1c8671b0431c7177abad5eece8daba37bcae2ec51a07fe111baa7e6b45aa63ad7f5ed8dbd61325dcc39ac2adaa41c49ca164489e1d0099f562f21650b1c0b96bb31874f76596cf6e6269343bbabb2fe0db0ecbaaeba00aed7eb66db6caedd32d387babe956b76e3e9fe304965ec44e4b336b6944801c6285a1d8f23bf0cf58f0bfdc1ca4a6fdfb83abae70f68c375dd7834cb7fd3ce9d3b25903fccfd7726b2b05de36c9452548a592b0bd0f755a0956ed804c7336a69ff06f9f197c012b0f2af3fc85fe0024835d474b927aa55ac54554051a0a5304928b5b75836bf9e1bb396db401ff05dd7d57f65fc0ec7b360d35ae88ae90000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000047c49444154388d8595db6f54551487bfbdcf656e9de994164b118602318454a04e4583899760d454a289688cb7f856020f24bc10ff0025fd03d4f4e1280fbef4411e4d30627c2148086548ad8821b140a9d2ceb4d39933cce5dcf6f661da424d8b275959679fbdd7777e6b65656dc1639efc89490bf466507d689d040de8265acd59ca2d5e715ef3378a158f811e02de073d882087b0520028af818eee01934285e7f2faec25c771a2ff05e74f4cee06710ac3faa82395cc6ee9c9c8deee387b7a6a24ac88bfca1ddc292a164a2555ae369b2a6c5eb2f4832ff6ebf1cb8ee384eb82f32726778018c3ce0c0fee4af0e6c134fbb66b9ec85a18b27d54034bb590e9b980f3851617a796f09beecd982a7ff6b43e777e056efc47e9d71d99cc1b6f1fea149fbe92e0a93e839865f0cd4f15f66e8fe1871a3fd41852d09331d9b7c3a2b7cbe27651f7b82df1eca2de59181e4acc160a05bd0aee3b787c143bfdc191e7b2e2ad210bdb92f8a1c60b34efbc90e5ab1f16d9b5c5c2f3155ea0f0428dd69aad9b2cd2494bfc311b75b77c6d6de5fa85a1a1a1c068abbd764818b1d103bb33f1e1bc8594e0078a56d0866ceb89f1e2408a93df699ec90578815ede6f67b0a94352f74d664a417f29da3ed9cbcddb46fef884059c4aa7d32fbd3a98125d1de0059a56d056eb059add5be300bcf7bcc1e971c1de2dfe9afd56a0b00d9fe97965d75b616084d58b26b01918cc643a65361ee2d6e5461d08c0f8499b0fbf84a3075ca248335b8e989acbe23693d4e8908aca802b723913e843c85c4f5ad0f4154d5fa197db65c5af0fcfb0bfb7c2e4df2966dd7646982608a30fc3ce4920898ca5925640a5ae701b0acfd7b47cbdea3752fedb7c965223b9fa4d0801329610905ecddb6d59cc57254557526d4a2a4d837b95185767528f2d8b1f190841db567e809226e826ca6bccd713d4a3783b7f4023a8f9367a7dc100bc3efaf05d88761451ab2574e899683507dcab36d4ce4824d6046ae486d3e4f019089627846980041e343dd05151aafa9cb4945b0426f1caca3234f623163322d6937cf80c8022694524ad88b819619b11c25f5426ad5b597df7be79c579cd1f3a76f95ce4553fb1a2445757da5e23526980ccea7a64acc6b63408a157cfb5e7878f6a2dd513d1fc854e63a16c02e4f5d94bd7c291ef6b95d2b1feee2e62a678d86f3c049ffe769eac0dda5ea969fb8c176a662a4b28bffacb1ef9f3af40cd0028140a7a5bfee3692f60af52d18e27bb0d918c0962962666695ede97e6f3f1fbc4ccf63a6eb77dccd408026ecdb86ab15c9de88e6e8c65c53f3756c10047f2d6e2a2ce4d549be680db08fbd3498b4d6913db925cbe59c736c51ab30c58a8064c4d57992bb9139bc3eba33959b80a2c388e13ad820b85821e1e4a961775fff56ad34896aa417fad11da713314a9848929255280d6118b4b757ebfd3507fced41e542aee8fddd18db16568d1719c00d669a691911109a4a678f770283b8e2aac0129455f3a6124006acda8a522553469dd8a47f317966b3a0f5436bc411e810bc02e46fd5957e47218764e405aa0a4d0a127557d2eabefdeef3416ca400d683a8ea31e65fc0b65f3416ec3c8f69a0000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003f849444154388d9595dd6f145518c67fe7ccc7ee6c77962d2d1f8bba14d1340621b82b26dc1063a206895e60421413bd2a813b132fbcf24a13fe02c3c524c43b2ec444632244888951c48fb24d459410a87ca56cb7dded7eb03b3bb333e778b1b4b648b13cc993c99939f37b9fbc6fce8ce0212a1c99b440af039543eb146840fb6855b654b3f28bf772b8d2bbe221d0ddc001d03b11e411d600002ae8a0e35bc0a450d1c9823e7ecef3bcf87fc18523935b41bc8f611d4c0fa4b21b873372c35092d1e1168e1573ad96e67a4531373bab6a0ddf57917fced2773fd9a14f9cf73c2f7a20b8706472338863d899bd3b9f74786d97cbf62734ebb31686ec6fd5c07c2b62aadce354a9cb0f17e709fde65f0955fbf0597df2d402dcb82fe9a7e94ce6d53776af11efbee8f074ce206119f4620823bd68430a863326db375b6c18b4f8bba2879b5df17c556f29ed2d3ab74ba5925e04e7761d3e8aedbeb5ef85ac78bd68615b9230d204bdfb1c2a829e2288345a6b36adb5705396f8f3763cd40db5b5898933c562b127fa692fec1646f29b1d4fadcd1edce3e03a926f27fc95e6ba4caf3ce7d08b345ffdeaf3fd44a56104d3ef6de78bd366e1f0b885d607d203c94c61ab4dac148db606e0a3b7d73f14faf1890a9d40d10d15a3b998dfaf25dc5a35bdbfd21bf9d904d6013b339935329b8c68b6e5aa922ee8b31f130034fd142dd25251dfd614f9bc09e410323fec0afc50e1878a7eded515102ae46a2dd35f982608238761e74d20854c0ca4ac1ef5b6420ab0cd15cfcd325d9b4b2e2f2204c8842314aeb970b3d9b59869680c09aeb33a30c0d55a06b1b05ddf2b809226681f157466da0eed38b9f850af7cda1fa83e5c43dced0a1d05265a95815b8d8eda120be791600b328dfe44eefa01e8b82255bb2c2dd5ac0093043565191a7b8957aba419639b3122ac2a93ee95acbe714700140f9ddf23ecf497b9dcc6c141d77ea42618122205f3ad90f2f474cbe95efe60549efdda0428e8e3e72e44639fb7eab3874686064998a2ff795a087ddf70342c1b5810696ed6e75161e3bb5179f627a06500944a25fd78e19da9a0c7334ac59b1f1b32442a214858ba6f73f93569ffbb16f4b872b3a9aab5c6f8507ce958564c5f5a0403ec2b58d5aace8f377c735bb3138db8298bb5ae896d496c53fcc79601738d1e17a71a94679be3eba289a37959fa0d98f33c2f5e04974a25bdb798aa55f5c844c33752b38dde48ab13d9493312038e8929255280d631d5f9367f5cefa8cb375b77ebf5e6e9a1f8d2b17bd08ae779bda5dd5bd4d8d89804062ef2e64b914cef5758dba41439d7311c80961f7755ac2a26dd2bc978e6ccbd9ece00f515ff204be002b02bf148b629f2790c3b2fc0152829741448d52e67f58d3b6b8cb91ad0027ccff3d452c63f42b8e4bfe27a6d4a0000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d494844520000001600000015080600000042201e950000030849444154388dad554b48545118feeebde7de73ee38a835f9b642522c88287a1818452ec240a2859bc485ab36b6b24d2d0c373192e0628488088c5a644424f84ca1262d7ba8898f1ec3cdc60a4d449bd161c6c7bd774e8b74e63a0a957a56e7fbcff9bfff3fdff9cf7f30f265d03bfa75b442d3343bb6700835ad55dcfda315677717cf1cdd71d20553a8cbcbcbf36d9af87ae355dea0dd060024b13414a416050e25e4df92c2726d6161e1e48689af3dbccc9f7cbfbbca184fb6217ffb9985fdec583d31959a929212ef7f135fb97f89b74c3e58651405119430242a0e1ca0c7f55d666e83a42bd5e5e5e51fff99b8e2ce45dee97b1c354000250c4c56c1880a26abb0937864ea39e184d994461e129d9595957d7f252ebf59c6bb824d11525952a0ca2a18b145c8555905936d50251be2fc0e6082762cfa0ca761186e97cbb52eb1b8b4b818014492410983421828a1a08445b144a1c814529a89b83c7e26e1a0f25cb4e355595959516969a9104b2ced2fc8ad9a14c64044021623019359744e56e378871d69fb927626262794cc0716cea72765f8b3b3b33f699ac60140da776a4fd52ff9e71a67ba1e96d54870ba2c9123d981bd87735233b3328a4381f90baa6c9b4f4f4f1f91724f645505ed3ed0d8ccac99c79e64055be629292938927fd841157a6eb06ff83431757359cba8a6744553c24025165957aceb844291a27bb5a1513c6bead2867a876f70ceef11430f479c9558722b96d606572405236f3fe345f3cb41cf90560de091c7e33101809886b9d659b238af21a320828c01f730ba5bdef48c79be3901b478bd5e6ead0a62ea26d4d8d25ac196a352c2208609deb50fe0755b6fc7c4d8a49373ee1e1f1f5fb78e97358e8b385b355d09c67511af5a7ac36fdbdf374e4fcc38a7a6a6fefaf2886198964ba19607c16086c278d1f646ef7b3ad8303b3d57edf7fbffb957fcc958a2ab2e6c6956474ff3c0c240e7487d686ebe26180cfe77778b949b422882530be86eea0f0c3dfb7c6b31b454abebfa86fb31310c1373e3217435f5cf7c707f71194b461d804dff20b025aa5e41142a006ce99ff71b822c25ef1cc11d000000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000013c49444154388d9d53316ec3301023650d1e1ca09fe81ff3b4ee9933b443f2888e05a273635d3ac44e6d59d239316088902d82e451fc3a1cc2efe9d4aa2a628c88aad0181163c4b4a7aa50124ae236ae739cee7d5fafe27f8ec7b6dfef917b08c003a0f768ba0ecd6e073fae296eba0e7ec41f974beb44244bba789a061c5f789fc59c61e97bb810429d945c1d2ce239b1a97824c68c64851307226213d3395361fafdaed888620b61eae09e714d31991f96f7ff1164dcd851e406b76180c18ae2a17443dde60e44a41ec55685d91e17a3a8f4d7725027766e616f35acca851986a17cf35ee9efe4066459b135a02c9efe230bad209fab58120fc87c2be8dc528155b1c40d8b5124d7f4d94b0212aecf29b60e971c4c5100707abbadf3350664b9010957cdf7d50192e01b19dec9f6c13c11a7b6332b0afb9fe7b3fc019ecf96bd7521bf4c0000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d4948445200000013000000160806000000229da77f0000036d49444154388d9dd44f6c14551c07f0ef7b336f66763bbbed065acac26eb1b661a156a84ad51e48c1602d280910c2416b1aa2de4c6ad2a6dcd10b07120f7a68e2c5c4b426481aa3ae1a352458a45a3090b45ad20d290bd49ae54f77bb333bf3fe8c879542c91ed8fe2ebfd3fbe4fb7ebfe44750a10607078994f27929e57e29c52e4bf39eb6985f4f204d2e94724a72f96e5ee6f2cb3ccb399fe59c5f15429c278f22c3c3c3504abdcea877727be3cd9ddb1a7348ae2fa1264441a8056826402d105aee058fe1568e20734be0e32f3293e4118829a53ee988cfbdbb2f358d1a8b00ff3f0235b1e486902f99209421629ba88b8640b487f02bef9cfb430780a1a12128253fdb9f9aeceb6cba5e4e414cdc754248ff598f4b99d07c6e29981242fc2b844f382fd65b4ca59a36b2547b6b547b69c70670cea1038052eaed979ba6fb3a93198098006598b91dc3c84f89e9828bf79552e7ce9cf932787cb65d5d5db517afe4ba3f1d9d7d4308619281810116359dcc07dddf260c4303a116160b117c78b6f58ae391dda3a3a3f94a4baa54ba94b2b763d35cc26004843080309cfd7d43502ce1f8d8d8934300408510bddb1a1700a20384c1e106a6e6c217a49497ab810040872a3d178f3920d4002843e69f30dc92f8657c7cbc5a0b3462149b744d030803888e85fb0c9cf36b554b00a84ebce803089461d925e09cdf5b1326a40428032803210c410070cee99ab082132c3d183e888eb045c0395fbf266ce14e302f82722a5086cd0d3a7cdf6f5b135674f9a5eb8b2640cbe9525b423075d9dbd656bd477ddf4f4f4cd3956f9a8681575fb4b70b210e568d09217ef8e6823feff2f2364118de3b9244434c1f4924125babb01ab46c36abecdafa9c5bc2e1ae67eb006ac00a85b0fb858df6c4e5c5b796ddc0678ccd7a9e57aa00ac0370c460fa69c6f4530400dadbdb2184f8fc44ffe6be63af25016a82500bbe6418fb6e0e5f7dffb798ba9a9db973af900d82c00310696c883db5a3adb979dfde4e7af4500f0ebd79c259398e2d2d2d4c083e72ac6753ffd0f19d8844232b28a8898098c817157ca9c1b66b11b6a3abae6f6777bfb3ea6cc7e37108218e466bb48f0ef7b4b61ed89342c7335b6085ed5530a8050586cc7c0ebf4efe85afd313eac79f2fa6092a946ddb544ab987737e8052ec4ac663cdb13a7b9daeeb8c8bc0cf17dcfb376fe7b28eebcd00f80d401ac08dff00c10a6928577ebacd0000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d4948445200000012000000160806000000cd5fcc410000036c49444154388d8d944f681d5514c67fe7dc7969fe27d6e43521312db54d17a205ff202228ba5214172e34ba2f15954211d195202e14290a826b45d04d715145ab2b1782d406425bb158c4a64193e03398e4bdbce4bd99b9e7b898c94b0db63870b9c35ce63bdf77ce773fb9e7de87db59aeb839ee8e79b1ef2cdb3e73276d8837e7cdf21fccece36bd7ae5da07c646c6ac65756ab8808228a6ab14442b1aba2e5f7e2dd49f44f12bfe4d8c27b66f6eae2e2a22beec00e48127242c849424a08294133541d112d57059729f2e42931bdeb15337b0940f64d3eebab8d714494deee7526467e9c37b32b6656483553331fcc63ef91cc0fdd12f53e5442c9cec81a1f5eb5b8797b021495541171ccecf4e5cb975f63d7b37ffffe4ab0d95348ff09c29da828a209c8e841b3f921dd065251440433db8d01c0c2c2421663fc88b85c161654047730b35000a9202200c418ff1308c0cc869d4a59b4289c67b59abbaf260e254d056ecca85aadaa999da854a64b364aba35479ead7d52afd7bdd3a3eba48d4e4d4d1d3533ca8607333be4cef1d0fde0a3a1720011256dfdc4c6ea1773eefe26805427677c2b3d88aa12748beee4223838803b8e800c11baa6d1a48a657fd0daf8ded3ad5f3e057fb9d168ac03148cb4d08c0cd0f6874a03868e19a53469abfe15ede67973f737628c6f6f6e6e76fa20d5c9194fe374f9534ee0771010044410029aec25e91a472510f3255a1b7334ebb357f2ac79324dd3b305d0c48c677ea4b81a2c11f233dfb9fbd7db3d32b32e333b8c0c3cd933f8c848dfe0038806dc365859facc37d62fbc1e637cf75fd2a498da6cad563bb57b6a7d7d795f7de5f3f72daf1f1b1e7d02a90c337ee04559bcfac13b8db58be795ff39fe66b3d98c311e5f5bf9f65c8ceb8808aa81b1db9e17e064e9ec1d43de0808a0dd6e7b8cd999d6e67c99104a77ef0495aebdf7ab97d2b67d7433679785fa552b9db4105142e8e94fb6234444f19b4813915e777f2ce91a79a17ff08e8e0a1127cbd69693a24752dc37dd83b3e7586f5fe5e922421c7757a8f4856468a4b7ff70b875ec7142d2d329de589b23e6cdb3323af19c57baefee98ae687ce8d0de49ccebcf0bc3a6ed1abffdfcd64ada5e39da197fe746ab160c4550dd91ad1df70b696b99f5bfcff1d7f237bfc6bcf90cb0240303fbea2e7b76857f918e38504e5300f798e579bd66b17509f812380db401fe0179e9cebb2a5ad4cb0000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000001e249444154388dc594bf6e13411087bf995927560402040d74e900512024c42bd0d0512221f10034888217a0e34ddca54993741469282841a24041427420127cf6ee0cc59d8d4f3efb1c37cce974da9bbd6f7ff3ef2422f8f0f14ba80a5d369966a69329a5383f7f9d01f0e4f1a3eecd0b96005485fbf7f6979c1ec1b8cae4ece4ec7c3dfdced52b9739383c893eb8f69d6c2aa80aa6f5d6dd9d010f1fdce1e0f024b606ab08664a32c5522d706f6fc88deb97b87b7b7f2dbc5731802c043ddc359229b76e5e5bab3c6d06aed37174fc9ea3e365ffbb4f9fe3d5cb67ad9cf782558588404578f1fc2900a5144ebffd6032cd4404a3d168f9bb4d15039809a5147e9ffdc1233053d4ba11bd8ac38388c023383faf185713722e0c873b84434477fdd6823d825c9ce241ce8e7bccd527333028eedb29aeaa52e792405518a48499528a1311947241f06cea8a07aa8a37ca5405096da9ef05fb42bec655c6bd56094df889b9c2648687b3aafe2d7035c92da78a80817b904c99798380ece08a5ab7e2d671b270352fe82c7af34e8446750fb87588d480791a9ba7aa2222f35ba51bb1d1806c63ff09bce657be6ae266b6b2dd887aed1ef33580bbd75dd1c05715af05de19fceb9d19b0b813d1b49c28311b0e0a4120b93bac0460a6bc7ef3766d6817b5bf762fef4119a5327f0000000049454e44ae426082 - - - 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000034649444154388ded93cf6b245510c73fef75f7cc744fd6cdc6c9925fc45d4312300103eb25a0110f5ebd2f83785010f412043d08fe11dec4837791c57f40f0e2c143302ec9921c3271421cc3984c8699ee4ccf7bfdfa3d0f9b6967d7f8176841417575f5b7befdad2af8dfae4d8c825aad562d954a73d65a757979f987d6da3c5fbcb9b9f9200cc3ca78cef77d4f4ae90bf1142e49927ea3d17822b6b7b757161616deb2d63e0456009565d90f9ee7ed010ec05aeb2a95ca4bf57afd3d29a5b4d6e29c03c03927f2dc0a630520383bfb7df0fda3ef3ef3d7d7d73fadd7ebef0b21843106630c799e7f90e7f928462985d69ae1704818860821504aa194c26419da7aecb64a1c9d295ebd9bdf2907deb21f86e164a552115a6b00f23c27cb32b4d61863504a311c0e999f9f278a22acb5645946b55aa55c2ed36eb7b1cee11cdc99b054cbce65c638df5aebd234456b8dd69a2ccb9e014ed394a5a5258220e0f0f090c16080520a6b2dd3d3d3d46a35daed366fbc3c8114923f3b6072871fc731fbfbfbf4fbfd82ad73aef8fdb5b535cae532cd66937ebfcfeeee2f743a1d565656499204630c954a856e2f268a228cc971cee11b634892a42832c614c04110303737471cc7f8becf575f7fc393df86dc9eacf1eda32ff9f8c377f13c8fc5c545b22c23cf73468395ce39acb54572dc8320200882eb010ef9f1e763ee6d7dceeadb5f70555ae7f1e35fb1d63292b2d7eb11c7315a6bfc11c8a8c1b88fb6c25a4b1846ccdcbd45394af1ab9ac95b39b75f78112104c6185aad168d4603a514ad56eb29f0f36c8d310593388e29954a54ab553ef9e8217b8d9ff02f2abcb3758ff557561142e09c238ee3e27be06fe09ba4504a717070c0c6c6064992f0e6d616af3d48e8f57a0cd321e970481445f4fb7d3a9d4e7134802834be490ae71c4747479c9e9e025c0f38474a0fcff799989820cf734e4e4e18ddc135b89337818d1c406bcdcece0ecd66f399ad114230180c383e3ea6dbed22a5444a8910022104fed4d4945c5e5e264dd3428e7169c663a554c1caf33c7cdf67767696999999824cb7db15171717d237c6ec799ef77a1886de680bc6b761fcb9dbedfea3e978f3eb9bb832c61c89fbf7ef57a3285a96529647ca8f0d817fcbdd5403608cb93a3f3f6fdcf8f2bf697f015a83baa7c09980510000000049454e44ae426082 - - - - - fileCloseAction - activated() - dvbcutbase - fileClose() - - - fileOpenAction - activated() - dvbcutbase - fileOpen() - - - linslider - valueChanged(int) - dvbcutbase - linslidervalue(int) - - - jogslider - valueChanged(int) - dvbcutbase - jogslidervalue(int) - - - jogslider - sliderReleased() - dvbcutbase - jogsliderreleased() - - - editStartAction - activated() - dvbcutbase - editStart() - - - editStopAction - activated() - dvbcutbase - editStop() - - - editChapterAction - activated() - dvbcutbase - editChapter() - - - editBookmarkAction - activated() - dvbcutbase - editBookmark() - - - editAutoChaptersAction - activated() - dvbcutbase - editAutoChapters() - - - editSuggestAction - activated() - dvbcutbase - editSuggest() - - - editImportAction - activated() - dvbcutbase - editImport() - - - eventlist - doubleClicked(QListBoxItem*) - dvbcutbase - doubleclickedeventlist(QListBoxItem*) - - - eventlist - contextMenuRequested(QListBoxItem*,const QPoint&) - dvbcutbase - eventlistcontextmenu(QListBoxItem*,const QPoint&) - - - gobutton - clicked() - dvbcutbase - clickedgo() - - - goinput - returnPressed() - dvbcutbase - clickedgo() - - - gobutton2 - clicked() - dvbcutbase - clickedgo2() - - - goinput2 - returnPressed() - dvbcutbase - clickedgo2() - - - playPlayAction - activated() - dvbcutbase - playPlay() - - - playStopAction - activated() - dvbcutbase - playStop() - - - playAudio1Action - activated() - dvbcutbase - playAudio1() - - - playAudio2Action - activated() - dvbcutbase - playAudio2() - - - fileNewAction - activated() - dvbcutbase - fileNew() - - - fileSaveAction - activated() - dvbcutbase - fileSave() - - - fileSaveAsAction - activated() - dvbcutbase - fileSaveAs() - - - viewDifferenceAction - activated() - dvbcutbase - viewDifference() - - - viewNormalAction - activated() - dvbcutbase - viewNormal() - - - viewUnscaledAction - activated() - dvbcutbase - viewUnscaled() - - - fileExportAction - activated() - dvbcutbase - fileExport() - - - zoomInAction - activated() - dvbcutbase - zoomIn() - - - zoomOutAction - activated() - dvbcutbase - zoomOut() - - - viewHalfSizeAction - activated() - dvbcutbase - viewHalfSize() - - - viewFullSizeAction - activated() - dvbcutbase - viewFullSize() - - - viewQuarterSizeAction - activated() - dvbcutbase - viewQuarterSize() - - - viewCustomSizeAction - activated() - dvbcutbase - viewCustomSize() - - - snapshotSaveAction - activated() - dvbcutbase - snapshotSave() - - - chapterSnapshotsSaveAction - activated() - dvbcutbase - chapterSnapshotsSave() - - - helpAboutAction - activated() - dvbcutbase - helpAboutAction_activated() - - - helpContentAction - activated() - dvbcutbase - helpContentAction_activated() - - - - gettext.h - - - fileOpen() - linslidervalue(int) - jogslidervalue(int) - jogsliderreleased() - editStart() - editStop() - editChapter() - editBookmark() - editAutoChapters() - editSuggest() - editImport() - editConvert(int) - abouttoshoweditconvert() - doubleclickedeventlist(QListBoxItem *) - eventlistcontextmenu(QListBoxItem *, const QPoint &) - clickedgo() - clickedgo2() - playPlay() - playStop() - playAudio1() - playAudio2() - mplayerexited() - fileClose() - fileNew() - fileSave() - fileSaveAs() - updateimagedisplay() - viewNormal() - viewUnscaled() - viewDifference() - fileExport() - audiotrackchosen(int) - loadrecentfile(int) - abouttoshowrecentfiles() - zoomIn() - zoomOut() - viewFullSize() - viewHalfSize() - viewCustomSize() - viewQuarterSize() - snapshotSave() - chapterSnapshotsSave() - helpAboutAction_activated() - helpContentAction_activated() - - - + + + + + + 0 + 0 + 134 + 31 + + + + File toolbar + + + + + + + + + + 134 + 0 + 134 + 31 + + + + Edit toolbar + + + + + + + + + + 268 + 0 + 134 + 31 + + + + Play toolbar + + + + + + + + + true + + + + 0 + 0 + 741 + 22 + + + + + &File + + + + + + + + + + + + + + + &Edit + + + + + + + + + + + + + &View + + + + + + + + + + + + + + + + &Play + + + + + + + + + + &Help + + + + + + + + + + + + + + image0image0 + + + &Open... + + + Open + + + O + + + fileOpenAction + + + + + false + + + false + + + + image1image1 + + + &Save + + + Save + + + S + + + fileSaveAction + + + + + false + + + + image2image2 + + + Save &As... + + + Save As + + + + + + fileSaveAsAction + + + + + + image3image3 + + + Close + + + Ctrl+Q + + + fileCloseAction + + + + + false + + + + image4image4 + + + Play audio: last 2 seconds + + + Audio ->| + + + Shift+> + + + playAudio1Action + + + + + false + + + + image5image5 + + + Play audio: next 2 seconds + + + Audio |-> + + + < + + + playAudio2Action + + + + + false + + + + image6image6 + + + Play + + + P + + + playPlayAction + + + + + false + + + + image7image7 + + + Stop + + + Q + + + playStopAction + + + + + false + + + + :/icons/play.png:/icons/play.png + + + Set start marker + + + A + + + editStartAction + + + + + false + + + + :/icons/stop.png:/icons/stop.png + + + Set stop marker + + + N + + + editStopAction + + + + + false + + + + :/icons/chapter.png:/icons/chapter.png + + + Set chapter marker + + + C + + + editChapterAction + + + + + false + + + + :/icons/bookmark.png:/icons/bookmark.png + + + Set bookmark + + + B + + + editBookmarkAction + + + + + false + + + Auto chapters + + + Ctrl+C + + + editAutoChaptersAction + + + + + false + + + Suggest bookmarks + + + M + + + editSuggestAction + + + + + false + + + Import bookmarks + + + I + + + editImportAction + + + + + + image12image12 + + + New + + + fileNewAction + + + + + false + + + Export video... + + + E + + + fileExportAction + + + + + true + + + true + + + Normal + + + Ctrl+N + + + viewNormalAction + + + + + true + + + Unscaled + + + Ctrl+U + + + viewUnscaledAction + + + + + true + + + Show difference to current picture + + + Ctrl+D + + + viewDifferenceAction + + + + + true + + + true + + + Full size + + + Ctrl+1 + + + viewFullSizeAction + + + + + true + + + Quarter size + + + Ctrl+4 + + + viewQuarterSizeAction + + + + + true + + + Custom size + + + Ctrl+3 + + + viewCustomSizeAction + + + + + Zoom in + + + Ctrl++ + + + zoomInAction + + + + + Zoom out + + + Ctrl+- + + + zoomOutAction + + + + + true + + + Half size + + + Ctrl+2 + + + viewHalfSizeAction + + + + + false + + + + image13image13 + + + Save Snapshot + + + G + + + snapshotSaveAction + + + + + false + + + Save Chapter Snapshots + + + Ctrl+G + + + chapterSnapshotsSaveAction + + + + + &About + + + &About + + + About + + + About + + + helpAboutAction + + + + + &Contents + + + &Contents + + + Contents + + + F1 + + + helpContentAction + + + + + + + Q3ToolBar + Q3Frame +
q3listview.h
+
+ + Q3Frame + QFrame +
Qt3Support/Q3Frame
+ 1 +
+ + Q3MainWindow + QWidget +
q3mainwindow.h
+ 1 +
+ + Q3ListBox + Q3Frame +
q3listbox.h
+
+
+ + + + + + fileCloseAction + activated() + dvbcutbase + fileClose() + + + -1 + -1 + + + 20 + 20 + + + + + fileOpenAction + activated() + dvbcutbase + fileOpen() + + + -1 + -1 + + + 20 + 20 + + + + + linslider + valueChanged(int) + dvbcutbase + linslidervalue(int) + + + 20 + 20 + + + 20 + 20 + + + + + jogslider + valueChanged(int) + dvbcutbase + jogslidervalue(int) + + + 20 + 20 + + + 20 + 20 + + + + + jogslider + sliderReleased() + dvbcutbase + jogsliderreleased() + + + 20 + 20 + + + 20 + 20 + + + + + editStartAction + activated() + dvbcutbase + editStart() + + + -1 + -1 + + + 20 + 20 + + + + + editStopAction + activated() + dvbcutbase + editStop() + + + -1 + -1 + + + 20 + 20 + + + + + editChapterAction + activated() + dvbcutbase + editChapter() + + + -1 + -1 + + + 20 + 20 + + + + + editBookmarkAction + activated() + dvbcutbase + editBookmark() + + + -1 + -1 + + + 20 + 20 + + + + + editAutoChaptersAction + activated() + dvbcutbase + editAutoChapters() + + + -1 + -1 + + + 20 + 20 + + + + + editSuggestAction + activated() + dvbcutbase + editSuggest() + + + -1 + -1 + + + 20 + 20 + + + + + editImportAction + activated() + dvbcutbase + editImport() + + + -1 + -1 + + + 20 + 20 + + + + + eventlist + doubleClicked(Q3ListBoxItem*) + dvbcutbase + doubleclickedeventlist(Q3ListBoxItem*) + + + 20 + 20 + + + 20 + 20 + + + + + eventlist + contextMenuRequested(Q3ListBoxItem*,QPoint) + dvbcutbase + eventlistcontextmenu(Q3ListBoxItem*,QPoint) + + + 20 + 20 + + + 20 + 20 + + + + + gobutton + clicked() + dvbcutbase + clickedgo() + + + 20 + 20 + + + 20 + 20 + + + + + goinput + returnPressed() + dvbcutbase + clickedgo() + + + 20 + 20 + + + 20 + 20 + + + + + gobutton2 + clicked() + dvbcutbase + clickedgo2() + + + 20 + 20 + + + 20 + 20 + + + + + goinput2 + returnPressed() + dvbcutbase + clickedgo2() + + + 20 + 20 + + + 20 + 20 + + + + + playPlayAction + activated() + dvbcutbase + playPlay() + + + -1 + -1 + + + 20 + 20 + + + + + playStopAction + activated() + dvbcutbase + playStop() + + + -1 + -1 + + + 20 + 20 + + + + + playAudio1Action + activated() + dvbcutbase + playAudio1() + + + -1 + -1 + + + 20 + 20 + + + + + playAudio2Action + activated() + dvbcutbase + playAudio2() + + + -1 + -1 + + + 20 + 20 + + + + + fileNewAction + activated() + dvbcutbase + fileNew() + + + -1 + -1 + + + 20 + 20 + + + + + fileSaveAction + activated() + dvbcutbase + fileSave() + + + -1 + -1 + + + 20 + 20 + + + + + fileSaveAsAction + activated() + dvbcutbase + fileSaveAs() + + + -1 + -1 + + + 20 + 20 + + + + + viewDifferenceAction + activated() + dvbcutbase + viewDifference() + + + -1 + -1 + + + 20 + 20 + + + + + viewNormalAction + activated() + dvbcutbase + viewNormal() + + + -1 + -1 + + + 20 + 20 + + + + + viewUnscaledAction + activated() + dvbcutbase + viewUnscaled() + + + -1 + -1 + + + 20 + 20 + + + + + fileExportAction + activated() + dvbcutbase + fileExport() + + + -1 + -1 + + + 20 + 20 + + + + + zoomInAction + activated() + dvbcutbase + zoomIn() + + + -1 + -1 + + + 20 + 20 + + + + + zoomOutAction + activated() + dvbcutbase + zoomOut() + + + -1 + -1 + + + 20 + 20 + + + + + viewHalfSizeAction + activated() + dvbcutbase + viewHalfSize() + + + -1 + -1 + + + 20 + 20 + + + + + viewFullSizeAction + activated() + dvbcutbase + viewFullSize() + + + -1 + -1 + + + 20 + 20 + + + + + viewQuarterSizeAction + activated() + dvbcutbase + viewQuarterSize() + + + -1 + -1 + + + 20 + 20 + + + + + viewCustomSizeAction + activated() + dvbcutbase + viewCustomSize() + + + -1 + -1 + + + 20 + 20 + + + + + snapshotSaveAction + activated() + dvbcutbase + snapshotSave() + + + -1 + -1 + + + 20 + 20 + + + + + chapterSnapshotsSaveAction + activated() + dvbcutbase + chapterSnapshotsSave() + + + -1 + -1 + + + 20 + 20 + + + + + helpAboutAction + activated() + dvbcutbase + helpAboutAction_activated() + + + -1 + -1 + + + 20 + 20 + + + + + helpContentAction + activated() + dvbcutbase + helpContentAction_activated() + + + -1 + -1 + + + 20 + 20 + + + + + --- a/src/eventlistitem.cpp +++ b/src/eventlistitem.cpp @@ -18,19 +18,19 @@ /* $Id$ */ -#include +#include #include #include #include #include "eventlistitem.h" #include "settings.h" -EventListItem::EventListItem( QListBox *listbox, const QPixmap &pixmap, +EventListItem::EventListItem( Q3ListBox *listbox, const QPixmap &pixmap, eventtype type, int picture, int picturetype, pts_t _pts ) : - QListBoxItem(listbox, afterwhich(listbox,picture)), pm(pixmap), evtype(type), pic(picture), pictype(picturetype), pts(_pts) + Q3ListBoxItem(listbox, afterwhich(listbox,picture)), pm(pixmap), evtype(type), pic(picture), pictype(picturetype), pts(_pts) { if (pm.width()>160 || pm.height()>90) - pm=pm.convertToImage().smoothScale(130,90,QImage::ScaleMin); + pm=pm.scaled(130, 90, Qt::KeepAspectRatio, Qt::SmoothTransformation); } EventListItem::~EventListItem() @@ -61,7 +61,7 @@ void EventListItem::paint( QPainter *pai } if (listBox()) { - QSimpleRichText rt(getstring(),listBox()->font()); + Q3SimpleRichText rt(getstring(),listBox()->font()); rt.setWidth(1000); QColorGroup cg(listBox()->colorGroup()); @@ -77,7 +77,7 @@ void EventListItem::paint( QPainter *pai } -int EventListItem::height( const QListBox* ) const +int EventListItem::height( const Q3ListBox* ) const { int h=0; @@ -87,7 +87,7 @@ int EventListItem::height( const QListBo return QMAX( h+6, QApplication::globalStrut().height() ); } -int EventListItem::width( const QListBox* lb ) const +int EventListItem::width( const Q3ListBox* lb ) const { int width=3; @@ -95,7 +95,7 @@ int EventListItem::width( const QListBox width += pm.width()+3; if (lb) { - QSimpleRichText rt(getstring(),lb->font()); + Q3SimpleRichText rt(getstring(),lb->font()); rt.setWidth(1000); //drawinglistbox->width()); width+=rt.widthUsed()+3; } @@ -125,13 +125,13 @@ QString EventListItem::getstring() const ((const char *)".IPB....")[pictype&7]); } -QListBoxItem *EventListItem::afterwhich(QListBox *lb, int picture) +Q3ListBoxItem *EventListItem::afterwhich(Q3ListBox *lb, int picture) { if (!lb) return 0; - QListBoxItem *after=0; + Q3ListBoxItem *after=0; - for (QListBoxItem *next=lb->firstItem();next;after=next,next=next->next()) + for (Q3ListBoxItem *next=lb->firstItem();next;after=next,next=next->next()) if (next->rtti()==RTTI()) if ( ((EventListItem*)(next))->pic > picture) break; --- a/src/eventlistitem.h +++ b/src/eventlistitem.h @@ -22,16 +22,16 @@ #define _DVBCUT_EVENTLISTIEM_H_ #include -#include +#include #include "pts.h" -class EventListItem : public QListBoxItem +class EventListItem : public Q3ListBoxItem { public: enum eventtype { none, start, stop, chapter, bookmark }; public: - EventListItem( QListBox *listbox, const QPixmap &pixmap, eventtype type, int picture, int picturetype, pts_t _pts ); + EventListItem( Q3ListBox *listbox, const QPixmap &pixmap, eventtype type, int picture, int picturetype, pts_t _pts ); ~EventListItem(); const QPixmap *pixmap() const @@ -56,8 +56,8 @@ public: return; } - int height( const QListBox *lb ) const; - int width( const QListBox *lb ) const; + int height( const Q3ListBox *lb ) const; + int width( const Q3ListBox *lb ) const; int rtti() const; static int RTTI() @@ -77,7 +77,7 @@ private: QString getstring() const; - static QListBoxItem *afterwhich(QListBox *lb, int picture); + static Q3ListBoxItem *afterwhich(Q3ListBox *lb, int picture); }; #endif // ifndef _EVENTLISTIEM_H_ --- a/src/exception.cpp +++ b/src/exception.cpp @@ -46,5 +46,5 @@ void dvbcut_exception::show() const if (extype.empty()) extype="DVBCUT error"; - QMessageBox::critical(NULL,extype,what(),QMessageBox::Abort,QMessageBox::NoButton); + QMessageBox::critical(NULL,QString::fromStdString(extype),what(),QMessageBox::Abort,QMessageBox::NoButton); } --- a/src/exportdialog.cpp +++ b/src/exportdialog.cpp @@ -22,21 +22,28 @@ #include #include "exportdialog.h" -exportdialog::exportdialog(const std::string &filename, QWidget *parent, const char *name) - :exportdialogbase(parent, name, true) +exportdialog::exportdialog(const QString &filename, QWidget *parent, const char *name) + :QDialog(parent, name, true) { - filenameline->setText(filename); + ui = new Ui::exportdialogbase(); + ui->setupUi(this); + ui->filenameline->setText(filename); + } + +exportdialog::~exportdialog() + { + delete ui; } void exportdialog::fileselector() { QString newfilename(QFileDialog::getSaveFileName( - filenameline->text(), + ui->filenameline->text(), "MPEG program streams (*.mpg)" ";;All files (*)", this,0, "Export video..." )); - if (newfilename) - filenameline->setText(newfilename); + if (!newfilename.isEmpty()) + ui->filenameline->setText(newfilename); } --- a/src/exportdialog.h +++ b/src/exportdialog.h @@ -22,13 +22,17 @@ #define _DVBCUT_EXPORTDIALOG_H #include -#include "exportdialogbase.h" +#include "ui_exportdialogbase.h" -class exportdialog: public exportdialogbase +class exportdialog: public QDialog { Q_OBJECT public: - exportdialog(const std::string &filename, QWidget *parent = 0, const char *name = 0); + exportdialog(const QString &filename, QWidget *parent = 0, const char *name = 0); + ~exportdialog(); + Ui::exportdialogbase* ui; + +private: public slots: virtual void fileselector(); --- a/src/exportdialogbase.ui +++ b/src/exportdialogbase.ui @@ -1,197 +1,212 @@ - -exportdialogbase - - - exportdialogbase - - - - 0 - 0 - 664 - 343 - - - - dvbcut: export video - - - true - - - - unnamed + + + exportdialogbase + + + + 0 + 0 + 664 + 343 + + + + dvbcut: export video + + + true + + + + + + + + ... + + + + + + + Export as: + + + false + + + + + + + + + + Output format: + + + false + + + + + + + + + + + + Audio channels + + + + + + Q3ListBox::Multi - - - layout4 - - - - unnamed - - - - filenamebrowsebutton - - - ... - - - - - textLabel1 - - - Export as: - - - - - filenameline - - - - - textLabel2 - - - Output format: - - - - - muxercombo - - - - - - - groupBox1 - - - Audio channels - - - - unnamed - - - - audiolist - - - Multi - - - - - - - line1 - - - HLine - - - Sunken - - - Horizontal - - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - Horizontal Spacing2 - - - Horizontal - - - Expanding - - - - 20 - 20 - - - - - - buttonOk - - - &OK - - - - - - true - - - true - - - - - buttonCancel - - - &Cancel - - - - - - true - - - - - - - - - buttonOk - clicked() - exportdialogbase - accept() - - - buttonCancel - clicked() - exportdialogbase - reject() - - - filenamebrowsebutton - clicked() - exportdialogbase - fileselector() - - - - gettext.h - - - fileselector() - - - + + + + + + + + + QFrame::HLine + + + QFrame::Sunken + + + + + + + 6 + + + 0 + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 20 + 20 + + + + + + + + &OK + + + + + + true + + + true + + + + + + + &Cancel + + + + + + true + + + + + + + + + qPixmapFromMimeSource + + + Q3GroupBox + QGroupBox +
Qt3Support/Q3GroupBox
+ 1 +
+ + Q3Frame + QFrame +
Qt3Support/Q3Frame
+ 1 +
+ + Q3ListBox + Q3Frame +
q3listbox.h
+
+
+ + + + buttonOk + clicked() + exportdialogbase + accept() + + + 20 + 20 + + + 20 + 20 + + + + + buttonCancel + clicked() + exportdialogbase + reject() + + + 20 + 20 + + + 20 + 20 + + + + + filenamebrowsebutton + clicked() + exportdialogbase + fileselector() + + + 20 + 20 + + + 20 + 20 + + + + + --- /dev/null +++ b/src/mplayererrorbase.cpp @@ -0,0 +1,39 @@ +/* dvbcut + Copyright (c) 2005 Sven Over + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 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 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 +*/ + +#include +#include +#include "mplayererrorbase.h" + +mplayererrorbase::mplayererrorbase(QWidget *parent) + :QDialog(parent) + { + ui = new Ui::mplayererrorbase(); + ui->setupUi(this); + this->setVisible(true); + } + +mplayererrorbase::~mplayererrorbase() + { + delete ui; + } + +void mplayererrorbase::setText(QString text) + { + ui->textbrowser->setText(text); + } --- /dev/null +++ b/src/mplayererrorbase.h @@ -0,0 +1,37 @@ +/* dvbcut + Copyright (c) 2005 Sven Over + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 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 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 _DVBCUT_MPLAYERERRORBASE_H +#define _DVBCUT_MPLAYERERRORBASE_H + +#include "ui_mplayererrorbase.h" + +class mplayererrorbase: public QDialog + { + Q_OBJECT +public: + mplayererrorbase(QWidget *parent = 0); + ~mplayererrorbase(); + void setText(QString text); + +private: + Ui::mplayererrorbase* ui; + + }; + +#endif //_DVBCUT_MPLAYERERRORBASE_H --- a/src/mplayererrorbase.ui +++ b/src/mplayererrorbase.ui @@ -1,87 +1,102 @@ - -mplayererrorbase - - - mplayererrorbase - - - - 0 - 0 - 600 - 480 - - - - dvbcut: MPlayer error - - - - unnamed - - - - textLabel1 - - - MPlayer finished unsuccesfully. - - - - - textbrowser - - - AutoAll - - - - - layout13 - - - - unnamed - - - - spacer13 - - - Horizontal - - - Expanding - - - - 191 - 20 - - - - - - okaybutton - - - okay - - - - - - - - - okaybutton - clicked() - mplayererrorbase - accept() - - - - gettext.h - - - + + + mplayererrorbase + + + + 0 + 0 + 600 + 480 + + + + dvbcut: MPlayer error + + + + + + MPlayer finished unsuccesfully. + + + false + + + + + + + Q3TextEdit::AutoAll + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 191 + 20 + + + + + + + + okay + + + + + + + + + qPixmapFromMimeSource + + + Q3Frame + QFrame +
Qt3Support/Q3Frame
+ 1 +
+ + Q3TextEdit + Q3Frame +
q3textedit.h
+
+ + Q3TextBrowser + Q3TextEdit +
Qt3Support/Q3TextBrowser
+
+
+ + + + okaybutton + clicked() + mplayererrorbase + accept() + + + 20 + 20 + + + 20 + 20 + + + + +
--- a/src/progressstatusbar.cpp +++ b/src/progressstatusbar.cpp @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include @@ -46,7 +46,7 @@ progressstatusbar::progressstatusbar(QSt cancelbutton->setMaximumWidth(80); statusbar->addWidget(cancelbutton,true); - progressbar=new QProgressBar(statusbar); + progressbar=new Q3ProgressBar(statusbar); progressbar->setTotalSteps(1000); progressbar->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum)); progressbar->setMinimumWidth(160); @@ -66,7 +66,7 @@ progressstatusbar::~progressstatusbar() delete progressbar; delete cancelbutton; delete label; - statusbar->clear(); + statusbar->clearMessage(); } --- a/src/progressstatusbar.h +++ b/src/progressstatusbar.h @@ -25,7 +25,7 @@ #include "logoutput.h" class QStatusBar; -class QProgressBar; +class Q3ProgressBar; class QPushButton; class QLabel; @@ -39,7 +39,7 @@ class progressstatusbar : public QObject protected: bool cancelwasclicked; QStatusBar *statusbar; - QProgressBar *progressbar; + Q3ProgressBar *progressbar; QPushButton *cancelbutton; QLabel *label; --- a/src/progresswindow.cpp +++ b/src/progresswindow.cpp @@ -33,30 +33,38 @@ #include "progresswindow.h" progresswindow::progresswindow(QWidget *parent, const char *name) - :progresswindowbase(parent, name, true), logoutput(), + :QDialog(parent, name, true), logoutput(), cancelwasclicked(false), waitingforclose(false) { - QStyleSheetItem *item; - item = new QStyleSheetItem( logbrowser->styleSheet(), "h" ); + ui = new Ui::progresswindowbase(); + ui->setupUi(this); + + Q3StyleSheetItem *item; + item = new Q3StyleSheetItem( ui->logbrowser->styleSheet(), "h" ); item->setFontWeight( QFont::Bold ); item->setFontUnderline( TRUE ); - item = new QStyleSheetItem( logbrowser->styleSheet(), "info" ); + item = new Q3StyleSheetItem( ui->logbrowser->styleSheet(), "info" ); - item = new QStyleSheetItem( logbrowser->styleSheet(), "warn" ); + item = new Q3StyleSheetItem( ui->logbrowser->styleSheet(), "warn" ); item->setColor( "red" ); - item = new QStyleSheetItem( logbrowser->styleSheet(), "error" ); + item = new Q3StyleSheetItem( ui->logbrowser->styleSheet(), "error" ); item->setColor( "red" ); item->setFontWeight( QFont::Bold ); item->setFontUnderline( TRUE ); - cancelbutton->setPaletteBackgroundColor( QColor( 255,0,0 ) ); + ui->cancelbutton->setPaletteBackgroundColor( QColor( 255,0,0 ) ); show(); qApp->processEvents(); } +progresswindow::~progresswindow() + { + delete ui; + } + void progresswindow::closeEvent(QCloseEvent *e) { if (waitingforclose) @@ -67,11 +75,11 @@ void progresswindow::closeEvent(QCloseEv void progresswindow::finish() { - cancelbutton->setEnabled(false); + ui->cancelbutton->setEnabled(false); waitingforclose=true; - cancelbutton->setText( tr( "Close" ) ); - cancelbutton->setPaletteBackgroundColor( QColor( 0,255,0 ) ); - cancelbutton->setEnabled(true); + ui->cancelbutton->setText( tr( "Close" ) ); + ui->cancelbutton->setPaletteBackgroundColor( QColor( 0,255,0 ) ); + ui->cancelbutton->setEnabled(true); exec(); } @@ -80,7 +88,7 @@ void progresswindow::setprogress(int per if (permille==currentprogress) return; currentprogress=permille; - progressbar->setProgress(permille); + ui->progressbar->setProgress(permille); qApp->processEvents(); } @@ -93,9 +101,9 @@ void progresswindow::print(const char *f return; if (*text) - logbrowser->append(quotetext(text)); + ui->logbrowser->append(quotetext(text)); else - logbrowser->append("
"); + ui->logbrowser->append("
"); free(text); qApp->processEvents(); } @@ -108,7 +116,7 @@ void progresswindow::printheading(const if (vasprintf(&text,fmt,ap)<0 || (text==0)) return; - logbrowser->append(QString("")+quotetext(text)+""); + ui->logbrowser->append(QString("")+quotetext(text)+""); free(text); qApp->processEvents(); } @@ -121,7 +129,7 @@ void progresswindow::printinfo(const cha if (vasprintf(&text,fmt,ap)<0 || (text==0)) return; - logbrowser->append(QString("")+quotetext(text)+""); + ui->logbrowser->append(QString("")+quotetext(text)+""); free(text); qApp->processEvents(); } @@ -134,7 +142,7 @@ void progresswindow::printerror(const ch if (vasprintf(&text,fmt,ap)<0 || (text==0)) return; - logbrowser->append(QString("")+quotetext(text)+""); + ui->logbrowser->append(QString("")+quotetext(text)+""); free(text); qApp->processEvents(); } @@ -147,7 +155,7 @@ void progresswindow::printwarning(const if (vasprintf(&text,fmt,ap)<0 || (text==0)) return; - logbrowser->append(QString("")+quotetext(text)+""); + ui->logbrowser->append(QString("")+quotetext(text)+""); free(text); qApp->processEvents(); } @@ -157,11 +165,11 @@ void progresswindow::clickedcancel() if ((cancelwasclicked==false) && (waitingforclose==false)) { // button function is cancel cancelwasclicked=true; - cancelbutton->setEnabled(false); + ui->cancelbutton->setEnabled(false); qApp->processEvents(); - cancelbutton->setText( tr( "Close" ) ); - cancelbutton->setPaletteBackgroundColor( QColor( 0,255,0 ) ); - cancelbutton->setEnabled(true); + ui->cancelbutton->setText( tr( "Close" ) ); + ui->cancelbutton->setPaletteBackgroundColor( QColor( 0,255,0 ) ); + ui->cancelbutton->setEnabled(true); } else { // button function is close close(); --- a/src/progresswindow.h +++ b/src/progresswindow.h @@ -23,10 +23,10 @@ #include #include -#include "progresswindowbase.h" +#include "ui_progresswindowbase.h" #include "logoutput.h" -class progresswindow: public progresswindowbase, public logoutput +class progresswindow: public QDialog, public logoutput { Q_OBJECT protected: @@ -35,8 +35,10 @@ protected: static QString quotetext(const char* text); void closeEvent(QCloseEvent *e); + Ui::progresswindowbase* ui; public: progresswindow(QWidget *parent = 0, const char *name = 0); + ~progresswindow(); virtual bool cancelled() { return cancelwasclicked; --- a/src/progresswindowbase.ui +++ b/src/progresswindowbase.ui @@ -1,74 +1,88 @@ - -progresswindowbase - - - progresswindowbase - - - - 0 - 0 - 600 - 480 - - - - dvbcut - - - - unnamed - - - - logbrowser - - - LogText - - - - - layout1 - - - - unnamed - - - - progressbar - - - 1000 - - - - - cancelbutton - - - cancel - - - - - - - - - cancelbutton - clicked() - progresswindowbase - clickedcancel() - - - - gettext.h - - - setprogress(int) - clickedcancel() - - - + + + progresswindowbase + + + + 0 + 0 + 600 + 480 + + + + dvbcut + + + + + + Qt::LogText + + + + + + + + + 1000 + + + + + + + cancel + + + + + + + + + qPixmapFromMimeSource + + + Q3Frame + QFrame +
Qt3Support/Q3Frame
+ 1 +
+ + Q3TextEdit + Q3Frame +
q3textedit.h
+
+ + Q3ProgressBar + QFrame +
Qt3Support/Q3ProgressBar
+
+ + Q3TextBrowser + Q3TextEdit +
Qt3Support/Q3TextBrowser
+
+
+ + + + cancelbutton + clicked() + progresswindowbase + clickedcancel() + + + 20 + 20 + + + 20 + 20 + + + + +
--- a/src/settings.cpp +++ b/src/settings.cpp @@ -94,102 +94,102 @@ dvbcut_settings::~dvbcut_settings() { void dvbcut_settings::load_settings() { - int version = readNumEntry("/version", 0); + int version = value("/version", 0).toInt(); if (version >= 1) { // config format version 1 or later beginGroup("/wheel"); - wheel_increments[WHEEL_INCR_NORMAL] = readNumEntry("/incr_normal", 25*60); - wheel_increments[WHEEL_INCR_SHIFT] = readNumEntry("/incr_shift", 25); - wheel_increments[WHEEL_INCR_CTRL] = readNumEntry("/incr_ctrl", 1); - wheel_increments[WHEEL_INCR_ALT] = readNumEntry("/incr_alt", 15*25*60); - wheel_threshold = readNumEntry("/threshold", 24); + wheel_increments[WHEEL_INCR_NORMAL] = value("/incr_normal", 25*60).toInt(); + wheel_increments[WHEEL_INCR_SHIFT] = value("/incr_shift", 25).toInt(); + wheel_increments[WHEEL_INCR_CTRL] = value("/incr_ctrl", 1).toInt(); + wheel_increments[WHEEL_INCR_ALT] = value("/incr_alt", 15*25*60).toInt(); + wheel_threshold = value("/threshold", 24).toInt(); // Note: delta is a multiple of 120 (see Qt documentation) - wheel_delta = readNumEntry("/delta", 120); + wheel_delta = value("/delta", 120).toInt(); if (wheel_delta == 0) wheel_delta = 1; // avoid devide by zero endGroup(); // wheel beginGroup("/slider"); - jog_maximum = readNumEntry("/jog_maximum", 180000); - jog_threshold = readNumEntry("/jog_threshold", 50); + jog_maximum = value("/jog_maximum", 180000).toInt(); + jog_threshold = value("/jog_threshold", 50).toInt(); // to increase the "zero frames"-region of the jog-slider - jog_offset = readDoubleEntry("/jog_offset", 0.4); + jog_offset = value("/jog_offset", 0.4).toDouble(); // sub-intervals of jog_maximum - jog_interval = readNumEntry("/jog_interval", 1); + jog_interval = value("/jog_interval", 1).toInt(); if (jog_interval < 0) jog_interval = 0; - lin_interval = readNumEntry("/lin_interval", 3600); + lin_interval = value("/lin_interval", 3600).toInt(); if (lin_interval < 0) lin_interval = 0; endGroup(); // slider beginGroup("/lastdir"); - lastdir = readEntry("/name", "."); - lastdir_update = readBoolEntry("/update", true); + lastdir = value("/name", ".").toString(); + lastdir_update = value("/update", true).toBool(); endGroup(); // lastdir beginGroup("/filter"); - idxfilter = readEntry("/idxfilter", DVBCUT_DEFAULT_IDXFILTER); - prjfilter = readEntry("/prjfilter", DVBCUT_DEFAULT_PRJFILTER); - loadfilter = readEntry("/loadfilter", DVBCUT_DEFAULT_LOADFILTER); + idxfilter = value("/idxfilter", DVBCUT_DEFAULT_IDXFILTER).toString(); + prjfilter = value("/prjfilter", DVBCUT_DEFAULT_PRJFILTER).toString(); + loadfilter = value("/loadfilter", DVBCUT_DEFAULT_LOADFILTER).toString(); endGroup(); // filter } else { // old (unnumbered) config format - wheel_increments[WHEEL_INCR_NORMAL] = readNumEntry("/wheel_incr_normal", 25*60); - wheel_increments[WHEEL_INCR_SHIFT] = readNumEntry("/wheel_incr_shift", 25); - wheel_increments[WHEEL_INCR_CTRL] = readNumEntry("/wheel_incr_ctrl", 1); - wheel_increments[WHEEL_INCR_ALT] = readNumEntry("/wheel_incr_alt", 15*25*60); - wheel_threshold = readNumEntry("/wheel_threshold", 24); + wheel_increments[WHEEL_INCR_NORMAL] = value("/wheel_incr_normal", 25*60).toInt(); + wheel_increments[WHEEL_INCR_SHIFT] = value("/wheel_incr_shift", 25).toInt(); + wheel_increments[WHEEL_INCR_CTRL] = value("/wheel_incr_ctrl", 1).toInt(); + wheel_increments[WHEEL_INCR_ALT] = value("/wheel_incr_alt", 15*25*60).toInt(); + wheel_threshold = value("/wheel_threshold", 24).toInt(); // Note: delta is a multiple of 120 (see Qt documentation) - wheel_delta = readNumEntry("/wheel_delta", 120); + wheel_delta = value("/wheel_delta", 120).toInt(); if (wheel_delta == 0) wheel_delta = 1; // avoid devide by zero - jog_maximum = readNumEntry("/jog_maximum", 180000); - jog_threshold = readNumEntry("/jog_threshold", 50); + jog_maximum = value("/jog_maximum", 180000).toInt(); + jog_threshold = value("/jog_threshold", 50).toInt(); // to increase the "zero frames"-region of the jog-slider - jog_offset = readDoubleEntry("/jog_offset", 0.4); + jog_offset = value("/jog_offset", 0.4).toDouble(); // sub-intervals of jog_maximum - jog_interval = readNumEntry("/jog_interval", 1); + jog_interval = value("/jog_interval", 1).toInt(); if (jog_interval < 0) jog_interval = 0; - lin_interval = readNumEntry("/lin_interval", 3600); + lin_interval = value("/lin_interval", 3600).toInt(); if (lin_interval < 0) lin_interval = 0; - lastdir = readEntry("/lastdir", "."); + lastdir = value("/lastdir", ".").toString(); lastdir_update = true; - idxfilter = readEntry("/idxfilter", DVBCUT_DEFAULT_IDXFILTER); - prjfilter = readEntry("/prjfilter", DVBCUT_DEFAULT_PRJFILTER); - loadfilter = readEntry("/loadfilter", DVBCUT_DEFAULT_LOADFILTER); + idxfilter = value("/idxfilter", DVBCUT_DEFAULT_IDXFILTER).toString(); + prjfilter = value("/prjfilter", DVBCUT_DEFAULT_PRJFILTER).toString(); + loadfilter = value("/loadfilter", DVBCUT_DEFAULT_LOADFILTER).toString(); // remove old-style entries - removeEntry("/wheel_incr_normal"); - removeEntry("/wheel_incr_shift"); - removeEntry("/wheel_incr_ctrl"); - removeEntry("/wheel_incr_alt"); - removeEntry("/wheel_threshold"); - removeEntry("/wheel_delta"); - removeEntry("/jog_maximum"); - removeEntry("/jog_threshold"); - removeEntry("/jog_offset"); - removeEntry("/jog_interval"); - removeEntry("/lin_interval"); - removeEntry("/lastdir"); - removeEntry("/idxfilter"); - removeEntry("/prjfilter"); - removeEntry("/loadfilter"); + remove("/wheel_incr_normal"); + remove("/wheel_incr_shift"); + remove("/wheel_incr_ctrl"); + remove("/wheel_incr_alt"); + remove("/wheel_threshold"); + remove("/wheel_delta"); + remove("/jog_maximum"); + remove("/jog_threshold"); + remove("/jog_offset"); + remove("/jog_interval"); + remove("/lin_interval"); + remove("/lastdir"); + remove("/idxfilter"); + remove("/prjfilter"); + remove("/loadfilter"); } if (version >= 2) { /* float view scale factor */ beginGroup("/viewscalefactor"); - viewscalefactor = readDoubleEntry("/current", 1.0); - viewscalefactor_custom = readDoubleEntry("/custom", 3.0); + viewscalefactor = value("/current", 1.0).toDouble(); + viewscalefactor_custom = value("/custom", 3.0).toDouble(); endGroup(); // viewscalefactor } else { - viewscalefactor = (double)readNumEntry("/viewscalefactor", 1); + viewscalefactor = (double)value("/viewscalefactor", 1).toInt(); viewscalefactor_custom = 3.0; - removeEntry("/viewscalefactor"); + remove("/viewscalefactor"); } - export_format = readNumEntry("/export_format", 0); + export_format = value("/export_format", 0).toInt(); beginGroup("/recentfiles"); - recentfiles_max = readNumEntry("/max", 5); + recentfiles_max = value("/max", 5).toInt(); recentfiles.clear(); std::list filenames; QStringList keys = entryList("/"); @@ -201,49 +201,49 @@ dvbcut_settings::load_settings() { if (filename.isEmpty()) continue; filenames.clear(); - filenames.push_back(filename); + filenames.push_back(filename.toStdString()); QString idxfilename = readEntry(key + "-idx", ""); recentfiles.push_back( - std::pair,std::string>(filenames, idxfilename)); + std::pair,std::string>(filenames, idxfilename.toStdString())); } else { // NEW format with subkeys and multiple files! beginGroup(key); - QString filename = readEntry("/0"); + QString filename = value("/0").toString(); if (!filename.isEmpty()) { // multiple input files? int j=0; filenames.clear(); while(!filename.isEmpty()) { - filenames.push_back(filename); - filename = readEntry("/" + QString::number(++j), ""); + filenames.push_back(filename.toStdString()); + filename = value("/" + QString::number(++j), "").toString(); } QString idxfilename = readEntry("/idx", ""); recentfiles.push_back( - std::pair,std::string>(filenames, idxfilename)); + std::pair,std::string>(filenames, idxfilename.toStdString())); } endGroup(); // key } } endGroup(); // recentfiles beginGroup("/labels"); - start_label = readEntry("/start", DVBCUT_DEFAULT_START_LABEL); - stop_label = readEntry("/stop", DVBCUT_DEFAULT_STOP_LABEL); - chapter_label = readEntry("/chapter", DVBCUT_DEFAULT_CHAPTER_LABEL); - bookmark_label = readEntry("/bookmark", DVBCUT_DEFAULT_BOOKMARK_LABEL); + start_label = value("/start", DVBCUT_DEFAULT_START_LABEL).toString(); + stop_label = value("/stop", DVBCUT_DEFAULT_STOP_LABEL).toString(); + chapter_label = value("/chapter", DVBCUT_DEFAULT_CHAPTER_LABEL).toString(); + bookmark_label = value("/bookmark", DVBCUT_DEFAULT_BOOKMARK_LABEL).toString(); endGroup(); // labels - start_bof = readBoolEntry("/start_bof", true); - stop_eof = readBoolEntry("/stop_eof", true); + start_bof = value("/start_bof", true).toBool(); + stop_eof = value("/stop_eof", true).toBool(); beginGroup("/snapshots"); - snapshot_type = readEntry("/type", "PNG"); - snapshot_quality = readNumEntry("/quality", -1); - snapshot_prefix = readEntry("/prefix", ""); - snapshot_delimiter = readEntry("/delimiter", "_"); - snapshot_first = readNumEntry("/first", 1); - snapshot_width = readNumEntry("/width", 3); - snapshot_extension = readEntry("/extension", "png"); - snapshot_range = readNumEntry("/range", 0); - snapshot_samples = readNumEntry("/samples", 1); + snapshot_type = value("/type", "PNG").toString(); + snapshot_quality = value("/quality", -1).toInt(); + snapshot_prefix = value("/prefix", "").toString(); + snapshot_delimiter = value("/delimiter", "_").toString(); + snapshot_first = value("/first", 1).toInt(); + snapshot_width = value("/width", 3).toInt(); + snapshot_extension = value("/extension", "png").toString(); + snapshot_range = value("/range", 0).toInt(); + snapshot_samples = value("/samples", 1).toInt(); endGroup(); // snapshots beginGroup("/pipe"); pipe_command.clear(); @@ -251,10 +251,10 @@ dvbcut_settings::load_settings() { pipe_label.clear(); pipe_format.clear(); beginGroup("/0"); - QString command = readEntry("/command", DVBCUT_DEFAULT_PIPE_COMMAND); - QString post = readEntry("/post", DVBCUT_DEFAULT_PIPE_POST); - QString label = readEntry("/label", DVBCUT_DEFAULT_PIPE_LABEL); - int format = readNumEntry("/format", DVBCUT_DEFAULT_PIPE_FORMAT); + QString command = value("/command", DVBCUT_DEFAULT_PIPE_COMMAND).toString(); + QString post = value("/post", DVBCUT_DEFAULT_PIPE_POST).toString(); + QString label = value("/label", DVBCUT_DEFAULT_PIPE_LABEL).toString(); + int format = value("/format", DVBCUT_DEFAULT_PIPE_FORMAT).toInt(); endGroup(); // 0 unsigned int i = 0; while(!command.isEmpty() && !label.isEmpty()) { @@ -274,64 +274,64 @@ dvbcut_settings::load_settings() { endGroup(); // pipe beginGroup("/chapters"); // length (>0) or number (<0) of chapter(s) - chapter_interval = readNumEntry("/interval", 600*25); + chapter_interval = value("/interval", 600*25).toInt(); // detection of scene changes is rather time comsuming... //chapter_tolerance = readNumEntry("/tolerance", 10*25); //... better switch it off per default! - chapter_tolerance = readNumEntry("/tolerance", 0); + chapter_tolerance = value("/tolerance", 0).toInt(); // average color distance needed for a scene change - chapter_threshold = readDoubleEntry("/threshold", 50.); + chapter_threshold = value("/threshold", 50.).toDouble(); // minimal length of a chapter - chapter_minimum = readNumEntry("/minimum", 200*25); + chapter_minimum = value("/minimum", 200*25).toInt(); endGroup(); // auto chapters } void dvbcut_settings::save_settings() { - writeEntry("/version", 2); // latest config version + setValue("/version", 2); // latest config version beginGroup("/wheel"); - writeEntry("/incr_normal", wheel_increments[WHEEL_INCR_NORMAL]); - writeEntry("/incr_shift", wheel_increments[WHEEL_INCR_SHIFT]); - writeEntry("/incr_ctrl", wheel_increments[WHEEL_INCR_CTRL]); - writeEntry("/incr_alt", wheel_increments[WHEEL_INCR_ALT]); - writeEntry("/threshold", wheel_threshold); - writeEntry("/delta", wheel_delta); + setValue("/incr_normal", wheel_increments[WHEEL_INCR_NORMAL]); + setValue("/incr_shift", wheel_increments[WHEEL_INCR_SHIFT]); + setValue("/incr_ctrl", wheel_increments[WHEEL_INCR_CTRL]); + setValue("/incr_alt", wheel_increments[WHEEL_INCR_ALT]); + setValue("/threshold", wheel_threshold); + setValue("/delta", wheel_delta); endGroup(); // wheel beginGroup("/slider"); - writeEntry("/jog_maximum", jog_maximum); - writeEntry("/jog_threshold", jog_threshold); - writeEntry("/jog_offset", jog_offset); - writeEntry("/jog_interval", jog_interval); - writeEntry("/lin_interval", lin_interval); + setValue("/jog_maximum", jog_maximum); + setValue("/jog_threshold", jog_threshold); + setValue("/jog_offset", jog_offset); + setValue("/jog_interval", jog_interval); + setValue("/lin_interval", lin_interval); endGroup(); // slider beginGroup("/lastdir"); - writeEntry("/name", lastdir); - writeEntry("/update", lastdir_update); + setValue("/name", lastdir); + setValue("/update", lastdir_update); endGroup(); // lastdir beginGroup("/filter"); - writeEntry("/idxfilter", idxfilter); - writeEntry("/prjfilter", prjfilter); - writeEntry("/loadfilter", loadfilter); + setValue("/idxfilter", idxfilter); + setValue("/prjfilter", prjfilter); + setValue("/loadfilter", loadfilter); endGroup(); // filter beginGroup("/viewscalefactor"); - writeEntry("/current", viewscalefactor); - writeEntry("/custom", viewscalefactor_custom); + setValue("/current", viewscalefactor); + setValue("/custom", viewscalefactor_custom); endGroup(); // viewscalefactor - writeEntry("/export_format", export_format); + setValue("/export_format", export_format); beginGroup("/recentfiles"); // first remove any OLD recentfiles entries to clean the settings file (::iterator it=settings().recentfiles[i].first.begin(); it!=settings().recentfiles[i].first.end(); it++, j++) - writeEntry("/" + QString::number(j), *it); - writeEntry("/idx", recentfiles[i].second); + setValue("/" + QString::number(j), QString::fromStdString(*it)); + setValue("/idx", QString::fromStdString(recentfiles[i].second)); endGroup(); // key } endGroup(); // recentfiles beginGroup("/labels"); - writeEntry("/start", start_label); - writeEntry("/stop", stop_label); - writeEntry("/chapter", chapter_label); - writeEntry("/bookmark", bookmark_label); + setValue("/start", start_label); + setValue("/stop", stop_label); + setValue("/chapter", chapter_label); + setValue("/bookmark", bookmark_label); endGroup(); // labels - writeEntry("/start_bof", start_bof); - writeEntry("/stop_eof", stop_eof); + setValue("/start_bof", start_bof); + setValue("/stop_eof", stop_eof); beginGroup("/snapshots"); - writeEntry("/type", snapshot_type); - writeEntry("/quality", snapshot_quality); - writeEntry("/prefix", snapshot_prefix); - writeEntry("/delimiter", snapshot_delimiter); - writeEntry("/first", snapshot_first); - writeEntry("/width", snapshot_width); - writeEntry("/extension", snapshot_extension); - writeEntry("/range", snapshot_range); - writeEntry("/samples", snapshot_samples); + setValue("/type", snapshot_type); + setValue("/quality", snapshot_quality); + setValue("/prefix", snapshot_prefix); + setValue("/delimiter", snapshot_delimiter); + setValue("/first", snapshot_first); + setValue("/width", snapshot_width); + setValue("/extension", snapshot_extension); + setValue("/range", snapshot_range); + setValue("/samples", snapshot_samples); endGroup(); // snapshots beginGroup("/pipe"); for (unsigned int i = 0; i < pipe_command.size(); ++i) { QString key = "/" + QString::number(i); beginGroup(key); - writeEntry("/command", pipe_command[i]); - writeEntry("/post", pipe_post[i]); - writeEntry("/label", pipe_label[i]); - writeEntry("/format", pipe_format[i]); + setValue("/command", pipe_command[i]); + setValue("/post", pipe_post[i]); + setValue("/label", pipe_label[i]); + setValue("/format", pipe_format[i]); endGroup(); // key } endGroup(); // pipe beginGroup("/chapters"); - writeEntry("/interval", chapter_interval); - writeEntry("/tolerance", chapter_tolerance); - writeEntry("/threshold", chapter_threshold); - writeEntry("/minimum", chapter_minimum); + setValue("/interval", chapter_interval); + setValue("/tolerance", chapter_tolerance); + setValue("/threshold", chapter_threshold); + setValue("/minimum", chapter_minimum); endGroup(); // auto chapters } --- /dev/null +++ b/src/version.h @@ -0,0 +1,7 @@ +#ifndef _DVBCUT_VERSION_H +#define _DVBCUT_VERSION_H + +#define VERSION "qt" +#define REVISION "1" + +#endif //_DVBCUT_VERSION_H --- a/configure.in +++ b/configure.in @@ -19,6 +19,7 @@ AC_PROG_CC AC_PROG_CXX AC_PROG_INSTALL AC_CHECK_TOOL(STRIP, strip, :) +AC_CHECK_TOOL(PKG_CONFIG, pkg-config, :) AC_CYGWIN AC_MINGW32 @@ -144,21 +145,21 @@ dnl Checks for library functions. AC_FUNC_MMAP dnl external stuff -AC_ARG_WITH(qt3, [ --with-qt3=DIR path to qt3 (default: QTDIR)], +AC_ARG_WITH(qt4, [ --with-qt4=DIR path to qt4 (default: QTDIR)], [case $withval in - no) AC_MSG_ERROR([dvbcut requires Qt3]);; + no) AC_MSG_ERROR([dvbcut requires Qt4]);; yes) ;; *) QTDIR=$withval;; esac]) AC_SUBST(QTDIR) QTINC=$QTDIR/include QTLIB=$QTDIR/$mr_libdirname -AC_ARG_WITH(qt3-include, [ --with-qt3-include=DIR path to qt3 include files], +AC_ARG_WITH(qt4-include, [ --with-qt4-include=DIR path to qt4 include files], [case $withval in yes|no) ;; *) QTINC=$withval;; esac]) -AC_ARG_WITH(qt3-lib, [ --with-qt3-lib=DIR path to qt3 libraries], +AC_ARG_WITH(qt4-lib, [ --with-qt4-lib=DIR path to qt4 libraries], [case $withval in yes|no) ;; *) QTLIB=$withval;; @@ -167,11 +168,30 @@ AC_ARG_WITH(qt3-lib, [ --with-qt3-lib=D CPPFLAGS="$CPPFLAGS -I$QTINC" LDFLAGS="$LDFLAGS -L$QTLIB" -AC_CHECK_LIB(qt-mt, main, - [LIBS="$LIBS -lqt-mt"], - [AC_CHECK_LIB(qt, main, - [LIBS="$LIBS -lqt"], - [AC_MSG_ERROR([Qt library not found])])]) +AC_CHECK_LIB(QtCore, main, + [HAVE_QT4="yes"], + [AC_MSG_ERROR([QtCore library not found])]) + +AC_CHECK_LIB(Qt3Support, main, + [HAVE_QT4="yes"], + [AC_MSG_ERROR([Qt3Support library not found])]) + +AC_CHECK_LIB(QtGui, main, + [HAVE_QT4="yes"], + [AC_MSG_ERROR([QtGui library not found])]) + +AC_CHECK_LIB(QtXml, main, + [HAVE_QT4="yes"], + [AC_MSG_ERROR([QtXml library not found])]) + +if test "x$HAVE_QT4" = "xyes"; then + QT_CXXFLAGS=`$PKG_CONFIG --cflags Qt3Support QtCore QtGui QtXml` + QT_LIBS=`$PKG_CONFIG --libs Qt3Support QtCore QtGui QtXml` + CPPFLAGS="$CPPFLAGS $QT_CXXFLAGS" + LIBS="$LIBS $QT_LIBS" +else + AC_MSG_ERROR([cannot find Qt4 library >= 4.2]) +fi AC_DEFINE(__STDC_LIMIT_MACROS, 1, [Required for C++]) AC_DEFINE(__STDC_CONSTANT_MACROS, 1, [Required for C++]) --- a/src/Makefile.in +++ b/src/Makefile.in @@ -54,38 +54,37 @@ QTDIR = @QTDIR@ PATH := $(QTDIR)/bin:$(PATH) -%.h: %.ui - uic -o $@ $< +ui_%.h: %.ui + uic-qt4 -o $@ $< uic_%.cpp: %.h - uic -impl $< -o $@ $*.ui + uic-qt4 -o $@ $< moc_%.cpp: %.h - moc -o $@ $< + moc-qt4 -o $@ $< MOC = \ moc_dvbcut.cpp \ - moc_dvbcutbase.cpp \ moc_exportdialog.cpp \ - moc_exportdialogbase.cpp \ moc_mplayererrorbase.cpp \ moc_progressstatusbar.cpp \ moc_progresswindow.cpp \ - moc_progresswindowbase.cpp UIC = \ - uic_dvbcutbase.cpp \ - uic_exportdialogbase.cpp \ - uic_mplayererrorbase.cpp \ - uic_progresswindowbase.cpp + ui_dvbcutbase.h \ + ui_exportdialogbase.h \ + ui_mplayererrorbase.h \ + ui_progresswindowbase.h +QRC = \ + qrc_icons.cpp SRCS = \ avframe.cpp differenceimageprovider.cpp buffer.cpp \ dvbcut.cpp eventlistitem.cpp exception.cpp exportdialog.cpp \ imageprovider.cpp index.cpp lavfmuxer.cpp logoutput.cpp \ - main.cpp mpegmuxer.cpp mpgfile.cpp playaudio.cpp \ + main.cpp mpegmuxer.cpp mpgfile.cpp mplayererrorbase.cpp playaudio.cpp \ progressstatusbar.cpp progresswindow.cpp psfile.cpp \ - pts.cpp streamdata.cpp tsfile.cpp settings.cpp $(MOC) $(UIC) \ + pts.cpp streamdata.cpp tsfile.cpp settings.cpp $(MOC) $(QRC) \ $(STDLIB) OBJS = $(SRCS:.cpp=.$(OBJEXT)) @@ -106,11 +105,14 @@ $(installdirs): $(topdir)/bin: mkdir $@ +qrc_icons.cpp: + rcc -name icons -o $@ ../icons/icons.qrc + $(topdir)/bin/dvbcut$(EXEEXT): dvbcut$(EXEEXT) $(INSTALL_PROGRAM) dvbcut$(EXEEXT) $(topdir)/bin/dvbcut$(EXEEXT) $(STRIP) $(topdir)/bin/dvbcut$(EXEEXT) -dvbcut$(EXEEXT): $(SRCS) $(OBJS) +dvbcut$(EXEEXT): $(SRCS) $(UIC) $(OBJS) $(CXX) -o $@ $(LDFLAGS) $(OBJS) $(LIBS) ffmpeg_internal: $(topdir)/ffmpeg/lib/libavcodec.a @@ -168,13 +170,9 @@ stamp-depend: $(SRCS) # static dependencies: moc_dvbcut.cpp: dvbcut.h -moc_dvbcutbase.cpp: dvbcutbase.h moc_exportdialog.cpp: exportdialog.h -moc_exportdialogbase.cpp: exportdialogbase.h -moc_mplayererrorbase.cpp: mplayererrorbase.h moc_progressstatusbar.cpp: progressstatusbar.h moc_progresswindow.cpp: progresswindow.h -moc_progresswindowbase.cpp: progresswindowbase.h uic_dvbcutbase.cpp: dvbcutbase.h uic_exportdialogbase.cpp: exportdialogbase.h uic_mplayererrorbase.cpp: mplayererrorbase.h @@ -185,8 +183,6 @@ mplayererrorbase.h: mplayererrorbase.ui progresswindowbase.h: progresswindowbase.ui dvbcut.$(OBJEXT): version.h -version.h: $(SRCS) - cd $(topdir) && $(MAKE) $(subdir)/version.h distfiles: \ dvbcutbase.h \ @@ -194,7 +190,6 @@ distfiles: \ moc_dvbcut.cpp \ moc_dvbcutbase.cpp \ moc_exportdialog.cpp \ - moc_exportdialogbase.cpp \ moc_mplayererrorbase.cpp \ moc_progressstatusbar.cpp \ moc_progresswindow.cpp \ @@ -205,4 +200,5 @@ distfiles: \ uic_exportdialogbase.cpp \ uic_mplayererrorbase.cpp \ uic_progresswindowbase.cpp \ + qrc_icons.cpp \ version.h debian/patches/series0000664000000000000000000000014612207177513012042 0ustar port-to-qt4.patch fix-ftbfs-libav0.7.patch fix_gcc_4.7.patch updateimagedisplayfix.patch libav9.patch debian/patches/fix_gcc_4.7.patch0000664000000000000000000000055012207177513013637 0ustar Description: fix FTBFS with gcc 4.7 by including a missing header. This fixes a 'STDIN_FILENO' and 'STDOUT_FILENO' not declared error. Author: Fabrice Coutadeur --- a/src/main.cpp +++ b/src/main.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #ifdef HAVE_LIB_AO #include debian/compat0000664000000000000000000000000212207177513010373 0ustar 7