longomatch-0.16.8/0002755000175000017500000000000011601631301010734 500000000000000longomatch-0.16.8/depcomp0000755000175000017500000004426711500011217012240 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # 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, 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 Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: longomatch-0.16.8/Makefile.in0000644000175000017500000005724611601631265012746 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/env.in \ $(top_srcdir)/build/m4/shave/shave-libtool.in \ $(top_srcdir)/build/m4/shave/shave.in $(top_srcdir)/configure \ AUTHORS COPYING ChangeLog INSTALL NEWS config.guess config.sub \ depcomp install-sh ltmain.sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = env build/m4/shave/shave \ build/m4/shave/shave-libtool CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@ CESARPLAYER_LIBS = @CESARPLAYER_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DB4O_CFLAGS = @DB4O_CFLAGS@ DB4O_LIBS = @DB4O_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = \ expansions.m4 \ env.in SUBDIRS = build libcesarplayer CesarPlayer LongoMatch po DISTCLEANFILES = intltool-extract\ intltool-merge\ intltool-update all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): env: $(top_builddir)/config.status $(srcdir)/env.in cd $(top_builddir) && $(SHELL) ./config.status $@ build/m4/shave/shave: $(top_builddir)/config.status $(top_srcdir)/build/m4/shave/shave.in cd $(top_builddir) && $(SHELL) ./config.status $@ build/m4/shave/shave-libtool: $(top_builddir)/config.status $(top_srcdir)/build/m4/shave/shave-libtool.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am # Build ChangeLog from GIT history ChangeLog: @if test -f $(top_srcdir)/.git/HEAD; then \ git log --pretty=format:'%ad %an <%ae>%n *%s ' --stat --after="Jul 01 23:47:57 2009" > $@; \ fi dist: ChangeLog .PHONY: ChangeLog # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: longomatch-0.16.8/env.in0000755000175000017500000000032111601631101011767 00000000000000#!/bin/bash build_dir=`cd $(dirname $0) && pwd` export PATH=$build_dir/LongoMatch/bin/Release:$PATH export LD_LIBRARY_PATH=$build_dir/libcesarplayer/src/.libs${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} exec "$@" longomatch-0.16.8/config.guess0000755000175000017500000012763711371534605013227 00000000000000#! /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 # Free Software Foundation, Inc. timestamp='2009-12-30' # 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, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # 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 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 tupples: *-*-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'` exit ;; 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:*:[456]) 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:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-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*: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 ;; 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 echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-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 or32-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 ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-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 ;; 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 ;; 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: longomatch-0.16.8/AUTHORS0000644000175000017500000000061411601631101011721 00000000000000This file is perhaps not complete. If you have contributed some code and have been forgotten, please mail the maintainer. Author and Project Leader: Andoni Morales Alastruey Contributors: Xavi de Blas (UI, usability and tester) Antonio Morales (tester) Translators: Mario Blättermann (de) Matej Urbančič (sl) Pavel Bárta (cs) longomatch-0.16.8/aclocal.m40000644000175000017500000125167511601631263012542 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, [m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # Modified to require ngettext # Matthias Clasen 08/06/2004 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) MSGFMT_OPTS= AC_MSG_CHECKING([if msgfmt accepts -c]) GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) AC_SUBST(MSGFMT_OPTS) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.ac. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_HEADER_STDC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" glib_save_datarootdir="$datarootdir" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix datarootdir=`eval echo "${datarootdir}"` if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" datarootdir="$glib_save_datarootdir" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_ac,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) # # Create a temporary file with TEST-FILE as its contents and pass the # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with # 0 and perform ACTION-IF-FAIL for any other exit status. AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF $2 _ACEOF if AC_RUN_LOG([$1 conftest.foo]); then m4_ifval([$3], [$3], [:]) m4_ifvaln([$4], [else $4])dnl echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD fi]) dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 40 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` ] AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. if test "$no_create" != yes; then lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF [$]* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) # ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3017 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6b]) m4_define([LT_PACKAGE_REVISION], [1.3017]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b' macro_revision='1.3017' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) # nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # 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. # # 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. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # This was merged into AC_PROG_CC in Autoconf. AU_DEFUN([AM_PROG_CC_STDC], [AC_PROG_CC AC_DIAGNOSE([obsolete], [$0: your code should no longer depend upon `am_cv_prog_cc_stdc', but upon `ac_cv_prog_cc_stdc'. Remove this warning and the assignment when you adjust the code. You can also remove the above call to AC_PROG_CC if you already called it elsewhere.]) am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc ]) AU_DEFUN([fp_PROG_CC_STDC]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless `enable' is passed literally. # For symmetry, `disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([build/m4/shamrock/expansions.m4]) m4_include([build/m4/shamrock/mono.m4]) m4_include([build/m4/shamrock/nunit.m4]) m4_include([build/m4/shamrock/programs.m4]) longomatch-0.16.8/po/0002755000175000017500000000000011601631302011353 500000000000000longomatch-0.16.8/po/tr.po0000644000175000017500000012317311601631101012262 00000000000000# Turkish translation of longomatch. # Barkın Tanman , 2010, 2011. # msgid "" msgstr "" "Project-Id-Version: longomatch master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=longomatch&component=general\n" "POT-Creation-Date: 2010-11-14 20:51+0000\n" "PO-Revision-Date: 2010-12-16 20:19+0100\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Poedit-Language: German\n" "X-Poedit-Country: GERMANY\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch: The Digital Coach" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "Spor video analiz yazılımı" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "Geçersiz bir çalma listesi yüklemeye çalışıyorsunuz" #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Tanımlanmamış" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "isim" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "İsme göre sırala" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:69 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:154 msgid "Sort by start time" msgstr "Başlama zamanına göre sırala" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:155 msgid "Sort by stop time" msgstr "Durma zamanına göre sırala" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:156 msgid "Sort by duration" msgstr "Toplam süreye göre sırala" #: ../LongoMatch/Time/MediaTimeNode.cs:354 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:47 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "İsim" #: ../LongoMatch/Time/MediaTimeNode.cs:355 ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Takım" #: ../LongoMatch/Time/MediaTimeNode.cs:356 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Başlat" #: ../LongoMatch/Time/MediaTimeNode.cs:357 msgid "Stop" msgstr "Durdur" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:285 msgid "Tags" msgstr "Etiketler" #: ../LongoMatch/Main.cs:164 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "" "Eski versiyondan bazı veriler bulundu(veritabanı, şablonlar, " "ve çalma listeleri)." #: ../LongoMatch/Main.cs:165 msgid "Do you want to import them?" msgstr "İçe aktarmak istiyor musunuz?" #: ../LongoMatch/Main.cs:230 msgid "The application has finished with an unexpected error." msgstr "Beklenmeyen hata. Uygulama kapatılacak." #: ../LongoMatch/Main.cs:231 msgid "A log has been saved at: " msgstr "Kayıt dosyası oluşturuldu::" #: ../LongoMatch/Main.cs:232 msgid "Please, fill a bug report " msgstr "Lütfen hata raporu doldurunuz" #: ../LongoMatch/Gui/MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:272 msgid "Visitor Team" msgstr "Misafir Takım" #: ../LongoMatch/Gui/MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:259 msgid "Local Team" msgstr "Ev sahibi takım" #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "The file associated to this project doesn't exist." msgstr "Proje ile ilişkili dosya bulunamıyor." #: ../LongoMatch/Gui/MainWindow.cs:141 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "" "Dosyanın yerini değiştirdiyseniz veritabanı yöneticisi ile " "güncelleyiniz." #: ../LongoMatch/Gui/MainWindow.cs:152 msgid "An error occurred opening this project:" msgstr "Proje açılırken bir hata oluştu:" #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "Loading newly created project..." msgstr "Yeni proje yükleniyor …" #: ../LongoMatch/Gui/MainWindow.cs:213 msgid "An error occured saving the project:\n" msgstr "Ein Fehler ist beim Speichern des Projekts aufgetreten:\n" #: ../LongoMatch/Gui/MainWindow.cs:214 msgid "" "The video file and a backup of the project has been saved. Try to import it " "later:\n" msgstr "" "Video dosyası ve projenin yedeği kaydedildi. Lütfen " "daha sonra içe aktarmayı deneyin:\n" #: ../LongoMatch/Gui/MainWindow.cs:328 msgid "Do you want to close the current project?" msgstr "Aktif projeyi kapatmak istiyor musunuz?" #: ../LongoMatch/Gui/MainWindow.cs:535 msgid "The actual project will be closed due to an error in the media player:" msgstr "" "Aktif proje video oynatıcıda oluşan hata sebebi ile kapatılacak: " "" #: ../LongoMatch/Gui/MainWindow.cs:619 msgid "" "An error occured in the video capturer and the current project will be closed:" msgstr "" "Video kaynağında bir hata oluştu, aktif proje " "kapatılacak:" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Şablon dosyaları" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:162 msgid "The template has been modified. Do you want to save it? " msgstr "Şablon dosyası değiştirildi? Kaydetmek istiyor musunuz?" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:184 msgid "Template name" msgstr "Şablon ismi" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:204 msgid "You cannot create a template with a void name" msgstr "Lütfen şablona bir isim veriniz" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:210 msgid "A template with this name already exists" msgstr "Bu isimle bir şablon kaydedilmiş" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:236 msgid "You can't delete the 'default' template" msgstr "Varsayılan şablonu silemezsiniz" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:241 msgid "Do you really want to delete the template: " msgstr "Bu şablonu silmek istiyor musunuz:" #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Kısayol tuşu zaten kullanımda." #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "Yakalanan görüntü:" #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Tamam" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:82 msgid "Low" msgstr "Az" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:83 msgid "Normal" msgstr "Normal" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Good" msgstr "İyi" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:85 msgid "Extra" msgstr "Ekstra" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:172 msgid "Save Video As ..." msgstr "Videoyu farklı kaydet …" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70 msgid "The Project has been edited, do you want to save the changes?" msgstr "Değişiklikleri kaydetmek istiyor musunuz?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:95 msgid "A Project is already using this file." msgstr "Bu video dosyası başka bir proje tarafından kullanılıyor." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "This Project is actually in use." msgstr "Bu proje şu an kullanımda." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:113 msgid "Close it first to allow its removal from the database" msgstr "Veritabanından silmeden önce lütfen kapatınız" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:119 msgid "Do you really want to delete:" msgstr "Gerçekten silmek istiyor musunuz:" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "The Project you are trying to load is actually in use." msgstr "Yüklemeye çalıştığınız proje şu an kullanımda." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "Close it first to edit it" msgstr "Değişiklik yapmak için önce kapatmalısınız" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:196 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "Projeyi kaydet" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "Dosyayı farklı kaydet …" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:389 msgid "DirectShow Source" msgstr "DirectShow kaynağı" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:390 msgid "Unknown" msgstr "Bilinmeyen" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:438 msgid "Keep original size" msgstr "Orjinal boyutları koru" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:461 msgid "Output file" msgstr "Output dosyası" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:473 msgid "Open file..." msgstr "Dosya aç …" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:490 msgid "Analyzing video file:" msgstr "Video analiz ediliyor:" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:495 msgid "This file doesn't contain a video stream." msgstr "Dosya video stream içermiyor." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:497 msgid "This file contains a video stream but its length is 0." msgstr "Dosya video içeriyor, ancak süre '0'." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:564 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:473 msgid "Local Team Template" msgstr "Ev sahibi takım şablonu" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:577 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:426 msgid "Visitor Team Template" msgstr "Misafir takım şablonu" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:117 msgid "none" msgstr "yok" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "" "Kategoriyi ve kategori altındaki tüm maçları silmek üzeresiniz. " "Devam etmek istiyor musunuz?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:126 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:135 msgid "A template needs at least one category" msgstr "Bir şablonda en az bir kategori bulunmalıdır" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:217 msgid "New template" msgstr "Yeni şablon" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:221 msgid "The template name is void." msgstr "Şablon ismi boş." #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:227 msgid "The template already exists. Do you want to overwrite it ?" msgstr "Şablon daha önce yaratılmış, üzerine yazmak istiyor musunuz?" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:92 msgid "" "The file you are trying to load is not a playlist or it's not compatible with " "the current version" msgstr "" "BU bir çalma listesi değil veya mevcut sürüm ile" "uyumsuz bir dosya" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:222 msgid "Open playlist" msgstr "Çalma listesini aç" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:237 msgid "New playlist" msgstr "Yeni çalma listesi" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:262 msgid "The playlist is empty!" msgstr "Çalma listesi boş!" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:271 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:215 msgid "Please, select a video file." msgstr "Lütfen bir video dosyası seçiniz." #: ../LongoMatch/Gui/Component/PlayerProperties.cs:90 msgid "Choose an image" msgstr "Lütfen bir resim seçin." #: ../LongoMatch/Gui/Component/PlayerProperties.cs:169 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:271 msgid "No" msgstr "Hayır" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Dosya ismi" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "File length" msgstr "Dosya boyutu" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Video codec" msgstr "Video-Codec" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Audio codec" msgstr "Audio-Codec" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:122 msgid "Format" msgstr "Format" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Başlık" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 msgid "Local team" msgstr "Evsahibi takım" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 msgid "Visitor team" msgstr "Misafir takım" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Season" msgstr "Sezon" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Competition" msgstr "Maç" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Result" msgstr "Sonuç" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:138 msgid "Date" msgstr "Tarih" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "Oyunu kaldır" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "Yeni oyun ekle" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Sil" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:81 msgid "None" msgstr "Yok" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:157 msgid "No Team" msgstr "Takım yok" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:156 msgid "Edit" msgstr "Düzenle" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:171 msgid "Team Selection" msgstr "Takım seçimi" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:173 msgid "Add tag" msgstr "Etiket ekle" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:174 msgid "Tag player" msgstr "Oyuncu etiketle" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:176 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 msgid "Delete" msgstr "Sil" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:177 msgid "Delete key frame" msgstr "Anahtar resim karesini sil" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:178 msgid "Add to playlist" msgstr "Çalma listesine ekle" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:180 msgid "Export to PGN images" msgstr "PNG resim dosyası olarak dışarı aktar" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:338 msgid "Do you want to delete the key frame for this play?" msgstr "Anahtar resim karesini kaldırmak istiyor musunuz?" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:66 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:71 msgid "Edit name" msgstr "İsmi düzenle" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:67 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:72 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:145 msgid "Sort Method" msgstr "Sıralama şekli" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Fotoğraf" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:55 msgid "Play this match" msgstr "Maçı oynat" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:60 msgid "Date of Birth" msgstr "Doğum tarihi" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:65 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:211 msgid "Nationality" msgstr "Vatandaşlık" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:181 msgid "Height" msgstr "Boy" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:75 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:191 msgid "Weight" msgstr "Ağırlık" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:80 msgid "Position" msgstr "Pozisyon" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:85 msgid "Number" msgstr "Forma numarası" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:270 msgid "Yes" msgstr "Evet" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:52 msgid "Lead Time" msgstr "Önde geçirilen zaman" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:57 msgid "Lag Time" msgstr "Geride (malup) geçirilen zaman" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:62 msgid "Color" msgstr "Renk" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:67 msgid "Hotkey" msgstr "Kısayol" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Başlığı düzenle" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "Mevcut çalma değerini kullan" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " sn." #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Süre" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "Çalma değeri" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "Dosya bulunamadı" #: ../LongoMatch/DB/Project.cs:559 msgid "The file you are trying to load is not a valid project" msgstr "Yüklemeye çalıştığınız dosya geçerli bir proje dosyası değil" #: ../LongoMatch/DB/DataBase.cs:137 msgid "Error retrieving the file info for project:" msgstr "Dosya bilgilerini alırken bir hata oluştu:" #: ../LongoMatch/DB/DataBase.cs:138 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "" "Bu değer sıfırlanmıştır. Daha sonra proje ayarlarından " "değiştirebilirsiniz." #: ../LongoMatch/DB/DataBase.cs:139 msgid "Change Me" msgstr "Değiştir" #: ../LongoMatch/DB/DataBase.cs:216 msgid "The Project for this video file already exists." msgstr "Bu video dosyası ile daha önce proje yaratılmış." #: ../LongoMatch/DB/DataBase.cs:216 msgid "Try to edit it with the Database Manager" msgstr "Veritabanı yöneticisi ile değiştirmeyi deneyiniz" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:36 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:18 msgid "New Project" msgstr "Yeni proje" #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:56 msgid "New project using a video file" msgstr "Video dosyası kullanarak yeni proje." #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:86 msgid "Live project using a capture device" msgstr "Canlı proje, bir kamera veya dış cihaz kullanarak" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:114 msgid "Live project using a fake capture device" msgstr "Canlı proje, sanal bir cihaz kullanarak" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:58 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." msgstr "" "Bir canlı proje devam etmektedir.\n" "Devam edebilir, iptal edebilir veya projenizi kayıt " "edebilirsiniz.\n" "\n" "Uyarı: İptal etmeniz durumunda tüm değişikler kaybedilecektir. " "kaybedilecektir." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:87 msgid "Return" msgstr "Geri" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:112 msgid "Cancel capture" msgstr "Canlı kayıdı iptal et" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:137 msgid "Stop capture and save project" msgstr "Aufnahme anhalten und Projekt speichern" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:16 msgid "Categories Template" msgstr "Kategori şablonu" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:67 msgid "Tools" msgstr "Araçlar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:204 msgid "Color" msgstr "Renk" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:225 msgid "Width" msgstr "Genişlik" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:234 msgid "2 px" msgstr "2 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:235 msgid "4 px" msgstr "4 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:236 msgid "6 px" msgstr "6 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:237 msgid "8 px" msgstr "8 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:238 msgid "10 px" msgstr "10 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:251 msgid "Transparency" msgstr "Saydamlık" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:300 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Çiz-> D\n" "Temizle-> C\n" "Gizle-> S\n" "Göster-> S\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:40 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:134 msgid "Projects Manager" msgstr "Proje yöneticisi" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:96 msgid "Project Details" msgstr "Proje detayları" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:148 msgid "_Export" msgstr "_dışa aktar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:16 msgid "Select a HotKey" msgstr "Kısayol tuşu seçin" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:29 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Bir tuş kombinasyonu seçiniz.\n" "»Alt«-Tuş veya »Shift«-Tuş kombinasyonlarını kullanabilirsiniz.\n" "Tek bir tuş seçerseniz »Ctrl«-Tuş şeklinde kullanabilirsiniz ." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:55 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Yeni liste yarat \n" "veya bir liste\n" "yükle" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:16 msgid "Tag play" msgstr "Oyunu etiketle" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:43 msgid "Projects Search:" msgstr "Proje arama:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:58 msgid "Play:" msgstr "Oyun:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:66 msgid "Interval (frames/s):" msgstr "Interval (resim/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:74 msgid "Series Name:" msgstr "Seri ismi:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:128 msgid "Export to PNG images" msgstr "PNG resim dosyalrı olarak dışa aktar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:26 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 msgid "Drawing Tool" msgstr "Çizim aracı" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:70 msgid "Save to Project" msgstr "Projeye kaydet" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:97 msgid "Save to File" msgstr "Dosyaya kaydet" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:82 msgid "Add Filter" msgstr "Filtre ekle" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:115 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:116 msgid "_File" msgstr "_Dosya" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:118 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:119 msgid "_New Project" msgstr "_Yeni proje" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:121 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:122 msgid "_Open Project" msgstr "Proje _aç" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:125 msgid "_Quit" msgstr "_Çık" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 msgid "_Close Project" msgstr "Projeyi _kapat" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:131 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 msgid "_Tools" msgstr "_Araçlar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 msgid "Database Manager" msgstr "Veritabanı yöneticisi" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "Categories Templates Manager" msgstr "Kategori şablonları yöneticisi" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:34 msgid "Templates Manager" msgstr "Şablon yöneticisi" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:141 msgid "_View" msgstr "_Görünüm" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:144 msgid "Full Screen" msgstr "Tam ekran" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:147 msgid "Playlist" msgstr "Çalma listesi" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Capture Mode" msgstr "Yakalama modu" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 msgid "Analyze Mode" msgstr "Analiz modu" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:159 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:161 msgid "_Save Project" msgstr "Projeyi _kaydet" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:163 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:164 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:180 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 msgid "_Help" msgstr "_Yardım" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:166 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 msgid "_About" msgstr "_Hakkında" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 msgid "Export Project To CSV File" msgstr "Projeyi CSV olarak dışa aktar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:173 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 msgid "Teams Templates Manager" msgstr "Takım şablonu yöneticisi" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:176 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:178 msgid "Hide All Widgets" msgstr "Tüm eklentileri gizle" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:183 msgid "_Drawing Tool" msgstr "_Çizim aracı" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:187 msgid "_Import Project" msgstr "Projeyi _içe aktar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Free Capture Mode" msgstr "Canlı yakalam modu" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:246 msgid "Plays" msgstr "Oyunlar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:395 msgid "Creating video..." msgstr "Video yaratılıyor …" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:16 msgid "Player Details" msgstr "Oyuncu detayları" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:14 msgid "TransparentDrawingArea" msgstr "Saydam çizim alanı" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:348 msgid "_Calendar" msgstr "_Takvim" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:86 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:52 msgid "Name:" msgstr "İsim:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:151 msgid "Position:" msgstr "Pozisyon:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:161 msgid "Number:" msgstr "Numara:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:171 msgid "Photo:" msgstr "Fotoğraf:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:201 msgid "Birth day" msgstr "Doğum günü" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:221 msgid "Plays this match:" msgstr "Oynatılıyor:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:22 msgid "Capture Progress" msgstr "Yakalama süreci" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:16 msgid "Category Details" msgstr "Kategori detayları" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:32 msgid "Select template name" msgstr "Şablon ismi seç" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:76 msgid "Copy existent template:" msgstr "Mevcut şablonu kopyala:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:94 msgid "Players:" msgstr "Oyuncular:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:37 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "Yeni versiyon için yardim@cbteknoloji.com ile irtibata geçiniz!\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:47 msgid "The new version is " msgstr "Yeni versiyon:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:57 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "İndirme kısayolu:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:67 msgid "label7" msgstr "label7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:18 msgid "Tag players" msgstr "Oyuncu etiketle" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:72 msgid "New Before" msgstr "Yeni, bundan önce:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:100 msgid "New After" msgstr "Yeni, bundan sonra:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:128 msgid "Remove" msgstr "Kaldır" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:191 msgid "Export" msgstr "Dışa aktar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:16 msgid "Calendar" msgstr "Takvim" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:34 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "Şu ana kadar bir çam etiketlemediniz.\n" "Yeni etiket eklemek için kutucuğa yazınız ve \"etiket ekle\" ye basınız." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:87 msgid "Add Tag" msgstr "Etiket ekle" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:52 msgid "Video Properties" msgstr "Video özellikleri" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:76 msgid "Video Quality:" msgstr "Video kalitesi:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:105 msgid "Size: " msgstr "Boyut:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:111 msgid "Portable (4:3 - 320x240)" msgstr "MObil (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:112 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:114 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:115 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "Full HD 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:135 msgid "Ouput Format:" msgstr "Dışa aktarım formatı:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:158 msgid "Enable Title Overlay" msgstr "Başlık eklemeyi etkinleştir" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:169 msgid "Enable Audio (Experimental)" msgstr "Sesi aktifleştir" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:187 msgid "File name: " msgstr "Dosya ismi:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:29 msgid "Cancel" msgstr "İptal" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:39 msgid "Tag new play" msgstr "Yeni oyun etiketle" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:80 msgid "Data Base Migration" msgstr "Veritabanı birleştir." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:108 msgid "Playlists Migration" msgstr "Çalma listesi birleştir" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:136 msgid "Templates Migration" msgstr "Şablon birleştir" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:86 msgid "Color: " msgstr "Renk:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:107 msgid "Change" msgstr "Değiştir" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:127 msgid "HotKey:" msgstr "Kısayol:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:135 msgid "Competition:" msgstr "Oyun:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:177 msgid "File:" msgstr "Dosya:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:295 msgid "-" msgstr "-" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:368 msgid "Visitor Team:" msgstr "Misafir takım:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:378 msgid "Score:" msgstr "Skor:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:388 msgid "Date:" msgstr "Tarih:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:398 msgid "Local Team:" msgstr "Ev sahibi takım:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:406 msgid "Categories Template:" msgstr "Kategori şablonu:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:450 msgid "Season:" msgstr "Sezon:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:495 msgid "Audio Bitrate (kbps):" msgstr "Audio-Bitrate (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:521 msgid "Device:" msgstr "Cihaz:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:549 msgid "Video Size:" msgstr "Video boyutu:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:559 msgid "Video Bitrate (kbps):" msgstr "Video-Bitrate (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:596 msgid "Video Format:" msgstr "Video formatı:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:606 msgid "Video encoding properties" msgstr "Video dönüştürme ayarları" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:33 msgid "Lead time:" msgstr "Önde oynama süresi:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lag time:" msgstr "Geride oynama zamanı:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:18 msgid "Open Project" msgstr "Proje aç" #: ../LongoMatch/Handlers/EventsManager.cs:191 msgid "You can't create a new play if the capturer is not recording." msgstr "Kayıt aktif değilken yeni bir oyun yaratamazsınız." #: ../LongoMatch/Handlers/EventsManager.cs:224 msgid "The video edition has finished successfully." msgstr "Video düzenleme başarı ile tamamlanmıştır." #: ../LongoMatch/Handlers/EventsManager.cs:230 msgid "An error has occurred in the video editor." msgstr "Video düzenleyicide bir hata oluştu." #: ../LongoMatch/Handlers/EventsManager.cs:231 msgid "Please, try again." msgstr "Lütfen tekrar deneyiniz." #: ../LongoMatch/Handlers/EventsManager.cs:266 msgid "" "The stop time is smaller than the start time. The play will not be added." msgstr "" "Oyun eklenemedei. Başlangıç zamanı durdurma zamanından sonra." #: ../LongoMatch/Handlers/EventsManager.cs:341 msgid "Please, close the opened project to play the playlist." msgstr "" "Lütfen çalma listesini oynatmak için açılmış projeyi kapatınız." #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "Bölüm" #: ../LongoMatch/IO/CSVExport.cs:83 ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "Başlama zamanı" #: ../LongoMatch/IO/CSVExport.cs:84 ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "Durdurma zamanı" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "CSV başarı ile dışa aktarıldı." #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Schlagwort" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Oyuncu" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Kategori" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "" "The project will be saved to a file. You can insert it later into the " "database using the \"Import project\" function once you copied the video file " "to your computer" msgstr "" "Proje bir dosyaya kaydedilecek. Daha sonra bu dosyayı »Proje içe aktarmayı " "kullanarak veritabanına ekleyebilirsiniz. Ancak video dosyası da bilgisayarınızda " "bulunmalıdır." #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "Proje başarı ile kaydedildi." #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "Projeyi içe aktar" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "Proje içe aktarılırken bir hata oluştu:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "BU video dosyası ile daha önce proje yaratılmış:" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "Üzerine yazmak istiyor musunuz?" #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "Proje başarı ile içe aktarıldı." #: ../LongoMatch/Utils/ProjectUtils.cs:193 msgid "No capture devices were found." msgstr "Kayıt cihazı bulunamadı." #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "This file is already used in another Project." msgstr "BU dosya başka bir projede kullanılmış." #: ../LongoMatch/Utils/ProjectUtils.cs:220 msgid "Select a different one to continue." msgstr "Lütfen devam etmek için başka bir dosya seçiniz." #: ../LongoMatch/Utils/ProjectUtils.cs:244 msgid "Select Export File" msgstr "Dışa aktarma dosyası seçiniz" #: ../LongoMatch/Utils/ProjectUtils.cs:273 msgid "Videodan önizleme resimleri çıkarılıyor. İşlem zaman alabilir." msgstr "Videodan resimler çıkarılıyor. İşlem zaman alabilir." #: ../CesarPlayer/Gui/CapturerBin.cs:261 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "Kayıtı sonlandırmak üzeresiniz.\n" "Devam etmek istiyor musunuz?" #: ../CesarPlayer/Gui/CapturerBin.cs:267 msgid "Finalizing file. This can take a while" msgstr "Dosya sonlandırılıyor. Bu işlem zaman alabilir." #: ../CesarPlayer/Gui/CapturerBin.cs:302 msgid "Device disconnected. The capture will be paused" msgstr "Kayıt cihazı bağlantısı sonladı. Kayıt duraklatılıyor." #: ../CesarPlayer/Gui/CapturerBin.cs:311 msgid "Device reconnected.Do you want to restart the capture?" msgstr "" "Kayıt cihazı tekrar bağlandı? Kayıda tekrar başlamak istiyor musunuz?" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "Süre:" #: ../CesarPlayer/Utils/Device.cs:83 msgid "Default device" msgstr "Standardgerät" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "Geçersiz video dosyası:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:81 msgid "Fake live source" msgstr "Sanal video kaynağı" #~ msgid "Birth Day" #~ msgstr "Doğum günü" #~ msgid "Local Goals:" #~ msgstr "Ev sahibi takım golleri:" #~ msgid "Visitor Goals:" #~ msgstr "Misafir takım golleri:" #~ msgid "GConf configured device" #~ msgstr "GCOnf ile ayarlanmış cihaz" #~ msgid "You can't delete the last section" #~ msgstr "Son bölümü silemezsiniz" #~ msgid "DV camera" #~ msgstr "DV-Kamera" #~ msgid "GConf Source" #~ msgstr "GConf-kaynağı" longomatch-0.16.8/po/sl.po0000644000175000017500000012401511601631101012247 00000000000000# Slovenian translations for longomatch. # Copyright (C) 2009 longomatch COPYRIGHT HOLDER # This file is distributed under the same license as the longomatch package. # # Matej Urbančič , 2010. # msgid "" msgstr "" "Project-Id-Version: longomatch\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=longomatch&component=general\n" "POT-Creation-Date: 2010-11-14 20:51+0000\n" "PO-Revision-Date: 2010-11-16 13:40+0100\n" "Last-Translator: Matej Urbančič \n" "Language-Team: Slovenian GNOME Translation Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: \n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n" "X-Poedit-Country: SLOVENIA\n" "X-Poedit-Language: Slovenian\n" "X-Poedit-SourceCharset: utf-8\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch: digitalni trener" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "Orodje za pomoč trenerjem pri analizi posnetkov tekem" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "Izbrana datoteka, ni prava datoteka seznama predvajanja." #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Ni določeno" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "ime" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "Razvrsti po imenu" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:69 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:154 msgid "Sort by start time" msgstr "Razvrsti po začetnem času" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:155 msgid "Sort by stop time" msgstr "Razvrsti po končnem času" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:156 msgid "Sort by duration" msgstr "Razvrsti po trajanju" #: ../LongoMatch/Time/MediaTimeNode.cs:354 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:47 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 #: ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Ime" #: ../LongoMatch/Time/MediaTimeNode.cs:355 #: ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 #: ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Ekipa" #: ../LongoMatch/Time/MediaTimeNode.cs:356 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Začni" #: ../LongoMatch/Time/MediaTimeNode.cs:357 msgid "Stop" msgstr "Zaustavi" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:285 msgid "Tags" msgstr "Oznake" #: ../LongoMatch/Main.cs:164 msgid "Some elements from the previous version (database, templates and/or playlists) have been found." msgstr "Nekateri predmeti predhodne različice (podatkovna zbirka, predloge in seznami predvajanja) so še vedno ohranjeni." #: ../LongoMatch/Main.cs:165 msgid "Do you want to import them?" msgstr "Ali jih želite uvoziti?" #: ../LongoMatch/Main.cs:230 msgid "The application has finished with an unexpected error." msgstr "Program je končal z nepričakovano napako." #: ../LongoMatch/Main.cs:231 msgid "A log has been saved at: " msgstr "Dnevnik je shranjen v:" #: ../LongoMatch/Main.cs:232 msgid "Please, fill a bug report " msgstr "Izpolnite poročilo o hrošču" #: ../LongoMatch/Gui/MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:272 msgid "Visitor Team" msgstr "Gostujoča ekipa" #: ../LongoMatch/Gui/MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:259 msgid "Local Team" msgstr "Domača ekipa" #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "The file associated to this project doesn't exist." msgstr "Datoteka povezana s tem projektom ne obstaja." #: ../LongoMatch/Gui/MainWindow.cs:141 msgid "If the location of the file has changed try to edit it with the database manager." msgstr "V primeru, da se je mesto datoteke spremenilo, je napako mogoče popraviti v upravljalniku podatkovne zbirke." #: ../LongoMatch/Gui/MainWindow.cs:152 msgid "An error occurred opening this project:" msgstr "Prišlo je do napake med odpiranjem projekta:" #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "Loading newly created project..." msgstr "Nalaganje na novo ustvarjenega projekta ..." #: ../LongoMatch/Gui/MainWindow.cs:213 msgid "An error occured saving the project:\n" msgstr "Prišlo je do napake med shranjevanjem projekta:\n" #: ../LongoMatch/Gui/MainWindow.cs:214 msgid "The video file and a backup of the project has been saved. Try to import it later:\n" msgstr "Video datoteka in varnostna kopija datoteke sta shranjeni. Poskusite ju uvoziti kasneje:\n" #: ../LongoMatch/Gui/MainWindow.cs:328 msgid "Do you want to close the current project?" msgstr "Ali zares želite zapreti trenutni projekt?" #: ../LongoMatch/Gui/MainWindow.cs:535 msgid "The actual project will be closed due to an error in the media player:" msgstr "Projekt bo končan zaradi napake predvajalnika:" #: ../LongoMatch/Gui/MainWindow.cs:619 msgid "An error occured in the video capturer and the current project will be closed:" msgstr "Prišlo je do napake med zajemanjem videa, zato bo projekt zaprt:" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Datotek predlog" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:162 msgid "The template has been modified. Do you want to save it? " msgstr "Predloga je bila spremenjena. Ali jo želite shraniti?" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:184 msgid "Template name" msgstr "Ime predloge" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:204 msgid "You cannot create a template with a void name" msgstr "Ni mogoče ustvariti predloge brez imena." #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:210 msgid "A template with this name already exists" msgstr "Predloga s tem imenom že obstaja." #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:236 msgid "You can't delete the 'default' template" msgstr "Ni mogoče izbrisati 'privzete' predloge." #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:241 msgid "Do you really want to delete the template: " msgstr "Ali zares želite izbrisati predlogo:" #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Hitra tipka je že v uporabi." #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "Zajemanje okvirja:" #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Končano" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:82 msgid "Low" msgstr "Nizko" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:83 msgid "Normal" msgstr "Običajno" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Good" msgstr "Dobro" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:85 msgid "Extra" msgstr "Izjemno" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:172 msgid "Save Video As ..." msgstr "Shrani video kot ..." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70 msgid "The Project has been edited, do you want to save the changes?" msgstr "Projekt je spremenjen. Ali želite shraniti spremembe?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:95 msgid "A Project is already using this file." msgstr "Projekt že uporablja to datoteko" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "This Project is actually in use." msgstr "Projekt je v uporabi." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:113 msgid "Close it first to allow its removal from the database" msgstr "Pred izbrisom iz zbirke, je treba predmet najprej zapreti." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:119 msgid "Do you really want to delete:" msgstr "Ali res želite izbrisati:" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "The Project you are trying to load is actually in use." msgstr "Projekt, ki ga poskušate naložiti, je v uporabi." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "Close it first to edit it" msgstr "Pred urejanjem je treba datoteko zapreti" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:196 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "Shrani projekt" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "Shrani datoteko kot ..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:389 msgid "DirectShow Source" msgstr "Vir DirectShow" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:390 msgid "Unknown" msgstr "Neznano" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:438 msgid "Keep original size" msgstr "Ohrani izvorno velikost" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:461 msgid "Output file" msgstr "Odvodna datoteka" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:473 msgid "Open file..." msgstr "Odpri datoteko ..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:490 msgid "Analyzing video file:" msgstr "Analiziranje video datoteke:" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:495 msgid "This file doesn't contain a video stream." msgstr "Datoteka ne vsebuje video pretoka." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:497 msgid "This file contains a video stream but its length is 0." msgstr "Datoteka vsebuje video pretok, vendar je dolžine 0." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:564 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:473 msgid "Local Team Template" msgstr "Predloga domače ekipe" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:577 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:426 msgid "Visitor Team Template" msgstr "Predloga gostujoče ekipe" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:117 msgid "none" msgstr "brez" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "You are about to delete a category and all the plays added to this category. Do you want to proceed?" msgstr "Izbrisana bo kategorija in vse pripadajoče igre. Ali želite nadaljevati?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:126 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:135 msgid "A template needs at least one category" msgstr "Predloga zahteva vsaj eno kategorijo" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:217 msgid "New template" msgstr "Nova predloga" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:221 msgid "The template name is void." msgstr "Novo ime predloge je prazno." #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:227 msgid "The template already exists. Do you want to overwrite it ?" msgstr "Predloga že obstaja. Ali jo želite prepisati?" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:92 msgid "The file you are trying to load is not a playlist or it's not compatible with the current version" msgstr "Datoteka izbrana za nalaganje, ni pravi seznam predvajanja ali pa datoteka ni skladna s trenutno različico programa." #: ../LongoMatch/Gui/Component/PlayListWidget.cs:222 msgid "Open playlist" msgstr "Odpri seznam predvajanja" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:237 msgid "New playlist" msgstr "Nov seznam predvajanja" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:262 msgid "The playlist is empty!" msgstr "Seznam predvajanja je prazen!" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:271 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:215 msgid "Please, select a video file." msgstr "Izberite video datoteko." #: ../LongoMatch/Gui/Component/PlayerProperties.cs:90 msgid "Choose an image" msgstr "Izbor slike" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:169 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:271 msgid "No" msgstr "Ne" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Ime datoteke" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "File length" msgstr "Dolžina datoteke" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Video codec" msgstr "Video kodek" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Audio codec" msgstr "Zvočni kodek" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:122 msgid "Format" msgstr "Vrsta" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Naslov" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 msgid "Local team" msgstr "Domača ekipa" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 msgid "Visitor team" msgstr "Gostujoča ekipa" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Season" msgstr "Sezona" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Competition" msgstr "Tekmovanje" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Result" msgstr "Rezultat" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:138 msgid "Date" msgstr "Datum" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "Izbriši igro" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "Dodaj igro" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Izbriši" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:81 msgid "None" msgstr "Brez" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:157 msgid "No Team" msgstr "Ni ekipe" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:156 msgid "Edit" msgstr "Uredi" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:171 msgid "Team Selection" msgstr "Izbor ekipe" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:173 msgid "Add tag" msgstr "Dodaj oznako" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:174 msgid "Tag player" msgstr "Označi igralca" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:176 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 msgid "Delete" msgstr "Izbriši" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:177 msgid "Delete key frame" msgstr "Izbriši sličice" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:178 msgid "Add to playlist" msgstr "Dodaj na seznam predvajanja" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:180 msgid "Export to PGN images" msgstr "Izvozi skice v PNG" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:338 msgid "Do you want to delete the key frame for this play?" msgstr "Ali želite izbrisati sličico te igre?" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:66 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:71 msgid "Edit name" msgstr "Uredi ime" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:67 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:72 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:145 msgid "Sort Method" msgstr "Način razvrščanja" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Fotografija" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:55 msgid "Play this match" msgstr "Predvajaj posnetek" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:60 msgid "Date of Birth" msgstr "Datum rojstva" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:65 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:211 msgid "Nationality" msgstr "Narodnost" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:181 msgid "Height" msgstr "Višina" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:75 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:191 msgid "Weight" msgstr "Teža" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:80 msgid "Position" msgstr "Položaj" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:85 msgid "Number" msgstr "Številka" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:270 msgid "Yes" msgstr "Da" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:52 msgid "Lead Time" msgstr "Čas prehitevanja" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:57 msgid "Lag Time" msgstr "Čas zaostajanja" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:62 msgid "Color" msgstr "Barva" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:67 msgid "Hotkey" msgstr "Hitra tipka" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Uredi naslov" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "Uporabi trenutno hitrost predvajanja" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " sek" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 #: ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Trajanje" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "Hitrost predvajanja" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "Datoteke ni mogoče najti" #: ../LongoMatch/DB/Project.cs:559 msgid "The file you are trying to load is not a valid project" msgstr "Datoteka izbrana za nalaganje, ni prava datoteka projekta." #: ../LongoMatch/DB/DataBase.cs:137 msgid "Error retrieving the file info for project:" msgstr "Napaka med pridobivanjem podrobnosti projekta:" #: ../LongoMatch/DB/DataBase.cs:138 msgid "This value will be reset. Remember to change it later with the projects manager" msgstr "Vrednost bo počiščena. Kasneje jo je treba spremeniti med možnostmi upravljalnika projektov." #: ../LongoMatch/DB/DataBase.cs:139 msgid "Change Me" msgstr "Spremeni" #: ../LongoMatch/DB/DataBase.cs:216 msgid "The Project for this video file already exists." msgstr "Projekt za ta video že obstaja." #: ../LongoMatch/DB/DataBase.cs:216 msgid "Try to edit it with the Database Manager" msgstr "Poskusite urediti z upravljalnikom podatkovne zbirke." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:36 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:18 msgid "New Project" msgstr "Nov projekt" #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:56 msgid "New project using a video file" msgstr "Nov projekt z novo video datoteko" #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:86 msgid "Live project using a capture device" msgstr "Projekt v živo z uporabo naprave za zajemanje" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:114 msgid "Live project using a fake capture device" msgstr "Projekt v živo z uporabo lažne naprave za zajemanje" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:58 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." msgstr "" "Projekt zajemanja je že zagnan.\n" "Mogoče je nadaljevati z zajemanjem, preklicati opravilo ali pa shraniti projekt. \n" "\n" "Opozorilo: v kolikor je projekt preklican, bodo vse trenutne spremembe izgubljene." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:87 msgid "Return" msgstr "Vrni" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:112 msgid "Cancel capture" msgstr "Prekliči zajemanje" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:137 msgid "Stop capture and save project" msgstr "Zaustavi zajemanje in shrani projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:16 msgid "Categories Template" msgstr "Predloga kategorij" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:67 msgid "Tools" msgstr "Orodja" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:204 msgid "Color" msgstr "Barva" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:225 msgid "Width" msgstr "Širina" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:234 msgid "2 px" msgstr "2 točki" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:235 msgid "4 px" msgstr "4 točke" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:236 msgid "6 px" msgstr "6 točk" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:237 msgid "8 px" msgstr "8 točk" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:238 msgid "10 px" msgstr "10 točk" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:251 msgid "Transparency" msgstr "Prozornost" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:300 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Nariši-> D\n" "Počisti-> C\n" "Skrij-> S\n" "Pokaži-> S\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:40 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:134 msgid "Projects Manager" msgstr "Upravljalnik projektov" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:96 msgid "Project Details" msgstr "Podrobnosti projekta" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:148 msgid "_Export" msgstr "_Izvozi" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:16 msgid "Select a HotKey" msgstr "Izbor hitre tipke" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:29 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Pritisnite skupino tipk z Shift+tipka ali pa Alt+tipka.\n" "Hitre tipke z določeno enojno tipkko so prav tako dovoljene." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:55 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Naložte seznam predvajanja\n" "ali pa ustvarite \n" "novega." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:16 msgid "Tag play" msgstr "Označi igro" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:43 msgid "Projects Search:" msgstr "Iskanje projekta" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:58 msgid "Play:" msgstr "Predvajanje:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:66 msgid "Interval (frames/s):" msgstr "Razmik (sličice/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:74 msgid "Series Name:" msgstr "Serija:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:128 msgid "Export to PNG images" msgstr "Izvozi skico v PNG" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:26 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 msgid "Drawing Tool" msgstr "Orodje za risanje" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:70 msgid "Save to Project" msgstr "Shrani v projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:97 msgid "Save to File" msgstr "Shrani v datoteko" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:82 msgid "Add Filter" msgstr "Dodaj filter" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:115 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:116 msgid "_File" msgstr "_Datoteka" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:118 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:119 msgid "_New Project" msgstr "_Nov projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:121 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:122 msgid "_Open Project" msgstr "Odpri projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:125 msgid "_Quit" msgstr "_Končaj" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 msgid "_Close Project" msgstr "Zapri projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:131 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 msgid "_Tools" msgstr "_Orodja" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 msgid "Database Manager" msgstr "Upravljalnik podatkovne zbirke" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "Categories Templates Manager" msgstr "Upravljalnik predlog kategorij" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:34 msgid "Templates Manager" msgstr "Upravljalnik predlog" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:141 msgid "_View" msgstr "_Pogled" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:144 msgid "Full Screen" msgstr "Celozaslonski način" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:147 msgid "Playlist" msgstr "Seznam predvajanja" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Capture Mode" msgstr "Način zajemanja" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 msgid "Analyze Mode" msgstr "Način analize" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:159 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:161 msgid "_Save Project" msgstr "_Shrani projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:163 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:164 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:180 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 msgid "_Help" msgstr "Pomo_č" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:166 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 msgid "_About" msgstr "_O programu" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 msgid "Export Project To CSV File" msgstr "Izvozi projekt v CSV datoteko" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:173 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 msgid "Teams Templates Manager" msgstr "Upravljalnik predlog ekip" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:176 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:178 msgid "Hide All Widgets" msgstr "Skrij vse gradnike" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:183 msgid "_Drawing Tool" msgstr "_Orodja za risanje" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:187 msgid "_Import Project" msgstr "_Uvozi projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Free Capture Mode" msgstr "Prosti način zajemanja" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:246 msgid "Plays" msgstr "Igre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:395 msgid "Creating video..." msgstr "Ustvarjanje videa ..." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:16 msgid "Player Details" msgstr "Podrobnosti igralca" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:14 msgid "TransparentDrawingArea" msgstr "ProzornoRisanoObmočje" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:348 msgid "_Calendar" msgstr "_Koledar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:86 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:52 msgid "Name:" msgstr "Ime:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:151 msgid "Position:" msgstr "Mesto:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:161 msgid "Number:" msgstr "Številka:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:171 msgid "Photo:" msgstr "Fotografija:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:201 msgid "Birth day" msgstr "Rojstni dan" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:221 msgid "Plays this match:" msgstr "Predvaja izbrani posnetek" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:22 msgid "Capture Progress" msgstr "Napredek zajemanja" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:16 msgid "Category Details" msgstr "Podrobnosti kategorije" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:32 msgid "Select template name" msgstr "Izbor imena predloge" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:76 msgid "Copy existent template:" msgstr "Kopiraj obstoječo predlogo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:94 msgid "Players:" msgstr "Igralci:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:37 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "Nova različica programa LongoMatch je objavljena na www.ylatuya.es!\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:47 msgid "The new version is " msgstr "Nova različica je" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:57 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "Datoteko je mogoče prejeti preko neposredne povezave:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:67 msgid "label7" msgstr "oznaka7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:18 msgid "Tag players" msgstr "Označi igralce" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:72 msgid "New Before" msgstr "Novo pred" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:100 msgid "New After" msgstr "Novo za" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:128 msgid "Remove" msgstr "Odstrani" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:191 msgid "Export" msgstr "Izvozi" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:16 msgid "Calendar" msgstr "Koledar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:34 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "Ni še označene igre.\n" "Oznake je mogoče dodati preko vnosnega polja in nato s klikom \"Dodaj oznako\"" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:87 msgid "Add Tag" msgstr "Dodaj oznako" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:52 msgid "Video Properties" msgstr "Lastnosti videa" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:76 msgid "Video Quality:" msgstr "Kakovost videa:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:105 msgid "Size: " msgstr "Velikost:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:111 msgid "Portable (4:3 - 320x240)" msgstr "Prenosno (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:112 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:114 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:115 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "Full HD 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:135 msgid "Ouput Format:" msgstr "Odvodni zapis:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:158 msgid "Enable Title Overlay" msgstr "Omogoči prekrivanje naslovov" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:169 msgid "Enable Audio (Experimental)" msgstr "Omogoči zvok (preizkusno)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:187 msgid "File name: " msgstr "Ime datoteke:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:29 msgid "Cancel" msgstr "Prekliči" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:39 msgid "Tag new play" msgstr "Označi novo igro" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:80 msgid "Data Base Migration" msgstr "Prenos podatkovne zbirke" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:108 msgid "Playlists Migration" msgstr "Prenos seznama" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:136 msgid "Templates Migration" msgstr "Prenos predlog" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:86 msgid "Color: " msgstr "Barva:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:107 msgid "Change" msgstr "Spremeni" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:127 msgid "HotKey:" msgstr "Hitra tipka:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:135 msgid "Competition:" msgstr "Tekmovanje:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:177 msgid "File:" msgstr "Datoteka:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:295 msgid "-" msgstr "-" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:368 msgid "Visitor Team:" msgstr "Gostujoča ekipa:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:378 msgid "Score:" msgstr "Rezultat:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:388 msgid "Date:" msgstr "Datum:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:398 msgid "Local Team:" msgstr "Krajevna ekipa:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:406 msgid "Categories Template:" msgstr "Predloga kategorij:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:450 msgid "Season:" msgstr "Sezona:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:495 msgid "Audio Bitrate (kbps):" msgstr "Zvočna bitna hitrost (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:521 msgid "Device:" msgstr "Naprava:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:549 msgid "Video Size:" msgstr "Velikost videa:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:559 msgid "Video Bitrate (kbps):" msgstr "Bitna hitrost videa (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:596 msgid "Video Format:" msgstr "Video zapis:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:606 msgid "Video encoding properties" msgstr "Lastnosti kodiranja videa" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:33 msgid "Lead time:" msgstr "Čas prehitevanja:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lag time:" msgstr "Čas zaostajanja:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:18 msgid "Open Project" msgstr "Odpri projekt" #: ../LongoMatch/Handlers/EventsManager.cs:191 msgid "You can't create a new play if the capturer is not recording." msgstr "Ni mogoče ustvariti novega posnetka, če naprava za zajemanje ni zagnana." #: ../LongoMatch/Handlers/EventsManager.cs:224 msgid "The video edition has finished successfully." msgstr "Urejanje videa je uspešno končano." #: ../LongoMatch/Handlers/EventsManager.cs:230 msgid "An error has occurred in the video editor." msgstr "Prišlo je do napake v urejevalniku videa." #: ../LongoMatch/Handlers/EventsManager.cs:231 msgid "Please, try again." msgstr "Poskusite znova." #: ../LongoMatch/Handlers/EventsManager.cs:266 msgid "The stop time is smaller than the start time. The play will not be added." msgstr "Čas zaustavitve je pred začetkom. Igra ne bo dodana." #: ../LongoMatch/Handlers/EventsManager.cs:341 msgid "Please, close the opened project to play the playlist." msgstr "Zapreti je treba odprt projekt za predvajanje seznama." #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "Odsek" #: ../LongoMatch/IO/CSVExport.cs:83 #: ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "Začetni čas" #: ../LongoMatch/IO/CSVExport.cs:84 #: ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "Zaustavi čas" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "Datoteka CV je uspešno izvožena." #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Oznaka" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Igralec" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Kategorija" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "The project will be saved to a file. You can insert it later into the database using the \"Import project\" function once you copied the video file to your computer" msgstr "Projekt bo shranjen v datoteko. Kasneje jo je mogoče vstaviti v podatkovno zbirko preko \"uvoza projekta\" po tem, ko je video datoteka kopirana na krajevni računalnik." #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "Projekt je uspešno shranjen" #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "Uvozi projekt" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "Napaka med uvažanjem projekta:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "Projekt te datoteke že obstaja:" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "Ali jo želite prepisati?" #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "Projekt je uspešno uvožen." #: ../LongoMatch/Utils/ProjectUtils.cs:193 msgid "No capture devices were found." msgstr "Ni mogoče najti naprave za zajemanje." #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "This file is already used in another Project." msgstr "Ta datoteka je že uporabljena v drugem projektu." #: ../LongoMatch/Utils/ProjectUtils.cs:220 msgid "Select a different one to continue." msgstr "Izberite drugo možnost za nadaljevanje." #: ../LongoMatch/Utils/ProjectUtils.cs:244 msgid "Select Export File" msgstr "Izbor datoteke za izvoz" #: ../LongoMatch/Utils/ProjectUtils.cs:273 msgid "Creating video thumbnails. This can take a while." msgstr "Ustvarjanje sličic video posnetka. Postopek je lahko dolgotrajen." #: ../CesarPlayer/Gui/CapturerBin.cs:261 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "Zaustavljeno in končano bo trenutno zajemanje.\n" "Ali želite nadaljevati?" #: ../CesarPlayer/Gui/CapturerBin.cs:267 msgid "Finalizing file. This can take a while" msgstr "Zaključevanje datoteke. Postopek je lahko dolgotrajen." #: ../CesarPlayer/Gui/CapturerBin.cs:302 msgid "Device disconnected. The capture will be paused" msgstr "Naprava ni povezana. Zajemanje bo prekinjeno." #: ../CesarPlayer/Gui/CapturerBin.cs:311 msgid "Device reconnected.Do you want to restart the capture?" msgstr "Naprava je ponovno povezana. Ali želite ponovno začeti zajemanje?" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "Čas:" #: ../CesarPlayer/Utils/Device.cs:83 msgid "Default device" msgstr "Privzeta naprava" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "Neveljavna video datoteka:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:81 msgid "Fake live source" msgstr "Lažni vir v živo" #~ msgid "Local Goals:" #~ msgstr "Goli domačih:" #~ msgid "Visitor Goals:" #~ msgstr "Goli gostov:" #~ msgid "Birth Day" #~ msgstr "Rojstni dan" #~ msgid "GConf configured device" #~ msgstr "GConf nastavljena naprava" #~ msgid "You can't delete the last section" #~ msgstr "Ni mogoče izbrisati zadnjega odseka." #~ msgid "DV camera" #~ msgstr "DV kamera" #~ msgid "GConf Source" #~ msgstr "Vir GConf" #~ msgid "Video Device:" #~ msgstr "Video naprava:" #~ msgid "Open the project, please." #~ msgstr "Odpri projekt." #~ msgid "_New Poyect" #~ msgstr "_Nov projekt" #~ msgid "_Open Proyect" #~ msgstr "_Odpri projekt" #~ msgid "_Close Proyect" #~ msgstr "_Zapri projekt" #~ msgid "Error merging video segments. Please retry again" #~ msgstr "Napaka med združevanjem odsekov videa. Poskusite znova." longomatch-0.16.8/po/cs.po0000644000175000017500000012351311601631101012240 00000000000000# Czech translation of longomatch. # Copyright (C) 2009, 2010 the author(s) of longomatch. # This file is distributed under the same license as the longomatch package. # Pavel Bárta , 2009. # Marek Černocký , 2010. # msgid "" msgstr "" "Project-Id-Version: longomatch\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=longomatch&component=general\n" "POT-Creation-Date: 2010-11-16 19:59+0000\n" "PO-Revision-Date: 2010-11-17 07:28+0100\n" "Last-Translator: Marek Černocký \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: cs\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" "X-Poedit-Language: Czech\n" "X-Poedit-SourceCharset: utf-8\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch: Digitální rozhodčí" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "Nástroj pro rozhodčí sloužící k analýze sportovních videí" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "Soubor, který se pokoušíte otevřít, neobsahuje platný seznam utkání" #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Není definován" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "název" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "Řadit podle názvu" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:69 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:154 msgid "Sort by start time" msgstr "Řadit podle času začátku" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:155 msgid "Sort by stop time" msgstr "Řadit podle času konce" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:156 msgid "Sort by duration" msgstr "Řadit podle délky" #: ../LongoMatch/Time/MediaTimeNode.cs:354 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:47 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Jméno" #: ../LongoMatch/Time/MediaTimeNode.cs:355 ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Tým" #: ../LongoMatch/Time/MediaTimeNode.cs:356 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Start" #: ../LongoMatch/Time/MediaTimeNode.cs:357 msgid "Stop" msgstr "Stop" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:285 msgid "Tags" msgstr "Značky" #: ../LongoMatch/Main.cs:164 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "" "Byly nalezeny některé prvky z předchozí verze (databáze, šablony a/nebo " "seznamy utkání)." #: ../LongoMatch/Main.cs:165 msgid "Do you want to import them?" msgstr "Chcete jej importovat?" #: ../LongoMatch/Main.cs:230 msgid "The application has finished with an unexpected error." msgstr "Program byl ukončen pro neočekávanou chybu." #: ../LongoMatch/Main.cs:231 msgid "A log has been saved at: " msgstr "Protokol byl uložen do: " #: ../LongoMatch/Main.cs:232 msgid "Please, fill a bug report " msgstr "Prosím vyplňte protokol chybového hlášení." #: ../LongoMatch/Gui/MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:272 msgid "Visitor Team" msgstr "Tým hostů" #: ../LongoMatch/Gui/MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:259 msgid "Local Team" msgstr "Tým domácích" #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "The file associated to this project doesn't exist." msgstr "Soubor asociovaný s tímto projektem neexistuje." #: ../LongoMatch/Gui/MainWindow.cs:141 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "" "Jestliže bylo změněno umístění souboru, opravte jej pomocí správce databáze." #: ../LongoMatch/Gui/MainWindow.cs:152 msgid "An error occurred opening this project:" msgstr "Vyskytla se chyba při otevírání tohoto projektu:" #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "Loading newly created project..." msgstr "Načítá se nově vytvořený projekt…" #: ../LongoMatch/Gui/MainWindow.cs:213 msgid "An error occured saving the project:\n" msgstr "Vyskytla se chyba při ukládání projektu:\n" #: ../LongoMatch/Gui/MainWindow.cs:214 msgid "" "The video file and a backup of the project has been saved. Try to import it " "later:\n" msgstr "" "Soubor s videem a záloha projektu byly uloženy. Zkuste je později " "naimportovat:\n" #: ../LongoMatch/Gui/MainWindow.cs:328 msgid "Do you want to close the current project?" msgstr "Chcete zavřít současný projekt?" #: ../LongoMatch/Gui/MainWindow.cs:535 msgid "The actual project will be closed due to an error in the media player:" msgstr "Aktuální projekt bude kvůli chybě v přehrávači médií uzavřen:" #: ../LongoMatch/Gui/MainWindow.cs:619 msgid "" "An error occured in the video capturer and the current project will be " "closed:" msgstr "Vyskytla se chyba v nahrávání videa a současný projekt bude uzavřen:" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Soubory šablon" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:162 msgid "The template has been modified. Do you want to save it? " msgstr "V šabloně byly provedeny změny. Přejete si změny uložit?" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:184 msgid "Template name" msgstr "Název šablony" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:204 msgid "You cannot create a template with a void name" msgstr "Není možné vytvořit šablonu s prázdným názvem." #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:210 msgid "A template with this name already exists" msgstr "Šablona s tímto názvem již existuje" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:236 msgid "You can't delete the 'default' template" msgstr "Standardní šablonu „default“ není možné odstranit" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:241 msgid "Do you really want to delete the template: " msgstr "Přejete si opravdu smazat tuto šablonu: " #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Tato klávesová zkratka je již používána." #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "Zachycení snímku: " #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Dokončeno" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:82 msgid "Low" msgstr "Nízká" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:83 msgid "Normal" msgstr "Bežná" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Good" msgstr "Dobrá" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:85 msgid "Extra" msgstr "Vysoká" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:172 msgid "Save Video As ..." msgstr "Uložit video jako…" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70 msgid "The Project has been edited, do you want to save the changes?" msgstr "V projektu byly provedeny změny. Přejete si změny uložit?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:95 msgid "A Project is already using this file." msgstr "Tento soubor je již používán jiným projektem." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "This Project is actually in use." msgstr "Tento projekt je aktuálně používán." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:113 msgid "Close it first to allow its removal from the database" msgstr "Abyste jej mohli odstranit z databáze, nejdříve jej zavřete." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:119 msgid "Do you really want to delete:" msgstr "Skutečně chcete odstranit:" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "The Project you are trying to load is actually in use." msgstr "Projekt, který se pokoušíte otevřít, je právě používán." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "Close it first to edit it" msgstr "Abyste jej mohli upravit, nejdříve jej zavřete" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:196 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "Uložit projekt" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "Uložit soubor jako…" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:389 msgid "DirectShow Source" msgstr "Zdroj DirectShow" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:390 msgid "Unknown" msgstr "Neznámé" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:438 msgid "Keep original size" msgstr "Zachovat původní velikost" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:461 msgid "Output file" msgstr "Výstupní soubor" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:473 msgid "Open file..." msgstr "Otevřít soubor" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:490 msgid "Analyzing video file:" msgstr "Analyzuje se soubor s videem:" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:495 msgid "This file doesn't contain a video stream." msgstr "Tento soubor neobsahuje proud videa." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:497 msgid "This file contains a video stream but its length is 0." msgstr "Tento soubor obsahuje proud videa, ale jeho délka je 0." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:564 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:473 msgid "Local Team Template" msgstr "Šablona domácího týmu" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:577 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:426 msgid "Visitor Team Template" msgstr "Šablona hostujícího týmu" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:117 msgid "none" msgstr "žádný" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "" "Zvolili jste odstranění kategorie a všech utkání zařazených v této kategorii " "Chcete pokračovat?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:126 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:135 msgid "A template needs at least one category" msgstr "Šablona musí být nejméně v jedné kategorii" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:217 msgid "New template" msgstr "Nová šablona" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:221 msgid "The template name is void." msgstr "Neplatný název šablony." #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:227 msgid "The template already exists. Do you want to overwrite it ?" msgstr "Šablona již existuje. Chcete ji přepsat? " #: ../LongoMatch/Gui/Component/PlayListWidget.cs:92 msgid "" "The file you are trying to load is not a playlist or it's not compatible " "with the current version" msgstr "" "Vybraný soubor neobsahuje seznam utkání nebo není kompatibilní s aktuální " "verzí" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:222 msgid "Open playlist" msgstr "Otevřít seznam utkání" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:237 msgid "New playlist" msgstr "Nový seznam utkání" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:262 msgid "The playlist is empty!" msgstr "Seznam utkání je prázdný!" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:271 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:215 msgid "Please, select a video file." msgstr "Vyberte prosím soubor s videem." #: ../LongoMatch/Gui/Component/PlayerProperties.cs:90 msgid "Choose an image" msgstr "Vybrat obrázek" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:169 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:271 msgid "No" msgstr "Ne" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Název souboru" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "File length" msgstr "Délka souboru" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Video codec" msgstr "Kodek videa" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Audio codec" msgstr "Kodek zvuku" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:122 msgid "Format" msgstr "Formát" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Název" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 msgid "Local team" msgstr "Domácí tým" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 msgid "Visitor team" msgstr "Hostující tým" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Season" msgstr "Sezóna" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Competition" msgstr "Utkání" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Result" msgstr "Výsledek" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:138 msgid "Date" msgstr "Datum" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "Smazat utkání" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "Přidat nové utkání" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Smazat " #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:81 msgid "None" msgstr "Žádný" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:157 msgid "No Team" msgstr "Žádný tým" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:156 msgid "Edit" msgstr "Upravit" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:171 msgid "Team Selection" msgstr "Výběr týmu" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:173 msgid "Add tag" msgstr "Přidat značku" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:174 msgid "Tag player" msgstr "Označit hráče" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:176 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 msgid "Delete" msgstr "Odstranit" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:177 msgid "Delete key frame" msgstr "Odstranit klíčový snímek" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:178 msgid "Add to playlist" msgstr "Přidat do seznamu utkání" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:180 msgid "Export to PGN images" msgstr "Export do obrázku PNG" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:338 msgid "Do you want to delete the key frame for this play?" msgstr "Chcete opravdu odstranit klíčový snímek pro toto utkání?" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:66 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:71 msgid "Edit name" msgstr "Upravit název" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:67 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:72 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:145 msgid "Sort Method" msgstr "Způsob řazení" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Fotka" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:55 msgid "Play this match" msgstr "Hraje tento zápas" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:60 msgid "Date of Birth" msgstr "Datum narození" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:65 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:211 msgid "Nationality" msgstr "Národnost" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:181 msgid "Height" msgstr "Výška" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:75 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:191 msgid "Weight" msgstr "Váha" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:80 msgid "Position" msgstr "Pozice" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:85 msgid "Number" msgstr "Číslo" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:270 msgid "Yes" msgstr "Ano" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:52 msgid "Lead Time" msgstr "Čas vedení" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:57 msgid "Lag Time" msgstr "Čas ztráty" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:62 msgid "Color" msgstr "Barva" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:67 msgid "Hotkey" msgstr "Klávesová zkratka" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Upravit název" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "Použít aktuální rychlost přehrávání" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " sec" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Délka" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "Rychlost přehrávání" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "Soubor nenalezen" #: ../LongoMatch/DB/Project.cs:559 msgid "The file you are trying to load is not a valid project" msgstr "Soubor, který se pokoušíte načíst, není platný projekt" #: ../LongoMatch/DB/DataBase.cs:137 msgid "Error retrieving the file info for project:" msgstr "Chyby při získávání informací o souboru pro projekt:" #: ../LongoMatch/DB/DataBase.cs:138 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "" "Tato hodnota bude vynulována. Nezapomeňte ji později změnit ve správci " "projektu." #: ../LongoMatch/DB/DataBase.cs:139 msgid "Change Me" msgstr "Změň mě" #: ../LongoMatch/DB/DataBase.cs:216 msgid "The Project for this video file already exists." msgstr "Projekt pro toto video již existuje." #: ../LongoMatch/DB/DataBase.cs:216 msgid "Try to edit it with the Database Manager" msgstr "Pokuste se o opravu pomocí správce databáze" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:36 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:18 msgid "New Project" msgstr "Nový projekt" #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:56 msgid "New project using a video file" msgstr "Nový projekt vycházející ze souboru s videem" #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:86 msgid "Live project using a capture device" msgstr "Živý projekt používající nahrávací zařízení" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:114 msgid "Live project using a fake capture device" msgstr "Živý projekt používající simulované nahrávací zařízení" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:58 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." "" msgstr "" "Právě probíhá nahrávání projektu.\n" "Můžete pokračovat v současném nahrávání, zrušit jej nebo svůj projekt " "uložit.\n" "\n" "Varování: Pokud aktuální projekt zrušíte, budou ztraceny všechny změny, " "které jste v něm provedli." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:87 msgid "Return" msgstr "Návrat" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:112 msgid "Cancel capture" msgstr "Zrušit nahrávání" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:137 msgid "Stop capture and save project" msgstr "Zastavit nahrávání a uložit projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:16 msgid "Categories Template" msgstr "Šablona kategorií" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:67 msgid "Tools" msgstr "Nástroje" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:204 msgid "Color" msgstr "Barva" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:225 msgid "Width" msgstr "Šířka" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:234 msgid "2 px" msgstr "2 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:235 msgid "4 px" msgstr "4 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:236 msgid "6 px" msgstr "6 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:237 msgid "8 px" msgstr "8 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:238 msgid "10 px" msgstr "10 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:251 msgid "Transparency" msgstr "Průhlednost" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:300 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Kreslit-> D\n" "Smazat-> C\n" "Skrýt-> S\n" "Ukázat-> S\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:40 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:134 msgid "Projects Manager" msgstr "Správa projektu" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:96 msgid "Project Details" msgstr "Detaily projektu" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:148 msgid "_Export" msgstr "_Exportovat" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:16 msgid "Select a HotKey" msgstr "Vybrat klávesovou zkratku" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:29 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Stiskněte kombinaci kláves Shift+klávesa nebo Alt+klávesa.\n" "Klávesové zkratky s jednou klávesou jsou možné i s Ctrl+klávesa." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:55 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Nahrajte seznam\n" "utkání nebo\n" "vytvořte nový." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:16 msgid "Tag play" msgstr "Označit utkání" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:43 msgid "Projects Search:" msgstr "Hledání projektu:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:58 msgid "Play:" msgstr "Přehrát:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:66 msgid "Interval (frames/s):" msgstr "Interval (snímků/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:74 msgid "Series Name:" msgstr "Název série:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:128 msgid "Export to PNG images" msgstr "Export do obrázku PNG" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:26 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 msgid "Drawing Tool" msgstr "Nástroj kreslení" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:70 msgid "Save to Project" msgstr "Uložit do projektu" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:97 msgid "Save to File" msgstr "Uložit do souboru" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:82 msgid "Add Filter" msgstr "Přidat filtr" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:115 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:116 msgid "_File" msgstr "_Soubor" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:118 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:119 msgid "_New Project" msgstr "_Nový projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:121 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:122 msgid "_Open Project" msgstr "_Otevřít projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:125 msgid "_Quit" msgstr "_Ukončit" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 msgid "_Close Project" msgstr "_Zavřít projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:131 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 msgid "_Tools" msgstr "_Nástroje" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 msgid "Database Manager" msgstr "Správa databáze" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "Categories Templates Manager" msgstr "Správa šablon kategorií" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:34 msgid "Templates Manager" msgstr "Správa šablon" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:141 msgid "_View" msgstr "_Náhled" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:144 msgid "Full Screen" msgstr "Celá obrazovka" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:147 msgid "Playlist" msgstr "Seznam utkání" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Capture Mode" msgstr "Režim nahrávání" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 msgid "Analyze Mode" msgstr "Režim analýzy" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:159 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:161 msgid "_Save Project" msgstr "_Uložit projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:163 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:164 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:180 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 msgid "_Help" msgstr "_Nápověda" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:166 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 msgid "_About" msgstr "_O Programu" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 msgid "Export Project To CSV File" msgstr "Export projektu do souboru CSV" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:173 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 msgid "Teams Templates Manager" msgstr "Správa šablon týmů" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:176 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:178 msgid "Hide All Widgets" msgstr "Skrýt všechny widgety" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:183 msgid "_Drawing Tool" msgstr "_Nástroje kreslení" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:187 msgid "_Import Project" msgstr "_Importovat projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Free Capture Mode" msgstr "Režim volného nahrávání" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:246 msgid "Plays" msgstr "Utkání" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:395 msgid "Creating video..." msgstr "Vytváří se video…" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:16 msgid "Player Details" msgstr "Detaily hráče" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:14 msgid "TransparentDrawingArea" msgstr "TransparentDrawingArea" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:348 msgid "_Calendar" msgstr "_Kalendář" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:86 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:52 msgid "Name:" msgstr "Jméno:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:151 msgid "Position:" msgstr "Pozice:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:161 msgid "Number:" msgstr "Číslo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:171 msgid "Photo:" msgstr "Fotka:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:201 msgid "Birth day" msgstr "Datum narození" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:221 msgid "Plays this match:" msgstr "Hraje tento zápas:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:22 msgid "Capture Progress" msgstr "Probíhá nahrávání" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:16 msgid "Category Details" msgstr "Detaily kategorie" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:32 msgid "Select template name" msgstr "Vybrat název šablony" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:76 msgid "Copy existent template:" msgstr "Kopírovat existující šablonu:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:94 msgid "Players:" msgstr "Hráči:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:37 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "Nová verze LongoMatch je k dipozici ke stažení na www.ylatuya.es!\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:47 msgid "The new version is " msgstr "Nová verze je " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:57 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "Přímý odkaz pro stažení nové verze:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:67 msgid "label7" msgstr "label7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:18 msgid "Tag players" msgstr "Označit hráče" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:72 msgid "New Before" msgstr "Nový před" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:100 msgid "New After" msgstr "Nový za" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:128 msgid "Remove" msgstr "Odstranit" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:191 msgid "Export" msgstr "Exportovat" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:16 msgid "Calendar" msgstr "Kalendář" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:34 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "Nemáte zatím označené žádné utkání.\n" "Nové značky můžete přidat pomocí textového vstupu a kliknutí na „Přidat " "značku“" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:87 msgid "Add Tag" msgstr "Přidat značku" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:52 msgid "Video Properties" msgstr "Vlastnosti videa" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:76 msgid "Video Quality:" msgstr "Kvalita videa:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:105 msgid "Size: " msgstr "Velikost: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:111 msgid "Portable (4:3 - 320x240)" msgstr "Portable (4:3 - 320×240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:112 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640×480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720×576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:114 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280×720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:115 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "Full HD 1080p (16:9 - 1920×1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:135 msgid "Ouput Format:" msgstr "Výstupní formát:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:158 msgid "Enable Title Overlay" msgstr "Zapnout překrývání titulku" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:169 msgid "Enable Audio (Experimental)" msgstr "Zapnout zvuk (experimentální)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:187 msgid "File name: " msgstr "Název souboru: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:29 msgid "Cancel" msgstr "Zrušit" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:39 msgid "Tag new play" msgstr "Označit nové utkání" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:80 msgid "Data Base Migration" msgstr "Přesun databáze" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:108 msgid "Playlists Migration" msgstr "Přesun seznamu utkání" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:136 msgid "Templates Migration" msgstr "Přesun šablony" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:86 msgid "Color: " msgstr "Barva:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:107 msgid "Change" msgstr "Změnit" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:127 msgid "HotKey:" msgstr "Klávesová zkratka:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:135 msgid "Competition:" msgstr "Utkání:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:177 msgid "File:" msgstr "Soubor:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:295 msgid "-" msgstr "-" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:368 msgid "Visitor Team:" msgstr "Tým hostů:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:378 msgid "Score:" msgstr "Výsledek:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:388 msgid "Date:" msgstr "Datum:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:398 msgid "Local Team:" msgstr "Tým domácích:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:406 msgid "Categories Template:" msgstr "Šablona kategorií:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:450 msgid "Season:" msgstr "Sezóna:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:495 msgid "Audio Bitrate (kbps):" msgstr "Datový tok zvuku (kb/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:521 msgid "Device:" msgstr "Zařízení:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:549 msgid "Video Size:" msgstr "Velikost videa:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:559 msgid "Video Bitrate (kbps):" msgstr "Datový tok videa (kb/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:596 msgid "Video Format:" msgstr "Formát videa:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:606 msgid "Video encoding properties" msgstr "Vlastnosti kódování videa" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:33 msgid "Lead time:" msgstr "Doba vedení:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lag time:" msgstr "Doba ztráty:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:18 msgid "Open Project" msgstr "Otevřít projekt" #: ../LongoMatch/Handlers/EventsManager.cs:191 msgid "You can't create a new play if the capturer is not recording." msgstr "Nemůžete vytvořit nové utkání, když není zachytávané video ukládáno." #: ../LongoMatch/Handlers/EventsManager.cs:224 msgid "The video edition has finished successfully." msgstr "Zpracování videa bylo úspěšně dokončeno." #: ../LongoMatch/Handlers/EventsManager.cs:230 msgid "An error has occurred in the video editor." msgstr "Nastala chyba ve vedeo editoru." #: ../LongoMatch/Handlers/EventsManager.cs:231 msgid "Please, try again." msgstr "Zkuste to prosím znovu." #: ../LongoMatch/Handlers/EventsManager.cs:267 msgid "" "The stop time is smaller than the start time. The play will not be added." msgstr "Čas ukončení je menší než čas započetí. Utkání nebude přidáno." #: ../LongoMatch/Handlers/EventsManager.cs:342 msgid "Please, close the opened project to play the playlist." msgstr "Abyste mohli přehrát seznam utkání, zavřete prosím otevřený projekt." #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "Část" #: ../LongoMatch/IO/CSVExport.cs:83 ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "Čas začátku" #: ../LongoMatch/IO/CSVExport.cs:84 ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "Čas konce" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "CSV bylo úspěšně exportováno." #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Značka" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Hráč" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Kategorie" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "" "The project will be saved to a file. You can insert it later into the " "database using the \"Import project\" function once you copied the video " "file to your computer" msgstr "" "Projekt bude uložen do souboru. Můžete jej později vložit do databáze pomoci " "funkce „Importovat projekt“, jakmile zkopírujete soubor s videem do svého " "počítače" #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "Projekt byl úspěšně uložen." #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "Importovat projekt" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "Chyba při importu projektu:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "Pro tento soubor již existuje projekt:" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "Chcete jej přepsat?" #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "Projekt byl úspěšně importován." #: ../LongoMatch/Utils/ProjectUtils.cs:193 msgid "No capture devices were found." msgstr "Nebylo nalezeno žádné nahrávací zařízení." #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "This file is already used in another Project." msgstr "Tento soubor je již použit v jiném projektu." #: ../LongoMatch/Utils/ProjectUtils.cs:220 msgid "Select a different one to continue." msgstr "Pro pokračování zvolte nějaký jiný." #: ../LongoMatch/Utils/ProjectUtils.cs:244 msgid "Select Export File" msgstr "Vyberte soubor exportu" #: ../LongoMatch/Utils/ProjectUtils.cs:273 msgid "Creating video thumbnails. This can take a while." msgstr "Vytvářejí se náhledy videa. To může chvíli trvat." #: ../CesarPlayer/Gui/CapturerBin.cs:261 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "Chystáte se zastavit a zakončit aktuální nahrávání.\n" "Opravdu to chcete provést?" #: ../CesarPlayer/Gui/CapturerBin.cs:267 msgid "Finalizing file. This can take a while" msgstr "Zakončuje se soubor. To může chvíli trvat." #: ../CesarPlayer/Gui/CapturerBin.cs:302 msgid "Device disconnected. The capture will be paused" msgstr "Zařízení je odpojeno. Nahrávání bude pozastaveno." #: ../CesarPlayer/Gui/CapturerBin.cs:311 msgid "Device reconnected.Do you want to restart the capture?" msgstr "Zařízení je znovu připojeno. Chcete znovu spustit nahrávání?" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "Čas:" #: ../CesarPlayer/Utils/Device.cs:83 msgid "Default device" msgstr "Výchozí zařízení" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "Neplatný soubor s videem:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:81 msgid "Fake live source" msgstr "Simulovat živý zdroj" longomatch-0.16.8/po/Makefile.in.in0000644000175000017500000001537711601631260013763 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: longomatch-0.16.8/po/LINGUAS0000644000175000017500000000014611601631101012314 00000000000000# please keep this list sorted alphabetically # ca da de es fr gl it cs nb nl pt pt_BR sl sv tr zh_CN longomatch-0.16.8/po/nb.po0000644000175000017500000007241011601631101012231 00000000000000# Norwegian (bokmål) translation of totem. # Copyright (C) 2002-2005 Free Software Foundation, Inc. # Kjartan Maraas , 2002-2010. # Terance Edward Sola , 2005. # msgid "" msgstr "" "Project-Id-Version: totem 2.29.x\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-15 14:59+0100\n" "PO-Revision-Date: 2010-03-15 15:03+0100\n" "Last-Translator: Kjartan Maraas \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:196 msgid "LongoMatch" msgstr "" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "" #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "" #: ../LongoMatch/Time/SectionsTimeNode.cs:76 msgid "name" msgstr "navn" #: ../LongoMatch/Time/SectionsTimeNode.cs:136 #: ../LongoMatch/Time/SectionsTimeNode.cs:144 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:184 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:161 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "" #: ../LongoMatch/Time/SectionsTimeNode.cs:138 #: ../LongoMatch/Time/SectionsTimeNode.cs:148 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:185 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:162 msgid "Sort by start time" msgstr "" #: ../LongoMatch/Time/SectionsTimeNode.cs:140 #: ../LongoMatch/Time/SectionsTimeNode.cs:150 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:186 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:163 msgid "Sort by stop time" msgstr "" #: ../LongoMatch/Time/SectionsTimeNode.cs:142 #: ../LongoMatch/Time/SectionsTimeNode.cs:152 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:187 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:164 #, fuzzy msgid "Sort by duration" msgstr "Me_tning:" #: ../LongoMatch/Time/MediaTimeNode.cs:357 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:46 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Navn" #: ../LongoMatch/Time/MediaTimeNode.cs:358 ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "" #: ../LongoMatch/Time/MediaTimeNode.cs:359 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Start" #: ../LongoMatch/Time/MediaTimeNode.cs:360 msgid "Stop" msgstr "Stopp" #: ../LongoMatch/Time/MediaTimeNode.cs:361 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:284 msgid "Tags" msgstr "" #: ../LongoMatch/Main.cs:163 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "" #: ../LongoMatch/Main.cs:164 msgid "Do you want to import them?" msgstr "" #: ../LongoMatch/Main.cs:229 msgid "The application has finished with an unexpected error." msgstr "" #: ../LongoMatch/Main.cs:230 msgid "A log has been saved at: " msgstr "" #: ../LongoMatch/Main.cs:231 msgid "Please, fill a bug report " msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:112 msgid "The file associated to this project doesn't exist." msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:112 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:140 #, fuzzy msgid "An error occurred opening this project:" msgstr "En feil oppsto under henting av album." #: ../LongoMatch/Gui/MainWindow.cs:265 #: ../LongoMatch/Gui/Component/PlayListWidget.cs:263 msgid "Please, select a video file." msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:278 msgid "This file is already used in a Project." msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:278 msgid "Open the project, please." msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:293 msgid "Import Project" msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:311 msgid "Project successfully imported." msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:318 msgid "A project already exists for the file:" msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:319 msgid "Do you want to overwrite it?" msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:388 #: ../LongoMatch/Gui/Component/PlayListWidget.cs:214 msgid "Open playlist" msgstr "Åpne spilleliste" #: ../LongoMatch/Gui/MainWindow.cs:411 msgid "The actual project will be closed due to an error in the media player:" msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:509 #, fuzzy msgid "Select Export File" msgstr "Velg tekstfil for teksting" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 #, fuzzy msgid "Templates Files" msgstr "Relaterte videoer" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:166 msgid "The template has been modified. Do you want to save it? " msgstr "" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:188 msgid "Template name" msgstr "" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:208 msgid "You cannot create a template with a void name" msgstr "" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:214 msgid "A template with this name already exists" msgstr "" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:240 msgid "You can't delete the 'default' template" msgstr "" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:245 msgid "Do you really want to delete the template: " msgstr "" #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "" #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "" #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Ferdig" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:91 msgid "Low" msgstr "Lav" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:92 msgid "Normal" msgstr "Normal" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:93 msgid "Good" msgstr "God" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:94 msgid "Extra" msgstr "Ekstra" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:167 #, fuzzy msgid "Save Video As ..." msgstr "_Lag videoplate..." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:62 msgid "The Project has been edited, do you want to save the changes?" msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:87 msgid "A Project is already using this file." msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:100 msgid "This Project is actually in use." msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:101 msgid "Close it first to allow its removal from the database" msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:107 msgid "Do you really want to delete:" msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:144 msgid "The Project you are trying to load is actually in use." msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:144 msgid "Close it first to edit it" msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:168 msgid "Save Project" msgstr "" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:334 #, fuzzy msgid "Save File as..." msgstr "Lagre spilleliste ..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:345 msgid "Open file..." msgstr "Åpne fil..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:362 msgid "Analyzing video file:" msgstr "" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:430 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:480 msgid "Local Team Template" msgstr "" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:443 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:408 msgid "Visitor Team Template" msgstr "" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:125 msgid "none" msgstr "ingen" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:125 msgid "You can't delete the last section" msgstr "" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:201 msgid "New template" msgstr "" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:205 msgid "The template name is void." msgstr "" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:211 msgid "The template already exists.Do you want to overwrite it ?" msgstr "" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:84 msgid "" "The file you are trying to load is not a playlist or it's not compatible " "with the current version" msgstr "" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:229 msgid "New playlist" msgstr "Ny spilleliste" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:254 #, fuzzy msgid "The playlist is empty!" msgstr "Ingen spilleliste eller tom spilleliste" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:74 msgid "Choose an image" msgstr "" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Filnavn" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:80 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Tittel" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:81 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:124 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:258 #, fuzzy msgid "Local Team" msgstr "Lokalt søk" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:82 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:125 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:271 msgid "Visitor Team" msgstr "" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:83 msgid "Season" msgstr "Sesong" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:84 msgid "Competition" msgstr "" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:85 msgid "Result" msgstr "Resultat" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:86 msgid "Date" msgstr "Dato" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 #, fuzzy msgid "Delete Play" msgstr "Slett" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 #, fuzzy msgid "Add New Play" msgstr "_Legg til i spilleliste" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Slett" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:126 msgid "No Team" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:132 #, fuzzy msgid "Local team" msgstr "Lokalt søk" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:133 msgid "Visitor team" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:83 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:93 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:160 msgid "Edit" msgstr "Rediger" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:140 msgid "Team Selection" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:142 #, fuzzy msgid "Add tag" msgstr "Etter tagg" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:143 msgid "Tag player" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:145 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:94 msgid "Delete" msgstr "Slett" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:146 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:84 msgid "Delete key frame" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:147 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:86 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:96 #, fuzzy msgid "Add to playlist" msgstr "_Legg til i spilleliste" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:149 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:85 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:95 msgid "Export to PGN images" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:182 msgid "Edit name" msgstr "Rediger navn" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:183 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 msgid "Sort Method" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:458 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:189 msgid "Do you want to delete the key frame for this play?" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:56 msgid "Position" msgstr "Posisjon" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:61 msgid "Number" msgstr "Nummer" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:51 msgid "Lead Time" msgstr "" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:56 #, fuzzy msgid "Lag Time" msgstr "Tid:" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:61 msgid "Color" msgstr "Farge" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:66 msgid "Hotkey" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Rediger tittel" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " sek" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Varighet" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 #, fuzzy msgid "Play Rate" msgstr "Spill av/pause" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "Fil ikke funnet" #: ../LongoMatch/DB/Project.cs:539 msgid "The file you are trying to load is not a valid project" msgstr "" #: ../LongoMatch/DB/DataBase.cs:136 msgid "Error retrieving the file info for project:" msgstr "" #: ../LongoMatch/DB/DataBase.cs:137 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "" #: ../LongoMatch/DB/DataBase.cs:138 #, fuzzy msgid "Change Me" msgstr "_Kapittelmeny" #: ../LongoMatch/DB/DataBase.cs:204 msgid "The Project for this video file already exists." msgstr "" #: ../LongoMatch/DB/DataBase.cs:204 msgid "Try to edit it with the Database Manager" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:24 msgid "Categories Template" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:87 msgid "Tools" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:217 msgid "Width" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:226 msgid "2 px" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:227 msgid "4 px" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:228 msgid "6 px" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:229 msgid "8 px" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:230 #, fuzzy msgid "10 px" msgstr "0 x 0" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:242 msgid "Transparency" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:266 msgid "Colors" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:384 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:48 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:138 msgid "Projects Manager" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:105 msgid "Project Details" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:154 msgid "_Export" msgstr "_Eksporter" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:24 #, fuzzy msgid "Select a HotKey" msgstr "Velg en mappe" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:38 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:63 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:24 msgid "Tag play" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:51 #, fuzzy msgid "Projects Search:" msgstr "Lokalt søk" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:67 msgid "Play:" msgstr "Spill av:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:75 msgid "Interval (frames/s):" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:83 #, fuzzy msgid "Series Name:" msgstr "_Navn på tjeneste:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:137 msgid "Export to PNG images" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:34 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:188 msgid "Drawing Tool" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:79 msgid "Save to Project" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:106 msgid "Save to File" msgstr "Lagre til fil" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:86 msgid "Add Filter" msgstr "Legg til filter" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:119 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:120 msgid "_File" msgstr "_Fil" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:122 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:123 msgid "_New Project" msgstr "_Nytt prosjekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:125 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:126 msgid "_Open Project" msgstr "_Åpne prosjekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 msgid "_Quit" msgstr "A_vslutt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:131 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:133 msgid "_Close Project" msgstr "_Lukk prosjekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:136 msgid "_Tools" msgstr "Verk_tøy" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:139 msgid "Database Manager" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:141 msgid "Categories Templates Manager" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:142 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:42 msgid "Templates Manager" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:144 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:145 msgid "_View" msgstr "_Vis" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:147 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:148 msgid "Full Screen" msgstr "Fullskjerm" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:150 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:151 msgid "Playlist" msgstr "Spilleliste" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:153 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:156 #, fuzzy msgid "Capture Mode" msgstr "_Kapittelmeny" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:158 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:161 #, fuzzy msgid "Analyze Mode" msgstr "_Vinkelmeny" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:163 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:165 msgid "_Save Project" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:168 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:185 msgid "_Help" msgstr "_Hjelp:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 msgid "_About" msgstr "_Om" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:173 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:175 msgid "Export Project To CSV File" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:177 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:178 msgid "Teams Templates Manager" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:180 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:182 msgid "Hide All Widgets" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:187 msgid "_Drawing Tool" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:190 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:191 msgid "_Import Project" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:245 msgid "Plays" msgstr "Avspillinger" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:387 #, fuzzy msgid "Creating video..." msgstr "Lager galleri..." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:24 msgid "Player Details" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:22 msgid "TransparentDrawingArea" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:81 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:96 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:60 msgid "Name:" msgstr "Navn:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:89 msgid "Position:" msgstr "Posisjon:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:99 msgid "Number:" msgstr "Nummer:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 msgid "Photo:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:30 msgid "Capture Progress" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:24 msgid "Category Details" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:40 #, fuzzy msgid "Select template name" msgstr "Sett repeteringsmodus" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:85 msgid "Copy existent template:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:105 msgid "Players:" msgstr "Spillere:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:46 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:56 msgid "The new version is " msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:66 msgid "" "\n" "You can download it using this direct link:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:76 msgid "label7" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:26 msgid "Tag players" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:79 msgid "New Before" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:106 msgid "New After" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:133 msgid "Remove" msgstr "Fjern" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:194 msgid "Export" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:24 msgid "Calendar" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:42 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:95 msgid "Add Tag" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:60 msgid "Video Properties" msgstr "Egenskaper for video" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:85 msgid "Video Quality:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:114 msgid "Size: " msgstr "Størrelse: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:120 msgid "Portable (4:3 - 320x240)" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:121 msgid "VGA (4:3 - 640x480)" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:122 msgid "TV (4:3 - 720x576)" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:123 msgid "HD 720p (16:9 - 1280x720)" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:124 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:144 #, fuzzy msgid "Ouput Format:" msgstr "Format" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:167 #, fuzzy msgid "Enable Title Overlay" msgstr "Aktiver deinterlacing" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:178 msgid "Enable Audio (Experimental)" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:196 msgid "File name: " msgstr "Filnavn: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:89 msgid "Data Base Migration" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:117 msgid "Playlists Migration" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:145 msgid "Templates Migration" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:94 msgid "Color: " msgstr "Farge: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:115 #, fuzzy msgid "Change" msgstr "Kanaler:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:135 msgid "HotKey:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:135 #, fuzzy msgid "Competition:" msgstr "Kommentar:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:295 msgid "_Calendar" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:315 msgid "Visitor Team:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:325 msgid "Local Goals:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:335 msgid "Visitor Goals:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:345 msgid "Date:" msgstr "Dato:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:355 msgid "File:" msgstr "Fil:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:365 #, fuzzy msgid "Local Team:" msgstr "Lokalt søk" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:373 msgid "Categories Template:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:432 msgid "Season:" msgstr "Sesong:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:442 #, fuzzy msgid "Video Bitrate:" msgstr "Bitrate:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lead time:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:49 msgid "Lag time:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:26 msgid "New Project" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:26 msgid "Open Project" msgstr "" #: ../LongoMatch/Handlers/EventsManager.cs:175 msgid "The video edition has finished successfully." msgstr "" #: ../LongoMatch/Handlers/EventsManager.cs:181 #, fuzzy msgid "An error has occurred in the video editor." msgstr "En feil oppsto under henting av album." #: ../LongoMatch/Handlers/EventsManager.cs:182 msgid "Please, try again." msgstr "Vennligst prøv igjen" #: ../LongoMatch/Handlers/EventsManager.cs:257 msgid "Please, close the opened project to play the playlist." msgstr "" #: ../LongoMatch/IO/CSVExport.cs:80 #, fuzzy msgid "Section" msgstr "Beskrivelse:" #: ../LongoMatch/IO/CSVExport.cs:83 ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 #, fuzzy msgid "StartTime" msgstr "Starter %s" #: ../LongoMatch/IO/CSVExport.cs:84 ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 #, fuzzy msgid "StopTime" msgstr "Stoppet" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "" #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Spiller" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Kategori" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:235 msgid "Time:" msgstr "Tid:" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:113 #: ../CesarPlayer/Utils/MediaFile.cs:164 #, fuzzy msgid "Invalid video file:" msgstr "Videofiler" longomatch-0.16.8/po/sv.po0000644000175000017500000007300411601631101012262 00000000000000# Swedish translation for longomatch. # Copyright (C) 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the longomatch package. # Daniel Nylander , 2010. # msgid "" msgstr "" "Project-Id-Version: longomatch\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-02-04 22:47+0100\n" "PO-Revision-Date: 2010-02-04 22:57+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:196 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "" #: ../LongoMatch/Time/HotKey.cs:125 #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:125 msgid "none" msgstr "" #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Inte definierad" #: ../LongoMatch/Time/SectionsTimeNode.cs:76 msgid "name" msgstr "namn" #: ../LongoMatch/Time/SectionsTimeNode.cs:136 #: ../LongoMatch/Time/SectionsTimeNode.cs:144 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:184 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:161 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "Sortera efter namn" #: ../LongoMatch/Time/SectionsTimeNode.cs:138 #: ../LongoMatch/Time/SectionsTimeNode.cs:148 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:185 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:162 msgid "Sort by start time" msgstr "Sortera efter starttid" #: ../LongoMatch/Time/SectionsTimeNode.cs:140 #: ../LongoMatch/Time/SectionsTimeNode.cs:150 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:186 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:163 msgid "Sort by stop time" msgstr "Sortera efter stopptid" #: ../LongoMatch/Time/SectionsTimeNode.cs:142 #: ../LongoMatch/Time/SectionsTimeNode.cs:152 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:187 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:164 msgid "Sort by duration" msgstr "" #: ../LongoMatch/Time/MediaTimeNode.cs:357 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:46 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 #: ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Namn" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 #: ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Lag" #: ../LongoMatch/Time/MediaTimeNode.cs:359 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Start" #: ../LongoMatch/Time/MediaTimeNode.cs:360 msgid "Stop" msgstr "Stopp" #: ../LongoMatch/Time/MediaTimeNode.cs:361 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:284 msgid "Tags" msgstr "Taggar" #: ../LongoMatch/Main.cs:163 msgid "Some elements from the previous version (database, templates and/or playlists) have been found." msgstr "" #: ../LongoMatch/Main.cs:164 msgid "Do you want to import them?" msgstr "Vill du importera dem?" #: ../LongoMatch/Main.cs:229 msgid "The application has finished with an unexpected error." msgstr "" #: ../LongoMatch/Main.cs:230 msgid "A log has been saved at: " msgstr "En logg har sparats i: " #: ../LongoMatch/Main.cs:231 msgid "Please, fill a bug report " msgstr "Skicka in en felrapport " #: ../LongoMatch/Gui/MainWindow.cs:112 msgid "The file associated to this project doesn't exist." msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:112 msgid "If the location of the file has changed try to edit it with the database manager." msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "An error ocurred opening this project:" msgstr "Ett fel inträffade vid öppnandet av detta projekt:" #: ../LongoMatch/Gui/MainWindow.cs:260 #: ../LongoMatch/Gui/Component/PlayListWidget.cs:263 msgid "Please, select a video file." msgstr "Välj en videofil." #: ../LongoMatch/Gui/MainWindow.cs:273 msgid "This file is already used in a Project." msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:273 msgid "Open the project, please." msgstr "Öppna projektet." #: ../LongoMatch/Gui/MainWindow.cs:288 msgid "Import Project" msgstr "Importera projekt" #: ../LongoMatch/Gui/MainWindow.cs:306 msgid "Project successfully imported." msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:313 msgid "A project already exists for the file:" msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:314 msgid "Do you want to overwritte it?" msgstr "Vill du skriva över den?" #: ../LongoMatch/Gui/MainWindow.cs:383 #: ../LongoMatch/Gui/Component/PlayListWidget.cs:214 msgid "Open playlist" msgstr "Öppna spellista" #: ../LongoMatch/Gui/MainWindow.cs:406 msgid "The actual project will be closed due to an error in the media player:" msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:504 msgid "Select Export File" msgstr "Välj exportfil" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Mallfiler" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:166 msgid "The template has been modified. Do you want to save it? " msgstr "" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:188 msgid "Template name" msgstr "Mallnamn" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:208 msgid "You cannot create a template with a void name" msgstr "" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:214 msgid "A template with this name already exists" msgstr "" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:240 msgid "You can't delete the 'default' template" msgstr "" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:245 msgid "Do you really want to delete the template: " msgstr "" #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Denna snabbtangent används redan." #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "" #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:91 msgid "Low" msgstr "Låg" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:92 msgid "Normal" msgstr "Normal" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:93 msgid "Good" msgstr "Bra" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:94 msgid "Extra" msgstr "Extra" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:167 msgid "Save Video As ..." msgstr "Spara video som ..." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:62 msgid "The Project has been edited, do you want to save the changes?" msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:87 msgid "A Project is already using this file." msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:100 msgid "This Project is actually in use." msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:101 msgid "Close it first to allow its removal from the database" msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:107 msgid "Do yo really want to delete:" msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:144 msgid "The Project you are trying to load is actually in use." msgstr "" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:144 msgid "Close it first to edit it" msgstr "Stäng den först för att redigera den" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:168 msgid "Save Project" msgstr "Spara projekt" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:334 msgid "Save File as..." msgstr "Spara fil som..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:345 msgid "Open file..." msgstr "Öppna fil..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:362 msgid "Analyzing video file:" msgstr "" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:430 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:480 msgid "Local Team Template" msgstr "" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:443 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:408 msgid "Visitor Team Template" msgstr "" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "You are about to delete a category and all the plays added to this category.Do you want to proceed?" msgstr "" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:125 msgid "You can't delete the last section" msgstr "" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:201 msgid "New template" msgstr "Ny mall" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:205 msgid "The template name is void." msgstr "" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:211 msgid "The template already exists.Do you want to overwrite it ?" msgstr "" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:84 msgid "The file you are trying to load is not a playlist or it's not compatible with the current version" msgstr "" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:229 msgid "New playlist" msgstr "Ny spellista" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:254 msgid "The playlist is empty!" msgstr "Spellistan är tom!" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:74 msgid "Choose an image" msgstr "Välj en bild" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Filnamn" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:80 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Titel" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:81 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:124 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:258 msgid "Local Team" msgstr "Lokalt lag" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:82 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:125 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:271 msgid "Visitor Team" msgstr "Besökande lag" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:83 msgid "Season" msgstr "Säsong" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:84 msgid "Competition" msgstr "" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:85 msgid "Result" msgstr "Resultat" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:86 msgid "Date" msgstr "Datum" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Ta bort " #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:126 msgid "No Team" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:132 msgid "Local team" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:133 msgid "Visitor team" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:83 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:93 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:160 msgid "Edit" msgstr "Redigera" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:140 msgid "Team Selection" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:142 msgid "Add tag" msgstr "Lägg till tagg" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:143 msgid "Tag player" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:145 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:94 msgid "Delete" msgstr "Ta bort" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:146 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:84 msgid "Delete key frame" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:147 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:86 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:96 msgid "Add to playlist" msgstr "Lägg till i spellista" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:149 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:85 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:95 msgid "Export to PGN images" msgstr "Exportera till PGN-bilder" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:182 msgid "Edit name" msgstr "Redigera namn" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:183 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 msgid "Sort Method" msgstr "Sorteringsmetod" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:458 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:189 msgid "Do you want to delete the key frame for this play?" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Foto" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:56 msgid "Position" msgstr "Position" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:61 msgid "Number" msgstr "Nummer" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:51 msgid "Lead Time" msgstr "" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:56 msgid "Lag Time" msgstr "" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:61 msgid "Color" msgstr "Färg" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:66 msgid "Hotkey" msgstr "Snabbtangent" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Redigera titel" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " s" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 #: ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "Filen hittades inte" #: ../LongoMatch/DB/Project.cs:539 msgid "The file you are trying to load is not a valid project" msgstr "" #: ../LongoMatch/DB/DataBase.cs:136 msgid "Error retrieving the file info for project:" msgstr "" #: ../LongoMatch/DB/DataBase.cs:137 msgid "This value will be reset. Remember to change it later with the projects manager" msgstr "" #: ../LongoMatch/DB/DataBase.cs:138 msgid "Change Me" msgstr "" #: ../LongoMatch/DB/DataBase.cs:204 msgid "The Project for this video file already exists." msgstr "" #: ../LongoMatch/DB/DataBase.cs:204 msgid "Try to edit it whit the Database Manager" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:24 msgid "Categories Template" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:87 msgid "Tools" msgstr "Verktyg" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:217 msgid "Width" msgstr "Bredd" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:226 msgid "2 px" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:227 msgid "4 px" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:228 msgid "6 px" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:229 msgid "8 px" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:230 msgid "10 px" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:242 msgid "Transparency" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:266 msgid "Colors" msgstr "Färger" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:384 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:48 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:138 msgid "Projects Manager" msgstr "Projekthanterare" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:105 msgid "Project Details" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:154 msgid "_Export" msgstr "_Exportera" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:24 msgid "Select a HotKey" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:38 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:63 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:24 msgid "Tag play" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:51 msgid "Projects Search:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:67 msgid "Play:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:75 msgid "Interval (frames/s):" msgstr "Intervall (bilder/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:83 msgid "Series Name:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:137 msgid "Export to PNG images" msgstr "Exportera till PNG-bilder" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:34 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:188 msgid "Drawing Tool" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:79 msgid "Save to Project" msgstr "Spara till projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:106 msgid "Save to File" msgstr "Spara till fil" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:86 msgid "Add Filter" msgstr "Lägg till filter" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:119 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:120 msgid "_File" msgstr "_Arkiv" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:122 msgid "_New Project" msgstr "_Nytt projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:123 msgid "_New Poyect" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:125 msgid "_Open Project" msgstr "_Öppna projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:126 msgid "_Open Proyect" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 msgid "_Quit" msgstr "A_vsluta" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:131 msgid "_Close Project" msgstr "S_täng projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:133 msgid "_Close Proyect" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:136 msgid "_Tools" msgstr "Ver_ktyg" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:139 msgid "Database Manager" msgstr "Databashanterare" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:141 msgid "Categories Templates Manager" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:142 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:42 msgid "Templates Manager" msgstr "Mallhanterare" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:144 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:145 msgid "_View" msgstr "_Visa" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:147 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:148 msgid "Full Screen" msgstr "Helskärm" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:150 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:151 msgid "Playlist" msgstr "Spellista" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:153 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:156 msgid "Capture Mode" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:158 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:161 msgid "Analyze Mode" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:163 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:165 msgid "_Save Project" msgstr "_Spara projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:168 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:185 msgid "_Help" msgstr "_Hjälp" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 msgid "_About" msgstr "_Om" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:173 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:175 msgid "Export Project To CSV File" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:177 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:178 msgid "Teams Templates Manager" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:180 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:182 msgid "Hide All Widgets" msgstr "Dölj alla widgetar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:187 msgid "_Drawing Tool" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:190 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:191 msgid "_Import Project" msgstr "_Importera projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:245 msgid "Plays" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:387 msgid "Creating video..." msgstr "Skapar video..." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:24 msgid "Player Details" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:22 msgid "TransparentDrawingArea" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:81 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:96 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:60 msgid "Name:" msgstr "Namn:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:89 msgid "Position:" msgstr "Position:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:99 msgid "Number:" msgstr "Nummer:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 msgid "Photo:" msgstr "Foto:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:30 msgid "Capture Progress" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:24 msgid "Category Details" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:40 msgid "Select template name" msgstr "Välj mallnamn" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:85 msgid "Copy existent template:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:105 msgid "Players:" msgstr "Spelare:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:46 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:56 msgid "The new version is " msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:66 msgid "" "\n" "You can download it using this direct link:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:76 msgid "label7" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:26 msgid "Tag players" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:79 msgid "New Before" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:106 msgid "New After" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:133 msgid "Remove" msgstr "Ta bort" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:194 msgid "Export" msgstr "Exportera" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:24 msgid "Calendar" msgstr "Kalender" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:42 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:95 msgid "Add Tag" msgstr "Lägg till tagg" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:60 msgid "Video Properties" msgstr "Videoegenskaper" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:85 msgid "Video Quality:" msgstr "Videokvalitet:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:114 msgid "Size: " msgstr "Storlek: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:120 msgid "Portable (4:3 - 320x240)" msgstr "Portabel (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:121 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:122 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:123 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:124 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "Full HD 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:144 msgid "Ouput Format:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:167 msgid "Enable Title Overlay" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:178 msgid "Enable Audio (Experimental)" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:196 msgid "File name: " msgstr "Filnamn: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:89 msgid "Data Base Migration" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:117 msgid "Playlists Migration" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:145 msgid "Templates Migration" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:94 msgid "Color: " msgstr "Färg: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:115 msgid "Change" msgstr "Ändra" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:135 msgid "HotKey:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:135 msgid "Competition:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:295 msgid "_Calendar" msgstr "Ka_lender" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:315 msgid "Visitor Team:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:325 msgid "Local Goals:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:335 msgid "Visitor Goals:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:345 msgid "Date:" msgstr "Datum:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:355 msgid "File:" msgstr "Fil:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:365 msgid "Local Team:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:373 msgid "Categories Template:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:432 msgid "Season:" msgstr "Säsong:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:442 msgid "Video Bitrate:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lead time:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:49 msgid "Lag time:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:26 msgid "New Project" msgstr "Nytt projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:26 msgid "Open Project" msgstr "Öppna projekt" #: ../LongoMatch/Handlers/EventsManager.cs:175 msgid "The video edition has finished successfully." msgstr "" #: ../LongoMatch/Handlers/EventsManager.cs:181 msgid "An error has ocurred in the video editor." msgstr "" #: ../LongoMatch/Handlers/EventsManager.cs:182 msgid "Please, retry again." msgstr "Försök igen." #: ../LongoMatch/Handlers/EventsManager.cs:257 msgid "Please, close the opened project to play the playlist." msgstr "" #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "" #: ../LongoMatch/IO/CSVExport.cs:83 #: ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "" #: ../LongoMatch/IO/CSVExport.cs:84 #: ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "" #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Tagg" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Spelare" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Kategori" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:235 msgid "Time:" msgstr "Tid:" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:113 #: ../CesarPlayer/Utils/MediaFile.cs:164 msgid "Invalid video file:" msgstr "Ogiltig videofil:" longomatch-0.16.8/po/it.po0000644000175000017500000011647311601631101012256 00000000000000msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: 2010-09-30 15:24:13+0200\n" "PO-Revision-Date: 2010-10-01 15:48:29+0200\n" "Last-Translator: napo\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: MonoDevelop Gettext addin\n" #: ../LongoMatch/Main.cs:163 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "" "Sono stati trovati oggetti della versione precedente (database, modelli e/o " "liste di azioni di gioco)." #: ../LongoMatch/Main.cs:164 msgid "Do you want to import them?" msgstr "Vuoi importarli?" #: ../LongoMatch/Main.cs:229 msgid "The application has finished with an unexpected error." msgstr "L'applicazione interrotta con un errore inatteso." #: ../LongoMatch/Main.cs:230 msgid "A log has been saved at: " msgstr "File di log salvato in: " #: ../LongoMatch/Main.cs:231 msgid "Please, fill a bug report " msgstr "" "Riempiendo il modulo di bug report ci aiuterai a risolvere il problema " #: ../LongoMatch/Gui/MainWindow.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:279 msgid "Visitor Team" msgstr "Squadra ospite" #: ../LongoMatch/Gui/MainWindow.cs:131 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:266 msgid "Local Team" msgstr "Squadra locale" #: ../LongoMatch/Gui/MainWindow.cs:139 msgid "The file associated to this project doesn't exist." msgstr "Non riesco a trovare il file associato a questo progetto." #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "" "Se la posizione del file è cambiata, prova a modificare le informazioni nel " "database manager." #: ../LongoMatch/Gui/MainWindow.cs:151 msgid "An error occurred opening this project:" msgstr "Il caricamento del progetto ha generato un errore:" #: ../LongoMatch/Gui/MainWindow.cs:200 msgid "Loading newly created project..." msgstr "Caricamento del nuovo progetto in corso ..." #: ../LongoMatch/Gui/MainWindow.cs:212 msgid "" "An error occured saving the project:\n" msgstr "" "Errore durante il salvataggio del progetto:\n" #: ../LongoMatch/Gui/MainWindow.cs:213 msgid "" "The video file and a backup of the project has been saved. Try to import it " "later:\n" msgstr "" "Il video e il file di backup del progetto sono stati archiviati. Prova a " "importarli più tardi:\n" " \n" #: ../LongoMatch/Gui/MainWindow.cs:327 msgid "Do you want to close the current project?" msgstr "Vuoi chiudere il progetto?" #: ../LongoMatch/Gui/MainWindow.cs:534 msgid "The actual project will be closed due to an error in the media player:" msgstr "" "Il progetto in corso verrà chiuso a causa di un errore nel player " "multimediale:" #: ../LongoMatch/Gui/MainWindow.cs:617 msgid "" "An error occured in the video capturer and the current project will be " "closed:" msgstr "" "Il progetto verrà chiuso a causa di un errore del dispositivo di acquisizione " "video:" #: ../LongoMatch/DB/Project.cs:542 msgid "The file you are trying to load is not a valid project" msgstr "Il file che hai tentato di caricare non è un file di progetto valido" #: ../LongoMatch/DB/DataBase.cs:136 msgid "Error retrieving the file info for project:" msgstr "Errore durante la lettura delle informazione per il progetto:" #: ../LongoMatch/DB/DataBase.cs:137 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "" "Questo valore verrà azzerato. Ricordarti di cambiarlo più tardi attraverso il " "manager di progetti" #: ../LongoMatch/DB/DataBase.cs:138 msgid "Change Me" msgstr "Cambiami" #: ../LongoMatch/DB/DataBase.cs:215 msgid "The Project for this video file already exists." msgstr "Esiste già un progetto associato a questo video." #: ../LongoMatch/DB/DataBase.cs:215 msgid "Try to edit it with the Database Manager" msgstr "Prova a modificarlo con il database manager" #: ../LongoMatch/IO/SectionsWriter.cs:55 #: ../LongoMatch/Time/SectionsTimeNode.cs:130 #: ../LongoMatch/Time/SectionsTimeNode.cs:138 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:67 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:160 msgid "Sort by name" msgstr "Ordina per nome" #: ../LongoMatch/Time/MediaTimeNode.cs:353 #: ../LongoMatch/IO/CSVExport.cs:80 #: ../LongoMatch/IO/CSVExport.cs:135 #: ../LongoMatch/IO/CSVExport.cs:161 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:49 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:70 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:46 msgid "Name" msgstr "Nome" #: ../LongoMatch/Time/MediaTimeNode.cs:354 #: ../LongoMatch/IO/CSVExport.cs:81 #: ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Team" msgstr "Squadra" #: ../LongoMatch/Time/MediaTimeNode.cs:355 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Start" msgstr "Avvia" #: ../LongoMatch/Time/MediaTimeNode.cs:356 msgid "Stop" msgstr "Stop" #: ../LongoMatch/Time/MediaTimeNode.cs:357 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:292 msgid "Tags" msgstr "Tag/Etichette" #: ../LongoMatch/Time/SectionsTimeNode.cs:70 msgid "name" msgstr "nome" #: ../LongoMatch/Time/SectionsTimeNode.cs:132 #: ../LongoMatch/Time/SectionsTimeNode.cs:142 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:161 msgid "Sort by start time" msgstr "Ordina per tempo di avvio" #: ../LongoMatch/Time/SectionsTimeNode.cs:134 #: ../LongoMatch/Time/SectionsTimeNode.cs:144 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:69 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:162 msgid "Sort by stop time" msgstr "Ordina per tempo di stop" #: ../LongoMatch/Time/SectionsTimeNode.cs:136 #: ../LongoMatch/Time/SectionsTimeNode.cs:146 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:163 msgid "Sort by duration" msgstr "Ordina per durata" #: ../LongoMatch/Playlist/PlayList.cs:95 msgid "The file you are trying to load is not a valid playlist" msgstr "" "Il file che hai provato a caricare non contiene una lista di azioni di gioco" #: ../LongoMatch/IO/CSVExport.cs:79 msgid "Section" msgstr "Sezione" #: ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 #: ../LongoMatch/IO/CSVExport.cs:163 msgid "StartTime" msgstr "TempoAvvio" #: ../LongoMatch/IO/CSVExport.cs:83 #: ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StopTime" msgstr "TempoStop" #: ../LongoMatch/IO/CSVExport.cs:84 #: ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Duration" msgstr "Durata" #: ../LongoMatch/IO/CSVExport.cs:125 msgid "CSV exported successfully." msgstr "Esportazione CSV riuscita." #: ../LongoMatch/IO/CSVExport.cs:134 msgid "Tag" msgstr "Tag" #: ../LongoMatch/IO/CSVExport.cs:159 msgid "Player" msgstr "Giocatore" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Category" msgstr "Categoria" #: ../LongoMatch/Time/HotKey.cs:126 msgid "Not defined" msgstr "Non definito" #: ../LongoMatch/Handlers/EventsManager.cs:190 msgid "You can't create a new play if the capturer is not recording." msgstr "" "Non puoi creare una nuova azione di gioco se il dispositivo di acquisizione " "video non sta registrando." #: ../LongoMatch/Handlers/EventsManager.cs:223 msgid "The video edition has finished successfully." msgstr "Elaborazione video completata." #: ../LongoMatch/Handlers/EventsManager.cs:229 msgid "An error has occurred in the video editor." msgstr "Si è verificato un errore nell'editor video." #: ../LongoMatch/Handlers/EventsManager.cs:230 msgid "Please, try again." msgstr "Per favore, prova ancora." #: ../LongoMatch/Handlers/EventsManager.cs:265 msgid "" "The stop time is smaller than the start time.The play will not be added." msgstr "" "Il valore di tempo di stop è inferiore rispetto a quello di avvio. L'azione " "di gioco non verrà aggiunta." #: ../LongoMatch/Handlers/EventsManager.cs:340 msgid "Please, close the opened project to play the playlist." msgstr "" "Per avviare la lista delle azioni di gioco occorre chiudere il progetto " "aperto." #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:56 msgid "This hotkey is already in use." msgstr "Tasto rapido già utilizzato." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:388 msgid "DirectShow Source" msgstr "Sorgente ShowDiretto" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:389 msgid "Unknown" msgstr "Sconosciuto" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:437 msgid "Keep original size" msgstr "Lascia l'immagine orginale" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:460 msgid "Output file" msgstr "File in output" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:472 msgid "Open file..." msgstr "Apri file..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:489 msgid "Analyzing video file:" msgstr "Analisi file video:" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:494 msgid "This file doesn't contain a video stream." msgstr "Il file non contiene un flusso video." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:496 msgid "This file contains a video stream but its length is 0." msgstr "Questo file contiene un flusso video ma la sua lunghezza è 0." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:563 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:475 msgid "Local Team Template" msgstr "Modello squadra locale" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:576 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:413 msgid "Visitor Team Template" msgstr "Modello squadra ospite" #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:47 msgid "Capturing frame: " msgstr "Frame acquisito: " #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:56 msgid "Done" msgstr "Completato" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:73 msgid "Choose an image" msgstr "Seleziona una immagine" #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:70 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:65 msgid "Edit name" msgstr "Modifica il nome" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:44 msgid "Photo" msgstr "Foto" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:55 msgid "Position" msgstr "Posizione" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:60 msgid "Number" msgstr "Numero" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:55 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:114 msgid "Edit Title" msgstr "Modifica titolo" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:58 #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:175 msgid "Delete" msgstr "Elimina" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:61 msgid "Apply current play rate" msgstr "Utilizza il play rate attuale" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:137 #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:131 msgid "Title" msgstr "Titolo" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid " sec" msgstr " sec" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid "Play Rate" msgstr "Play Rate" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:143 msgid "File not found" msgstr "File non trovato" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:66 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:152 msgid "Sort Method" msgstr "Ordina metodo" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:69 msgid "The Project has been edited, do you want to save the changes?" msgstr "Il progetto ha subito delle modifiche, vuoi salvarle?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:94 msgid "A Project is already using this file." msgstr "Un progetto fa già uso di questo file." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:111 msgid "This Project is actually in use." msgstr "Progetto attualmente utilizzato." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "Close it first to allow its removal from the database" msgstr "Occorre chiuderlo prima di poterlo rimuovere dal database" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:118 msgid "Do you really want to delete:" msgstr "Lo vuoi realmente cancellare?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:175 msgid "The Project you are trying to load is actually in use." msgstr "" "Il progetto che stai cercando di caricare è quello attualmente utilizzato." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:175 msgid "Close it first to edit it" msgstr "Per modificarlo devi prima chiuderlo" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:195 #: ../LongoMatch/Utils/ProjectUtils.cs:49 msgid "Save Project" msgstr "Salva progetto" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:85 msgid "" "The file you are trying to load is not a playlist or it's not compatible with " "the current version" msgstr "" "Il file che hai tentato di caricare non contiene una lista di azioni oppure " "non è compatibile con la versione attualmente in uso" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:215 msgid "Open playlist" msgstr "Apri lista azioni" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:230 msgid "New playlist" msgstr "Nuova lista azioni" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:255 msgid "The playlist is empty!" msgstr "La lista delle azioni di gioco è vuota!" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:264 #: ../LongoMatch/Utils/ProjectUtils.cs:126 #: ../LongoMatch/Utils/ProjectUtils.cs:214 msgid "Please, select a video file." msgstr "Prego, scegli un file video." #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:54 msgid "Filename" msgstr "Nome del file" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:118 msgid "File length" msgstr "Lunghezza del file" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "Video codec" msgstr "Codifica video" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Audio codec" msgstr "Codifica audio" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Format" msgstr "Formato" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 msgid "Local team" msgstr "Squadra locale" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 msgid "Visitor team" msgstr "Squadra ospite" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 msgid "Season" msgstr "Stagione" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Competition" msgstr "Competizione" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Result" msgstr "Risultato" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Date" msgstr "Data" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:54 msgid "Templates Files" msgstr "File di modello" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:161 msgid "The template has been modified. Do you want to save it? " msgstr "Modello modificato. Lo vuoi salvare? " #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:183 msgid "Template name" msgstr "Nome del modello" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:203 msgid "You cannot create a template with a void name" msgstr "Non puoi salvare un modello con un nome vuoto" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:209 msgid "A template with this name already exists" msgstr "Esiste già un modello con lo stesso nome" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:235 msgid "You can't delete the 'default' template" msgstr "Non puoi cancellare il modello 'default'" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:240 msgid "Do you really want to delete the template: " msgstr "Vuoi realmente cancellare il modello: " #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:118 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "" "Stai per cancellare una categoria e tutte le relative azioni aggiunte ad " "essa. Ne sei sicuro?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:125 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:134 msgid "A template needs at least one category" msgstr "Un modello necessita di almeno una categoria" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:216 msgid "New template" msgstr "Nuovo modello" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:220 msgid "The template name is void." msgstr "Il nome del modello è vuoto." #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:226 msgid "The template already exists.Do you want to overwrite it ?" msgstr "Modello esistente. Lo si vuole sovrascrivere?" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:51 msgid "Lead Time" msgstr "Tempo di risposta" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:56 msgid "Lag Time" msgstr "Tempo di ritardo" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:61 msgid "Color" msgstr "Colore" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:66 msgid "Hotkey" msgstr "Tasto rapido" #: ../LongoMatch/Gui/Component/TimeScale.cs:159 msgid "Delete Play" msgstr "Elimina azione" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Add New Play" msgstr "Aggiungi nuova azione" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:126 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:89 msgid "Low" msgstr "Basso" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:129 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:90 msgid "Normal" msgstr "Normale" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:91 msgid "Good" msgstr "Buono" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:135 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:92 msgid "Extra" msgstr "Extra" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:171 msgid "Save Video As ..." msgstr "Salva video come ..." #: ../LongoMatch/Gui/Component/CategoryProperties.cs:67 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:124 msgid "none" msgstr "Vuoto" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:97 msgid "Save File as..." msgstr "Salva file con nome ..." #: ../LongoMatch/Utils/ProjectUtils.cs:42 msgid "" "The project will be saved to a file. You can insert it later into the " "database using the \"Import project\" function once you copied the video file to " "your computer" msgstr "" "Il progetto è stato archiviato nel file. Una volta copiato sul computer puoi " "importarlo nel database utilizzando la funzione \"Importa progetto\"" #: ../LongoMatch/Utils/ProjectUtils.cs:63 msgid "Project saved successfully." msgstr "Progetto salvato." #: ../LongoMatch/Utils/ProjectUtils.cs:78 msgid "Import Project" msgstr "Importa progetto" #: ../LongoMatch/Utils/ProjectUtils.cs:104 msgid "Error importing project:" msgstr "Errore durante l'operazione di importazione del progetto:" #: ../LongoMatch/Utils/ProjectUtils.cs:142 msgid "A project already exists for the file:" msgstr "Esiste già un progetto per il file:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "Do you want to overwrite it?" msgstr "Lo si vuole sovrascrivere?" #: ../LongoMatch/Utils/ProjectUtils.cs:162 msgid "Project successfully imported." msgstr "Il progetto è stato importato." #: ../LongoMatch/Utils/ProjectUtils.cs:192 msgid "No capture devices were found." msgstr "Non è stato trovato alcun dispositivo di acquisizione." #: ../LongoMatch/Utils/ProjectUtils.cs:218 msgid "This file is already used in another Project." msgstr "Il file è già in uso in un altro progetto." #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "Select a different one to continue." msgstr "Selezionane uno diverso per continuare." #: ../LongoMatch/Utils/ProjectUtils.cs:243 msgid "Select Export File" msgstr "Seleziona file da esportare" #: ../LongoMatch/Utils/ProjectUtils.cs:272 msgid "Creating video thumbnails. This can take a while." msgstr "" "Creazione delle miniature video. Questo può portare via un pò di tempo." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:140 msgid "Competition:" msgstr "Competizione:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:182 msgid "File:" msgstr "File" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:310 msgid "_Calendar" msgstr "_Calendario" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:330 msgid "Visitor Team:" msgstr "Squadra ospite" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:340 msgid "Local Goals:" msgstr "Goal squadra locale:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:350 msgid "Visitor Goals:" msgstr "Goal squadra ospite" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:360 msgid "Date:" msgstr "Data:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:370 msgid "Local Team:" msgstr "Squadra locale:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:378 msgid "Categories Template:" msgstr "Modelli categorie:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:437 msgid "Season:" msgstr "Stagione:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:497 msgid "Audio Bitrate (kbps):" msgstr "Bitrate audio (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:523 msgid "Device:" msgstr "Dispositivo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:551 msgid "Video Size:" msgstr "Dimensione video:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:561 msgid "Video Bitrate (kbps):" msgstr "Bitrate video (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:598 msgid "Video Format:" msgstr "Formato video:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:608 msgid "Video encoding properties" msgstr "Proprietà codifica video" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:50 msgid "Projects Search:" msgstr "Cerca progetti:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:36 msgid "Cancel" msgstr "Elimina" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:46 msgid "Tag new play" msgstr "Tag nuova azione" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:47 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:141 msgid "Projects Manager" msgstr "Manager di progetti" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:103 msgid "Project Details" msgstr "Dettagli progetto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:155 msgid "_Export" msgstr "_Esporta" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:25 msgid "Open Project" msgstr "Apri progetto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:25 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:43 msgid "New Project" msgstr "Nuovo progetto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:40 msgid "Lead time:" msgstr "Tempo di risposta" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:48 msgid "Lag time:" msgstr "Tempo di ritardo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:79 msgid "New Before" msgstr "Nuova prima" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:107 msgid "New After" msgstr "Nuova dopo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:135 msgid "Remove" msgstr "Rimuovi" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:163 #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:169 msgid "Edit" msgstr "Modifica" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:198 msgid "Export" msgstr "Esporta" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:122 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:123 msgid "_File" msgstr "_File" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:125 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:126 msgid "_New Project" msgstr "_Nuovo progetto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 msgid "_Open Project" msgstr "_Apri progetto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:131 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 msgid "_Quit" msgstr "_Esci" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:134 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:136 msgid "_Close Project" msgstr "_Chiudi progetto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:139 msgid "_Tools" msgstr "_Strumenti" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:142 msgid "Database Manager" msgstr "Manager database" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:144 msgid "Categories Templates Manager" msgstr "Manager di modelli di categorie" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:145 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:41 msgid "Templates Manager" msgstr "Manager di modelli" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:147 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:148 msgid "_View" msgstr "_Visualizza" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:150 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:151 msgid "Full Screen" msgstr "Schermo intero" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:153 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 msgid "Playlist" msgstr "ListaAzioniGioco" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:156 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:159 msgid "Capture Mode" msgstr "Modalità acquisizione" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:161 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:164 msgid "Analyze Mode" msgstr "Modalità analisi" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:166 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:168 msgid "_Save Project" msgstr "_Salva progetto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:187 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:188 msgid "_Help" msgstr "_Aiuto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:173 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 msgid "_About" msgstr "_Informazioni" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:176 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:178 msgid "Export Project To CSV File" msgstr "Esporta il progetto nel file CSV" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:180 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 msgid "Teams Templates Manager" msgstr "Manager di modelli di squadra" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:183 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:185 msgid "Hide All Widgets" msgstr "Nascondi tutti i widget" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:190 msgid "_Drawing Tool" msgstr "_Lavagna" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:191 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:33 msgid "Drawing Tool" msgstr "Lavagna" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:193 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:194 msgid "_Import Project" msgstr "_Importa Progetto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:196 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:199 msgid "Free Capture Mode" msgstr "Modalità acquisizione libera" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:204 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:253 msgid "Plays" msgstr "Azioni" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:402 msgid "Creating video..." msgstr "Creazione del video in corso ..." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:59 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:93 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:80 msgid "Name:" msgstr "Nome:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:93 msgid "Color: " msgstr "Colore: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:114 msgid "Change" msgstr "Cambia" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:134 msgid "HotKey:" msgstr "Tasto rapido:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:23 msgid "Categories Template" msgstr "Modelli categorie" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:62 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Carica una lista di\n" "azioni di gioco \n" "o creane una nuova." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:39 msgid "Select template name" msgstr "Seleziona un nome di modello" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:83 msgid "Copy existent template:" msgstr "Copia un modello esistente:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:101 msgid "Players:" msgstr "Giocatori:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:59 msgid "Video Properties" msgstr "Proprietà video" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:83 msgid "Video Quality:" msgstr "Qualità video:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:112 msgid "Size: " msgstr "Dimensione: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:118 msgid "Portable (4:3 - 320x240)" msgstr "Portabile (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:119 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:120 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:121 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:122 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "Full HD 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:142 msgid "Ouput Format:" msgstr "Formato di output:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:165 msgid "Enable Title Overlay" msgstr "Abilita titolazioni" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:176 msgid "Enable Audio (Experimental)" msgstr "Abilita Audio (sperimentale)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:194 msgid "File name: " msgstr "Nome del file: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:65 msgid "Play:" msgstr "Azione:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:73 msgid "Interval (frames/s):" msgstr "Intervallo (frame/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:81 msgid "Series Name:" msgstr "Serie di nomi:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:135 msgid "Export to PNG images" msgstr "Esporta in una immagine PNG" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:29 msgid "Capture Progress" msgstr "Acquisizione in corso" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:44 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "È stata rilasciata una nuova versione di LongoMatch a www.ylatuya.es!\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:54 msgid "The new version is " msgstr "La nuova versione è " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:64 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "La puoi scaricare direttamente a questo indirizzo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:74 msgid "label7" msgstr "etichetta7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:23 msgid "Select a HotKey" msgstr "Seleziona un Tasto Rapido" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:36 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Premi una combinazione di tasti usando Shift+tasto o Alt+tasto.\n" "Sono comunque ammessi tasti rapidi singoli." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:88 msgid "Position:" msgstr "Posizione:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:98 msgid "Number:" msgstr "Numero:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:108 msgid "Photo:" msgstr "Foto:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:25 msgid "Tag players" msgstr "Tag giocatori" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:87 msgid "Data Base Migration" msgstr "Migrazione database" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:115 msgid "Playlists Migration" msgstr "Migrazione azioni di gioco" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:143 msgid "Templates Migration" msgstr "Migratore di modelli" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:23 msgid "Calendar" msgstr "Calendario" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:21 msgid "TransparentDrawingArea" msgstr "AreaDisegnoTrasparente" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:74 msgid "Tools" msgstr "Strumenti" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:211 msgid "Color" msgstr "Colore" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:232 msgid "Width" msgstr "Dimensione" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:241 msgid "2 px" msgstr "2 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:242 msgid "4 px" msgstr "4 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:243 msgid "6 px" msgstr "6 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:244 msgid "8 px" msgstr "8 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:245 msgid "10 px" msgstr "10 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:258 msgid "Transparency" msgstr "Trasparenza" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:307 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Disegno->D\n" "Pulisci->C\n" "Nascondi->H\n" "Mostra->S\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:23 msgid "Category Details" msgstr "Dettagli categoria" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:23 msgid "Player Details" msgstr "Dettagli giocatore" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:77 msgid "Save to Project" msgstr "Salva nel progetto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:104 msgid "Save to File" msgstr "Salva nel file" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:41 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "Fino ad ora non hai inserito alcun tag alle azioni di gioco.\n" "Puoi farlo con un clic sul comando \"Aggiungi Tag\"" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:94 msgid "Add Tag" msgstr "Aggiunti Tag" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:23 msgid "Tag play" msgstr "Tag azione" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:89 msgid "Add Filter" msgstr "Aggiungi filtro" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:63 msgid "New project using a video file" msgstr "Nuovo progetto utilizzando un file video" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:93 msgid "Live project using a capture device" msgstr "Progetto live usando un dispositivo di acquisizione" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:121 msgid "Live project using a fake capture device" msgstr "Progetto live utilizzando un dispositivo di acquisizione simulato" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:65 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be " "lost." msgstr "" "Un progetto di acquizione video è attualmente in uso.\n" "È possibile proseguire nell'acquisizione in corso, annullarlo o salvare il " "progetto.\n" "\n" "Attenzione: cancellando il progetto in uso, tutte le modifiche fatte " "andranno perse." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:94 msgid "Return" msgstr "Invio" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:119 msgid "Cancel capture" msgstr "Annulla l'acquisizione" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:144 msgid "Stop capture and save project" msgstr "Blocca acquisizione e salva il progetto" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:80 msgid "None" msgstr "Vuoto" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:156 msgid "No Team" msgstr "Nessuna squadra" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:170 msgid "Team Selection" msgstr "Selezione squadra" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:172 msgid "Add tag" msgstr "Aggiungi tag" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:173 msgid "Tag player" msgstr "Tag giocatore" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:176 msgid "Delete key frame" msgstr "Elimina key frame" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:177 msgid "Add to playlist" msgstr "Aggiungi alla lista delle azioni" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:179 msgid "Export to PGN images" msgstr "Esporta in immagini PNG" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:337 msgid "Do you want to delete the key frame for this play?" msgstr "Vuoi cancellare il key frame per questa azione?" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:228 msgid "Time:" msgstr "Tempo:" #: ../CesarPlayer/Gui/CapturerBin.cs:258 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "Stai per bloccare e finire l'acquisizione video\n" "Nei sei sicuro?" #: ../CesarPlayer/Gui/CapturerBin.cs:264 msgid "Finalizing file. This can take a while" msgstr "Chiusura del file. Questa operazione può impiegare del tempo" #: ../CesarPlayer/Gui/CapturerBin.cs:299 msgid "Device disconnected. The capture will be paused" msgstr "Dispositivo scollegato. L'acquisizione sarà messa in pausa" #: ../CesarPlayer/Gui/CapturerBin.cs:308 msgid "Device reconnected.Do you want to restart the capture?" msgstr "Dispositivo ricollegato. Vuoi riavviare l'acquisizione?" #: ../CesarPlayer/Utils/MediaFile.cs:157 #: ../CesarPlayer/Utils/PreviewMediaFile.cs:115 msgid "Invalid video file:" msgstr "File video non valido:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:80 msgid "Fake live source" msgstr "Sorgente live simulata" #: ../CesarPlayer/Utils/Device.cs:82 msgid "Default device" msgstr "Dispositivo predefinito" longomatch-0.16.8/po/ca.po0000644000175000017500000012045011601631101012213 00000000000000# Catalan translation for longomatch. # This file is distributed under the same license as the longomatch package. # Xavier Queralt Mateu , 2010. # msgid "" msgstr "" "Project-Id-Version: longomatch\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-07-06 22:38+0200\n" "PO-Revision-Date: 2010-07-06 23:44+0200\n" "Last-Translator: Xavier Queralt Mateu \n" "Language-Team: ca \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: none\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:205 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch: l'entrenador digital" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "Eina d'anàlisis visual per a entrenadors" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "" "El fitxer que intenteu carregar no és una llista de reproducció vàlida." #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Indefinit" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "nom" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:197 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:161 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "Ordenar pel nom" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:198 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:162 msgid "Sort by start time" msgstr "Ordenar pel temps d'inici" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:199 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:163 msgid "Sort by stop time" msgstr "Ordenar pel temps d'acabament" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:200 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:164 msgid "Sort by duration" msgstr "Ordenar per la duració" #: ../LongoMatch/Time/MediaTimeNode.cs:357 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:47 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Nom" #: ../LongoMatch/Time/MediaTimeNode.cs:358 ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Equip" #: ../LongoMatch/Time/MediaTimeNode.cs:359 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Inici" #: ../LongoMatch/Time/MediaTimeNode.cs:360 msgid "Stop" msgstr "Final" #: ../LongoMatch/Time/MediaTimeNode.cs:361 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:293 msgid "Tags" msgstr "Etiquetes" #: ../LongoMatch/Main.cs:164 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "" "S'han trobat alguns elements de la versió anterior (base de dades, " "plantilles i/o llistes de reproducció)." #: ../LongoMatch/Main.cs:165 msgid "Do you want to import them?" msgstr "Voleu importar-los?" #: ../LongoMatch/Main.cs:230 msgid "The application has finished with an unexpected error." msgstr "L'aplicació ha sortit amb un error no esperat." #: ../LongoMatch/Main.cs:231 msgid "A log has been saved at: " msgstr "S'ha guardat un fitxer de registre a:" #: ../LongoMatch/Main.cs:232 msgid "Please, fill a bug report " msgstr "Reporteu l'error." #: ../LongoMatch/Gui/MainWindow.cs:128 msgid "The file associated to this project doesn't exist." msgstr "El fitxer associat a aquest projecte no existeix." #: ../LongoMatch/Gui/MainWindow.cs:129 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "" "Si el fitxer ha canviat de lloc, intenteu editar-lo al gestor de dades." #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "An error occurred opening this project:" msgstr "S'ha trobat un error mentre s'obria el projecte:" #: ../LongoMatch/Gui/MainWindow.cs:189 msgid "Loading newly created project..." msgstr "S'està carregant el nou projecte..." #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "An error occured saving the project:\n" msgstr "S'ha trobat un error mentre es guardava el projecte:\n" #: ../LongoMatch/Gui/MainWindow.cs:202 msgid "" "The video file and a backup of the project has been saved. Try to import it " "later:\n" msgstr "" "S'han guardat tant el vídeo com una copia de suport. Intenteu-lo importar " "més tard:\n" #: ../LongoMatch/Gui/MainWindow.cs:312 msgid "Do you want to close the current project?" msgstr "Voleu tancar el projecte actual?" #: ../LongoMatch/Gui/MainWindow.cs:519 msgid "The actual project will be closed due to an error in the media player:" msgstr "El projecte actual es tancarà degut a un problema amb el reproductor:" #: ../LongoMatch/Gui/MainWindow.cs:602 msgid "" "An error occured in the video capturer and the current project will be " "closed:" msgstr "" "S'ha trobat un error amb la captura i, conseqüentment, el projecte es " "tancarà:" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Plantilles" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:162 msgid "The template has been modified. Do you want to save it? " msgstr "La plantilla ha canviat. Voleu guardar-la?" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:184 msgid "Template name" msgstr "Nom de la plantilla" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:204 msgid "You cannot create a template with a void name" msgstr "No podeu crear una plantilla sense nom" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:210 msgid "A template with this name already exists" msgstr "Ja existeix una plantilla amb aquest nom" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:236 msgid "You can't delete the 'default' template" msgstr "No podeu eliminar la plantilla 'predefinida'" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:241 msgid "Do you really want to delete the template: " msgstr "Realment voleu eliminar la plantilla?: " #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Aquesta tecla ràpida ja està en us." #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "Capturant fotogrames: " #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Fet" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:90 msgid "Low" msgstr "Baixa" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:91 msgid "Normal" msgstr "Normal" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:92 msgid "Good" msgstr "Bona" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:93 msgid "Extra" msgstr "Molt bona" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:172 msgid "Save Video As ..." msgstr "Guardar vídeo com a..." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70 msgid "The Project has been edited, do you want to save the changes?" msgstr "El projecte s'ha modificat. Voleu guardar els canvis?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:95 msgid "A Project is already using this file." msgstr "Un altre projecte ja utiltiza aquest fitxer." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "This Project is actually in use." msgstr "Aquest projecte està en us." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:113 msgid "Close it first to allow its removal from the database" msgstr "Tanqueu-lo primer per poder-lo esborrar de la base de dades." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:119 msgid "Do you really want to delete:" msgstr "Esteu segurs de que voleu eliminar-lo:" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "The Project you are trying to load is actually in use." msgstr "El projecte que intenteu carregar està en us." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "Close it first to edit it" msgstr "Tanqueu-lo abans de poder-lo editar" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:196 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "Guardar projecte" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "Guardar com a..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:386 msgid "DirectShow Source" msgstr "Origen «DirectShow»" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:387 msgid "Unknown" msgstr "Desconegut" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:435 msgid "Keep original size" msgstr "Manté la mida original" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:457 msgid "Output file" msgstr "Fitxer de sortida" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:469 msgid "Open file..." msgstr "Obrir fitxer..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:486 msgid "Analyzing video file:" msgstr "Analitzant el fitxer de vídeo:" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:491 msgid "This file doesn't contain a video stream." msgstr "Aquest fitxer no conté un fluxe de vídeo." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:493 msgid "This file contains a video stream but its length is 0." msgstr "Aquest fitxer conté un fluxe de vídeo però de longitud 0." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:560 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:476 msgid "Local Team Template" msgstr "Plantilla de l'equip local" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:573 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:414 msgid "Visitor Team Template" msgstr "Plantilla d l'equip visitant" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:125 msgid "none" msgstr "cap" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "" "Esteu a punt d'eliminar una categoria i totes les jugades d'aquesta " "categoria. Voleu continuar?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:126 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:135 msgid "A template needs at least one category" msgstr "Una plantilla necesita, com a mínim, una categoria" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:217 msgid "New template" msgstr "Nova plantilla" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:221 msgid "The template name is void." msgstr "El nom de la plantilla està buit." #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:227 msgid "The template already exists.Do you want to overwrite it ?" msgstr "La plantilla ja existeix, voleu sobreescriure-la?" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:86 msgid "" "The file you are trying to load is not a playlist or it's not compatible " "with the current version" msgstr "" "El fitxer que intenteu carregar no és una llista de reproducció o no és " "compatible amb la versió actual." #: ../LongoMatch/Gui/Component/PlayListWidget.cs:216 msgid "Open playlist" msgstr "Obrir la llista de reproducció" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:231 msgid "New playlist" msgstr "Nova llista de reproducció" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:256 msgid "The playlist is empty!" msgstr "La llista de reproducció està buida!" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:265 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:215 msgid "Please, select a video file." msgstr "Seleccioneu un fitxer de vídeo." #: ../LongoMatch/Gui/Component/PlayerProperties.cs:74 msgid "Choose an image" msgstr "Trieu una imatge" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Fitxer" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "File length" msgstr "Mida del fitxer" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Video codec" msgstr "Còdec de vídeo" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Audio codec" msgstr "Còdec d'àudio" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:122 msgid "Format" msgstr "Format" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Títol" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:145 msgid "Local team" msgstr "Equip local" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:146 msgid "Visitor team" msgstr "Equip visitant" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Season" msgstr "Temporada" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Competition" msgstr "Competició" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Result" msgstr "Resultat" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:138 msgid "Date" msgstr "Data" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "Eliminar jugada" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "Afegir nova jugada" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Eliminar" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:137 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:267 msgid "Local Team" msgstr "Equip local" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:280 msgid "Visitor Team" msgstr "Equip visitant" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:139 msgid "No Team" msgstr "Sense equip" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:152 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:94 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:106 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:164 msgid "Edit" msgstr "Modificar" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:153 msgid "Team Selection" msgstr "Selecció d'equip" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:155 msgid "Add tag" msgstr "Afegir etiqueta" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:156 msgid "Tag player" msgstr "Etiquetar jugador" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:158 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:107 msgid "Delete" msgstr "Eliminar" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:159 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:95 msgid "Delete key frame" msgstr "Eliminar fotograma clau" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:160 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:97 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:109 msgid "Add to playlist" msgstr "Afegir a la llista de reproducció" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:162 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:96 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:108 msgid "Export to PGN images" msgstr "Exportar a imatges PNG" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:195 msgid "Edit name" msgstr "Modificar nom" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:196 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:72 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 msgid "Sort Method" msgstr "Mètode d'ordenació" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:472 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:200 msgid "Do you want to delete the key frame for this play?" msgstr "Voleu eliminar el fotograma clau d'aquesta jugada?" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Fotografia" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:56 msgid "Position" msgstr "Posició" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:61 msgid "Number" msgstr "Número" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:52 msgid "Lead Time" msgstr "Temps avançat" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:57 msgid "Lag Time" msgstr "Temps atraçat" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:62 msgid "Color" msgstr "Color" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:67 msgid "Hotkey" msgstr "Tecla ràpida" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Modificar el títol" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "Aplicar la velocitat de reproducció actual" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " seg" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Duració" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "Velocitat de reproducció" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "No s'ha trobat el fitxer" #: ../LongoMatch/DB/Project.cs:543 msgid "The file you are trying to load is not a valid project" msgstr "El fitxer que intenteu carregar no és un projecte vàlid" #: ../LongoMatch/DB/DataBase.cs:136 msgid "Error retrieving the file info for project:" msgstr "" "S'ha produït un error mentre es recuperava el fitxer d'informació del " "projecte:" #: ../LongoMatch/DB/DataBase.cs:137 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "" "Aquest valor es restablirà. Recordeu de canviar-lo més tard des del gestor " "de projectes" #: ../LongoMatch/DB/DataBase.cs:138 msgid "Change Me" msgstr "Canviam" #: ../LongoMatch/DB/DataBase.cs:215 msgid "The Project for this video file already exists." msgstr "Ja existeix un projecte per aquest fitxer de vídeo." #: ../LongoMatch/DB/DataBase.cs:215 msgid "Try to edit it with the Database Manager" msgstr "Proveu de modificar-ho amb el gestor de dades" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:44 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:26 msgid "New Project" msgstr "Nou projecte" #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:64 msgid "New project using a video file" msgstr "Nou projecte mitjançant un fitxer de vídeo" #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:94 msgid "Live project using a capture device" msgstr "Projecte en directe utilitzant un dispositiu de captura" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:122 msgid "Live project using a fake capture device" msgstr "Nou projecte en directe utilitzant un dispositiu de captura fals" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:66 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." "" msgstr "" "Ja s'està executant un projecte de captura.\n" "Podeu continuar amb la captura actual, cancel·lar-la o guardar el projecte.\n" "\n" "Atenció: Si cancel·leu el projecte actual es perdran els canvis." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:95 msgid "Return" msgstr "Tornar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:120 msgid "Cancel capture" msgstr "Cancel·lar la captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:145 msgid "Stop capture and save project" msgstr "Aturar la captura i guardar el projecte" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:24 msgid "Categories Template" msgstr "Plantilla de categories" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:87 msgid "Tools" msgstr "Eines" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:224 msgid "Width" msgstr "Ample" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:233 msgid "2 px" msgstr "2 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:234 msgid "4 px" msgstr "4 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:235 msgid "6 px" msgstr "6 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:236 msgid "8 px" msgstr "8 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:237 msgid "10 px" msgstr "10 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:250 msgid "Transparency" msgstr "Transparència" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:275 msgid "Colors" msgstr "Colors" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:394 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Dibuixar-> D\n" "Netejar-> C\n" "Amagar-> S\n" "Mostrar-> S\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:48 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:142 msgid "Projects Manager" msgstr "Gestor de projectes" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:104 msgid "Project Details" msgstr "Detalls del project" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:156 msgid "_Export" msgstr "_Exportar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:24 msgid "Select a HotKey" msgstr "Seleccioneu una drecera de teclat" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:37 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Podeu prémer una combi combinació de tecles amb Majús+tecla i Alt+tecla, \n" "o utilitzar una drecera de teclat simple mitjançant Ctrl+tecla." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:63 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Carregueu una llista\n" "de reproducció o creeu-ne\n" "una de nova." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:24 msgid "Tag play" msgstr "Etiquetar jugada" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:51 msgid "Projects Search:" msgstr "Cerca de projectes:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:66 msgid "Play:" msgstr "Jugada:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:74 msgid "Interval (frames/s):" msgstr "Interval (imatges/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:82 msgid "Series Name:" msgstr "Nom de la sèrie:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:136 msgid "Export to PNG images" msgstr "Exportar com a imatges PNG" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:34 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Drawing Tool" msgstr "Eina de dibuix" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:78 msgid "Save to Project" msgstr "Guardar projecte" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:105 msgid "Save to File" msgstr "Guardar a un fitxer" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:90 msgid "Add Filter" msgstr "Afegir filtre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:123 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 msgid "_File" msgstr "_Fitxer" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:126 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 msgid "_New Project" msgstr "_Nou projecte" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:130 msgid "_Open Project" msgstr "_Obrir projecte" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:133 msgid "_Quit" msgstr "_Sortir" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "_Close Project" msgstr "_Tancar projecte" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:139 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 msgid "_Tools" msgstr "_Eines" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 msgid "Database Manager" msgstr "Gestor de dades" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:145 msgid "Categories Templates Manager" msgstr "Gestor de plantilles de categories" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:42 msgid "Templates Manager" msgstr "Gestor de plantilles" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:148 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 msgid "_View" msgstr "_Veure" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:151 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Full Screen" msgstr "Pantalla completa" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:155 msgid "Playlist" msgstr "Llista de reproducció" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:160 msgid "Capture Mode" msgstr "Mode de captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:162 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:165 msgid "Analyze Mode" msgstr "Mode d'anàlisis" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 msgid "_Save Project" msgstr "_Guardar projecte" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:172 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:188 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 msgid "_Help" msgstr "_Ajuda" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:175 msgid "_About" msgstr "_Quant a" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:177 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:179 msgid "Export Project To CSV File" msgstr "Exportar el projecte a un fitxer CSV" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:182 msgid "Teams Templates Manager" msgstr "Gestor de plantilles d'equips" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 msgid "Hide All Widgets" msgstr "Amaga-ho tot" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:191 msgid "_Drawing Tool" msgstr "Eina de _dibuix" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:194 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:195 msgid "_Import Project" msgstr "_Importar projecte" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:200 msgid "Free Capture Mode" msgstr "Mode de captura lliure" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:254 msgid "Plays" msgstr "Jugades" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:403 msgid "Creating video..." msgstr "Creant el vídeo..." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:24 msgid "Player Details" msgstr "Detalls de la jugada" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:22 msgid "TransparentDrawingArea" msgstr "TransparentDrawingArea" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:81 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:94 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:60 msgid "Name:" msgstr "Nom:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:89 msgid "Position:" msgstr "Posició:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:99 msgid "Number:" msgstr "Número:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 msgid "Photo:" msgstr "Fotografia:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:30 msgid "Capture Progress" msgstr "Progrés de la captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:24 msgid "Category Details" msgstr "Detalls de la categoria" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:40 msgid "Select template name" msgstr "Seleccioneu el nom de la plantilla" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:84 msgid "Copy existent template:" msgstr "Copiar una plantilla existent:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:102 msgid "Players:" msgstr "Jugadors:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:45 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "Ha sortit una nova versió de LongoMatch, la podeu trobar a www.ylatuya.es!\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:55 msgid "The new version is " msgstr "La nova versió és " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:65 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "Us la podeu descarregar a través d'aquest enllaç:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:75 msgid "label7" msgstr "etiqueta7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:26 msgid "Tag players" msgstr "Etiquetar jugadors" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:80 msgid "New Before" msgstr "Nou abans" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:108 msgid "New After" msgstr "Nou desprès" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:136 msgid "Remove" msgstr "Esborrar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:199 msgid "Export" msgstr "Exportar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:24 msgid "Calendar" msgstr "Calendari" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:42 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "No heu etiquetat cap jugador encara.\n" "Podeu afegir noves etiquetes a l'entrada de text i fent clic a \"Afegir " "etiqueta\"" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:95 msgid "Add Tag" msgstr "Afegir etiqueta" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:60 msgid "Video Properties" msgstr "Propietats del vídeo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Video Quality:" msgstr "Qualitat del vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "Size: " msgstr "Mida: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:119 msgid "Portable (4:3 - 320x240)" msgstr "Portàtil (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:120 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:121 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:122 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:123 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "HD complet 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:143 msgid "Ouput Format:" msgstr "Format de sortida:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:166 msgid "Enable Title Overlay" msgstr "Sobreimpressionar el títol" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:177 msgid "Enable Audio (Experimental)" msgstr "Activar l'àudio (experimental)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:195 msgid "File name: " msgstr "Nom del fitxer: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:37 msgid "Cancel" msgstr "Cancel·lar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:47 msgid "Tag new play" msgstr "Etiquetar nova jugada" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:88 msgid "Data Base Migration" msgstr "Migració de dades" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:116 msgid "Playlists Migration" msgstr "Migració de llistes de reproducció" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:144 msgid "Templates Migration" msgstr "Migració de plantilles" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:94 msgid "Color: " msgstr "Color: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:115 msgid "Change" msgstr "Canviar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:135 msgid "HotKey:" msgstr "Drecera de teclat:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:141 msgid "Competition:" msgstr "Competició:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:183 msgid "File:" msgstr "Fitxer:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:311 msgid "_Calendar" msgstr "_Calendari" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:331 msgid "Visitor Team:" msgstr "Equip visitant:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:341 msgid "Local Goals:" msgstr "Gols a casa:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:351 msgid "Visitor Goals:" msgstr "Gols del visitant:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:361 msgid "Date:" msgstr "Data:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:371 msgid "Local Team:" msgstr "Equip local:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:379 msgid "Categories Template:" msgstr "Plantilla de categories:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:438 msgid "Season:" msgstr "Temporada:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:498 msgid "Audio Bitrate (kbps):" msgstr "Taxa de bits de l'àudio (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:524 msgid "Device:" msgstr "Dispositiu:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:552 msgid "Video Size:" msgstr "Mida del vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:562 msgid "Video Bitrate (kbps):" msgstr "Taxa de bits del vídeo (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:599 msgid "Video Format:" msgstr "Format del vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:609 msgid "Video encoding properties" msgstr "Propietats de la codificació del vídeo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lead time:" msgstr "Temps avançat:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:49 msgid "Lag time:" msgstr "Temps retardat:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:26 msgid "Open Project" msgstr "Obrir projecte" #: ../LongoMatch/Handlers/EventsManager.cs:181 msgid "You can't create a new play if the capturer is not recording." msgstr "" "No podeu crear una nova llista de reproducció si no s'està gravant del " "dispositiu de captura." #: ../LongoMatch/Handlers/EventsManager.cs:214 msgid "The video edition has finished successfully." msgstr "L'edició de vídeo ha finalitzat amb èxit." #: ../LongoMatch/Handlers/EventsManager.cs:220 msgid "An error has occurred in the video editor." msgstr "S'ha trobat un error a l'editor de vídeo." #: ../LongoMatch/Handlers/EventsManager.cs:221 msgid "Please, try again." msgstr "Intenteu-ho de nou." #: ../LongoMatch/Handlers/EventsManager.cs:255 msgid "" "The stop time is smaller than the start time.The play will not be added." msgstr "El temps final és menor que el d'inici. La jugada no s'afegirà." #: ../LongoMatch/Handlers/EventsManager.cs:330 msgid "Please, close the opened project to play the playlist." msgstr "Tanqueu el projecte per a poder reproduir la llista de reproducció." #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "Secció" #: ../LongoMatch/IO/CSVExport.cs:83 ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "Temps inicial" #: ../LongoMatch/IO/CSVExport.cs:84 ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "Temps final" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "S'ha exportat el CSV amb èxit." #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Etiqueta" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Jugador" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Categoria" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "" "The project will be saved to a file. You can insert it later into the " "database using the \"Import project\" function once you copied the video " "file to your computer" msgstr "" "Es guardarà el projecte en un fitxer. Podeu afegir-lo a la base de dades més " "tard utilitzant la funció \"Importar projecte\" un cop hagi copiat el fitxer " "de vídeo al seu equip." #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "El projecte s'ha guardat amb èxit." #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "Importar un projecte" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "S'ha trobat un error mentre s'exportava el projecte:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "Ja existeix un projecte per aquest fitxer:" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "Voleu sobreescriure'l?" #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "El projecte s'ha carregat amb èxit." #: ../LongoMatch/Utils/ProjectUtils.cs:193 msgid "No capture devices were found." msgstr "No s'ha trobat cap dispositiu de captura." #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "This file is already used in another Project." msgstr "Un altre projecte ja utilitza aquest fitxer." #: ../LongoMatch/Utils/ProjectUtils.cs:220 msgid "Select a different one to continue." msgstr "Seleccioneu-ne un altre per a poder continuar." #: ../LongoMatch/Utils/ProjectUtils.cs:244 msgid "Select Export File" msgstr "Seleccionar un fitxer per a exportar" #: ../LongoMatch/Utils/ProjectUtils.cs:273 msgid "Creating video thumbnails. This can take a while." msgstr "Creant les miniatures del vídeo. Pot trigar una estona." #: ../CesarPlayer/Gui/CapturerBin.cs:255 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "Esteu a punt de parar i acabar la captura actual.\n" "Voleu continuar?" #: ../CesarPlayer/Gui/CapturerBin.cs:261 msgid "Finalizing file. This can take a while" msgstr "Finalitzant el fitxer. Això pot trigar una estona" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "Temps:" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "Fitxer de vídeo invàlid:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:80 msgid "Fake live source" msgstr "Font de fals directe" longomatch-0.16.8/po/de.po0000644000175000017500000012452011601631101012222 00000000000000# German translation of longomatch. # Mario Blättermann , 2009, 2010. # msgid "" msgstr "" "Project-Id-Version: longomatch master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=longomatch&component=general\n" "POT-Creation-Date: 2010-11-14 20:51+0000\n" "PO-Revision-Date: 2010-12-16 20:19+0100\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Poedit-Language: German\n" "X-Poedit-Country: GERMANY\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch: Der digitale Trainer" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "Analyse von Sportvideos für Trainer" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "Die zu ladende Datei ist keine gültige Wiedergabeliste" #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Nicht definiert" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "Name" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "Nach Name sortieren" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:69 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:154 msgid "Sort by start time" msgstr "Nach Startzeit sortieren" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:155 msgid "Sort by stop time" msgstr "Nach Stoppzeit sortieren" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:156 msgid "Sort by duration" msgstr "Nach Dauer sortieren" #: ../LongoMatch/Time/MediaTimeNode.cs:354 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:47 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Name" #: ../LongoMatch/Time/MediaTimeNode.cs:355 ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Mannschaft" #: ../LongoMatch/Time/MediaTimeNode.cs:356 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Start" #: ../LongoMatch/Time/MediaTimeNode.cs:357 msgid "Stop" msgstr "Stop" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:285 msgid "Tags" msgstr "Schlagwörter" #: ../LongoMatch/Main.cs:164 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "" "Einige Elemente aus früheren Versionen wurden gefunden (Datenbank, Vorlagen, " "und/oder Wiedergabelisten)." #: ../LongoMatch/Main.cs:165 msgid "Do you want to import them?" msgstr "Wollen Sie diese importieren?" #: ../LongoMatch/Main.cs:230 msgid "The application has finished with an unexpected error." msgstr "Die Anwendung wurde mit einem unerwarteten Fehler beendet." #: ../LongoMatch/Main.cs:231 msgid "A log has been saved at: " msgstr "Ein Protokoll wurde gespeichert in:" #: ../LongoMatch/Main.cs:232 msgid "Please, fill a bug report " msgstr "Bitte verfassen Sie einen Fehlerbericht." #: ../LongoMatch/Gui/MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:272 msgid "Visitor Team" msgstr "Gastmannschaft" #: ../LongoMatch/Gui/MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:259 msgid "Local Team" msgstr "Lokale Mannschaft" #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "The file associated to this project doesn't exist." msgstr "Die diesem Projekt zugeordnete Datei existiert nicht." #: ../LongoMatch/Gui/MainWindow.cs:141 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "" "Falls sich der Ort der Datei geändert hat, versuchen Sie sie mit der " "Datenbankverwaltung zu ändern." #: ../LongoMatch/Gui/MainWindow.cs:152 msgid "An error occurred opening this project:" msgstr "Ein Fehler ist beim Öffnen des Projekts aufgetreten:" #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "Loading newly created project..." msgstr "Neu erzeugtes Projekt wird geladen …" #: ../LongoMatch/Gui/MainWindow.cs:213 msgid "An error occured saving the project:\n" msgstr "Ein Fehler ist beim Speichern des Projekts aufgetreten:\n" #: ../LongoMatch/Gui/MainWindow.cs:214 msgid "" "The video file and a backup of the project has been saved. Try to import it " "later:\n" msgstr "" "Die Videodatei und eine Sicherung des Projekts wurden gespeichert. Versuchen " "Sie, diese später zu importieren:\n" #: ../LongoMatch/Gui/MainWindow.cs:328 msgid "Do you want to close the current project?" msgstr "Wollen Sie das aktuelle Projekt überschreiben?" #: ../LongoMatch/Gui/MainWindow.cs:535 msgid "The actual project will be closed due to an error in the media player:" msgstr "" "Das aktuelle Projekt wird wegen eines Fehlers in der Medienwiedergabe " "geschlossen:" #: ../LongoMatch/Gui/MainWindow.cs:619 msgid "" "An error occured in the video capturer and the current project will be closed:" msgstr "" "Ein Fehler trat in der Videoaufnahme auf, daher wird das aktuelle Projekt " "geschlossen:" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Vorlagendateien" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:162 msgid "The template has been modified. Do you want to save it? " msgstr "Die Vorlage wurde geändert. Wollen Sie sie speichern?" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:184 msgid "Template name" msgstr "Vorlagenname" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:204 msgid "You cannot create a template with a void name" msgstr "Sie können keine Vorlage mit einem leeren Namen erzeugen." #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:210 msgid "A template with this name already exists" msgstr "Eine Vorlage dieses Namens existiert bereits" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:236 msgid "You can't delete the 'default' template" msgstr "Sie können die Vorlage »default« nicht entfernen" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:241 msgid "Do you really want to delete the template: " msgstr "Wollen sie wirklich die Vorlage löschen:" #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Dieses Kürzel wird bereits benutzt." #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "Bild wird aufgezeichnet:" #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Abgeschlossen" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:82 msgid "Low" msgstr "Niedrig" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:83 msgid "Normal" msgstr "Normal" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Good" msgstr "Gut" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:85 msgid "Extra" msgstr "Extra" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:172 msgid "Save Video As ..." msgstr "Video speichern unter …" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70 msgid "The Project has been edited, do you want to save the changes?" msgstr "Das Projekt wurde geändert, wollen Sie die Änderungen speichern?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:95 msgid "A Project is already using this file." msgstr "Diese Datei wird bereits von einem Projekt verwendet." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "This Project is actually in use." msgstr "Dieses Projekt wird derzeit verwendet." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:113 msgid "Close it first to allow its removal from the database" msgstr "Schließen Sie es zuerst, um es aus der Datenbank entfernen zu können" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:119 msgid "Do you really want to delete:" msgstr "Wollwn Sie Folgendes wirklich entfernen:" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "The Project you are trying to load is actually in use." msgstr "Das zu ladende Projekt wird derzeit verwendet." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "Close it first to edit it" msgstr "Zum Bearbeiten zuerst schließen" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:196 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "Projekt speichern" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "Datei speichern unter …" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:389 msgid "DirectShow Source" msgstr "DirectShow-Quelle" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:390 msgid "Unknown" msgstr "Unbekannt" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:438 msgid "Keep original size" msgstr "Originalgröße beibehalten" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:461 msgid "Output file" msgstr "Ausgabedatei" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:473 msgid "Open file..." msgstr "Datei öffnen …" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:490 msgid "Analyzing video file:" msgstr "Videodatei wird analysiert:" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:495 msgid "This file doesn't contain a video stream." msgstr "Diese Datei enthält keinen Videostrom." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:497 msgid "This file contains a video stream but its length is 0." msgstr "Diese Datei enthält zwar einen Videostrom, der aber die Länge 0 hat." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:564 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:473 msgid "Local Team Template" msgstr "Vorlage für lokale Mannschaft" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:577 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:426 msgid "Visitor Team Template" msgstr "Vorlage für Gastmannschaft" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:117 msgid "none" msgstr "nichts" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "" "Sie sind im Begriff, eine Kategorie und alle zugehörigen Spiele zu entfernen. " "Wollen Sie den Vorgang fortsetzen?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:126 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:135 msgid "A template needs at least one category" msgstr "Eine Vorlage benötigt mindestens eine Kategorie" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:217 msgid "New template" msgstr "Neue Vorlage" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:221 msgid "The template name is void." msgstr "Der Vorlagenname ist leer." #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:227 msgid "The template already exists. Do you want to overwrite it ?" msgstr "Die Vorlage existiert bereits. Wollen Sie sie überschreiben?" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:92 msgid "" "The file you are trying to load is not a playlist or it's not compatible with " "the current version" msgstr "" "Die von Ihnen gewählte Datei ist keine Wiedergabeliste oder ist inkompatibel " "mit der aktuellen Version" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:222 msgid "Open playlist" msgstr "Wiedergabeliste öffnen" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:237 msgid "New playlist" msgstr "Neue Wiedergabeliste" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:262 msgid "The playlist is empty!" msgstr "Die Wiedergabeliste ist leer!" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:271 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:215 msgid "Please, select a video file." msgstr "Bitte wählen Sie eine Videodatei." #: ../LongoMatch/Gui/Component/PlayerProperties.cs:90 msgid "Choose an image" msgstr "Bild auswählen" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:169 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:271 msgid "No" msgstr "Nein" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Dateiname" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "File length" msgstr "Dateigröße" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Video codec" msgstr "Video-Codec" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Audio codec" msgstr "Audio-Codec" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:122 msgid "Format" msgstr "Format" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Titel" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 msgid "Local team" msgstr "Lokale Mannschaft" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 msgid "Visitor team" msgstr "Gastmannschaft" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Season" msgstr "Saison" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Competition" msgstr "Spiel" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Result" msgstr "Ergebnis" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:138 msgid "Date" msgstr "Datum" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "Spiel entfernen" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "Neues Spiel hinzufügen" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Entfernen" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:81 msgid "None" msgstr "Nichts" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:157 msgid "No Team" msgstr "Keine Mannschaft" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:156 msgid "Edit" msgstr "Bearbeiten" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:171 msgid "Team Selection" msgstr "Mannschaftsauswahl" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:173 msgid "Add tag" msgstr "Schlagwort hinzufügen" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:174 msgid "Tag player" msgstr "Spieler kennzeichnen" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:176 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 msgid "Delete" msgstr "Entfernen" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:177 msgid "Delete key frame" msgstr "Schlüsselbild entfernen" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:178 msgid "Add to playlist" msgstr "Zur Wiedergabeliste hinzufügen" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:180 msgid "Export to PGN images" msgstr "Als PGN-Bilder exportieren" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:338 msgid "Do you want to delete the key frame for this play?" msgstr "Wollen Sie das Schlüsselbild für dieses Spiel entfernen?" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:66 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:71 msgid "Edit name" msgstr "Name bearbeiten" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:67 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:72 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:145 msgid "Sort Method" msgstr "Sortierungsmethode" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Foto" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:55 msgid "Play this match" msgstr "Dieses Spiel wiedergeben" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:60 msgid "Date of Birth" msgstr "Geburtsdatum" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:65 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:211 msgid "Nationality" msgstr "Nationalität" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:181 msgid "Height" msgstr "Größe" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:75 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:191 msgid "Weight" msgstr "Gewicht" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:80 msgid "Position" msgstr "Position" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:85 msgid "Number" msgstr "Nummer" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:270 msgid "Yes" msgstr "Ja" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:52 msgid "Lead Time" msgstr "Zeit der Führung" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:57 msgid "Lag Time" msgstr "Zeit des Rückstandes" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:62 msgid "Color" msgstr "Farbe" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:67 msgid "Hotkey" msgstr "Kürzel" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Titel bearbeiten" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "Aktuelle Wiedergaberate anwenden" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " sec" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Dauer" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "Wiedergaberate" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "Datei nicht gefunden" #: ../LongoMatch/DB/Project.cs:559 msgid "The file you are trying to load is not a valid project" msgstr "Die zu ladende Datei ist kein gültiges Projekt" #: ../LongoMatch/DB/DataBase.cs:137 msgid "Error retrieving the file info for project:" msgstr "Fehler beim Ermitteln der Dateiinformationen für Projekt:" #: ../LongoMatch/DB/DataBase.cs:138 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "" "Dieser Wert wird zurückgesetzt. Denken Sie daran, ihn später in der " "Projektverwaltung zu ändern." #: ../LongoMatch/DB/DataBase.cs:139 msgid "Change Me" msgstr "Ändern" #: ../LongoMatch/DB/DataBase.cs:216 msgid "The Project for this video file already exists." msgstr "Das Projekt für diese Videodatei existiert bereits." #: ../LongoMatch/DB/DataBase.cs:216 msgid "Try to edit it with the Database Manager" msgstr "Versuchen, mit der Datenbankverwaltung zu bearbeiten" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:36 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:18 msgid "New Project" msgstr "Neues Projekt" #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:56 msgid "New project using a video file" msgstr "Neues Projekt, basierend auf einer Videodatei." #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:86 msgid "Live project using a capture device" msgstr "Live-Projekt, basierend auf einem Aufnahmegerät" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:114 msgid "Live project using a fake capture device" msgstr "Live-Projekt, basierend auf einem simulierten Aufnahmegerät" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:58 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." msgstr "" "Ein Aufnahmeprojekt läuft derzeit.\n" "Sie können die aktuelle Aufnahme fortsetzen, abbrechen oder Ihr Projekt " "speichern.\n" "\n" "Warnung: Falls Sie das aktuelle Projekt abbrechen, gehen alle " "vorgenommenen Änderungen verloren." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:87 msgid "Return" msgstr "Zurück" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:112 msgid "Cancel capture" msgstr "Aufnahme abbrechen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:137 msgid "Stop capture and save project" msgstr "Aufnahme anhalten und Projekt speichern" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:16 msgid "Categories Template" msgstr "Kategorievorlage" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:67 msgid "Tools" msgstr "Werkzeuge" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:204 msgid "Color" msgstr "Farbe" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:225 msgid "Width" msgstr "Breite" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:234 msgid "2 px" msgstr "2 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:235 msgid "4 px" msgstr "4 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:236 msgid "6 px" msgstr "6 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:237 msgid "8 px" msgstr "8 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:238 msgid "10 px" msgstr "10 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:251 msgid "Transparency" msgstr "Transparenz" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:300 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Zeichnen-> D\n" "Löschen-> C\n" "Verbergen-> S\n" "Zeigen-> S\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:40 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:134 msgid "Projects Manager" msgstr "Projektverwaltung" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:96 msgid "Project Details" msgstr "Projektdetails" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:148 msgid "_Export" msgstr "_Exportieren" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:16 msgid "Select a HotKey" msgstr "Kürzel wählen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:29 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Drücken Sie eine Tastenkombination mit den »Umschalt«-\n" "oder »Alt«-Tasten. Tastenkürzel mit einer einzelnen Taste werden\n" "in Verbindung mit der Strg-Taste ebenfalls akzeptiert." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:55 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Laden Sie eine\n" "Wiedergabeliste\n" "oder erstellen Sie\n" "eine neue." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:16 msgid "Tag play" msgstr "Spiel kennzeichnen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:43 msgid "Projects Search:" msgstr "Projektsuche:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:58 msgid "Play:" msgstr "Spiel:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:66 msgid "Interval (frames/s):" msgstr "Intervall (Bilder/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:74 msgid "Series Name:" msgstr "Name der Serie:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:128 msgid "Export to PNG images" msgstr "Als PNG-Bilder exportieren" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:26 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 msgid "Drawing Tool" msgstr "Zeichenwerkzeug" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:70 msgid "Save to Project" msgstr "In Projekt speichern" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:97 msgid "Save to File" msgstr "In Datei speichern" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:82 msgid "Add Filter" msgstr "Filter hinzufügen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:115 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:116 msgid "_File" msgstr "_Datei" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:118 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:119 msgid "_New Project" msgstr "_Neues Projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:121 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:122 msgid "_Open Project" msgstr "Projekt ö_ffnen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:125 msgid "_Quit" msgstr "_Beenden" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 msgid "_Close Project" msgstr "Projekt s_chließen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:131 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 msgid "_Tools" msgstr "_Werkzeuge" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 msgid "Database Manager" msgstr "Datenbankverwaltung" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "Categories Templates Manager" msgstr "Kategorievorlagen-Verwaltung" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:34 msgid "Templates Manager" msgstr "Vorlagenverwaltung" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:141 msgid "_View" msgstr "_Ansicht" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:144 msgid "Full Screen" msgstr "Vollbild" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:147 msgid "Playlist" msgstr "Wiedergabeliste" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Capture Mode" msgstr "Aufnahmemodus" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 msgid "Analyze Mode" msgstr "Analysemodus" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:159 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:161 msgid "_Save Project" msgstr "Projekt _speichern" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:163 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:164 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:180 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 msgid "_Help" msgstr "_Hilfe" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:166 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 msgid "_About" msgstr "_Info" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 msgid "Export Project To CSV File" msgstr "Projekt in eine CSV-Datei exportieren" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:173 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 msgid "Teams Templates Manager" msgstr "Mannschaftsvorlagen-Verwaltung" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:176 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:178 msgid "Hide All Widgets" msgstr "Alle Widgets verbergen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:183 msgid "_Drawing Tool" msgstr "_Zeichenwerkzeug" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:187 msgid "_Import Project" msgstr "Projekt _importieren" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Free Capture Mode" msgstr "Freier Aufnahmemodus" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:246 msgid "Plays" msgstr "Spiele" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:395 msgid "Creating video..." msgstr "Video erzeugen …" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:16 msgid "Player Details" msgstr "Spieler-Details" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:14 msgid "TransparentDrawingArea" msgstr "TransparentDrawingArea" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:348 msgid "_Calendar" msgstr "_Kalender" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:86 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:52 msgid "Name:" msgstr "Name:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:151 msgid "Position:" msgstr "Position:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:161 msgid "Number:" msgstr "Nummer:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:171 msgid "Photo:" msgstr "Foto:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:201 msgid "Birth day" msgstr "Geburtstag" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:221 msgid "Plays this match:" msgstr "Wiedergegeben wird:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:22 msgid "Capture Progress" msgstr "Aufnahmevorgang" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:16 msgid "Category Details" msgstr "Kategorie-Details" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:32 msgid "Select template name" msgstr "Vorlagenname wählen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:76 msgid "Copy existent template:" msgstr "Vorhandene Vorlage kopieren:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:94 msgid "Players:" msgstr "Spieler:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:37 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "Eine neue Version von LongoMatch wurde auf www.ylatuya.es veröffentlicht!\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:47 msgid "The new version is " msgstr "Die neue Version ist" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:57 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "Sie können sie über diesen Link direkt herunterladen:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:67 msgid "label7" msgstr "label7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:18 msgid "Tag players" msgstr "Spieler kennzeichnen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:72 msgid "New Before" msgstr "Neu vor" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:100 msgid "New After" msgstr "Neu nach" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:128 msgid "Remove" msgstr "Entfernen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:191 msgid "Export" msgstr "Exportieren" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:16 msgid "Calendar" msgstr "Kalender" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:34 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "Sie haben bisher kein Spiel gekennzeichnet.\n" "Sie können neue Schlagwörter hinzufügen, indem Sie das\n" "Texteingabefeld benutzen und auf »Schlagwort hinzufügen« klicken." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:87 msgid "Add Tag" msgstr "Schlagwort hinzufügen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:52 msgid "Video Properties" msgstr "Video-Eigenschaften" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:76 msgid "Video Quality:" msgstr "Videoqualität:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:105 msgid "Size: " msgstr "Größe:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:111 msgid "Portable (4:3 - 320x240)" msgstr "Portable (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:112 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:114 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:115 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "Full HD 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:135 msgid "Ouput Format:" msgstr "Ausgabeformat:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:158 msgid "Enable Title Overlay" msgstr "Titelüberlappung aktivieren" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:169 msgid "Enable Audio (Experimental)" msgstr "Audio aktivieren (experimentell)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:187 msgid "File name: " msgstr "Dateiname:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:29 msgid "Cancel" msgstr "Abbrechen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:39 msgid "Tag new play" msgstr "Neues Spiel kennzeichnen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:80 msgid "Data Base Migration" msgstr "Datenbank-Migration" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:108 msgid "Playlists Migration" msgstr "Wiedergabelisten-Migration" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:136 msgid "Templates Migration" msgstr "Vorlagen-Migration" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:86 msgid "Color: " msgstr "Farbe:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:107 msgid "Change" msgstr "Ändern" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:127 msgid "HotKey:" msgstr "Kürzel:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:135 msgid "Competition:" msgstr "Spiel:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:177 msgid "File:" msgstr "Datei:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:295 msgid "-" msgstr "-" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:368 msgid "Visitor Team:" msgstr "Gastmannschaft:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:378 msgid "Score:" msgstr "Bewertung:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:388 msgid "Date:" msgstr "Datum:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:398 msgid "Local Team:" msgstr "Lokale Mannschaft:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:406 msgid "Categories Template:" msgstr "Kategorievorlage:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:450 msgid "Season:" msgstr "Saison:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:495 msgid "Audio Bitrate (kbps):" msgstr "Video-Bitrate (kbit/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:521 msgid "Device:" msgstr "Gerät:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:549 msgid "Video Size:" msgstr "Videogröße:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:559 msgid "Video Bitrate (kbps):" msgstr "Video-Bitrate (kbit/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:596 msgid "Video Format:" msgstr "Videoformat:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:606 msgid "Video encoding properties" msgstr "Eigenschaften der Video-Enkodierung" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:33 msgid "Lead time:" msgstr "Zeit der Führung:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lag time:" msgstr "Zeit des Rückstands:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:18 msgid "Open Project" msgstr "Projekt öffnen" #: ../LongoMatch/Handlers/EventsManager.cs:191 msgid "You can't create a new play if the capturer is not recording." msgstr "Sie können kein neues Spiel erstellen, wenn die Aufnahme nicht läuft." #: ../LongoMatch/Handlers/EventsManager.cs:224 msgid "The video edition has finished successfully." msgstr "Die Bearbeitung des Videos wurde erfolgreich abgeschlossen." #: ../LongoMatch/Handlers/EventsManager.cs:230 msgid "An error has occurred in the video editor." msgstr "Ein Fehler ist im Video-Editor aufgetreten." #: ../LongoMatch/Handlers/EventsManager.cs:231 msgid "Please, try again." msgstr "Bitte versuchen Sie es erneut." #: ../LongoMatch/Handlers/EventsManager.cs:266 msgid "" "The stop time is smaller than the start time. The play will not be added." msgstr "" "Die Stoppzeit liegt vor der Startzeit. Das Spiel wird nicht hinzugefügt." #: ../LongoMatch/Handlers/EventsManager.cs:341 msgid "Please, close the opened project to play the playlist." msgstr "" "Bitte schließen Sie das geöffnete Projekt, um die Wiedergabeliste abzuspielen." #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "Abschnitt" #: ../LongoMatch/IO/CSVExport.cs:83 ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "Startzeit" #: ../LongoMatch/IO/CSVExport.cs:84 ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "Stoppzeit" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "CSV wurde erfolgreich importiert." #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Schlagwort" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Spieler" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Kategorie" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "" "The project will be saved to a file. You can insert it later into the " "database using the \"Import project\" function once you copied the video file " "to your computer" msgstr "" "Das Projekt wird in einer Datei gespeichert. Sie können es später mit der " "Funktion »Projekt importieren« zur Datenbank hinzufügen, sobald Sie die " "Videodatei auf Ihren Rechner kopiert haben." #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "Projekt wurde erfolgreich gespeichert." #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "Projekt importieren" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "Fehler beim Importieren des Projekts:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "Das Projekt existiert bereits für Datei:" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "Wollen Sie dieses überschreiben?" #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "Projekt wurde erfolgreich importiert." #: ../LongoMatch/Utils/ProjectUtils.cs:193 msgid "No capture devices were found." msgstr "Es wurden keine Aufnahmegeräte gefunden." #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "This file is already used in another Project." msgstr "Diese Datei wird bereits in einem anderen Projekt verwendet." #: ../LongoMatch/Utils/ProjectUtils.cs:220 msgid "Select a different one to continue." msgstr "Wählen Sie eine andere, um fortzusetzen." #: ../LongoMatch/Utils/ProjectUtils.cs:244 msgid "Select Export File" msgstr "Exportdatei auswählen" #: ../LongoMatch/Utils/ProjectUtils.cs:273 msgid "Creating video thumbnails. This can take a while." msgstr "Videovorschauen werden erstellt. Dies kann einige Zeit dauern." #: ../CesarPlayer/Gui/CapturerBin.cs:261 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "Sie sind im Begriff, die laufende Aufnahme anzuhalten und zu beenden.\n" "Wollen Sie den Vorgang fortsetzen?" #: ../CesarPlayer/Gui/CapturerBin.cs:267 msgid "Finalizing file. This can take a while" msgstr "Datei wird finalisiert. Dies kann einige Zeit dauern." #: ../CesarPlayer/Gui/CapturerBin.cs:302 msgid "Device disconnected. The capture will be paused" msgstr "Gerät wurde getrennt. Die Aufnahme wird unterbrochen." #: ../CesarPlayer/Gui/CapturerBin.cs:311 msgid "Device reconnected.Do you want to restart the capture?" msgstr "" "Das Gerät wurde erneut angeschlossen, wollen Sie die Aufnahme neu starten?" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "Zeit:" #: ../CesarPlayer/Utils/Device.cs:83 msgid "Default device" msgstr "Standardgerät" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "Ungültige Videodatei:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:81 msgid "Fake live source" msgstr "Simulierte Live-Quelle" #~ msgid "Birth Day" #~ msgstr "Geburtstag" #~ msgid "Local Goals:" #~ msgstr "Lokale Tore:" #~ msgid "Visitor Goals:" #~ msgstr "Tore der Gäste:" #~ msgid "GConf configured device" #~ msgstr "Durch GConf konfiguriertes Gerät" #~ msgid "You can't delete the last section" #~ msgstr "Sie können die letzte Sektion nicht entfernen" #~ msgid "DV camera" #~ msgstr "DV-Kamera" #~ msgid "GConf Source" #~ msgstr "GConf-Quelle" longomatch-0.16.8/po/da.po0000644000175000017500000012461711601631101012225 00000000000000# Danish translation for longomatch. # Copyright (C) 2011 longomatch og nedenstående oversættere. # This file is distributed under the same license as the longomatch package. # Joe Hansen (joedalton2@yahoo.dk), 2010, 2011. # msgid "" msgstr "" "Project-Id-Version: longomatch master\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-03-13 12:16+0100\n" "PO-Revision-Date: 2011-02-27 11:00+0000\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch: Den digitale træner" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "Værktøj til videoanalyse for sportstrænere" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "Filen du forsøger at indlæse er ikke en gyldig afspilningsliste" #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Ikke defineret" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "navn" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "Sorter efter navn" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:69 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:154 msgid "Sort by start time" msgstr "Sorter efter starttidspunkt" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:155 msgid "Sort by stop time" msgstr "Sorter efter stoptidspunkt" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:156 msgid "Sort by duration" msgstr "Sorter efter varighed" #: ../LongoMatch/Time/MediaTimeNode.cs:354 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:47 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Navn" #: ../LongoMatch/Time/MediaTimeNode.cs:355 ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Hold" #: ../LongoMatch/Time/MediaTimeNode.cs:356 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Start" #: ../LongoMatch/Time/MediaTimeNode.cs:357 msgid "Stop" msgstr "Stop" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:285 msgid "Tags" msgstr "Mærker" #: ../LongoMatch/Main.cs:164 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "" "Nogle elementer fra den forrige version (database, skabeloner og/eller " "afspilningslister) er blevet fundet." #: ../LongoMatch/Main.cs:165 msgid "Do you want to import them?" msgstr "Ønsker du at importere dem?" #: ../LongoMatch/Main.cs:230 msgid "The application has finished with an unexpected error." msgstr "Programmet lukkede ned med en uventet fejl." #: ../LongoMatch/Main.cs:231 msgid "A log has been saved at: " msgstr "En log er blevet gemt til: " #: ../LongoMatch/Main.cs:232 msgid "Please, fill a bug report " msgstr "Udfyld venligst en fejlrapport " #: ../LongoMatch/Gui/MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:272 msgid "Visitor Team" msgstr "Udehold" #: ../LongoMatch/Gui/MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:259 msgid "Local Team" msgstr "Hjemmehold" #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "The file associated to this project doesn't exist." msgstr "Filen forbundet med dette projekt eksisterer ikke." #: ../LongoMatch/Gui/MainWindow.cs:141 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "" "Hvis placeringen af filen har ændret sig så forsøg at redigere den med " "databasehåndteringen." #: ../LongoMatch/Gui/MainWindow.cs:152 msgid "An error occurred opening this project:" msgstr "Der opstod en fejl under åbning af dette projekt:" #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "Loading newly created project..." msgstr "Indlæser netop oprettet projekt..." #: ../LongoMatch/Gui/MainWindow.cs:213 msgid "An error occured saving the project:\n" msgstr "Der opstod en fejl under åbning af dette projekt:\n" #: ../LongoMatch/Gui/MainWindow.cs:214 msgid "" "The video file and a backup of the project has been saved. Try to import it " "later:\n" msgstr "" "Videofilen og en sikkerhedskopi af projektet er blevet gemt. Prøv at " "importere den senere:\n" #: ../LongoMatch/Gui/MainWindow.cs:328 msgid "Do you want to close the current project?" msgstr "Vil du lukke det aktuelle projekt?" #: ../LongoMatch/Gui/MainWindow.cs:535 msgid "The actual project will be closed due to an error in the media player:" msgstr "" "Det aktuelle projekt vil blive lukket på grund af en fejl i medieafspilleren:" #: ../LongoMatch/Gui/MainWindow.cs:619 msgid "" "An error occured in the video capturer and the current project will be " "closed:" msgstr "" "Der opstod en fejl i videooptageren og det aktuelle projekt vil blive lukket:" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Skabelonfiler" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:162 msgid "The template has been modified. Do you want to save it? " msgstr "Skabelonen er blevet ændret. Ønsker du at gemme den? " #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:184 msgid "Template name" msgstr "Skabelonnavn" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:204 msgid "You cannot create a template with a void name" msgstr "Du kan ikke oprette en skabelon med et ugyldigt navn" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:210 msgid "A template with this name already exists" msgstr "En skabelon med dette navn eksisterer allerede" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:236 msgid "You can't delete the 'default' template" msgstr "Du kan ikke slette standardskabelonen" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:241 msgid "Do you really want to delete the template: " msgstr "Ønsker du virkelig at slette skabelonen: " #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Genvejstasten er allerede i brug." #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "Optager ramme: " #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Færdig" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:82 msgid "Low" msgstr "Lav" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:83 msgid "Normal" msgstr "Normal" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Good" msgstr "God" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:85 msgid "Extra" msgstr "Ekstra" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:172 msgid "Save Video As ..." msgstr "Gem video som..." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70 msgid "The Project has been edited, do you want to save the changes?" msgstr "Projektet er blevet redigeret, ønsker du at gemme ændringerne?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:95 msgid "A Project is already using this file." msgstr "Et projekt bruger allerede denne fil." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "This Project is actually in use." msgstr "Dette projekt er i brug." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:113 msgid "Close it first to allow its removal from the database" msgstr "Luk projektet først for at muliggøre at det kan fjernes fra databasen" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:119 msgid "Do you really want to delete:" msgstr "Er du sikker på, at du vil slette:" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "The Project you are trying to load is actually in use." msgstr "Projektet du forsøger at indlæse er i brug." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "Close it first to edit it" msgstr "Luk projektet først for at redigere det" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:196 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "Gem projekt" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "Gem fil som..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:389 msgid "DirectShow Source" msgstr "Kilde for DirectShow" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:390 msgid "Unknown" msgstr "Ukendt" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:438 msgid "Keep original size" msgstr "Bevar oprindelig størrelse" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:461 msgid "Output file" msgstr "Uddatafil..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:473 msgid "Open file..." msgstr "Åbn fil..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:490 msgid "Analyzing video file:" msgstr "Analyserer videofil:" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:495 msgid "This file doesn't contain a video stream." msgstr "Denne fil indeholder ikke en videostrøm." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:497 msgid "This file contains a video stream but its length is 0." msgstr "Denne fil indeholder en videostrøm men videostrømmens længde er 0." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:564 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:473 msgid "Local Team Template" msgstr "Skabelon for hjemmeholdet" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:577 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:426 msgid "Visitor Team Template" msgstr "Skabelon for udeholdet" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:117 msgid "none" msgstr "ingen" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "" "Du er ved at slette en kategori, og alle de kampe som er tilføjet denne " "kategori. Vil du fortsætte?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:126 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:135 msgid "A template needs at least one category" msgstr "En skabelon kræver mindst en kategori" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:217 msgid "New template" msgstr "Ny skabelon" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:221 msgid "The template name is void." msgstr "Skabelonnavnet er ugyldigt." #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:227 msgid "The template already exists. Do you want to overwrite it ?" msgstr "Skabelonen findes allerede. Ønsker du at overskrive den?" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:92 msgid "" "The file you are trying to load is not a playlist or it's not compatible " "with the current version" msgstr "" "Filen du forsøger at indlæse er ikke en afspilningsliste eller er ikke " "kompatibel med den aktuelle version" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:222 msgid "Open playlist" msgstr "Åbn afspilningsliste" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:237 msgid "New playlist" msgstr "Ny afspilningsliste" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:262 msgid "The playlist is empty!" msgstr "Afspilningslisten er tom!" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:271 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:215 msgid "Please, select a video file." msgstr "Vælg venligst en videofil." #: ../LongoMatch/Gui/Component/PlayerProperties.cs:90 msgid "Choose an image" msgstr "Vælg et billede" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:169 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:271 msgid "No" msgstr "Nej" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Filnavn" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "File length" msgstr "Fillængde" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Video codec" msgstr "Videocodec" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Audio codec" msgstr "Lydcodec" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:122 msgid "Format" msgstr "Format" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Titel" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 msgid "Local team" msgstr "Hjemmehold" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 msgid "Visitor team" msgstr "Udehold" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Season" msgstr "Sæson" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Competition" msgstr "Konkurrence" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Result" msgstr "Resultat" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:138 msgid "Date" msgstr "Dato" #: ../LongoMatch/Gui/Component/TimeScale.cs:136 msgid "Delete Play" msgstr "Slet kamp" #: ../LongoMatch/Gui/Component/TimeScale.cs:137 msgid "Add New Play" msgstr "Tilføj ny kamp" #: ../LongoMatch/Gui/Component/TimeScale.cs:229 msgid "Delete " msgstr "Slet " #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:81 msgid "None" msgstr "Ingen" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:157 msgid "No Team" msgstr "Intet hold" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:156 msgid "Edit" msgstr "Rediger" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:171 msgid "Team Selection" msgstr "Valg af hold" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:173 msgid "Add tag" msgstr "Tilføj mærke" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:174 msgid "Tag player" msgstr "Mærk spiller" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:176 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 msgid "Delete" msgstr "Slet" # Hvis det er videorelateret, er der visse billeder i løbet af en video, # som er gemt i deres fulde form, i modsætning til alle de følgende, som # indkodes som forskelle i forhold til sådan et billede. Sådan et # billede kaldes et nøglebillede (key frame), men jeg er noget í tvivl # om det er det der hentydes til her. #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:177 msgid "Delete key frame" msgstr "Slet nøglebillede" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:178 msgid "Add to playlist" msgstr "Tilføj til afspilningsliste" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:180 msgid "Export to PGN images" msgstr "Eksporter til PGN-billeder" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:338 msgid "Do you want to delete the key frame for this play?" msgstr "Ønsker du at slette nøglebilledet for denne kamp?" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:66 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:71 msgid "Edit name" msgstr "Rediger navn" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:67 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:72 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:145 msgid "Sort Method" msgstr "Sorteringsmetode" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Foto" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:55 msgid "Play this match" msgstr "Afspil denne kamp" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:60 msgid "Date of Birth" msgstr "Fødselsdato" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:65 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:211 msgid "Nationality" msgstr "Nationalitet" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:181 msgid "Height" msgstr "Højde" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:75 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:191 msgid "Weight" msgstr "Vægt" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:80 msgid "Position" msgstr "Position" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:85 msgid "Number" msgstr "Nummer" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:270 msgid "Yes" msgstr "Ja" # den tid en kamp varer? Længde, varighed (men der er også en streng der hedder duration. #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:52 msgid "Lead Time" msgstr "Varighed" # den resterende tid af en kamp? #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:57 msgid "Lag Time" msgstr "Resterende tid" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:62 msgid "Color" msgstr "Farve" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:67 msgid "Hotkey" msgstr "Genvejstast" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Rediger titel" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "Anvend aktuel afspilningshastighed" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " sek" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Varighed" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "Afspilningshastighed" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "Fil ikke fundet" #: ../LongoMatch/DB/Project.cs:559 msgid "The file you are trying to load is not a valid project" msgstr "Filen du forsøger at indlæse er ikke et gyldigt projekt" #: ../LongoMatch/DB/DataBase.cs:137 msgid "Error retrieving the file info for project:" msgstr "Fejl under indhentning af filinfoen for projektet:" #: ../LongoMatch/DB/DataBase.cs:138 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "" "Denne værdi vil blive nulstillet. Husk at ændre den senere med projektets " "håndtering" #: ../LongoMatch/DB/DataBase.cs:139 msgid "Change Me" msgstr "Husk at ændre mig" #: ../LongoMatch/DB/DataBase.cs:216 msgid "The Project for this video file already exists." msgstr "Projektet for denne videofil eksisterer allerede." #: ../LongoMatch/DB/DataBase.cs:216 msgid "Try to edit it with the Database Manager" msgstr "Prøv at redigere den med databasehåndteringen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:36 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:18 msgid "New Project" msgstr "Nyt projekt" # Er det ikke nærmere "Nyt projekt ud fra videofil", "Nyt projekt med # basis i en videofil"? #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:56 msgid "New project using a video file" msgstr "Nyt projekt der bruger en videofil." #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:86 msgid "Live project using a capture device" msgstr "Liveprojekt der bruger en optagerenhed" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:114 msgid "Live project using a fake capture device" msgstr "Liveprojekt der bruger en falsk optagerenhed" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:58 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." "" msgstr "" "Et optagelsesprojekt kører nu.\n" "Du kan fortsætte med den aktuelle optagelse, afbryde den eller gemme " "projektet. \n" "\n" "Advarsel: Hvis du afbryder det aktuelle projekt, vil alle dine ændringer " "gå tabt." # retur, gå tilbage #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:87 msgid "Return" msgstr "Gå tilbage" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:112 msgid "Cancel capture" msgstr "Afbryd optagelse" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:137 msgid "Stop capture and save project" msgstr "Stop optagelse og gem projektet" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:16 msgid "Categories Template" msgstr "Skabelon for kategorier" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:67 msgid "Tools" msgstr "Værktøjer" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:204 msgid "Color" msgstr "Farve" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:225 msgid "Width" msgstr "Bredde" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:234 msgid "2 px" msgstr "2 p." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:235 msgid "4 px" msgstr "4 p." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:236 msgid "6 px" msgstr "6 p." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:237 msgid "8 px" msgstr "8 p." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:238 msgid "10 px" msgstr "10 p." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:251 msgid "Transparency" msgstr "Gennemsigtighed" # hvad er dette og hvorfor S under Hide (skulle det ikke være H). #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:300 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Tegn-> T\n" "Ryd-> R\n" "Skjul-> S\n" "Vis-> V\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:40 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:134 msgid "Projects Manager" msgstr "Projekthåndtering" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:96 msgid "Project Details" msgstr "Projektdetaljer" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:148 msgid "_Export" msgstr "_Eksporter" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:16 msgid "Select a HotKey" msgstr "Vælg en genvejstast" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:29 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Tryk på en tastekombination med brug af Skift-tast eller\n" "Alt-tast. Genvejstaster med en enkelt tast kan også bruges\n" "med Ctrl+tast." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:55 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Indlæs en afspilnings-\n" "liste eller opret\n" "en ny." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:16 msgid "Tag play" msgstr "Mærk kamp" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:43 msgid "Projects Search:" msgstr "Projektsøgning:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:58 msgid "Play:" msgstr "Kamp:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:66 msgid "Interval (frames/s):" msgstr "Interval (billeder/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:74 msgid "Series Name:" msgstr "Navn for ligaer:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:128 msgid "Export to PNG images" msgstr "Eksporter til PNG-billeder" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:26 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 msgid "Drawing Tool" msgstr "Tegneværktøj" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:70 msgid "Save to Project" msgstr "Gem til projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:97 msgid "Save to File" msgstr "Gem til fil" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:82 msgid "Add Filter" msgstr "Tilføj filter" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:115 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:116 msgid "_File" msgstr "_Fil" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:118 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:119 msgid "_New Project" msgstr "_Nyt projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:121 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:122 msgid "_Open Project" msgstr "_Åbn projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:125 msgid "_Quit" msgstr "_Afslut" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 msgid "_Close Project" msgstr "_Luk projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:131 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 msgid "_Tools" msgstr "_Værktøjer" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 msgid "Database Manager" msgstr "Databasehåndtering" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "Categories Templates Manager" msgstr "Skabelonhåndtering for kategorier" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:34 msgid "Templates Manager" msgstr "Skabelonhåndtering" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:141 msgid "_View" msgstr "_Vis" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:144 msgid "Full Screen" msgstr "Fuldskærm" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:147 msgid "Playlist" msgstr "Afspilningsliste" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Capture Mode" msgstr "Optagelsestilstand" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 msgid "Analyze Mode" msgstr "Analysetilstand" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:159 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:161 msgid "_Save Project" msgstr "_Gem projekt" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:163 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:164 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:180 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 msgid "_Help" msgstr "_Hjælp" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:166 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 msgid "_About" msgstr "_Om" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 msgid "Export Project To CSV File" msgstr "Eksporter projekt til CSC-fil" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:173 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 msgid "Teams Templates Manager" msgstr "Skabelonhåndtering for hold" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:176 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:178 msgid "Hide All Widgets" msgstr "Skjul alle kontroller" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:183 msgid "_Drawing Tool" msgstr "_Tegneværktøj" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:187 msgid "_Import Project" msgstr "_Importer projekt" # Fri, ubegrænset #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Free Capture Mode" msgstr "Ubegrænset optagelsestilstand" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:246 msgid "Plays" msgstr "Kampe" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:395 msgid "Creating video..." msgstr "Opretter video..." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:16 msgid "Player Details" msgstr "Spillerdetaljer" # Gennemsigtigt tegneområde, forespurgt i fejlrapport #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:14 msgid "TransparentDrawingArea" msgstr "TransparentDrawingArea" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:348 msgid "_Calendar" msgstr "_Kalender" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:86 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:52 msgid "Name:" msgstr "Navn:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:151 msgid "Position:" msgstr "Position:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:161 msgid "Number:" msgstr "Nummer:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:171 msgid "Photo:" msgstr "Foto:" # to engelske strenge med samme indhold? #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:201 msgid "Birth day" msgstr "Fødselsdag" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:221 msgid "Plays this match:" msgstr "Afspiller denne kamp:" # optagelsesfremgang #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:22 msgid "Capture Progress" msgstr "Optagelse i gang" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:16 msgid "Category Details" msgstr "Kategoridetaljer" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:32 msgid "Select template name" msgstr "Vælg skabelonnavn" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:76 msgid "Copy existent template:" msgstr "Kopier eksisterende skabelon:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:94 msgid "Players:" msgstr "Spillere:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:37 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "En ny version af LongoMatch er blevet udgivet på www.ylatuya.es!\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:47 msgid "The new version is " msgstr "Den nye version er " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:57 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "Du kan hente den via denne henvisning:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:67 msgid "label7" msgstr "etiket7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:18 msgid "Tag players" msgstr "Mærk spillere" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:72 msgid "New Before" msgstr "Ny før" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:100 msgid "New After" msgstr "Ny efter" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:128 msgid "Remove" msgstr "Fjern" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:191 msgid "Export" msgstr "Eksporter" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:16 msgid "Calendar" msgstr "Kalender" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:34 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "Du har endnu ikke mærket nogle kampe.\n" "Du kan tilføje nye mærker med tekstindtastningen og klikke \"Tilføj mærke\"" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:87 msgid "Add Tag" msgstr "Tilføj mærke" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:52 msgid "Video Properties" msgstr "Videoegenskaber" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:76 msgid "Video Quality:" msgstr "Videokvalitet:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:105 msgid "Size: " msgstr "Størrelse: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:111 msgid "Portable (4:3 - 320x240)" msgstr "Portabel (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:112 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "TV (4:3 - 720x576)" msgstr "Tv (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:114 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:115 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "Full HD 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:135 msgid "Ouput Format:" msgstr "Uddataformat:" # belægning, overlejring andet? #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:158 msgid "Enable Title Overlay" msgstr "Slå titelbelægning til" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:169 msgid "Enable Audio (Experimental)" msgstr "Slå lyd til (under udvikling)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:187 msgid "File name: " msgstr "Filnavn: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:29 msgid "Cancel" msgstr "Annuller" # Jeg forstår noget andet ved opmærk. Mærk ny kamp er én markering. Opmærk kan # være mange mærker/markeringen i selve kampen. Men er da godt nok nu lidt i # tvivl om hvad der rent faktisk sker her. #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:39 msgid "Tag new play" msgstr "Mærk ny kamp" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:80 msgid "Data Base Migration" msgstr "Databasemigrering" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:108 msgid "Playlists Migration" msgstr "Migrering af afspilningslister" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:136 msgid "Templates Migration" msgstr "Migrering af skabeloner" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:86 msgid "Color: " msgstr "Farve: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:107 msgid "Change" msgstr "Ændring" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:127 msgid "HotKey:" msgstr "Genvejstast:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:135 msgid "Competition:" msgstr "Konkurrence:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:177 msgid "File:" msgstr "Fil:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:295 msgid "-" msgstr "-" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:368 msgid "Visitor Team:" msgstr "Udehold:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:378 msgid "Score:" msgstr "Point:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:388 msgid "Date:" msgstr "Dato:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:398 msgid "Local Team:" msgstr "Hjemmehold:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:406 msgid "Categories Template:" msgstr "Skabeloner for kategorier:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:450 msgid "Season:" msgstr "Sæson:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:495 msgid "Audio Bitrate (kbps):" msgstr "Lydbitrate (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:521 msgid "Device:" msgstr "Enhed:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:549 msgid "Video Size:" msgstr "Videostørrelse:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:559 msgid "Video Bitrate (kbps):" msgstr "Videobitrate (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:596 msgid "Video Format:" msgstr "Videoformat:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:606 msgid "Video encoding properties" msgstr "Egenskaber for videokodning" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:33 msgid "Lead time:" msgstr "Varighed:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lag time:" msgstr "Resterende tid:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:18 msgid "Open Project" msgstr "Åbn projekt" # hvis, når #: ../LongoMatch/Handlers/EventsManager.cs:191 msgid "You can't create a new play if the capturer is not recording." msgstr "Du kan ikke oprette en ny kamp, når optageren ikke optager." #: ../LongoMatch/Handlers/EventsManager.cs:224 msgid "The video edition has finished successfully." msgstr "Videoredigeringen er afsluttet." #: ../LongoMatch/Handlers/EventsManager.cs:230 msgid "An error has occurred in the video editor." msgstr "Der opstod en fejl i videoredigeringen." #: ../LongoMatch/Handlers/EventsManager.cs:231 msgid "Please, try again." msgstr "Prøv igen." #: ../LongoMatch/Handlers/EventsManager.cs:267 msgid "" "The stop time is smaller than the start time. The play will not be added." msgstr "" "Stoptidspunktet er før starttidspunktet. Kampen vil ikke blive tilføjet." #: ../LongoMatch/Handlers/EventsManager.cs:342 msgid "Please, close the opened project to play the playlist." msgstr "Luk venligst det åbnede projekt for at igangsætte afspilningslisten." #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "Afsnit" #: ../LongoMatch/IO/CSVExport.cs:83 ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "Starttidspunkt" #: ../LongoMatch/IO/CSVExport.cs:84 ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "Stoptidspunkt" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "Eksport til CVS fuldført." #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Mærke" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Spiller" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Kategori" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "" "The project will be saved to a file. You can insert it later into the " "database using the \"Import project\" function once you copied the video " "file to your computer" msgstr "" "Projektet vil blive gemt til en fil. Du kan indsætte projektet senere i " "databasen med brug af funktionen \"Importer projekt\", når du har kopieret " "videofilen til din computer." # ændret til bestemt form her. #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "Projektet gemt." #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "Importer projekt" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "Fejl under import af projekt:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "Et projekt eksisterer allerede for filen:" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "Vil du overskrive den?" # ændret til bestemt form her. #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "Projektet blev importeret." # "Ingen optageenheder blev fundet." #: ../LongoMatch/Utils/ProjectUtils.cs:193 msgid "No capture devices were found." msgstr "Ingen optagelsesenheder blev fundet." #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "This file is already used in another Project." msgstr "Denne fil er allerede brugt i et andet projekt." #: ../LongoMatch/Utils/ProjectUtils.cs:220 msgid "Select a different one to continue." msgstr "Vælg en anden for at fortsætte." #: ../LongoMatch/Utils/ProjectUtils.cs:244 msgid "Select Export File" msgstr "Vælg eksportfil" #: ../LongoMatch/Utils/ProjectUtils.cs:273 msgid "Creating video thumbnails. This can take a while." msgstr "Opretter videominiaturebilleder. Dette kan tage et stykke tid." #: ../CesarPlayer/Gui/CapturerBin.cs:261 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "Du er ved stoppe og afslutte den aktuelle optagelse.\n" "Vil du fortsætte?" #: ../CesarPlayer/Gui/CapturerBin.cs:267 msgid "Finalizing file. This can take a while" msgstr "Afslutter fil. Dette kan tage et stykke tid" #: ../CesarPlayer/Gui/CapturerBin.cs:302 msgid "Device disconnected. The capture will be paused" msgstr "Enhed afbrudt. Optagelsen bliver sat på pause" # engelsk fejl manglende mellemrum # "Vil du starte optagelsen forfra?" (det tror jeg) eller # "Vil du fortsætte med at optage?" #: ../CesarPlayer/Gui/CapturerBin.cs:311 msgid "Device reconnected.Do you want to restart the capture?" msgstr "Enhed forbundet igen. Ønsker du at starte optagelsen forfra?" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "Tid:" #: ../CesarPlayer/Utils/Device.cs:83 msgid "Default device" msgstr "Standardenhed" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "Ugyldig videofil:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:81 msgid "Fake live source" msgstr "Falsk livekilde" #~ msgid "Birth Day" #~ msgstr "Fødselsdag" #~ msgid "Local Goals:" #~ msgstr "Mål for hjemmeholdet:" #~ msgid "Visitor Goals:" #~ msgstr "Mål for udeholdet:" longomatch-0.16.8/po/fr.po0000644000175000017500000012522111601631101012240 00000000000000# French translation of longomatch. # Copyright (C) 2010 Listed translators # This file is distributed under the same license as the longomatch package. # # Laurent Coudeur , 2010. # G. Baylard , 2010. # Bruno Brouard , 2010. # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=longomatch&component=general\n" "POT-Creation-Date: 2010-11-14 20:51+0000\n" "PO-Revision-Date: 2010-04-25 22:40+0100\n" "Last-Translator: Bruno Brouard \n" "Language-Team: GNOME French Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch : l'entraîneur numérique" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "Outil d'analyse de vidéos sportives pour entraîneurs" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "" "Le fichier que vous essayez de charger n'est pas une liste de lecture valide" #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Non défini" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "nom" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "Trier par nom" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:69 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:154 msgid "Sort by start time" msgstr "Trier par heure de début" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:155 msgid "Sort by stop time" msgstr "Trier par heure de fin" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:156 msgid "Sort by duration" msgstr "Trier par durée" #: ../LongoMatch/Time/MediaTimeNode.cs:354 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:47 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Nom" #: ../LongoMatch/Time/MediaTimeNode.cs:355 ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Équipe" #: ../LongoMatch/Time/MediaTimeNode.cs:356 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Début" #: ../LongoMatch/Time/MediaTimeNode.cs:357 msgid "Stop" msgstr "Fin" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:285 msgid "Tags" msgstr "Étiquettes" #: ../LongoMatch/Main.cs:164 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "" "Certains éléments de la version précédente (base de données, modèles et/ou " "listes de lecture) ont été trouvés." #: ../LongoMatch/Main.cs:165 msgid "Do you want to import them?" msgstr "Voulez-vous les importer ?" #: ../LongoMatch/Main.cs:230 msgid "The application has finished with an unexpected error." msgstr "Le programme s'est terminé sur une erreur inattendue." #: ../LongoMatch/Main.cs:231 msgid "A log has been saved at: " msgstr "Un journal a été enregistré sous : " #: ../LongoMatch/Main.cs:232 msgid "Please, fill a bug report " msgstr "Veuillez remplir un rapport d'anomalie " #: ../LongoMatch/Gui/MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:272 msgid "Visitor Team" msgstr "Équipe visiteurs" #: ../LongoMatch/Gui/MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:259 msgid "Local Team" msgstr "Équipe locale" #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "The file associated to this project doesn't exist." msgstr "Le fichier associé à ce projet n'existe pas." #: ../LongoMatch/Gui/MainWindow.cs:141 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "" "Si le fichier a changé d'emplacement, essayez de le modifier avec le " "gestionnaire de projets." #: ../LongoMatch/Gui/MainWindow.cs:152 msgid "An error occurred opening this project:" msgstr "Une erreur est survenue à l'ouverture de ce projet :" #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "Loading newly created project..." msgstr "Chargement du nouveau projet créé..." #: ../LongoMatch/Gui/MainWindow.cs:213 msgid "An error occured saving the project:\n" msgstr "Une erreur est survenue à l'enregistrement du projet :\n" #: ../LongoMatch/Gui/MainWindow.cs:214 msgid "" "The video file and a backup of the project has been saved. Try to import it " "later:\n" msgstr "" "Le fichier vidéo et une sauvegarde du projet ont été enregistrés. Essayez de " "l'importer plus tard :\n" #: ../LongoMatch/Gui/MainWindow.cs:328 msgid "Do you want to close the current project?" msgstr "Voulez-vous fermer le projet actuel ?" #: ../LongoMatch/Gui/MainWindow.cs:535 msgid "The actual project will be closed due to an error in the media player:" msgstr "" "Le projet actuel va être fermé à cause d'une erreur dans le lecteur de " "média :" #: ../LongoMatch/Gui/MainWindow.cs:619 msgid "" "An error occured in the video capturer and the current project will be " "closed:" msgstr "" "Une erreur est survenue pendant la capture de la vidéo et le projet actuel " "va être fermé :" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Fichiers modèles" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:162 msgid "The template has been modified. Do you want to save it? " msgstr "Le modèle a été modifié. Voulez-vous l'enregistrer ?" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:184 msgid "Template name" msgstr "Nom du modèle" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:204 msgid "You cannot create a template with a void name" msgstr "Impossible de créer un modèle avec un nom vide" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:210 msgid "A template with this name already exists" msgstr "Un modèle portant ce nom existe déjà" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:236 msgid "You can't delete the 'default' template" msgstr "Impossible de supprimer le modèle « par défaut »" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:241 msgid "Do you really want to delete the template: " msgstr "Voulez-vous vraiment supprimer le modèle : " #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Ce raccourci clavier est déjà utilisé." #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "Cadre de capture : " #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Terminée" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:82 msgid "Low" msgstr "Basse" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:83 msgid "Normal" msgstr "Normale" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Good" msgstr "Bonne" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:85 msgid "Extra" msgstr "Supérieure" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:172 msgid "Save Video As ..." msgstr "Enregistrer la vidéo sous ..." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70 msgid "The Project has been edited, do you want to save the changes?" msgstr "Le projet a été modifié, voulez-vous enregistrer les modifications ?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:95 msgid "A Project is already using this file." msgstr "Un projet utilise déjà ce fichier." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "This Project is actually in use." msgstr "Ce projet est actuellement ouvert." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:113 msgid "Close it first to allow its removal from the database" msgstr "Fermez-le pour autoriser sa suppression de la base de données" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:119 msgid "Do you really want to delete:" msgstr "Voulez-vous vraiment supprimer :" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "The Project you are trying to load is actually in use." msgstr "Le projet que vous essayez de charger est actuellement ouvert." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "Close it first to edit it" msgstr "Fermez-le pour pouvoir le modifier" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:196 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "Enregistrer le projet" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "Enregistrer le fichier sous..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:389 msgid "DirectShow Source" msgstr "Source DirectShow" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:390 msgid "Unknown" msgstr "Inconnu" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:438 msgid "Keep original size" msgstr "Conserver la taille d'origine" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:461 msgid "Output file" msgstr "Fichier de sortie" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:473 msgid "Open file..." msgstr "Ouvrir le fichier..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:490 msgid "Analyzing video file:" msgstr "Analyse du fichier vidéo :" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:495 msgid "This file doesn't contain a video stream." msgstr "Ce fichier ne contient pas de flux vidéo." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:497 msgid "This file contains a video stream but its length is 0." msgstr "" "Ce fichier contient un flux vidéo, mais celui-ci est de longueur nulle." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:564 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:473 msgid "Local Team Template" msgstr "Modèle d'équipe locale" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:577 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:426 msgid "Visitor Team Template" msgstr "Modèle d'équipe visiteurs" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:117 msgid "none" msgstr "aucun" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "" "Vous allez supprimer une catégorie et toutes les actions jointes à celle‑ci. " "Voulez-vous continuer ?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:126 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:135 msgid "A template needs at least one category" msgstr "Un modèle doit comporter au moins une catégorie" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:217 msgid "New template" msgstr "Nouveau modèle" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:221 msgid "The template name is void." msgstr "Le nom du modèle est vide." # missing space in english text after full stop #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:227 msgid "The template already exists. Do you want to overwrite it ?" msgstr "Le modèle existe déjà. Voulez-vous l'écraser ?" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:92 msgid "" "The file you are trying to load is not a playlist or it's not compatible " "with the current version" msgstr "" "Le fichier que vous essayez de charger n'est pas une liste de lecture ou " "n'est pas compatible avec la version actuelle" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:222 msgid "Open playlist" msgstr "Ouvrir une liste de lecture" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:237 msgid "New playlist" msgstr "Nouvelle liste de lecture" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:262 msgid "The playlist is empty!" msgstr "La liste de lecture est vide !" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:271 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:215 msgid "Please, select a video file." msgstr "Sélectionnez un fichier vidéo." #: ../LongoMatch/Gui/Component/PlayerProperties.cs:90 msgid "Choose an image" msgstr "Choisir une image" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:169 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:271 msgid "No" msgstr "Non" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Nom du fichier" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "File length" msgstr "Longueur du fichier" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Video codec" msgstr "Codec vidéo" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Audio codec" msgstr "Codec audio" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:122 msgid "Format" msgstr "Formater" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Titre" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 msgid "Local team" msgstr "Équipe locale" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 msgid "Visitor team" msgstr "Équipe visiteurs" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Season" msgstr "Saison" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Competition" msgstr "Compétition" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Result" msgstr "Résultat" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:138 msgid "Date" msgstr "Date" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "Supprimer l'action" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "Ajouter une nouvelle action" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Supprimer " #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:81 msgid "None" msgstr "Aucun" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:157 msgid "No Team" msgstr "Pas d'équipe" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:156 msgid "Edit" msgstr "Modifier" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:171 msgid "Team Selection" msgstr "Sélection de l'équipe" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:173 msgid "Add tag" msgstr "Ajouter une étiquette" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:174 msgid "Tag player" msgstr "Étiqueter un joueur" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:176 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 msgid "Delete" msgstr "Supprimer" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:177 msgid "Delete key frame" msgstr "Supprimer l'image clé" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:178 msgid "Add to playlist" msgstr "Ajouter à la liste de lecture" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:180 msgid "Export to PGN images" msgstr "Exporter en images PGN" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:338 msgid "Do you want to delete the key frame for this play?" msgstr "Voulez-vous supprimer l'image clé pour cette action ?" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:66 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:71 msgid "Edit name" msgstr "Modifier le nom" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:67 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:72 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:145 msgid "Sort Method" msgstr "Méthode de tri" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Photo" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:55 msgid "Play this match" msgstr "Jouer ce match" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:60 msgid "Date of Birth" msgstr "Date de naissance" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:65 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:211 msgid "Nationality" msgstr "Nationalité" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:181 msgid "Height" msgstr "Taille" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:75 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:191 msgid "Weight" msgstr "Poids" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:80 msgid "Position" msgstr "Position" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:85 msgid "Number" msgstr "Numéro" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:270 msgid "Yes" msgstr "Oui" # other option is délai de mise en œuvre #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:52 msgid "Lead Time" msgstr "Délai avant" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:57 msgid "Lag Time" msgstr "Délai après" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:62 msgid "Color" msgstr "Couleur" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:67 msgid "Hotkey" msgstr "Raccourci clavier" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Modifier le titre" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "Appliquer la vitesse de lecture actuelle" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " s" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Durée" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "Vitesse de lecture" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "Fichier introuvable" #: ../LongoMatch/DB/Project.cs:559 msgid "The file you are trying to load is not a valid project" msgstr "Le fichier que vous essayez de charger n'est pas un projet valide" #: ../LongoMatch/DB/DataBase.cs:137 msgid "Error retrieving the file info for project:" msgstr "Erreur lors de la récupération du fichier d'information du projet :" #: ../LongoMatch/DB/DataBase.cs:138 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "" "Cette valeur va être réinitialisée. Rappelez-vous de la changer plus tard à " "l'aide du gestionnaire de projets." #: ../LongoMatch/DB/DataBase.cs:139 msgid "Change Me" msgstr "À modifier" #: ../LongoMatch/DB/DataBase.cs:216 msgid "The Project for this video file already exists." msgstr "Le projet pour ce fichier vidéo existe déjà." # typo in source #: ../LongoMatch/DB/DataBase.cs:216 msgid "Try to edit it with the Database Manager" msgstr "Essayez de le modifier avec le gestionnaire de base de données" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:36 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:18 msgid "New Project" msgstr "Nouveau projet" #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:56 msgid "New project using a video file" msgstr "Nouveau projet avec fichier vidéo" #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:86 msgid "Live project using a capture device" msgstr "Projet en direct utilisant un périphérique de capture" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:114 msgid "Live project using a fake capture device" msgstr "Projet en direct utilisant un périphérique de capture fictif" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:58 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." "" msgstr "" "Un projet de capture est en cours.\n" "Vous pouvez poursuivre la capture actuelle, l'annuler ou enregistrer votre " "projet.\n" "\n" "Avertissement : si vous annulez la capture en cours, toutes les " "modifications seront perdues." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:87 msgid "Return" msgstr "Poursuivre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:112 msgid "Cancel capture" msgstr "Annuler la capture" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:137 msgid "Stop capture and save project" msgstr "Arrêter la capture et enregistrer le projet" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:16 msgid "Categories Template" msgstr "Modèle de catégories" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:67 msgid "Tools" msgstr "Outils" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:204 msgid "Color" msgstr "Couleur" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:225 msgid "Width" msgstr "Largeur" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:234 msgid "2 px" msgstr "2 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:235 msgid "4 px" msgstr "4 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:236 msgid "6 px" msgstr "6 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:237 msgid "8 px" msgstr "8 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:238 msgid "10 px" msgstr "10 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:251 msgid "Transparency" msgstr "Transparence" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:300 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Dessiner-> D\n" "Effacer-> C\n" "Cacher-> S\n" "Afficher-> S\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:40 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:134 msgid "Projects Manager" msgstr "Gestionnaire de projets" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:96 msgid "Project Details" msgstr "Détails du projet" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:148 msgid "_Export" msgstr "_Exporter" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:16 msgid "Select a HotKey" msgstr "Sélectionner un raccourci clavier" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:29 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Pressez une combinaison de touches avec Maj+touche ou Alt+touche.\n" "Une touche unique peut aussi servir de raccourci en l'activant avec Ctrl" "+touche." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:55 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Charger une liste\n" "de lecture ou en\n" "créer une nouvelle." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:16 msgid "Tag play" msgstr "Étiqueter une action" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:43 msgid "Projects Search:" msgstr "Recherche de projets :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:58 msgid "Play:" msgstr "Action :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:66 msgid "Interval (frames/s):" msgstr "Intervalle (images/s) :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:74 msgid "Series Name:" msgstr "Nom des séries :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:128 msgid "Export to PNG images" msgstr "Exporter en images PNG" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:26 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 msgid "Drawing Tool" msgstr "Outil de dessin" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:70 msgid "Save to Project" msgstr "Enregistrer dans le projet" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:97 msgid "Save to File" msgstr "Enregistrer dans un fichier" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:82 msgid "Add Filter" msgstr "Ajouter un filtre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:115 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:116 msgid "_File" msgstr "_Fichier" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:118 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:119 msgid "_New Project" msgstr "_Nouveau projet" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:121 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:122 msgid "_Open Project" msgstr "_Ouvrir un projet" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:125 msgid "_Quit" msgstr "_Quitter" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 msgid "_Close Project" msgstr "_Fermer le projet" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:131 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 msgid "_Tools" msgstr "Ou_tils" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 msgid "Database Manager" msgstr "Gestionnaire de base de données" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "Categories Templates Manager" msgstr "Gestionnaire de modèles de catégories" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:34 msgid "Templates Manager" msgstr "Gestionnaire de modèles" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:141 msgid "_View" msgstr "_Affichage" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:144 msgid "Full Screen" msgstr "Plein écran" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:147 msgid "Playlist" msgstr "Liste de lecture" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Capture Mode" msgstr "Mode capture" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 msgid "Analyze Mode" msgstr "Mode analyse" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:159 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:161 msgid "_Save Project" msgstr "Enregi_strer le projet" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:163 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:164 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:180 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 msgid "_Help" msgstr "Aid_e" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:166 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 msgid "_About" msgstr "À _propos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 msgid "Export Project To CSV File" msgstr "Exporter le projet dans un fichier CSV" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:173 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 msgid "Teams Templates Manager" msgstr "Gestionnaire de modèles d'équipes" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:176 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:178 msgid "Hide All Widgets" msgstr "Masquer tous les éléments graphiques" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:183 msgid "_Drawing Tool" msgstr "Outil de _dessin" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:187 msgid "_Import Project" msgstr "_Importer un projet" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Free Capture Mode" msgstr "Mode capture libre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:246 msgid "Plays" msgstr "Actions" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:395 msgid "Creating video..." msgstr "Création de la vidéo..." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:16 msgid "Player Details" msgstr "Détails du joueur" # translated as separate words #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:14 msgid "TransparentDrawingArea" msgstr "TransparentDrawingArea" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:348 msgid "_Calendar" msgstr "_Calendrier" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:86 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:52 msgid "Name:" msgstr "Nom :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:151 msgid "Position:" msgstr "Position :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:161 msgid "Number:" msgstr "Numéro :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:171 msgid "Photo:" msgstr "Photo :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:201 msgid "Birth day" msgstr "Anniversaire" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:221 msgid "Plays this match:" msgstr "Joue ce match :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:22 msgid "Capture Progress" msgstr "Progression de la capture" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:16 msgid "Category Details" msgstr "Détails de la catégorie" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:32 msgid "Select template name" msgstr "Sélectionner le nom du modèle" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:76 msgid "Copy existent template:" msgstr "Copier un modèle existant :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:94 msgid "Players:" msgstr "Joueurs :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:37 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "Une nouvelle version de LongoMatch est disponible à www.ylatuya.es !\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:47 msgid "The new version is " msgstr "La nouvelle version est" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:57 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "Vous pouvez la télécharger directement avec ce lien :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:67 msgid "label7" msgstr "Étiquette7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:18 msgid "Tag players" msgstr "Étiqueter des joueurs" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:72 msgid "New Before" msgstr "Nouveau avant" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:100 msgid "New After" msgstr "Nouveau après" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:128 msgid "Remove" msgstr "Supprimer" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:191 msgid "Export" msgstr "Exporter" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:16 msgid "Calendar" msgstr "Calendrier" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:34 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "Vous n'avez pas encore étiqueté d'action.\n" "Vous pouvez ajouter une nouvelle étiquette en saisissant son intitulé et en " "cliquant sur « Ajouter une étiquette »" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:87 msgid "Add Tag" msgstr "Ajouter une étiquette" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:52 msgid "Video Properties" msgstr "Propriétés de la vidéo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:76 msgid "Video Quality:" msgstr "Qualité de la vidéo :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:105 msgid "Size: " msgstr "Taille : " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:111 msgid "Portable (4:3 - 320x240)" msgstr "Portable (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:112 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:114 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:115 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "Full HD 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:135 msgid "Ouput Format:" msgstr "Format de sortie :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:158 msgid "Enable Title Overlay" msgstr "Permettre l'affichage en surimpression du titre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:169 msgid "Enable Audio (Experimental)" msgstr "Activer le son (expérimental)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:187 msgid "File name: " msgstr "Nom du fichier : " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:29 msgid "Cancel" msgstr "Annuler" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:39 msgid "Tag new play" msgstr "Étiqueter la nouvelle action" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:80 msgid "Data Base Migration" msgstr "Migration de base de données" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:108 msgid "Playlists Migration" msgstr "Migration de listes de lecture" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:136 msgid "Templates Migration" msgstr "Migration de modèles" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:86 msgid "Color: " msgstr "Couleur :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:107 msgid "Change" msgstr "Modifier" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:127 msgid "HotKey:" msgstr "Raccourci clavier :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:135 msgid "Competition:" msgstr "Compétition :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:177 msgid "File:" msgstr "Fichier :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:295 msgid "-" msgstr "-" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:368 msgid "Visitor Team:" msgstr "Équipe visiteurs :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:378 msgid "Score:" msgstr "Score :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:388 msgid "Date:" msgstr "Date :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:398 msgid "Local Team:" msgstr "Équipe locale :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:406 msgid "Categories Template:" msgstr "Modèle de catégories :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:450 msgid "Season:" msgstr "Saison :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:495 msgid "Audio Bitrate (kbps):" msgstr "Débit audio (kops) :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:521 msgid "Device:" msgstr "Périphérique :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:549 msgid "Video Size:" msgstr "Taille de la vidéo :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:559 msgid "Video Bitrate (kbps):" msgstr "Débit de la vidéo (kops) :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:596 msgid "Video Format:" msgstr "Format de la vidéo :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:606 msgid "Video encoding properties" msgstr "Propriétés de codage de la vidéo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:33 msgid "Lead time:" msgstr "Délai avant :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lag time:" msgstr "Délai après :" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:18 msgid "Open Project" msgstr "Ouvrir le projet" #: ../LongoMatch/Handlers/EventsManager.cs:191 msgid "You can't create a new play if the capturer is not recording." msgstr "" "Impossible de créer une nouvelle action si la capture n'est pas en cours." #: ../LongoMatch/Handlers/EventsManager.cs:224 msgid "The video edition has finished successfully." msgstr "La modification de la vidéo s'est terminée avec succès." #: ../LongoMatch/Handlers/EventsManager.cs:230 msgid "An error has occurred in the video editor." msgstr "Une erreur est survenue dans l'éditeur vidéo." #: ../LongoMatch/Handlers/EventsManager.cs:231 msgid "Please, try again." msgstr "Veuillez réessayer." #: ../LongoMatch/Handlers/EventsManager.cs:266 msgid "" "The stop time is smaller than the start time. The play will not be added." msgstr "" "L'heure de fin est antérieure à l'heure de début. L'action ne sera pas " "ajoutée." #: ../LongoMatch/Handlers/EventsManager.cs:341 msgid "Please, close the opened project to play the playlist." msgstr "Fermez le projet ouvert pour lire la liste de lecture." #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "Section" # Not sure this should be translated #: ../LongoMatch/IO/CSVExport.cs:83 ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "Début" # not sure translation is necessary #: ../LongoMatch/IO/CSVExport.cs:84 ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "Fin" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "Fichier CSV exporté avec succès." #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Étiquette" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Joueur" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Catégorie" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "" "The project will be saved to a file. You can insert it later into the " "database using the \"Import project\" function once you copied the video " "file to your computer" msgstr "" "Le projet va être enregistré dans un fichier. Vous pourrez l'incorporer plus " "tard dans la base de données en utilisant la fonction « Importer un projet » " "une fois que vous aurez copié le fichier vidéo sur l'ordinateur" #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "Projet enregistré avec succès." #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "Importer un projet" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "Erreur lors de l'importation du projet :" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "Un projet existe déjà pour le fichier :" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "Voulez-vous l'écraser ?" #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "Projet importé avec succès." #: ../LongoMatch/Utils/ProjectUtils.cs:193 msgid "No capture devices were found." msgstr "Aucun périphérique de capture trouvé." #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "This file is already used in another Project." msgstr "Ce fichier est déjà utilisé dans un autre projet." #: ../LongoMatch/Utils/ProjectUtils.cs:220 msgid "Select a different one to continue." msgstr "Sélectionnez un autre fichier pour poursuivre." #: ../LongoMatch/Utils/ProjectUtils.cs:244 msgid "Select Export File" msgstr "Sélectionnez un fichier d'exportation" #: ../LongoMatch/Utils/ProjectUtils.cs:273 msgid "Creating video thumbnails. This can take a while." msgstr "Création des vignettes vidéo. Cela peut prendre un moment." #: ../CesarPlayer/Gui/CapturerBin.cs:261 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "Vous êtes sur le point d'arrêter et de mettre fin à la capture actuelle.\n" "Voulez-vous continuer ?" #: ../CesarPlayer/Gui/CapturerBin.cs:267 msgid "Finalizing file. This can take a while" msgstr "Finalisation du fichier. Cela peut prendre un moment." #: ../CesarPlayer/Gui/CapturerBin.cs:302 msgid "Device disconnected. The capture will be paused" msgstr "Périphérique déconnecté. La capture est en attente" #: ../CesarPlayer/Gui/CapturerBin.cs:311 msgid "Device reconnected.Do you want to restart the capture?" msgstr "Le périphérique connecté à nouveau. Voulez-vous reprendre la capture ?" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "Heure :" #: ../CesarPlayer/Utils/Device.cs:83 msgid "Default device" msgstr "Périphérique par défaut" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "Fichier vidéo non valide :" #: ../CesarPlayer/Capturer/FakeCapturer.cs:81 msgid "Fake live source" msgstr "Source en direct fictif" longomatch-0.16.8/po/es.po0000644000175000017500000012526311601631101012246 00000000000000# # Jorge González , 2010. # msgid "" msgstr "" "Project-Id-Version: longomatch.master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=longomatch&component=general\n" "POT-Creation-Date: 2010-11-14 20:51+0000\n" "PO-Revision-Date: 2010-11-30 23:35+0100\n" "Last-Translator: Jorge González \n" "Language-Team: Español \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: MonoDevelop Gettext addin\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch: el entrenador digital" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "Herramienta de vídeo análisis para entrenadores" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "" "El archivo que intenta cargar no es un archivo de lista de reproducción " "válido." #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Sin definir" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "nombre" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "Ordenar por nombre" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:69 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:154 msgid "Sort by start time" msgstr "Ordenar por tiempo de inicio" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:155 msgid "Sort by stop time" msgstr "Ordenar por tiempo de fin" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:156 msgid "Sort by duration" msgstr "Ordenar por duración" #: ../LongoMatch/Time/MediaTimeNode.cs:354 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:47 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Nombre" #: ../LongoMatch/Time/MediaTimeNode.cs:355 ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Equipo" #: ../LongoMatch/Time/MediaTimeNode.cs:356 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Inicio" #: ../LongoMatch/Time/MediaTimeNode.cs:357 msgid "Stop" msgstr "Fin" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:285 msgid "Tags" msgstr "Etiquetas" #: ../LongoMatch/Main.cs:164 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "" "Se han encontrado algunos elementos de la versión anterior (base de datos, " "plantillas y/o listas de reproducción)." #: ../LongoMatch/Main.cs:165 msgid "Do you want to import them?" msgstr "¿Quiere importarlos?" #: ../LongoMatch/Main.cs:230 msgid "The application has finished with an unexpected error." msgstr "El programa ha terminado con error inesperado" #: ../LongoMatch/Main.cs:231 msgid "A log has been saved at: " msgstr "Se ha guardado un registro en:" #: ../LongoMatch/Main.cs:232 msgid "Please, fill a bug report " msgstr "Envíe un informe de fallos " #: ../LongoMatch/Gui/MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:272 msgid "Visitor Team" msgstr "Equipo visitante" #: ../LongoMatch/Gui/MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:259 msgid "Local Team" msgstr "Equipo local" #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "The file associated to this project doesn't exist." msgstr "El archivo asociado a este proyecto no existe." #: ../LongoMatch/Gui/MainWindow.cs:141 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "" "Si el archivo ha sido cambiado de sitio, intente editarlo con el gestor de " "proyectos" #: ../LongoMatch/Gui/MainWindow.cs:152 msgid "An error occurred opening this project:" msgstr "Ocurrió un error al abrir este proyecto:" #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "Loading newly created project..." msgstr "Cargando el proyecto recientemente credao…" #: ../LongoMatch/Gui/MainWindow.cs:213 msgid "An error occured saving the project:\n" msgstr "Ocurrió un error al guardar el proyecto:\n" #: ../LongoMatch/Gui/MainWindow.cs:214 msgid "" "The video file and a backup of the project has been saved. Try to import it " "later:\n" msgstr "" "Se han guardado el archivo de vídeo y el respaldo del proyecto. Inténtelo " "importar más tarde:\n" #: ../LongoMatch/Gui/MainWindow.cs:328 msgid "Do you want to close the current project?" msgstr "¿Quiere cerrar el proyecto actual?" #: ../LongoMatch/Gui/MainWindow.cs:535 msgid "The actual project will be closed due to an error in the media player:" msgstr "El proyecto actual se cerrará debido a un error en el reproductor:" #: ../LongoMatch/Gui/MainWindow.cs:619 msgid "" "An error occured in the video capturer and the current project will be " "closed:" msgstr "" "Ocurrió un error en el dispositivo de captura de vídeo y se cerrará el " "proyecto actual:" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Archivos de plantillas" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:162 msgid "The template has been modified. Do you want to save it? " msgstr "Se ha modificado la plantilla. ¿Quiere guardar los cambios?" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:184 msgid "Template name" msgstr "Nombre de la plantilla" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:204 msgid "You cannot create a template with a void name" msgstr "No puede crear una plantilla con un nombre vacío" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:210 msgid "A template with this name already exists" msgstr "Ya existe una plantilla con este nombre." #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:236 msgid "You can't delete the 'default' template" msgstr "No puede eliminar la plantilla predeterminada" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:241 msgid "Do you really want to delete the template: " msgstr "Quiere eliminar la plantilla: " #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Esta combinación de teclas está actualmente en uso" #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "Capturando fotograma:" #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Terminado" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:82 msgid "Low" msgstr "Baja" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:83 msgid "Normal" msgstr "Normal" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Good" msgstr "Buena" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:85 msgid "Extra" msgstr "Extra" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:172 msgid "Save Video As ..." msgstr "Guardar vídeo como…" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70 msgid "The Project has been edited, do you want to save the changes?" msgstr "Se ha editado el proyecto. ¿Quiere guardar los cambios?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:95 msgid "A Project is already using this file." msgstr "Un proyecto ya está usando este archivo." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "This Project is actually in use." msgstr "Este proyecto está actualmente en uso" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:113 msgid "Close it first to allow its removal from the database" msgstr "Ciérrelo primero para permitir eliminarlo de la base de datos" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:119 msgid "Do you really want to delete:" msgstr "Quiere eliminar:" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "The Project you are trying to load is actually in use." msgstr "El proyecto que intenta cargar está actualmente en uso." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "Close it first to edit it" msgstr "Ciérrelo para poder editarlo" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:196 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "Guardar proyecto" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "Grabar archivo como…" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:389 msgid "DirectShow Source" msgstr "Origen «DirectShow»" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:390 msgid "Unknown" msgstr "Desconocido" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:438 msgid "Keep original size" msgstr "Mantener tamaño original" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:461 msgid "Output file" msgstr "Archivo de salida" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:473 msgid "Open file..." msgstr "Abrir archivo…" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:490 msgid "Analyzing video file:" msgstr "Analizando archivo de vídeo:" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:495 msgid "This file doesn't contain a video stream." msgstr "Este archivo no contiene un flujo de vídeo." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:497 msgid "This file contains a video stream but its length is 0." msgstr "Este archivo contiene un flujo de vídeo pero su longitud es 0." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:564 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:473 msgid "Local Team Template" msgstr "Plantilla del equipo local" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:577 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:426 msgid "Visitor Team Template" msgstr "Plantilla del equipo visitante" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:117 msgid "none" msgstr "ninguno" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "" "Está a punto de eliminar una categoría y todas las jugadas añadidas a la " "categoría. ¿Quiere continuar?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:126 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:135 msgid "A template needs at least one category" msgstr "Una plantilla necesita, al menos, una categoría" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:217 msgid "New template" msgstr "Plantilla nueva" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:221 msgid "The template name is void." msgstr "El nombre de la plantilla está vació." #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:227 #| msgid "The template already exists.Do you want to overwrite it ?" msgid "The template already exists. Do you want to overwrite it ?" msgstr "La plantilla ya existe. ¿Quiere sobreescribirla?" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:92 msgid "" "The file you are trying to load is not a playlist or it's not compatible " "with the current version" msgstr "" "El archivo que intenta cargar no es una lista de reproducción o no es " "compatible con esta versión." #: ../LongoMatch/Gui/Component/PlayListWidget.cs:222 msgid "Open playlist" msgstr "Abrir lista de reproducción" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:237 msgid "New playlist" msgstr "Nueva lista de reproducción" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:262 msgid "The playlist is empty!" msgstr "La lista de reproducción está vacía" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:271 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:215 msgid "Please, select a video file." msgstr "Seleccione un archivo de vídeo" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:90 msgid "Choose an image" msgstr "Elegir una imagen" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:169 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:271 #| msgid "None" msgid "No" msgstr "No" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Nombre de archivo" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "File length" msgstr "Longitud del archivo" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Video codec" msgstr "Códec de vídeo" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Audio codec" msgstr "Códec de audio" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:122 msgid "Format" msgstr "Formato" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Título" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 msgid "Local team" msgstr "Equipo local" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 msgid "Visitor team" msgstr "Equipo visitante" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Season" msgstr "Temporada" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Competition" msgstr "Competición" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Result" msgstr "Resultado" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:138 msgid "Date" msgstr "Fecha" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "Eliminar jugada" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "Añadir jugada nueva" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Borrar " #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:81 msgid "None" msgstr "Ninguno" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:157 msgid "No Team" msgstr "Sin equipo" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:156 msgid "Edit" msgstr "Editar" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:171 msgid "Team Selection" msgstr "Selección de equipo" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:173 msgid "Add tag" msgstr "Añadir etiqueta" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:174 msgid "Tag player" msgstr "Asociar jugador" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:176 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 msgid "Delete" msgstr "Borrar" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:177 msgid "Delete key frame" msgstr "Borrar fotograma clave" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:178 msgid "Add to playlist" msgstr "Añadir a la lista de reproducción" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:180 msgid "Export to PGN images" msgstr "Exportar a fotogramas PNG" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:338 msgid "Do you want to delete the key frame for this play?" msgstr "¿Quiere eliminar el fotograma clave de esta jugada? " #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:66 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:71 msgid "Edit name" msgstr "Editar nombre" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:67 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:72 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:145 msgid "Sort Method" msgstr "Método de ordenación" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Foto" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:55 #| msgid "Playlist" msgid "Play this match" msgstr "Juega este partido" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:60 msgid "Date of Birth" msgstr "Fecha de nacimiento" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:65 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:211 msgid "Nationality" msgstr "Nacionalidad" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:181 msgid "Height" msgstr "Altura" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:75 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:191 msgid "Weight" msgstr "Peso" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:80 msgid "Position" msgstr "Posición" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:85 msgid "Number" msgstr "Dorsal" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:270 msgid "Yes" msgstr "Sí" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:52 msgid "Lead Time" msgstr "Inicio" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:57 msgid "Lag Time" msgstr "Fin" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:62 msgid "Color" msgstr "Color" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:67 msgid "Hotkey" msgstr "Tecla rápida" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Editar título" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "Guardar la velocidad de reproducción actual" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " seg" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Duración" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "Velocidad de reproducción" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "No se encontró el archivo" #: ../LongoMatch/DB/Project.cs:559 msgid "The file you are trying to load is not a valid project" msgstr "El archivo que intenta cargar no es un proyecto válido." #: ../LongoMatch/DB/DataBase.cs:137 msgid "Error retrieving the file info for project:" msgstr "Error recuperando la información del archivo de este proyecto:" #: ../LongoMatch/DB/DataBase.cs:138 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "" "Este valor será reinicializado. Recuerde cambiarlo más tarde con el gestor " "de proyectos." #: ../LongoMatch/DB/DataBase.cs:139 msgid "Change Me" msgstr "Cambiame" #: ../LongoMatch/DB/DataBase.cs:216 msgid "The Project for this video file already exists." msgstr "El proyecto para este archivo ya existe." #: ../LongoMatch/DB/DataBase.cs:216 msgid "Try to edit it with the Database Manager" msgstr "Intente editarlo con el Editor de la base de datos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:36 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:18 msgid "New Project" msgstr "Proyecto nuevo" #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:56 msgid "New project using a video file" msgstr "Proyecto nuevo usando un archivo de vídeo" #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:86 msgid "Live project using a capture device" msgstr "Proyecto en directo usando un dispositivo de captura" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:114 msgid "Live project using a fake capture device" msgstr "Proyecto en directo usando un dispositivo capturador falso" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:58 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." "" msgstr "" "Actualmente hay un proyecto de captura en ejecución.\n" "Puede continuar con la captura actual, cancelarla o guardar su proyecto.\n" "\n" "Aviso: se perderán todos los cambios si cancela el proyecto actual." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:87 msgid "Return" msgstr "Volver" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:112 msgid "Cancel capture" msgstr "Cancelar captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:137 msgid "Stop capture and save project" msgstr "Detener la captura y guardar el proyecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:16 msgid "Categories Template" msgstr "Plantilla de categorías" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:67 msgid "Tools" msgstr "Herramientas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:204 msgid "Color" msgstr "Color" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:225 msgid "Width" msgstr "Anchura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:234 msgid "2 px" msgstr "2 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:235 msgid "4 px" msgstr "4 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:236 msgid "6 px" msgstr "6 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:237 msgid "8 px" msgstr "8 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:238 msgid "10 px" msgstr "10 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:251 msgid "Transparency" msgstr "Transparencia" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:300 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Dibujar-> D\n" "Borrar-> C\n" "Esconder-> S\n" "Mostrar-> S\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:40 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:134 msgid "Projects Manager" msgstr "Gestor de _proyectos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:96 msgid "Project Details" msgstr "Detalles del proyecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:148 msgid "_Export" msgstr "_Exportar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:16 msgid "Select a HotKey" msgstr "Seleccione una combinación de teclas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:29 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Presione una combinación de teclas usando Mayús+tecla o Alt+tecla.\n" "También puede usar atajos de una simple tecla usando Ctrl+atajo." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:55 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Cargar una lista\n" "de reproducción\n" "o crear una nueva." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:16 msgid "Tag play" msgstr "Etiquetar jugada" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:43 msgid "Projects Search:" msgstr "Búsqueda de proyectos:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:58 msgid "Play:" msgstr "Jugada:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:66 msgid "Interval (frames/s):" msgstr "Intervalo (imágenes/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:74 msgid "Series Name:" msgstr "Nombre de la serie:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:128 msgid "Export to PNG images" msgstr "Exportar a fotogramas PNG" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:26 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 msgid "Drawing Tool" msgstr "Herramienta de dibujo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:70 msgid "Save to Project" msgstr "Guardar en proyecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:97 msgid "Save to File" msgstr "Guardar en archivo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:82 msgid "Add Filter" msgstr "Añadir filtro" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:115 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:116 msgid "_File" msgstr "_Archivo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:118 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:119 msgid "_New Project" msgstr "Proyecto _nuevo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:121 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:122 msgid "_Open Project" msgstr "_Abrir proyecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:125 msgid "_Quit" msgstr "_Salir" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 msgid "_Close Project" msgstr "_Cerrar proyecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:131 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 msgid "_Tools" msgstr "_Herramientas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 msgid "Database Manager" msgstr "Gestor de la _base de datos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "Categories Templates Manager" msgstr "Gestor de plantillas de categorías" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:34 msgid "Templates Manager" msgstr "Gestor de plantillas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:141 msgid "_View" msgstr "_Ver" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:144 msgid "Full Screen" msgstr "Pantalla completa" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:147 msgid "Playlist" msgstr "Lista de reproducción" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Capture Mode" msgstr "Modo captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 msgid "Analyze Mode" msgstr "Modo análisis" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:159 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:161 msgid "_Save Project" msgstr "_Guardar proyecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:163 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:164 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:180 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 msgid "_Help" msgstr "Ay_uda" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:166 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 msgid "_About" msgstr "Acerca _de" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 msgid "Export Project To CSV File" msgstr "Exportar proyecto a archivo CSV" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:173 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 msgid "Teams Templates Manager" msgstr "Gestor de plantillas de equipos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:176 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:178 msgid "Hide All Widgets" msgstr "Esconder todo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:183 msgid "_Drawing Tool" msgstr "Herramienta de _dibujo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:187 msgid "_Import Project" msgstr "_Importar proyecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Free Capture Mode" msgstr "Modo de captura libre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:246 msgid "Plays" msgstr "Jugadas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:395 msgid "Creating video..." msgstr "Creando vídeo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:16 msgid "Player Details" msgstr "Detalles del jugador" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:14 msgid "TransparentDrawingArea" msgstr "TransparentDrawingArea" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:348 msgid "_Calendar" msgstr "_Calendario" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:86 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:52 msgid "Name:" msgstr "Nombre:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:151 msgid "Position:" msgstr "Posición:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:161 msgid "Number:" msgstr "Dorsal:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:171 msgid "Photo:" msgstr "Foto:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:201 msgid "Birth day" msgstr "Cumpleaños" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:221 msgid "Plays this match:" msgstr "Juega este partido:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:22 msgid "Capture Progress" msgstr "Progreso de la captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:16 msgid "Category Details" msgstr "Detalles de la categoria" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:32 msgid "Select template name" msgstr "Seleccionar el nombre de la plantilla" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:76 msgid "Copy existent template:" msgstr "Copiar plantilla existente:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:94 msgid "Players:" msgstr "Jugadores" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:37 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "Se ha publicado una nueva versión de LongoMatch en www.ylatuya.es\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:47 msgid "The new version is " msgstr "La nueva versión es" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:57 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "Puede descargarla usando este enlace directo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:67 msgid "label7" msgstr "etiqueta7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:18 msgid "Tag players" msgstr "Etiquetar jugadores" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:72 msgid "New Before" msgstr "Nuevo antes" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:100 msgid "New After" msgstr "Nuevo después" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:128 msgid "Remove" msgstr "Quitar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:191 msgid "Export" msgstr "Exportar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:16 msgid "Calendar" msgstr "Calendario" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:34 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "Ninguna jugada ha sido etiquetada todavía.\n" "Puede añadir nuevas etiquetas usando el espacio inferior y pulsando «Añadir " "etiqueta»" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:87 msgid "Add Tag" msgstr "Añadir etiqueta" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:52 msgid "Video Properties" msgstr "Propiedades del vídeo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:76 msgid "Video Quality:" msgstr "Calidad del vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:105 msgid "Size: " msgstr "Tamaño:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:111 msgid "Portable (4:3 - 320x240)" msgstr "Portable (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:112 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:114 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:115 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "HD completo 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:135 msgid "Ouput Format:" msgstr "Formato de salida:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:158 msgid "Enable Title Overlay" msgstr "Sobreimprimir título" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:169 msgid "Enable Audio (Experimental)" msgstr "Activar sonido (experimental)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:187 msgid "File name: " msgstr "Nombre del archivo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:29 msgid "Cancel" msgstr "Cancelar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:39 msgid "Tag new play" msgstr "Etiquetar jugada nueva" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:80 msgid "Data Base Migration" msgstr "Migración de base de datos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:108 msgid "Playlists Migration" msgstr "Migración de listas de reproducción" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:136 msgid "Templates Migration" msgstr "Migración de plantillas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:86 msgid "Color: " msgstr "Color:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:107 msgid "Change" msgstr "Cambiar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:127 msgid "HotKey:" msgstr "Tecla rápida:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:135 msgid "Competition:" msgstr "Competición:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:177 msgid "File:" msgstr "Archivo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:295 msgid "-" msgstr "-" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:368 msgid "Visitor Team:" msgstr "Equipo visitante:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:378 msgid "Score:" msgstr "Puntuación:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:388 msgid "Date:" msgstr "Fecha:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:398 msgid "Local Team:" msgstr "Equipo local:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:406 msgid "Categories Template:" msgstr "Plantilla de categorías:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:450 msgid "Season:" msgstr "Temporada:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:495 msgid "Audio Bitrate (kbps):" msgstr "Tasa de bits del sonido (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:521 msgid "Device:" msgstr "Dispositivo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:549 msgid "Video Size:" msgstr "Tamaño del vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:559 msgid "Video Bitrate (kbps):" msgstr "Tasa de bits del vídeo (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:596 msgid "Video Format:" msgstr "Formato del vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:606 msgid "Video encoding properties" msgstr "Propiedades de codificación de vídeo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:33 msgid "Lead time:" msgstr "Inicio:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lag time:" msgstr "Fin:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:18 msgid "Open Project" msgstr "Abrir proyecto" #: ../LongoMatch/Handlers/EventsManager.cs:191 msgid "You can't create a new play if the capturer is not recording." msgstr "" "No puede crear un nueva jugada si el dispositivo de captura no está grabando." #: ../LongoMatch/Handlers/EventsManager.cs:224 msgid "The video edition has finished successfully." msgstr "La edición del vídeo ha finalizado con éxito." #: ../LongoMatch/Handlers/EventsManager.cs:230 msgid "An error has occurred in the video editor." msgstr "Ocurrió un error en el editor de vídeo." #: ../LongoMatch/Handlers/EventsManager.cs:231 msgid "Please, try again." msgstr "Inténtelo de nuevo." #: ../LongoMatch/Handlers/EventsManager.cs:266 #| msgid "" #| "The stop time is smaller than the start time.The play will not be added." msgid "" "The stop time is smaller than the start time. The play will not be added." msgstr "" "El tiempo de detención es inferior que el tiempo de inicio. No se añadirá la " "reproducción." #: ../LongoMatch/Handlers/EventsManager.cs:341 msgid "Please, close the opened project to play the playlist." msgstr "Cierre el proyecto actual para reproducir la lista de reproducción." #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "Sección" #: ../LongoMatch/IO/CSVExport.cs:83 ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "Inicio" #: ../LongoMatch/IO/CSVExport.cs:84 ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "Fin" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "CSV exportado satisfactoriamente" #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Etiqueta" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Jugador" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Categoría" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "" "The project will be saved to a file. You can insert it later into the " "database using the \"Import project\" function once you copied the video " "file to your computer" msgstr "" "Se guardará el proyecto en un archivo. Puede introducirlo más tarde en la " "base de datos usando la función «Importar proyecto» una vez que haya copiado " "el archivo de vídeo en su equipo." #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "Proyecto guardado satisfactoriamente." #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "Importar un proyecto" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "Error al importar el proyecto:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "Un proyecto ya existe para este archivo:" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "¿Quiere sobreescribirlo?" #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "Proyecto importado satisfactoriamente" #: ../LongoMatch/Utils/ProjectUtils.cs:193 msgid "No capture devices were found." msgstr "No se encontraron dispositivos de captura." #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "This file is already used in another Project." msgstr "Este archivo ya está siendo usado en otro proyecto." #: ../LongoMatch/Utils/ProjectUtils.cs:220 msgid "Select a different one to continue." msgstr "Seleccionar uno diferente para continuar." #: ../LongoMatch/Utils/ProjectUtils.cs:244 msgid "Select Export File" msgstr "Seleccionar el archivo para exportar" #: ../LongoMatch/Utils/ProjectUtils.cs:273 msgid "Creating video thumbnails. This can take a while." msgstr "Creando las miniaturas del vídeo. Esto puede llevar un tiempo." #: ../CesarPlayer/Gui/CapturerBin.cs:261 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "Está a punto de detener y finalizar la captura actual.\n" "¿Quiere continuar?" #: ../CesarPlayer/Gui/CapturerBin.cs:267 msgid "Finalizing file. This can take a while" msgstr "Finalizando el archivo. Esto puede llevar un tiempo." #: ../CesarPlayer/Gui/CapturerBin.cs:302 msgid "Device disconnected. The capture will be paused" msgstr "Dispositivo desconectado. Se pausará la captura." #: ../CesarPlayer/Gui/CapturerBin.cs:311 msgid "Device reconnected.Do you want to restart the capture?" msgstr "Dispositivo reconectado. ¿Quiere reiniciar la captura?" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "Tiempo:" #: ../CesarPlayer/Utils/Device.cs:83 msgid "Default device" msgstr "Dispositivo predeterminado" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "Archivo de vídeo no válido:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:81 msgid "Fake live source" msgstr "Fuente en falso directo" #~ msgid "Birth Day" #~ msgstr "Cumpleaños" #~ msgid "Local Goals:" #~ msgstr "Goles del local:" #~ msgid "Visitor Goals:" #~ msgstr "Goles del visitante:" #~ msgid "GConf configured device" #~ msgstr "Dispositivo configurado en GConf" #~ msgid "DV camera" #~ msgstr "Cámara DV" #~ msgid "GConf Source" #~ msgstr "Origen GConf" #~ msgid "You can't delete the last section" #~ msgstr "No puede eliminar la última sección" #~| msgid "Video Bitrate:" #~ msgid "Video Device:" #~ msgstr "Dispositivo de vídeo:" #~ msgid "Open the project, please." #~ msgstr "Abra el proyecto." #~ msgid "_New Poyect" #~ msgstr "Proyecto _nuevo" #~ msgid "_Open Proyect" #~ msgstr "_Abrir proyecto" #~ msgid "_Close Proyect" #~ msgstr "_Cerrar proyecto" longomatch-0.16.8/po/nl.po0000644000175000017500000012170611601631101012246 00000000000000# Dutch translation of longomatch. # Peter Strikwerda , 2009, 2010. # msgid "" msgstr "" "Project-Id-Version: longomatch master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=longomatch&component=general\n" "POT-Creation-Date: 2010-10-16 17:51+0000\n" "PO-Revision-Date: 2010-10-25 19:46+0100\n" "Last-Translator: Peter Strikwerda \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Poedit-Language: Dutch\n" "X-Poedit-Country: The Netherlands\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:205 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch: De Digitale Coach" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "Analyse van Sportvideos voor coaches" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "Het bestand dat u probeert te laden is geen geldige afspeellijst" #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Niet gedefinieerd" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "Naam" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:161 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "Op naam sorteren" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:69 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:162 msgid "Sort by start time" msgstr "Op starttijd sorteren" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:163 msgid "Sort by stop time" msgstr "Op stoptijd sorteren" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:164 msgid "Sort by duration" msgstr "Op duur sorteren" #: ../LongoMatch/Time/MediaTimeNode.cs:354 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:47 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Naam" #: ../LongoMatch/Time/MediaTimeNode.cs:355 ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Team" #: ../LongoMatch/Time/MediaTimeNode.cs:356 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Start" #: ../LongoMatch/Time/MediaTimeNode.cs:357 msgid "Stop" msgstr "Stop" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:293 msgid "Tags" msgstr "Kenmerken" #: ../LongoMatch/Main.cs:164 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "" "Enkele elementen van een eerdere versie (databestand, sjablonen en/of" "afspeellijsten) werden gevonden." #: ../LongoMatch/Main.cs:165 msgid "Do you want to import them?" msgstr "Wilt u deze importeren?" #: ../LongoMatch/Main.cs:230 msgid "The application has finished with an unexpected error." msgstr "De toepassing werd met een onverwachte fout afgesloten." #: ../LongoMatch/Main.cs:231 msgid "A log has been saved at: " msgstr "Een registratie werd bewaard in: " #: ../LongoMatch/Main.cs:232 msgid "Please, fill a bug report " msgstr "Alstublieft, vul een foutrapport in." #: ../LongoMatch/Gui/MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:280 msgid "Visitor Team" msgstr "Bezoekend team" #: ../LongoMatch/Gui/MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:267 msgid "Local Team" msgstr "Thuis Team" #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "The file associated to this project doesn't exist." msgstr "Het bestand gekoppeld aan dit project bestaat niet." #: ../LongoMatch/Gui/MainWindow.cs:141 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "" "Wanneer de locatie van het bestand is veranderd, probeer deze dan met de " "database manager aan te passen." #: ../LongoMatch/Gui/MainWindow.cs:152 msgid "An error occurred opening this project:" msgstr "Een fout ontstond bij het openen van dit project:" #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "Loading newly created project..." msgstr "Nieuw gemaakt project wordt geladen..." #: ../LongoMatch/Gui/MainWindow.cs:213 msgid "An error occured saving the project:\n" msgstr "Een fout is opgetreden bij het opslaan van het project:\n" #: ../LongoMatch/Gui/MainWindow.cs:214 msgid "" "The video file and a backup of the project has been saved. Try to import it " "later:\n" msgstr "" "Het videobestand en een backup van het project is opgeslagen. Probeert " "u het later te importeren:\n" #: ../LongoMatch/Gui/MainWindow.cs:328 msgid "Do you want to close the current project?" msgstr "Wilt u het huidige project afsluiten?" #: ../LongoMatch/Gui/MainWindow.cs:535 msgid "The actual project will be closed due to an error in the media player:" msgstr "" "Het huidige project wordt vanwege een fout in de media speler afgesloten:" #: ../LongoMatch/Gui/MainWindow.cs:618 msgid "" "An error occured in the video capturer and the current project will be closed:" msgstr "" "Een fout trad op bij de video-opname en het huidige project wordt afgesloten:" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Sjabloon bestanden" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:162 msgid "The template has been modified. Do you want to save it? " msgstr "Het sjabloon werd veranderd. Wilt u deze opslaan? " #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:184 msgid "Template name" msgstr "Sjabloon naam" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:204 msgid "You cannot create a template with a void name" msgstr "U kunt geen sjabloon met een lege naam maken." #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:210 msgid "A template with this name already exists" msgstr "Een sjabloon met deze naam bestaat al" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:236 msgid "You can't delete the 'default' template" msgstr "U kunt het sjabloon 'default' niet verwijderen" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:241 msgid "Do you really want to delete the template: " msgstr "Wilt u werkelijk het sjabloon verwijderen: " #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Deze sneltoets is al in gebruik." #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "Opnemen van beeld: " #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Gereed" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:90 msgid "Low" msgstr "Laag" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:91 msgid "Normal" msgstr "Normaal" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:92 msgid "Good" msgstr "Goed" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:93 msgid "Extra" msgstr "Extra" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:172 msgid "Save Video As ..." msgstr "Bewaar video als ..." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70 msgid "The Project has been edited, do you want to save the changes?" msgstr "Het project werd veranderd, wilt u deze wijzigingen opslaan?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:95 msgid "A Project is already using this file." msgstr "Een project is al in gebruik met dit bestand." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "This Project is actually in use." msgstr "Dit project wordt al gebruikt." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:113 msgid "Close it first to allow its removal from the database" msgstr "Sluit u dit eerst, om het uit de database te kunnen verwijderen" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:119 msgid "Do you really want to delete:" msgstr "Wilt u werkelijk verwijderen:" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "The Project you are trying to load is actually in use." msgstr "Het project dat u wilt laden is al in gebruik." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "Close it first to edit it" msgstr "Sluit dit eerst om te kunnen bewerken" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:196 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "Project opslaan" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "Sla bestand op als..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:389 msgid "DirectShow Source" msgstr "DirectShow Bron" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:390 msgid "Unknown" msgstr "Onbekend" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:438 msgid "Keep original size" msgstr "Originele grootte bewaren" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:461 msgid "Output file" msgstr "Uitvoer bestand" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:473 msgid "Open file..." msgstr "Bestand openen..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:490 msgid "Analyzing video file:" msgstr "Video bestand wordt geanalyseerd:" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:495 msgid "This file doesn't contain a video stream." msgstr "Dit bestand bevat geen videostroom." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:497 msgid "This file contains a video stream but its length is 0." msgstr "Dit bestand bevat een videostroom, maar de lengte is 0." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:564 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:475 msgid "Local Team Template" msgstr "Sjabloon voor Thuis team" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:577 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:413 msgid "Visitor Team Template" msgstr "Sjabloon voor Bezoekend team" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:125 msgid "none" msgstr "niets" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "" "U gaat nu een catehorie en alle spelsituaties van deze categorie verwijderen. " "Wilt u hiermee doorgaan?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:126 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:135 msgid "A template needs at least one category" msgstr "Een sjabloon vereist minimaal één categorie" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:217 msgid "New template" msgstr "Nieuw sjabloon" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:221 msgid "The template name is void." msgstr "De sjabloonnaam is leeg." #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:227 msgid "The template already exists.Do you want to overwrite it ?" msgstr "Het sjabloon bestaat al. Wilt u deze overschrijven?" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:86 msgid "" "The file you are trying to load is not a playlist or it's not compatible with " "the current version" msgstr "" "Het bestand dat u wilt laden is geen afspeellijst of is niet compatibel met de " "huidige versie" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:216 msgid "Open playlist" msgstr "Afspeellijst openen" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:231 msgid "New playlist" msgstr "Nieuwe afspeellijst" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:256 msgid "The playlist is empty!" msgstr "De afspeellijst is leeg!" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:265 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:215 msgid "Please, select a video file." msgstr "Kies a.u.b. een video bestand." #: ../LongoMatch/Gui/Component/PlayerProperties.cs:88 msgid "Choose an image" msgstr "Kies een afbeelding" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Bestandsnaam" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "File length" msgstr "Bestandsgrootte" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Video codec" msgstr "Video codec" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Audio codec" msgstr "Audio codec" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:122 msgid "Format" msgstr "Type" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Titel" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 msgid "Local team" msgstr "Thuis team" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 msgid "Visitor team" msgstr "Bezoekend team" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Season" msgstr "Seizoen" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Competition" msgstr "Competitie" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Result" msgstr "Resultaat" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:138 msgid "Date" msgstr "Datum" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "Verwijder spelsituatie" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "Voeg nieuwe spelsituatie toe" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Verwijder" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:81 msgid "None" msgstr "Niets" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:157 msgid "No Team" msgstr "Geen team" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:164 msgid "Edit" msgstr "Bewerken" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:171 msgid "Team Selection" msgstr "Team Selectie" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:173 msgid "Add tag" msgstr "Kenmerk toevoegen" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:174 msgid "Tag player" msgstr "Speler kenmerken" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:176 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 msgid "Delete" msgstr "Verwijderen" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:177 msgid "Delete key frame" msgstr "Verwijder kernbeeld" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:178 msgid "Add to playlist" msgstr "Aan afspeellijst toevoegen" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:180 msgid "Export to PGN images" msgstr "Als PGN-afbeelding exporteren" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:338 msgid "Do you want to delete the key frame for this play?" msgstr "Wilt u het kernbeeld van deze spelsituatie verwijderen?" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:66 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:71 msgid "Edit name" msgstr "Naam bewerken" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:67 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:72 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 msgid "Sort Method" msgstr "Sorteermethode" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Foto" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:55 msgid "Birth Day" msgstr "Geboortedag" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:60 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:180 msgid "Height" msgstr "Lengte" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:65 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:190 msgid "Weight" msgstr "Gewicht" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:70 msgid "Position" msgstr "Positie" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:75 msgid "Number" msgstr "Nummer" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:52 msgid "Lead Time" msgstr "Tijdsduur voorsprong" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:57 msgid "Lag Time" msgstr "Tijdsduur achterstand" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:62 msgid "Color" msgstr "Kleur" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:67 msgid "Hotkey" msgstr "Sneltoets" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Titel bewerken" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "Aktuele afspeelmodus gebruiken" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " sec" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Duur" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "Afspeelmodus" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "Bestand niet gevonden" #: ../LongoMatch/DB/Project.cs:543 msgid "The file you are trying to load is not a valid project" msgstr "Het bestand dat u tracht te laden is geen geldig project" #: ../LongoMatch/DB/DataBase.cs:137 msgid "Error retrieving the file info for project:" msgstr "Fout bij het inlezen van de bestandsinformatie van dit project:" #: ../LongoMatch/DB/DataBase.cs:138 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "" "Deze waarde wordt opnieuw ingesteld. Denk er aan om dit later met de" "projectmanager te veranderen." #: ../LongoMatch/DB/DataBase.cs:139 msgid "Change Me" msgstr "Wijzig mij" #: ../LongoMatch/DB/DataBase.cs:216 msgid "The Project for this video file already exists." msgstr "Het project voor dit videobestand bestaat al." #: ../LongoMatch/DB/DataBase.cs:216 msgid "Try to edit it with the Database Manager" msgstr "Probeer dit met de database manager te bewerken" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:44 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:26 msgid "New Project" msgstr "Nieuw Project" #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:64 msgid "New project using a video file" msgstr "Nieuw project op basis van een videobestand." #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:94 msgid "Live project using a capture device" msgstr "Live project op basis van opname-apparaat" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:122 msgid "Live project using a fake capture device" msgstr "Live project op basis van simulatie opname-apparaat" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:66 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." msgstr "" "Een opname-apparaat loopt nu.\n" "U kunt doorgaan met de huidige opname, deze afbreken of uw project opslaan \n" "\n" "Waarschuwing: Wanneer u het huidige project afbreekt, verliest u alle veranderingen." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:95 msgid "Return" msgstr "Terug" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:120 msgid "Cancel capture" msgstr "Opname afbreken" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:145 msgid "Stop capture and save project" msgstr "Stop opname en bewaar project" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:24 msgid "Categories Template" msgstr "Categoriesjabloon" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:75 msgid "Tools" msgstr "Gereedschappen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:212 msgid "Color" msgstr "Kleur" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:233 msgid "Width" msgstr "Breedte" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:242 msgid "2 px" msgstr "2 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:243 msgid "4 px" msgstr "4 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:244 msgid "6 px" msgstr "6 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:245 msgid "8 px" msgstr "8 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:246 msgid "10 px" msgstr "10 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:259 msgid "Transparency" msgstr "Transparantie" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:308 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Tekenen-> D\n" "Verwijderen-> C\n" "Verbergen-> S\n" "Tonen-> S\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:48 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:142 msgid "Projects Manager" msgstr "Projectmanager" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:104 msgid "Project Details" msgstr "Projectdetails" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:156 msgid "_Export" msgstr "_Exporteren" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:24 msgid "Select a HotKey" msgstr "Kies een sneltoets" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:37 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Druk een toetscombinatie in met Shift+toets of Alt+toets.\n" "Sneltoetsen met een enkele toetskeuze kan ook gekozen worden door deze\n" "in combinatie met Ctrl+toets in te geven." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:63 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Laad een afspeellijst\n" "of maak een\n" "nieuwe." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:24 msgid "Tag play" msgstr "Kenmerk een spelsituatie" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:51 msgid "Projects Search:" msgstr "Project zoeken:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:65 msgid "Play:" msgstr "Spelsituatie:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:73 msgid "Interval (frames/s):" msgstr "Interval (Beelden/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:81 msgid "Series Name:" msgstr "Naam van de serie:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:135 msgid "Export to PNG images" msgstr "Als PNG-afbeelding exporteren" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:34 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Drawing Tool" msgstr "Tekengereedschap" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:78 msgid "Save to Project" msgstr "In Project opslaan" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:105 msgid "Save to File" msgstr "In bestand opslaan" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:90 msgid "Add Filter" msgstr "Filter toevoegen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:123 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 msgid "_File" msgstr "_Bestand" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:126 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 msgid "_New Project" msgstr "_Nieuw project" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:130 msgid "_Open Project" msgstr "Project _openen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:133 msgid "_Quit" msgstr "B_eëindigen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "_Close Project" msgstr "Project _sluiten" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:139 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 msgid "_Tools" msgstr "_Gereedschappen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 msgid "Database Manager" msgstr "Database manager" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:145 msgid "Categories Templates Manager" msgstr "Categorie Sjabloon Manager" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:42 msgid "Templates Manager" msgstr "Sjabloonmanager" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:148 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 msgid "_View" msgstr "_Aanblik" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:151 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Full Screen" msgstr "Volledig scherm" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:155 msgid "Playlist" msgstr "Afspeellijst" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:160 msgid "Capture Mode" msgstr "Opname modus" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:162 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:165 msgid "Analyze Mode" msgstr "Analyse modus" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 msgid "_Save Project" msgstr "Project _opslaan" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:172 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:188 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 msgid "_Help" msgstr "_Help" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:175 msgid "_About" msgstr "_Info" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:177 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:179 msgid "Export Project To CSV File" msgstr "Project in een CSV-bestand exporteren" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:182 msgid "Teams Templates Manager" msgstr "Teams Sjabloon Manager" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 msgid "Hide All Widgets" msgstr "Alle Widgets verbergen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:191 msgid "_Drawing Tool" msgstr "_Tekengereedschap" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:194 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:195 msgid "_Import Project" msgstr "Project _importeren" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:200 msgid "Free Capture Mode" msgstr "Vrije opname modus" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:254 msgid "Plays" msgstr "Spelsituaties" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:403 msgid "Creating video..." msgstr "Video makenx..." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:24 msgid "Player Details" msgstr "Speler Gegevens" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:22 msgid "TransparentDrawingArea" msgstr "TransparantDrawingArea" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:108 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:310 msgid "_Calendar" msgstr "_Kalender" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:142 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:93 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:60 msgid "Name:" msgstr "Naam:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:150 msgid "Position:" msgstr "Positie:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:160 msgid "Number:" msgstr "Nummer:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:170 msgid "Photo:" msgstr "Foto:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:200 msgid "Birth day" msgstr "Geboortedag" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:30 msgid "Capture Progress" msgstr "Opname voortgang" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:24 msgid "Category Details" msgstr "Categorie Details" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:40 msgid "Select template name" msgstr "Kies sjabloon naam" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:83 msgid "Copy existent template:" msgstr "Kopieer bestaand sjabloon:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:101 msgid "Players:" msgstr "Speler:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:45 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "Een nieuwe versie van LongoMatch is beschikbaar op www.ylatuya.es!\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:55 msgid "The new version is " msgstr "De nieuwe versie is" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:65 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "U kunt deze downloaden met deze directe link:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:75 msgid "label7" msgstr "label7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:26 msgid "Tag players" msgstr "Spelers kenmerken" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:80 msgid "New Before" msgstr "Nieuw voor" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:108 msgid "New After" msgstr "Nieuw na" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:136 msgid "Remove" msgstr "Verwijderen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:199 msgid "Export" msgstr "Exporteren" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:24 msgid "Calendar" msgstr "Kalender" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:42 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "U heeft nog geen spelsituaties voorzien van kenmerken.\n" "U kunt nieuwe kenmerken toevoegen door het tekstingaveveld\n" "te benutten en op >Kenmerk Toevoegen< te klikken." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:94 msgid "Add Tag" msgstr "Kenmerk toevoegen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:60 msgid "Video Properties" msgstr "Video Eigenschappen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Video Quality:" msgstr "Videokwaliteit:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "Size: " msgstr "Grootte:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:119 msgid "Portable (4:3 - 320x240)" msgstr "Portable (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:120 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:121 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:122 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:123 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "Full HD 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:143 msgid "Output Format:" msgstr "Uitvoertype:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:166 msgid "Enable Title Overlay" msgstr "Titeloverlapping activeren" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:177 msgid "Enable Audio (Experimental)" msgstr "Audio aktiveren (experimenteel)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:195 msgid "File name: " msgstr "Bestandnaam:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:37 msgid "Cancel" msgstr "Afbreken" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:47 msgid "Tag new play" msgstr "Nieuwe Spelsituatie kenmerken" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:88 msgid "Data Base Migration" msgstr "Database Migratie" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:116 msgid "Playlists Migration" msgstr "Afspeellijstmigratie" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:144 msgid "Templates Migration" msgstr "Sjabloonmigratie" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:94 msgid "Color: " msgstr "Kleur:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:115 msgid "Change" msgstr "Wijzigen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:135 msgid "HotKey:" msgstr "Sneltoets:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:140 msgid "Competition:" msgstr "Competitie:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:182 msgid "File:" msgstr "Bestand:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:330 msgid "Visitor Team:" msgstr "Bezoekend team:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:340 msgid "Local Goals:" msgstr "Thuis score:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:350 msgid "Visitor Goals:" msgstr "Bezoekers score:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:360 msgid "Date:" msgstr "Datum:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:370 msgid "Local Team:" msgstr "Thuis team:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:378 msgid "Categories Template:" msgstr "Categorie sjabloon:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:437 msgid "Season:" msgstr "Seizoen:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:497 msgid "Audio Bitrate (kbps):" msgstr "Audio Bitrate (kbit/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:523 msgid "Device:" msgstr "Apparaat:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:551 msgid "Video Size:" msgstr "Videogrootte:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:561 msgid "Video Bitrate (kbps):" msgstr "Video-Bitrate (kbit/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:598 msgid "Video Format:" msgstr "Videoformaat:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:608 msgid "Video encoding properties" msgstr "Video coderingseigenschappen" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:40 msgid "Lead time:" msgstr "Tijdsduur voorsprong:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:48 msgid "Lag time:" msgstr "Tijdsduur achterstand:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:26 msgid "Open Project" msgstr "Project openen" #: ../LongoMatch/Handlers/EventsManager.cs:191 msgid "You can't create a new play if the capturer is not recording." msgstr "U kunt geen nieuwe spelsituatie maken als de opname niet loopt." #: ../LongoMatch/Handlers/EventsManager.cs:224 msgid "The video edition has finished successfully." msgstr "De bewerking van de video is succesvol afgesloten." #: ../LongoMatch/Handlers/EventsManager.cs:230 msgid "An error has occurred in the video editor." msgstr "Een fout heeft plaatsgevonden in de videobewerker." #: ../LongoMatch/Handlers/EventsManager.cs:231 msgid "Please, try again." msgstr "Probeer het nogmaals, alstublieft." #: ../LongoMatch/Handlers/EventsManager.cs:266 msgid "The stop time is smaller than the start time.The play will not be added." msgstr "" "De stoptijd ligt voor de starttijd. De spelsituatie wordt niet toegevoegd." #: ../LongoMatch/Handlers/EventsManager.cs:341 msgid "Please, close the opened project to play the playlist." msgstr "" "Sluit a.u.b. het geopende project om de afspeellijst te kunnen weergeven." #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "Sectie" #: ../LongoMatch/IO/CSVExport.cs:83 ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "Starttijd" #: ../LongoMatch/IO/CSVExport.cs:84 ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "Stoptijd" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "CSV werd succesvol geëxporteerd." #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Kenmerk" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Speler" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Categorie" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "" "The project will be saved to a file. You can insert it later into the " "database using the \"Import project\" function once you copied the video file " "to your computer" msgstr "" "Het project wordt in een bestand opgelagen. U kunt het later met de " "functie »Project importeren« aan de database toevoegen, zodra u het " "videobestand naar uw computer heeft gekopieerd." #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "Project werd succesvol opgeslagen." #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "Project importeren" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "Fout bij het importeren van het project:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "Het project bestaat al als bestand:" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "Wilt u deze overschrijven?" #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "Project werd succesvol geïmporteerd." #: ../LongoMatch/Utils/ProjectUtils.cs:193 msgid "No capture devices were found." msgstr "Er werd geen opnameapparatuur gevonden." #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "This file is already used in another Project." msgstr "Dit bestand wordt reeds in een ander project gebruikt." #: ../LongoMatch/Utils/ProjectUtils.cs:220 msgid "Select a different one to continue." msgstr "Kies een andere om door te gaan." #: ../LongoMatch/Utils/ProjectUtils.cs:244 msgid "Select Export File" msgstr "Kies export bestand" #: ../LongoMatch/Utils/ProjectUtils.cs:273 msgid "Creating video thumbnails. This can take a while." msgstr "Videopictogrammen worden gemaakt. Dit kan enige tijd duren." #: ../CesarPlayer/Gui/CapturerBin.cs:261 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "U gaat nu de huidige opname stoppen en beëindigen.\n" "Wilt u hiermee door gaan?" #: ../CesarPlayer/Gui/CapturerBin.cs:267 msgid "Finalizing file. This can take a while" msgstr "Bestand afronden. Dit kan enige tijd duren." #: ../CesarPlayer/Gui/CapturerBin.cs:302 msgid "Device disconnected. The capture will be paused" msgstr "Apparaat werd losgekoppeld. De opname wordt onderbroken." #: ../CesarPlayer/Gui/CapturerBin.cs:311 msgid "Device reconnected.Do you want to restart the capture?" msgstr "" "Het apparaat werd hernieuwd aangesloten. Wilt u de opname herstarten?" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "Tijd:" #: ../CesarPlayer/Utils/Device.cs:83 msgid "Default device" msgstr "Standaard apparaat" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "Ongeldig video bestand:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:81 msgid "Fake live source" msgstr "Simulatie live bron" #~ msgid "GConf configured device" #~ msgstr "Door GConf geconfigureerd apparaat" #~ msgid "You can't delete the last section" #~ msgstr "U kunt de laatste sectie niet verwijderen" #~ msgid "DV camera" #~ msgstr "DV camera" #~ msgid "GConf Source" #~ msgstr "GConf bron" longomatch-0.16.8/po/pt.po0000644000175000017500000012070111601631101012252 00000000000000# LongoMatch Portuguese Translation # Copyright (C) 2010 # This file is distributed under the same license as the longomatch package. # João Paulo Azevedo , 2010 # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-06-05 15:10+0200\n" "PO-Revision-Date: 2010-06-07 01:49-0000\n" "Last-Translator: João Paulo Azevedo \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:205 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch: O Treinador Digital" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "Ferramenta desportiva de análise vídeo para Treinadores" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "O ficheiro que está a tentar carregar não é uma lista de reprodução válida" #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Não definida" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "nome" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:197 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:161 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "Ordenar por nome" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:198 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:162 msgid "Sort by start time" msgstr "Ordenador por tempo incial" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:199 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:163 msgid "Sort by stop time" msgstr "Ordenar por tempo final" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:200 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:164 msgid "Sort by duration" msgstr "Ordenar por duração" #: ../LongoMatch/Time/MediaTimeNode.cs:357 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:46 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 #: ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Nome" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 #: ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Equipa" # Será antes reproduzir #: ../LongoMatch/Time/MediaTimeNode.cs:359 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Início" # Será antes Parar ou Final #: ../LongoMatch/Time/MediaTimeNode.cs:360 msgid "Stop" msgstr "Fim" #: ../LongoMatch/Time/MediaTimeNode.cs:361 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:293 msgid "Tags" msgstr "Etiquetas" #: ../LongoMatch/Main.cs:163 msgid "Some elements from the previous version (database, templates and/or playlists) have been found." msgstr "Alguns elementos da versão anterior (base de dados, modelos e/ou listas de reprodução) foram encontrados." #: ../LongoMatch/Main.cs:164 msgid "Do you want to import them?" msgstr "Quer importá-los?" #: ../LongoMatch/Main.cs:229 msgid "The application has finished with an unexpected error." msgstr "A aplicação terminou com um erro não esperado." #: ../LongoMatch/Main.cs:230 msgid "A log has been saved at: " msgstr "Um registo foi gravado em: " #: ../LongoMatch/Main.cs:231 msgid "Please, fill a bug report " msgstr "Se faz favor, preencha um relatório de erro" #: ../LongoMatch/Gui/MainWindow.cs:128 msgid "The file associated to this project doesn't exist." msgstr "O ficheiro associado a este projecto não existe." #: ../LongoMatch/Gui/MainWindow.cs:129 msgid "If the location of the file has changed try to edit it with the database manager." msgstr "Se a localização do ficheiro mudou, tente editá-la com o gestor da base de dados." #: ../LongoMatch/Gui/MainWindow.cs:139 msgid "An error occurred opening this project:" msgstr "Ocorreu um erro ao abrir o projecto:" #: ../LongoMatch/Gui/MainWindow.cs:189 msgid "Loading newly created project..." msgstr "Carregando o novo projecto..." #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "An error occured saving the project:\n" msgstr "Ocurreu um erro ao gravar o projecto:\n" #: ../LongoMatch/Gui/MainWindow.cs:202 msgid "The video file and a backup of the project has been saved. Try to import it later:\n" msgstr "O ficheiro vídeo e uma cópia do projecto foram guardados. Tente importar mais tarde:\n" #: ../LongoMatch/Gui/MainWindow.cs:312 msgid "Do you want to close the current project?" msgstr "Quer encerrar o projecto actual?" # Usar em vez de "actual", "em uso" #: ../LongoMatch/Gui/MainWindow.cs:519 msgid "The actual project will be closed due to an error in the media player:" msgstr "O projecto actual será encerrado devido a um erro no reprodutor vídeo:" #: ../LongoMatch/Gui/MainWindow.cs:602 msgid "An error occured in the video capturer and the current project will be closed:" msgstr "Ocorreu um erro no capturador de vídeo e o projecto actual será encerrado:" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Ficheiros dos Modelos" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:166 msgid "The template has been modified. Do you want to save it? " msgstr "O modelo foi alterado. Quer gravá-lo? " #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:188 msgid "Template name" msgstr "Nome do Modelo" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:208 msgid "You cannot create a template with a void name" msgstr "Não pode criar um modelo com um nome vazio" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:214 msgid "A template with this name already exists" msgstr "Um modelo com este nome já existe" # Será mais correcto em vez de "padrão", usar "por defeito" ou "inicial" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:240 msgid "You can't delete the 'default' template" msgstr "Não pode eleminar o modelo padrão" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:245 msgid "Do you really want to delete the template: " msgstr "Quer realmente eleminar o modelo: " #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Esta tecla de atalho já está em uso." #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "Capturando a imagem: " #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Concluído" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:90 msgid "Low" msgstr "Baixa" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:135 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:91 msgid "Normal" msgstr "Normal" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:92 msgid "Good" msgstr "Boa" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:141 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:93 msgid "Extra" msgstr "Extra" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:177 msgid "Save Video As ..." msgstr "Gravar vídeo como ..." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:64 msgid "The Project has been edited, do you want to save the changes?" msgstr "O projecto foi editado, quer gravar as alterações?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:89 msgid "A Project is already using this file." msgstr "Já existe um projecto a utilizar este ficheiro." # Em vez de "actualmente" usar "de momento" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:102 msgid "This Project is actually in use." msgstr "Este projecto está actualmente em uso" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:103 msgid "Close it first to allow its removal from the database" msgstr "Encerrre primeiro para pemitir a sua remoção da base de dados" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:109 msgid "Do you really want to delete:" msgstr "Quer realmente apagar:" # Poderia suprimir "actualmente" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:146 msgid "The Project you are trying to load is actually in use." msgstr "O projecto que está a tentar carregar está em actualmente uso" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:146 msgid "Close it first to edit it" msgstr "Encerre-o primeiro para editar" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:170 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "Guardar projecto" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "Guardar ficheiro como..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:419 msgid "Keep original size" msgstr "Manter o tamanho original" # Tenho dúvidas #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:439 msgid "GConf configured device" msgstr "Dispositivo GConf configurado" # Em vez de "fonte", usar "origem" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:452 msgid "DirectShow Source" msgstr "Fonte DirectShow" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:453 msgid "Unknown" msgstr "Desconhecido" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:468 msgid "Output file" msgstr "Ficheiro de saída" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:480 msgid "Open file..." msgstr "Abrir ficheiro..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:497 msgid "Analyzing video file:" msgstr "Analisando o ficheiro vídeo:" # Dúvidas se não há outra palavra mais adequada a nível da informática em Português #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:502 msgid "This file doesn't contain a video stream." msgstr "O ficheiro não contém fluxo de vídeo." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:504 msgid "This file contains a video stream but its length is 0." msgstr "O ficheiro contém um fluxo de vídeo mas o seu tamanho é 0." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:571 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:476 msgid "Local Team Template" msgstr "Modelo da Equipa da Casa" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:584 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:414 msgid "Visitor Team Template" msgstr "Modelo da Equipa Visitante" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:125 msgid "none" msgstr "nenhuma" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "You are about to delete a category and all the plays added to this category. Do you want to proceed?" msgstr "Está prestes a apagar uma categoria e todas as jogadas adicionadas a esta categoria. Quer continuar?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:125 msgid "You can't delete the last section" msgstr "Não pode apagar a última secção" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:201 msgid "New template" msgstr "Novo modelo" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:205 msgid "The template name is void." msgstr "O nomr fo modelo está vazio." #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:211 msgid "The template already exists.Do you want to overwrite it ?" msgstr "O modelo já existe. Quer reescrevê-lo?" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:86 msgid "The file you are trying to load is not a playlist or it's not compatible with the current version" msgstr "O ficheiro que está a tentar carregar não é uma lista de reprodução compatível com a versão actual" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:216 msgid "Open playlist" msgstr "Abrir lista de reprodução" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:231 msgid "New playlist" msgstr "Nova lista de reprodução" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:256 msgid "The playlist is empty!" msgstr "A lista de reprodução está vazia!" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:265 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:203 msgid "Please, select a video file." msgstr "Se faz favor, seleccione um ficheiro vídeo." #: ../LongoMatch/Gui/Component/PlayerProperties.cs:74 msgid "Choose an image" msgstr "Escolha uma imagem" # usar só "ficheiro" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:57 msgid "Filename" msgstr "Nome do ficheiro" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:86 msgid "File length" msgstr "Tamanho do ficheiro" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:87 msgid "Video codec" msgstr "Codec vídeo" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:88 msgid "Audio codec" msgstr "Codec audio" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:89 msgid "Format" msgstr "Formato" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:99 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Título" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:100 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:145 msgid "Local team" msgstr "Equipa da Casa" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:101 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:146 msgid "Visitor team" msgstr "Equipa Visitante" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:102 msgid "Season" msgstr "Época" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:103 msgid "Competition" msgstr "Competição" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:104 msgid "Result" msgstr "Resultado" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:105 msgid "Date" msgstr "Data" # Em vez de "jogada", usar "evento" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "Apagar jogada" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "Adicionar jogada" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Apagar " #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:137 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:267 msgid "Local Team" msgstr "Equipa da Casa" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:280 msgid "Visitor Team" msgstr "Equipa Visitante" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:139 msgid "No Team" msgstr "Nenhuma equipa" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:152 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:94 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:106 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:164 msgid "Edit" msgstr "Editar" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:153 msgid "Team Selection" msgstr "Escolha de equipa" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:155 msgid "Add tag" msgstr "Adicionar etiqueta" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:156 msgid "Tag player" msgstr "Etiquetar jogador" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:158 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:107 msgid "Delete" msgstr "Apagar" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:159 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:95 msgid "Delete key frame" msgstr "Apagar \"keyframe\"" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:160 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:97 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:109 msgid "Add to playlist" msgstr "Adicionar à lista de reprodução" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:162 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:96 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:108 msgid "Export to PGN images" msgstr "Exportar para imagens PNG" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:195 msgid "Edit name" msgstr "Editar nome" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:196 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 msgid "Sort Method" msgstr "Método de ordenação" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:472 #: ../LongoMatch/Gui/TreeView/TagsTreeView.cs:200 msgid "Do you want to delete the key frame for this play?" msgstr "Quer apagar a \"keyframe\" para esta jogada?" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Foto" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:56 msgid "Position" msgstr "Posição" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:61 msgid "Number" msgstr "Número" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:51 msgid "Lead Time" msgstr "Tempo de avanço" # Pensar em alternativas para este nome #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:56 msgid "Lag Time" msgstr "Tempo de atraso" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:61 msgid "Color" msgstr "Côr" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:66 msgid "Hotkey" msgstr "Tecla de atalho" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Editar título" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "Aplicar a velocidade de reprodução actual" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " seg" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 #: ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Duração" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "Velocidade de reprodução" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "Ficheiro não encontrado" #: ../LongoMatch/DB/Project.cs:541 msgid "The file you are trying to load is not a valid project" msgstr "O ficheiro que está a tentar carregar não é um projecto válido" #: ../LongoMatch/DB/DataBase.cs:136 msgid "Error retrieving the file info for project:" msgstr "Erro ao verificar a informação do ficheiro do projecto:" #: ../LongoMatch/DB/DataBase.cs:137 msgid "This value will be reset. Remember to change it later with the projects manager" msgstr "Este valor será reposto. Lembrar para alterá-lo mais tarde no gestor de projectos" #: ../LongoMatch/DB/DataBase.cs:138 msgid "Change Me" msgstr "Altere-me" #: ../LongoMatch/DB/DataBase.cs:215 msgid "The Project for this video file already exists." msgstr "O projecto para este ficheiro vídeo já existe." #: ../LongoMatch/DB/DataBase.cs:215 msgid "Try to edit it with the Database Manager" msgstr "Tentar editar com o gestor de base de dados" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:44 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:26 msgid "New Project" msgstr "Novo projecto" #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:64 msgid "New project using a video file" msgstr "Novo projecto utilizando ficheiro vídeo" #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:94 msgid "Live project using a capture device" msgstr "Projecto ao vivo utilizando dispositivo de captura" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:122 msgid "Live project using a fake capture device" msgstr "Projecto ao vivo utilizando falso dispositivo de captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:66 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." msgstr "" "Um projecto de captura está a decorrer.\n" "Pode continuar com o projecto actual,cancelar ou guardá-lo. \n" "\n" "Aviso: Se cancelar o projecto actual todas as alterações serão perdidas." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:95 msgid "Return" msgstr "Regressar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:120 msgid "Cancel capture" msgstr "Cancelar captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:145 msgid "Stop capture and save project" msgstr "Parar captura e guardar projecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:24 msgid "Categories Template" msgstr "Modelo de categorias" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:87 msgid "Tools" msgstr "Ferramentas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:224 msgid "Width" msgstr "Largura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:233 msgid "2 px" msgstr "2 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:234 msgid "4 px" msgstr "4 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:235 msgid "6 px" msgstr "6 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:236 msgid "8 px" msgstr "8 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:237 msgid "10 px" msgstr "10 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:250 msgid "Transparency" msgstr "Transparência" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:275 msgid "Colors" msgstr "Cores" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:394 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Desenhar-> D\n" "Limpar-> C\n" "Esconder-> S\n" "Mostrar-> S\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:48 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:142 msgid "Projects Manager" msgstr "Gestor de projectos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:104 msgid "Project Details" msgstr "Detalhes do projecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:156 msgid "_Export" msgstr "_Exportar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:24 msgid "Select a HotKey" msgstr "Select a tecla de atalho" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:37 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Pressionar uma combinação de teclas utilizando Shift+tecla ou Alt+tecla. \n" "Teclas de atalho com uma única tecla são também permitidas com Ctrl+tecla." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:63 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Carregar uma lista\n" "de reprodução ou\n" "criar nova." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:24 msgid "Tag play" msgstr "Etiquetar jogada" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:51 msgid "Projects Search:" msgstr "Procura de projectos:" # Ou será "jogada"? #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:66 msgid "Play:" msgstr "Jogada:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:74 msgid "Interval (frames/s):" msgstr "Intervalo (Imagem/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:82 msgid "Series Name:" msgstr "Nome da Série:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:136 msgid "Export to PNG images" msgstr "Exportar para imagens PNG" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:34 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Drawing Tool" msgstr "Ferramenta de desenho" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:78 msgid "Save to Project" msgstr "Guardar projecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:105 msgid "Save to File" msgstr "Guardar para ficheiro" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:86 msgid "Add Filter" msgstr "Adicionar filtro" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:123 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 msgid "_File" msgstr "_Ficheiro" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:126 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 msgid "_New Project" msgstr "_Novo projecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:130 msgid "_Open Project" msgstr "_Abrir projecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:133 msgid "_Quit" msgstr "_Sair" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "_Close Project" msgstr "_Fechar projecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:139 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 msgid "_Tools" msgstr "_Ferramentas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 msgid "Database Manager" msgstr "Gestos de base de dados" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:145 msgid "Categories Templates Manager" msgstr "Gestor de modelos de categorias" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:42 msgid "Templates Manager" msgstr "Gestor de modelos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:148 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 msgid "_View" msgstr "_Ver" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:151 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Full Screen" msgstr "Ecrã inteiro" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:155 msgid "Playlist" msgstr "Lista de reprodução" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:160 msgid "Capture Mode" msgstr "Modo de captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:162 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:165 msgid "Analyze Mode" msgstr "Modo de Análise" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 msgid "_Save Project" msgstr "_Guardar projecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:172 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:188 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 msgid "_Help" msgstr "_Ajuda" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:175 msgid "_About" msgstr "_Sobre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:177 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:179 msgid "Export Project To CSV File" msgstr "Exportar projecto para ficheiro CSV" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:182 msgid "Teams Templates Manager" msgstr "Gestor de modelos de Equipas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 msgid "Hide All Widgets" msgstr "Esconder todos os Widgets" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:191 msgid "_Drawing Tool" msgstr "_Ferramenta de Desenho" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:194 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:195 msgid "_Import Project" msgstr "_Importar Projecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:200 msgid "Free Capture Mode" msgstr "Modo de captura livre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:254 msgid "Plays" msgstr "Jogadas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:403 msgid "Creating video..." msgstr "Criando vídeo..." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:24 msgid "Player Details" msgstr "Detalhes do jogador" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:22 msgid "TransparentDrawingArea" msgstr "AreaDesenhoTransparente" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:81 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:95 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:60 msgid "Name:" msgstr "Nome:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:89 msgid "Position:" msgstr "Posição:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:99 msgid "Number:" msgstr "Número:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 msgid "Photo:" msgstr "Foto:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:30 msgid "Capture Progress" msgstr "Progresso da Captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:24 msgid "Category Details" msgstr "Detalhes da Categoria" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:40 msgid "Select template name" msgstr "Seleccionar nome do modelo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:84 msgid "Copy existent template:" msgstr "Copiar modelo existente" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:104 msgid "Players:" msgstr "Jogadores:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:45 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "Uma nova versão de Longomatch foi publicada em www.ylatuya.es!\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:55 msgid "The new version is " msgstr "A nova versão é " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:65 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "Pode fazer a descarga usando o link directo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:75 msgid "label7" msgstr "label7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:26 msgid "Tag players" msgstr "Etiquetar jogadores" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:80 msgid "New Before" msgstr "Novo antes" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:108 msgid "New After" msgstr "Novo depois" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:136 msgid "Remove" msgstr "Remover" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:199 msgid "Export" msgstr "Exportar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:24 msgid "Calendar" msgstr "Calendário" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:42 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "Não etiquetou nenhuma jogada ainda.\n" "Pode adicionar nova etiqueta utilizando a\n" " entrada de texto e clicando \"Adicionar etiqueta\"" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:95 msgid "Add Tag" msgstr "Adicionar etiqueta" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:60 msgid "Video Properties" msgstr "Propriedades Vídeo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Video Quality:" msgstr "Qualidade Vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "Size: " msgstr "Tamanho: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:119 msgid "Portable (4:3 - 320x240)" msgstr "Portátil (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:120 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:121 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:122 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:123 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "Full HD 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:143 msgid "Ouput Format:" msgstr "Formato de saída:" # Em vez de "legenda" usar "sobreposição" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:166 msgid "Enable Title Overlay" msgstr "Activar Legenda de título" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:177 msgid "Enable Audio (Experimental)" msgstr "Activar Audio (Experimental)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:195 msgid "File name: " msgstr "Nome do ficheiro: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:37 msgid "Cancel" msgstr "Cancelar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:47 msgid "Tag new play" msgstr "Etiquetar nova jogada" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:88 msgid "Data Base Migration" msgstr "Migração de base de dados" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:116 msgid "Playlists Migration" msgstr "Migração de listas de reprodução" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:144 msgid "Templates Migration" msgstr "Migração de modelos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:94 msgid "Color: " msgstr "Côr: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:115 msgid "Change" msgstr "Alterar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:135 msgid "HotKey:" msgstr "Tecla de Atalho:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:141 msgid "Competition:" msgstr "Competição:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:183 msgid "File:" msgstr "Ficheiro:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:311 msgid "_Calendar" msgstr "_Calendário" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:331 msgid "Visitor Team:" msgstr "Equipa Visitante:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:341 msgid "Local Goals:" msgstr "Golos Casa:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:351 msgid "Visitor Goals:" msgstr "Golos Visitante:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:361 msgid "Date:" msgstr "Data:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:371 msgid "Local Team:" msgstr "Equipa Casa:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:379 msgid "Categories Template:" msgstr "Modelo de Categorias:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:438 msgid "Season:" msgstr "Época:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:498 msgid "Audio Bitrate (kbps):" msgstr "Taxa de bits audio (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:524 msgid "Device:" msgstr "Dispositivo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:552 msgid "Video Size:" msgstr "Tamanho vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:562 msgid "Video Bitrate (kbps):" msgstr "Taxa de bits vídeo (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:599 msgid "Video Format:" msgstr "Formato vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:609 msgid "Video encoding properties" msgstr "Propriedades de codificação vídeo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lead time:" msgstr "Tempo de avanço:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:49 msgid "Lag time:" msgstr "Tempo de atraso:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:26 msgid "Open Project" msgstr "Abrir projecto" #: ../LongoMatch/Handlers/EventsManager.cs:181 msgid "You can't create a new play if the capturer is not recording." msgstr "Não pode criar uma nova jogada se o capturador não estiver a gravar." #: ../LongoMatch/Handlers/EventsManager.cs:214 msgid "The video edition has finished successfully." msgstr "A edição vídeo foi concluída com sucesso." #: ../LongoMatch/Handlers/EventsManager.cs:220 msgid "An error has occurred in the video editor." msgstr "Ocurreu um erro no editor de vídeo." #: ../LongoMatch/Handlers/EventsManager.cs:221 msgid "Please, try again." msgstr "Se faz favor, tente outra vez." #: ../LongoMatch/Handlers/EventsManager.cs:255 msgid "The stop time is smaller than the start time.The play will not be added." msgstr "O tempo de fim é anterior ao tempo de início. A jogada não será adicionada." #: ../LongoMatch/Handlers/EventsManager.cs:330 msgid "Please, close the opened project to play the playlist." msgstr "Se faz favor, feche o projecto aberto para reproduzir a lista de reprodução." #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "Secção" #: ../LongoMatch/IO/CSVExport.cs:83 #: ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "Tempo de Início" #: ../LongoMatch/IO/CSVExport.cs:84 #: ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "Tempo de fim" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "CSV exportado com sucesso." #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Etiqueta" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Jogador" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Categoria" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "The project will be saved to a file. You can insert it later into the database using the \"Import project\" function once you copied the video file to your computer" msgstr "Este projecto será guardado para um ficheiro. Pode inseri-lo mais tarde à base de dados utilizando a função \"Importar projecto\" assim que copiar o ficheiro vídeo para o computador" #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "Projecto guardado com sucesso" #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "Importar Projecto" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "Erro ao importar o projecto:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "Já existe um projecto para o ficheiro:" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "Quer reescrevê-lo?" #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "Projecto exportado com sucesso." #: ../LongoMatch/Utils/ProjectUtils.cs:207 msgid "This file is already used in another Project." msgstr "Este ficheiro já está em utilização por outro projecto." #: ../LongoMatch/Utils/ProjectUtils.cs:208 msgid "Select a different one to continue." msgstr "Seleccione um diferente para continuar." #: ../LongoMatch/Utils/ProjectUtils.cs:231 msgid "Select Export File" msgstr "Selecciona o ficheiro a exportar" #: ../LongoMatch/Utils/ProjectUtils.cs:260 msgid "Creating video thumbnails. This can take a while." msgstr "Criando miniaturas do vídeo. Isto pode demorar um pouco." #: ../CesarPlayer/Gui/CapturerBin.cs:282 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "Está prestes a parar e finalizar a captura actual. \n" "Quer continuar?" #: ../CesarPlayer/Gui/CapturerBin.cs:288 msgid "Finalizing file. This can take a while" msgstr "Finalizando ficheiro. isto pode demorar um pouco" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "Tempo" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "Ficheiro vídeo inválido:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:80 msgid "Fake live source" msgstr "Fonte ao vivo falsa" longomatch-0.16.8/po/POTFILES.in0000644000175000017500000001675111601631101013055 00000000000000[encoding: UTF-8] LongoMatch/longomatch.desktop.in.in LongoMatch/Playlist/IPlayList.cs LongoMatch/Playlist/PlayList.cs LongoMatch/Time/Time.cs LongoMatch/Time/Player.cs LongoMatch/Time/HotKey.cs LongoMatch/Time/Tag.cs LongoMatch/Time/SectionsTimeNode.cs LongoMatch/Time/PixbufTimeNode.cs LongoMatch/Time/MediaTimeNode.cs LongoMatch/Time/Drawing.cs LongoMatch/Time/PlayListTimeNode.cs LongoMatch/Time/TimeNode.cs LongoMatch/Main.cs LongoMatch/Updates/XmlUpdateParser.cs LongoMatch/Updates/Updater.cs LongoMatch/Gui/MainWindow.cs LongoMatch/Gui/Dialog/ProjectSelectionDialog.cs LongoMatch/Gui/Dialog/BusyDialog.cs LongoMatch/Gui/Dialog/TemplatesEditor.cs LongoMatch/Gui/Dialog/EditCategoryDialog.cs LongoMatch/Gui/Dialog/EndCaptureDialog.cs LongoMatch/Gui/Dialog/Win32CalendarDialog.cs LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs LongoMatch/Gui/Dialog/VideoEditionProperties.cs LongoMatch/Gui/Dialog/ProjectsManager.cs LongoMatch/Gui/Dialog/NewProjectDialog.cs LongoMatch/Gui/Dialog/EntryDialog.cs LongoMatch/Gui/Dialog/HotKeySelectorDialog.cs LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs LongoMatch/Gui/Dialog/TaggerDialog.cs LongoMatch/Gui/Dialog/TeamTemplateEditor.cs LongoMatch/Gui/Dialog/OpenProjectDialog.cs LongoMatch/Gui/Dialog/Migrator.cs LongoMatch/Gui/Dialog/SnapshotsDialog.cs LongoMatch/Gui/Dialog/DrawingTool.cs LongoMatch/Gui/Dialog/ProjectTemplateEditorDialog.cs LongoMatch/Gui/Dialog/EditPlayerDialog.cs LongoMatch/Gui/Dialog/UpdateDialog.cs LongoMatch/Gui/TransparentDrawingArea.cs LongoMatch/Gui/Popup/MessagePopup.cs LongoMatch/Gui/Popup/CalendarPopup.cs LongoMatch/Gui/Component/ProjectDetailsWidget.cs LongoMatch/Gui/Component/TaggerWidget.cs LongoMatch/Gui/Component/CategoryProperties.cs LongoMatch/Gui/Component/ProjectTemplateWidget.cs LongoMatch/Gui/Component/PlayListWidget.cs LongoMatch/Gui/Component/PlayersListTreeWidget.cs LongoMatch/Gui/Component/TimeAdjustWidget.cs LongoMatch/Gui/Component/TimeReferenceWidget.cs LongoMatch/Gui/Component/PlayerProperties.cs LongoMatch/Gui/Component/TeamTemplateWidget.cs LongoMatch/Gui/Component/DrawingWidget.cs LongoMatch/Gui/Component/NotesWidget.cs LongoMatch/Gui/Component/DrawingToolBox.cs LongoMatch/Gui/Component/ProjectListWidget.cs LongoMatch/Gui/Component/PlaysListTreeWidget.cs LongoMatch/Gui/Component/TagsTreeWidget.cs LongoMatch/Gui/Component/TimeLineWidget.cs LongoMatch/Gui/Component/ButtonsWidget.cs LongoMatch/Gui/Component/TimeScale.cs LongoMatch/Gui/TreeView/ListTreeViewBase.cs LongoMatch/Gui/TreeView/PlaysTreeView.cs LongoMatch/Gui/TreeView/TagsTreeView.cs LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs LongoMatch/Gui/TreeView/CategoriesTreeView.cs LongoMatch/Gui/TreeView/PlayListTreeView.cs LongoMatch/Gui/TreeView/PlayersTreeView.cs LongoMatch/DB/TagsTemplate.cs LongoMatch/DB/Project.cs LongoMatch/DB/TeamTemplate.cs LongoMatch/DB/DataBase.cs LongoMatch/DB/ProjectDescription.cs LongoMatch/DB/Sections.cs LongoMatch/Common/Enums.cs LongoMatch/AssemblyInfo.cs.in LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.BusyDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TeamTemplateEditor.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.TeamTemplateWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.Popup.CalendarPopup.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlaysListTreeWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayersListTreeWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs LongoMatch/gtk-gui/generated.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.NotesWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeLineWidget.cs LongoMatch/Compat/0.0/Playlist/IPlayList.cs LongoMatch/Compat/0.0/Playlist/PlayList.cs LongoMatch/Compat/0.0/Time/Time.cs LongoMatch/Compat/0.0/Time/SectionsTimeNode.cs LongoMatch/Compat/0.0/Time/PixbufTimeNode.cs LongoMatch/Compat/0.0/Time/MediaTimeNode.cs LongoMatch/Compat/0.0/Time/PlayListTimeNode.cs LongoMatch/Compat/0.0/Time/TimeNode.cs LongoMatch/Compat/0.0/PlayListMigrator.cs LongoMatch/Compat/0.0/DB/Project.cs LongoMatch/Compat/0.0/DB/DataBase.cs LongoMatch/Compat/0.0/DB/MediaFile.cs LongoMatch/Compat/0.0/DB/Sections.cs LongoMatch/Compat/0.0/TemplatesMigrator.cs LongoMatch/Compat/0.0/IO/SectionsReader.cs LongoMatch/Compat/0.0/DatabaseMigrator.cs LongoMatch/Handlers/VideoDrawingsManager.cs LongoMatch/Handlers/EventsManager.cs LongoMatch/Handlers/Handlers.cs LongoMatch/Handlers/HotKeysManager.cs LongoMatch/Handlers/DrawingManager.cs LongoMatch/IO/CSVExport.cs LongoMatch/IO/SectionsWriter.cs LongoMatch/IO/SectionsReader.cs LongoMatch/IO/XMLReader.cs LongoMatch/Utils/ProjectUtils.cs CesarPlayer/MultimediaFactory.cs CesarPlayer/Gui/PlayerBin.cs CesarPlayer/Gui/CapturerBin.cs CesarPlayer/Gui/VolumeWindow.cs CesarPlayer/Editor/IVideoSplitter.cs CesarPlayer/Editor/IVideoEditor.cs CesarPlayer/Editor/VideoSegment.cs CesarPlayer/Editor/GstVideoSplitter.cs CesarPlayer/AssemblyInfo.cs.in CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs CesarPlayer/gtk-gui/generated.cs CesarPlayer/gtk-gui/LongoMatch.Gui.CapturerBin.cs CesarPlayer/gtk-gui/LongoMatch.Gui.VolumeWindow.cs CesarPlayer/Utils/Device.cs CesarPlayer/Utils/IFramesCapturer.cs CesarPlayer/Utils/IMetadataReader.cs CesarPlayer/Utils/TimeString.cs CesarPlayer/Utils/PreviewMediaFile.cs CesarPlayer/Utils/FramesCapturer.cs CesarPlayer/Utils/MediaFile.cs CesarPlayer/Common/Enum.cs CesarPlayer/Common/Handlers.cs CesarPlayer/Capturer/GstCameraCapturer.cs CesarPlayer/Capturer/FakeCapturer.cs CesarPlayer/Capturer/ICapturer.cs CesarPlayer/Capturer/ObjectManager.cs CesarPlayer/Player/GstPlayer.cs CesarPlayer/Player/IPlayer.cs CesarPlayer/Player/ObjectManager.cs longomatch-0.16.8/po/zh_CN.po0000644000175000017500000011405011601631101012630 00000000000000# Chinese (China) translation for longomatch. # Copyright (C) 2010 longomatch's COPYRIGHT HOLDER # This file is distributed under the same license as the longomatch package. # Yinghua_Wang , 2010. # msgid "" msgstr "" "Project-Id-Version: longomatch master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=longomatch&component=general\n" "POT-Creation-Date: 2010-10-18 08:20+0000\n" "PO-Revision-Date: 2010-10-27 23:51+0800\n" "Last-Translator: Yinghua Wang \n" "Language-Team: Chinese (China) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:205 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch:数字教练" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "教练的体育视频分析工具" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "您试图加载的文件不是有效的播放列表" #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "未定义" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "名称" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:161 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "按名称排序" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:69 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:162 msgid "Sort by start time" msgstr "按开始时间排序" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:163 msgid "Sort by stop time" msgstr "按结束时间排序" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:164 msgid "Sort by duration" msgstr "按持续时间排序" #: ../LongoMatch/Time/MediaTimeNode.cs:354 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:47 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "名称" #: ../LongoMatch/Time/MediaTimeNode.cs:355 ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "队" #: ../LongoMatch/Time/MediaTimeNode.cs:356 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "开始" #: ../LongoMatch/Time/MediaTimeNode.cs:357 msgid "Stop" msgstr "停止" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:293 msgid "Tags" msgstr "标签" #: ../LongoMatch/Main.cs:164 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "发现了上一版本(数据库、模板和/或播放列表)中的一些元素。" #: ../LongoMatch/Main.cs:165 msgid "Do you want to import them?" msgstr "您想导入它们吗?" #: ../LongoMatch/Main.cs:230 msgid "The application has finished with an unexpected error." msgstr "应用程序因异常错误而结束。" #: ../LongoMatch/Main.cs:231 msgid "A log has been saved at: " msgstr "一份日志保存在了:" #: ../LongoMatch/Main.cs:232 msgid "Please, fill a bug report " msgstr "请填写一份 bug 报告" #: ../LongoMatch/Gui/MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:280 msgid "Visitor Team" msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:267 msgid "Local Team" msgstr "" #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "The file associated to this project doesn't exist." msgstr "与此项目相关的文件不存在。" #: ../LongoMatch/Gui/MainWindow.cs:141 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "如果该文件的位置更改了,尝试通过数据库编辑它。" #: ../LongoMatch/Gui/MainWindow.cs:152 msgid "An error occurred opening this project:" msgstr "打开这个项目时发生了一个错误:" #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "Loading newly created project..." msgstr "正在加载新创建的项目..." #: ../LongoMatch/Gui/MainWindow.cs:213 msgid "An error occured saving the project:\n" msgstr "保存这个项目时发生了一个错误:\n" #: ../LongoMatch/Gui/MainWindow.cs:214 msgid "" "The video file and a backup of the project has been saved. Try to import it " "later:\n" msgstr "视频文件和项目备份已经保存。请尝试稍后导入它:\n" #: ../LongoMatch/Gui/MainWindow.cs:328 msgid "Do you want to close the current project?" msgstr "您想关闭当前项目吗?" #: ../LongoMatch/Gui/MainWindow.cs:535 msgid "The actual project will be closed due to an error in the media player:" msgstr "由于播放器的一个错误,实际的项目将关闭:" #: ../LongoMatch/Gui/MainWindow.cs:618 msgid "" "An error occured in the video capturer and the current project will be " "closed:" msgstr "视频采集设备发生了一个错误,当前项目将关闭:" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "模板文件" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:162 msgid "The template has been modified. Do you want to save it? " msgstr "模板已经修改。您想保存它吗?" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:184 msgid "Template name" msgstr "模板名称" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:204 msgid "You cannot create a template with a void name" msgstr "您不能创建一个名字为空的模板" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:210 msgid "A template with this name already exists" msgstr "同名的模板已经存在" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:236 msgid "You can't delete the 'default' template" msgstr "您不能删除“默认”模板" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:241 msgid "Do you really want to delete the template: " msgstr "您是否真的想删除该模板:" #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "这个热键已经在使用。" #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "截取帧:" #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "完成" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:90 msgid "Low" msgstr "低" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:91 msgid "Normal" msgstr "正常" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:92 msgid "Good" msgstr "好" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:93 msgid "Extra" msgstr "超好" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:172 msgid "Save Video As ..." msgstr "保存视频为..." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70 msgid "The Project has been edited, do you want to save the changes?" msgstr "项目编辑过了,您想保存更改吗?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:95 msgid "A Project is already using this file." msgstr "一个项目已经使用了这个文件。" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "This Project is actually in use." msgstr "项目实际已在使用中。" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:113 msgid "Close it first to allow its removal from the database" msgstr "先关闭它,以便能够从数据库中移除" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:119 msgid "Do you really want to delete:" msgstr "您是否真的想删除:" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "The Project you are trying to load is actually in use." msgstr "您试图加载的项目实际已在使用中。" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "Close it first to edit it" msgstr "先关闭它来编辑它" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:196 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "保存项目" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "保存文件为..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:389 msgid "DirectShow Source" msgstr "DirectShow 源" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:390 msgid "Unknown" msgstr "未知" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:438 msgid "Keep original size" msgstr "保持原始尺寸" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:461 msgid "Output file" msgstr "输出文件" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:473 msgid "Open file..." msgstr "打开文件..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:490 msgid "Analyzing video file:" msgstr "正在分析视频文件:" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:495 msgid "This file doesn't contain a video stream." msgstr "此文件不包含视频流。" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:497 msgid "This file contains a video stream but its length is 0." msgstr "此文件包含一个视频流但长度为 0。" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:564 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:475 msgid "Local Team Template" msgstr "" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:577 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:413 msgid "Visitor Team Template" msgstr "" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:125 msgid "none" msgstr "无" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "您正要删除一个分类及其中的所有比赛。您要继续吗?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:126 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:135 msgid "A template needs at least one category" msgstr "模板至少需要一个分类" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:217 msgid "New template" msgstr "新模板" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:221 msgid "The template name is void." msgstr "模板名为空。" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:227 msgid "The template already exists.Do you want to overwrite it ?" msgstr "模板已经存在。您想覆盖它吗?" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:86 msgid "" "The file you are trying to load is not a playlist or it's not compatible " "with the current version" msgstr "您试图加载的文件不是播放列表,或者它与当前版本不兼容。" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:216 msgid "Open playlist" msgstr "打开播放列表" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:231 msgid "New playlist" msgstr "新建播放列表" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:256 msgid "The playlist is empty!" msgstr "播放列表为空!" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:265 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:215 msgid "Please, select a video file." msgstr "请选择一个视频文件。" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:88 msgid "Choose an image" msgstr "选择一幅图像" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "文件名" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "File length" msgstr "文件长度" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Video codec" msgstr "视频编解码器" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Audio codec" msgstr "音频编解码器" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:122 msgid "Format" msgstr "格式" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "标题" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 msgid "Local team" msgstr "" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 msgid "Visitor team" msgstr "" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Season" msgstr "赛季" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Competition" msgstr "" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Result" msgstr "结果" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:138 msgid "Date" msgstr "日期" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "删除" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:81 msgid "None" msgstr "无" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:157 msgid "No Team" msgstr "" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:164 msgid "Edit" msgstr "编辑" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:171 msgid "Team Selection" msgstr "" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:173 msgid "Add tag" msgstr "添加标签" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:174 msgid "Tag player" msgstr "" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:176 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 msgid "Delete" msgstr "删除" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:177 msgid "Delete key frame" msgstr "删除关键帧" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:178 msgid "Add to playlist" msgstr "添加到播放列表" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:180 msgid "Export to PGN images" msgstr "导出为 PGN 图像" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:338 msgid "Do you want to delete the key frame for this play?" msgstr "" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:66 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:71 msgid "Edit name" msgstr "编辑名称" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:67 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:72 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 msgid "Sort Method" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "照片" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:55 msgid "Birth Day" msgstr "生日" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:60 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:180 msgid "Height" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:65 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:190 msgid "Weight" msgstr "体重" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:70 msgid "Position" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:75 msgid "Number" msgstr "" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:52 msgid "Lead Time" msgstr "" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:57 msgid "Lag Time" msgstr "" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:62 msgid "Color" msgstr "颜色" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:67 msgid "Hotkey" msgstr "热键" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "编辑标题" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " 秒" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "持续时间" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "找不到文件" #: ../LongoMatch/DB/Project.cs:543 msgid "The file you are trying to load is not a valid project" msgstr "您试图加载的文件不是有效的项目" #: ../LongoMatch/DB/DataBase.cs:137 msgid "Error retrieving the file info for project:" msgstr "读取项目的文件信息出错:" #: ../LongoMatch/DB/DataBase.cs:138 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "这个值将被重设。记得以后在项目管理器中修改它" #: ../LongoMatch/DB/DataBase.cs:139 msgid "Change Me" msgstr "修改我" #: ../LongoMatch/DB/DataBase.cs:216 msgid "The Project for this video file already exists." msgstr "此视频文件的项目已经存在。" #: ../LongoMatch/DB/DataBase.cs:216 msgid "Try to edit it with the Database Manager" msgstr "尝试通过数据库管理器编辑它" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:44 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:26 msgid "New Project" msgstr "新建项目" #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:64 msgid "New project using a video file" msgstr "使用视频文件新建项目" #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:94 msgid "Live project using a capture device" msgstr "" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:122 msgid "Live project using a fake capture device" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:66 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." "" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:95 msgid "Return" msgstr "返回" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:120 msgid "Cancel capture" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:145 msgid "Stop capture and save project" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:24 msgid "Categories Template" msgstr "分类模板" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:75 msgid "Tools" msgstr "工具" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:212 msgid "Color" msgstr "颜色" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:233 msgid "Width" msgstr "宽度" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:242 msgid "2 px" msgstr "2 像素" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:243 msgid "4 px" msgstr "4 像素" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:244 msgid "6 px" msgstr "6 像素" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:245 msgid "8 px" msgstr "8 像素" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:246 msgid "10 px" msgstr "10 像素" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:259 msgid "Transparency" msgstr "透明度" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:308 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:48 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:142 msgid "Projects Manager" msgstr "项目管理器" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:104 msgid "Project Details" msgstr "项目详情" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:156 msgid "_Export" msgstr "导出(_E)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:24 msgid "Select a HotKey" msgstr "选择一个热键" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:37 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "按下一个带 Shift 或 Alt 键的组合键。\n" "Ctrl 键加一个键的热键也可以。" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:63 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "加载一个播放列表\n" "或创建一个\n" "新播放列表。" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:24 msgid "Tag play" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:51 msgid "Projects Search:" msgstr "项目搜索:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:65 msgid "Play:" msgstr "播放:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:73 msgid "Interval (frames/s):" msgstr "间隔(帧/秒):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:81 msgid "Series Name:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:135 msgid "Export to PNG images" msgstr "导出为 PNG 图像" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:34 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Drawing Tool" msgstr "绘图工具" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:78 msgid "Save to Project" msgstr "保存到项目" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:105 msgid "Save to File" msgstr "保存到文件" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:90 msgid "Add Filter" msgstr "添加过滤器" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:123 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 msgid "_File" msgstr "文件(_F)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:126 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 msgid "_New Project" msgstr "新建项目(_N)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:130 msgid "_Open Project" msgstr "打开项目(_O)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:133 msgid "_Quit" msgstr "退出(_Q)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "_Close Project" msgstr "关闭项目(_C)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:139 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 msgid "_Tools" msgstr "工具(_T)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 msgid "Database Manager" msgstr "数据库管理器" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:145 msgid "Categories Templates Manager" msgstr "分类模板管理器" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:42 msgid "Templates Manager" msgstr "模板管理器" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:148 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 msgid "_View" msgstr "查看(_V)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:151 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Full Screen" msgstr "全屏" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:155 msgid "Playlist" msgstr "播放列表" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:160 msgid "Capture Mode" msgstr "截取模式" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:162 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:165 msgid "Analyze Mode" msgstr "分析模式" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 msgid "_Save Project" msgstr "保存项目(_S)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:172 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:188 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 msgid "_Help" msgstr "帮助(_H)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:175 msgid "_About" msgstr "关于(_A)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:177 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:179 msgid "Export Project To CSV File" msgstr "将项目导出为 CSV 文件" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:182 msgid "Teams Templates Manager" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 msgid "Hide All Widgets" msgstr "隐藏所有组件" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:191 msgid "_Drawing Tool" msgstr "绘图工具(_D)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:194 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:195 msgid "_Import Project" msgstr "导入项目(_I)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:200 msgid "Free Capture Mode" msgstr "自由截取模式" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:254 msgid "Plays" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:403 msgid "Creating video..." msgstr "正在创建视频..." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:24 msgid "Player Details" msgstr "选手详情" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:22 msgid "TransparentDrawingArea" msgstr "透明绘图区" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:108 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:310 msgid "_Calendar" msgstr "日历(_C)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:142 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:93 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:60 msgid "Name:" msgstr "姓名:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:150 msgid "Position:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:160 msgid "Number:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:170 msgid "Photo:" msgstr "照片:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:200 msgid "Birth day" msgstr "生日" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:30 msgid "Capture Progress" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:24 msgid "Category Details" msgstr "分类详情" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:40 msgid "Select template name" msgstr "选择模板名称" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:83 msgid "Copy existent template:" msgstr "复制现有模板:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:101 msgid "Players:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:45 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "新版的 LongoMatch 在 www.ylatuya.es 上发布了!\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:55 msgid "The new version is " msgstr "新版本为 " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:65 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "您可以通过此链接直接下载:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:75 msgid "label7" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:26 msgid "Tag players" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:80 msgid "New Before" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:108 msgid "New After" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:136 msgid "Remove" msgstr "移除" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:199 msgid "Export" msgstr "导出" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:24 msgid "Calendar" msgstr "日历" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:42 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:94 msgid "Add Tag" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:60 msgid "Video Properties" msgstr "视频属性" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Video Quality:" msgstr "视频质量:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "Size: " msgstr "大小:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:119 msgid "Portable (4:3 - 320x240)" msgstr "便携(4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:120 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:121 msgid "TV (4:3 - 720x576)" msgstr "电视(4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:122 msgid "HD 720p (16:9 - 1280x720)" msgstr "高清 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:123 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "全高清 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:143 msgid "Ouput Format:" msgstr "输出格式:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:166 msgid "Enable Title Overlay" msgstr "启用标题覆盖" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:177 msgid "Enable Audio (Experimental)" msgstr "启用音频(实验)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:195 msgid "File name: " msgstr "文件名:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:37 msgid "Cancel" msgstr "取消" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:47 msgid "Tag new play" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:88 msgid "Data Base Migration" msgstr "合并数据库" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:116 msgid "Playlists Migration" msgstr "合并播放列表" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:144 msgid "Templates Migration" msgstr "合并模板" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:94 msgid "Color: " msgstr "颜色:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:115 msgid "Change" msgstr "更改" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:135 msgid "HotKey:" msgstr "热键:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:140 msgid "Competition:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:182 msgid "File:" msgstr "文件:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:330 msgid "Visitor Team:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:340 msgid "Local Goals:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:350 msgid "Visitor Goals:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:360 msgid "Date:" msgstr "日期:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:370 msgid "Local Team:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:378 msgid "Categories Template:" msgstr "分类模板:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:437 msgid "Season:" msgstr "赛季:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:497 msgid "Audio Bitrate (kbps):" msgstr "音频码率(kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:523 msgid "Device:" msgstr "设备:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:551 msgid "Video Size:" msgstr "视频大小:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:561 msgid "Video Bitrate (kbps):" msgstr "视频码率(kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:598 msgid "Video Format:" msgstr "视频格式:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:608 msgid "Video encoding properties" msgstr "视频编码属性" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:40 msgid "Lead time:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:48 msgid "Lag time:" msgstr "" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:26 msgid "Open Project" msgstr "打开项目" #: ../LongoMatch/Handlers/EventsManager.cs:191 msgid "You can't create a new play if the capturer is not recording." msgstr "" #: ../LongoMatch/Handlers/EventsManager.cs:224 msgid "The video edition has finished successfully." msgstr "视频编辑成功完成。" #: ../LongoMatch/Handlers/EventsManager.cs:230 msgid "An error has occurred in the video editor." msgstr "视频编辑器出现了错误。" #: ../LongoMatch/Handlers/EventsManager.cs:231 msgid "Please, try again." msgstr "请重新尝试。" #: ../LongoMatch/Handlers/EventsManager.cs:266 msgid "" "The stop time is smaller than the start time.The play will not be added." msgstr "" #: ../LongoMatch/Handlers/EventsManager.cs:341 msgid "Please, close the opened project to play the playlist." msgstr "请关闭打开的项目来播放播放列表。" #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "" #: ../LongoMatch/IO/CSVExport.cs:83 ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "开始时间" #: ../LongoMatch/IO/CSVExport.cs:84 ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "结束时间" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "成功导出为 CSV。" #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "分类" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "" "The project will be saved to a file. You can insert it later into the " "database using the \"Import project\" function once you copied the video " "file to your computer" msgstr "" "项目将保存为一个文件。将视频文件复制到计算机中后,您可以通过“导入项目”功能将" "它插入到数据库中" #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "成功保存了项目。" #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "导入项目" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "导入项目出错:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "此文件已经有了对应的项目:" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "您想覆盖它吗?" #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "成功导入了项目。" #: ../LongoMatch/Utils/ProjectUtils.cs:193 msgid "No capture devices were found." msgstr "" #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "This file is already used in another Project." msgstr "另一个项目中已经使用了此文件。" #: ../LongoMatch/Utils/ProjectUtils.cs:220 msgid "Select a different one to continue." msgstr "请另选一个以继续。" #: ../LongoMatch/Utils/ProjectUtils.cs:244 msgid "Select Export File" msgstr "选择导出文件" #: ../LongoMatch/Utils/ProjectUtils.cs:273 msgid "Creating video thumbnails. This can take a while." msgstr "创建视频缩略图。这需要一些时间。" #: ../CesarPlayer/Gui/CapturerBin.cs:261 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" #: ../CesarPlayer/Gui/CapturerBin.cs:267 msgid "Finalizing file. This can take a while" msgstr "对文件作最后处理。这需要一些时间" #: ../CesarPlayer/Gui/CapturerBin.cs:302 msgid "Device disconnected. The capture will be paused" msgstr "" #: ../CesarPlayer/Gui/CapturerBin.cs:311 msgid "Device reconnected.Do you want to restart the capture?" msgstr "" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "时间:" #: ../CesarPlayer/Utils/Device.cs:83 msgid "Default device" msgstr "默认设备" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "无效的视频文件:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:81 msgid "Fake live source" msgstr "" longomatch-0.16.8/po/gl.po0000644000175000017500000012407111601631101012235 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # Fran Diéguez , 2010. # msgid "" msgstr "" "Project-Id-Version: longomatch\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=longomatch&component=general\n" "POT-Creation-Date: 2010-11-30 22:36+0000\n" "PO-Revision-Date: 2010-12-11 00:20+0100\n" "Last-Translator: Fran Diéguez \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Poedit-Language: Galician\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch: o adestrador dixital" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "Ferramenta que analiza vídeos deportivos para adestradores" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "" "O ficheiro que está tentando cargar non é unha lista de reprodución correcta" #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Sen definir" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "nome" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "Ordenar polo nome" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:69 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:154 msgid "Sort by start time" msgstr "Ordenar pola hora de inicio" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:155 msgid "Sort by stop time" msgstr "Ordenar pola hora de finalización" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:156 msgid "Sort by duration" msgstr "Ordenar pola duración" #: ../LongoMatch/Time/MediaTimeNode.cs:354 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:47 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Nome" #: ../LongoMatch/Time/MediaTimeNode.cs:355 ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Equipo" #: ../LongoMatch/Time/MediaTimeNode.cs:356 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Iniciar" #: ../LongoMatch/Time/MediaTimeNode.cs:357 msgid "Stop" msgstr "Deter" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:285 msgid "Tags" msgstr "Etiquetas" #: ../LongoMatch/Main.cs:164 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "" "Encontráronse algúns elementos da versión anterior (bases de datos, modelos " "e/ou listas de reprodución)." #: ../LongoMatch/Main.cs:165 msgid "Do you want to import them?" msgstr "Desexa importalos?" #: ../LongoMatch/Main.cs:230 msgid "The application has finished with an unexpected error." msgstr "O aplicativo terminou cun erro inesperado." #: ../LongoMatch/Main.cs:231 msgid "A log has been saved at: " msgstr "Gardouse un rexistro en:" #: ../LongoMatch/Main.cs:232 msgid "Please, fill a bug report " msgstr "Informe deste erro" #: ../LongoMatch/Gui/MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:272 msgid "Visitor Team" msgstr "Equipo visitante" #: ../LongoMatch/Gui/MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:259 msgid "Local Team" msgstr "Equipo local" #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "The file associated to this project doesn't exist." msgstr "O ficheiro que está asociado a este proxecto non existe." #: ../LongoMatch/Gui/MainWindow.cs:141 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "" "Se cambiou a localización do ficheiro probe a editalo co xestor da base de " "datos." #: ../LongoMatch/Gui/MainWindow.cs:152 msgid "An error occurred opening this project:" msgstr "Produciuse un erro ao abrir este proxecto:" #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "Loading newly created project..." msgstr "Cargando o proxecto recén creado..." #: ../LongoMatch/Gui/MainWindow.cs:213 msgid "An error occured saving the project:\n" msgstr "Produciuse un erro ao gardar o proxecto:\n" #: ../LongoMatch/Gui/MainWindow.cs:214 msgid "" "The video file and a backup of the project has been saved. Try to import it " "later:\n" msgstr "" "Gardouse o ficheiro de vídeo e a copia de seguranza do proxecto. Tente " "importalo máis tarde:\n" #: ../LongoMatch/Gui/MainWindow.cs:328 msgid "Do you want to close the current project?" msgstr "Desexa pechar o proxecto actual?" #: ../LongoMatch/Gui/MainWindow.cs:535 msgid "The actual project will be closed due to an error in the media player:" msgstr "O proxecto actual pecharase debido a un erro no reprodutor multimedia:" #: ../LongoMatch/Gui/MainWindow.cs:619 msgid "" "An error occured in the video capturer and the current project will be " "closed:" msgstr "" "Produciuse un erro no dispositivo de captura de vídeo e pecharase o proxecto " "actual:" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Ficheiros de modelos" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:162 msgid "The template has been modified. Do you want to save it? " msgstr "O modelo foi modificado. Desexa gardalo?" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:184 msgid "Template name" msgstr "Nome do modelo" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:204 msgid "You cannot create a template with a void name" msgstr "Non pode crear un modelo sen nome" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:210 msgid "A template with this name already exists" msgstr "Xa existe un modelo con ese nome" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:236 msgid "You can't delete the 'default' template" msgstr "Non pode eliminar o modelo 'predefinido'" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:241 msgid "Do you really want to delete the template: " msgstr "Desexa realmente eliminar o modelo?:" #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Esta tecla rápida xa está en uso." #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "Capturando o fotograma:" #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Feito" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:82 msgid "Low" msgstr "Baixo" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:83 msgid "Normal" msgstr "Normal" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Good" msgstr "Bo" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:85 msgid "Extra" msgstr "Extra" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:172 msgid "Save Video As ..." msgstr "Gardar o vídeo como..." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70 msgid "The Project has been edited, do you want to save the changes?" msgstr "O proxecto foi editado, desexa gardar os cambios?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:95 msgid "A Project is already using this file." msgstr "Un proxecto xa está usando este ficheiro." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "This Project is actually in use." msgstr "Este proxecto está actualmente en uso." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:113 msgid "Close it first to allow its removal from the database" msgstr "Debe pechar o proxecto antes de eliminalo da base de datos" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:119 msgid "Do you really want to delete:" msgstr "Desexa realmente eliminalo:" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "The Project you are trying to load is actually in use." msgstr "O proxecto que está intentando cargar está actualmente en uso." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "Close it first to edit it" msgstr "Pécheo antes de editalo" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:196 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "Gardar o proxecto" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "Gardar o ficheiro como..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:389 msgid "DirectShow Source" msgstr "Orixe «DirectShow»" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:390 msgid "Unknown" msgstr "Descoñecido" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:438 msgid "Keep original size" msgstr "Manter o tamaño orixinal" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:461 msgid "Output file" msgstr "Ficheiro de saída" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:473 msgid "Open file..." msgstr "Abrir ficheiro..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:490 msgid "Analyzing video file:" msgstr "Analizando o ficheiro de vídeo:" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:495 msgid "This file doesn't contain a video stream." msgstr "Este ficheiro non contén un fluxo de vídeo." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:497 msgid "This file contains a video stream but its length is 0." msgstr "Este ficheiro contén un fluxo de vídeo pero a súa lonxitude é 0." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:564 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:473 msgid "Local Team Template" msgstr "Modelo do equipo local" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:577 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:426 msgid "Visitor Team Template" msgstr "Modelo do equipo visitante" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:117 msgid "none" msgstr "ningún" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "" "Vai eliminar unha categoría e todas as xogadas engadidas a esa categoría. " "Desexa continuar?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:126 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:135 msgid "A template needs at least one category" msgstr "Un modelo necesita, cando menos, unha categoría" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:217 msgid "New template" msgstr "Novo modelo" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:221 msgid "The template name is void." msgstr "O nome do modelo está baleiro." #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:227 msgid "The template already exists. Do you want to overwrite it ?" msgstr "O modelo xa existe. Desexa sobrescribilo?" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:92 msgid "" "The file you are trying to load is not a playlist or it's not compatible " "with the current version" msgstr "" "O ficheiro que está tentando cargar non é unha lista de reprodución ou ben é " "incompatíbel coa versión actual" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:222 msgid "Open playlist" msgstr "Abrir unha lista de reprodución" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:237 msgid "New playlist" msgstr "Nova lista de reprodución" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:262 msgid "The playlist is empty!" msgstr "A lista de reprodución está baleira." #: ../LongoMatch/Gui/Component/PlayListWidget.cs:271 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:215 msgid "Please, select a video file." msgstr "Seleccione un ficheiro de vídeo." #: ../LongoMatch/Gui/Component/PlayerProperties.cs:90 msgid "Choose an image" msgstr "Escoller unha imaxe" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:169 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:271 msgid "No" msgstr "Non" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Nome do ficheiro" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "File length" msgstr "Lonxitude do ficheiro" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Video codec" msgstr "Códec de vídeo" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Audio codec" msgstr "Códec de son" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:122 msgid "Format" msgstr "Formato" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Título" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 msgid "Local team" msgstr "Equipo local" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 msgid "Visitor team" msgstr "Equipo visitante" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Season" msgstr "Tempada" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Competition" msgstr "Competición" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Result" msgstr "Resultado" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:138 msgid "Date" msgstr "Data" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "Borrar a xogada" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "Engadir unha nova xogada" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Eliminar" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:81 msgid "None" msgstr "Ningún" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:157 msgid "No Team" msgstr "Sen equipo" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:156 msgid "Edit" msgstr "Editar" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:171 msgid "Team Selection" msgstr "Selección do equipo" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:173 msgid "Add tag" msgstr "Etiquetar" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:174 msgid "Tag player" msgstr "Etiquetar un xogador" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:176 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 msgid "Delete" msgstr "Eliminar" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:177 msgid "Delete key frame" msgstr "Eliminar o fotograma chave" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:178 msgid "Add to playlist" msgstr "Engadir á lista de reprodución" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:180 msgid "Export to PGN images" msgstr "Exportar como imaxes PGN" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:338 msgid "Do you want to delete the key frame for this play?" msgstr "Desexa eliminar o fotograma chave desta xogada?" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:66 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:71 msgid "Edit name" msgstr "Editar o nome" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:67 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:72 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:145 msgid "Sort Method" msgstr "Método de ordenamento" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Fotografia" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:55 msgid "Play this match" msgstr "Reproducir este partido" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:60 msgid "Date of Birth" msgstr "Data de nacemento" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:65 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:211 msgid "Nationality" msgstr "Nacionalidade" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:181 msgid "Height" msgstr "Altura" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:75 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:191 msgid "Weight" msgstr "Peso" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:80 msgid "Position" msgstr "Posición" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:85 msgid "Number" msgstr "Número" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:270 msgid "Yes" msgstr "Si" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:52 msgid "Lead Time" msgstr "Inicio" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:57 msgid "Lag Time" msgstr "Fin" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:62 msgid "Color" msgstr "Cor" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:67 msgid "Hotkey" msgstr "Tecla rápida" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Editar o título" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "Aplicar a velocidade de reprodución actual" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " seg" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Duración" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "Velocidade de reprodución" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "Non foi posíbel encontrar o ficheiro" #: ../LongoMatch/DB/Project.cs:559 msgid "The file you are trying to load is not a valid project" msgstr "O proxecto que está tentando cargar non é un proxecto correcto" #: ../LongoMatch/DB/DataBase.cs:137 msgid "Error retrieving the file info for project:" msgstr "" "Produciuse un erro recuperando a información do ficheiro para o proxecto:" #: ../LongoMatch/DB/DataBase.cs:138 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "" "Este valor debe restabelecerse. Recordarme cambialo máis tarde co xestor de " "proxectos" #: ../LongoMatch/DB/DataBase.cs:139 msgid "Change Me" msgstr "Cambiarme" #: ../LongoMatch/DB/DataBase.cs:216 msgid "The Project for this video file already exists." msgstr "O proxecto para este ficheiro de vídeo xa existe." #: ../LongoMatch/DB/DataBase.cs:216 msgid "Try to edit it with the Database Manager" msgstr "Tente editalo co xestor da base de datos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:36 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:18 msgid "New Project" msgstr "Novo proxecto" #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:56 msgid "New project using a video file" msgstr "Novo proxecto usando un ficheiro de vídeo" #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:86 msgid "Live project using a capture device" msgstr "Proxecto en directo usando un dispositivo de captura" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:114 msgid "Live project using a fake capture device" msgstr "Proxecto en directo usando un dispositivo de captura falso" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:58 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." "" msgstr "" "Estase executando un proxecto de captura.\n" "Pode continuar coa captura actual, cancelala ou gardar o proxecto.\n" "\n" "Aviso: se cancela o proxecto actual perderanse todos os seus cambios." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:87 msgid "Return" msgstr "Volver" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:112 msgid "Cancel capture" msgstr "Cancelar a captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:137 msgid "Stop capture and save project" msgstr "Deter a captura e gardar o proxecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:16 msgid "Categories Template" msgstr "Modelo de categorías" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:67 msgid "Tools" msgstr "Ferramentas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:204 msgid "Color" msgstr "Cor" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:225 msgid "Width" msgstr "Largura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:234 msgid "2 px" msgstr "2 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:235 msgid "4 px" msgstr "4 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:236 msgid "6 px" msgstr "6 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:237 msgid "8 px" msgstr "8 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:238 msgid "10 px" msgstr "10 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:251 msgid "Transparency" msgstr "Transparencia" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:300 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Debuxar-> D\n" "Borrar-> C\n" "Ocultar-> S\n" "Mostrar-> S\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:40 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:134 msgid "Projects Manager" msgstr "Xestor de proxectos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:96 msgid "Project Details" msgstr "Detalles do proxecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:148 msgid "_Export" msgstr "_Exportar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:16 msgid "Select a HotKey" msgstr "Seleccionar unha tecla rápida" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:29 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Prema unha combinación de teclas usando Maiús+tecla ou Alt+tecla.\n" "As teclas rápidas cunha soa tecla tamén están permitidas con Ctrl+tecla." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:55 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Cargar una lista\n" "de reprodución\n" "ou crear unha nova." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:16 msgid "Tag play" msgstr "Etiquetar a xogada" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:43 msgid "Projects Search:" msgstr "Busca de proxectos:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:58 msgid "Play:" msgstr "Xogada:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:66 msgid "Interval (frames/s):" msgstr "Intervalo (fotograma/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:74 msgid "Series Name:" msgstr "Nome da serie:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:128 msgid "Export to PNG images" msgstr "Exportar como imaxes PNG" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:26 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 msgid "Drawing Tool" msgstr "Ferramenta de debuxo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:70 msgid "Save to Project" msgstr "Gardar no proxecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:97 msgid "Save to File" msgstr "Gardar no ficheiro" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:82 msgid "Add Filter" msgstr "Engadir un filtro" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:115 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:116 msgid "_File" msgstr "_Ficheiro" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:118 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:119 msgid "_New Project" msgstr "_Novo proxecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:121 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:122 msgid "_Open Project" msgstr "Abrir un pr_oxecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:125 msgid "_Quit" msgstr "_Saír" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 msgid "_Close Project" msgstr "Pechar o proxe_ecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:131 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 msgid "_Tools" msgstr "Ferramen_tas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 msgid "Database Manager" msgstr "Xestor da base de datos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "Categories Templates Manager" msgstr "Xestor de modelos de categorías" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:34 msgid "Templates Manager" msgstr "Xestor de modelos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:141 msgid "_View" msgstr "_Ver" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:144 msgid "Full Screen" msgstr "Pantalla completa" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:147 msgid "Playlist" msgstr "Lista de reprodución" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Capture Mode" msgstr "Modo de captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 msgid "Analyze Mode" msgstr "Modo de análise" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:159 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:161 msgid "_Save Project" msgstr "_Gardar o proxecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:163 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:164 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:180 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 msgid "_Help" msgstr "A_xuda" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:166 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 msgid "_About" msgstr "_Sobre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 msgid "Export Project To CSV File" msgstr "Exportar o proxecto como ficheiro CSV" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:173 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 msgid "Teams Templates Manager" msgstr "Xestor de modelos de equipos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:176 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:178 msgid "Hide All Widgets" msgstr "Ocultar todos os widgets" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:183 msgid "_Drawing Tool" msgstr "Ferramenta de _debuxo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:187 msgid "_Import Project" msgstr "_Importar un proxecto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Free Capture Mode" msgstr "Modo de captura libre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:246 msgid "Plays" msgstr "Xogadas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:395 msgid "Creating video..." msgstr "Creando o vídeo..." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:16 msgid "Player Details" msgstr "Información do xogador" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:14 msgid "TransparentDrawingArea" msgstr "TransparentDrawingArea" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:348 msgid "_Calendar" msgstr "_Calendario" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:86 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:52 msgid "Name:" msgstr "Nome:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:151 msgid "Position:" msgstr "Posición:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:161 msgid "Number:" msgstr "Número:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:171 msgid "Photo:" msgstr "Fotografía:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:201 msgid "Birth day" msgstr "Día de nacemento" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:221 msgid "Plays this match:" msgstr "Xoga este partido:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:22 msgid "Capture Progress" msgstr "Progreso da captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:16 msgid "Category Details" msgstr "Información da categoría" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:32 msgid "Select template name" msgstr "Seleccionar o nome do modelo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:76 msgid "Copy existent template:" msgstr "Copiar o modelo existente:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:94 msgid "Players:" msgstr "Xogadores:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:37 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "Publicouse unha nova versión de LongoMatch en www.ylatuya.es\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:47 msgid "The new version is " msgstr "A nova versión é" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:57 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "Pode descargalo usando esta ligazón directa:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:67 msgid "label7" msgstr "etiqueta7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:18 msgid "Tag players" msgstr "Etiquetar os xogadores" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:72 msgid "New Before" msgstr "Novo antes" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:100 msgid "New After" msgstr "Novo despois" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:128 msgid "Remove" msgstr "Eliminar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:191 msgid "Export" msgstr "Exportar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:16 msgid "Calendar" msgstr "Calendario" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:34 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "Aínda non etiquetou ningunha xogada.\n" "Pode engadir novas etiquetas usando a entrada de texto e premendo «Engadir " "etiqueta»" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:87 msgid "Add Tag" msgstr "Etiquetar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:52 msgid "Video Properties" msgstr "Propiedades do vídeo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:76 msgid "Video Quality:" msgstr "Calidade do vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:105 msgid "Size: " msgstr "Tamaño: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:111 msgid "Portable (4:3 - 320x240)" msgstr "Portátil (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:112 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:114 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:115 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "Full HD 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:135 msgid "Ouput Format:" msgstr "Formato de saída:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:158 msgid "Enable Title Overlay" msgstr "Activar a sobreposición do título" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:169 msgid "Enable Audio (Experimental)" msgstr "Activar o son (experimental)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:187 msgid "File name: " msgstr "Nome do ficheiro: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:29 msgid "Cancel" msgstr "Cancelar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:39 msgid "Tag new play" msgstr "Etiquetar a nova xogada " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:80 msgid "Data Base Migration" msgstr "Migración da base de datos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:108 msgid "Playlists Migration" msgstr "Migración das listas de reprodución" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:136 msgid "Templates Migration" msgstr "Migración dos modelos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:86 msgid "Color: " msgstr "Cor:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:107 msgid "Change" msgstr "Cambiar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:127 msgid "HotKey:" msgstr "Tecla rápida:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:135 msgid "Competition:" msgstr "Competición:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:177 msgid "File:" msgstr "Ficheiro:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:295 msgid "-" msgstr "-" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:368 msgid "Visitor Team:" msgstr "Equipo visitante:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:378 msgid "Score:" msgstr "Puntuación:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:388 msgid "Date:" msgstr "Data:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:398 msgid "Local Team:" msgstr "Equipo local:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:406 msgid "Categories Template:" msgstr "Modelo de categorías:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:450 msgid "Season:" msgstr "Tempada:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:495 msgid "Audio Bitrate (kbps):" msgstr "Taxa de bits do son (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:521 msgid "Device:" msgstr "Dispositivo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:549 msgid "Video Size:" msgstr "Tamaño do vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:559 msgid "Video Bitrate (kbps):" msgstr "Taxa de bits do vídeo (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:596 msgid "Video Format:" msgstr "Formato do vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:606 msgid "Video encoding properties" msgstr "Propiedades da codificación do vídeo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:33 msgid "Lead time:" msgstr "Inicio:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lag time:" msgstr "Fin:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:18 msgid "Open Project" msgstr "Abrir un proxecto" #: ../LongoMatch/Handlers/EventsManager.cs:191 msgid "You can't create a new play if the capturer is not recording." msgstr "" "No pode crear unha nova xogada se o dispositivo de captura non está gravando." #: ../LongoMatch/Handlers/EventsManager.cs:224 msgid "The video edition has finished successfully." msgstr "A edición do vídeo rematou correctamente." #: ../LongoMatch/Handlers/EventsManager.cs:230 msgid "An error has occurred in the video editor." msgstr "Produciuse un erro no editor de vídeo." #: ../LongoMatch/Handlers/EventsManager.cs:231 msgid "Please, try again." msgstr "Ténteo de novo." #: ../LongoMatch/Handlers/EventsManager.cs:267 msgid "" "The stop time is smaller than the start time. The play will not be added." msgstr "" "A hora da parada é menor que a hora de inicio. Non se engadirá a reprodución." #: ../LongoMatch/Handlers/EventsManager.cs:342 msgid "Please, close the opened project to play the playlist." msgstr "Peche o proxecto aberto para reproducir a lista de reprodución." #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "Sección" #: ../LongoMatch/IO/CSVExport.cs:83 ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "Hora de inicio" #: ../LongoMatch/IO/CSVExport.cs:84 ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "Hora de finalización" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "O ficheiro CSV exportouse correctamente." #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Etiqueta" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Xogador" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Categoría" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "" "The project will be saved to a file. You can insert it later into the " "database using the \"Import project\" function once you copied the video " "file to your computer" msgstr "" "O proxecto gardarase nun ficheiro. Pode inserilo máis tarde na base de datos " "usando a función «Importar un proxecto» unha vez que copie o ficheiro de " "vídeo no computador" #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "O proxecto gardouse correctamente." #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "Importar un proxecto" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "Produciuse un erro ao importar o proxecto:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "Xa existe un proxecto para o ficheiro:" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "Desexa sobrescribilo?" #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "O proxecto importouse correctamente." #: ../LongoMatch/Utils/ProjectUtils.cs:193 msgid "No capture devices were found." msgstr "Non se encontraron dispositivos de captura." #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "This file is already used in another Project." msgstr "Este ficheiro xa está en uso noutro proxecto." #: ../LongoMatch/Utils/ProjectUtils.cs:220 msgid "Select a different one to continue." msgstr "Seleccionar un diferente para continuar." #: ../LongoMatch/Utils/ProjectUtils.cs:244 msgid "Select Export File" msgstr "Seleccionar un ficheiro para exportar" #: ../LongoMatch/Utils/ProjectUtils.cs:273 msgid "Creating video thumbnails. This can take a while." msgstr "Creando as miniaturas do vídeo. Isto pode levar algún tempo." #: ../CesarPlayer/Gui/CapturerBin.cs:261 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "Vai parar e finalizar a captura actual\n" "Desexa continuar?" #: ../CesarPlayer/Gui/CapturerBin.cs:267 msgid "Finalizing file. This can take a while" msgstr "Finalizando o ficheiro. Isto pode levar un tempo." #: ../CesarPlayer/Gui/CapturerBin.cs:302 msgid "Device disconnected. The capture will be paused" msgstr "O dispositivo está desconectado. A captura pararase" #: ../CesarPlayer/Gui/CapturerBin.cs:311 msgid "Device reconnected.Do you want to restart the capture?" msgstr "Dispositivo reconectado. Desexa reiniciar a captura?" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "Tempo:" #: ../CesarPlayer/Utils/Device.cs:83 msgid "Default device" msgstr "Dispositivo predefinido" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "O ficheiro de vídeo é incorrecto:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:81 msgid "Fake live source" msgstr "Orixe en falso directo" #~ msgid "Local Goals:" #~ msgstr "Goles do equipo local:" #~ msgid "Visitor Goals:" #~ msgstr "Goles do equipo visitante:" #~ msgid "You can't delete the last section" #~ msgstr "Non é posíbel eliminar a última sección" #~ msgid "Open the project, please." #~ msgstr "Abra o proxecto" longomatch-0.16.8/po/pt_BR.po0000644000175000017500000012345211601631101012643 00000000000000# Brazilian Portuguese translation for longomatch. # Copyright (C) 2010 longomatch's COPYRIGHT HOLDER # This file is distributed under the same license as the longomatch package. # Gabriel F. Vilar , 2010. # msgid "" msgstr "" "Project-Id-Version: longomatch master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=longomatch&component=general\n" "POT-Creation-Date: 2010-11-30 22:36+0000\n" "PO-Revision-Date: 2010-12-02 02:29-0300\n" "Last-Translator: Gabriel Feitosa Vilar \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../LongoMatch/longomatch.desktop.in.in.h:1 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:197 msgid "LongoMatch" msgstr "LongoMatch" #: ../LongoMatch/longomatch.desktop.in.in.h:2 msgid "LongoMatch: The Digital Coach" msgstr "LongoMatch: O treinador digital" #: ../LongoMatch/longomatch.desktop.in.in.h:3 msgid "Sports video analysis tool for coaches" msgstr "Ferramenta de análise de vídeo para treinadores de esportes" #: ../LongoMatch/Playlist/PlayList.cs:96 msgid "The file you are trying to load is not a valid playlist" msgstr "O arquivo que você está tentando carregar não é uma lista de reprodução válida" #: ../LongoMatch/Time/HotKey.cs:127 msgid "Not defined" msgstr "Não definido" #: ../LongoMatch/Time/SectionsTimeNode.cs:71 msgid "name" msgstr "nome" #: ../LongoMatch/Time/SectionsTimeNode.cs:131 #: ../LongoMatch/Time/SectionsTimeNode.cs:139 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:153 #: ../LongoMatch/IO/SectionsWriter.cs:56 msgid "Sort by name" msgstr "Ordenar por nome" #: ../LongoMatch/Time/SectionsTimeNode.cs:133 #: ../LongoMatch/Time/SectionsTimeNode.cs:143 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:69 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:154 msgid "Sort by start time" msgstr "Ordenar por tempo de início" #: ../LongoMatch/Time/SectionsTimeNode.cs:135 #: ../LongoMatch/Time/SectionsTimeNode.cs:145 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:155 msgid "Sort by stop time" msgstr "Ordenar por tempo de fim" #: ../LongoMatch/Time/SectionsTimeNode.cs:137 #: ../LongoMatch/Time/SectionsTimeNode.cs:147 #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:71 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:156 msgid "Sort by duration" msgstr "Ordenar por duração" #: ../LongoMatch/Time/MediaTimeNode.cs:354 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:50 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:47 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:71 #: ../LongoMatch/IO/CSVExport.cs:81 ../LongoMatch/IO/CSVExport.cs:136 #: ../LongoMatch/IO/CSVExport.cs:162 msgid "Name" msgstr "Nome" #: ../LongoMatch/Time/MediaTimeNode.cs:355 ../LongoMatch/IO/CSVExport.cs:82 #: ../LongoMatch/IO/CSVExport.cs:137 ../LongoMatch/IO/CSVExport.cs:163 msgid "Team" msgstr "Equipe" #: ../LongoMatch/Time/MediaTimeNode.cs:356 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 msgid "Start" msgstr "Começar" #: ../LongoMatch/Time/MediaTimeNode.cs:357 msgid "Stop" msgstr "Parar" #: ../LongoMatch/Time/MediaTimeNode.cs:358 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:285 msgid "Tags" msgstr "Etiquetas" #: ../LongoMatch/Main.cs:164 msgid "" "Some elements from the previous version (database, templates and/or " "playlists) have been found." msgstr "" "Alguns elementos da versão anterior (banco de dados, modelos e/ou lista de " "reprodução) foram encontrados." #: ../LongoMatch/Main.cs:165 msgid "Do you want to import them?" msgstr "Você deseja importá-los?" #: ../LongoMatch/Main.cs:230 msgid "The application has finished with an unexpected error." msgstr "O aplicativo foi finalizado com um erro inesperado." #: ../LongoMatch/Main.cs:231 msgid "A log has been saved at: " msgstr "Um registro do erro foi salvo em: " #: ../LongoMatch/Main.cs:232 msgid "Please, fill a bug report " msgstr "Por favor, preencha o relatório de defeitos" #: ../LongoMatch/Gui/MainWindow.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:272 msgid "Visitor Team" msgstr "Equipe visitante" #: ../LongoMatch/Gui/MainWindow.cs:132 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:259 msgid "Local Team" msgstr "Equipe local" #: ../LongoMatch/Gui/MainWindow.cs:140 msgid "The file associated to this project doesn't exist." msgstr "O arquivo associado ao projeto não existe." #: ../LongoMatch/Gui/MainWindow.cs:141 msgid "" "If the location of the file has changed try to edit it with the database " "manager." msgstr "" "Se o local do arquivo foi alterado tente editar com o gerenciador de banco de " "dados." #: ../LongoMatch/Gui/MainWindow.cs:152 msgid "An error occurred opening this project:" msgstr "Ocorreu um erro ao abrir este projeto:" #: ../LongoMatch/Gui/MainWindow.cs:201 msgid "Loading newly created project..." msgstr "Carregando projeto criado recentimente..." #: ../LongoMatch/Gui/MainWindow.cs:213 msgid "An error occured saving the project:\n" msgstr "Ocorreu um erro ao salvar o projeto:\n" #: ../LongoMatch/Gui/MainWindow.cs:214 msgid "" "The video file and a backup of the project has been saved. Try to import it " "later:\n" msgstr "" "O arquivo de vídeo e uma cópia do projeto foram salvos. Tente importar mais " "tarde:\n" #: ../LongoMatch/Gui/MainWindow.cs:328 msgid "Do you want to close the current project?" msgstr "Você deseja fechar o projeto atual?" #: ../LongoMatch/Gui/MainWindow.cs:535 msgid "The actual project will be closed due to an error in the media player:" msgstr "O projeto atual será fechado devido a um erro no reprodutor de vídeo:" #: ../LongoMatch/Gui/MainWindow.cs:619 msgid "" "An error occured in the video capturer and the current project will be " "closed:" msgstr "Ocorreu um erro no capturador de vídeo e o projeto atual será fechado:" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:55 msgid "Templates Files" msgstr "Arquivos de modelos" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:162 msgid "The template has been modified. Do you want to save it? " msgstr "O modelo foi modificado. Você quer salvá-lo? " #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:184 msgid "Template name" msgstr "Nome do modelo" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:204 msgid "You cannot create a template with a void name" msgstr "Você não pode criar um modelo com um nome vazio" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:210 msgid "A template with this name already exists" msgstr "Um modelo com este nome já existe" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:236 msgid "You can't delete the 'default' template" msgstr "Você não pode apagar o modelo \"padrão\"" #: ../LongoMatch/Gui/Dialog/TemplatesEditor.cs:241 msgid "Do you really want to delete the template: " msgstr "Você realmente deseja apagar o modelo: " #: ../LongoMatch/Gui/Dialog/EditCategoryDialog.cs:57 msgid "This hotkey is already in use." msgstr "Este atalho já está em uso." #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:48 msgid "Capturing frame: " msgstr "Capturando quadro: " #: ../LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs:57 msgid "Done" msgstr "Feito" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:82 msgid "Low" msgstr "Baixo" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:130 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:83 msgid "Normal" msgstr "Normal" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:133 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:84 msgid "Good" msgstr "Bom" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:136 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:85 msgid "Extra" msgstr "Extra" #: ../LongoMatch/Gui/Dialog/VideoEditionProperties.cs:172 msgid "Save Video As ..." msgstr "Salvar vídeo como..." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:70 msgid "The Project has been edited, do you want to save the changes?" msgstr "O projeto foi editado, você deseja salvar as mudanças?" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:95 msgid "A Project is already using this file." msgstr "Um projeto já está usando este arquivo." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:112 msgid "This Project is actually in use." msgstr "O projeto atual está em uso." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:113 msgid "Close it first to allow its removal from the database" msgstr "Feche-o primeiro para permitir a sua remoção do banco de dados" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:119 msgid "Do you really want to delete:" msgstr "Você realmente deseja excluir:" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "The Project you are trying to load is actually in use." msgstr "O projeto que você está tentando carregar já está em uso." #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:176 msgid "Close it first to edit it" msgstr "Feche-o primeiro para editá-lo" #: ../LongoMatch/Gui/Dialog/ProjectsManager.cs:196 #: ../LongoMatch/Utils/ProjectUtils.cs:50 msgid "Save Project" msgstr "Salvar projeto" #: ../LongoMatch/Gui/Dialog/DrawingTool.cs:98 msgid "Save File as..." msgstr "Salvar arquivo como..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:389 msgid "DirectShow Source" msgstr "Fonte DirectShow" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:390 msgid "Unknown" msgstr "Desconhecido" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:438 msgid "Keep original size" msgstr "Manter tamanho original" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:461 msgid "Output file" msgstr "Arquivo de saída" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:473 msgid "Open file..." msgstr "Abrir arquivo..." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:490 msgid "Analyzing video file:" msgstr "Analizando arquivo de vídeo:" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:495 msgid "This file doesn't contain a video stream." msgstr "Esta pasta não contém um fluxo de vídeo." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:497 msgid "This file contains a video stream but its length is 0." msgstr "Este arquivo contém um vídeo, mas o seu comprimento é 0." #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:564 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:473 msgid "Local Team Template" msgstr "Modelo de equipe local" #: ../LongoMatch/Gui/Component/ProjectDetailsWidget.cs:577 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:426 msgid "Visitor Team Template" msgstr "Modelo de equipe visitante" #: ../LongoMatch/Gui/Component/CategoryProperties.cs:68 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:117 msgid "none" msgstr "nenhum" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:119 msgid "" "You are about to delete a category and all the plays added to this category. " "Do you want to proceed?" msgstr "" "Você está prestes a excluir uma categoria e todos os jogos adicionados a " "esta categoria. Você deseja continuar?" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:126 #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:135 msgid "A template needs at least one category" msgstr "É necessário de pelo menos uma categoria para o modelo" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:217 msgid "New template" msgstr "Novo modelo" #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:221 msgid "The template name is void." msgstr "O nome do modelo está vazio." #: ../LongoMatch/Gui/Component/ProjectTemplateWidget.cs:227 msgid "The template already exists. Do you want to overwrite it ?" msgstr "O modelo já existe. Você deseja sobrescrever?" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:92 msgid "" "The file you are trying to load is not a playlist or it's not compatible " "with the current version" msgstr "" "O arquivo que você está tentando carregar não é uma lista de reprodução ou não é " "compatível com a versão atual" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:222 msgid "Open playlist" msgstr "Abrir lista de reprodução" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:237 msgid "New playlist" msgstr "Nova lista de reprodução" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:262 msgid "The playlist is empty!" msgstr "Lista de reprodução vazia!" #: ../LongoMatch/Gui/Component/PlayListWidget.cs:271 #: ../LongoMatch/Utils/ProjectUtils.cs:127 #: ../LongoMatch/Utils/ProjectUtils.cs:215 msgid "Please, select a video file." msgstr "Por favor, selecione um arquivo de vídeo." #: ../LongoMatch/Gui/Component/PlayerProperties.cs:90 msgid "Choose an image" msgstr "Escolha uma imagem" #: ../LongoMatch/Gui/Component/PlayerProperties.cs:169 #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:271 #| msgid "None" msgid "No" msgstr "Nenhum" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:55 msgid "Filename" msgstr "Nome do arquivo" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:119 msgid "File length" msgstr "Comprimento do arquivo" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:120 msgid "Video codec" msgstr "Codec de vídeo" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:121 msgid "Audio codec" msgstr "Codec de áudio" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:122 msgid "Format" msgstr "Formato" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:132 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:138 msgid "Title" msgstr "Título" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:133 msgid "Local team" msgstr "Equipe local" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:134 msgid "Visitor team" msgstr "Equipe visitante" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:135 msgid "Season" msgstr "Temporada" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:136 msgid "Competition" msgstr "Competição" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:137 msgid "Result" msgstr "Resultado" #: ../LongoMatch/Gui/Component/ProjectListWidget.cs:138 msgid "Date" msgstr "Data" #: ../LongoMatch/Gui/Component/TimeScale.cs:160 msgid "Delete Play" msgstr "Apagar jogo" #: ../LongoMatch/Gui/Component/TimeScale.cs:161 msgid "Add New Play" msgstr "Adicionar novo jogo" #: ../LongoMatch/Gui/Component/TimeScale.cs:268 msgid "Delete " msgstr "Apagar" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:81 msgid "None" msgstr "Nenhum" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:157 msgid "No Team" msgstr "Sem equipe" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:170 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:156 msgid "Edit" msgstr "Editar" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:171 msgid "Team Selection" msgstr "Selecionar equipe" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:173 msgid "Add tag" msgstr "Adicionar etiqueta" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:174 msgid "Tag player" msgstr "Etiqueta do jogo" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:176 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:59 msgid "Delete" msgstr "Apagar" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:177 msgid "Delete key frame" msgstr "Apaga o quadro-chave" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:178 msgid "Add to playlist" msgstr "Adicionar à lista de reprodução" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:180 msgid "Export to PGN images" msgstr "Exportar para imagens PGN" #: ../LongoMatch/Gui/TreeView/ListTreeViewBase.cs:338 msgid "Do you want to delete the key frame for this play?" msgstr "Você deseja apagar o quadro-chave para este jogo?" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:66 #: ../LongoMatch/Gui/TreeView/PlayersTreeView.cs:71 msgid "Edit name" msgstr "Editar nome" #: ../LongoMatch/Gui/TreeView/PlaysTreeView.cs:67 #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:72 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:145 msgid "Sort Method" msgstr "Método de ordenação" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:45 msgid "Photo" msgstr "Foto" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:55 #| msgid "Playlist" msgid "Play this match" msgstr "Reproduzir esta lista" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:60 msgid "Date of Birth" msgstr "Aniversário" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:65 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:211 msgid "Nationality" msgstr "Nacionalidade" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:70 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:181 msgid "Height" msgstr "Altura" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:75 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:191 msgid "Weight" msgstr "Peso" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:80 msgid "Position" msgstr "Posição" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:85 msgid "Number" msgstr "Número" #: ../LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs:128 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:270 msgid "Yes" msgstr "Sim" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:52 msgid "Lead Time" msgstr "Tempo de liderança" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:57 msgid "Lag Time" msgstr "Tempo de derrota" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:62 msgid "Color" msgstr "Cor" #: ../LongoMatch/Gui/TreeView/CategoriesTreeView.cs:67 msgid "Hotkey" msgstr "Atalho" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:56 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:115 msgid "Edit Title" msgstr "Editar título" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:62 msgid "Apply current play rate" msgstr "Aplicar taxa de reprodução atual" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:139 #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 msgid " sec" msgstr " seg" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:140 #: ../LongoMatch/IO/CSVExport.cs:85 ../LongoMatch/IO/CSVExport.cs:140 #: ../LongoMatch/IO/CSVExport.cs:166 msgid "Duration" msgstr "Duração" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:141 msgid "Play Rate" msgstr "Ritmo do jogo" #: ../LongoMatch/Gui/TreeView/PlayListTreeView.cs:144 msgid "File not found" msgstr "Arquivo não encontrado" #: ../LongoMatch/DB/Project.cs:559 msgid "The file you are trying to load is not a valid project" msgstr "O arquivo que você está tentando carregar não é um projeto válido" #: ../LongoMatch/DB/DataBase.cs:137 msgid "Error retrieving the file info for project:" msgstr "Erro ao recuperar as informações do arquivo para o projeto:" #: ../LongoMatch/DB/DataBase.cs:138 msgid "" "This value will be reset. Remember to change it later with the projects " "manager" msgstr "" "Este valor será redefinido. Lembre-me de alterá-lo mais tarde com o gerenciador " "de projetos" #: ../LongoMatch/DB/DataBase.cs:139 msgid "Change Me" msgstr "Mudar-se" #: ../LongoMatch/DB/DataBase.cs:216 msgid "The Project for this video file already exists." msgstr "O projeto para este arquivo de vídeo já existe." #: ../LongoMatch/DB/DataBase.cs:216 msgid "Try to edit it with the Database Manager" msgstr "Tente editar com o gerenciador de banco de dados" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:36 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs:18 msgid "New Project" msgstr "Novo projeto" #. Container child hbox1.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:56 msgid "New project using a video file" msgstr "Novo projeto usando um arquivo de vídeo" #. Container child hbox2.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:86 msgid "Live project using a capture device" msgstr "Projeto usando um dispositivo de captura" #. Container child hbox3.Gtk.Box+BoxChild #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs:114 msgid "Live project using a fake capture device" msgstr "Projeto usando um dispositivo de captura falso" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:58 msgid "" "A capture project is actually running.\n" "You can continue with the current capture, cancel it or save your project. \n" "\n" "Warning: If you cancel the current project all your changes will be lost." "" msgstr "" "Um projeto de captura está atualmente em execução.\n" "Você pode continuar com a captura atual, cancelar ou salvar seu projeto. \n" "\n" "Aviso: Se você cancelar o projeto atual todas as alterações serão " "perdidas." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:87 msgid "Return" msgstr "Retornar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:112 msgid "Cancel capture" msgstr "Cancelar captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs:137 msgid "Stop capture and save project" msgstr "Parar a captura e salvar o projeto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs:16 msgid "Categories Template" msgstr "Modelos de categorias" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:67 msgid "Tools" msgstr "Ferramentas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:204 msgid "Color" msgstr "Cor" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:225 msgid "Width" msgstr "Largura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:234 msgid "2 px" msgstr "2 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:235 msgid "4 px" msgstr "4 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:236 msgid "6 px" msgstr "6 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:237 msgid "8 px" msgstr "8 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:238 msgid "10 px" msgstr "10 px" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:251 msgid "Transparency" msgstr "Transparência" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs:300 msgid "" "Draw-> D\n" "Clear-> C\n" "Hide-> S\n" "Show-> S\n" msgstr "" "Desenhar-> D\n" "Limpar-> L\n" "Esconder-> E\n" "Mostrar-> M\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:40 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:134 msgid "Projects Manager" msgstr "Gerenciador de projetos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:96 msgid "Project Details" msgstr "Detalhes do projeto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs:148 msgid "_Export" msgstr "_Exportar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:16 msgid "Select a HotKey" msgstr "Selecionar atalho" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs:29 msgid "" "Press a key combination using Shift+key or Alt+key.\n" "Hotkeys with a single key are also allowed with Ctrl+key." msgstr "" "Pressione a combinação de teclas Shift+tecla ou Alt+tecla.\n" "Teclas de atalho com uma única chave também são permitidos com Ctrl+tecla." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs:55 msgid "" "Load a playlist\n" "or create a \n" "new one." msgstr "" "Carregar uma lista de reprodução\n" "ou criar\n" "uma nova." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs:16 msgid "Tag play" msgstr "Etiquetar jogo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs:43 msgid "Projects Search:" msgstr "Busca de projetos:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:58 msgid "Play:" msgstr "Jogo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:66 msgid "Interval (frames/s):" msgstr "Intervalo (quadro/s):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:74 msgid "Series Name:" msgstr "Nome das séries:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs:128 msgid "Export to PNG images" msgstr "Exportar para imagens PNG" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:26 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:184 msgid "Drawing Tool" msgstr "Ferramenta de desenho" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:70 msgid "Save to Project" msgstr "Salvar para projeto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs:97 msgid "Save to File" msgstr "Salvar para arquivo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs:82 msgid "Add Filter" msgstr "Adicionar filtro" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:115 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:116 msgid "_File" msgstr "_Arquivo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:118 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:119 msgid "_New Project" msgstr "_Novo projeto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:121 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:122 msgid "_Open Project" msgstr "_Abrir projeto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:124 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:125 msgid "_Quit" msgstr "_Sair" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:127 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:129 msgid "_Close Project" msgstr "_Fechar projeto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:131 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:132 msgid "_Tools" msgstr "_Ferramentas" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:135 msgid "Database Manager" msgstr "Gerenciador de banco de dados" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:137 msgid "Categories Templates Manager" msgstr "Gerenciador de modelos de categorias" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:138 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs:34 msgid "Templates Manager" msgstr "Gerenciador de modelos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:140 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:141 msgid "_View" msgstr "_Ver" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:144 msgid "Full Screen" msgstr "Tela cheia" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:146 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:147 msgid "Playlist" msgstr "Lista de reprodução" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:149 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:152 msgid "Capture Mode" msgstr "Modo de captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:154 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:157 msgid "Analyze Mode" msgstr "Modo de análise" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:159 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:161 msgid "_Save Project" msgstr "Sa_lvar projeto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:163 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:164 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:180 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:181 msgid "_Help" msgstr "_Ajuda" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:166 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:167 msgid "_About" msgstr "_Sobre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:169 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:171 msgid "Export Project To CSV File" msgstr "Exportar arquivos do projeto para CSV" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:173 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:174 msgid "Teams Templates Manager" msgstr "Gerenciador de modelos de equipe" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:176 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:178 msgid "Hide All Widgets" msgstr "Esconder todos os Widgets" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:183 msgid "_Drawing Tool" msgstr "_Ferramenta de desenho" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:186 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:187 msgid "_Import Project" msgstr "_Importar projeto" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:189 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:192 msgid "Free Capture Mode" msgstr "Modo de captura livre" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:246 msgid "Plays" msgstr "Jogos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs:395 msgid "Creating video..." msgstr "Criando vídeo..." #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs:16 msgid "Player Details" msgstr "Detalhes dos jogadores" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs:14 msgid "TransparentDrawingArea" msgstr "TransparentDrawingArea" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:109 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:348 msgid "_Calendar" msgstr "_Calendário" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:143 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:86 #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:52 msgid "Name:" msgstr "Nome:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:151 msgid "Position:" msgstr "Posição:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:161 msgid "Number:" msgstr "Número:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:171 msgid "Photo:" msgstr "Foto:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:201 msgid "Birth day" msgstr "Data de aniversário" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs:221 msgid "Plays this match:" msgstr "Reproduzir este jogo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs:22 msgid "Capture Progress" msgstr "Progresso de captura" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs:16 msgid "Category Details" msgstr "Detalhes da categoria" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:32 msgid "Select template name" msgstr "Selecionar o nome do modelo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:76 msgid "Copy existent template:" msgstr "Copiar de um modelo existente:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs:94 msgid "Players:" msgstr "Jogadores:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:37 msgid "" "\n" "A new version of LongoMatch has been released at www.ylatuya.es!\n" msgstr "" "\n" "Uma nova versão do LongoMatch foi lançado em www.ylatuya.es!\n" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:47 msgid "The new version is " msgstr "A nova versão é " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:57 msgid "" "\n" "You can download it using this direct link:" msgstr "" "\n" "Você pode baixá-la através do link direto:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs:67 msgid "label7" msgstr "label7" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs:18 msgid "Tag players" msgstr "Etiquetar jogadores" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:72 msgid "New Before" msgstr "Novo antes" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:100 msgid "New After" msgstr "Novo depois" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:128 msgid "Remove" msgstr "Remover" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs:191 msgid "Export" msgstr "Exportar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs:16 msgid "Calendar" msgstr "Calendário" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:34 msgid "" "You haven't tagged any play yet.\n" "You can add new tags using the text entry and clicking \"Add Tag\"" msgstr "" "Você ainda não adicionou etiquetas em nenhum jogo.\n" "Você pode adicionar novas etiquetas usando a entrada de texto e clicando em " "\"Adicionar etiqueta" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs:87 msgid "Add Tag" msgstr "Adicionar etiqueta" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:52 msgid "Video Properties" msgstr "Propriedades do vídeo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:76 msgid "Video Quality:" msgstr "Qualidade do vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:105 msgid "Size: " msgstr "Tamanho: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:111 msgid "Portable (4:3 - 320x240)" msgstr "Portável (4:3 - 320x240)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:112 msgid "VGA (4:3 - 640x480)" msgstr "VGA (4:3 - 640x480)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:113 msgid "TV (4:3 - 720x576)" msgstr "TV (4:3 - 720x576)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:114 msgid "HD 720p (16:9 - 1280x720)" msgstr "HD 720p (16:9 - 1280x720)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:115 msgid "Full HD 1080p (16:9 - 1920x1080)" msgstr "Full HD 1080p (16:9 - 1920x1080)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:135 msgid "Ouput Format:" msgstr "Formato de saída:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:158 msgid "Enable Title Overlay" msgstr "Habilitar sobreposição de título" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:169 msgid "Enable Audio (Experimental)" msgstr "Ativar áudio (experimental)" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs:187 msgid "File name: " msgstr "Nome do arquivo: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:29 msgid "Cancel" msgstr "Cancelar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs:39 msgid "Tag new play" msgstr "Adicionar nova etiqueta ao jogo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:80 msgid "Data Base Migration" msgstr "Migração do banco de dados" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:108 msgid "Playlists Migration" msgstr "Migrar lista de reprodução" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs:136 msgid "Templates Migration" msgstr "Migrar modelos" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:86 msgid "Color: " msgstr "Cor: " #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:107 msgid "Change" msgstr "Alterar" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs:127 msgid "HotKey:" msgstr "Atalho:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:135 msgid "Competition:" msgstr "Competição:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:177 msgid "File:" msgstr "Arquivo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:295 msgid "-" msgstr "-" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:368 msgid "Visitor Team:" msgstr "Equipe visitante:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:378 msgid "Score:" msgstr "Pontuação:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:388 msgid "Date:" msgstr "Data:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:398 msgid "Local Team:" msgstr "Equipe local:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:406 msgid "Categories Template:" msgstr "Modelo das categorias:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:450 msgid "Season:" msgstr "Temporada:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:495 msgid "Audio Bitrate (kbps):" msgstr "Taxa de transferência de áudio (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:521 msgid "Device:" msgstr "Dispositivo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:549 msgid "Video Size:" msgstr "Tamanho do vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:559 msgid "Video Bitrate (kbps):" msgstr "Taxa de transferência de vídeo (kbps):" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:596 msgid "Video Format:" msgstr "Formato do vídeo:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs:606 msgid "Video encoding properties" msgstr "Propriedades de codificação do vídeo" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:33 msgid "Lead time:" msgstr "Hora de início:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs:41 msgid "Lag time:" msgstr "Tempo de derrota:" #: ../LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs:18 msgid "Open Project" msgstr "Abrir projeto" #: ../LongoMatch/Handlers/EventsManager.cs:191 msgid "You can't create a new play if the capturer is not recording." msgstr "Você não pode criar um novo jogo se a captura não está gravando." #: ../LongoMatch/Handlers/EventsManager.cs:224 msgid "The video edition has finished successfully." msgstr "A edição do vídeo foi concluída com sucesso." #: ../LongoMatch/Handlers/EventsManager.cs:230 msgid "An error has occurred in the video editor." msgstr "Ocorreu um erro no editor de vídeo." #: ../LongoMatch/Handlers/EventsManager.cs:231 msgid "Please, try again." msgstr "Por favor, tente novamente." #: ../LongoMatch/Handlers/EventsManager.cs:267 msgid "" "The stop time is smaller than the start time. The play will not be added." msgstr "" "A hora de fim é menor do que a hora de início. O jogo não será " "adicionado." #: ../LongoMatch/Handlers/EventsManager.cs:342 msgid "Please, close the opened project to play the playlist." msgstr "Por favor, feche o projeto aberto para reproduzir a lista." #: ../LongoMatch/IO/CSVExport.cs:80 msgid "Section" msgstr "Seção" #: ../LongoMatch/IO/CSVExport.cs:83 ../LongoMatch/IO/CSVExport.cs:138 #: ../LongoMatch/IO/CSVExport.cs:164 msgid "StartTime" msgstr "HoraInicio" #: ../LongoMatch/IO/CSVExport.cs:84 ../LongoMatch/IO/CSVExport.cs:139 #: ../LongoMatch/IO/CSVExport.cs:165 msgid "StopTime" msgstr "HoraFim" #: ../LongoMatch/IO/CSVExport.cs:126 msgid "CSV exported successfully." msgstr "Exportado CSV com sucesso." #: ../LongoMatch/IO/CSVExport.cs:135 msgid "Tag" msgstr "Etiqueta" #: ../LongoMatch/IO/CSVExport.cs:160 msgid "Player" msgstr "Jogador" #: ../LongoMatch/IO/CSVExport.cs:161 msgid "Category" msgstr "Categoria" #: ../LongoMatch/Utils/ProjectUtils.cs:43 msgid "" "The project will be saved to a file. You can insert it later into the " "database using the \"Import project\" function once you copied the video " "file to your computer" msgstr "" "O projeto será salvo em um arquivo. Você pode inserir mais tarde no banco de " "dados usando a função \"Importar projeto\" uma vez que você copiou o arquivo " "de vídeo para seu computador " #: ../LongoMatch/Utils/ProjectUtils.cs:64 msgid "Project saved successfully." msgstr "Projeto salvo com sucesso." #. Show a file chooser dialog to select the file to import #: ../LongoMatch/Utils/ProjectUtils.cs:79 msgid "Import Project" msgstr "Importar projeto" #: ../LongoMatch/Utils/ProjectUtils.cs:105 msgid "Error importing project:" msgstr "Erro ao importar projeto:" #: ../LongoMatch/Utils/ProjectUtils.cs:143 msgid "A project already exists for the file:" msgstr "Um projeto já existe para este arquivo:" #: ../LongoMatch/Utils/ProjectUtils.cs:144 msgid "Do you want to overwrite it?" msgstr "Você deseja sobrescrever?" #: ../LongoMatch/Utils/ProjectUtils.cs:163 msgid "Project successfully imported." msgstr "Projeto importado com sucesso." #: ../LongoMatch/Utils/ProjectUtils.cs:193 msgid "No capture devices were found." msgstr "Não foram encontrados dispositivos de captura." #: ../LongoMatch/Utils/ProjectUtils.cs:219 msgid "This file is already used in another Project." msgstr "Este arquivo já está sendo usado em outro projeto." #: ../LongoMatch/Utils/ProjectUtils.cs:220 msgid "Select a different one to continue." msgstr "Selecione um diferente para continuar." #: ../LongoMatch/Utils/ProjectUtils.cs:244 msgid "Select Export File" msgstr "Selecione um arquivo para exportar" #: ../LongoMatch/Utils/ProjectUtils.cs:273 msgid "Creating video thumbnails. This can take a while." msgstr "Criando uma miniatura do vídeo. Isto pode demorar um pouco." #: ../CesarPlayer/Gui/CapturerBin.cs:261 msgid "" "You are going to stop and finish the current capture.\n" "Do you want to proceed?" msgstr "" "Você irá parar e terminar a captura atual.\n" "Vocẽ deseja continuar?" #: ../CesarPlayer/Gui/CapturerBin.cs:267 msgid "Finalizing file. This can take a while" msgstr "Finalizando arquivo. Isto pode demorar um pouco." #: ../CesarPlayer/Gui/CapturerBin.cs:302 msgid "Device disconnected. The capture will be paused" msgstr "Dispositivo desconectado. A captura será interrompida" #: ../CesarPlayer/Gui/CapturerBin.cs:311 msgid "Device reconnected.Do you want to restart the capture?" msgstr "Dispositivo reconectado. Você deseja reiniciar a captura?" #: ../CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs:229 msgid "Time:" msgstr "Tempo:" #: ../CesarPlayer/Utils/Device.cs:83 msgid "Default device" msgstr "Serviços padrão" #: ../CesarPlayer/Utils/PreviewMediaFile.cs:116 #: ../CesarPlayer/Utils/MediaFile.cs:158 msgid "Invalid video file:" msgstr "Arquivo de vídeo inválido:" #: ../CesarPlayer/Capturer/FakeCapturer.cs:81 msgid "Fake live source" msgstr "Fonte ao vivo falsa" longomatch-0.16.8/po/POTFILES.skip0000644000175000017500000000125111601631101013402 00000000000000win32/deps/themes/Cleanice/gtk-2.0/index.theme.in libcesarplayer/src/bacon-video-widget-gst-0.10.c libcesarplayer/src/video-utils.c CesarPlayer/Editor/GenericMerger.cs CesarPlayer/Editor/IMerger.cs CesarPlayer/Editor/GnonlinEditor.cs CesarPlayer/Editor/MatroskaMerger.cs CesarPlayer/Editor/AvidemuxMerger.cs CesarPlayer/Editor/AviMerger.cs CesarPlayer/Editor/IVideoSplitter.cs CesarPlayer/Editor/MencoderVideoEditor.cs CesarPlayer/Editor/GstVideoCapturer.cs CesarPlayer/Editor/ConcatMerger.cs CesarPlayer/Capturer/GvcAudioEncoderType.cs CesarPlayer/Capturer/GvcVideoEncoderType.cs CesarPlayer/Capturer/GvcUseType.cs LongoMatch/Time/DrawingsList.cs LongoMatch/longomatch.desktop.in longomatch-0.16.8/README0000644000175000017500000001042311601631101011530 00000000000000*********** Description *********** LongoMatch is a video analysis tool oriented to sports and coaches, to assist them on making game video analysis. It simplifies video analisys by providing a set of intuitive tools to tag, review and edit the most importants plays of the game. It allows to group plays by categories and adjust the lead and lag time of each play frame by frame through a timeline. It also has support for playlists, an easy way to create presentations with plays from different games and provides a video editor to create new videos from your favorite plays. Even if primary focused to sports, LongoMatch can be used for any task that requires tagging and reviewing segments of a video file, and can be applied to fields like cinema, medics or conferences ******** Features ******** * Projects based on templates, customizable for different kind of analysis * Projects manager * Templates editor * Illimited categories to tag plays * Adjustable play rate * Frame stepping * Adjust the lead and lag time for each play * Annotations * One-click review * Timeline * Drawing tool * Playlists support * Export plays to png images with a variable frame rate * Render playlist into new clip * Export projects to CSV files for statistics analysis * Support for the most common video formats * Multiplatform (Linux, FreeBSD, Windows,...) ******* Licence ******* LongoMatch is released under the GNU General Public License, Version 2 (GPLv2). ************ Dependencies ************ * Mono >= 2.0 * GTK# >= 2.12 * GStreamer >= 0.10.24 * GNonlin >= 0.10.11 * db4o We strongly recommend to use the latest GStreamer core version, as well as have installed all the gstreamer modules to get the best user experience. ***** Links ***** Official web page: http://www.longomatch.ylatuya.es Git repository: http://git.gnome.org/cgit/longomatch/ Bugzilla: http://bugzilla.gnome.org/enter_bug.cgi?product=longomatch ******************************* Windows Development Environment ******************************* Getting the external dependencies ================================= LongoMatch has a strong dependency on GStreamer, GTK+ and Mono, and the lack of a good packages manager for Free Software applications on Windows makes it hard to depend on external installers, such as the ones provided by Gtk+ or Mono. For GStreamer the situation is even worst, as there were no installer available until GStreamer WinBuilds appeared, project started by the LongoMatch team. Since it's very hrad to control which versions are installed in the users' machine and this part is critical, at least on the GStreamer side, for the stability of LongoMatch, the external dependencies need to be packaged in the installer for a fine-grained control of all them. Gtk --- * Download the Gtk+ bundle for the verion 2.16 and install it in c:\gtk: http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+-bundle_2.16.6-20100912_win32.zip Mono ---- * Download Mono 2.6.7 and install it in c:\mono: http://ftp.novell.com/pub/mono/archive/2.6.7/windows-installer/2/mono-2.6.7-gtksharp-2.12.10-win32-2.exe GStreamer -------- * Download the latest gstreamer version and the SDK available from: http://code.google.com/p/ossbuild/ * Create a folder named c:\gstreamer * Copy c:\Program Files\OSSBuild\GStreamer\$VERSION\* to c:\gstreamer * Copy c:\Program Files\OSSBuild\GStreamer\$VERSION\sdk\include to c:\gstreamer\include Getting the build environment (MSYS/MinGW) ========================================== * Download from ossbuild the MSYS/MinGW environment with all the compiler tools: http://code.google.com/p/ossbuild/downloads/detail?name=msys_v11.7z&can=2&q= * Install Python 2.6 * Instal git for windows from: http://code.google.com/p/msysgit/ Compiling LongoMatch ==================== * Fetch the sources $ git clone git://git.gnome.org/longomatch /c/longomatch * Open a MSYS terminal (c:\msys\msys.bat) * Inside the terminal run: $ cd /c/longomatch/win32 $ python deploy_win32.py * This will create a deployment folder in win32/dist with all the dependecies * Compile LongoMatch: $ make -f Makefile.win32 clean $ make -f Makefile.win32 $ make -f Makefile.win32 install * LongoMatch is now compiled and ready to be distributed in the folder win32/dist/ longomatch-0.16.8/build/0002755000175000017500000000000011601631301012033 500000000000000longomatch-0.16.8/build/Makefile.in0000644000175000017500000004415711601631265014042 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = build DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@ CESARPLAYER_LIBS = @CESARPLAYER_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DB4O_CFLAGS = @DB4O_CFLAGS@ DB4O_LIBS = @DB4O_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = m4 DLL_MAP_VERIFIER_ASSEMBLY = dll-map-verifier.exe ALL_TARGETS = $(DLL_MAP_VERIFIER_ASSEMBLY) EXTRA_DIST = \ icon-theme-installer \ private-icon-theme-installer \ DllMapVerifier.cs \ dll-map-makefile-verifier CLEANFILES = *.exe *.mdb MAINTAINERCLEANFILES = Makefile.in all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign build/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign build/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am all: $(ALL_TARGETS) $(DLL_MAP_VERIFIER_ASSEMBLY): DllMapVerifier.cs $(MCS) -out:$@ $< # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: longomatch-0.16.8/build/build.mk0000644000175000017500000000013511601631101013376 00000000000000include $(top_srcdir)/build/build.environment.mk include $(top_srcdir)/build/build.rules.mk longomatch-0.16.8/build/private-icon-theme-installer0000755000175000017500000000115111601631101017366 00000000000000#!/usr/bin/env bash mkinstalldirs=$1; shift install_data=$1; shift action=$1; shift dest_dir=$1; shift src_dir=$1; shift for icon in $@; do dest_dir_build="${dest_dir}/icons/hicolor/$(dirname ${icon})" if [[ ${action} == "-i" || ${action} == "-il" ]]; then src_file="${src_dir}/ThemeIcons/${icon}" $mkinstalldirs "${dest_dir_build}" &>/dev/null if [[ ${action} == "-i" ]]; then echo "Installing private icon theme icon: ${icon}" fi $install_data "${src_file}" "${dest_dir_build}" else echo "Uninstalling private icon theme icon: ${icon}" rm -f "${dest_dir_build}/$(basename ${icon})" fi done longomatch-0.16.8/build/m4/0002755000175000017500000000000011601631301012353 500000000000000longomatch-0.16.8/build/m4/Makefile.in0000644000175000017500000002537711601631265014365 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = build/m4 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@ CESARPLAYER_LIBS = @CESARPLAYER_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DB4O_CFLAGS = @DB4O_CFLAGS@ DB4O_LIBS = @DB4O_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = \ $(srcdir)/shamrock/*.m4 \ $(srcdir)/shave/*.m4 \ $(srcdir)/shave/*.in MAINTAINERCLEANFILES = Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign build/m4/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign build/m4/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: longomatch-0.16.8/build/m4/Makefile.am0000644000175000017500000000017411601631101014325 00000000000000EXTRA_DIST = \ $(srcdir)/shamrock/*.m4 \ $(srcdir)/shave/*.m4 \ $(srcdir)/shave/*.in MAINTAINERCLEANFILES = Makefile.in longomatch-0.16.8/build/m4/shave/0002755000175000017500000000000011601631301013461 500000000000000longomatch-0.16.8/build/m4/shave/shave.m40000644000175000017500000000661311601631101014753 00000000000000dnl Make automake/libtool output more friendly to humans dnl dnl Copyright (c) 2009, Damien Lespiau dnl dnl Permission is hereby granted, free of charge, to any person dnl obtaining a copy of this software and associated documentation dnl files (the "Software"), to deal in the Software without dnl restriction, including without limitation the rights to use, dnl copy, modify, merge, publish, distribute, sublicense, and/or sell dnl copies of the Software, and to permit persons to whom the dnl Software is furnished to do so, subject to the following dnl conditions: dnl dnl The above copyright notice and this permission notice shall be dnl included in all copies or substantial portions of the Software. dnl dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, dnl EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES dnl OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND dnl NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT dnl HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, dnl WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR dnl OTHER DEALINGS IN THE SOFTWARE. dnl dnl SHAVE_INIT([shavedir],[default_mode]) dnl dnl shavedir: the directory where the shave scripts are, it defaults to dnl $(top_builddir) dnl default_mode: (enable|disable) default shave mode. This parameter dnl controls shave's behaviour when no option has been dnl given to configure. It defaults to disable. dnl dnl * SHAVE_INIT should be called late in your configure.(ac|in) file (just dnl before AC_CONFIG_FILE/AC_OUTPUT is perfect. This macro rewrites CC and dnl LIBTOOL, you don't want the configure tests to have these variables dnl re-defined. dnl * This macro requires GNU make's -s option. AC_DEFUN([_SHAVE_ARG_ENABLE], [ AC_ARG_ENABLE([shave], AS_HELP_STRING( [--enable-shave], [use shave to make the build pretty [[default=$1]]]),, [enable_shave=$1] ) ]) AC_DEFUN([SHAVE_INIT], [ dnl you can tweak the default value of enable_shave m4_if([$2], [enable], [_SHAVE_ARG_ENABLE(yes)], [_SHAVE_ARG_ENABLE(no)]) if test x"$enable_shave" = xyes; then dnl where can we find the shave scripts? m4_if([$1],, [shavedir="$ac_pwd"], [shavedir="$ac_pwd/$1"]) AC_SUBST(shavedir) dnl make is now quiet AC_SUBST([MAKEFLAGS], [-s]) AC_SUBST([AM_MAKEFLAGS], ['`test -z $V && echo -s`']) dnl we need sed AC_CHECK_PROG(SED,sed,sed,false) dnl substitute libtool SHAVE_SAVED_LIBTOOL=$LIBTOOL LIBTOOL="${SHELL} ${shavedir}/shave-libtool '${SHAVE_SAVED_LIBTOOL}'" AC_SUBST(LIBTOOL) dnl substitute cc/cxx SHAVE_SAVED_CC=$CC SHAVE_SAVED_CXX=$CXX SHAVE_SAVED_FC=$FC SHAVE_SAVED_F77=$F77 SHAVE_SAVED_OBJC=$OBJC SHAVE_SAVED_MCS=$MCS CC="${SHELL} ${shavedir}/shave cc ${SHAVE_SAVED_CC}" CXX="${SHELL} ${shavedir}/shave cxx ${SHAVE_SAVED_CXX}" FC="${SHELL} ${shavedir}/shave fc ${SHAVE_SAVED_FC}" F77="${SHELL} ${shavedir}/shave f77 ${SHAVE_SAVED_F77}" OBJC="${SHELL} ${shavedir}/shave objc ${SHAVE_SAVED_OBJC}" MCS="${SHELL} ${shavedir}/shave mcs ${SHAVE_SAVED_MCS}" AC_SUBST(CC) AC_SUBST(CXX) AC_SUBST(FC) AC_SUBST(F77) AC_SUBST(OBJC) AC_SUBST(MCS) V=@ else V=1 fi Q='$(V:1=)' AC_SUBST(V) AC_SUBST(Q) ]) longomatch-0.16.8/build/m4/shave/shave.in0000644000175000017500000000463411601631101015042 00000000000000#!/bin/sh # # Copyright (c) 2009, Damien Lespiau # # Permission is hereby granted, free of charge, to any person # obtaining a copy of this software and associated documentation # files (the "Software"), to deal in the Software without # restriction, including without limitation the rights to use, # copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following # conditions: # # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR # OTHER DEALINGS IN THE SOFTWARE. # we need sed SED=@SED@ if test -z "$SED" ; then SED=sed fi lt_unmangle () { last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'` } # the tool to wrap (cc, cxx, ar, ranlib, ..) tool="$1" shift # the reel tool (to call) REEL_TOOL="$1" shift pass_through=0 preserved_args= while test "$#" -gt 0; do opt="$1" shift case $opt in --shave-mode=*) mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'` ;; -o) lt_output="$1" preserved_args="$preserved_args $opt" ;; -out:*|/out:*) lt_output="${opt#*:}" preserved_args="$preserved_args $opt" ;; *) preserved_args="$preserved_args $opt" ;; esac done # mode=link is handled in the libtool wrapper case "$mode,$tool" in link,*) pass_through=1 ;; *,cxx) Q=" CXX " ;; *,cc) Q=" CC " ;; *,fc) Q=" FC " ;; *,f77) Q=" F77 " ;; *,objc) Q=" OBJC " ;; *,mcs) Q=" MCS " ;; *,*) # should not happen Q=" CC " ;; esac lt_unmangle "$lt_output" output=$last_result if test -z $V; then if test $pass_through -eq 0; then echo "$Q$output" fi $REEL_TOOL $preserved_args else echo $REEL_TOOL $preserved_args $REEL_TOOL $preserved_args fi longomatch-0.16.8/build/m4/shave/shave-libtool.in0000644000175000017500000000571611601631101016506 00000000000000#!/bin/sh # # Copyright (c) 2009, Damien Lespiau # # Permission is hereby granted, free of charge, to any person # obtaining a copy of this software and associated documentation # files (the "Software"), to deal in the Software without # restriction, including without limitation the rights to use, # copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following # conditions: # # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR # OTHER DEALINGS IN THE SOFTWARE. # we need sed SED=@SED@ if test -z "$SED" ; then SED=sed fi lt_unmangle () { last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'` } # the real libtool to use LIBTOOL="$1" shift # if 1, don't print anything, the underlaying wrapper will do it pass_though=0 # scan the arguments, keep the right ones for libtool, and discover the mode preserved_args= # have we seen the --tag option of libtool in the command line ? tag_seen=0 while test "$#" -gt 0; do opt="$1" shift case $opt in --mode=*) mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'` preserved_args="$preserved_args $opt" ;; -o) lt_output="$1" preserved_args="$preserved_args $opt" ;; --tag=*) tag_seen=1 preserved_args="$preserved_args $opt" ;; *) preserved_args="$preserved_args $opt" ;; esac done case "$mode" in compile) # shave will be called and print the actual CC/CXX/LINK line preserved_args="$preserved_args --shave-mode=$mode" pass_though=1 ;; link) preserved_args="$preserved_args --shave-mode=$mode" Q=" LINK " ;; *) # let's u # echo "*** libtool: Unimplemented mode: $mode, fill a bug report" ;; esac lt_unmangle "$lt_output" output=$last_result # automake does not add a --tag switch to its libtool invocation when # assembling a .s file and rely on libtool to infer the right action based # on the compiler name. As shave is using CC to hook a wrapper, libtool gets # confused. Let's detect these cases and add a --tag=CC option. tag="" if test $tag_seen -eq 0 -a x"$mode" = xcompile; then tag="--tag=CC" fi if test -z $V; then if test $pass_though -eq 0; then echo "$Q$output" fi $LIBTOOL --silent $tag $preserved_args else echo $LIBTOOL $tag $preserved_args $LIBTOOL $tag $preserved_args fi longomatch-0.16.8/build/m4/shamrock/0002755000175000017500000000000011601631301014162 500000000000000longomatch-0.16.8/build/m4/shamrock/gnome-doc.m40000644000175000017500000000142211601631101016207 00000000000000AC_DEFUN([SHAMROCK_CHECK_GNOME_DOC_UTILS], [ AC_ARG_ENABLE([user-help], AC_HELP_STRING([--enable-user-help], [Enable building the user-help [[default=auto]]]),, enable_user_help=auto) if test "x$enable_user_help" = "xauto"; then PKG_CHECK_MODULES(GNOME_DOC_UTILS, gnome-doc-utils, enable_user_help=yes, enable_user_help=no) elif test "x$enable_user_help" = "xyes"; then PKG_CHECK_MODULES(GNOME_DOC_UTILS, gnome-doc-utils) fi # GNOME_DOC_INIT sets ENABLE_SK, but if we have disabled # user docs, then this needs to be defined manually. AM_CONDITIONAL(ENABLE_SK, false) if test "x$enable_user_help" = "xyes"; then GNOME_DOC_INIT([$1], enable_user_help=yes, enable_user_help=no) fi AM_CONDITIONAL(HAVE_GNOME_DOC_UTILS, test "x$enable_user_help" = "xyes") ]) longomatch-0.16.8/build/m4/shamrock/programs.m40000644000175000017500000000035711601631101016177 00000000000000AC_DEFUN([SHAMROCK_FIND_PROGRAM], [ AC_PATH_PROG($1, $2, $3) AC_SUBST($1) ]) AC_DEFUN([SHAMROCK_FIND_PROGRAM_OR_BAIL], [ SHAMROCK_FIND_PROGRAM($1, $2, no) if test "x$$1" = "xno"; then AC_MSG_ERROR([You need to install '$2']) fi ]) longomatch-0.16.8/build/m4/shamrock/util.m40000644000175000017500000000024311601631101015314 00000000000000AC_DEFUN([SHAMROCK_CONCAT], [ $1="$$1 $$2" ]) AC_DEFUN([SHAMROCK_CONCAT_MODULE], [ SHAMROCK_CONCAT($1_CFLAGS, $2_CFLAGS) SHAMROCK_CONCAT($1_LIBS, $2_LIBS) ]) longomatch-0.16.8/build/m4/shamrock/i18n.m40000644000175000017500000000053611601631101015123 00000000000000AC_DEFUN([SHAMROCK_CONFIGURE_I18N], [ ALL_LINGUAS=`grep -v '^#' $srcdir/po/LINGUAS | $SED ':a;N;$!ba;s/\n/ /g; s/[ ]+/ /g' | xargs` GETTEXT_PACKAGE=$1 AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext Package]) AM_GLIB_GNU_GETTEXT AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS']) ]) longomatch-0.16.8/build/m4/shamrock/mono.m40000644000175000017500000000474311601631101015320 00000000000000AC_DEFUN([SHAMROCK_FIND_MONO_1_0_COMPILER], [ SHAMROCK_FIND_PROGRAM_OR_BAIL(MCS, mcs) ]) AC_DEFUN([SHAMROCK_FIND_MONO_2_0_COMPILER], [ SHAMROCK_FIND_PROGRAM_OR_BAIL(MCS, gmcs) ]) AC_DEFUN([SHAMROCK_FIND_MONO_4_0_COMPILER], [ SHAMROCK_FIND_PROGRAM_OR_BAIL(MCS, dmcs) ]) AC_DEFUN([SHAMROCK_FIND_MONO_4_0_COMPILER_NOBAIL], [ SHAMROCK_FIND_PROGRAM(MCS, dmcs, no) ]) AC_DEFUN([SHAMROCK_FIND_MONO_RUNTIME], [ SHAMROCK_FIND_PROGRAM_OR_BAIL(MONO, mono) ]) AC_DEFUN([_SHAMROCK_CHECK_MONO_MODULE], [ PKG_CHECK_MODULES(MONO_MODULE, $1 >= $2) ]) AC_DEFUN([SHAMROCK_CHECK_MONO_MODULE], [ _SHAMROCK_CHECK_MONO_MODULE(mono, $1) ]) AC_DEFUN([SHAMROCK_CHECK_MONO2_MODULE], [ _SHAMROCK_CHECK_MONO_MODULE(mono-2, $1) ]) AC_DEFUN([_SHAMROCK_CHECK_MONO_MODULE_NOBAIL], [ PKG_CHECK_MODULES(MONO_MODULE, $2 >= $1, HAVE_MONO_MODULE=yes, HAVE_MONO_MODULE=no) AC_SUBST(HAVE_MONO_MODULE) ]) AC_DEFUN([SHAMROCK_CHECK_MONO_MODULE_NOBAIL], [ _SHAMROCK_CHECK_MONO_MODULE_NOBAIL(mono, $1) ]) AC_DEFUN([SHAMROCK_CHECK_MONO2_MODULE_NOBAIL], [ _SHAMROCK_CHECK_MONO_MODULE_NOBAIL(mono-2, $1) ]) AC_DEFUN([_SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES], [ for asm in $(echo "$*" | cut -d, -f3- | sed 's/\,/ /g') do AC_MSG_CHECKING([for Mono $2 GAC for $asm.dll]) if test \ -e "$($PKG_CONFIG --variable=libdir $1)/mono/$2/$asm.dll" -o \ -e "$($PKG_CONFIG --variable=prefix $1)/lib/mono/$2/$asm.dll"; \ then \ AC_MSG_RESULT([found]) else AC_MSG_RESULT([not found]) AC_MSG_ERROR([missing required Mono $2 assembly: $asm.dll]) fi done ]) AC_DEFUN([SHAMROCK_CHECK_MONO_1_0_GAC_ASSEMBLIES], [ _SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES(mono, 1.0, $*) ]) AC_DEFUN([SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES], [ _SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES(mono, 2.0, $*) ]) AC_DEFUN([SHAMROCK_CHECK_MONO2_2_0_GAC_ASSEMBLIES], [ _SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES(mono-2, 2.0, $*) ]) AC_DEFUN([SHAMROCK_CHECK_MONO_4_0_GAC_ASSEMBLIES], [ _SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES(mono, 4.0, $*) ]) AC_DEFUN([SHAMROCK_CHECK_MONO2_4_0_GAC_ASSEMBLIES], [ _SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES(mono-2, 4.0, $*) ]) AC_DEFUN([SHAMROCK_CHECK_MONO2_4_0_GAC_ASSEMBLIES], [ SHAMROCK_CHECK_MONO_MODULE(2.4.0) AC_CHECK_PROG(MCS, gmcs, yes) if test "x$MCS" = "xyes"; then AC_SUST(MCS) SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([ System.Data Mono.Cairo Mono.Posix ]) else SHAMROCK_FIND_MONO_2_0_COMPILER SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([ System.Data Mono.Cairo Mono.Posix ]) fi SHAMROCK_FIND_MONO_RUNTIME ]) longomatch-0.16.8/build/m4/shamrock/expansions.m40000644000175000017500000000146611601631101016536 00000000000000AC_DEFUN([SHAMROCK_EXPAND_LIBDIR], [ expanded_libdir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $libdir )` AC_SUBST(expanded_libdir) ]) AC_DEFUN([SHAMROCK_EXPAND_BINDIR], [ expanded_bindir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $bindir )` AC_SUBST(expanded_bindir) ]) AC_DEFUN([SHAMROCK_EXPAND_DATADIR], [ case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac expanded_datadir=`(eval echo $datadir)` expanded_datadir=`(eval echo $expanded_datadir)` AC_SUBST(expanded_datadir) ]) longomatch-0.16.8/build/m4/shamrock/nunit.m40000644000175000017500000000141511601631101015476 00000000000000AC_DEFUN([SHAMROCK_CHECK_NUNIT], [ NUNIT_REQUIRED=2.4.7 AC_ARG_ENABLE(tests, AC_HELP_STRING([--enable-tests], [Enable NUnit tests]), enable_tests=$enableval, enable_tests="no") if test "x$enable_tests" = "xno"; then do_tests=no AM_CONDITIONAL(ENABLE_TESTS, false) else PKG_CHECK_MODULES(NUNIT, nunit >= $NUNIT_REQUIRED, do_tests="yes", do_tests="no") AC_SUBST(NUNIT_LIBS) AM_CONDITIONAL(ENABLE_TESTS, test "x$do_tests" = "xyes") if test "x$do_tests" = "xno"; then PKG_CHECK_MODULES(NUNIT, mono-nunit >= 2.4, do_tests="yes", do_tests="no") AC_SUBST(NUNIT_LIBS) AM_CONDITIONAL(ENABLE_TESTS, test "x$do_tests" = "xyes") if test "x$do_tests" = "xno"; then AC_MSG_WARN([Could not find nunit: tests will not be available]) fi fi fi ]) longomatch-0.16.8/build/m4/shamrock/monodoc.m40000644000175000017500000000146511601631101016004 00000000000000AC_DEFUN([SHAMROCK_CHECK_MONODOC], [ AC_ARG_ENABLE(docs, AC_HELP_STRING([--disable-docs], [Do not build documentation]), , enable_docs=yes) if test "x$enable_docs" = "xyes"; then AC_PATH_PROG(MONODOCER, monodocer, no) if test "x$MONODOCER" = "xno"; then AC_MSG_ERROR([You need to install monodoc, or pass --disable-docs to configure to skip documentation installation]) fi AC_PATH_PROG(MDASSEMBLER, mdassembler, no) if test "x$MDASSEMBLER" = "xno"; then AC_MSG_ERROR([You need to install mdassembler, or pass --disable-docs to configure to skip documentation installation]) fi DOCDIR=`$PKG_CONFIG monodoc --variable=sourcesdir` AC_SUBST(DOCDIR) AM_CONDITIONAL(BUILD_DOCS, true) else AC_MSG_NOTICE([not building ${PACKAGE} API documentation]) AM_CONDITIONAL(BUILD_DOCS, false) fi ]) longomatch-0.16.8/build/build.rules.mk0000644000175000017500000000664511601631101014543 00000000000000UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE) SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES)) #SOURCES_BUILD += $(top_srcdir)/src/AssemblyInfo.cs RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES)) RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \ -resource:$(resource),$(notdir $(resource))) INSTALL_ICONS = $(top_srcdir)/build/private-icon-theme-installer "$(mkinstalldirs)" "$(INSTALL_DATA)" THEME_ICONS_SOURCE = $(wildcard $(srcdir)/ThemeIcons/*/*/*.png) $(wildcard $(srcdir)/ThemeIcons/scalable/*/*.svg) THEME_ICONS_RELATIVE = $(subst $(srcdir)/ThemeIcons/, , $(THEME_ICONS_SOURCE)) ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET))) ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION) DLLCONFIG_FILE = $(top_builddir)/bin/$(DLLCONFIG) INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR))) if ENABLE_TESTS LINK += " $(NUNIT_LIBS)" ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS" endif FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE)) DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/') OUTPUT_FILES = \ $(ASSEMBLY_FILE) \ $(ASSEMBLY_FILE).mdb \ $(DLLCONFIG_FILE) moduledir = $(INSTALL_DIR_RESOLVED) module_SCRIPTS = $(OUTPUT_FILES) @INTLTOOL_DESKTOP_RULE@ desktopdir = $(datadir)/applications desktop_in_files = $(DESKTOP_FILE) desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) imagesdir = @datadir@/@PACKAGE@/images images_DATA = $(IMAGES) logodir = @datadir@/icons/hicolor/48x48/apps logo_DATA = $(LOGO) all: $(ASSEMBLY_FILE) theme-icons run: @pushd $(top_builddir); \ make run; \ popd; test: @pushd $(top_builddir)/tests; \ make $(ASSEMBLY); \ popd; build-debug: @echo $(DEP_LINK) $(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE) $(ASSEMBLY_FILE): $(SOURCES_BUILD) $(RESOURCES_EXPANDED) $(DEP_LINK) @mkdir -p $(top_builddir)/bin @if [ ! "x$(ENABLE_RELEASE)" = "xyes" ]; then \ $(top_srcdir)/build/dll-map-makefile-verifier $(srcdir)/Makefile.am $(srcdir)/$(notdir $@.config) && \ $(MONO) $(top_builddir)/build/dll-map-verifier.exe $(srcdir)/$(notdir $@.config) -iwinmm -ilibbanshee -ilibbnpx11 -ilibc -ilibc.so.6 -iintl -ilibmtp.dll -ilibigemacintegration.dylib -iCFRelease $(SOURCES_BUILD); \ fi; $(MCS) \ $(GMCS_FLAGS) \ $(ASSEMBLY_BUILD_FLAGS) \ -nowarn:0278 -nowarn:0078 $$warn -unsafe \ -define:HAVE_GTK_2_10 -define:NET_2_0 \ -debug -target:$(TARGET) -out:$@ \ $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \ $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD) @if [ -e $(srcdir)/$(notdir $@.config) ]; then \ cp $(srcdir)/$(notdir $@.config) $(top_builddir)/bin; \ fi; @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \ cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \ fi; theme-icons: $(THEME_ICONS_SOURCE) @$(INSTALL_ICONS) -il "$(BUILD_DATA_DIR)" "$(srcdir)" $(THEME_ICONS_RELATIVE) install-data-hook: $(THEME_ICONS_SOURCE) @$(INSTALL_ICONS) -i "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE) $(EXTRA_INSTALL_DATA_HOOK) uninstall-hook: $(THEME_ICONS_SOURCE) @$(INSTALL_ICONS) -u "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE) $(EXTRA_UNINSTALL_HOOK) EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_EXPANDED) $(THEME_ICONS_SOURCE) $(IMAGES) $(LOGO) $(desktop_in_files) CLEANFILES = $(OUTPUT_FILES) DISTCLEANFILES = *.pidb $(desktop_DATA) MAINTAINERCLEANFILES = Makefile.in longomatch-0.16.8/build/Makefile.am0000644000175000017500000000057111601631101014006 00000000000000SUBDIRS = m4 DLL_MAP_VERIFIER_ASSEMBLY = dll-map-verifier.exe ALL_TARGETS = $(DLL_MAP_VERIFIER_ASSEMBLY) all: $(ALL_TARGETS) $(DLL_MAP_VERIFIER_ASSEMBLY): DllMapVerifier.cs $(MCS) -out:$@ $< EXTRA_DIST = \ icon-theme-installer \ private-icon-theme-installer \ DllMapVerifier.cs \ dll-map-makefile-verifier CLEANFILES = *.exe *.mdb MAINTAINERCLEANFILES = Makefile.in longomatch-0.16.8/build/DllMapVerifier.cs0000644000175000017500000002017611601631101015151 00000000000000using System; using System.IO; using System.Xml; using System.Text; using System.Collections.Generic; public static class DllMapVerifier { private struct DllImportRef { public DllImportRef (string name, int line, int column) { Name = name; Line = line; Column = column; } public string Name; public int Line; public int Column; } private static Dictionary> dll_imports = new Dictionary> (); private static List ignore_dlls = new List (); private static List config_dlls = null; public static int Main (string [] args) { LoadConfigDlls (args[0]); foreach (string file in args) { LoadDllImports (file); } return VerifyDllImports (args[0]) ? 0 : 1; } private static bool VerifyDllImports (string configFile) { int total_unmapped_count = 0; foreach (KeyValuePair> dll_import in dll_imports) { int file_unmapped_count = 0; foreach (DllImportRef dll_import_ref in dll_import.Value) { if (config_dlls != null && config_dlls.Contains (dll_import_ref.Name)) { continue; } if (file_unmapped_count++ == 0) { Console.Error.WriteLine ("Unmapped DLLs in file: {0}", dll_import.Key); } Console.Error.WriteLine (" + {0} : {1},{2}", dll_import_ref.Name, dll_import_ref.Line, dll_import_ref.Column); } total_unmapped_count += file_unmapped_count; } if (total_unmapped_count > 0) { Console.Error.WriteLine (); Console.Error.WriteLine (" If any DllImport above is explicitly allowed to be unmapped,"); Console.Error.WriteLine (" add an 'willfully unmapped' comment to the inside of the attribute:"); Console.Error.WriteLine (); Console.Error.WriteLine (" [DllImport (\"libX11.so.6\") /* willfully unmapped */]"); Console.Error.WriteLine (); } if (total_unmapped_count > 0 && config_dlls == null) { Console.Error.WriteLine ("No config file for DLL mapping was found ({0})", configFile); } return total_unmapped_count == 0; } private static void LoadDllImports (string csFile) { if (csFile.StartsWith ("-i")) { ignore_dlls.Add (csFile.Substring (2)); return; } if (Path.GetExtension (csFile) == ".cs" && File.Exists (csFile)) { List dll_import_refs = null; foreach (DllImportRef dll_import in ParseFileForDllImports (csFile)) { if (ignore_dlls.Contains (dll_import.Name)) { continue; } if (dll_import_refs == null) { dll_import_refs = new List (); } dll_import_refs.Add (dll_import); } if (dll_import_refs != null) { dll_imports.Add (csFile, dll_import_refs); } } } private static void LoadConfigDlls (string configFile) { try { XmlTextReader config = new XmlTextReader (configFile); config_dlls = new List (); while (config.Read ()) { if (config.NodeType == XmlNodeType.Element && config.Name == "dllmap") { string dll = config.GetAttribute ("dll"); if (!config_dlls.Contains (dll)) { config_dlls.Add (dll); } } } } catch { } } #region DllImport parser private static StreamReader reader; private static int reader_line; private static int reader_col; private static IEnumerable ParseFileForDllImports (string file) { reader_line = 1; reader_col = 1; using (reader = new StreamReader (file)) { char c; bool in_paren = false; bool in_attr = false; bool in_dll_attr = false; bool in_string = false; bool in_comment = false; int dll_line = 1, dll_col = 1; string dll_string = null; string dll_comment = null; while ((c = (char)reader.Peek ()) != Char.MaxValue) { switch (c) { case ' ': case '\t': Read (); break; case '[': in_attr = true; dll_string = null; dll_comment = null; dll_line = reader_line; dll_col = reader_col; Read (); break; case '(': Read (); in_paren = true; break; case ')': Read (); in_paren = false; break; case '"': Read (); if (dll_string == null && in_dll_attr && in_paren && !in_string) { in_string = true; } break; case '/': Read (); if ((char)reader.Peek () == '*') { Read (); if (in_dll_attr && !in_comment) { in_comment = true; } } break; case ']': if (in_dll_attr && dll_string != null && dll_comment != "willfully unmapped") { yield return new DllImportRef (dll_string, dll_line, dll_col); } in_attr = false; in_dll_attr = false; Read (); break; default: if (!in_dll_attr && in_attr && ReadDllAttribute ()) { in_dll_attr = true; } else if (in_dll_attr && in_string) { dll_string = ReadDllString (); in_string = false; } else if (in_dll_attr && in_comment) { dll_comment = ReadDllComment (); in_comment = false; } else { Read (); } break; } } } } private static bool ReadDllAttribute () { return Read () == 'D' && Read () == 'l' && Read () == 'l' && Read () == 'I' && Read () == 'm' && Read () == 'p' && Read () == 'o' && Read () == 'r' && Read () == 't'; } private static string ReadDllString () { StringBuilder builder = new StringBuilder (32); while (true) { char c = Read (); if (Char.IsLetterOrDigit (c) || c == '.' || c == '-' || c == '_') { builder.Append (c); } else { break; } } return builder.ToString (); } private static string ReadDllComment () { StringBuilder builder = new StringBuilder (); char lc = Char.MaxValue; while (true) { char c = Read (); if (c == Char.MaxValue || (c == '/' && lc == '*')) { break; } else if (lc != Char.MaxValue) { builder.Append (lc); } lc = c; } return builder.ToString ().Trim (); } private static char Read () { char c = (char)reader.Read (); if (c == '\n') { reader_line++; reader_col = 1; } else { reader_col++; } return c; } #endregion } longomatch-0.16.8/build/dll-map-makefile-verifier0000755000175000017500000000040011601631101016601 00000000000000#!/usr/bin/env bash if [ -f $2 ]; then # Lame, but better than nothing grep $(basename $2) $1 | grep DLLCONFIG &>/dev/null || { echo "Assembly has corresponding .config file, but it was not found in module_SCRIPTS in Makefile.am" 2>&1 exit 1 } fi longomatch-0.16.8/build/build.environment.mk0000644000175000017500000000202711601631101015743 00000000000000# Initializers MONO_BASE_PATH = MONO_ADDINS_PATH = # Install Paths DEFAULT_INSTALL_DIR = $(pkglibdir) # External libraries to link against, generated from configure LINK_SYSTEM = -r:System LINK_CAIRO = -r:Mono.Cairo LINK_MONO_POSIX = -r:Mono.Posix LINK_MONO_ZEROCONF = $(MONO_ZEROCONF_LIBS) LINK_GLIB = $(GLIBSHARP_LIBS) LINK_GTK = $(GTKSHARP_LIBS) LINK_GCONF = $(GCONFSHARP_LIBS) LINK_DB40 = $(DB4O_LIBS) LINK_CESARPLAYER = -r:$(DIR_BIN)/CesarPlayer.dll REF_DEP_CESARPLAYER = $(LINK_GLIB) \ $(LINK_GTK) \ $(LINK_MONO_POSIX) REF_DEP_LONGOMATCH = \ $(LINK_MONO_POSIX) \ $(LINK_DB40) \ $(LINK_GLIB) \ $(LINK_GTK) \ $(LINK_CAIRO) \ $(LINK_CESARPLAYER) DIR_BIN = $(top_builddir)/bin # Cute hack to replace a space with something colon:= : empty:= space:= $(empty) $(empty) # Build path to allow running uninstalled RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH)) longomatch-0.16.8/build/icon-theme-installer0000755000175000017500000001217511601631101015726 00000000000000#!/usr/bin/env bash # icon-theme-installer # Copyright (C) 2006 Novell, Inc. # Written by Aaron Bockover # Licensed under the MIT/X11 license # # This script is meant to be invoked from within a Makefile/Makefile.am # in the install-data-local and uninstall-data sections. It handles the # task of properly installing icons into the icon theme. It requires a # few arguments to set up its environment, and a list of files to be # installed. The format of the file list is critical: # # , # # apps,music-player-banshee.svg # apps,music-player-banshee-16.png # apps,music-player-banshee-22.png # # is the icon theme category, for instance, apps, devices, # actions, emblems... # # must have a basename in the form of: # # proper-theme-name[-]. # # Where should be either nothing, which will default to scalable # or \-[0-9]{2}, which will expand to x. For example: # # music-player-banshee-16.png # # The here is -16 and will expand to 16x16 per the icon theme spec # # What follows is an example Makefile.am for icon theme installation: # # --------------- # theme=hicolor # themedir=$(datadir)/icons/$(theme) # theme_icons = \ # apps,music-player-banshee.svg \ # apps,music-player-banshee-16.png \ # apps,music-player-banshee-22.png \ # apps,music-player-banshee-24.png \ # apps,music-player-banshee-32.png # # install_icon_exec = $(top_srcdir)/build/icon-theme-installer -t $(theme) -s $(srcdir) -d "x$(DESTDIR)" -b $(themedir) -m "$(mkinstalldirs)" -x "$(INSTALL_DATA)" # install-data-local: # $(install_icon_exec) -i $(theme_icons) # # uninstall-hook: # $(install_icon_exec) -u $(theme_icons) # # MAINTAINERCLEANFILES = Makefile.in # EXTRA_DIST = $(wildcard *.svg *.png) # --------------- # # Arguments to this program: # # -i : Install # -u : Uninstall # -t : Theme name (hicolor) # -d : Theme installation dest directory [x$(DESTDIR)] - Always prefix # this argument with x; it will be stripped but will act as a # placeholder for zero $DESTDIRs (only set by packagers) # -b : Theme installation directory [$(hicolordir)] # -s : Source directory [$(srcdir)] # -m : Command to exec for directory creation [$(mkinstalldirs)] # -x : Command to exec for single file installation [$(INSTALL_DATA)] # : All remainging should be category,filename pairs while getopts "iut:b:d:s:m:x:" flag; do case "$flag" in i) INSTALL=yes ;; u) UNINSTALL=yes ;; t) THEME_NAME=$OPTARG ;; d) INSTALL_DEST_DIR=${OPTARG##x} ;; b) INSTALL_BASE_DIR=$OPTARG ;; s) SRC_DIR=$OPTARG ;; m) MKINSTALLDIRS_EXEC=$OPTARG ;; x) INSTALL_DATA_EXEC=$OPTARG ;; esac done shift $(($OPTIND - 1)) if test "x$INSTALL" = "xyes" -a "x$UNINSTALL" = "xyes"; then echo "Cannot pass both -i and -u" exit 1 elif test "x$INSTALL" = "x" -a "x$UNINSTALL" = "x"; then echo "Must path either -i or -u" exit 1 fi if test -z "$THEME_NAME"; then echo "Theme name required (-t hicolor)" exit 1 fi if test -z "$INSTALL_BASE_DIR"; then echo "Base theme directory required [-b \$(hicolordir)]" exit 1 fi if test ! -x $(echo "$MKINSTALLDIRS_EXEC" | cut -f1 -d' '); then echo "Cannot find '$MKINSTALLDIRS_EXEC'; You probably want to pass -m \$(mkinstalldirs)" exit 1 fi if test ! -x $(echo "$INSTALL_DATA_EXEC" | cut -f1 -d' '); then echo "Cannot find '$INSTALL_DATA_EXEC'; You probably want to pass -x \$(INSTALL_DATA)" exit 1 fi if test -z "$SRC_DIR"; then SRC_DIR=. fi for icon in $@; do size=$(echo $icon | sed s/[^0-9]*//g) category=$(echo $icon | cut -d, -f1) build_name=$(echo $icon | cut -d, -f2) install_name=$(echo $build_name | sed "s/[0-9]//g; s/-\././") install_name=$(basename $install_name) if test -z $size; then size=scalable; else size=${size}x${size}; fi install_dir=${INSTALL_DEST_DIR}${INSTALL_BASE_DIR}/$size/$category install_path=$install_dir/$install_name if test "x$INSTALL" = "xyes"; then echo "Installing $size $install_name into $THEME_NAME icon theme" $($MKINSTALLDIRS_EXEC $install_dir) || { echo "Failed to create directory $install_dir" exit 1 } $($INSTALL_DATA_EXEC $SRC_DIR/$build_name $install_path) || { echo "Failed to install $SRC_DIR/$build_name into $install_path" exit 1 } if test ! -e $install_path; then echo "Failed to install $SRC_DIR/$build_name into $install_path" exit 1 fi else if test -e $install_path; then echo "Removing $size $install_name from $THEME_NAME icon theme" rm $install_path || { echo "Failed to remove $install_path" exit 1 } fi fi done gtk_update_icon_cache_bin="$((which gtk-update-icon-cache || echo /opt/gnome/bin/gtk-update-icon-cache)2>/dev/null)" gtk_update_icon_cache="$gtk_update_icon_cache_bin -f -t $INSTALL_BASE_DIR" if test -z "$INSTALL_DEST_DIR"; then if test -x $gtk_update_icon_cache_bin; then echo "Updating GTK icon cache" $gtk_update_icon_cache else echo "*** Icon cache not updated. Could not execute $gtk_update_icon_cache_bin" fi else echo "*** Icon cache not updated. After (un)install, run this:" echo "*** $gtk_update_icon_cache" fi longomatch-0.16.8/missing0000755000175000017500000002623311500011217012253 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # 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, 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. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: longomatch-0.16.8/config.sub0000755000175000017500000010344511371534605012661 00000000000000#! /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 # Free Software Foundation, Inc. timestamp='2010-01-22' # 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, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # 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 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-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/'` ;; *) 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*) 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 \ | 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 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | 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 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | 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 | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-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-* \ | 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-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | 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-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | 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-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | 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-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile-* | tilegx-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | 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 ;; 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) 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'm not sure what "Sysv32" means. Should this be sysv3.2? 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-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; 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 ;; 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) basic_machine=powerpc-unknown ;; ppc-*) 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 ;; 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 ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; # This must be matched before tile*. tilegx*) basic_machine=tilegx-unknown os=-linux-gnu ;; tile*) basic_machine=tile-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 ;; 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* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -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 ;; # 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 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; 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: longomatch-0.16.8/Makefile.am0000644000175000017500000000062211601631101012704 00000000000000EXTRA_DIST =\ expansions.m4 \ env.in SUBDIRS = build libcesarplayer CesarPlayer LongoMatch po DISTCLEANFILES = intltool-extract\ intltool-merge\ intltool-update # Build ChangeLog from GIT history ChangeLog: @if test -f $(top_srcdir)/.git/HEAD; then \ git log --pretty=format:'%ad %an <%ae>%n *%s ' --stat --after="Jul 01 23:47:57 2009" > $@; \ fi dist: ChangeLog .PHONY: ChangeLog longomatch-0.16.8/LongoMatch/0002755000175000017500000000000011601631302012770 500000000000000longomatch-0.16.8/LongoMatch/images/0002755000175000017500000000000011601631302014235 500000000000000longomatch-0.16.8/LongoMatch/images/stock_draw-circle-unfilled.png0000644000175000017500000000064211601631101022057 00000000000000PNG  IHDRabKGDCWIDATxc`0 {g200d300x300Co200le``zq8 Hfm*/?1+ä%۹>}Љu YΘÀȂ6{g`8>>0P7u=w/W~.AQ~v_ Д8Npbb" %H>}_. 01000031ݙf/7l熦 o?|kGb x#4a0un&芖>a*hڹ֮pҲ`7BScIauD vrzС#ID1,|{?IENDB`longomatch-0.16.8/LongoMatch/images/stock_draw-freeform-line.png0000644000175000017500000000042411601631101021546 00000000000000PNG  IHDRabKGDIDATxc` KPC300XQ B300īsg``τiږ9NyaSouo5 A4o&U .Bata:וO4OL 300\zE῿h#:A-D! `MG XIENDB`longomatch-0.16.8/LongoMatch/images/background.png0000755000175000017500000021647111601631101017013 00000000000000JFIFHH 0ExifMM*bj(1r2i ' 'Adobe Photoshop CS3 Macintosh2008:02:13 00:30:26 &(.HHJFIFHH Adobe_CMAdobed            #" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?I$(xR g<%8쁕KrcWvU2ݓk[z[?I`5Xy3mԭq::~L?":}yEuFV MfDz3%CW9,qUk;)_7 y;w<9eQg4QguZ0$Up-#DۿznNwSκr>o][;G+* J_K}7WCM9>\ͻS'-tTP! /N^{[eVv9eo`=J.qwU* ߶WU~=! ]6YoF]^̍~K9IK$HI$.6R7^ݥcuݿ !ANLät=|z+c-9woVz60v&n-mC)fC/z_usiסnpV-"GM-me_oogZ]OoP_@zYfv߉/ұpGP<j?ЕC~>WSvWK3|v;j1_>gM-sk{\cYCqeijO޳?"#B?X[sٚєcFG%ع*W{Emks12r};.k* mu;_ԲM*sc̬vdczt3u ?l9xfYSw=uK~Qn!N -^/̷698TaUaY?suuWUnfأ8cY2`v#m;ҹ3Y6PCPx5'˼G׉^@l 3y}_#aXc N]F&߇~=N*mucXݑ{?U_w!T%vƇxq\w~4|unE*f^\>ZսeV com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket PMPPDPaperCodeName com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray PMPPDPaperCodeName A4 com.apple.print.ticket.stateFlag 0 PMTiogaPaperName com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray PMTiogaPaperName iso-a4 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.stateFlag 0 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM 8BIMF8BIM0#8BIM-J8BIM@@8BIM8BIMS longomatch copy nullboundsObjcRct1Top longLeftlongBtomlongRghtlong slicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlong urlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIMY8BIM #AJFIFHH Adobe_CMAdobed            #" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?I$(xR g<%8쁕KrcWvU2ݓk[z[?I`5Xy3mԭq::~L?":}yEuFV MfDz3%CW9,qUk;)_7 y;w<9eQg4QguZ0$Up-#DۿznNwSκr>o][;G+* J_K}7WCM9>\ͻS'-tTP! /N^{[eVv9eo`=J.qwU* ߶WU~=! ]6YoF]^̍~K9IK$HI$.6R7^ݥcuݿ !ANLät=|z+c-9woVz60v&n-mC)fC/z_usiסnpV-"GM-me_oogZ]OoP_@zYfv߉/ұpGP<j?ЕC~>WSvWK3|v;j1_>gM-sk{\cYCqeijO޳?"#B?X[sٚєcFG%ع*W{Emks12r};.k* mu;_ԲM*sc̬vdczt3u ?l9xfYSw=uK~Qn!N -^/̷698TaUaY?suuWUnfأ8cY2`v#m;ҹ3Y6PCPx5'˼G׉^@l 3y}_#aXc N]F&߇~=N*mucXݑ{?U_w!T%vƇxq\w~4|unE*f^\>ZսeV XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmAdobed@ d    !1 AQa"q2 BRb#r3C$SsT%&6'84DwXxcEUFGg(  !1AQaq"2BRbr#႒3s4CS$cDT%5d& ?ҹŪD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%ҹŪD%(DJ)J(J"QRPD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ)J(J"QD%(DJ"TT"QD%(((DJ"QEҹŪD%(((DJ"QRD.@=FJS(ױѵ{RX~Yj,.`Qm1}Q mŁ KIٻ6\~D?iĬGQh]f\ʊs^q/R ٮRT!W_(ՀWKUuЦT 7TT5hv#gLߊV/PZ3t236dd\T"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QRD%(E)E DJ"QRPD%(E)E DJ"QҹŪD%(DJ)J(J"QE}3WT-X!aҀ~`ֶ937*@xvE,a2(7HW@|8)zߘ:wM"!)]S)F j` "c]TPz1bmr$Vt(6`oUO4'滒7CsocXS6iHZ}ޞ` ?r҆ 5jay:sңmʘ BN2.Do]sʩ[LMl(&y4+؇ 9pA%PzUl_S =bH&iT*B|M#Kq > -*TD@ZdVXפ%(D\)QJ{@q7xE 7PHkɖ1/f{ F_gsC~JyAޔ\ΧGT{O`(_"wnk׼C E-/I@J5KJ8?q4`@C|ST\QBQD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"Q( RD%(((DJ"QJQBQ(D%ҹŪD%(DJ"/QR6vzJgEiu D="fu "#gdUa|Q Ѩ?`! >C* %lr90d˱}> Lm;nSQPz{@* )"tuuX]pⲶg >Jdqڲ6.1;׺ ˎEB%s5ދ8v9pȨ-i/RO$ %T;uˉ'Aj^h:ё6 eVOM ;^F C-^4.i{MGO+m~z< [ nQby'* R@򭁨wIC\r߽ؗ,%@AnԆP=#[|839c#ʳ67z1USI#XǢ} bݙ\j'W-)}"*-vBhS0>|(;#Un7$mV$:˶d"_B1(%~m_yZg}Y&մ]#vVNԟI%!4߸4]u+/ 7L޼+7WOmJNq-a_t+=&ۆIέi>+5CM0ߒ"fSP5pG(Ri[7ׂdR4Pdt.ísDJ"QD%(DJ"QD%(DJ"QD%(DJ)J(J"QRPD%(E)DJ(J"QD%(D_ҹŪD%(E)E "LP%)v.l&7y/$Ԥ:%( =u`Ge 5U M?ِz?\j5P#.ĨZN Y Q{\T"QD.jhC^v/%N=emɥauM,x{+j=:WAZaeq hrr7jCE%7_QHSzf *\\3MVVl70z=gr {D26bV_m ](p.-\̙xpkY ~{u5j qdKdQm1_[na'AtT: CpGV}J"7 5ʩ.4 tQ=*9٢}؏X2nܠ!@!X>6 ;GI¤ˁ%OFƄn9mdd \v-a任83eK;0ŤVX|E:j^A=s t$|洊'A7]kZ~KfU4O;p)"ih!uދˀ(iH㶙DçP UҦE{4dz/7NeN?U*w2쫶\8g^Fc4N7;/tv3nv6%!## .ncdi3hi?%*؏P4}vLI퍚չ'3l!{mE:K=fA{$$i*1Fr{_@z-lDD0; pom<̉*HǾAux\ѧsS׼8IQ[fkqa7\hP<ҹ98aؗX4ԎݖJel)S"1i\-ϰ^gȘ7 =_Ѣۇ_Gn#^ռxywI50&3bќ~m 2h]}uMO^s">ȫWmO&n[׍FO3l< QD ULuDD *`Ժv6Ux9hUZyTMcCn0WKxImU+7jƈlZՀtp31ўGJ<ccɓ/7ZNgj_b+V+j$83R,묠DZҚҺ;nj 5ډQ8jO@Yv,Y8ÖEp[nP;)˩÷^79aEN.K.Z4NTPDm t}Zz+av{_0a8ps_&)flyYq q6$-vs Eq]7qi+@"c5s)A1GqJ;DJ=5/M@jXP5W`METTo\iTJJ"w U`MERzJQBQD*Q`**ꦪRwiU _**z@ MQsE)JBq}aEz 뚚QJQBQWKPM.4*A.(((DJ"QD/ҹŪD%(E)E D\/R&CTp/$[ #{xk ]Pۄ@zeel1^SߨOhW,BfN^V7DBAڼSV2Y|ו)R50 3+؜zz謭{ݪ2rDQS!q P0Z_5=GcIeOLre5 MRP~bz{@iI8*4lD$U%.6jMpŦzACetPB*@7Jh>Wѿ_ c)d̽m;ԸCrm1 (5r$cĕ)T)Nbu :fdcSG0T2PH! ?pRfCyvV﷝ +>WcƵf0wX}k\LnL~ݬs 7{'Ȥ@zW4yI-hZ!hEC4;BpHj: /9CI{b'N/hm& d$N9WH E]#UnvW\nG4僃M X\d Bs:|=XF( y\8-{@ a^vv: ݐqiL]d2i$0v̿f덑Oa777Q 4aŌ 81 ծ+0xK^̤@k\?Jq,Mpog2-S?l8I ɒiJ &A06w6[=|\8^P\UXj=3+C@\7 ^1Zh2WܢC'؇CuMۥnR;ht-WmƌEήY\_*~Ap4J4^&4W '4GMOW%Hc Q3}`]\=@7x`vw6Ljw<m6>ghsMЏpEB߰TFn59I@fu/5΢Gڣ ͡pW15Fh.c)S/,\ܚ e.8ǒO 4fC2⍷'b*af:=뾴M ft_\Z\nIawʉӰ44S<2R8kIC(~edw"x7U+i7ϒ@0h ӱ{{(ۺwjx[I_3w++ۏ[5q dg\&L)-𐌌U :_(>j<塮i _( \k{t%fJp\{@ƪWMO켁3 @7h6vuabr( `Cr\U&|`!Ơn j/cx)P7 +0Yg%M2err'9ҙc&P %(E 1S8U@Cu7mZxo\# ]{W@(Z=jq^Wѕg'+o6}+pRT6YC=b7&]YKr`LR6k7tHFDHq yHKQӈHiP1 #"UIip C7 uHjoxFQtkvFbFٓk#*ɩ_8`U-ɠlT)VBM k-kM.%❍--{M+Jmq^ԶH4[*jrޝ:P;㕜%ܷɕVmun7qpMX^䚅IRpa") *ADkv,\pM %5$ WkΕƕH *e,_0l\wh;bk汨]=%"fx"m !äIsoh۳4H*hM*Xi Ѹ^e Ѩ|t+X/ezE2R?!euF3x )6݉.#?5ͰF* āɔK[\~$MtԺ p;i7X<X=|*eϻ擉Z6cb;q&FzEES_ )ȓf8(]SYO. |dӷ\D~1chd,Kv?xc[(K}[̪ ʒDʹdRS`CRZ Ķ6H֐GVwYjo /)ފQTWk8nVYr'%˓춓Vl{dc0x8P"^Iq0%(DJ{J67E|!v5kHƇmWJhW< g(*Ŗ͊$Pys?gDmaV^.xɕ *`0m5.6%b2Ƿ&h Ve:Z*zjޥ{Vշs_l灳-(&ʶAsʴAgf2DUD)R!;{F@ 4;sY4IPwьx֩4hf^;~XxXlV6-ǞyrvrQˮ˶K*F %T t0\Z]A}mݬV49#BDJ[AJQBQ4Ex9]fD~2PhDJ"QD%(ҹŪD%(DJ)J(_E Fz@:+K ĽEMR(}O P$1ziBEuCBWF "uRn󃡾(cֳFKC}B:}kXbVݠ=:h:6$H$Jha6ʙu9(CW-ڇAt՝FK#{K3 OECcX^,,c~kUR TL_Dj@DqD .{mKㅎm7o9k-,hLX]&"Uf턢"Fq =u2N8"(o oVmJ**L 5-ml%G/q+I |8ְ?xjF[i[5Ir UN #|Wj:bo |ARڴ-sHXPo2e2pJ oP("**SQ-51B۫B.,UJ@DTv2՝.:W5+?$ٮb\ H#9j%҈`ї^b>jA%dANGnV 阊Gu9gPΠp.mK^{f/~uĘc ;ŖE,m7hPM@@ $&A꺪£K,sc{;M KZno^r}Ԟ 2xR.,d^oqw>9~SɖU r RNmѠq 5T{|m*¼rbm\`_Fo*^*e$J`ngѮ!; |BiuW?*􍁗[~_s$r3Dɦ”4@<7lErJ"CWGF0_ Ci^ Aܰ"2;֞uF>O;R/Hr2Q% BjY$&3HUd5AĽ~i\?sj_6mA~EqAvm1obSM[o;;!- i )GKY+<+'tZ}͋oއ ejxq*7nJۨW͹wOtI K]<ŗ Jm yśܟl.ňg1QgYf@ƍ(* S:4æ\ǬŃp0=VN"xuޥJB\vEqX;r%-ߓKztcuY=lt"D4݊X卒(x80 jK(ؘ#kTv6/Oʹ1r#E{ Vvk]Tܸ6Q { *EШLӮ8M~ֆ(9U L9f!nJWA` Z9armg?~RzûNi,]yȋ؋) &h4E@n!@Jy fuLd.gYjG3'"S"ҜGB8#3 Zׇn[vտ.(x(8dD$$"i}'F"/̹ؒvN$ kt+9Ĝ7$hlȜe^;GcA^^b7Jg6(ۈryrcg^+rQcۗC@5-].G\߬8cX s3g_6zZw %[,L|$E@Hᛤt05CuV daPWG_8o'cp'8(AĜdQ-*^I3m9gLH;-WAf.Lj*Uc-Aw$!Ri^uȀ]SB8FuqG4wCǰiPS֪;O / 25o=d 'K".nZdI,.mf$'Rnu|1ήeW7q+1\[vJae0^V2Z9l9tY \ceL:~U-8Ӭ ae=y8ݸ4UP4p}Y&ݳ1K7"榵!$S&sRu|ټϑhݲ1K˖l{szXI}\܇xmQ\9:I[~~t,%(Vw~rh|I#KZ = a2đe逮Ʀu𪉄H"tuҮo>nPXY{K^>4gYQ9t+|qf`y30}'$K@ѱJnx񸦢Gpb$0C|k6-K$cێa 5R#QyPH%fWMmW-rHg-M;8¦c$*{ڂQ?;HmՕ}mxKࡗGWm q:bVr08q6FFrYtg\69L`~Ho5)gTMJ-gJ?97oT4;vay1`R(2IPcGt,b6Y#'StORa1_<8J6QS议fՌ$/kL42 ɻm:*PD*e.-4H'5`.ZDq]reBb UbͷHOC( 8-ج'=l`,?dYTW 9ᘟRHGEц;aym0.tvR#2*Zf%i[Z3yi 3l If&v훷LELM$QLR)C@ *lm֯ѰbɸC`K-zreTEMϜ1 %If23GI(]bpk+{C,lopxl.#Y$d<6ȖC*EuƦ$wO"^D:$ 3!jm Vre**VgL UTd8ٶTf;{OQJH6zB3n^E\9;#7u>VKXf拗Kq#ϭRҟzT^ ~ar Rm!MŴ0sItq~_ĉM8Z47@}`OZXZ+~@N +)m| +w+"S{q3t(Z}B2,0M9@z1;?X+ QWc88aIkYx{DKU+G7JL!ֵ΃ V\CZ7@+I)`:ܿH X+^،an[!"##f1qQmfDIVȔPz:]/!js'2JbjjJC/+#]Fm˖soZ Q-yOƬYKNDmXǤHEb4/SP@X΍`ͭ,l69a̖Ҋ+~XV=ŌLp8Vf-vr1u]L: qzf%`1i[Pxۢƹ2>"#[ߕVQynKĭr1P?Y3%=#Uԕ JV2 r!ڹ2hLu!6i#v6f@WfwjMe"@ITyr3kq/ƙT:ʮ x{FвLC9KAXJ־`WxdD}Gq3+t^4TJbԣ}vml{y"^e8<7faءq7fOh;K՛64s1\E241*K n%oWc18 A޵t'pw|fgyJ[Y!6lR Tm:/@~\k[whNdqJ14!WƽʒQi+DA 'Ҵ\,L<0 DX U̚IH)P8p0P]+\ PI~d%737x N,HX:*@u/BЫp7B;^XsoO kmG/β~s?\7+>?'¹3V;iS5#w-)FzV"|8i>^>⒗%vC^ GUB$QY5]Ļ%޺ER'QN[O1jowqp8 2.d ~iZ-w,b!c]IIHpFL#7;]XEV2(a m9{Jhc@mω <|3+/ qG=n:weQE̬5,ǂ8Ƈn1 5fSטqc2sPlMkhtA``!*i (獴\rdq/`#qҎUO:>Đ0.m=նe0e "TE2*i$H GBmtkVmea)ivb^ȰtBjꘇ(Bs'kOPF`*9-Bd>, ǫjVҟj;Y9U(Vܾ2qMEHr%48G.~ C7L=hvѝF9fFߍ"Jz GrܳllG8p]񷬸]ǤmrGqYcqC+y Rnw`rNXkNGnֳm֩@$zB>xHSjɱnZ6s$՞B\5'<5 vM ev**9E%9CjSzkvL|L-26-f_ovڻ]$W!4ےDb:Oڷiess}n|H >A#ok\\fqkǥU//)D%3P6ĩJhͰ}=ZdtK˺=*xuYIBrMHSvWyc<ސ 帅E+XtAnsOoY֭IdiVl$AbD =CIHY2.P) C$TZ*U(SQ]_B6Y"HU\v&"ԭkPoޖ232W `G)$H0(N(T5D=5146Sb&R^$ޗ#k6v9g :]LMv%PY#DMA) bu0ŧ}Sv(IT@{V|EUR~H98dG|}qSZZI5/I >;WBK h*'*0.ߡr. ?9uyT׺jI!e 5;x[Mb=V:a`:๋/,X9fo Tȓz$PTl ĒAQpSbv8 O~v-|4 Q @=ұRbqr:xjzBD0(dsEQswn9i9V10x{52۔AAz^U8Fׇ4v/o c|id ѽZ&EB&귣[C!R~uwܺ.4A9>#*0>eJ]FN-qn4Zb.r.'=ݑqt EsmJ<`@|[\2x>n8C'㚫g[W5CƇf#+Ҥ2ږC\GV^^ʖ~@ӏM|fOmij砹 (ȯ|S!J Ó`qRż^?7w ҺEu,)x|I9LJPYA06!C<oR*7қV0FW.X7vEF~@;XivJt&AECh :A[pCi#0 9k8ׇ77 Ռ\d\x\#9eH9XvHD9gb t ;1G Umm1%7@԰in %wN;z--m]dH)Pu@>Vpi7V"&"9]L.Ě}Zo.^֌\c(oo7e89jK6 6.3싀1NR(}P Sk_3L=*nnĈz61RAQIA25*$̕ {ӭmaCOPjЫ bZl# YX-1+ܷvhv깮ubm) rº>5Dž&%7P(GJх-kC@)5oYhwZƧhƆ\kpi8S<-c_lNcgsdH.A1o/ր.^nqCcV,q`9vXM(cCZ,L`绦˩Љ] ^@jNd˱^a[Kn39,HNcO޻rc"QM3jծ=q] ;bѤ@ᱜAg&fY_4..ccȾ86U;.ljiʋ%ɬrPvukz,5+tD2kv'ZIօ8{X׀Z>5r=Cjlar'&ps ~TYi<#6T6:R}[ ?yꮠsC{-Zna9NM\!/2(>$GW]T= Na h8bZ[5ʆ.xf>Rn0Y(61SEer^f"E mGyaWw{1_q V'Vz}jV1X8<[w.Tf͘?=Eѡqڭ]\5= )U9tۇ]uNW okuz4X(nK ]038ܝ$&m' $& ,3O2۩L kLӠM⸒sWq1q 6/OasጒJZ*jv4Jk;}7k٧:4KyoaQ_0t] o;!L!cȦ唆;; \Q\EJT7Ib$DrZTEGzy|n,~\қafH8#TT Ցܶ҈ɸجkcqoqiu\Hhp~scs;{K{4PĺUc]Ń*Xh뚼.Dt$ţ#כ `\G&`J{雫0TD: p#niN< <[&x8 ܦ`LGX&e ^DoZc׮胔[L(XINHNvi0SS#w8iA(!ס}=e 'Lêb?դZ2 š.I*=v孁4O+r_*,8asn> ?P0\,YroVR9L5Όwr bݽ[s[p\UxKVu;$!%6U棥Mq7I? mi\ ޠ-%y'")H>0 (hXKTD׫g5n}{xFy+eKr7%Ӎ/{S [ >O]Ng\p=ffe+ƄHTHDBGdC]] kr1p#(HpY"0_*hAyq_o75ymElUk+ˍGY2˰ѥ\C8yΦ?'+ Q{ ]jP;V6TkY(E)E DJ"QD%ҹŪD%(DJ"潁'j`}oTT nUO_""=ƢM\T")DàEp :u`5gYB8| WP?Q?\u;`LA*_ k>1WT *eR,ndsǬ;|#jzGzB;jR(y9¦#+@]0jn!^^Q7ՄzI,cvč"ѺPIu);VGj :h& 09D:P0DmFvn%\.ger{q+_;Y{YWnRS51e"V.K!AVSCo5j~hmZG@Mp\hsPw4@OR{|*a|ba=tV\: 5>Enm+fmoܭאO&Pd5¶teLln,}E` MGԚ!״ h6F"jvl^us7,سYKyՆHzxkbS5VުM,}0":d֚j:L׉Cm,WgEsqA~)e 6i,ȓxW)=NѨUVRjQ:J8Ye ƗP+j *o.wg_7Tķ.D~Wq0Q'-4F.U$R~2b$:!@uUMΌ!\jڃZ[q ՕƜd6 J'cghȢ IeBC;IR]#n\hKI#:Bc,J>35Z)trkݼ+]b FDMD* $\ТݩH5NeMyĺ@~]%>;$O٤PX`֬ZնxZa7W\K#Nq=gl,k8x;Ø9ŴC+ B"PMt衈&;: YjsjZsv Gwг[ݲdlGگ`c9 Zyէ89 u!, H*l9WUu l v@ْ+oH Gq=*9h~^2.F{̬Bș"ȉ ]xi" Gjp0A+Fp8Ê(ۨIfMc..iporg+/J A_C]J=@B魉Ʃsnko!aiꍀ # ɹiaQهX"Y uȶܝ㫊OIM!SC/wn:#e[svxh'2H!JAI?7k_6L-"$R) 1*p1@= `05lrB!CڼYx{L`1%E).6}ahZh6RMBJ$&͡7`9D6m̱9WM Zb _k \|7S0 `8"ۺTݢ]14[%)5(Dt!.ӔP+Z.ty.5[<>wFӄMObeOhKm?MD3 h .hmP1`Z+y9ljԭ)SS@A«4*z4-_=suL9|6Hʓ'"$ erE*5T!u; 3H;em.J FfAVЙ!],JOPU(!_%\˄bE(@~́lmg)>%הKj{bWxΎ]yIIA i`]5V(?.;R24{q $j7,raPh# ֜4Sb.[q&΢P;UPn%URUK.>J?1K ?Xf ޫFAa'2KxwvzFY3,I.<쫂TRsX& mgStW!nhC"(f&\n֜u{ #n\\4.N;q^/>@C ~-%MVs c.s}VWH ^*M.j`mÜ5;:絩xvɉy9sbqrupq,N54#E6n, ;Թi,k+DžgA[1\E0sX-{JrfŅAK'K' :bdb;1~%:Y%u$¤j7d5 gn yfOOÕ:0*\]dgCiu\&s& nYMt }RLKj)Z*f sZpL?՗:W(yyGnq:CosM^rmmBi&ᛶIVLwhvb>\KBU.5z҄қu<9^"JԑJ6J@m,#`\6 M DI$0(h0^\p/'J+"ٜ9?`P:-o,^{My{N+кn4T$H:qu+=ik9k]wUK0u yYVO@ph:i=Xn9:<\֮F'2&Rte hwU +jE*O[2 1 S ;ty7ͭf*F#n+h!T뙩 CseS(kL;? ι y[1*Hcs$YSw{ ED@ȱv̝u\DUiE+XC ^kZx\'JѰWDHoOX`–q Q 5Mu W&m??{1G0)`-MȖV=g,ic-NMV+IUMb@:Vn$IrB.^*CT>᭖]uD%(DJ"QEҹŪD%(DJ"QRPRDx{*e;M=Suvq E61ih`NŽMUxS\;mJWT0Lch\/vP5eR()C?Xíh\ix`)%ǗD,M "QC ?}$: w/_=wWbOTcf#*ցm+3%j[v=s;xt5hղ&Y×+b"t 1RD@o%F\х@Ii 0$g|Ys1.w,"5W Zb ].,*qTͨ(Mk W1\?8^wۧ_3Btmp8i%Ą/e^.TDyʨ $R$Р=JuqYpײgCWZç_#/3;>srvh\:)peHbKZh7ǽDxBv`VŽ/i:2 NR{Ԭg쁡ƣ0F dVxDtxӞ~Ka3*{u$2*E3ix)""TdU1J#Cevǃt+BxdH(ૼlD|BGB9vh(""Iq%"L Q]jU aDF(-I8SO6K~gx:a얒}o-wvś"fZAQ!zbS!]#F$.#6:c<$,r\^0 km˹qhAymfp}QE2\Wjڲ bbJ>]6㘵U׮,bV2) "#WA6K>oy\Z\֊*r@9?W* w gxvA62Kh2߉dLL;K Z*qį[0ZAͭǯ3@Mxl] (պy,Ce(TSh"dԇ#z0 }Jԭu/qwUl_zܐ"ܵ񐺶2$Bmg[h,rVg8ja ھCwsVXw h< >xρ6P(%~,'4L;8:Udv"8\4eRH@^WeB*lf\]J#Hk*&٣Aی uPR]Lp]ERH&y;ݯvяd'O#ch "}<JzV^[ddkn\1׹AMBύ+(zn48|2DC{QںmRٷ3]u5GjN`}?fH ۘ&ېC?*E"(b:ݜ"5jVv BA XsYg|IG[P!,IALqG^}>zN'ʄkI,ƮK?'3T67Enf֣M!Bf*"P:i˥6G\ÃCsZ^)'lxn}ݫ-Wk5݆{鏵{ 鿎{5W" $[DQ1JM@@GCM-?^729PH=5iY3ŗ|6-O쐺HK!P$i`6Ih(q!2%߈Rg?Zb1#279+q0q4-.9˓8~|}ӋnLof<3L| Hh:s|ex%vxΆ^-&֥Ywgط-l\kt@ HJRPzdiphh\"q# YD! %}CH+ !:BxP?V1ױ1ܢdc6}a;mBJ2V"ǚ/CBʖsb0M"* XG7PMp8 56{,u].} 8y3ZF^C|WYWԓygVz_O*'|Sʯ̮j_iNjr?ZX/r0T@awZ|n-~$>O_nygܟy2~rp:$Yat4tֆܵni '.JO \}Aw27ǕX"%|HkB~ĹLSrU?S,\z(f)48BWZanpbO FZRƽ=9c)zۮCfomi-&fd&ΊU]>mu߰"l?ðl#hW&<ghR˘jy1VޔIU 7HjP+5p?!>ܔ[@BRiؗ1(蜚Ct?EP]u-ݵ8*x}~Zޱy`1=v]1~MTDLV>PG-k2n$ V/5{{RSBq`׸y޸"bǹ*}j]MEʁR.Ig1G=nbQ&c#W ZWJ8f?Be~||9\\{TlXZ v2uv:VVP*m51WB)P@y*%%(DJ)J(J"QD/ҹŪD%(DJ"QD/J( MQHu4=#UGLР{=#) yE,.Uu0]Z / 2(veCOmys(-Dz}ZzuUuƛES`|Dt7\Afw'\΄ y#i2SHt8G :N0OwpIEx^JNfp[@d[Dk|Se5s*W䧗ygvC mDIvBAY ;B퀏qUH{wmohK#䵹1 m]ٱ̷&{AVާgi*!;YȪt-QUu@1al?b㽉ym1n#mذ1vZp-;;K0r'J䓘[~C裃5РBFB|K]F0keiY 54"w||dX+sYg&vR7ʑ- 2do*J$sIDNP۱F1,wd;̎asԁ1egFƸ1ڒvl[ץ8LĿH U/]JSm7JbCɢ}%9udDZ,2 #Υ̯ s1n Lh5`.)$6'Ch RջJ֡c9ǽȮ F>BGqq /b9,]qF: h['z1( x AR#W 6 \GX^fׯikx]cI,@[֖;m訋z  "`0M(I ћF D!HBgZvnRI8\=q.'vb<|)qJQ*,yY$[g&bM8GrCVe9̣κikNFǑfѴ4m)so.YMG~孳M&^ڏjjz Y?rY nHl͝tҪjIb\^2@DGZޢhV[y3paKTPeVN9*,,Sa0spIUԙR|a Z,c4Vh\ǩA^8xLEvRv>F߷vޅ'Inɘ (A׸Wugu+wn;fX񇙕=LɢY6"/"DK"%־y}\6f5CFb2;V6Yfs&e28G8(8̫o[wy:_FUV0۲9L"CV#;L3jc77z׆yO  4If$ddnA()9˼"@f9~]xr HJ@GfGhtе(NZܚ$a^+d2$Il~ꝇtѓ17$ZkJi-(9".Pz, C]Uޕc ,QCj{ O])үt۹>H?ZnXRU u6nv i@ jEP02f@!C]+NgľezZu9݋#o<x|~g9, ueK1ueܹ8 aU,Ѧ5-$u(2`J{/vVƹ&VO[!QwpCk'ltEF,fn7 HpH:0Fr FaO?yY=$:Gjo '][Jhbn @#| ?mSd3>摓_pܪtK8r+3|}ѲE=>Jq459+'j!'tT V]_buL:96>Pm-fwl%ɣc`k;O´9{.I Wf|˅Hȹ;;mc4ڈD@qq9%uz~Dضo훐rMޫ l;EUJ'NCbiӥku!}zN=A-hWҬ{/AFލYAzfmt鮼+qI?T-[׺;'YȉITdMD E941!Pä`WR N9/Ȝ&Tʞ +,# QE2Rs{Z=x65ufK$D.u=@uv,<-7 妾G[{JGd\& s6|R≹_)L@@ o?@:"P1 ١' a.!`PxH` $,ٳ!HPD3bŋ4A4M2h6jٺ`(HB@+Cp< SRjq+O/8Q< =,FY=Uu e%Ȣ1]e ZW7:cz54™dU[v17yW%u+{_P[E]hu=+C^ ޴ǜnw<_i]B7N1ˡfӿƣBGu+g5j mQt8a */{ܕQtcˎ,H4)!6lSiҩxmTRδq TE?\Eи_149D#L&SWm>|ʐڢS ^zRӜj(BG]zΤ\QDDD%(DJ"QҹŪD%(DJ)J"QB戽H &2I@&]]t>`S!EYPt(ac5/)E DJ"Q:RRop)JqC?'Z﷍ٷ 9x;Zsc).4>,2Ύf4@̅nF+`b??>! ~nK-NFSo$pCO |LiZV.v~_M4n&Mi^%WP!?u1 q_45~j.L> po1ӧ%Wc 5$iA~K?Qe._,#s6lh;̣rBòLEiw"mGMtnx̎s\I-$͝+)OJ0Mձ 1: %:F+@~(EBh5JܐHoĶjA,qߛ1nҏM4B<=ѢEؗkω!@ڈGta/RYYs՛TЎMsZKo;GwBȄ/2m@.=(V"PPzs3HCu0sZ8=S#z=*J|vk})5I9kB$Ed ְrZ YZSҽ3A'&@˳)J-Lk9D !yȓWoǛON[=Opޭ}ZkY:y#qWǏ5Ǭ5>2~!KE9ˊB a Pb`c Vٮ޴y;9.Whd9ˈ֕ƕ΃s:#giN&5zx6<,{Kf[cv /m᩻X9[lJз1Fx|N*zJ>8! ʎG` F|YJIQ'M^'k$oE DPHtO⅁&QՀ¹m`2Ƹxsɫb5ʋ3h `2DtP]! $. OxAipw&$` \`8Gぎ5 i0]J=15qfLjXO7+ryHC"ts!k(|0DN)xʽ%TIɸ%vpSN!bndG]>Z=NDqYc\z}[F18-[7N'G^5<5^b/jVk@!Ҭ?߸xZ99({:Nsqi6=U&t"34YwVt̘"c*ώUSú,r*cm PtԡgSK.<].i{xx o 3 >#f,o~@C.!v[\kd%&{}a xq sj%8M|kHIuHyu*zz y'e;V"2yg{d67L‘1h'#Џ@QbkŬiq.a<~c*.ڔT`Ҿ1;ey{9AﮤS__?[5 b iҮ^dzx67)ve/$SO@*UA "Cg7U8_g@ 7W8-O%ى2usVcu[d\@C1 twn*=0?'kKTɹ<d!=lo:4X}ޱVse*DIeYJAB^I$9CpZj,GZf947]Eb(TnE"MNatfe16JYf5yr\J+Gm)7M+(mY㇝5\q[jF[6g4@ IU\Sg}7 5i=jG8 aZ Atsq4&Ex+ G2yϕm\#b9ij(M- xf_MHm\R AT6)64)=7Bi<46N Mk:XD^"V)+>]vz4UVS-wHA滥nxdE, M6Єl=GmM&W8+gv^YR+W‚ة _N&p:>kMel7O ž`gn "dmF@ irwx²L 6_cHkC8hNTRk\(V3l~2ե+3bmӧOoOVt ]u1 1diK%7I$Mݿ6Hd߹+1^ R.U jFk[.c8; E8kZh"GZWa|!FĒZ,;M&J)YTxu\!xz %)N|Sj9:} w+wGQthb]:T_`i?p fKb5I^?n.W7ohz:x{i>1!_};TDuL">^ Ex]. Q2K^4g@pCP`:ɹ>`(VXmkigpdC})h{QL=q 4QDN570V=>u۱@Ú?VNA1'[ub[@n]RJ}|\p#vApȞmFxeQPАh%:_{]Yc^nzHs gȧ;Ut~(S)Ka1LƁj} \_Iab;t?Jg8iO4 N!CG0WPf>Zo2iY[+Z9Lvv޼CbL? f-{:?ozW.7Y";{y^ӆff.4fPg+p`!^>ӶN޾ˍ&}d]Ŧz-QxqsV:*֗E|Qޠ6.E#頇^iBilVq޴,kڮcLe.U1; (Rwo">CQW JBnn",$ -83e{㑰Kf$Wm Lt0Z+ :Q-<޷VSs 6*]Bi3~N+#-1^p(Y/bJS â$"l.f(%HLaR51;#е>v].z=9Fp%8qV^!<..>1 #wS(%LZ͸#ҋpcͧ(wˠFH`50P?B;hMwqzW7t#5$cvbcAWGmqVczpb .KJMOm١ 'ۯRLSU};]H  "q- i\w /Slas, H]{v]C~gNAmp?)>FVVEEq6ݘK(4PKhQx/M;jߔ5I(xxkVasx6HIȨ?4@^LL]ӊ੣yЈ(;oʱORn!Kz#o~_OWh08b^M/1,!^J:z*=&SJ1`~ 6Ē<Kz(*BoGI BMn!q*ǻ 7n׶J:U-?8 ߇Em}JЗYq6k %%ȐH ]ktZ[[w O~^u7wT%`3g aо#K+"z +ZmB `,NJJL\ʮ&8L&0;U/ԋf+zQY:!Sirk ç~^}9ET/:ֲ1(SMzCjh.i܆srEz2ERDJ)J(J"QD%ҹŪD%(DJ)J(]閼8􉀡V )E9G"D%(DJ"QJQD%(DJ"Q}c(7"oj8Zv+X8|cáBC|"?݅+$8Skvv/~GQ]OBaJ^s~Z#(/sS> _ (_B&01Tqq.((5TH@ɜ {kPT9p!/Ud\Qs͎yfY)T%H|c^NU-{ &_F@>dz@N"(_BoZ"|yXL6"ÚFn9smG{*lܱ;)Dw%%n8]|S OS 쁊їV@,,WK$2"T3V=T*(L=U9D4Dr}.P(.5Sw^SცY])^ΥJrgF{ ݶfg\}kζv *oBqoaMGpW$spbX W$칷 z\{>IPFE#j"j e;D:f1 |_wHk۰WV^ص_ Onx[TSFb$z\Lb+D.h:+ \C_gze<9um$y٥ƒf B嵭!˴" _N[^_~~$il:`HH;8i(U:wxȘ|I/f('+^p;7 )n'(CPMsTK|pԞM?D7m}Hx*`{hx qsDۨeغ ! w,t)\7HU43!Ώ݁^q])+b3]mӮ`2AKdGBts,c_4ڵoF>ה;/qGny&{@oU!£e|(Oԥ( =HFGn 2?E8q'|"]aĈwpmY)JIqaш^JNc}PZI?0PS7La*< C)nS hN TG_F鬜7Mn[Εv*NWVుNTޯcE =+˲1۾[q\1T^Z;%|jvUu)"?^0[`جH@;j:VOjoJR/ʱvNrfHb- ( toEd oꉃ>AK.-Ľ@xtP#6XPV,0jcKjr˦./]R'R)ri@^F)Ȧm>'W@Ӹwj9K<cġ+O  cCk=avtHi' ީߙ}ȧδ :-GO)&ݮ`|cSQk̫"keiQJģB B_@WA,HFw6yu([Ҽ;aqlr/BQ؏=={Y\w 41l9;8PPoAucV9N;q‡u}e\&.Y+Qܧ/8Sr:Mke-r)#AxaQp:J̠F>0]_&mgm,>EB12Xy% j#7Z5[9ٔ? Tk;t˗d°RFXkh"rzjI[3'7!~DTFYH(*e/$U-kI[ž;dΪ"{ '#ZɌ_'+d v=}% %?Cxn`ݽPK:#kF^BCصz>(_bܰjZsplQ!)f8Q0<#gS|!N~V͚P4>q@^K8 }||~u6aocne*uYLzJjkSN4뉠fTylDkEZw\E;;U>r$cs|'1V ƐHPíUOZ_1pHq)=,iDG$S}k+~gqAU(q1>,0&N<;֌ @}Fx?#t~C'k >;Q]@ ݤ] H?( c~Z؍-;ddSA/eN =W*u"$ )IR`;0i᧢IiHt`^Bw6m :a00SE;N:1BQzPxr譨!`|@7!@0}k9-xX( ]G@gl@BvK*D%(DJ"QD%(ҹŪD%(E)E DJ"QD%(DJ"QRRPD%(DJ"QD%(DJ"QD%(DJ"CR "qIu m 5FjוDiMi);WBv9-Z[kp{mƉcptCU(LrƊW v9kF߆;r6qDMW9ەuRbVԿT|F.>kI2{~pιtoA q+-0nC凳UKw]. I)璥0\ռ<ܴ6{6K|[;BoH~p'ʮ1kbY_r韫sVN %'Mײ D F #J]Ѥ舄ûti^>k1Gw^sGˇ"xXxGęr =`F4P*iUk˚u` \?d(Z { oT""=u$pߛ}}ԑoh?u=A$s <614!;%SmҰgnkOyYa%gCq2)ɔ538R< @#ҵΑ`?VQ\ÃZFTzc) ˎ$utu4(#vr2;xܓ& tBeh!ЊbAvdEc/9Ʋj6GQ:DWa 0 P: 5W-׈`` ^q!dj `ɫw\kT֧ztI4Ma.-IQr7LP֨E(K꡺k+tfP yGkSugm Ɂ*~967&Gץ+(J"Qrkߥdk^\T@R:k88PrPD+ڳ1ڱ,K E)E E)DJ(J)J(J"QD/ҹŪD%(E)E DJ"QD%%((E DJ"QJQBQRD%(DJ"QD%(DJ"QD%(DJ"Q( !d⠵6NI_Q emB:gQnit~?`zfvfS޵ߧZ?87'ta-mǯ_ǔjɢXɜCE zXtGe+UܵM@5n:37|03Nuߖr?FM doO ߔSB9OߖgB6_7k#WׇཎR.S&H׃͗rC\u?Q-kI̷r|bcF|PG& u۳_\;1kY]DW?]8}5VivɁCW]{p㌅l6ݹFܩ8XL;7Er`]ss~qDW.*qPDJ"QD%(DJ"QES {WHPEWAXhK+˚^a +YD%(DJ"QJQBQEҹŪD%(DJ)J(J"QD%(E)E DJ)J(J"QRPD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ)J(J)J"QBQR WUb"tҼzjk"QBQJQBQD%(DJ"ҹŪD%(DJ"QJQBQRRD%(E)E DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QRPRPEκTh"#ޕPB%(DJ"QD%(D_ҹŪD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%(DJ"QD%longomatch-0.16.8/LongoMatch/images/logo_48x48.png0000644000175000017500000001154511601631101016503 00000000000000PNG  IHDR00WsRGBbKGD pHYs  tIME{@IDATh͚yy?}~g$ :ft# $dN ƉPv9{zxI%$W%kn'v|pll%@hFnj~L"XHFvR骮zߪ| >["":qFZkwrt6-4u؆ֺ4[LB)5%ܙLבv_|w^~UL<F8;ᅗlֆ~NZVbtōk(zU[*-.w8㳗O  u "ЁKkZg2@Bktx~p|`8}U, DZ,0_YusGm@g&H-hPJ14bCS=]MŽ{{{i*O15Z;om.a_GRT]lo+׮YӽwSʞކel&oDQDiaZeSFPPM鳍d]Dʽ[;Z=w/@> T*so⳻ε\θ㻾=pRٷ;7uwjZٓIRA, xGGJB0x{2m;9*CŸDk4Mk=wu\3x~Knn K)EVGqvl( L P$6 ;iXZ׻myGOZ}Cjr~xkhsGRl.[߼BZ[[\!Wi'm# #߯ya& C4`H`%X2LZ$S)UW_qCoVi9926w$hjj־ 9=>eӶmMŖim^zEIXFHcdG z24C' T T& 5|0㊈,6y Nx4( Ӵg;v\smoj(?~\zAh,6#Flugpq -tls [Ӑk#N9)Wfgh*.\> [uvA8x`4̒${BtBCRb9ȷ (@5c|456qu]$5AA sS~Gd|c{(UKlXC:ژ0rbбKA+Qs͝Iov < "{Ŗm?xz=bϞgdp$W+|A.A- }=!k"HGA1۷m}[nخި-u>c\87޹ͅBZ8~r< f{-]jNǭ5GuK *.",ýGV&NuKՍ [@φaصbynȊs޳wSR<=fKԜ _%+.A>~Adu?U|W*URQ^8iIWW;.ulUZb_ 1DXUWZo&Zk ÏQJkW_G.AV%KxDᒯ{::}V*IrFVv <bh(t{{+W_FDhBktzs4?G>'VU V B0 G!qF>~a@:U#wO$lϱ㯲zz&e綻ytc Rl,5c'qXDZXsz#7'3T*KZ5MP6mkG!QKmǤ Rq;]gxyn^cO~Mqզ2z_rG;W~{ V2Rv\ئ N"uʆ8tE" ѥU$(e,Dz,ӄ떙`f,3뇞[>}_9I$^(LkNICC#]G&t&@ -|# "D<ߍh4IJXޒ5WFTC/am?o <ЉOл)dZ83s]7#䆖׾"`[ު39 |/!ZGuBR83Ss2"ˑ,2@<#2[b䖝0>}3h<|ce"40 uF|nʥxk}Ӥ|ld%,4Sx~Ju,\I.%ή8w;?*a'[\x$uݶmbzfff*UutL6s/wrIZQDOOa`dW p͕wT0yhSq.X,鈷f<ag;##VQZQ@._+NgfJR+C֬e=AnAԜ9#Ndlsg LD>ǭ981rB eLUu|LÜY8aht:ŪUL|fNuq&*};K*4. !ofCUsdFBB`>IxyQhmuMm-[ CFDD}hjUN<2_; S 1PN$C~eaX ␖m%R K9 a}{ A}UTZhKjDWot=@ ԛ6o"NUM[jzm/uAǚb_3$i'bmW'֕wy^ܙZk553_re]rQRmS0LVm`faru C^4*? ;8v?AFip}sqJDjŘlW&t:C:gENXYZ.JDU5>jEF>0p1"2nǽÎLӌ v"Ѻu˶@(|^*ZC2a]/N[YD_\BMS?7Y _~@ΎcsP{qbxT*xr3kٲ+7k0 u>D"ֵNaAiN٩-N. f;6rkhn꠲Xa̞gdbbSgzaPD^ZO V4iq|/v׮}\@'cL$ɒJ6ZbDbDT2K&4b9rD x}hīOzRu`?(j{޿vͦS#ǑA@G) L˲PJgΜfbbB;#3[x'gN?яR XhtSO_ZEdzcͩoWCwoj(4f0$ C XayAGv+_= Zz .fLQDRZ&*k26t훮-EL$L3aq,aHx;9N5/͔O:8⛋ᤝZI{&6"8:JWbYg;-;LQŎSfƧLNN:Dacֺ?faZkSD@VkEa1|Y @X0VG*5 5إQ?i`%k B" X~ IENDB`longomatch-0.16.8/LongoMatch/images/longomatch.png0000755000175000017500000004066211601631101017024 00000000000000PNG  IHDRlutEXtSoftwareAdobe ImageReadyqe<ATIDATx}GysA9[J6`2 > spdqےl˲s^iwywfvrW]Sڕ%,[LO}{^U).+#7t{:~GTv1/,E p䇝?o#iÇ?g@8P ~$Hg/h#krţ~ E凅NFNE(ǣ K$G1ռ$DNfCmm^}wE̯_Z!QI0*/}'LHe55ԷLVٰ6{*~NnMb\érT}:ZXžK$ti2Ơb#A&f<12#0P+vn12:z=XW-a[=!#]0c#*B w_i09(L4 mZ[:PoW1syl,l/\=Yde{?)jIvD†FZcԐd5N8 ,}6lpN0C\? 5N'fcW$(nk.cEu7wQ^қl@[ÿ="P52 іbbs؝HNv>'Ks9]4 ^*c|ֆ?3eܔY͍#a̝vIs)v60 Qc/mxOi3qJsb%ު%Kڛ[[clph==e(5]'c~*3sX0?+jPXj($3cx!\tJ|ByIx(uC+Z)3ecI E%c' yȣt0 zI=ֵσǘ8 fyWV tQ[Q5ߟn) _ xG#09F I\QZT E5keH*Ѣr=/%RP( _pE;~a\FOUUZ{0TY^^^4pOy^Hp0ُE,*fxˡ_ ~o%>.AƗhY lRs"aGJ2I8=u6X60srFTeuӹo'7d;n .3g:\RJ<:FM>;|?>>UUU(%Hs)w qq`ES@AOwCohQh 7!X}3=lrjC6 08r"QDvC\Ep Li k.fLDzBRY}t4R$#?ڹgx:VS"O4lsA)2h%R#GBA?9`ibq8>8o;Zb} ,0gP_Ӊ¦}MSLe)>gКr:ۉbKj*gAeE;<.$cӐKi>cB-!>?Sp2X8 ZP˘WRsť~y>)o=`J2!DCtWZZƬe O,g,]FL@@qϪjK+Zh^MS8@@Ѫب/3:1K˱Ge4iP]ށE"{t톾P**劸Fwdmc(F5nhQy`*JIC ɖ%}DJ/ߛr FDf"`¡0|K_,:kSAV=>ڸ@f=t.,\.h115p5yMӳ9 DUo3Mr4&P⯇d6 Jy7>OAethoa-l|~3-{0P_\s. *45pw|}ҸSt'숞/@?^ellwh$VÀB׉j#xuLiX&^op ,%A-a5,?,=r $)O)eSm4`j' Bx~e”;_?R)qi,m洹5{ wY't~_Ö-\{#YNNj`PNH73|PE!L@*- %sK^^^|5Oe)5ͥodez )R ETww~uon;Wa.`9 _<&7PPЃa0Ʋ \ l ( %„U:iKV32XJYa%`gFAe){AkjfYh '7#O5+>;Jr g([Щw&T""M=nU9u S*:G} j`R-?Bh<ky 446B{[WfM[6[TW7Y 0y(ge,׉t圌 ɺo6of_ڱXz`Tۂ1gtBX04vA]9N:}1@pըx*tЅH!c4? RX@4(|*8]^(wAF7@R!7c,zUV,~*Q5)ހSjJ=]u7TSYc3褝۱P6[PWKr$٩!)ो0/(@nU*4*@Pe<9N̪B:˿K,hYkBkl+>ؾk;c|N/K-N6u>z\UQW>o:*9cMl](/juɷuX ;(Y^PVR hUJ nU&WU鍯 5='[YU6Ũ1ATYC(Ys7|oHL5:5mެm--zy[3K LK ,]V3 ELA%PLF!n_~k7A[T,44AZ ITCXp/ϬRWJ.M*c4)ă/D~桌AgϚaJdִŵܵKŷL 6J`wl/a]4avf]gQ&tC$sߜ`u`Ɣ+Q f"‚QbРY =DCN Be_%DIΰ*8<`Y:O[f:%x X1@޶+l߷)a1(K5ү$+C. +8$+;'iKC(tꚉ u_?Ѓ \Df sʆZ¼X< DĬO^g范EA:]DtAtd})ig?+ {fC4f )+ik!$^'Bj*6,-6i={ 1뢚`S)۝Acyha3X`,J,:h0\WA;CA?nY܇1krfV%ri)8x0+@q2 KngUͩ'`X;::ߩ",hTej%PTs]%I)Q"2W\SX;c6>dN_)},x=%R~?'Ow8lxQXmﴱ!Q5=c -6}?cGh,v,iTNc.MĠ2ӽl_@Z#<0A3xkjglStHb#Ex!~浜DjIU)tE>P(cA xCA,!XQ[opk/x^x̨c!}^9"` `wOPd``,{,7蒌kJ0Jl͊eWcܠŽ=OQ: *'KFC=WU!Y}~NQvS! V%(PP(( GPR!d4`oF{;T!Uّ= ;MN%Ou 8J־ @gkLR G¬eS+ַGa9&g1J,k*5`ӷMF Qf sϛ\588Rz6͚@+0FT.YPa{0 1-٪ As2$h5:#c O0l`0ME_Z8E1JlzCFcS"=YؾEXp̹ؼ?$An0*_=*ۍ;^KNMMDZ,Ak`J8imDҋiA_VRgҡVT{ACGTaaHiuXjb ]h2 ϮK5V]ϩBWXF0~Ahlb9GjH2wlo J]q ?f38s\sw>?'?G{ .4զ` CTG4Kv<>oDSEtO(**!p.2JKZ`),4C'*]Xd AN$hJ񽬱8Z}ד~p١^ʅ+% >~ c/B2@zǹ5L 6iMߥΌ[P[yYj]]!;{яKY&xX&e,pє N`9r#O%Yﵡeu<7g,r<.,.UP/tm0q+oK.7gPe*BYظ켶l ][`Ǿ Ea3`Pie)"3,|"FYIu 8,&'qڔYgС9xbYvrM"Q% Y^Ǫo NS~j&-}Z$¿hzvzJ tXȺ}JN ~OZͫy*9QdE Ǟh NgC[84klx; HI{{a* 1č-:=^(^g,LPb׵x&+=!Dt(bЇ0?sv 8 2D'm}[uw/tT |g}r()9DZ;w1Kcvö]K[&*w~ ebK:88N7Ϭm6b'‚Y _o5`oŨE֊mC3tH9RL֥MtT׺̱'`.46)-J"DAtVMRvVx[5勆<'%31x2fiӡjBBS(z)ŠEWaڙi xe|; [_A(4v΁;߄#X}Z!m8EU XH@"1G(=m/|* b&fbhyݬ GmL'AÞP("hx܋͊RgKiV%M׌o=thj]jk}4>8r0s>AӅ*`Թ|ʪjxoC7õWN >}ؐ%>/\a];|b08Тs޼Eiŝ+W|~@UY)̜5l}G7~̨p4{>82x~e0E#P 5$'OP2fb nS'*af1xbEY< |\MpWjkjXTtC4CTZ6{s܈dc numS FYtp҂T LEΛŒt]D/nNM-Й9O {w 1+bܿ]^hQZl.F3jDYL)皚 ŠdJP+@'O++F.Q$P`ʲJ[]}M,'B>ݽ!4>MY ?hةh1=m\uGDޟ~ ׯy+VXxJc0]=hd0n*oA{s{ <۟ER;`R|ULWU8{*l(l?], ƁQ[Q`XX:qZVeQ/a@ijUL7De^iO=#(XRޕA;rZhjhBa/E i`eH-s::t ЩCN7tt~vXF+vKE9:Iڻh?`أ2JٽK}M?n`"Zђk5^_blXQ8̄}JF}>%0CWyc+(EyI,Lْ'|Cڷ"pfcb7sJJasz >ZLQ%XT{"xٯ}OAo_/[+\fvX'HL?`˞u7g1xɯA%w\OoROb~Rg ׍VZPTMhBbAL`6A,mN/6V`+nly5iz5_| vO%ʢЈÁ#a¥>M ƃx~ 2܏o[۾r~gބ_=6+׾z36q8,ll=<ABՖM쉔T'>ሳ6x,"Qϗmz{fՁek\EI\<QYm:!0w- u{gec~ѣTٲݺ2GnM)6ksD zF{0Vg֭0e nOQNYX(x~fPؐ(>UypL7Ara}>>2sSM͇i,S=<+$V-6pCPwl|6NEQ'bɂ> k̟`eY ?/5QwCzG? >cC0Ghm{Do־t %sa^{7Z#EkŀѢg ӚkԲ-h%/X<=`X]܍6Êt2y^ 7"` L@ }#[rHc6Be[waF4RSd:YpXe&axkɣ0v \(Qkc8 [f$4KʮRsJJJ) ?FVt6=@@2a_ͤua(@.iC+bP{6s]jfOX,:_uvGTrwomkn3eaQGa"%(%;`6f,{djxd0(Iy HT ^pCu9(U~|1lx*G¢ `ἕp*>X4^nVȏ=^tv?\7JumŸ,Cj* )6{y2wW9+`Db{"J=b6a(bcc2(TMdF0B&GX + ,+Ln{=͞hcqxmL~_ҷϸJ_ZVTWx*OAÓ.aָ {W,xyºŴtOcc#+CևW kҢ^g#kRq{>yѮ(v BWml[ԅ*@撶,PZmgFr7"}Z0RSym|w~\ErP<:ΎN-5YQ}yZЙY$>/oa,}6H Xh:[>~ j萆6obVWTb yDleb$G=zx@O ΰ.iҚzAB-R㵭[ ݍ`2&Ȣ"X~"6eiE\&.BLOʔf=otTul8=X8gUQG(]T)ro4zzvݺ:r9 Hml ` +HHھq0i@*** VFC% jf8Z9d"aQ-AT~o>mΝl3CA_K'Kf ~ g؜1ڦ#nBvtP/X9FeXWj'E駟f :'Ùl2'+>4#?csjJӦOc2E_ ֲrh^u+(o2:t8x :x/-GYdIJ1i>tt_wjӖ`4=AJC9H7 T1|ˏ:MFe*$~##ԦA8s&Ӣ}*N Z1OO1%c!qOsZHf0@]S{AޝICK u98˺I-ʀĘl㦵}}F[ Lt8e4aL_ڧB?eUid9J/KѺBh?mMǘD紖DPKoD Db~*@90 4njJjPxv2憷0ӊi/!CME@a/M&U/eade)neaء"Zn bfϚm5͸lX f-D*-L;_К[X[x<6:Pü-CRy):dmxjҲnun`xcl~/6&塼J]3O?}Hx '?bX !R*]rjWݙ\=[V @c $q_6Ֆ/ְ.[$Ѽeue3xm;(rF`VT} V.8ͯa 76#~2>(2 g/@ C .2*. muAzGa0:|28=ϹtA`}SO~U>,$Ćpܺ\ L^L_wNǦ7$=JDԪ4ίl2O tҚUhj೟x~SUGkm}4$`x]LlD!n]Q8ϝĽ1׬ <_"s#CA4M/ \)Pgj@Tύ8aiMgSXr"C:2` 1YSQ)`feYӎwvQbwy,ٺ$z-h&+4!@.V . oXFA7z7_I`7 #MLt,?po!.0%B#u.B|1z˶rg-6ԣ?{U5d؞h6 %O bZ%0y5xv tv-W<ՄM #VV߾GpݪYw[|ַŖ$-G𡓛w FP|s"4 [Ǘ-^S^^V4ĚQ Yڤ\|f)7`. y׏`ɂkجy!im_geѶ#tmL*ukh"D*Pl')zUH];n.[;4>ר>G/$F裈NDiAat 9u5-0 G H J˷f6mr@y@hAΆ;η;,_p#T $~$wOhCtOImwCC(BY>fsܴ,:uŞ,@Jl>m-S%T! %bT7)v/"UVjL‘0wdž!VYVu>T֫P,]-Ml=wc+7;v Ba Sl@:#/쨩6 T88ۼW0X*&}ڼYW<.biI:>)j%v/b[Kڄu$c8Br[0m:.k75,E`#9pd,Ȇ]ؘY"8;ˎbE}B:l!vNW̙0p㟹3w4sŲEŤn,G2yVxj++bP=L uj j*kE PΖvQUCe)shI]v͛XEDf>4>43{(@AP o ۅ所`fh JbCdt̪UWrf$ZFIEcQ۸@aFbCBi樢 _X1 `m3__.'tOߑ;ۗͥM5$%+¼a/0mXwq~]BS;g|>MoLxQ_JШ0J׬lw?"W=.6iʗӘ8q8l߾}>WTFQ<M8yߑ;K4YVn".`f4ɺ0lF`̆P+(JJ`?_.M+h P%a,֧v]+}ŠBkn؆u!ޜ:KվuzD߶=O HV+ĐBૡnמ״M 0 ARǏ󖕿M:T͠CGM̀qh<82h 77fLS (fh><f}{4#acG;{hgܠ4z: ߫ :&MCI lcrŮ=[j_sM7^ښN 3cD4IUhh$>"çi ECMREN\ cHɽ֛gǹ@H*P+T-r+ 4y !@DAO tkcMO _՗_XV.(wWE"&UݏQ0P+hŠ{Ap~0}m}G9@ºFP$d$n \etA(Q KV\./Gk5KDtT{*._zUônבfhLA;ςzll":!sYYPy ~E鱣]{O#X\&-hD1(Wz3Xw.%o?y\[u}g$D3c}Y]wϟbjZJO{X=2?p%q% L,x̠HVM+Ҩâ.y#H[LT*/n0sb:7xsbM"`0A*:VYMM++/`T %ҥDDC+8s%>O3KKFjL`_& `&F/Vd2<IENDB`longomatch-0.16.8/LongoMatch/images/camera-video.png0000644000175000017500000000317411601631101017217 00000000000000PNG  IHDR szzsBIT|d3IDATXM[]c98: AˆhpabDIgFu^#*K]$ȠDc_ƀ88oF=twUwU{gx.:ԅ/EE >}qZ**G/]t5g#G3Lf\.Ο?_]:$lقrjZxy?UGmMR֍1`⧙LfCww77n$#ÌvZ{+򋋋y,b||;wC `DQ5ƘF-bժUu]>)c!>f1$I "",Ν[|1.q̙3g8u6mX,RTj,..)ܼy'N,8 .jgֺ*`߾}366ƣGoe޽LMM8bqؿ?mJ~]CCC>(x-޽ӆx A055Ν;R2;;LOO)5N ch(l ĉ7}(Bڟ偩)R1CCC:tzNEd2JaH.u]Ap 4hKhVضM!+q1(" C8F)]]]AI hBt&pƘhVT*5Q,IӼ|l6ˋ/roRtzNRq3y"""T,Um ,8ʩo޼+{m6޽֭[U1tvv>m;W?öJ)Rm#heTjc۷ow_ݻq}}}MZkdYn߾eYeai0!Z>^߬Y/]]]^BylnC뺴rt:ݞkUr̳gϊÿ,\z'j͛7l )ZR\rm,Z iT d)ph3>|4@@p[#",ȽƉ灹f??u+N5sn6-mEgnc"6I6211Q_e;=3ڝv[vۿ,WKDQ@"G(Ӻia&MGUJ*f~~q DUJ޼9jW&'OG'NdL˓O>:SX۶)* Aa ]$I2&#dJr;{վÃ|̛z@7g{{{HKE&OP, 4imkeeYon#ŶXI*kW;ť= 7?64 U|wևՕξs+fS|GU s7X <>ew}씍똖ŖR.sa񆾺gdxHF[$##2HJ&)WKºa  #]۷QVPT]i4Suxj[Gx νI 9뎒JPahP(ɭ\|I%0;;K̊ Djޯ%HۀsnK.xEkuZZ[eyy)#* a],mxu;nNPUMө]wzu=௧OS*4bi(Ž۔e?#CuTUEA/̡i=v愝dzzVcCLMMJXwv,bxxl PQU]ױ8SSSl0 t㌌ S*W@ DIqk | :ȈjJ̊ Q_u]2.a F{K~ aon,2T,*W\4m̰OHf|.\@nQ)W@QN"2-[;sETEq wd¡V478}1 ϫEY% VVVY[]ë{dt080@Gv M-YFFGH\:Yh噙@5Б#?z<8w5(ֹ Ru*j E4Mic]۷յx,gμ /]ZA$t'|o9V^xȫI;;mUQT*xO__;`Ss iiA@'LLLy0 b1XF5L4 f'5$O^JӔ%>"ɰeTHd$qrb}UUEo1Y-xG~?HL$6ˎc|b˰8X MӑQD$%56<0$"d$Z0t2E| rtX%Kʥ%-J===Z9RR( Te2n͉|ÏT/QheH&}O;A;f9E! RXs=wZ~[܃R4 $SPve2EՖYLi /)9Bi6iߧ{K list; private static XmlSerializer ser; private string filename = null; private int indexSelection = 0; private Version version; #region Constructors public PlayList() { ser = new XmlSerializer(typeof(List),new Type[] {typeof(PlayListTimeNode)}); list = new List(); version = new Version(1,0); } public PlayList(string file) { ser = new XmlSerializer(typeof(List),new Type[] {typeof(PlayListTimeNode)}); //For new Play List if (!System.IO.File.Exists(file)) { list = new List(); filename = file; } else Load(file); version = new Version(1,0); } #endregion #region Properties public int Count { get { return list.Count; } } public string File { get { return filename; } } public Version Version { get { return version; } } #endregion #region Public methods public void Load(string file) { using(FileStream strm = new FileStream(file, FileMode.Open, FileAccess.Read)) { try { list = ser.Deserialize(strm) as List; } catch { throw new Exception(Catalog.GetString("The file you are trying to load is not a valid playlist")); } } foreach (PlayListTimeNode plNode in list) { plNode.Valid = System.IO.File.Exists(plNode.MediaFile.FilePath); } filename = file; } public void Save() { Save(filename); } public void Save(string file) { file = Path.ChangeExtension(file,"lgm"); using(FileStream strm = new FileStream(file, FileMode.Create, FileAccess.Write)) { ser.Serialize(strm, list); } } public bool isLoaded() { return filename != null; } public int GetCurrentIndex() { return indexSelection; } public PlayListTimeNode Next() { if (HasNext()) indexSelection++; return list[indexSelection]; } public PlayListTimeNode Prev() { if (HasPrev()) indexSelection--; return list[indexSelection]; } public void Add(PlayListTimeNode plNode) { list.Add(plNode); } public void Remove(PlayListTimeNode plNode) { list.Remove(plNode); if (GetCurrentIndex() >= list.Count) indexSelection --; } public PlayListTimeNode Select(int index) { indexSelection = index; return list[index]; } public bool HasNext() { return indexSelection < list.Count-1; } public bool HasPrev() { return !indexSelection.Equals(0); } public ListStore GetModel() { Gtk.ListStore listStore = new ListStore(typeof(PlayListTimeNode)); foreach (PlayListTimeNode plNode in list) { listStore.AppendValues(plNode); } return listStore; } public void SetModel(ListStore listStore) { TreeIter iter ; listStore.GetIterFirst(out iter); list.Clear(); while (listStore.IterIsValid(iter)) { list.Add(listStore.GetValue(iter, 0) as PlayListTimeNode); listStore.IterNext(ref iter); } } public IEnumerator GetEnumerator() { return list.GetEnumerator(); } public IPlayList Copy() { return (IPlayList)(MemberwiseClone()); } #endregion } } longomatch-0.16.8/LongoMatch/Playlist/IPlayList.cs0000644000175000017500000000251211601631101016705 00000000000000// IPlayList.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections; using Gtk; using LongoMatch.TimeNodes; namespace LongoMatch.Playlist { public interface IPlayList:IEnumerable { int Count { get; } void Load(string path); void Save(string path); void Add(PlayListTimeNode plNode); void Remove(PlayListTimeNode plNode); PlayListTimeNode Next(); PlayListTimeNode Prev(); PlayListTimeNode Select(int index); int GetCurrentIndex(); bool HasNext(); bool HasPrev(); ListStore GetModel(); IPlayList Copy(); } } longomatch-0.16.8/LongoMatch/longomatch.in0000644000175000017500000000010711601631101015364 00000000000000#!/bin/sh exec mono "@expanded_libdir@/@PACKAGE@/LongoMatch.exe" "$@" longomatch-0.16.8/LongoMatch/Makefile.in0000644000175000017500000007171511601631265014776 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/AssemblyInfo.cs.in $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/longomatch.desktop.in.in \ $(srcdir)/longomatch.in \ $(top_srcdir)/build/build.environment.mk \ $(top_srcdir)/build/build.mk \ $(top_srcdir)/build/build.rules.mk @ENABLE_TESTS_TRUE@am__append_1 = " $(NUNIT_LIBS)" subdir = LongoMatch ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = longomatch longomatch.desktop.in AssemblyInfo.cs CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(moduledir)" \ "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(imagesdir)" \ "$(DESTDIR)$(logodir)" SCRIPTS = $(bin_SCRIPTS) $(module_SCRIPTS) DIST_SOURCES = DATA = $(desktop_DATA) $(images_DATA) $(logo_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@ CESARPLAYER_LIBS = @CESARPLAYER_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DB4O_CFLAGS = @DB4O_CFLAGS@ DB4O_LIBS = @DB4O_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ASSEMBLY = LongoMatch TARGET = exe LINK = $(REF_DEP_LONGOMATCH) $(am__append_1) SOURCES = \ AssemblyInfo.cs \ Common/Enums.cs \ Common/Cairo.cs \ Common/Constants.cs \ Compat/0.0/DatabaseMigrator.cs \ Compat/0.0/DB/DataBase.cs \ Compat/0.0/DB/MediaFile.cs \ Compat/0.0/DB/Project.cs \ Compat/0.0/DB/Sections.cs \ Compat/0.0/IO/SectionsReader.cs \ Compat/0.0/Playlist/IPlayList.cs \ Compat/0.0/PlayListMigrator.cs \ Compat/0.0/Playlist/PlayList.cs \ Compat/0.0/TemplatesMigrator.cs \ Compat/0.0/Time/MediaTimeNode.cs \ Compat/0.0/Time/PixbufTimeNode.cs \ Compat/0.0/Time/PlayListTimeNode.cs \ Compat/0.0/Time/SectionsTimeNode.cs \ Compat/0.0/Time/Time.cs \ Compat/0.0/Time/TimeNode.cs \ DB/DataBase.cs \ DB/Project.cs \ DB/ProjectDescription.cs\ DB/Sections.cs \ DB/TagsTemplate.cs \ DB/TeamTemplate.cs \ gtk-gui/generated.cs \ gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs \ gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs \ gtk-gui/LongoMatch.Gui.Component.DrawingWidget.cs \ gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs \ gtk-gui/LongoMatch.Gui.Component.NotesWidget.cs \ gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs \ gtk-gui/LongoMatch.Gui.Component.PlayersListTreeWidget.cs \ gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs \ gtk-gui/LongoMatch.Gui.Component.PlaysListTreeWidget.cs \ gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs \ gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs \ gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs \ gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs \ gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs \ gtk-gui/LongoMatch.Gui.Component.TeamTemplateWidget.cs \ gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs \ gtk-gui/LongoMatch.Gui.Component.TimeLineWidget.cs \ gtk-gui/LongoMatch.Gui.Dialog.BusyDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs \ gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs \ gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs \ gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.TeamTemplateEditor.cs \ gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs \ gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs \ gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs \ gtk-gui/LongoMatch.Gui.MainWindow.cs \ gtk-gui/LongoMatch.Gui.Popup.CalendarPopup.cs \ gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs \ Gui/Component/ButtonsWidget.cs \ Gui/Component/CategoriesScale.cs \ Gui/Component/CategoryProperties.cs \ Gui/Component/DrawingWidget.cs \ Gui/Component/DrawingToolBox.cs \ Gui/Component/NotesWidget.cs \ Gui/Component/PlayerProperties.cs \ Gui/Component/PlayersListTreeWidget.cs \ Gui/Component/PlayListWidget.cs \ Gui/Component/PlaysListTreeWidget.cs \ Gui/Component/ProjectDetailsWidget.cs \ Gui/Component/ProjectListWidget.cs \ Gui/Component/ProjectTemplateWidget.cs \ Gui/Component/TaggerWidget.cs\ Gui/Component/TagsTreeWidget.cs\ Gui/Component/TeamTemplateWidget.cs\ Gui/Component/TimeAdjustWidget.cs \ Gui/Component/TimeLineWidget.cs \ Gui/Component/TimeReferenceWidget.cs \ Gui/Component/TimeScale.cs \ Gui/Dialog/BusyDialog.cs \ Gui/Dialog/DrawingTool.cs \ Gui/Dialog/EditCategoryDialog.cs \ Gui/Dialog/EditPlayerDialog.cs \ Gui/Dialog/EndCaptureDialog.cs \ Gui/Dialog/EntryDialog.cs \ Gui/Dialog/FramesCaptureProgressDialog.cs \ Gui/Dialog/HotKeySelectorDialog.cs \ Gui/Dialog/Migrator.cs \ Gui/Dialog/NewProjectDialog.cs \ Gui/Dialog/OpenProjectDialog.cs \ Gui/Dialog/PlayersSelectionDialog.cs \ Gui/Dialog/ProjectsManager.cs \ Gui/Dialog/ProjectTemplateEditorDialog.cs \ Gui/Dialog/ProjectSelectionDialog.cs \ Gui/Dialog/SnapshotsDialog.cs \ Gui/Dialog/TaggerDialog.cs \ Gui/Dialog/TemplatesEditor.cs \ Gui/Dialog/TeamTemplateEditor.cs\ Gui/Dialog/UpdateDialog.cs \ Gui/Dialog/VideoEditionProperties.cs \ Gui/Dialog/Win32CalendarDialog.cs \ Gui/MainWindow.cs \ Gui/Popup/CalendarPopup.cs \ Gui/Popup/MessagePopup.cs \ Gui/TransparentDrawingArea.cs \ Gui/TreeView/CategoriesTreeView.cs \ Gui/TreeView/PlayerPropertiesTreeView.cs \ Gui/TreeView/PlayersTreeView.cs \ Gui/TreeView/ListTreeViewBase.cs \ Gui/TreeView/PlayListTreeView.cs \ Gui/TreeView/PlaysTreeView.cs \ Gui/TreeView/TagsTreeView.cs \ Handlers/DrawingManager.cs \ Handlers/EventsManager.cs \ Handlers/Handlers.cs \ Handlers/HotKeysManager.cs \ Handlers/VideoDrawingsManager.cs\ IO/CSVExport.cs \ IO/SectionsReader.cs \ IO/SectionsWriter.cs \ IO/XMLReader.cs \ Main.cs \ Playlist/IPlayList.cs \ Playlist/PlayList.cs \ Time/Tag.cs \ Time/Drawing.cs\ Time/HotKey.cs \ Time/MediaTimeNode.cs \ Time/PixbufTimeNode.cs \ Time/Player.cs \ Time/PlayListTimeNode.cs \ Time/SectionsTimeNode.cs \ Time/Time.cs \ Time/TimeNode.cs \ Updates/Updater.cs \ Updates/XmlUpdateParser.cs \ Utils/ProjectUtils.cs IMAGES = images/longomatch.png \ images/background.png LOGO = images/logo_48x48.png RESOURCES = \ gtk-gui/objects.xml \ gtk-gui/gui.stetic\ images/longomatch.png\ images/stock_draw-line-45.png\ images/stock_draw-circle-unfilled.png\ images/stock_draw-line-ends-with-arrow.png\ images/stock_draw-rectangle-unfilled.png\ images/stock_draw-freeform-line.png\ images/camera-video.png\ images/video.png bin_SCRIPTS = longomatch DESKTOP_FILE = longomatch.desktop.in # Initializers MONO_BASE_PATH = MONO_ADDINS_PATH = # Install Paths DEFAULT_INSTALL_DIR = $(pkglibdir) # External libraries to link against, generated from configure LINK_SYSTEM = -r:System LINK_CAIRO = -r:Mono.Cairo LINK_MONO_POSIX = -r:Mono.Posix LINK_MONO_ZEROCONF = $(MONO_ZEROCONF_LIBS) LINK_GLIB = $(GLIBSHARP_LIBS) LINK_GTK = $(GTKSHARP_LIBS) LINK_GCONF = $(GCONFSHARP_LIBS) LINK_DB40 = $(DB4O_LIBS) LINK_CESARPLAYER = -r:$(DIR_BIN)/CesarPlayer.dll REF_DEP_CESARPLAYER = $(LINK_GLIB) \ $(LINK_GTK) \ $(LINK_MONO_POSIX) REF_DEP_LONGOMATCH = \ $(LINK_MONO_POSIX) \ $(LINK_DB40) \ $(LINK_GLIB) \ $(LINK_GTK) \ $(LINK_CAIRO) \ $(LINK_CESARPLAYER) DIR_BIN = $(top_builddir)/bin # Cute hack to replace a space with something colon := : empty := space := $(empty) $(empty) # Build path to allow running uninstalled RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH)) UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE) SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES)) #SOURCES_BUILD += $(top_srcdir)/src/AssemblyInfo.cs RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES)) RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \ -resource:$(resource),$(notdir $(resource))) INSTALL_ICONS = $(top_srcdir)/build/private-icon-theme-installer "$(mkinstalldirs)" "$(INSTALL_DATA)" THEME_ICONS_SOURCE = $(wildcard $(srcdir)/ThemeIcons/*/*/*.png) $(wildcard $(srcdir)/ThemeIcons/scalable/*/*.svg) THEME_ICONS_RELATIVE = $(subst $(srcdir)/ThemeIcons/, , $(THEME_ICONS_SOURCE)) ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET))) ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION) DLLCONFIG_FILE = $(top_builddir)/bin/$(DLLCONFIG) INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR))) @ENABLE_TESTS_TRUE@ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS" FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE)) DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/') OUTPUT_FILES = \ $(ASSEMBLY_FILE) \ $(ASSEMBLY_FILE).mdb \ $(DLLCONFIG_FILE) moduledir = $(INSTALL_DIR_RESOLVED) module_SCRIPTS = $(OUTPUT_FILES) desktopdir = $(datadir)/applications desktop_in_files = $(DESKTOP_FILE) desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) imagesdir = @datadir@/@PACKAGE@/images images_DATA = $(IMAGES) logodir = @datadir@/icons/hicolor/48x48/apps logo_DATA = $(LOGO) EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_EXPANDED) \ $(THEME_ICONS_SOURCE) $(IMAGES) $(LOGO) $(desktop_in_files) \ longomatch.in AssemblyInfo.cs.in CLEANFILES = $(OUTPUT_FILES) DISTCLEANFILES = *.pidb $(desktop_DATA) MAINTAINERCLEANFILES = Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign LongoMatch/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign LongoMatch/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): longomatch: $(top_builddir)/config.status $(srcdir)/longomatch.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ longomatch.desktop.in: $(top_builddir)/config.status $(srcdir)/longomatch.desktop.in.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ AssemblyInfo.cs: $(top_builddir)/config.status $(srcdir)/AssemblyInfo.cs.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files install-moduleSCRIPTS: $(module_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \ } \ ; done uninstall-moduleSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(moduledir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(moduledir)" && rm -f $$files mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(desktopdir)" && rm -f $$files install-imagesDATA: $(images_DATA) @$(NORMAL_INSTALL) test -z "$(imagesdir)" || $(MKDIR_P) "$(DESTDIR)$(imagesdir)" @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \ done uninstall-imagesDATA: @$(NORMAL_UNINSTALL) @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(imagesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(imagesdir)" && rm -f $$files install-logoDATA: $(logo_DATA) @$(NORMAL_INSTALL) test -z "$(logodir)" || $(MKDIR_P) "$(DESTDIR)$(logodir)" @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logodir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(logodir)" || exit $$?; \ done uninstall-logoDATA: @$(NORMAL_UNINSTALL) @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(logodir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(logodir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) $(DATA) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(imagesdir)" "$(DESTDIR)$(logodir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-desktopDATA install-imagesDATA \ install-logoDATA install-moduleSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binSCRIPTS uninstall-desktopDATA \ uninstall-imagesDATA uninstall-logoDATA \ uninstall-moduleSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binSCRIPTS install-data install-data-am \ install-data-hook install-desktopDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-imagesDATA install-info \ install-info-am install-logoDATA install-man \ install-moduleSCRIPTS install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-binSCRIPTS \ uninstall-desktopDATA uninstall-hook uninstall-imagesDATA \ uninstall-logoDATA uninstall-moduleSCRIPTS @INTLTOOL_DESKTOP_RULE@ all: $(ASSEMBLY_FILE) theme-icons run: @pushd $(top_builddir); \ make run; \ popd; test: @pushd $(top_builddir)/tests; \ make $(ASSEMBLY); \ popd; build-debug: @echo $(DEP_LINK) $(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE) $(ASSEMBLY_FILE): $(SOURCES_BUILD) $(RESOURCES_EXPANDED) $(DEP_LINK) @mkdir -p $(top_builddir)/bin @if [ ! "x$(ENABLE_RELEASE)" = "xyes" ]; then \ $(top_srcdir)/build/dll-map-makefile-verifier $(srcdir)/Makefile.am $(srcdir)/$(notdir $@.config) && \ $(MONO) $(top_builddir)/build/dll-map-verifier.exe $(srcdir)/$(notdir $@.config) -iwinmm -ilibbanshee -ilibbnpx11 -ilibc -ilibc.so.6 -iintl -ilibmtp.dll -ilibigemacintegration.dylib -iCFRelease $(SOURCES_BUILD); \ fi; $(MCS) \ $(GMCS_FLAGS) \ $(ASSEMBLY_BUILD_FLAGS) \ -nowarn:0278 -nowarn:0078 $$warn -unsafe \ -define:HAVE_GTK_2_10 -define:NET_2_0 \ -debug -target:$(TARGET) -out:$@ \ $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \ $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD) @if [ -e $(srcdir)/$(notdir $@.config) ]; then \ cp $(srcdir)/$(notdir $@.config) $(top_builddir)/bin; \ fi; @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \ cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \ fi; theme-icons: $(THEME_ICONS_SOURCE) @$(INSTALL_ICONS) -il "$(BUILD_DATA_DIR)" "$(srcdir)" $(THEME_ICONS_RELATIVE) install-data-hook: $(THEME_ICONS_SOURCE) @$(INSTALL_ICONS) -i "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE) $(EXTRA_INSTALL_DATA_HOOK) uninstall-hook: $(THEME_ICONS_SOURCE) @$(INSTALL_ICONS) -u "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE) $(EXTRA_UNINSTALL_HOOK) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: longomatch-0.16.8/LongoMatch/Main.cs0000644000175000017500000001727211601631101014127 00000000000000// Main.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.IO; using Gtk; using Mono.Unix; using LongoMatch.Common; using LongoMatch.Gui; using LongoMatch.Gui.Dialog; using LongoMatch.DB; using LongoMatch.IO; using LongoMatch.TimeNodes; using System.Runtime.InteropServices; namespace LongoMatch { class MainClass { private static DataBase db; private static string baseDirectory; private static string homeDirectory; private static string configDirectory; private const string WIN32_CONFIG_FILE = "longomatch.conf"; public static void Main(string[] args) { SetupBaseDir(); //Iniciamos la internalización Catalog.Init(Constants.SOFTWARE_NAME.ToLower(),RelativeToPrefix("share/locale")); //Iniciamos la aplicación Application.Init(); GLib.ExceptionManager.UnhandledException += new GLib.UnhandledExceptionHandler(OnException); LongoMatch.Video.Player.GstPlayer.InitBackend(""); //Comprobamos los archivos de inicio CheckDirs(); CheckFiles(); //Iniciamos la base de datos db = new DataBase(Path.Combine(DBDir(),Constants.DB_FILE)); //Check for previous database CheckOldFiles(); try { MainWindow win = new MainWindow(); win.Show(); Application.Run(); } catch (Exception ex) { ProcessExecutionError(ex); } } public static string RelativeToPrefix(string relativePath) { return System.IO.Path.Combine(baseDirectory, relativePath); } public static string HomeDir() { return homeDirectory; } public static string PlayListDir() { return System.IO.Path.Combine(homeDirectory, "playlists"); } public static string SnapshotsDir() { return System.IO.Path.Combine(homeDirectory, "snapshots"); } public static string TemplatesDir() { return System.IO.Path.Combine(configDirectory, "templates"); } public static string VideosDir() { return System.IO.Path.Combine(homeDirectory, "videos"); } public static string TempVideosDir() { return System.IO.Path.Combine(configDirectory, "temp"); } public static string ImagesDir() { return RelativeToPrefix("share/longomatch/images"); } public static string DBDir() { return System.IO.Path.Combine(configDirectory, "db"); } public static void CheckDirs() { if (!System.IO.Directory.Exists(homeDirectory)) System.IO.Directory.CreateDirectory(homeDirectory); if (!System.IO.Directory.Exists(TemplatesDir())) System.IO.Directory.CreateDirectory(TemplatesDir()); if (!System.IO.Directory.Exists(SnapshotsDir())) System.IO.Directory.CreateDirectory(SnapshotsDir()); if (!System.IO.Directory.Exists(PlayListDir())) System.IO.Directory.CreateDirectory(PlayListDir()); if (!System.IO.Directory.Exists(DBDir())) System.IO.Directory.CreateDirectory(DBDir()); if (!System.IO.Directory.Exists(VideosDir())) System.IO.Directory.CreateDirectory(VideosDir()); if (!System.IO.Directory.Exists(TempVideosDir())) System.IO.Directory.CreateDirectory(TempVideosDir()); } public static void CheckFiles() { string fConfig; fConfig = System.IO.Path.Combine(TemplatesDir(),"default.sct"); if (!System.IO.File.Exists(fConfig)) { SectionsWriter.CreateNewTemplate("default.sct"); } fConfig = System.IO.Path.Combine(TemplatesDir(),"default.tem"); if (!System.IO.File.Exists(fConfig)) { TeamTemplate tt = new TeamTemplate(); tt.CreateDefaultTemplate(20); tt.Save(fConfig); } } public static void CheckOldFiles() { string oldDBFile= System.IO.Path.Combine(homeDirectory, "db/db.yap"); //We supose that if the conversion as already be done successfully, //old DB file has been renamed to db.yap.bak if (File.Exists(oldDBFile)) { MessageDialog md = new MessageDialog(null, DialogFlags.Modal, MessageType.Question, Gtk.ButtonsType.YesNo, Catalog.GetString("Some elements from the previous version (database, templates and/or playlists) have been found.")+"\n"+ Catalog.GetString("Do you want to import them?")); md.Icon=Stetic.IconLoader.LoadIcon(md, "longomatch", Gtk.IconSize.Dialog); if (md.Run()==(int)ResponseType.Yes) { md.Destroy(); Migrator migrator = new Migrator(homeDirectory); migrator.Run(); migrator.Destroy(); } else md.Destroy(); } } public static DataBase DB { get { return db; } } private static void SetupBaseDir() { string home; if (Environment.OSVersion.Platform == PlatformID.Win32NT) { baseDirectory = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory,"../"); Environment.SetEnvironmentVariable("GST_PLUGIN_PATH",RelativeToPrefix("lib\\gstreamer-0.10")); } else baseDirectory = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory,"../../"); /* Check for the magic file PORTABLE to check if it's a portable version * and the config goes in the same folder as the binaries */ if (File.Exists(System.IO.Path.Combine(baseDirectory, Constants.PORTABLE_FILE))) home = baseDirectory; else home = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal); homeDirectory = System.IO.Path.Combine(home,Constants.SOFTWARE_NAME); if (Environment.OSVersion.Platform == PlatformID.Win32NT) configDirectory = homeDirectory; else configDirectory = System.IO.Path.Combine(home,".longomatch"); } private static void OnException(GLib.UnhandledExceptionArgs args) { ProcessExecutionError((Exception)args.ExceptionObject); } private static void ProcessExecutionError(Exception ex) { string logFile = Constants.SOFTWARE_NAME + "-" + DateTime.Now +".log"; string message; logFile = logFile.Replace("/","-"); logFile = logFile.Replace(" ","-"); logFile = logFile.Replace(":","-"); logFile = System.IO.Path.Combine(HomeDir(),logFile); if (ex.InnerException != null) message = String.Format("{0}\n{1}\n{2}\n{3}\n{4}",ex.Message,ex.InnerException.Message,ex.Source,ex.StackTrace,ex.InnerException.StackTrace); else message = String.Format("{0}\n{1}\n{2}",ex.Message,ex.Source,ex.StackTrace); using(StreamWriter s = new StreamWriter(logFile)) { s.WriteLine(message); s.WriteLine("\n\n\nStackTrace:"); s.WriteLine(System.Environment.StackTrace); } //TODO Add bug reports link MessagePopup.PopupMessage(null, MessageType.Error, Catalog.GetString("The application has finished with an unexpected error.")+"\n"+ Catalog.GetString("A log has been saved at: ")+logFile+ "\n"+ Catalog.GetString("Please, fill a bug report ")); Application.Quit(); } } } longomatch-0.16.8/LongoMatch/AssemblyInfo.cs0000644000175000017500000000361511601631276015647 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System.Reflection; using System.Runtime.CompilerServices; // Information about this assembly is defined by the following // attributes. // // change them to the information which is associated with the assembly // you compile. [assembly: AssemblyTitle("LongoMatch")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("Andoni Morales Alastruey")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // The assembly version has following format : // // Major.Minor.Build.Revision // // You can specify all values by your own or you can build default build and revision // numbers with the '*' character (the default): [assembly: AssemblyVersion("0.16.8")] // The following attributes specify the key for the sign of your assembly. See the // .NET Framework documentation for more information about signing. // This is not required, if you don't want signing let these attributes like they're. [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile("")] longomatch-0.16.8/LongoMatch/DB/0002755000175000017500000000000011601631302013255 500000000000000longomatch-0.16.8/LongoMatch/DB/ProjectDescription.cs0000644000175000017500000000412611601631101017334 00000000000000// // Copyright (C) 2009 Andoni Morales Alastruey // // 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 // using System; using Gdk; using LongoMatch.TimeNodes; namespace LongoMatch.DB { /// /// I'm used like a presentation card for projects. I speed up the retrieval /// from the database be using only the field required to describe a project /// public class ProjectDescription : IComparable { public String Title { get { return System.IO.Path.GetFileNameWithoutExtension(File); } } public String File { get; set; } public String Season { get; set; } public String Competition { get; set; } public String LocalName { get; set; } public String VisitorName { get; set; } public int LocalGoals { get; set; } public int VisitorGoals { get; set; } public DateTime MatchDate { get; set; } public Pixbuf Preview { get; set; } public Time Length { get; set; } public String VideoCodec { get; set; } public String AudioCodec { get; set; } public String Format { get; set; } public int CompareTo(object obj) { if (obj is ProjectDescription) { ProjectDescription project = (ProjectDescription) obj; return this.File.CompareTo(project.File); } else throw new ArgumentException("object is not a ProjectDescription and cannot be compared"); } } } longomatch-0.16.8/LongoMatch/DB/DataBase.cs0000644000175000017500000002772311601631101015176 00000000000000// DB.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.IO; using System.Collections.Generic; using System.Reflection; using Gtk; using Mono.Unix; using Db4objects.Db4o; using Db4objects.Db4o.Query; using LongoMatch.TimeNodes; using LongoMatch.Gui; using LongoMatch.Video.Utils; using LongoMatch.Common; namespace LongoMatch.DB { /// /// I am a proxy for the db4o database. I can store,retrieve, update and search /// . /// Projects are uniquely indentified by their filename, assuming that you can't /// create two projects for the same video file. /// public sealed class DataBase { // File path of the database private string file; // Lock object private object locker; private Version dbVersion; private const int MAYOR=0; private const int MINOR=1; /// /// Creates a proxy for the database /// /// /// A with the database file path /// public DataBase(string file) { this.file = file; if (!System.IO.File.Exists(file)) { // Create new DB and add version IObjectContainer db = Db4oFactory.OpenFile(file); try { dbVersion= new Version(MAYOR,MINOR); db.Store(dbVersion); } finally { db.Close(); } } else { IObjectContainer db = Db4oFactory.OpenFile(file); try { IQuery query = db.Query(); query.Constrain(typeof(Version)); IObjectSet result = query.Execute(); if (result.HasNext()) { dbVersion = (Version)result.Next(); } else { dbVersion = new Version(0,0); } } finally { db.Close(); } } locker = new object(); } //// /// The database version /// public Version Version { get { return dbVersion; } } /// /// Retrieve all the projects from the database. This method don't return the /// the whole but the projects fields to /// create a to make the seek /// faster. /// /// /// A /// public List GetAllProjects() { lock (this.locker) { SetUpdateCascadeOptions(); List list = new List(); IObjectContainer db = Db4oFactory.OpenFile(file); db.Ext().Configure().ActivationDepth(1); try { IQuery query = db.Query(); query.Constrain(typeof(Project)); IObjectSet result = query.Execute(); while (result.HasNext()) { try{ Project p = (Project)result.Next(); try{ db.Activate(p.File,3); //FIXME: It happens that the project's File object is set to null?¿?¿ // In that case, reset the value to let the user change it with the // projects manager. if (p.File.FilePath == null){} }catch{ MessagePopup.PopupMessage(null, MessageType.Warning, Catalog.GetString("Error retrieving the file info for project:")+" "+p.Title+"\n"+ Catalog.GetString("This value will be reset. Remember to change it later with the projects manager")); p.File = new PreviewMediaFile(Catalog.GetString("Change Me"),0,0,false,false,"","",0,0,null); db.Store(p); } ProjectDescription pd = new ProjectDescription { File = p.File.FilePath, LocalName= p.LocalName, VisitorName = p.VisitorName, Season = p.Season, Competition = p.Competition, LocalGoals = p.LocalGoals, VisitorGoals = p.VisitorGoals, MatchDate = p.MatchDate, Preview = p.File.Preview, VideoCodec = p.File.VideoCodec, AudioCodec = p.File.AudioCodec, Length = new Time((int)(p.File.Length/1000)), Format = String.Format("{0}x{1}@{2}fps", p.File.VideoWidth, p.File.VideoHeight, p.File.Fps), }; list.Add(pd); }catch{ Console.WriteLine("Error retreiving project. Skip"); } } return list; } finally { CloseDB(db); } } } /// /// Search and return a project in the database. Returns null if the /// project is not found /// /// /// A with the project's video file name /// /// /// A /// public Project GetProject(String filename) { Project ret; lock (this.locker) { IObjectContainer db = Db4oFactory.OpenFile(file); try { IQuery query = db.Query(); query.Constrain(typeof(Project)); query.Descend("file").Descend("filePath").Constrain(filename); IObjectSet result = query.Execute(); ret = (Project) db.Ext().PeekPersisted(result.Next(),10,true); return ret; } finally { CloseDB(db); } } } /// /// Add a project to the databse /// /// /// A to add /// public void AddProject(Project project) { lock (this.locker) { IObjectContainer db = Db4oFactory.OpenFile(file); try { if (!this.Exists(project.File.FilePath,db)) { db.Store(project); db.Commit(); } else throw new Exception(Catalog.GetString("The Project for this video file already exists.")+"\n"+Catalog.GetString("Try to edit it with the Database Manager")); } finally { CloseDB(db); } } } /// /// Delete a project from the database /// /// /// A with the project's video file path /// public void RemoveProject(string filePath) { lock (this.locker) { SetDeleteCascadeOptions(); IObjectContainer db = Db4oFactory.OpenFile(file); try { IQuery query = db.Query(); query.Constrain(typeof(Project)); query.Descend("file").Descend("filePath").Constrain(filePath); IObjectSet result = query.Execute(); Project project = (Project)result.Next(); db.Delete(project); db.Commit(); } finally { CloseDB(db); } } } /// /// Updates a project in the database. Because a has /// many objects associated, a simple update would leave in the databse many orphaned objects. /// Therefore we need to delete the old project a replace it with the changed one. We need to /// now the old file path associate to this project in case it has been changed in the update /// /// /// A to update /// /// /// A with the old file path /// public void UpdateProject(Project project, string previousFileName) { lock (this.locker) { bool error = false; // Configure db4o to cascade on delete for each one of the objects stored in a Project SetDeleteCascadeOptions(); IObjectContainer db = Db4oFactory.OpenFile(file); try { // We look for a project with the same filename if (!Exists(project.File.FilePath,db)) { IQuery query = db.Query(); query.Constrain(typeof(Project)); query.Descend("file").Descend("filePath").Constrain(previousFileName); IObjectSet result = query.Execute(); //Get the stored project and replace it with the new one if (result.Count == 1){ Project fd = (Project)result.Next(); db.Delete(fd); // Add the updated project db.Store(project); db.Commit(); } else { error = true; } } else error = true; } finally { CloseDB(db); if (error) throw new Exception(); } } } /// /// Updates a project in the databse whose file path hasn't changed /// /// /// A to update /// public void UpdateProject(Project project) { lock (this.locker) { SetDeleteCascadeOptions(); IObjectContainer db = Db4oFactory.OpenFile(file); try { IQuery query = db.Query(); query.Constrain(typeof(Project)); query.Descend("file").Descend("filePath").Constrain(project.File.FilePath); IObjectSet result = query.Execute(); //Get the stored project and replace it with the new one Project fd = (Project)result.Next(); db.Delete(fd); db.Store(project); db.Commit(); } finally { CloseDB(db); } } } /// /// Checks if a project already exists in the DataBase with the same file /// /// /// A to compare /// /// /// A /// public bool Exists(Project project){ IObjectContainer db = Db4oFactory.OpenFile(file); try{ return Exists(project.File.FilePath, db); }catch{ return false; }finally{ CloseDB(db); } } private void CloseDB(IObjectContainer db) { db.Ext().Purge(); db.Close(); } private void SetDeleteCascadeOptions() { Db4oFactory.Configure().ObjectClass(typeof(Project)).CascadeOnDelete(true); Db4oFactory.Configure().ObjectClass(typeof(Sections)).CascadeOnDelete(true); Db4oFactory.Configure().ObjectClass(typeof(TimeNode)).CascadeOnDelete(true); Db4oFactory.Configure().ObjectClass(typeof(Time)).CascadeOnDelete(true); Db4oFactory.Configure().ObjectClass(typeof(Team)).CascadeOnDelete(true); Db4oFactory.Configure().ObjectClass(typeof(HotKey)).CascadeOnDelete(true); Db4oFactory.Configure().ObjectClass(typeof(Player)).CascadeOnDelete(true); Db4oFactory.Configure().ObjectClass(typeof(TeamTemplate)).CascadeOnDelete(true); Db4oFactory.Configure().ObjectClass(typeof(Drawing)).CascadeOnDelete(true); } private void SetUpdateCascadeOptions() { Db4oFactory.Configure().ObjectClass(typeof(Project)).CascadeOnUpdate(true); Db4oFactory.Configure().ObjectClass(typeof(Sections)).CascadeOnUpdate(true); Db4oFactory.Configure().ObjectClass(typeof(TimeNode)).CascadeOnUpdate(true); Db4oFactory.Configure().ObjectClass(typeof(Time)).CascadeOnUpdate(true); Db4oFactory.Configure().ObjectClass(typeof(Team)).CascadeOnUpdate(true); Db4oFactory.Configure().ObjectClass(typeof(HotKey)).CascadeOnUpdate(true); Db4oFactory.Configure().ObjectClass(typeof(Player)).CascadeOnUpdate(true); Db4oFactory.Configure().ObjectClass(typeof(TeamTemplate)).CascadeOnUpdate(true); Db4oFactory.Configure().ObjectClass(typeof(Drawing)).CascadeOnUpdate(true); } private bool Exists(string filename, IObjectContainer db) { IQuery query = db.Query(); query.Constrain(typeof(Project)); query.Descend("file").Descend("filePath").Constrain(filename); IObjectSet result = query.Execute(); return (result.HasNext()); } } } longomatch-0.16.8/LongoMatch/DB/TeamTemplate.cs0000644000175000017500000000534111601631101016104 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.Collections.Generic; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using LongoMatch.TimeNodes; namespace LongoMatch.DB { [Serializable] public class TeamTemplate { private List playersList; public TeamTemplate() { playersList = new List(); } public void Clear() { playersList.Clear(); } public int PlayersCount { get { return playersList.Count; } } public void CreateDefaultTemplate(int playersCount) { for (int i=0; i playersList) { this.playersList = playersList; } public Player GetPlayer(int index) { if (index >= PlayersCount) throw new Exception(String.Format("The actual team template doesn't have so many players. Requesting player {0} but players count is {1}", index, PlayersCount)); return playersList[index]; } public List GetPlayersList() { return playersList; } public void Save(string filepath) { IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(filepath, FileMode.Create, FileAccess.Write, FileShare.None); formatter.Serialize(stream, this); stream.Close(); } public static TeamTemplate LoadFromFile(string filepath) { IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read); TeamTemplate obj = (TeamTemplate) formatter.Deserialize(stream); stream.Close(); return obj; } public static TeamTemplate DefautlTemplate(int playersCount) { TeamTemplate defaultTemplate = new TeamTemplate(); defaultTemplate.CreateDefaultTemplate(playersCount); return defaultTemplate; } } } longomatch-0.16.8/LongoMatch/DB/TagsTemplate.cs0000644000175000017500000000264411601631101016117 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.Collections.Generic; using LongoMatch.TimeNodes; namespace LongoMatch.DB { [Serializable] public class TagsTemplate { List tagsList; public TagsTemplate() { tagsList = new List(); } public bool AddTag(Tag tag) { if (tagsList.Contains(tag)) return false; else tagsList.Add(tag); return true; } public bool RemoveTag (Tag tag) { return tagsList.Remove(tag); } public Tag GetTag(int index){ return tagsList[index]; } public int Count (){ return tagsList.Count; } public IEnumerator GetEnumerator(){ return tagsList.GetEnumerator(); } } } longomatch-0.16.8/LongoMatch/DB/Sections.cs0000644000175000017500000001706711601631101015321 00000000000000// Sections.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using Gdk; using LongoMatch.TimeNodes; namespace LongoMatch.DB { /// /// I am a template for the analysis categories used in a project. /// I describe each one of the categories and provide the default values /// to use to create plys in a specific category. /// The position of the category in the index is very important and should /// respect the same index used in the plays list inside a project. /// The must handle all the changes /// [Serializable] public class Sections { private List sectionsList; //These fields are not used but must be kept for DataBase compatiblity #pragma warning disable 0169 private Color[] colorsArray; private SectionsTimeNode[] timeNodesArray; #pragma warning restore 0169 /// /// Creates a new template /// public Sections() { this.sectionsList = new List(); } /// /// Clear the template /// public void Clear() { sectionsList.Clear(); } /// /// Adds a new analysis category to the template /// /// /// A : category to add /// public void AddSection(SectionsTimeNode tn) { sectionsList.Add(tn); } /// /// Adds a new category to the template at a given position /// /// /// A : category to add /// /// /// A : position /// public void AddSectionAtPos(SectionsTimeNode tn, int index) { sectionsList.Insert(index,tn); } /// /// Delete a category from the templates using the it's index /// /// /// A : position of the category to delete /// public void RemoveSection(int index) { sectionsList.RemoveAt(index); } //// /// Number of categories /// public int Count { get { return sectionsList.Count; } } //// /// Ordered list with all the categories /// public List SectionsTimeNodes { set { sectionsList.Clear(); sectionsList = value; } get { return sectionsList; } } /// /// Retrieves a category at a given index /// /// /// A : position of the category to retrieve /// /// /// A : category retrieved /// public SectionsTimeNode GetSection(int section) { return sectionsList[section]; } /// /// Returns an array if strings with the categories names /// /// /// A /// public string[] GetSectionsNames() { int count = sectionsList.Count; string[] names = new string[count]; SectionsTimeNode tNode; for (int i=0; i /// Returns an array of the categories' color /// /// /// A /// public Color[] GetColors() { int count = sectionsList.Count; Color[] colors = new Color[count]; SectionsTimeNode tNode; for (int i=0; i /// Return an array of the hotkeys for this template /// /// /// A /// public HotKey[] GetHotKeys() { int count = sectionsList.Count; HotKey[] hotkeys = new HotKey[count]; SectionsTimeNode tNode; for (int i=0; i /// Returns an array with the default start times /// /// /// A /// public Time[] GetSectionsStartTimes() { int count = sectionsList.Count; Time[] startTimes = new Time[count]; SectionsTimeNode tNode; for (int i=0; i /// Returns an array with the defaul stop times /// /// /// A /// public Time[] GetSectionsStopTimes() { int count = sectionsList.Count; Time[] stopTimes = new Time[count]; SectionsTimeNode tNode; for (int i=0; i /// Returns a category at a given position /// /// /// A : position in the list /// /// /// A /// public SectionsTimeNode GetTimeNode(int section) { return sectionsList [section]; } /// /// Returns the name for a category at a given position /// /// /// A : position in the list /// /// /// A : name of the category /// public string GetName(int section) { return sectionsList[section].Name; } /// /// Returns the start time for a category at a given position /// /// /// A : position in the list /// /// /// A : start time /// public Time GetStartTime(int section) { return sectionsList[section].Start; } /// /// Returns the stop time for a category at a given position /// /// /// A : position in the list /// /// /// A : stop time /// public Time GetStopTime(int section) { return sectionsList[section].Stop; } /// /// Return the color for a category at a given position /// /// /// A : position in the list /// /// /// A : color /// public Color GetColor(int section) { return sectionsList[section].Color; } /// /// Returns the hotckey for a category at a given position /// /// /// A : position in the list /// /// /// A : hotkey for this category /// public HotKey GetHotKey(int section) { return sectionsList[section].HotKey; } } } longomatch-0.16.8/LongoMatch/DB/Project.cs0000644000175000017500000003556311601631101015141 00000000000000// Project.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.IO; using System.Collections; using System.Collections.Generic; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using Gtk; using Gdk; using Mono.Unix; using LongoMatch.TimeNodes; using LongoMatch.Video.Utils; namespace LongoMatch.DB { /// /// I hold the information needed by a project and provide persistency using /// the db4o database. /// I'm structured in the following way: /// -Project Description ( /// -1 Categories Template /// -1 Local Team Template /// -1 Visitor Team Template /// -1 list of for each category /// /// [Serializable] public class Project : IComparable { private PreviewMediaFile file; private string title; private string localName; private string visitorName; private int localGoals; private int visitorGoals; private DateTime matchDate; private string season; private string competition; private Sections sections; private List> sectionPlaysList; private TeamTemplate visitorTeamTemplate; private TeamTemplate localTeamTemplate; private TagsTemplate tagsTemplate; //Keep this fiel for DB retrocompatibility #pragma warning disable 0169 private List[] dataSectionArray; #pragma warning restore 0169 /// /// Creates a new project /// /// /// A : video file information /// /// /// A : local team's name /// /// /// A : visitor team's name /// /// /// A : season information /// /// /// A : competition information /// /// /// A : local team's goals /// /// /// A : visitor team's goals /// /// /// A : game date /// /// /// A : categories template /// /// /// A : local team template /// /// /// A : visitor team template /// #region Constructors public Project(PreviewMediaFile file, String localName, String visitorName, String season, String competition, int localGoals, int visitorGoals, DateTime matchDate, Sections sections, TeamTemplate localTeamTemplate, TeamTemplate visitorTeamTemplate) { this.file = file; this.localName = localName; this.visitorName = visitorName; this.localGoals = localGoals; this.visitorGoals = visitorGoals; this.matchDate = matchDate; this.season = season; this.competition = competition; this.localTeamTemplate = localTeamTemplate; this.visitorTeamTemplate = visitorTeamTemplate; this.sections = sections; this.sectionPlaysList = new List>(); for (int i=0;i()); } this.tagsTemplate = new TagsTemplate(); this.Title = file == null ? "" : System.IO.Path.GetFileNameWithoutExtension(this.file.FilePath); } #endregion #region Properties /// /// Video File /// public PreviewMediaFile File { get { return file; } set { file=value; } } /// /// Project title /// public String Title { get { return title; } set { title=value; } } /// /// Season description /// public String Season { get { return season; } set { season = value; } } /// /// Competition description /// public String Competition { get { return competition; } set { competition= value; } } /// /// Local team name /// public String LocalName { get { return localName; } set { localName=value; } } /// /// Visitor team name /// public String VisitorName { get { return visitorName; } set { visitorName=value; } } /// /// Local team goals /// public int LocalGoals { get { return localGoals; } set { localGoals=value; } } /// /// Visitor team goals /// public int VisitorGoals { get { return visitorGoals; } set { visitorGoals=value; } } /// /// Game date /// public DateTime MatchDate { get { return matchDate; } set { matchDate=value; } } /// /// Categories template /// public Sections Sections { get { return this.sections; } set { this.sections = value; } } /// /// Local team template /// public TeamTemplate LocalTeamTemplate { get { return localTeamTemplate; } set { localTeamTemplate=value; } } /// /// Visitor team template /// public TeamTemplate VisitorTeamTemplate { get { return visitorTeamTemplate; } set { visitorTeamTemplate=value; } } /// /// Template with the project tags /// public TagsTemplate Tags{ //Since 0.15.5 get{ if (tagsTemplate == null) tagsTemplate = new TagsTemplate(); return tagsTemplate; } set{ tagsTemplate = value; } } #endregion #region Public Methods /// /// Frees all the project's resources helping the GC /// public void Clear() { //Help the GC freeing objects foreach (List list in sectionPlaysList) list.Clear(); sectionPlaysList.Clear(); Sections.Clear(); visitorTeamTemplate.Clear(); localTeamTemplate.Clear(); sectionPlaysList=null; Sections=null; visitorTeamTemplate=null; localTeamTemplate=null; } /// /// Adds a new analysis category to the project /// /// /// A /// public void AddSection(SectionsTimeNode tn) { AddSectionAtPos(tn,sections.Count); } /// /// Add a new category to the project at a given position /// /// /// A : category default values /// /// /// A : position index /// public void AddSectionAtPos(SectionsTimeNode tn,int sectionIndex) { sectionPlaysList.Insert(sectionIndex,new List()); sections.AddSectionAtPos(tn,sectionIndex); } /// /// Adds a new play to a given category /// /// /// A : category index /// /// /// A : start time of the play /// /// /// A : stop time of the play /// /// /// A : snapshot of the play /// /// /// A : created play /// public MediaTimeNode AddTimeNode(int dataSection, Time start, Time stop,Pixbuf thumbnail) { MediaTimeNode tn ; List playsList= sectionPlaysList[dataSection]; string count= String.Format("{0:000}",playsList.Count+1); string name = sections.GetName(dataSection) + " " + count; // HACK: Used for capture where fps is not specified, asuming PAL@25fps ushort fps = file != null ? file.Fps : (ushort)25; tn = new MediaTimeNode(name, start, stop,"",fps,thumbnail); playsList.Add(tn); return tn; } /// /// Delete a play from the project /// /// /// A : play to be deleted /// /// /// A : category the play belongs to /// public void DeleteTimeNode(MediaTimeNode tNode,int section) { sectionPlaysList[section].Remove(tNode); } /// /// Delete a category /// /// /// A : category index /// public void DeleteSection(int sectionIndex) { if (sections.Count == 1) throw new Exception("You can't remove the last Section"); sections.RemoveSection(sectionIndex); sectionPlaysList.RemoveAt(sectionIndex); } /// /// Return an array of strings with the categories names /// /// /// A /// public string[] GetSectionsNames() { return sections.GetSectionsNames(); } /// /// Return an array of with /// the categories default lead time /// /// /// A /// public Time[] GetSectionsStartTimes() { return sections.GetSectionsStartTimes(); } /// /// Return an array of with /// the categories default lag time /// /// /// A /// public Time[] GetSectionsStopTimes() { return sections.GetSectionsStopTimes(); } /// /// Returns a in which project categories are /// root nodes and their respectives plays child nodes /// /// /// A /// public TreeStore GetModel() { Gtk.TreeStore dataFileListStore = new Gtk.TreeStore(typeof(MediaTimeNode)); for (int i=0;i /// Returns a for the local team in which players /// are root nodes and their respectives tagged plays child nodes /// /// /// A /// public TreeStore GetLocalTeamModel() { List itersList = new List(); Gtk.TreeStore dataFileListStore = new Gtk.TreeStore(typeof(object)); itersList.Capacity = localTeamTemplate.PlayersCount; for (int i=0;i /// Returns a for the visitor team in which players /// are root nodes and their respectives tagged plays child nodes /// /// /// A /// public TreeStore GetVisitorTeamModel() { List itersList = new List(); Gtk.TreeStore dataFileListStore = new Gtk.TreeStore(typeof(object)); itersList.Capacity = visitorTeamTemplate.PlayersCount; for (int i=0;i /// Returns a list of plays' lists. Actually used by the timeline /// /// /// A /// public List> GetDataArray() { return sectionPlaysList; } public bool Equals(Project project) { if (project == null) return false; else return this.File.FilePath.Equals(project.File.FilePath); } public int CompareTo(object obj) { if (obj is Project) { Project project = (Project) obj; return this.File.FilePath.CompareTo(project.File.FilePath); } else throw new ArgumentException("object is not a Project and cannot be compared"); } public static void Export(Project project, string file) { file = Path.ChangeExtension(file,"lpr"); IFormatter formatter = new BinaryFormatter(); using(Stream stream = new FileStream(file, FileMode.Create, FileAccess.Write, FileShare.None)){ formatter.Serialize(stream, project); } } public static Project Import(string file) { using(Stream stream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.None)) { try { IFormatter formatter = new BinaryFormatter(); return (Project)formatter.Deserialize(stream); } catch { throw new Exception(Catalog.GetString("The file you are trying to load is not a valid project")); } } } #endregion } } longomatch-0.16.8/LongoMatch/longomatch.desktop.in0000644000175000017500000000061211601631276017052 00000000000000[Desktop Entry] Version=1.0 _Name=LongoMatch _X-GNOME-FullName=LongoMatch: The Digital Coach Type=Application Exec=longomatch Terminal=false Categories=Video;AudioVideo;Player;AudioVideoEditing; Icon=longomatch _Comment=Sports video analysis tool for coaches X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=longomatch X-GNOME-Bugzilla-Component=general X-GNOME-Bugzilla-Version=0.16.8 longomatch-0.16.8/LongoMatch/Handlers/0002755000175000017500000000000011601631302014530 500000000000000longomatch-0.16.8/LongoMatch/Handlers/VideoDrawingsManager.cs0000644000175000017500000000716311601631101021041 00000000000000// // Copyright (C) 2009 Andoni Morales Alastruey // // 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 // using System; using System.Collections.Generic; using Gdk; using LongoMatch.TimeNodes; using LongoMatch.Gui; using LongoMatch.Video.Common; namespace LongoMatch.Handlers { public class VideoDrawingsManager { private PlayerBin player; private uint timeout; private bool inKeyFrame; private bool canStop; private MediaTimeNode loadedPlay; public VideoDrawingsManager(PlayerBin player) { this.player = player; timeout = 0; } ~ VideoDrawingsManager() { StopClock(); } public MediaTimeNode Play { set { loadedPlay = value; inKeyFrame = false; canStop = true; ResetPlayerWindow(); ConnectSignals(); StartClock(); } } private Drawing Drawing { get { return loadedPlay.KeyFrameDrawing; } } private void StartClock() { if (timeout ==0) timeout = GLib.Timeout.Add(20,CheckStopTime); } private void StopClock() { if (timeout != 0) { GLib.Source.Remove(timeout); timeout = 0; } } private void ConnectSignals() { player.PlayStateChanged += OnStateChanged; player.SeekEvent += OnSeekEvent; player.SegmentClosedEvent += OnSegmentCloseEvent; } private void DisconnectSignals() { player.PlayStateChanged -= OnStateChanged; player.SeekEvent -= OnSeekEvent; player.SegmentClosedEvent -= OnSegmentCloseEvent; } private int NextStopTime() { return Drawing.StopTime; } private void PrintDrawing() { Pixbuf frame = null; Pixbuf drawing = null; player.Pause(); player.SeekInSegment(Drawing.StopTime); while (frame == null) frame = player.CurrentFrame; player.LogoPixbuf = frame; drawing = Drawing.Pixbuf; player.DrawingPixbuf = drawing; player.LogoMode = true; player.DrawingMode = true; inKeyFrame = true; frame.Dispose(); drawing.Dispose(); } private void ResetPlayerWindow() { player.LogoMode = false; player.DrawingMode = false; player.SetLogo(System.IO.Path.Combine(MainClass.ImagesDir(),"background.png")); } private bool CheckStopTime() { int currentTime = (int)player.AccurateCurrentTime; if (Drawing == null || !canStop) return true; if ((currentTime)>NextStopTime()) { StopClock(); PrintDrawing(); } return true; } protected virtual void OnStateChanged(object sender, StateChangeArgs args) { //Check if we are currently paused displaying the key frame waiting for the user to //go in to Play. If so we can stop if (inKeyFrame) { ResetPlayerWindow(); inKeyFrame = false; } } protected virtual void OnSeekEvent(long time) { if (Drawing == null) return; if (inKeyFrame) { ResetPlayerWindow(); inKeyFrame = false; } canStop = time < Drawing.StopTime; if (canStop) StartClock(); else StopClock(); } protected virtual void OnSegmentCloseEvent() { ResetPlayerWindow(); DisconnectSignals(); StopClock(); } } } longomatch-0.16.8/LongoMatch/Handlers/EventsManager.cs0000644000175000017500000003570511601631101017543 00000000000000// EventsManager.cs // // Copyright (C2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using LongoMatch.Common; using LongoMatch.Gui.Component; using LongoMatch.Gui.Dialog; using LongoMatch.TimeNodes; using LongoMatch.DB; using LongoMatch.Video.Player; using LongoMatch.Video.Common; using LongoMatch.Video.Utils; using LongoMatch.Video.Editor; using LongoMatch.Video; using LongoMatch.Handlers; using LongoMatch.Gui; using Gtk; using Gdk; using Mono.Unix; namespace LongoMatch { public class EventsManager { private PlaysListTreeWidget treewidget; private PlayersListTreeWidget localPlayersList,visitorPlayersList; private TagsTreeWidget tagsTreeWidget; private ButtonsWidget buttonswidget; private PlayListWidget playlist; private PlayerBin player; private CapturerBin capturer; private TimeLineWidget timeline; private ProgressBar videoprogressbar; private NotesWidget notes; private FramesSeriesCapturer fsc; private FramesCaptureProgressDialog fcpd; private VideoDrawingsManager drawingManager; // Current play loaded. null if no play is loaded private TimeNode selectedTimeNode=null; // current proyect in use private Project openedProject; private ProjectType projectType; private Time startTime; public EventsManager(PlaysListTreeWidget treewidget, PlayersListTreeWidget localPlayersList, PlayersListTreeWidget visitorPlayersList, TagsTreeWidget tagsTreeWidget, ButtonsWidget buttonswidget, PlayListWidget playlist, PlayerBin player, TimeLineWidget timeline, ProgressBar videoprogressbar,NotesWidget notes, CapturerBin capturer) { this.treewidget = treewidget; this.localPlayersList = localPlayersList; this.visitorPlayersList = visitorPlayersList; this.tagsTreeWidget = tagsTreeWidget; this.buttonswidget = buttonswidget; this.playlist = playlist; this.player = player; this.timeline = timeline; this.videoprogressbar = videoprogressbar; this.notes = notes; this.capturer = capturer; this.drawingManager = new VideoDrawingsManager(player); ConnectSignals(); } public Project OpenedProject { set { openedProject = value; } } public ProjectType OpenedProjectType{ set { projectType = value; } } private void ConnectSignals() { /* Adding Handlers for each event */ /* Connect new mark event */ buttonswidget.NewMarkEvent += OnNewMark; buttonswidget.NewMarkStartEvent += OnNewMarkStart; buttonswidget.NewMarkStopEvent += OnNewMarkStop; /* Connect TimeNodeChanged events */ treewidget.TimeNodeChanged += OnTimeNodeChanged; localPlayersList.TimeNodeChanged += OnTimeNodeChanged; visitorPlayersList.TimeNodeChanged += OnTimeNodeChanged; tagsTreeWidget.TimeNodeChanged += OnTimeNodeChanged; timeline.TimeNodeChanged += OnTimeNodeChanged; notes.TimeNodeChanged += OnTimeNodeChanged; /* Connect TimeNodeDeleted events */ treewidget.TimeNodeDeleted += OnTimeNodeDeleted; timeline.TimeNodeDeleted += OnTimeNodeDeleted; /* Connect TimeNodeSelected events */ treewidget.TimeNodeSelected += OnTimeNodeSelected; localPlayersList.TimeNodeSelected += OnTimeNodeSelected; visitorPlayersList.TimeNodeSelected += OnTimeNodeSelected; tagsTreeWidget.TimeNodeSelected += OnTimeNodeSelected; timeline.TimeNodeSelected += OnTimeNodeSelected; /* Connect playlist events */ playlist.PlayListNodeSelected += OnPlayListNodeSelected; playlist.Progress += OnProgress; playlist.ApplyCurrentRate += OnApplyRate; /* Connect PlayListNodeAdded events */ treewidget.PlayListNodeAdded += OnPlayListNodeAdded; localPlayersList.PlayListNodeAdded += OnPlayListNodeAdded; visitorPlayersList.PlayListNodeAdded += OnPlayListNodeAdded; tagsTreeWidget.PlayListNodeAdded += OnPlayListNodeAdded; /* Connect tags events */ treewidget.PlayersTagged += OnPlayersTagged; treewidget.TagPlay += OnTagPlay; /* Connect SnapshotSeries events */ treewidget.SnapshotSeriesEvent += OnSnapshotSeries; localPlayersList.SnapshotSeriesEvent += OnSnapshotSeries; visitorPlayersList.SnapshotSeriesEvent += OnSnapshotSeries; tagsTreeWidget.SnapshotSeriesEvent += OnSnapshotSeries; /* Connect timeline events */ timeline.NewMarkEvent += OnNewMarkAtFrame; /* Connect player events */ player.Prev += OnPrev; player.Next += OnNext; player.Tick += OnTick; player.SegmentClosedEvent += OnSegmentClosedEvent; player.DrawFrame += OnDrawFrame; } private void ProcessNewMarkEvent(int section,Time pos) { Time length, startTime, stopTime, start, stop, fStart, fStop; if (player == null || openedProject == null) return; //Get the default lead and lag time for the section startTime = openedProject.Sections.GetStartTime(section); stopTime = openedProject.Sections.GetStopTime(section); // Calculating borders of the segment depnding start = pos - startTime; stop = pos + stopTime; fStart = (start < new Time(0)) ? new Time(0) : start; if (projectType == ProjectType.FakeCaptureProject || projectType == ProjectType.CaptureProject){ fStop = stop; } else { length = new Time((int)player.StreamLength); fStop = (stop > length) ? length: stop; } AddNewPlay(fStart, fStop, section); } private void AddNewPlay(Time start, Time stop, int section){ Pixbuf miniature; MediaTimeNode tn; if (projectType == ProjectType.CaptureProject){ if (!capturer.Capturing){ MessagePopup.PopupMessage(capturer, MessageType.Info, Catalog.GetString("You can't create a new play if the capturer "+ "is not recording.")); return; } miniature = capturer.CurrentMiniatureFrame; } else if (projectType == ProjectType.FileProject) miniature = player.CurrentMiniatureFrame; else miniature = null; tn = openedProject.AddTimeNode(section, start, stop,miniature); treewidget.AddPlay(tn,section); tagsTreeWidget.AddPlay(tn); timeline.QueueDraw(); } protected virtual void OnProgress(float progress) { if (progress > (float)EditorState.START && progress <= (float)EditorState.FINISHED && progress > videoprogressbar.Fraction) { videoprogressbar.Fraction = progress; } if (progress == (float)EditorState.CANCELED) { videoprogressbar.Hide(); } else if (progress == (float)EditorState.START) { videoprogressbar.Show(); videoprogressbar.Fraction = 0; videoprogressbar.Text = "Creating new video"; } else if (progress == (float)EditorState.FINISHED) { MessagePopup.PopupMessage(player, MessageType.Info, Catalog.GetString("The video edition has finished successfully.")); videoprogressbar.Hide(); } else if (progress == (float)EditorState.ERROR) { MessagePopup.PopupMessage(player, MessageType.Error, Catalog.GetString("An error has occurred in the video editor.") +Catalog.GetString("Please, try again.")); videoprogressbar.Hide(); } } protected virtual void OnNewMarkAtFrame(int section, int frame) { Time pos = new Time(frame*1000/openedProject.File.Fps); player.CloseActualSegment(); player.SeekTo ((long)pos.MSeconds, true); ProcessNewMarkEvent(section,pos); } public virtual void OnNewMark(int i) { Time pos; if (projectType == ProjectType.FakeCaptureProject || projectType == ProjectType.CaptureProject) pos = new Time((int)capturer.CurrentTime); else pos = new Time((int)player.CurrentTime); ProcessNewMarkEvent(i,pos); } public virtual void OnNewMarkStart(){ startTime = new Time((int)player.CurrentTime); } public virtual void OnNewMarkStop(int section){ int diff; Time stopTime = new Time((int)player.CurrentTime); diff = stopTime.MSeconds - startTime.MSeconds; if (diff < 0){ MessagePopup.PopupMessage(buttonswidget, MessageType.Warning, Catalog.GetString("The stop time is smaller than the start time. "+ "The play will not be added.")); return; } if (diff < 500){ int correction = 500 - diff; if (startTime.MSeconds - correction > 0) startTime = startTime - correction; else stopTime = stopTime + correction; } AddNewPlay(startTime, stopTime, section); } protected virtual void OnTimeNodeSelected(MediaTimeNode tNode) { selectedTimeNode = tNode; timeline.SelectedTimeNode = tNode; player.SetStartStop(tNode.Start.MSeconds,tNode.Stop.MSeconds); notes.Visible = true; notes.Play= tNode; drawingManager.Play=tNode; } protected virtual void OnTimeNodeChanged(TimeNode tNode, object val) { //Si hemos modificado el valor de un nodo de tiempo a través del //widget de ajuste de tiempo posicionamos el reproductor en el punto // if (tNode is MediaTimeNode && val is Time) { if (tNode != selectedTimeNode) OnTimeNodeSelected((MediaTimeNode)tNode); Time pos = (Time)val; if (pos == tNode.Start) { player.UpdateSegmentStartTime(pos.MSeconds); } else { player.UpdateSegmentStopTime(pos.MSeconds); } } else if (tNode is SectionsTimeNode) { buttonswidget.Sections = openedProject.Sections; } } protected virtual void OnTimeNodeDeleted(MediaTimeNode tNode,int section) { treewidget.DeletePlay(tNode,section); foreach (int player in tNode.LocalPlayers) localPlayersList.DeleteTimeNode(tNode,player); foreach (int player in tNode.VisitorPlayers) visitorPlayersList.DeleteTimeNode(tNode,player); openedProject.DeleteTimeNode(tNode,section); if (projectType == ProjectType.FileProject){ this.player.CloseActualSegment(); MainClass.DB.UpdateProject(openedProject); } timeline.QueueDraw(); } protected virtual void OnPlayListNodeAdded(MediaTimeNode tNode) { playlist.Add(new PlayListTimeNode(openedProject.File,tNode)); } protected virtual void OnPlayListNodeSelected(PlayListTimeNode plNode, bool hasNext) { if (openedProject == null) { if (plNode.Valid) { player.SetPlayListElement(plNode.MediaFile.FilePath,plNode.Start.MSeconds,plNode.Stop.MSeconds,plNode.Rate,hasNext); selectedTimeNode = plNode; } } else { MessagePopup.PopupMessage(playlist, MessageType.Error, Catalog.GetString("Please, close the opened project to play the playlist.")); playlist.Stop(); } } protected virtual void OnPlayListSegmentDone() { playlist.Next(); } protected virtual void OnSegmentClosedEvent() { selectedTimeNode = null; timeline.SelectedTimeNode = null; notes.Visible = false; } protected virtual void OnSnapshotSeries(MediaTimeNode tNode) { SnapshotsDialog sd; uint interval; string seriesName; string outDir; player.Pause(); sd= new SnapshotsDialog(); sd.TransientFor= (Gtk.Window) treewidget.Toplevel; sd.Play = tNode.Name; if (sd.Run() == (int)ResponseType.Ok) { sd.Destroy(); interval = sd.Interval; seriesName = sd.SeriesName; outDir = System.IO.Path.Combine(MainClass.SnapshotsDir(),seriesName); fsc = new FramesSeriesCapturer(openedProject.File.FilePath,tNode.Start.MSeconds,tNode.Stop.MSeconds,interval,outDir); fcpd = new FramesCaptureProgressDialog(fsc); fcpd.TransientFor=(Gtk.Window) treewidget.Toplevel; fcpd.Run(); fcpd.Destroy(); } else sd.Destroy(); } protected virtual void OnNext() { playlist.Next(); } protected virtual void OnPrev() { if (selectedTimeNode is MediaTimeNode) player.SeekInSegment(selectedTimeNode.Start.MSeconds); else if (selectedTimeNode is PlayListTimeNode) playlist.Prev(); else if (selectedTimeNode == null) player.SeekTo(0,false); } protected virtual void OnTick(object o, TickArgs args) { if (args.CurrentTime != 0 && timeline != null && openedProject != null) timeline.CurrentFrame=(uint)(args.CurrentTime * openedProject.File.Fps / 1000); } protected virtual void OnTimeline2PositionChanged(Time pos) { player.SeekInSegment(pos.MSeconds); } protected virtual void OnApplyRate(PlayListTimeNode plNode) { plNode.Rate = player.Rate; } protected virtual void OnDrawFrame(int time) { Pixbuf pixbuf=null; DrawingTool dialog = new DrawingTool(); player.Pause(); pixbuf = player.CurrentFrame; dialog.Image = pixbuf; dialog.TransientFor = (Gtk.Window)player.Toplevel; if (selectedTimeNode != null) dialog.SetPlay((selectedTimeNode as MediaTimeNode), time); pixbuf.Dispose(); dialog.Run(); dialog.Destroy(); } protected virtual void OnTagPlay(MediaTimeNode tNode){ TaggerDialog tagger = new TaggerDialog(); tagger.ProjectTags = openedProject.Tags; tagger.Tags = tNode.Tags; tagger.TransientFor = (Gtk.Window)player.Toplevel; tagger.Run(); tNode.Tags = tagger.Tags; foreach (Tag tag in tagger.Tags){ openedProject.Tags.AddTag(tag); } tagsTreeWidget.UpdateTagsList(); tagger.Destroy(); } protected virtual void OnPlayersTagged(MediaTimeNode tNode, Team team) { PlayersSelectionDialog dialog = new PlayersSelectionDialog(); if (team == Team.LOCAL) { dialog.SetPlayersInfo(openedProject.LocalTeamTemplate); dialog.PlayersChecked = tNode.LocalPlayers; if (dialog.Run() == (int) ResponseType.Ok) { tNode.LocalPlayers = dialog.PlayersChecked; localPlayersList.UpdatePlaysList(openedProject.GetLocalTeamModel()); } } else if (team == Team.VISITOR) { dialog.SetPlayersInfo(openedProject.VisitorTeamTemplate); dialog.PlayersChecked = tNode.VisitorPlayers; if (dialog.Run() == (int) ResponseType.Ok) { tNode.VisitorPlayers = dialog.PlayersChecked; visitorPlayersList.UpdatePlaysList(openedProject.GetVisitorTeamModel()); } } dialog.Destroy(); } } } longomatch-0.16.8/LongoMatch/Handlers/DrawingManager.cs0000644000175000017500000000440711601631101017665 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using Gdk; using Gtk; using LongoMatch.Gui.Component; using LongoMatch.Gui.Popup; using LongoMatch.Handlers; namespace LongoMatch.Handlers { public class DrawingManager { TransparentDrawingArea drawingArea; DrawingToolBox toolBox; public DrawingManager(DrawingToolBox toolBox, Widget targetWidget) { drawingArea = new TransparentDrawingArea(targetWidget); drawingArea.Hide(); this.toolBox=toolBox; toolBox.ColorChanged += new ColorChangedHandler(OnColorChanged); toolBox.LineWidthChanged += new LineWidthChangedHandler(OnLineWidthChanged); toolBox.VisibilityChanged += new VisibilityChangedHandler(OnVisibilityChanged); toolBox.ClearDrawing += new ClearDrawingHandler(OnClearDrawing); toolBox.ToolsVisible=false; } public void OnKeyPressEvent(object o, Gtk.KeyPressEventArgs args) { if (!toolBox.Visible) return; if (args.Event.Key== Gdk.Key.d) { drawingArea.ToggleGrab(); } else if (args.Event.Key== Gdk.Key.c) { drawingArea.Clear(); } else if (args.Event.Key== Gdk.Key.s) { drawingArea.ToggleVisibility(); } } protected virtual void OnColorChanged(Gdk.Color color) { drawingArea.LineColor = color; } protected virtual void OnLineWidthChanged(int width) { drawingArea.LineWidth = width; } protected virtual void OnVisibilityChanged(bool visible) { drawingArea.Visible = visible; if (!visible) drawingArea.Clear(); } protected virtual void OnClearDrawing() { drawingArea.Clear(); } } }longomatch-0.16.8/LongoMatch/Handlers/Handlers.cs0000644000175000017500000000676211601631101016545 00000000000000// Handlers.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using LongoMatch; using LongoMatch.DB; using LongoMatch.TimeNodes; using LongoMatch.Common; namespace LongoMatch.Handlers { /*Tagging Events*/ //A Play was selected public delegate void TimeNodeSelectedHandler(MediaTimeNode tNode); //A new play needs to be create for a specific category at the current play time public delegate void NewMarkEventHandler(int i); //The start time of a new play has been signaled public delegate void NewMarkStartHandler(); //The stop of a nes play has been signaled public delegate void NewMarkStopHandler(int i); //Several plays needs to be created for a several categories public delegate void NewMarksEventHandler(List sections); //A need play needs to be created at precise frame public delegate void NewMarkAtFrameEventHandler(int i,int frame); //A play was edited public delegate void TimeNodeChangedHandler(TimeNode tNode, object val); //A play was deleted public delegate void TimeNodeDeletedHandler(MediaTimeNode tNode,int section); //Players needs to be tagged public delegate void PlayersTaggedHandler(MediaTimeNode tNode, Team team); //Tag a play public delegate void TagPlayHandler(MediaTimeNode tNode); /*Playlist Events*/ //Add the a play to the opened playlist public delegate void PlayListNodeAddedHandler(MediaTimeNode tNode); //A play list element is selected public delegate void PlayListNodeSelectedHandler(PlayListTimeNode plNode, bool hasNext); //Save current playrate to a play list element public delegate void ApplyCurrentRateHandler(PlayListTimeNode plNode); //Drawing events //Draw tool changed public delegate void DrawToolChangedHandler(LongoMatch.Gui.Component.DrawTool drawTool); //Paint color changed public delegate void ColorChangedHandler(Gdk.Color color); //Paint line width changed public delegate void LineWidthChangedHandler(int width); //Toggle widget visibility public delegate void VisibilityChangedHandler(bool visible); //Clear drawings public delegate void ClearDrawingHandler(); //Transparency value changed public delegate void TransparencyChangedHandler(double transparency); //The position of the stream has changed public delegate void PositionChangedHandler(Time pos); //A date was selected public delegate void DateSelectedHandler(DateTime selectedDate); //Create snapshots for a play public delegate void SnapshotSeriesHandler(MediaTimeNode tNode); //A new version of the software exists public delegate void NewVersionHandler(Version version, string URL); public delegate void SectionHandler(SectionsTimeNode tNode); public delegate void SectionsHandler(List tNodesList); public delegate void ProjectsSelectedHandler(List projects); } longomatch-0.16.8/LongoMatch/Handlers/HotKeysManager.cs0000644000175000017500000000370311601631101017656 00000000000000// HotKeysManager.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using Gtk; using Gdk; using LongoMatch.DB; using LongoMatch.TimeNodes; namespace LongoMatch.Handlers { public class HotKeysManager { private Dictionary dic; public event NewMarkEventHandler newMarkEvent; public HotKeysManager() { dic = new Dictionary(); } // Set the active Hotkeys for the current project public Sections Sections { set { dic.Clear(); if (value == null) return; for (int i=0;i actual.Major) return true; else if (update.Minor > actual.Minor) return true; else if (update.Build > actual.Build) return true; else return false; } private void CheckForUpdates() { if (ConexionExists()) this.FetchNewVersion(); if (NewVersion != null && IsOutDated()) { Gtk.Application.Invoke(delegate {this.NewVersion(update,downloadURL);}); } } #endregion #region Public methods public void Run() { Thread thread = new Thread(new ThreadStart(CheckForUpdates)); thread.Start(); } #endregion } } longomatch-0.16.8/LongoMatch/Gui/0002755000175000017500000000000011601631302013514 500000000000000longomatch-0.16.8/LongoMatch/Gui/Popup/0002755000175000017500000000000011601631302014617 500000000000000longomatch-0.16.8/LongoMatch/Gui/Popup/CalendarPopup.cs0000644000175000017500000000311411601631101017615 00000000000000// CalendarPopup.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using LongoMatch.Handlers; namespace LongoMatch.Gui.Popup { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(false)] public partial class CalendarPopup : Gtk.Window { public event DateSelectedHandler DateSelectedEvent; private DateTime selectedDate; public CalendarPopup() : base(Gtk.WindowType.Toplevel) { this.Build(); } public DateTime getSelectedDate() { return this.selectedDate; } protected virtual void OnFocusOutEvent(object o, Gtk.FocusOutEventArgs args) { this.Hide(); } protected virtual void OnCalendar1DaySelectedDoubleClick(object sender, System.EventArgs e) { this.selectedDate = calendar1.Date; this.DateSelectedEvent(this.selectedDate); this.Hide(); } } } longomatch-0.16.8/LongoMatch/Gui/Popup/MessagePopup.cs0000644000175000017500000000272311601631101017475 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using Gtk; namespace LongoMatch.Gui { public class MessagePopup { public MessagePopup() { } public static void PopupMessage(Widget sender,MessageType type, String errorMessage) { Window toplevel; if (sender != null) toplevel = (Window)sender.Toplevel; else toplevel = null; MessageDialog md = new MessageDialog(toplevel, DialogFlags.Modal, type, ButtonsType.Ok, errorMessage); md.Icon=Stetic.IconLoader.LoadIcon(md, "longomatch", Gtk.IconSize.Dialog); md.Run(); md.Destroy(); } } } longomatch-0.16.8/LongoMatch/Gui/TreeView/0002755000175000017500000000000011601631302015246 500000000000000longomatch-0.16.8/LongoMatch/Gui/TreeView/PlayersTreeView.cs0000644000175000017500000001032011601631101020576 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using Gdk; using Gtk; using LongoMatch.Common; using LongoMatch.TimeNodes; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class PlayersTreeView : ListTreeViewBase { private Team team; private Menu playersMenu; public PlayersTreeView() { this.Team = Team.LOCAL; tag.Visible = false; players.Visible = false; delete.Visible = false; SetPlayersMenu(); } public Team Team { set; get; } new public TreeStore Model{ set{ if (value != null){ value.SetSortFunc(0, SortFunction); value.SetSortColumnId(0,SortType.Ascending); } base.Model = value; } get{ return base.Model as TreeStore; } } private void SetPlayersMenu(){ Action edit; UIManager manager; ActionGroup g; manager= new UIManager(); g = new ActionGroup("PlayersMenuGroup"); edit = new Action("EditAction", Mono.Unix.Catalog.GetString("Edit name"), null, "gtk-edit"); g.Add(edit, null); manager.InsertActionGroup(g,0); manager.AddUiFromString(""+ " "+ " "+ " "+ ""); playersMenu = manager.GetWidget("/PlayersMenu") as Menu; edit.Activated += OnEdit; } protected int SortFunction(TreeModel model, TreeIter a, TreeIter b){ object oa; object ob; if (model == null) return 0; oa = model.GetValue (a, 0); ob = model.GetValue (b, 0); if (oa is Player) return (oa as Player).Number.CompareTo((ob as Player).Number); else return (oa as TimeNode).Name.CompareTo((ob as TimeNode).Name); } override protected bool OnKeyPressEvent (Gdk.EventKey evnt) { return false; } override protected void OnNameCellEdited(object o, Gtk.EditedArgs args) { base.OnNameCellEdited(o, args); Model.SetSortFunc(0, SortFunction); } override protected bool OnButtonPressEvent(EventButton evnt) { TreePath[] paths = Selection.GetSelectedRows(); if ((evnt.Type == EventType.ButtonPress) && (evnt.Button == 3)) { // We don't want to unselect the play when several // plays are selected and we clik the right button // For multiedition if (paths.Length <= 1){ base.OnButtonPressEvent(evnt); paths = Selection.GetSelectedRows(); } if (paths.Length == 1) { TimeNode selectedTimeNode = GetValueFromPath(paths[0]) as TimeNode; if (selectedTimeNode is MediaTimeNode) { deleteKeyFrame.Sensitive = (selectedTimeNode as MediaTimeNode).KeyFrameDrawing != null; MultiSelectMenu(false); menu.Popup(); } else { playersMenu.Popup(); } } else if (paths.Length > 1){ MultiSelectMenu(true); menu.Popup(); } } else base.OnButtonPressEvent(evnt); return true; } override protected bool SelectFunction(TreeSelection selection, TreeModel model, TreePath path, bool selected){ // Don't allow multiselection for Players if (!selected && selection.GetSelectedRows().Length > 0){ if (selection.GetSelectedRows().Length == 1 && GetValueFromPath(selection.GetSelectedRows()[0]) is Player) return false; return !(GetValueFromPath(path) is Player); } // Always unselect else return true; } } } longomatch-0.16.8/LongoMatch/Gui/TreeView/PlaysTreeView.cs0000644000175000017500000001735411601631101020265 00000000000000// TreeWidgetPopup.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using Gdk; using Gtk; using LongoMatch.Common; using LongoMatch.TimeNodes; using System; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public class PlaysTreeView : ListTreeViewBase { //Categories menu private Menu categoriesMenu; private RadioAction sortByName, sortByStart, sortByStop, sortByDuration; public PlaysTreeView() { SetCategoriesMenu(); } new public TreeStore Model{ set{ if (value != null){ value.SetSortFunc(0, SortFunction); value.SetSortColumnId(0,SortType.Ascending); } base.Model = value; } get{ return base.Model as TreeStore; } } private void SetCategoriesMenu(){ Gtk.Action edit, sortMenu; UIManager manager; ActionGroup g; manager= new UIManager(); g = new ActionGroup("CategoriesMenuGroup"); edit = new Gtk.Action("EditAction", Mono.Unix.Catalog.GetString("Edit name"), null, "gtk-edit"); sortMenu = new Gtk.Action("SortMenuAction", Mono.Unix.Catalog.GetString("Sort Method"), null, null); sortByName = new Gtk.RadioAction("SortByNameAction", Mono.Unix.Catalog.GetString("Sort by name"), null, null, 1); sortByStart = new Gtk.RadioAction("SortByStartAction", Mono.Unix.Catalog.GetString("Sort by start time"), null, null, 2); sortByStop = new Gtk.RadioAction("SortByStopAction", Mono.Unix.Catalog.GetString("Sort by stop time"), null, null, 3); sortByDuration = new Gtk.RadioAction("SortByDurationAction", Mono.Unix.Catalog.GetString("Sort by duration"), null, null, 3); sortByName.Group = new GLib.SList(System.IntPtr.Zero); sortByStart.Group = sortByName.Group; sortByStop.Group = sortByName.Group; sortByDuration.Group = sortByName.Group; g.Add(edit, null); g.Add(sortMenu, null); g.Add(sortByName, null); g.Add(sortByStart, null); g.Add(sortByStop, null); g.Add(sortByDuration, null); manager.InsertActionGroup(g,0); manager.AddUiFromString(""+ " "+ " "+ " "+ " "+ " "+ " "+ " "+ " "+ " "+ ""); categoriesMenu = manager.GetWidget("/CategoryMenu") as Menu; edit.Activated += OnEdit; sortByName.Activated += OnSortActivated; sortByStart.Activated += OnSortActivated; sortByStop.Activated += OnSortActivated; sortByDuration.Activated += OnSortActivated; } private void SetupSortMenu(SortMethodType sortMethod){ switch (sortMethod) { case SortMethodType.SortByName: sortByName.Active = true; break; case SortMethodType.SortByStartTime: sortByStart.Active = true; break; case SortMethodType.SortByStopTime: sortByStop.Active = true; break; default: sortByDuration.Active = true; break; } } protected int SortFunction(TreeModel model, TreeIter a, TreeIter b){ TreeStore store; TimeNode tna, tnb; TreeIter parent; int depth; SectionsTimeNode category; if (model == null) return 0; store = model as TreeStore; // Retrieve the iter parent and its depth // When a new play is inserted, one of the iters is not a valid // in the model. Get the values from the valid one if (store.IterIsValid(a)){ store.IterParent(out parent, a); depth = store.IterDepth(a); } else{ store.IterParent(out parent, b); depth = store.IterDepth(b); } // Dont't store categories if (depth == 0) return int.Parse(model.GetPath(a).ToString()) - int.Parse(model.GetPath(b).ToString()); category = model.GetValue(parent,0) as SectionsTimeNode; tna = model.GetValue (a, 0)as TimeNode; tnb = model.GetValue (b, 0) as TimeNode; switch(category.SortMethod){ case(SortMethodType.SortByName): return String.Compare(tna.Name, tnb.Name); case(SortMethodType.SortByStartTime): return (tna.Start - tnb.Start).MSeconds; case(SortMethodType.SortByStopTime): return (tna.Stop - tnb.Stop).MSeconds; case(SortMethodType.SortByDuration): return (tna.Duration - tnb.Duration).MSeconds; default: return 0; } } private void OnSortActivated (object o, EventArgs args){ SectionsTimeNode category; RadioAction sender; sender = o as RadioAction; category = GetValueFromPath(Selection.GetSelectedRows()[0]) as SectionsTimeNode; if (sender == sortByName) category.SortMethod = SortMethodType.SortByName; else if (sender == sortByStart) category.SortMethod = SortMethodType.SortByStartTime; else if (sender == sortByStop) category.SortMethod = SortMethodType.SortByStopTime; else category.SortMethod = SortMethodType.SortByDuration; // Redorder plays Model.SetSortFunc(0, SortFunction); } override protected bool SelectFunction(TreeSelection selection, TreeModel model, TreePath path, bool selected){ // Don't allow multiselect for categories if (!selected && selection.GetSelectedRows().Length > 0){ if (selection.GetSelectedRows().Length == 1 && GetValueFromPath(selection.GetSelectedRows()[0]) is SectionsTimeNode) return false; return !(GetValueFromPath(path) is SectionsTimeNode); } // Always unselect else return true; } override protected void OnNameCellEdited(object o, Gtk.EditedArgs args) { base.OnNameCellEdited(o, args); Model.SetSortFunc(0, SortFunction); } override protected bool OnButtonPressEvent(EventButton evnt) { TreePath[] paths = Selection.GetSelectedRows(); if ((evnt.Type == EventType.ButtonPress) && (evnt.Button == 3)) { // We don't want to unselect the play when several // plays are selected and we clik the right button // For multiedition if (paths.Length <= 1){ base.OnButtonPressEvent(evnt); paths = Selection.GetSelectedRows(); } if (paths.Length == 1) { TimeNode selectedTimeNode = GetValueFromPath(paths[0]) as TimeNode; if (selectedTimeNode is MediaTimeNode) { deleteKeyFrame.Sensitive = (selectedTimeNode as MediaTimeNode).KeyFrameDrawing != null; MultiSelectMenu(false); menu.Popup(); } else{ SetupSortMenu((selectedTimeNode as SectionsTimeNode).SortMethod); categoriesMenu.Popup(); } } else if (paths.Length > 1){ MultiSelectMenu(true); menu.Popup(); } } else base.OnButtonPressEvent(evnt); return true; } protected override bool OnKeyPressEvent (Gdk.EventKey evnt) { return false; } } } longomatch-0.16.8/LongoMatch/Gui/TreeView/CategoriesTreeView.cs0000644000175000017500000001340111601631101021247 00000000000000// TreeWidgetPopup.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using Gdk; using Gtk; using Mono.Unix; using LongoMatch.Handlers; using LongoMatch.TimeNodes; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public class CategoriesTreeView : Gtk.TreeView { public event SectionHandler SectionClicked; public event SectionsHandler SectionsSelected; public CategoriesTreeView() { RowActivated += OnTreeviewRowActivated; Selection.Changed += OnSelectionChanged; Selection.Mode = SelectionMode.Multiple; Gtk.TreeViewColumn nameColumn = new Gtk.TreeViewColumn(); nameColumn.Title = Catalog.GetString("Name"); Gtk.CellRendererText nameCell = new Gtk.CellRendererText(); nameColumn.PackStart(nameCell, true); Gtk.TreeViewColumn startTimeColumn = new Gtk.TreeViewColumn(); startTimeColumn.Title = Catalog.GetString("Lead Time"); Gtk.CellRendererText startTimeCell = new Gtk.CellRendererText(); startTimeColumn.PackStart(startTimeCell, true); Gtk.TreeViewColumn stopTimeColumn = new Gtk.TreeViewColumn(); stopTimeColumn.Title = Catalog.GetString("Lag Time"); Gtk.CellRendererText stopTimeCell = new Gtk.CellRendererText(); stopTimeColumn.PackStart(stopTimeCell, true); Gtk.TreeViewColumn colorColumn = new Gtk.TreeViewColumn(); colorColumn.Title = Catalog.GetString("Color"); Gtk.CellRendererText colorCell = new Gtk.CellRendererText(); colorColumn.PackStart(colorCell, true); Gtk.TreeViewColumn hotKeyColumn = new Gtk.TreeViewColumn(); hotKeyColumn.Title = Catalog.GetString("Hotkey"); Gtk.CellRendererText hotKeyCell = new Gtk.CellRendererText(); hotKeyColumn.PackStart(hotKeyCell, true); Gtk.TreeViewColumn sortMethodColumn = new Gtk.TreeViewColumn(); sortMethodColumn.Title = Catalog.GetString("Sort Method"); Gtk.CellRendererText sortMethodCell = new Gtk.CellRendererText(); sortMethodColumn.PackStart(sortMethodCell, true); nameColumn.SetCellDataFunc(nameCell, new Gtk.TreeCellDataFunc(RenderName)); startTimeColumn.SetCellDataFunc(startTimeCell, new Gtk.TreeCellDataFunc(RenderStartTime)); stopTimeColumn.SetCellDataFunc(stopTimeCell, new Gtk.TreeCellDataFunc(RenderStopTime)); colorColumn.SetCellDataFunc(colorCell, new Gtk.TreeCellDataFunc(RenderColor)); hotKeyColumn.SetCellDataFunc(hotKeyCell, new Gtk.TreeCellDataFunc(RenderHotKey)); sortMethodColumn.SetCellDataFunc(sortMethodCell, new Gtk.TreeCellDataFunc(RenderSortMethod)); AppendColumn(nameColumn); AppendColumn(startTimeColumn); AppendColumn(stopTimeColumn); AppendColumn(colorColumn); AppendColumn(hotKeyColumn); AppendColumn(sortMethodColumn); } private void RenderName(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { SectionsTimeNode tNode = (SectionsTimeNode) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = tNode.Name; } private void RenderStartTime(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { SectionsTimeNode tNode = (SectionsTimeNode) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text =tNode.Start.Seconds.ToString(); } private void RenderStopTime(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { SectionsTimeNode tNode = (SectionsTimeNode) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = tNode.Stop.Seconds.ToString(); } private void RenderColor(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { SectionsTimeNode tNode = (SectionsTimeNode) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).CellBackgroundGdk = tNode.Color; } private void RenderHotKey(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { SectionsTimeNode tNode = (SectionsTimeNode) Model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = tNode.HotKey.ToString(); } private void RenderSortMethod(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { SectionsTimeNode tNode = (SectionsTimeNode) Model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = tNode.SortMethodString; } protected virtual void OnSelectionChanged(object o, System.EventArgs e) { TreeIter iter; List list; TreePath[] pathArray; list = new List(); pathArray = Selection.GetSelectedRows(); for (int i=0; i< pathArray.Length; i++){ Model.GetIterFromString (out iter, pathArray[i].ToString()); list.Add((SectionsTimeNode) Model.GetValue(iter, 0)); } if (SectionsSelected != null) SectionsSelected(list); } protected virtual void OnTreeviewRowActivated(object o, Gtk.RowActivatedArgs args) { Gtk.TreeIter iter; Model.GetIter(out iter, args.Path); SectionsTimeNode tNode = (SectionsTimeNode)Model.GetValue(iter, 0); if (SectionClicked != null) SectionClicked(tNode); } } }longomatch-0.16.8/LongoMatch/Gui/TreeView/PlayListTreeView.cs0000644000175000017500000001201011601631101020716 00000000000000// PlayListTreeView.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gtk; using Gdk; using Mono.Unix; using LongoMatch.TimeNodes; using LongoMatch.Playlist; using LongoMatch.Handlers; using LongoMatch.Gui.Dialog; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public class PlayListTreeView : Gtk.TreeView { private Menu menu; private MenuItem setRate; private ListStore ls; private PlayList playlist; private PlayListTimeNode loadedTimeNode = null; //The play currently loaded in the player private PlayListTimeNode selectedTimeNode = null; //The play selected in the tree private TreeIter selectedIter; public event ApplyCurrentRateHandler ApplyCurrentRate; public PlayListTreeView() { this.HeadersVisible = false; ls = new ListStore(typeof(PlayListTimeNode)); this.Model = ls; menu = new Menu(); MenuItem title = new MenuItem(Catalog.GetString("Edit Title")); title.Activated += new EventHandler(OnTitle); title.Show(); MenuItem delete = new MenuItem(Catalog.GetString("Delete")); delete.Activated += new EventHandler(OnDelete); delete.Show(); setRate = new MenuItem(Catalog.GetString("Apply current play rate")); setRate.Activated += new EventHandler(OnApplyRate); setRate.Show(); menu.Append(title); menu.Append(setRate); menu.Append(delete); Gtk.TreeViewColumn nameColumn = new Gtk.TreeViewColumn(); nameColumn.Title = Catalog.GetString("Name"); Gtk.CellRendererText nameCell = new Gtk.CellRendererText(); nameColumn.PackStart(nameCell, true); nameColumn.SetCellDataFunc(nameCell, new Gtk.TreeCellDataFunc(RenderName)); this.AppendColumn(nameColumn); } public PlayList PlayList { set { this.playlist = value; } } public PlayListTimeNode LoadedPlay { set { loadedTimeNode = value; this.QueueDraw(); } } ~PlayListTreeView() { } protected override bool OnButtonPressEvent(EventButton evnt) { if ((evnt.Type == EventType.ButtonPress) && (evnt.Button == 3)) { TreePath path; GetPathAtPos((int)evnt.X,(int)evnt.Y,out path); if (path!=null) { ListStore list = ((ListStore)Model); Model.GetIter(out selectedIter,path); selectedTimeNode = (PlayListTimeNode)(list.GetValue(selectedIter,0)); setRate.Sensitive = selectedTimeNode == loadedTimeNode; menu.Popup(); } } return base.OnButtonPressEvent(evnt); } protected void OnTitle(object o, EventArgs args) { EntryDialog ed = new EntryDialog(); ed.Title = Catalog.GetString("Edit Title"); ed.Text = selectedTimeNode.Name; if (ed.Run() == (int)ResponseType.Ok) { selectedTimeNode.Name = ed.Text; this.QueueDraw(); } ed.Destroy(); } protected void OnDelete(object obj, EventArgs args) { ListStore list = ((ListStore)Model); playlist.Remove(selectedTimeNode); list.Remove(ref selectedIter); } protected void OnApplyRate(object obj, EventArgs args) { if (ApplyCurrentRate != null) ApplyCurrentRate(selectedTimeNode); } private void RenderName(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { PlayListTimeNode tNode = (PlayListTimeNode) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = Catalog.GetString("Title")+": "+tNode.Name +"\n"+ Catalog.GetString("Start")+": "+tNode.Start.ToMSecondsString()+Catalog.GetString(" sec")+"\n"+ Catalog.GetString("Duration")+": "+tNode.Duration.ToMSecondsString()+Catalog.GetString(" sec")+"\n"+ Catalog.GetString("Play Rate")+": "+tNode.Rate.ToString(); if (!tNode.Valid) { (cell as Gtk.CellRendererText).Foreground = "red"; (cell as Gtk.CellRendererText).Text += "\n"+Catalog.GetString("File not found")+": "+tNode.MediaFile.FilePath; } else if (tNode == loadedTimeNode) (cell as Gtk.CellRendererText).Foreground = "blue"; else (cell as Gtk.CellRendererText).Foreground = "black"; } protected override bool OnKeyPressEvent (Gdk.EventKey evnt) { return false; } } } longomatch-0.16.8/LongoMatch/Gui/TreeView/ListTreeViewBase.cs0000644000175000017500000003105011601631101020670 00000000000000// // Copyright (C) 2010 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using Gdk; using Gtk; using LongoMatch.Common; using LongoMatch.Handlers; using LongoMatch.TimeNodes; using Mono.Unix; using System; using System.Collections.Generic; namespace LongoMatch.Gui.Component { public abstract class ListTreeViewBase:TreeView { // Plays menu protected Menu menu, teamMenu; protected MenuItem local; protected MenuItem visitor; protected MenuItem noTeam; protected MenuItem tag; protected MenuItem delete; protected MenuItem addPLN; protected MenuItem deleteKeyFrame; protected MenuItem snapshot; protected MenuItem name; protected MenuItem players; protected MenuItem localPlayers; protected MenuItem visitorPlayers; protected Gtk.CellRendererText nameCell; protected Gtk.TreeViewColumn nameColumn; protected Color[] colors; protected String[] teams_name; protected bool editing; protected bool projectIsLive; protected const string LOCAL_TEAM = "Local Team"; protected const string VISITOR_TEAM = "Visitor Team"; public event TimeNodeChangedHandler TimeNodeChanged; public event TimeNodeSelectedHandler TimeNodeSelected; public event TimeNodeDeletedHandler TimeNodeDeleted; public event PlayListNodeAddedHandler PlayListNodeAdded; public event SnapshotSeriesHandler SnapshotSeriesEvent; public event PlayersTaggedHandler PlayersTagged; public event TagPlayHandler TagPlay; public ListTreeViewBase () { Selection.Mode = SelectionMode.Multiple; Selection.SelectFunction = SelectFunction; RowActivated += new RowActivatedHandler(OnTreeviewRowActivated); HeadersVisible = false; SetMenu(); ProjectIsLive = false; PlayListLoaded = false; colors = null; teams_name = new String[3]; teams_name[(int)Team.NONE] = Catalog.GetString(Catalog.GetString("None")); teams_name[(int)Team.LOCAL] = Catalog.GetString(Catalog.GetString(LOCAL_TEAM)); teams_name[(int)Team.VISITOR] = Catalog.GetString(Catalog.GetString(VISITOR_TEAM)); nameColumn = new Gtk.TreeViewColumn(); nameColumn.Title = "Name"; nameCell = new Gtk.CellRendererText(); nameCell.Edited += OnNameCellEdited; Gtk.CellRendererPixbuf miniatureCell = new Gtk.CellRendererPixbuf(); nameColumn.PackStart(nameCell, true); nameColumn.PackEnd(miniatureCell, true); nameColumn.SetCellDataFunc(miniatureCell, new Gtk.TreeCellDataFunc(RenderMiniature)); nameColumn.SetCellDataFunc(nameCell, new Gtk.TreeCellDataFunc(RenderName)); AppendColumn(nameColumn); } public Color[] Colors { set { this.colors = value; } } public bool ProjectIsLive{ set{ projectIsLive = value; addPLN.Visible = !projectIsLive; snapshot.Visible = !projectIsLive; } } public String LocalTeam { set{ Label l1 = (local.Children[0] as Label); Label l2 = (localPlayers.Children[0] as Label); if (value == "") l1.Text = l2.Text = Catalog.GetString(LOCAL_TEAM); else { l1.Text = l2.Text = value; } teams_name[(int)Team.LOCAL] = l1.Text; } } public string VisitorTeam { set{ Label l1 = (visitor.Children[0] as Label); Label l2 = (visitorPlayers.Children[0] as Label); if (value == "") l1.Text = l2.Text = Catalog.GetString(VISITOR_TEAM); else l1.Text = l2.Text = value; teams_name[(int)Team.VISITOR] = l1.Text; } } public bool PlayListLoaded { set { addPLN.Sensitive = value; } } protected void EmitTimeNodeChanged(TimeNode tn, object o){ if (TimeNodeChanged != null) TimeNodeChanged(tn, o); } protected void SetMenu() { Menu playersMenu; MenuItem team; teamMenu = new Menu(); local = new MenuItem(Catalog.GetString(LOCAL_TEAM)); visitor = new MenuItem(Catalog.GetString(VISITOR_TEAM)); noTeam = new MenuItem(Catalog.GetString("No Team")); teamMenu .Append(local); teamMenu .Append(visitor); teamMenu .Append(noTeam); playersMenu = new Menu(); localPlayers = new MenuItem(Catalog.GetString(LOCAL_TEAM)); visitorPlayers = new MenuItem(Catalog.GetString(VISITOR_TEAM)); playersMenu.Append(localPlayers); playersMenu.Append(visitorPlayers); menu = new Menu(); name = new MenuItem(Catalog.GetString("Edit")); team = new MenuItem(Catalog.GetString("Team Selection")); team.Submenu = teamMenu; tag = new MenuItem(Catalog.GetString("Add tag")); players = new MenuItem(Catalog.GetString("Tag player")); players.Submenu = playersMenu; delete = new MenuItem(Catalog.GetString("Delete")); deleteKeyFrame = new MenuItem(Catalog.GetString("Delete key frame")); addPLN = new MenuItem(Catalog.GetString("Add to playlist")); addPLN.Sensitive=false; snapshot = new MenuItem(Catalog.GetString("Export to PGN images")); menu.Append(name); menu.Append(tag); menu.Append(players); menu.Append(team); menu.Append(addPLN); menu.Append(delete); menu.Append(deleteKeyFrame); menu.Append(snapshot); name.Activated += OnEdit; tag.Activated += OnTag; local.Activated += OnTeamSelection; visitor.Activated += OnTeamSelection; noTeam.Activated += OnTeamSelection; localPlayers.Activated += OnLocalPlayers; visitorPlayers.Activated += OnVisitorPlayers; addPLN.Activated += OnAdded; delete.Activated += OnDeleted; deleteKeyFrame.Activated += OnDeleteKeyFrame; snapshot.Activated += OnSnapshot; menu.ShowAll(); } protected void MultiSelectMenu (bool enabled){ name.Sensitive = !enabled; snapshot.Sensitive = !enabled; players.Sensitive = !enabled; tag.Sensitive = !enabled; } protected int GetSectionFromIter(TreeIter iter) { TreePath path = Model.GetPath(iter); return int.Parse(path.ToString().Split(':')[0]); } protected object GetValueFromPath(TreePath path){ Gtk.TreeIter iter; Model.GetIter(out iter, path); return Model.GetValue(iter,0); } protected void RenderMiniature(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { var item = model.GetValue(iter, 0); var c = cell as CellRendererPixbuf; if (item is MediaTimeNode){ c.Pixbuf = (item as MediaTimeNode).Miniature; if (colors !=null) { c.CellBackgroundGdk = colors[GetSectionFromIter(iter)]; } else{ c.CellBackground = "white"; } } else if (item is Player){ c.Pixbuf= (item as Player).Photo; c.CellBackground = "white"; } else { c.Pixbuf = null; c.CellBackground = "white"; } } protected void RenderName(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { object o = model.GetValue(iter, 0); var c = cell as CellRendererText; /* Handle special case in which we replace the text in the cell by the name of the TimeNode * We need to check if we are editing and only change it for the path that's currently beeing edited */ if (editing && Selection.IterIsSelected(iter)){ if (o is Player) c.Markup = (o as Player).Name; else c.Markup = (o as TimeNode).Name; return; } if (o is MediaTimeNode){ var mtn = o as MediaTimeNode; /* FIXME: the colors array is set externally and might not match the model!!! */ if (colors !=null) { Color col = colors[GetSectionFromIter(iter)]; c.CellBackgroundGdk = col; c.BackgroundGdk = col; } else{ c.Background = "white"; c.CellBackground = "white"; } c.Markup = mtn.ToString(teams_name[(int)mtn.Team]); }else if (o is Player) { c.Background = "white"; c.CellBackground = "white"; c.Markup = String.Format("{0} ({1})", (o as Player).Name, Model.IterNChildren(iter)); }else if (o is SectionsTimeNode) { c.Background = "white"; c.CellBackground = "white"; c.Markup = String.Format("{0} ({1})", (o as TimeNode).Name, Model.IterNChildren(iter)); } } protected virtual void OnNameCellEdited(object o, Gtk.EditedArgs args) { Gtk.TreeIter iter; object item; Model.GetIter(out iter, new Gtk.TreePath(args.Path)); item = this.Model.GetValue(iter,0); if (item is TimeNode){ (item as TimeNode).Name = args.NewText; EmitTimeNodeChanged((item as TimeNode), args.NewText); }else if (item is Player){ (item as Player).Name = args.NewText; } editing = false; nameCell.Editable=false; } protected virtual void OnTreeviewRowActivated(object o, Gtk.RowActivatedArgs args) { Gtk.TreeIter iter; this.Model.GetIter(out iter, args.Path); object item = this.Model.GetValue(iter, 0); if (!(item is MediaTimeNode)) return; if (TimeNodeSelected != null && !projectIsLive) this.TimeNodeSelected(item as MediaTimeNode); } protected void OnDeleted(object obj, EventArgs args) { if (TimeNodeDeleted == null) return; List list = new List(); TreePath[] paths = Selection.GetSelectedRows(); for (int i=0; i 1){ MultiSelectMenu(true); menu.Popup(); } } else base.OnButtonPressEvent(evnt); return true; } override protected bool SelectFunction(TreeSelection selection, TreeModel model, TreePath path, bool selected){ return true; } override protected bool OnKeyPressEvent (Gdk.EventKey evnt) { return false; } } } longomatch-0.16.8/LongoMatch/Gui/TreeView/PlayerPropertiesTreeView.cs0000644000175000017500000001554711601631101022510 00000000000000// TreeWidgetPopup.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gdk; using Gtk; using Mono.Unix; using LongoMatch.Handlers; using LongoMatch.TimeNodes; namespace LongoMatch.Gui.Component { public delegate void PlayerPropertiesHandler(Player player); [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public class PlayerPropertiesTreeView : Gtk.TreeView { public event PlayerPropertiesHandler PlayerClicked; public event PlayerPropertiesHandler PlayerSelected; public PlayerPropertiesTreeView() { RowActivated += OnTreeviewRowActivated; Gtk.TreeViewColumn photoColumn = new Gtk.TreeViewColumn(); photoColumn.Title = Catalog.GetString("Photo"); Gtk.CellRendererPixbuf photoCell = new Gtk.CellRendererPixbuf(); photoColumn.PackStart(photoCell, true); Gtk.TreeViewColumn nameColumn = new Gtk.TreeViewColumn(); nameColumn.Title = Catalog.GetString("Name"); Gtk.CellRendererText nameCell = new Gtk.CellRendererText(); nameColumn.PackStart(nameCell, true); Gtk.TreeViewColumn playsColumn = new Gtk.TreeViewColumn(); playsColumn.Title = Catalog.GetString("Play this match"); Gtk.CellRendererText playCell = new Gtk.CellRendererText(); playsColumn.PackStart(playCell, true); Gtk.TreeViewColumn birthdayColumn = new Gtk.TreeViewColumn(); birthdayColumn.Title = Catalog.GetString("Date of Birth"); Gtk.CellRendererText birthdayCell = new Gtk.CellRendererText(); birthdayColumn.PackStart(birthdayCell, true); Gtk.TreeViewColumn nationColumn = new Gtk.TreeViewColumn(); nationColumn.Title = Catalog.GetString("Nationality"); Gtk.CellRendererText nationCell = new Gtk.CellRendererText(); nationColumn.PackStart(nationCell, true); Gtk.TreeViewColumn heightColumn = new Gtk.TreeViewColumn(); heightColumn.Title = Catalog.GetString("Height"); Gtk.CellRendererText heightCell = new Gtk.CellRendererText(); heightColumn.PackStart(heightCell, true); Gtk.TreeViewColumn weightColumn = new Gtk.TreeViewColumn(); weightColumn.Title = Catalog.GetString("Weight"); Gtk.CellRendererText weightCell = new Gtk.CellRendererText(); weightColumn.PackStart(weightCell, true); Gtk.TreeViewColumn positionColumn = new Gtk.TreeViewColumn(); positionColumn.Title = Catalog.GetString("Position"); Gtk.CellRendererText positionCell = new Gtk.CellRendererText(); positionColumn.PackStart(positionCell, true); Gtk.TreeViewColumn numberColumn = new Gtk.TreeViewColumn(); numberColumn.Title = Catalog.GetString("Number"); Gtk.CellRendererText numberCell = new Gtk.CellRendererText(); numberColumn.PackStart(numberCell, true); photoColumn.SetCellDataFunc(photoCell, new Gtk.TreeCellDataFunc(RenderPhoto)); nameColumn.SetCellDataFunc(nameCell, new Gtk.TreeCellDataFunc(RenderName)); playsColumn.SetCellDataFunc(playCell, new Gtk.TreeCellDataFunc(RenderPlay)); nationColumn.SetCellDataFunc(nationCell, new Gtk.TreeCellDataFunc(RenderNationality)); positionColumn.SetCellDataFunc(positionCell, new Gtk.TreeCellDataFunc(RenderPosition)); numberColumn.SetCellDataFunc(numberCell, new Gtk.TreeCellDataFunc(RenderNumber)); heightColumn.SetCellDataFunc(heightCell, new Gtk.TreeCellDataFunc(RenderHeight)); weightColumn.SetCellDataFunc(weightCell, new Gtk.TreeCellDataFunc(RenderWeight)); birthdayColumn.SetCellDataFunc(birthdayCell, new Gtk.TreeCellDataFunc(RenderBirthday)); AppendColumn(photoColumn); AppendColumn(nameColumn); AppendColumn(playsColumn); AppendColumn(numberColumn); AppendColumn(positionColumn); AppendColumn(heightColumn); AppendColumn(weightColumn); AppendColumn(birthdayColumn); AppendColumn(nationColumn); } private void RenderPhoto(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { Player player = (Player) model.GetValue(iter, 0); (cell as Gtk.CellRendererPixbuf).Pixbuf = player.Photo; } private void RenderName(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { Player player = (Player) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = player.Name; } private void RenderPlay(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { Player player = (Player) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = player.Discarded ? Catalog.GetString("No") : Catalog.GetString("Yes"); } private void RenderNationality(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { Player player = (Player) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = player.Nationality; } private void RenderPosition(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { Player player = (Player) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = player.Position; } private void RenderNumber(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { Player player = (Player) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = player.Number.ToString(); } private void RenderHeight(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { Player player = (Player) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = player.Height.ToString(); } private void RenderWeight(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { Player player = (Player) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = player.Weight.ToString(); } private void RenderBirthday(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { Player player = (Player) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = player.Birthday.ToShortDateString(); } protected virtual void OnTreeviewRowActivated(object o, Gtk.RowActivatedArgs args) { Gtk.TreeIter iter; Model.GetIter(out iter, args.Path); Player player = (Player) Model.GetValue(iter, 0); if (PlayerClicked != null) PlayerClicked(player); } } }longomatch-0.16.8/LongoMatch/Gui/MainWindow.cs0000644000175000017500000005006711601631101016042 00000000000000// MainWindow.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using Gdk; using GLib; using Gtk; using LongoMatch.Common; using LongoMatch.DB; using LongoMatch.Gui.Dialog; using LongoMatch.Handlers; using LongoMatch.TimeNodes; using LongoMatch.Utils; using LongoMatch.Video.Capturer; using LongoMatch.Video.Common; using LongoMatch.Video.Player; using LongoMatch.Video.Utils; using Mono.Unix; using System; using System.IO; using System.Reflection; namespace LongoMatch.Gui { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(false)] public partial class MainWindow : Gtk.Window { private static Project openedProject; private ProjectType projectType; private TimeNode selectedTimeNode; private EventsManager eManager; private HotKeysManager hkManager; private KeyPressEventHandler hotkeysListener; #region Constructors public MainWindow() : base("LongoMatch") { this.Build(); /*Updater updater = new Updater(); A updater.NewVersion += new LongoMatch.Handlers.NewVersionHandler(OnUpdate); updater.Run();*/ projectType = ProjectType.None; eManager = new EventsManager(treewidget1, localplayerslisttreewidget, visitorplayerslisttreewidget, tagstreewidget1, buttonswidget1, playlistwidget2, playerbin1, timelinewidget1, videoprogressbar, noteswidget1, capturerBin); hkManager = new HotKeysManager(); // Listenning only when a project is loaded hotkeysListener = new KeyPressEventHandler(hkManager.KeyListener); // Forward the event to the events manager hkManager.newMarkEvent += new NewMarkEventHandler(eManager.OnNewMark); DrawingManager dManager = new DrawingManager(drawingtoolbox1,playerbin1.VideoWidget); //Forward Key and Button events to the Drawing Manager KeyPressEvent += new KeyPressEventHandler(dManager.OnKeyPressEvent); playerbin1.SetLogo(System.IO.Path.Combine(MainClass.ImagesDir(),"background.png")); playerbin1.LogoMode = true; capturerBin.Visible = false; capturerBin.Logo = System.IO.Path.Combine(MainClass.ImagesDir(),"background.png"); capturerBin.CaptureFinished += delegate { CloseCaptureProject();}; buttonswidget1.Mode = TagMode.Predifined; playlistwidget2.SetPlayer(playerbin1); localplayerslisttreewidget.Team = Team.LOCAL; visitorplayerslisttreewidget.Team = Team.VISITOR; } #endregion #region Private Methods private void SetProject (Project project, ProjectType projectType, CapturePropertiesStruct props) { bool isLive = false; if (project == null) return; if (openedProject != null) CloseOpenedProject (true); openedProject = project; this.projectType = projectType; eManager.OpenedProject = project; eManager.OpenedProjectType = projectType; /* Update tabs labels */ /* FIXME 1.0: Teams should have default names */ if (project.VisitorName == "") visitorteamlabel.Text = Catalog.GetString("Visitor Team"); else visitorteamlabel.Text = project.VisitorName; if (project.LocalName == "") localteamlabel.Text = Catalog.GetString("Local Team"); else localteamlabel.Text = project.LocalName; if (projectType == ProjectType.FileProject) { // Check if the file associated to the project exists if (!File.Exists (project.File.FilePath)) { MessagePopup.PopupMessage (this, MessageType.Warning, Catalog.GetString ("The file associated to this project doesn't exist.") + "\n" + Catalog.GetString ("If the location of the file has changed try to edit it with the database manager.")); CloseOpenedProject (true); return; } Title = System.IO.Path.GetFileNameWithoutExtension (project.File.FilePath) + " - " + Constants.SOFTWARE_NAME; try { playerbin1.Open (project.File.FilePath); } catch (GLib.GException ex) { MessagePopup.PopupMessage (this, MessageType.Error, Catalog.GetString ("An error occurred opening this project:") + "\n" + ex.Message); CloseOpenedProject (true); return; } playerbin1.LogoMode = false; timelinewidget1.Project = project; } else { Title = Constants.SOFTWARE_NAME; isLive = true; if (projectType == ProjectType.CaptureProject) { capturerBin.CaptureProperties = props; try { capturerBin.Type = CapturerType.Live; } catch (Exception ex) { MessagePopup.PopupMessage (this, MessageType.Error, ex.Message); CloseOpenedProject (false); return; } } else capturerBin.Type = CapturerType.Fake; playerbin1.Visible = false; capturerBin.Visible = true; capturerBin.Run (); CaptureModeAction.Active = true; } treewidget1.ProjectIsLive = isLive; localplayerslisttreewidget.ProjectIsLive = isLive; visitorplayerslisttreewidget.ProjectIsLive = isLive; tagstreewidget1.ProjectIsLive = isLive; playlistwidget2.Stop(); treewidget1.Project=project; localplayerslisttreewidget.SetTeam(project.LocalTeamTemplate,project.GetLocalTeamModel()); visitorplayerslisttreewidget.SetTeam(project.VisitorTeamTemplate,project.GetVisitorTeamModel()); tagstreewidget1.Project = project; buttonswidget1.Sections = project.Sections; hkManager.Sections=project.Sections; KeyPressEvent += hotkeysListener; MakeActionsSensitive(true,projectType); ShowWidgets(); } private void SaveCaptureProject(){ PreviewMediaFile file; Project newProject = openedProject; string filePath = openedProject.File.FilePath; MessageDialog md = new MessageDialog((Gtk.Window)this.Toplevel, DialogFlags.Modal, MessageType.Info, ButtonsType.None, Catalog.GetString("Loading newly created project...")); md.Show(); /* scan the new file to build a new PreviewMediaFile with all the metadata */ try{ file = PreviewMediaFile.GetMediaFile(filePath); openedProject.File = file; MainClass.DB.AddProject(openedProject); } catch (Exception ex){ string projectFile = filePath + "-" + DateTime.Now; projectFile = projectFile.Replace("-", "_"); projectFile = projectFile.Replace(" ", "_"); projectFile = projectFile.Replace(":", "_"); Project.Export(openedProject, projectFile); MessagePopup.PopupMessage(this, MessageType.Error, Catalog.GetString("An error occured saving the project:\n")+ex.Message+ "\n\n"+ Catalog.GetString("The video file and a backup of the project has been "+ "saved. Try to import it later:\n")+ filePath+"\n"+projectFile); } /* we need to set the opened project to null to avoid calling again CloseOpendProject() */ openedProject = null; SetProject(newProject, ProjectType.FileProject, new CapturePropertiesStruct()); md.Destroy(); } private void CloseCaptureProject (){ if (projectType == ProjectType.CaptureProject){ capturerBin.Close(); playerbin1.Visible = true; capturerBin.Visible = false;; SaveCaptureProject(); } else if (projectType == ProjectType.FakeCaptureProject){ CloseOpenedProject(true); } } private void CloseOpenedProject(bool save) { if (save) SaveProject(); if (projectType != ProjectType.FileProject) capturerBin.Close(); else playerbin1.Close(); if (openedProject != null) openedProject.Clear(); openedProject = null; projectType = ProjectType.None; eManager.OpenedProject = null; eManager.OpenedProjectType = ProjectType.None; ResetGUI(); } private void ResetGUI(){ bool playlistVisible = playlistwidget2.Visible; Title = Constants.SOFTWARE_NAME; playerbin1.Visible = true; playerbin1.LogoMode = true; capturerBin.Visible = false; ClearWidgets(); HideWidgets(); playlistwidget2.Visible = playlistVisible; rightvbox.Visible = playlistVisible; noteswidget1.Visible = false; selectedTimeNode = null; MakeActionsSensitive(false, projectType); hkManager.Sections = null; KeyPressEvent -= hotkeysListener; } private void MakeActionsSensitive(bool sensitive, ProjectType projectType) { bool sensitive2 = sensitive && projectType == ProjectType.FileProject; CloseProjectAction.Sensitive=sensitive; SaveProjectAction.Sensitive = sensitive; CaptureModeAction.Sensitive = sensitive2; FreeCaptureModeAction.Sensitive = sensitive2; AnalyzeModeAction.Sensitive = sensitive2; ExportProjectToCSVFileAction.Sensitive = sensitive2; HideAllWidgetsAction.Sensitive=sensitive2; } private void ShowWidgets() { leftbox.Show(); if (CaptureModeAction.Active || FreeCaptureModeAction.Active) buttonswidget1.Show(); else timelinewidget1.Show(); } private void HideWidgets() { leftbox.Hide(); rightvbox.Hide(); buttonswidget1.Hide(); timelinewidget1.Hide(); } private void ClearWidgets() { buttonswidget1.Sections = null; treewidget1.Project = null; tagstreewidget1.Clear(); timelinewidget1.Project = null; localplayerslisttreewidget.Clear(); visitorplayerslisttreewidget.Clear(); } private void SaveProject() { if (openedProject != null && projectType == ProjectType.FileProject) { try { MainClass.DB.UpdateProject(openedProject); } catch (Exception e){ /* FIXME: Do log error */ } } else if (projectType == ProjectType.FakeCaptureProject) ProjectUtils.SaveFakeLiveProject(openedProject, this); } private bool PromptCloseProject(){ int res; EndCaptureDialog dialog; if (openedProject == null) return true; if (projectType == ProjectType.FileProject){ MessageDialog md = new MessageDialog(this, DialogFlags.Modal, MessageType.Question, ButtonsType.OkCancel, Catalog.GetString("Do you want to close the current project?")); res = md.Run(); md.Destroy(); if (res == (int)ResponseType.Ok){ CloseOpenedProject(true); return true; } return false; } dialog = new EndCaptureDialog(); dialog.TransientFor = (Gtk.Window)this.Toplevel; res = dialog.Run(); dialog.Destroy(); /* Close project wihtout saving */ if (res == (int)EndCaptureResponse.Quit){ CloseOpenedProject(false); return true; } else if (res == (int)EndCaptureResponse.Save){ /* Close and save project */ CloseOpenedProject(true); return true; } else /* Continue with the current project */ return false; } private void CloseAndQuit(){ if (!PromptCloseProject()) return; playlistwidget2.StopEdition(); SaveProject(); playerbin1.Dispose(); Application.Quit(); } #endregion #region Callbacks #region File protected virtual void OnNewActivated(object sender, System.EventArgs e) { Project project; ProjectType projectType; CapturePropertiesStruct captureProps; if (!PromptCloseProject()) return; ProjectUtils.CreateNewProject(this, out project, out projectType, out captureProps); if (project != null) SetProject(project, projectType, captureProps); } protected virtual void OnOpenActivated(object sender, System.EventArgs e) { if (!PromptCloseProject()) return; ProjectDescription project=null; OpenProjectDialog opd = new OpenProjectDialog(); opd.TransientFor = this; if (opd.Run() == (int)ResponseType.Ok) project = opd.SelectedProject; opd.Destroy(); if (project != null) SetProject(MainClass.DB.GetProject(project.File), ProjectType.FileProject, new CapturePropertiesStruct()); } protected virtual void OnSaveProjectActionActivated(object sender, System.EventArgs e) { SaveProject(); } protected virtual void OnCloseActivated(object sender, System.EventArgs e) { PromptCloseProject(); } protected virtual void OnImportProjectActionActivated (object sender, System.EventArgs e) { ProjectUtils.ImportProject(this); } protected virtual void OnQuitActivated(object sender, System.EventArgs e) { CloseAndQuit(); } #endregion #region Tools protected virtual void OnDatabaseManagerActivated(object sender, System.EventArgs e) { ProjectsManager pm = new ProjectsManager(openedProject); pm.TransientFor = this; pm.Show(); } protected virtual void OnSectionsTemplatesManagerActivated(object sender, System.EventArgs e) { TemplatesManager tManager = new TemplatesManager(TemplatesManager.UseType.SectionsTemplate); tManager.TransientFor = this; tManager.Show(); } protected virtual void OnTeamsTemplatesManagerActionActivated(object sender, System.EventArgs e) { TemplatesManager tManager = new TemplatesManager(TemplatesManager.UseType.TeamTemplate); tManager.TransientFor = this; tManager.Show(); } protected virtual void OnExportProjectToCSVFileActionActivated(object sender, System.EventArgs e) { ProjectUtils.ExportToCSV(this, openedProject); } #endregion #region View protected virtual void OnFullScreenActionToggled(object sender, System.EventArgs e) { playerbin1.FullScreen = ((Gtk.ToggleAction)sender).Active; } protected virtual void OnPlaylistActionToggled(object sender, System.EventArgs e) { bool visible = ((Gtk.ToggleAction)sender).Active; playlistwidget2.Visible=visible; treewidget1.PlayListLoaded=visible; localplayerslisttreewidget.PlayListLoaded=visible; visitorplayerslisttreewidget.PlayListLoaded=visible; if (!visible && !noteswidget1.Visible) { rightvbox.Visible = false; } else if (visible) { rightvbox.Visible = true; } } protected virtual void OnHideAllWidgetsActionToggled(object sender, System.EventArgs e) { if (openedProject != null) { leftbox.Visible = !((Gtk.ToggleAction)sender).Active; timelinewidget1.Visible = !((Gtk.ToggleAction)sender).Active && AnalyzeModeAction.Active; buttonswidget1.Visible = !((Gtk.ToggleAction)sender).Active && (CaptureModeAction.Active || CaptureModeAction.Active); if (((Gtk.ToggleAction)sender).Active) rightvbox.Visible = false; else if (!((Gtk.ToggleAction)sender).Active && (playlistwidget2.Visible || noteswidget1.Visible)) rightvbox.Visible = true; } } protected virtual void OnViewToggled(object sender, System.EventArgs e) { /* this callback is triggered by Capture and Free Capture */ ToggleAction view = (Gtk.ToggleAction)sender; buttonswidget1.Visible = view.Active; timelinewidget1.Visible = !view.Active; if (view == FreeCaptureModeAction) buttonswidget1.Mode = TagMode.Free; else buttonswidget1.Mode = TagMode.Predifined; } #endregion #region Help protected virtual void OnHelpAction1Activated(object sender, System.EventArgs e) { try { System.Diagnostics.Process.Start(Constants.MANUAL); } catch {} } protected virtual void OnAboutActionActivated(object sender, System.EventArgs e) { Version version = Assembly.GetExecutingAssembly().GetName().Version; Gtk.AboutDialog about = new AboutDialog(); if (Environment.OSVersion.Platform == PlatformID.Unix) about.ProgramName = Constants.SOFTWARE_NAME; about.Version = String.Format("{0}.{1}.{2}",version.Major,version.Minor,version.Build); about.Copyright = Constants.COPYRIGHT; about.Website = Constants.WEBSITE; about.License = Constants.LICENSE; about.Authors = new string[] {"Andoni Morales Alastruey"}; about.Artists = new string[] {"Bencomo González Marrero"}; about.TranslatorCredits = Constants.TRANSLATORS; about.TransientFor = this; Gtk.AboutDialog.SetUrlHook(delegate(AboutDialog dialog,string url) { try { System.Diagnostics.Process.Start(url); } catch {} }); about.Run(); about.Destroy(); } #endregion protected virtual void OnTimeprecisionadjustwidget1SizeRequested(object o, Gtk.SizeRequestedArgs args) { if (args.Requisition.Width>= hpaned.Position) hpaned.Position = args.Requisition.Width; } protected virtual void OnPlayerbin1Error(object o, ErrorArgs args) { MessagePopup.PopupMessage(this, MessageType.Info, Catalog.GetString("The actual project will be closed due to an error in the media player:")+"\n" +args.Message); CloseOpenedProject(true); } protected override bool OnKeyPressEvent(EventKey evnt) { Gdk.Key key = evnt.Key; Gdk.ModifierType modifier = evnt.State; bool ret; ret = base.OnKeyPressEvent(evnt); if (openedProject == null && !playerbin1.Opened) return ret; if (projectType != ProjectType.CaptureProject && projectType != ProjectType.FakeCaptureProject){ switch (key){ case Constants.SEEK_FORWARD: if (modifier == Constants.STEP) playerbin1.StepForward(); else playerbin1.SeekToNextFrame(selectedTimeNode != null); break; case Constants.SEEK_BACKWARD: if (modifier == Constants.STEP) playerbin1.StepBackward(); else playerbin1.SeekToPreviousFrame(selectedTimeNode != null); break; case Constants.FRAMERATE_UP: playerbin1.FramerateUp(); break; case Constants.FRAMERATE_DOWN: playerbin1.FramerateDown(); break; case Constants.TOGGLE_PLAY: playerbin1.TogglePlay(); break; } } else { switch (key){ case Constants.TOGGLE_PLAY: capturerBin.TogglePause(); break; } } return ret; } protected virtual void OnTimeNodeSelected(LongoMatch.TimeNodes.MediaTimeNode tNode) { rightvbox.Visible=true; } protected virtual void OnSegmentClosedEvent() { if (!playlistwidget2.Visible) rightvbox.Visible=false; } protected virtual void OnUpdate(Version version, string URL) { LongoMatch.Gui.Dialog.UpdateDialog updater = new LongoMatch.Gui.Dialog.UpdateDialog(); updater.Fill(version, URL); updater.TransientFor = this; updater.Run(); updater.Destroy(); } protected virtual void OnDrawingToolActionToggled(object sender, System.EventArgs e) { drawingtoolbox1.Visible = DrawingToolAction.Active; drawingtoolbox1.DrawingVisibility = DrawingToolAction.Active; } protected override bool OnDeleteEvent (Gdk.Event evnt) { CloseAndQuit(); return true; } protected virtual void OnCapturerBinError (object o, ErrorArgs args) { MessagePopup.PopupMessage(this, MessageType.Info, Catalog.GetString("An error occured in the video capturer and the current project will be closed:")+"\n" +args.Message); CloseOpenedProject(true); } #endregion } } longomatch-0.16.8/LongoMatch/Gui/TransparentDrawingArea.cs0000644000175000017500000001573211601631101020374 00000000000000// Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gdk; using Gtk; using Cairo; namespace LongoMatch.Gui.Popup { [System.ComponentModel.ToolboxItem(true)] public partial class TransparentDrawingArea : Gtk.Window { //Pixmpas and shapes private Pixmap pixmap; private Pixmap shape; private Gdk.GC shapeGC; private Gdk.Color transparent; private Gdk.Color opaque; //Mouse motion private double lastx=-1; private double lasty=-1; //Reshaping timeout private uint timeoutId; //Status private bool modified; private bool hardGrab; //Drawing Properties private Gdk.Color foreground; private int lineWidth; //"Parent" Widget we want to draw over private Widget targetWidget; public TransparentDrawingArea(Widget targetWidget):base(Gtk.WindowType.Toplevel) { this.Build(); ExtensionEvents = ExtensionMode.All; Gdk.Color.Parse("red",ref foreground); LineColor=foreground; lineWidth = 6; modified = false; this.targetWidget = targetWidget; } public int LineWidth { set { lineWidth = value; } } public Gdk.Color LineColor { set { foreground = value; } } public void ToggleGrab() { if (hardGrab) ReleaseGrab(); else AcquireGrab(); } public void ReleaseGrab() { if (hardGrab) { hardGrab=false; Pointer.Ungrab(Gtk.Global.CurrentEventTime); } } public void AcquireGrab() { GrabStatus stat; if (!hardGrab) { stat =Pointer.Grab(drawingarea.GdkWindow, false, EventMask.ButtonMotionMask | EventMask.ButtonPressMask | EventMask.ButtonReleaseMask, targetWidget.GdkWindow, new Gdk.Cursor(Gdk.CursorType.Pencil) /* data->paint_cursor */, Gtk.Global.CurrentEventTime); if (stat == GrabStatus.Success) { hardGrab=true; } } } public void ToggleVisibility() { Visible = !Visible; } public void Clear() { //Clear shape shapeGC.Foreground = transparent; shape.DrawRectangle(shapeGC,true, 0, 0,Allocation.Width, Allocation.Height); shapeGC.Background=opaque; ShapeCombineMask(shape, 0,0); //Clear pixmap pixmap.DrawRectangle(drawingarea.Style.BlackGC,true, 0, 0, Allocation.Width, Allocation.Height); } private bool Reshape() { if (modified) { ShapeCombineMask(shape, 0,0); modified = false; } return true; } private void CreatePixmaps() { GCValues shapeGCV; //Create a 1 depth pixmap used as a shape //that will contain the info about transparency shape = new Pixmap(null,Gdk.Screen.Default.Width,Gdk.Screen.Default.Height,1); shapeGC = new Gdk.GC(shape); shapeGCV = new GCValues(); shapeGC.GetValues(shapeGCV); transparent = shapeGCV.Foreground; opaque = shapeGCV.Background; shapeGC.Foreground = transparent; shape.DrawRectangle(shapeGC,true,0,0,Gdk.Screen.Default.Width,Gdk.Screen.Default.Height); shapeGC.Background=opaque; ShapeCombineMask(shape, 0,0); //Create the pixmap that will contain the real drawing //Used on Expose event to redraw the drawing area pixmap = new Pixmap(drawingarea.GdkWindow,Gdk.Screen.Default.Width,Gdk.Screen.Default.Height); pixmap.DrawRectangle(drawingarea.Style.BlackGC,true,0,0,Gdk.Screen.Default.Width,Gdk.Screen.Default.Height); } private void DrawCairoLine(Context c, int x1, int y1, int x2, int y2,Gdk.Color color) { c.Color = new Cairo.Color(color.Red, color.Green, color.Blue, 1); c.MoveTo(x1, y1); c.LineTo(x2, y2); c.LineWidth = lineWidth; c.LineCap = LineCap.Round; c.LineJoin = LineJoin.Round; c.Stroke(); c.Fill(); } private void DrawLine(int x1, int y1, int x2, int y2) { Cairo.Rectangle rect = new Cairo.Rectangle(Math.Min(x1,x2) - lineWidth / 2, Math.Min(y1,y2) - lineWidth / 2, Math.Abs(x1-x2) + lineWidth, Math.Abs(y1-y2) + lineWidth); using(Context c =CairoHelper.Create(drawingarea.GdkWindow)) { c.Color = new Cairo.Color(foreground.Red, foreground.Green, foreground.Blue, 1); c.Rectangle(rect); c.LineWidth = lineWidth; c.LineCap = LineCap.Round; c.LineJoin = LineJoin.Round; c.StrokePreserve(); c.Fill(); } using(Context c =CairoHelper.Create(shape)) { DrawCairoLine(c,x1,y1,x2,y2,opaque); } using(Context c =CairoHelper.Create(pixmap)) { DrawCairoLine(c,x1,y1,x2,y2,foreground); } modified = true; } protected virtual void OnDrawingareaExposeEvent(object o, Gtk.ExposeEventArgs args) { EventExpose evnt = args.Event; drawingarea.GdkWindow.DrawDrawable(drawingarea.Style.ForegroundGCs[(int)drawingarea.State], pixmap, evnt.Area.X, evnt.Area.Y, evnt.Area.X, evnt.Area.Y, evnt.Area.Width, evnt.Area.Height); } protected virtual void OnDrawingareaButtonPressEvent(object o, Gtk.ButtonPressEventArgs args) { if (!hardGrab) return; lastx = args.Event.X; lasty = args.Event.Y; if (args.Event.Button == 1) DrawLine((int)args.Event.X, (int)args.Event.Y,(int) args.Event.X, (int)args.Event.Y); } protected virtual void OnDrawingareaMotionNotifyEvent(object o, Gtk.MotionNotifyEventArgs args) { if (!hardGrab) return; if (lastx==-1 || lasty==-1) { lastx = args.Event.X; lasty = args.Event.Y; } DrawLine((int)lastx, (int)lasty, (int)args.Event.X, (int)args.Event.Y); lastx = args.Event.X; lasty = args.Event.Y; } protected virtual void OnDrawingareaButtonReleaseEvent(object o, Gtk.ButtonReleaseEventArgs args) { drawingarea.QueueDraw(); lastx=-1; lasty=-1; } protected override void OnHidden() { GLib.Source.Remove(timeoutId); base.OnHidden(); } protected override void OnShown() { //Prevent a dirty flash when the //Window is created and hidden if (targetWidget != null) { base.OnShown(); timeoutId = GLib.Timeout.Add(20,Reshape); } } protected virtual void OnDrawingareaConfigureEvent(object o, Gtk.ConfigureEventArgs args) { this.TransientFor = (Gtk.Window)targetWidget.Toplevel; this.Resize(Gdk.Screen.Default.Width,Gdk.Screen.Default.Height); CreatePixmaps(); } } } longomatch-0.16.8/LongoMatch/Gui/Component/0002755000175000017500000000000011601631302015456 500000000000000longomatch-0.16.8/LongoMatch/Gui/Component/TagsTreeWidget.cs0000644000175000017500000001432511601631101020607 00000000000000// TreeWidget.cs // // Copyright(C) 20072009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using Gtk; using Mono.Unix; using LongoMatch.DB; using LongoMatch.Handlers; using LongoMatch.TimeNodes; namespace LongoMatch.Gui.Component { public enum FilterType { OR = 0, AND = 1 } [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class TagsTreeWidget : Gtk.Bin { public event TimeNodeSelectedHandler TimeNodeSelected; public event TimeNodeChangedHandler TimeNodeChanged; public event PlayListNodeAddedHandler PlayListNodeAdded; public event SnapshotSeriesHandler SnapshotSeriesEvent; private TreeModelFilter filter; private ListStore model; private List filterTags; private Project project; private FilterType filterType; private const string orFilter = "'OR' Filter"; private const string andFilter = "'AND' Filter"; public TagsTreeWidget() { this.Build(); filterTags = new List(); model = new Gtk.ListStore(typeof(MediaTimeNode)); filter = new Gtk.TreeModelFilter(model, null); filter.VisibleFunc = new Gtk.TreeModelFilterVisibleFunc(FilterTree); treeview.Model = filter; filtercombobox.InsertText ((int)FilterType.OR, Catalog.GetString(orFilter)); filtercombobox.InsertText ((int)FilterType.AND, Catalog.GetString(andFilter)); filtercombobox.Active = 0; filterType = FilterType.OR; treeview.TimeNodeChanged += OnTimeNodeChanged; treeview.TimeNodeSelected += OnTimeNodeSelected; treeview.PlayListNodeAdded += OnPlayListNodeAdded; treeview.SnapshotSeriesEvent += OnSnapshotSeriesEvent; } public void Clear(){ model.Clear(); filterTags.Clear(); filter.Refilter(); } public void DeletePlay(MediaTimeNode play) { if (project != null) { TreeIter iter; model.GetIterFirst(out iter); while (model.IterIsValid(iter)) { MediaTimeNode mtn = (MediaTimeNode) model.GetValue(iter,0); if (mtn == play) { model.Remove(ref iter); break; } TreeIter prev = iter; model.IterNext(ref iter); if (prev.Equals(iter)) break; } } } public void AddPlay(MediaTimeNode play) { model.AppendValues(play); filter.Refilter(); } public bool ProjectIsLive{ set{ treeview.ProjectIsLive = value; } } public Project Project { set { project = value; if (project != null) { model.Clear(); foreach (List list in project.GetDataArray()){ foreach (MediaTimeNode tNode in list) model.AppendValues(tNode); } UpdateTagsList(); treeview.LocalTeam = value.LocalName; treeview.VisitorTeam = value.VisitorName; } } } public bool PlayListLoaded { set { treeview.PlayListLoaded=value; } } public void UpdateTagsList(){ (tagscombobox.Model as ListStore).Clear(); foreach (Tag tag in project.Tags) tagscombobox.AppendText(tag.Text); } private void AddFilterWidget(Tag tag){ HBox box; Button b; Label l; box = new HBox(); box.Name = tag.Text; b = new Button(); b.Image = new Image(Stetic.IconLoader.LoadIcon(this, "gtk-delete", Gtk.IconSize.Menu)); b.Clicked += OnDeleteClicked; l = new Label(tag.Text); l.Justify = Justification.Left; box.PackEnd(b,false, false, 0); box.PackStart(l,true, true, 0); tagsvbox.PackEnd(box); box.ShowAll(); } protected virtual void OnDeleteClicked (object o, System.EventArgs e){ Widget parent = (o as Widget).Parent; tagscombobox.AppendText(parent.Name); filterTags.Remove(new Tag(parent.Name)); filter.Refilter(); tagsvbox.Remove(parent); } protected virtual void OnAddFilter (object sender, System.EventArgs e) { string text = tagscombobox.ActiveText; if (text == null || text == "") return; Tag tag = new Tag(text); if (!filterTags.Contains(tag)){ filterTags.Add(tag); tagscombobox.RemoveText(tagscombobox.Active); AddFilterWidget(tag); filter.Refilter(); } } protected virtual void OnClearbuttonClicked (object sender, System.EventArgs e) { filterTags.Clear(); filter.Refilter(); foreach (Widget w in tagsvbox.Children) tagsvbox.Remove(w); UpdateTagsList(); } private bool FilterTree(Gtk.TreeModel model, Gtk.TreeIter iter) { MediaTimeNode tNode; if (filterTags.Count == 0) return true; tNode = model.GetValue(iter, 0) as MediaTimeNode; if (tNode == null) return true; if (filterType == FilterType.OR){ foreach (Tag tag in filterTags){ if (tNode.Tags.Contains(tag)) return true; } return false; } else { foreach (Tag tag in filterTags){ if (! tNode.Tags.Contains(tag)) return false; } return true; } } protected virtual void OnTimeNodeChanged(TimeNode tNode,object val) { if (TimeNodeChanged != null) TimeNodeChanged(tNode,val); } protected virtual void OnTimeNodeSelected(MediaTimeNode tNode) { if (TimeNodeSelected != null) TimeNodeSelected(tNode); } protected virtual void OnPlayListNodeAdded(MediaTimeNode tNode) { if (PlayListNodeAdded != null) PlayListNodeAdded(tNode); } protected virtual void OnSnapshotSeriesEvent(LongoMatch.TimeNodes.MediaTimeNode tNode) { if (SnapshotSeriesEvent != null) SnapshotSeriesEvent(tNode); } protected virtual void OnFiltercomboboxChanged (object sender, System.EventArgs e) { filterType = (FilterType) filtercombobox.Active; filter.Refilter(); } } }longomatch-0.16.8/LongoMatch/Gui/Component/NotesWidget.cs0000644000175000017500000000356411601631101020164 00000000000000// NotesWidget.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gtk; using LongoMatch.TimeNodes; using LongoMatch.Handlers; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class NotesWidget : Gtk.Bin { public event TimeNodeChangedHandler TimeNodeChanged; TextBuffer buf; MediaTimeNode play; public NotesWidget() { this.Build(); this.buf = textview1.Buffer; buf.Changed += new EventHandler(OnEdition); } public MediaTimeNode Play { set { play = value; Notes = play.Notes; } } string Notes { set { buf.Clear(); buf.InsertAtCursor(value); } get { return buf.GetText(buf.StartIter,buf.EndIter,true); } } protected virtual void OnEdition(object sender, EventArgs args) { if (Notes != play.Notes) { savebutton.Sensitive = true; } } protected virtual void OnSavebuttonClicked(object sender, System.EventArgs e) { if (play != null) { play.Notes=Notes; if (TimeNodeChanged != null) TimeNodeChanged(play,null); savebutton.Sensitive = false; } } } } longomatch-0.16.8/LongoMatch/Gui/Component/PlayListWidget.cs0000644000175000017500000002312211601631101020625 00000000000000// PlayListWidget.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gtk; using Gdk; using LongoMatch.Video.Editor; using Mono.Unix; using System.IO; using LongoMatch.Handlers; using LongoMatch.TimeNodes; using LongoMatch.Video.Player; using LongoMatch.Video; using LongoMatch.Video.Common; using LongoMatch.Gui; using LongoMatch.Gui.Dialog; using LongoMatch.Playlist; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class PlayListWidget : Gtk.Bin { public event PlayListNodeSelectedHandler PlayListNodeSelected; public event ApplyCurrentRateHandler ApplyCurrentRate; public event ProgressHandler Progress; private PlayerBin player; private PlayListTimeNode plNode; private PlayList playList; private uint timeout; private object lock_node; private bool clock_started = false; private IVideoEditor videoEditor; private MultimediaFactory factory; public PlayListWidget () { this.Build (); lock_node = new System.Object (); factory = new MultimediaFactory (); playlisttreeview1.Reorderable = true; playlisttreeview1.RowActivated += OnPlaylisttreeview1RowActivated; playlisttreeview1.ApplyCurrentRate += OnApplyRate; savebutton.Sensitive = false; newbutton.CanFocus = false; openbutton.CanFocus = false; savebutton.CanFocus = false; newvideobutton.CanFocus = false; closebutton.CanFocus = false; } public void SetPlayer(PlayerBin player) { this.player = player; closebutton.Hide(); newvideobutton.Hide(); } public void Load(string filePath) { try { playList = new PlayList(filePath); Model = playList.GetModel(); label1.Visible = false; newvideobutton.Show(); playlisttreeview1.PlayList = playList; playlisttreeview1.Sensitive = true; savebutton.Sensitive = true; } catch { MessagePopup.PopupMessage(this,MessageType.Error,Catalog.GetString("The file you are trying to load is not a playlist or it's not compatible with the current version")); } } public ListStore Model { set { playlisttreeview1.Model = value; } get { return (ListStore)playlisttreeview1.Model; } } public void Add(PlayListTimeNode plNode) { if (playList!=null) { Model.AppendValues(plNode); playList.Add(plNode); } } public PlayListTimeNode Next() { if (playList.HasNext()) { plNode = playList.Next(); playlisttreeview1.Selection.SelectPath(new TreePath(playList.GetCurrentIndex().ToString())); playlisttreeview1.LoadedPlay = plNode; if (PlayListNodeSelected != null && plNode.Valid) { PlayListNodeSelected(plNode,playList.HasNext()); StartClock(); } else Next(); return plNode; } else { return null; } } public void Prev() { if ((player.AccurateCurrentTime - plNode.Start.MSeconds) < 500) { //Seleccionando el elemento anterior si no han pasado más 500ms if (playList.HasPrev()) { plNode = playList.Prev(); playlisttreeview1.Selection.SelectPath(new TreePath(playList.GetCurrentIndex().ToString())); playlisttreeview1.LoadedPlay = plNode; if (PlayListNodeSelected != null) PlayListNodeSelected(plNode,playList.HasNext()); StartClock(); } } else { //Nos situamos al inicio del segmento player.SeekTo(plNode.Start.MSeconds,true); player.Rate=plNode.Rate; } } public void StopEdition() { if (videoEditor != null) videoEditor.Cancel(); } public void Stop() { StopClock(); } void StartClock() { if (player!=null && !clock_started) { timeout = GLib.Timeout.Add(20,CheckStopTime); clock_started=true; } } private void StopClock() { if (clock_started) { GLib.Source.Remove(timeout); clock_started = false; } } private bool CheckStopTime() { lock (lock_node) { if (player != null) { if (player.AccurateCurrentTime >= plNode.Stop.MSeconds-200) { if (Next() == null) StopClock(); } } return true; } } private PlayListTimeNode SelectPlayListNode(TreePath path) { plNode = playList.Select(Int32.Parse(path.ToString())); if (PlayListNodeSelected != null && plNode.Valid) { PlayListNodeSelected(plNode,playList.HasNext()); StartClock(); } return plNode; } private FileFilter FileFilter { get { FileFilter filter = new FileFilter(); filter.Name = "LGM playlist"; filter.AddPattern("*.lgm"); return filter; } } private void LoadEditor() { videoEditor = factory.getVideoEditor(); videoEditor.Progress += new ProgressHandler(OnProgress); } protected virtual void OnPlaylisttreeview1RowActivated(object o, Gtk.RowActivatedArgs args) { playlisttreeview1.LoadedPlay = SelectPlayListNode(args.Path); } protected virtual void OnSavebuttonClicked(object sender, System.EventArgs e) { if (playList != null) { playList.Save(); } } protected virtual void OnOpenbuttonClicked(object sender, System.EventArgs e) { FileChooserDialog fChooser = new FileChooserDialog(Catalog.GetString("Open playlist"), (Gtk.Window)this.Toplevel, FileChooserAction.Open, "gtk-cancel",ResponseType.Cancel, "gtk-open",ResponseType.Accept); fChooser.SetCurrentFolder(MainClass.PlayListDir()); fChooser.AddFilter(FileFilter); fChooser.DoOverwriteConfirmation = true; if (fChooser.Run() == (int)ResponseType.Accept) Load(fChooser.Filename); fChooser.Destroy(); } protected virtual void OnNewbuttonClicked(object sender, System.EventArgs e) { FileChooserDialog fChooser = new FileChooserDialog(Catalog.GetString("New playlist"), (Gtk.Window)this.Toplevel, FileChooserAction.Save, "gtk-cancel",ResponseType.Cancel, "gtk-save",ResponseType.Accept); fChooser.SetCurrentFolder(MainClass.PlayListDir()); fChooser.AddFilter(FileFilter); if (fChooser.Run() == (int)ResponseType.Accept) Load(fChooser.Filename); fChooser.Destroy(); } protected virtual void OnPlaylisttreeview1DragEnd(object o, Gtk.DragEndArgs args) { playList.SetModel((ListStore)playlisttreeview1.Model); } protected virtual void OnNewvideobuttonClicked(object sender, System.EventArgs e) { VideoEditionProperties vep; int response; if (playList.Count == 0) { MessagePopup.PopupMessage(this,MessageType.Warning, Catalog.GetString("The playlist is empty!")); return; } vep = new VideoEditionProperties(); vep.TransientFor = (Gtk.Window)this.Toplevel; response = vep.Run(); while (response == (int)ResponseType.Ok && vep.Filename == "") { MessagePopup.PopupMessage(this, MessageType.Warning, Catalog.GetString("Please, select a video file.")); response=vep.Run(); } if (response ==(int)ResponseType.Ok) { //FIXME:Create a new instance of the video editor until we fix the audio swith enable/disabled LoadEditor(); //videoEditor.ClearList(); foreach (PlayListTimeNode segment in playList) { if (segment.Valid) videoEditor.AddSegment(segment.MediaFile.FilePath, segment.Start.MSeconds, segment.Duration.MSeconds, segment.Rate, segment.Name, segment.MediaFile.HasAudio); } try { videoEditor.VideoQuality = vep.VideoQuality; videoEditor.AudioQuality = AudioQuality.Good; videoEditor.VideoFormat = vep.VideoFormat; videoEditor.AudioEncoder = vep.AudioEncoderType; videoEditor.VideoEncoder = vep.VideoEncoderType; videoEditor.OutputFile = vep.Filename; videoEditor.EnableTitle = vep.TitleOverlay; videoEditor.EnableAudio = vep.EnableAudio; videoEditor.VideoMuxer = vep.VideoMuxer; videoEditor.Start(); closebutton.Show(); newvideobutton.Hide(); } catch (Exception ex) { MessagePopup.PopupMessage(this, MessageType.Error, Catalog.GetString(ex.Message)); } vep.Destroy(); } } protected virtual void OnClosebuttonClicked(object sender, System.EventArgs e) { videoEditor.Cancel(); closebutton.Hide(); newvideobutton.Show(); } protected virtual void OnProgress(float progress) { if (Progress!= null) Progress(progress); if (progress ==1) { closebutton.Hide(); newvideobutton.Show(); } } protected virtual void OnApplyRate(PlayListTimeNode plNode) { if (ApplyCurrentRate != null) ApplyCurrentRate(plNode); } } } longomatch-0.16.8/LongoMatch/Gui/Component/CategoriesScale.cs0000644000175000017500000000527311601631101020764 00000000000000// // Copyright (C) 2011 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using Cairo; using Gtk; using Gdk; using Pango; using LongoMatch.Common; using LongoMatch.TimeNodes; using LongoMatch.DB; namespace LongoMatch.Gui.Component { public class CategoriesScale: Gtk.DrawingArea { private const int SECTION_HEIGHT = 30; private const int SECTION_WIDTH = 100; private const int LINE_WIDTH = 2; private double scroll; Pango.Layout layout; [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public CategoriesScale () { layout = new Pango.Layout(PangoContext); layout.Wrap = Pango.WrapMode.Char; layout.Alignment = Pango.Alignment.Left; } public Sections Categories { get; set; } public double Scroll { get { return scroll; } set { scroll = value; QueueDraw(); } } private void DrawCairoText (string text, int x1, int y1) { layout.Width = Pango.Units.FromPixels(SECTION_WIDTH - 2); layout.Ellipsize = EllipsizeMode.End; layout.SetMarkup(text); GdkWindow.DrawLayout(Style.TextGC(StateType.Normal), x1 + 2, y1 ,layout); } private void DrawCategories(Gdk.Window win) { int i = 0; if (Categories == null) return; using(Cairo.Context g = Gdk.CairoHelper.Create(win)) { foreach (SectionsTimeNode cat in Categories.SectionsTimeNodes) { int y = LINE_WIDTH/2 + i * SECTION_HEIGHT - (int)Scroll; CairoUtils.DrawRoundedRectangle (g, 2, y + 3 , Allocation.Width - 3, SECTION_HEIGHT - 3, SECTION_HEIGHT/7, CairoUtils.RGBToCairoColor(cat.Color), CairoUtils.RGBToCairoColor(cat.Color)); DrawCairoText (cat.Name, 0 + 3, y + SECTION_HEIGHT / 2 - 5); i++; } } } protected override bool OnExposeEvent(EventExpose evnt) { DrawCategories(evnt.Window); return base.OnExposeEvent(evnt); } } } longomatch-0.16.8/LongoMatch/Gui/Component/PlaysListTreeWidget.cs0000644000175000017500000001155111601631101021633 00000000000000// TreeWidget.cs // // Copyright(C) 20072009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gtk; using Mono.Unix; using LongoMatch.DB; using LongoMatch.Handlers; using LongoMatch.TimeNodes; using LongoMatch.Common; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class PlaysListTreeWidget : Gtk.Bin { public event TimeNodeSelectedHandler TimeNodeSelected; public event TimeNodeChangedHandler TimeNodeChanged; public event TimeNodeDeletedHandler TimeNodeDeleted; public event PlayListNodeAddedHandler PlayListNodeAdded; public event SnapshotSeriesHandler SnapshotSeriesEvent; public event PlayersTaggedHandler PlayersTagged; public event TagPlayHandler TagPlay; private Project project; public PlaysListTreeWidget() { this.Build(); treeview.TimeNodeChanged += OnTimeNodeChanged; treeview.TimeNodeSelected += OnTimeNodeSelected; treeview.TimeNodeDeleted += OnTimeNodeDeleted; treeview.PlayListNodeAdded += OnPlayListNodeAdded; treeview.SnapshotSeriesEvent += OnSnapshotSeriesEvent; treeview.PlayersTagged += OnPlayersTagged; treeview.TagPlay += OnTagPlay; } public void DeletePlay(MediaTimeNode play, int section) { if (project != null) { TreeIter iter; TreeStore model = (TreeStore)treeview.Model; model.GetIterFromString(out iter, section.ToString()); TreeIter child; model.IterChildren(out child, iter); // Searching the TimeNode to remove it while (model.IterIsValid(child)) { MediaTimeNode mtn = (MediaTimeNode) model.GetValue(child,0); if (mtn == play) { model.Remove(ref child); break; } TreeIter prev = child; model.IterNext(ref child); if (prev.Equals(child)) break; } } } public void AddPlay(MediaTimeNode play,int section) { TreeIter sectionIter, playIter; TreePath playPath; TreeStore model; TimeNode stNode; if (project == null) return; model = (TreeStore)treeview.Model; model.GetIterFromString(out sectionIter, section.ToString()); stNode = (TimeNode)model.GetValue(sectionIter,0); if (project.Sections.GetTimeNode(section) == stNode){ playIter = model.AppendValues(sectionIter,play); playPath = model.GetPath(playIter); treeview.Selection.UnselectAll(); treeview.ExpandToPath(playPath); treeview.Selection.SelectIter(playIter); } } public bool ProjectIsLive{ set{ treeview.ProjectIsLive = value; } } public Project Project { set { project = value; if (project != null) { treeview.Model = project.GetModel(); treeview.Colors = project.Sections.GetColors(); treeview.VisitorTeam = project.VisitorName; treeview.LocalTeam = project.LocalName; } else { treeview.Model = null; treeview.Colors = null; } } } public bool PlayListLoaded { set { treeview.PlayListLoaded=value; } } protected virtual void OnTimeNodeChanged(TimeNode tNode,object val) { if (TimeNodeChanged != null) TimeNodeChanged(tNode,val); } protected virtual void OnTimeNodeSelected(MediaTimeNode tNode) { if (TimeNodeSelected != null) TimeNodeSelected(tNode); } protected virtual void OnTimeNodeDeleted(MediaTimeNode tNode, int section) { if (TimeNodeDeleted != null) TimeNodeDeleted(tNode,section); } protected virtual void OnPlayListNodeAdded(MediaTimeNode tNode) { if (PlayListNodeAdded != null) PlayListNodeAdded(tNode); } protected virtual void OnSnapshotSeriesEvent(LongoMatch.TimeNodes.MediaTimeNode tNode) { if (SnapshotSeriesEvent != null) SnapshotSeriesEvent(tNode); } protected virtual void OnPlayersTagged(LongoMatch.TimeNodes.MediaTimeNode tNode, Team team) { if (PlayersTagged != null) PlayersTagged(tNode,team); } protected virtual void OnTagPlay (LongoMatch.TimeNodes.MediaTimeNode tNode) { if (TagPlay != null) TagPlay(tNode); } } } longomatch-0.16.8/LongoMatch/Gui/Component/ProjectTemplateWidget.cs0000644000175000017500000001575111601631101022177 00000000000000// SectionsPropertiesWidget.cs // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.IO; using System.Collections.Generic; using Gtk; using Mono.Unix; using Gdk; using LongoMatch.DB; using LongoMatch.TimeNodes; using LongoMatch.Gui.Dialog; using LongoMatch.IO; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class ProjectTemplateWidget : Gtk.Bin { private List hkList; private Project project; private Sections sections; private List selectedSections; private bool edited = false; public ProjectTemplateWidget() { this.Build(); hkList = new List(); } public void SetProject(Project project) { this.project = project; if (project != null) Sections=project.Sections; } public Sections Sections { get { return sections; } set { this.sections = value; edited = false; Gtk.TreeStore sectionsListStore = new Gtk.TreeStore(typeof(SectionsTimeNode)); hkList.Clear(); for (int i=0;i tNodesList) { selectedSections = tNodesList; if (tNodesList.Count == 0) ButtonsSensitive = false; else if (tNodesList.Count == 1){ ButtonsSensitive = true; } else { newprevbutton.Sensitive = false; newafterbutton.Sensitive = false; removebutton.Sensitive = true; editbutton.Sensitive = false; } } protected virtual void OnKeyPressEvent(object o, Gtk.KeyPressEventArgs args) { if (args.Event.Key == Gdk.Key.Delete && selectedSections != null) RemoveSelectedSections(); } protected virtual void OnExportbuttonClicked (object sender, System.EventArgs e) { EntryDialog dialog = new EntryDialog(); dialog.TransientFor = (Gtk.Window)this.Toplevel; dialog.ShowCount = false; dialog.Text = Catalog.GetString("New template"); if (dialog.Run() == (int)ResponseType.Ok){ if (dialog.Text == "") MessagePopup.PopupMessage(dialog, MessageType.Error, Catalog.GetString("The template name is void.")); else if (File.Exists(System.IO.Path.Combine(MainClass.TemplatesDir(),dialog.Text+".sct"))){ MessageDialog md = new MessageDialog(null, DialogFlags.Modal, MessageType.Question, Gtk.ButtonsType.YesNo, Catalog.GetString("The template already exists. " + "Do you want to overwrite it ?") ); if (md.Run() == (int)ResponseType.Yes) SaveTemplate(dialog.Text); md.Destroy(); } else SaveTemplate(dialog.Text); } dialog.Destroy(); } } } longomatch-0.16.8/LongoMatch/Gui/Component/TimeLineWidget.cs0000644000175000017500000001533211601631101020576 00000000000000// TimeLineWidget.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using Gtk; using Gdk; using LongoMatch.DB; using LongoMatch.Handlers; using LongoMatch.TimeNodes; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class TimeLineWidget : Gtk.Bin { public event TimeNodeChangedHandler TimeNodeChanged; public event TimeNodeSelectedHandler TimeNodeSelected; public event TimeNodeDeletedHandler TimeNodeDeleted; public event NewMarkAtFrameEventHandler NewMarkEvent; //public event PlayListNodeAddedHandler PlayListNodeAdded; private TimeScale[] tsArray; private List> tnArray; private Sections sections; private TimeReferenceWidget tr; CategoriesScale cs; private uint frames; private uint pixelRatio; private MediaTimeNode selected; private uint currentFrame; public TimeLineWidget() { this.Build(); SetPixelRatio(10); zoomscale.CanFocus = false; GtkScrolledWindow.Vadjustment.ValueChanged += HandleScrollEvent; GtkScrolledWindow.Hadjustment.ValueChanged += HandleScrollEvent; GtkScrolledWindow.HScrollbar.SizeAllocated += OnSizeAllocated; cs = new CategoriesScale(); cs.WidthRequest = 100; categoriesbox.PackStart(cs, false, false, 0); tr = new TimeReferenceWidget(); timescalebox.PackStart(tr,false,false,0); tr.HeightRequest = 50 - leftbox.Spacing; toolsbox.HeightRequest = 50 - leftbox.Spacing; } public MediaTimeNode SelectedTimeNode { get { return selected; } set { selected = value; if (tsArray != null && tnArray != null) { foreach (TimeScale ts in tsArray) { ts.SelectedTimeNode = value; } } if (selected != null) { if (SelectedTimeNode.StartFrame/pixelRatio < GtkScrolledWindow.Hadjustment.Value || SelectedTimeNode.StartFrame/pixelRatio > GtkScrolledWindow.Hadjustment.Value + GtkScrolledWindow.Allocation.Width - GtkScrolledWindow.VScrollbar.Allocation.Width) AdjustPostion(SelectedTimeNode.StartFrame); } QueueDraw(); } } public uint CurrentFrame { get { return currentFrame; } set { currentFrame = value; if (tsArray != null && tnArray != null) { foreach (TimeScale ts in tsArray) { ts.CurrentFrame = value; } tr.CurrentFrame = value; } QueueDraw(); } } public void AdjustPostion(uint currentframe) { int visibleWidth; int realWidth; uint pos; int scrollbarWidth; if (Visible) { scrollbarWidth= GtkScrolledWindow.VScrollbar.Allocation.Width; visibleWidth = GtkScrolledWindow.Allocation.Width-scrollbarWidth; realWidth = vbox1.Allocation.Width; pos = currentframe/pixelRatio; if (pos+visibleWidth < realWidth) { GtkScrolledWindow.Hadjustment.Value = pos; } else { GtkScrolledWindow.Hadjustment.Value = realWidth-visibleWidth-20; } } } private void SetPixelRatio(uint pixelRatio) { if (tsArray != null && tnArray != null) { this.pixelRatio = pixelRatio; tr.PixelRatio = pixelRatio; foreach (TimeScale ts in tsArray) { ts.PixelRatio = pixelRatio; } zoomscale.Value=pixelRatio; } } public Project Project { set { ResetGui(); if (value == null) { sections = null; tnArray = null; tsArray=null; return; } frames = value.File.GetFrames(); sections = value.Sections; tnArray = value.GetDataArray(); tsArray = new TimeScale[sections.Count]; cs.Categories = sections; cs.Show(); tr.Frames = frames; tr.FrameRate = value.File.Fps; tr.Show(); for (int i=0; i list; private MediaTimeNode candidateTN; private bool candidateStart; private bool movingLimit; private MediaTimeNode selected=null; private uint lastTime=0; private uint currentFrame; private Menu deleteMenu; private Menu menu; private MenuItem delete; private int cursorFrame; private Dictionary dic; private Pango.Layout layout; public event NewMarkAtFrameEventHandler NewMarkAtFrameEvent; public event TimeNodeChangedHandler TimeNodeChanged; public event TimeNodeSelectedHandler TimeNodeSelected; public event TimeNodeDeletedHandler TimeNodeDeleted; public TimeScale(int section,List list, uint frames,Gdk.Color color) { this.section = section; this.frames = frames; this.list = list; HeightRequest= SECTION_HEIGHT; Size((int)(frames/pixelRatio),SECTION_HEIGHT); this.color = CairoUtils.RGBToCairoColor(color); this.color.A = ALPHA; Events = EventMask.PointerMotionMask | EventMask.ButtonPressMask | EventMask.ButtonReleaseMask ; dic = new Dictionary(); layout = new Pango.Layout(PangoContext); layout.Wrap = Pango.WrapMode.Char; layout.Alignment = Pango.Alignment.Left; SetMenu(); locker = new object(); } public uint PixelRatio { get { return pixelRatio; } set { lock (locker) { pixelRatio = value; Size((int)(frames/pixelRatio),SECTION_HEIGHT); } } } public uint CurrentFrame { get { return currentFrame; } set { currentFrame = value; } } public MediaTimeNode SelectedTimeNode { get { return selected; } set { selected = value; } } public void ReDraw() { Gdk.Region region = GdkWindow.ClipRegion; GdkWindow.InvalidateRegion(region,true); GdkWindow.ProcessUpdates(true); } private void SetMenu() { MenuItem newMediaTimeNode; menu = new Menu(); delete = new MenuItem(Catalog.GetString("Delete Play")); newMediaTimeNode = new MenuItem(Catalog.GetString("Add New Play")); menu.Append(newMediaTimeNode); menu.Append(delete); newMediaTimeNode.Activated += new EventHandler(OnNewMediaTimeNode); menu.ShowAll(); } private void DrawTimeNodes(Gdk.Window win) { lock (locker) { bool hasSelectedTimeNode=false; using(Cairo.Context g = Gdk.CairoHelper.Create(win)) { int height; int width; win.Resize((int)(frames/pixelRatio), Allocation.Height); win.GetSize(out width, out height); g.Operator = Operator.Over; foreach (MediaTimeNode tn in list) { if (tn != selected) { Cairo.Color borderColor = new Cairo.Color(color.R+0.1, color.G+0.1,color.B+0.1, 1); CairoUtils.DrawRoundedRectangle(g,tn.StartFrame/pixelRatio,3, tn.TotalFrames/pixelRatio,height-6, SECTION_HEIGHT/7, color, borderColor); } else { hasSelectedTimeNode = true; } } //Then we draw the selected TimeNode over the others if (hasSelectedTimeNode) { Cairo.Color borderColor = new Cairo.Color(0, 0, 0, 1); CairoUtils.DrawRoundedRectangle(g,selected.StartFrame/pixelRatio,3, selected.TotalFrames/pixelRatio,height-6, SECTION_HEIGHT/7, color, borderColor); if (selected.HasKeyFrame) { g.Color = new Cairo.Color(0, 0, 1, 1); g.LineWidth = 3; g.MoveTo(selected.KeyFrame/pixelRatio,3); g.LineTo(selected.KeyFrame/pixelRatio,SECTION_HEIGHT-3); g.StrokePreserve(); } } DrawLines(win,g,height,width); } } } private void DrawLines(Gdk.Window win, Cairo.Context g, int height, int width) { if (Environment.OSVersion.Platform == PlatformID.Unix) { Cairo.Color color = new Cairo.Color(0,0,0); CairoUtils.DrawLine(g, currentFrame/pixelRatio,0,currentFrame/pixelRatio,height, 1, color); CairoUtils.DrawLine(g,0 ,0, width, 0, 1, color); CairoUtils.DrawLine(g,0 ,height, width, height, 1, color); } else { win.DrawLine(Style.DarkGC(StateType.Normal),0,0,width,0); win.DrawLine(Style.DarkGC(StateType.Normal), (int)(currentFrame/pixelRatio),0, (int)(currentFrame/pixelRatio),height); } } private void DrawTimeNodesName() { lock (locker) { foreach (MediaTimeNode tn in list) { layout.Width = Pango.Units.FromPixels((int)(tn.TotalFrames/pixelRatio)); layout.SetMarkup(tn.Name); GdkWindow.DrawLayout(Style.TextGC(StateType.Normal), (int)(tn.StartFrame/pixelRatio)+2, 2,layout); } } } private void ProcessButton3(double X) { cursorFrame =(int)(X*pixelRatio); deleteMenu = new Menu(); delete.Submenu=deleteMenu; dic.Clear(); foreach (MediaTimeNode tn in list) { //We scan all the time Nodes looking for one matching the cursor selectcio //And we add them to the delete menu if (tn.HasFrame(cursorFrame)) { MenuItem del = new MenuItem(Catalog.GetString("Delete "+tn.Name)); del.Activated += new EventHandler(OnDelete); deleteMenu.Append(del); dic.Add(del,tn); } } menu.ShowAll(); menu.Popup(); } private void ProcessButton1(EventButton evnt) { if (lastTime != evnt.Time) { candidateTN = null; foreach (MediaTimeNode tn in list) { int pos = (int)(evnt.X*pixelRatio); //Moving from the right side if (Math.Abs(pos-tn.StopFrame) < 3*pixelRatio) { candidateStart = false; candidateTN = tn; movingLimit = true; GdkWindow.Cursor = new Gdk.Cursor(CursorType.SbHDoubleArrow); TimeNodeChanged(tn,tn.Stop); ReDraw(); break; } //Moving from the left side else if (Math.Abs(pos-tn.StartFrame) < 3*pixelRatio) { candidateStart =true; candidateTN = tn; movingLimit = true; GdkWindow.Cursor = new Gdk.Cursor(CursorType.SbHDoubleArrow); TimeNodeChanged(tn,tn.Start); ReDraw(); break; } } } //On Double Click else { foreach (MediaTimeNode tn in list) { int pos = (int)(evnt.X*pixelRatio); if (TimeNodeSelected!= null && tn.HasFrame(pos)) { TimeNodeSelected(tn); break; } } } } protected void OnNewMediaTimeNode(object obj, EventArgs args) { if (NewMarkAtFrameEvent != null) NewMarkAtFrameEvent(section,cursorFrame); } protected void OnDelete(object obj, EventArgs args) { MediaTimeNode tNode; dic.TryGetValue((MenuItem)obj, out tNode); if (TimeNodeDeleted != null && tNode != null) { TimeNodeDeleted(tNode, section); } } protected override bool OnExposeEvent(EventExpose evnt) { if (Visible) { DrawTimeNodes(evnt.Window); //We don't need the draw the Sections Names if we also draw the TimeNode name //DrawSectionName(); DrawTimeNodesName(); } return base.OnExposeEvent(evnt); } protected override bool OnMotionNotifyEvent(EventMotion evnt) { int pos = (int)(evnt.X*pixelRatio); //If not moving don't do anything if (!movingLimit) { } //Moving Start time else if (candidateStart) { if (candidateTN.HasKeyFrame && pos > 0 && pos > candidateTN.KeyFrame-10) candidateTN.StartFrame = candidateTN.KeyFrame-10; //Check not to go under start time nor 0 else if (pos > 0 && pos < candidateTN.StopFrame-10) candidateTN.StartFrame = (uint)pos; if (TimeNodeChanged != null) TimeNodeChanged(candidateTN,candidateTN.Start); } //Moving Stop time else if (!candidateStart) { if (candidateTN.HasKeyFrame && pos < candidateTN.KeyFrame+10) candidateTN.StopFrame = candidateTN.KeyFrame+10; //Check not to go under start time nor 0 else if (pos < frames && pos > candidateTN.StartFrame+10) candidateTN.StopFrame = (uint) pos; if (TimeNodeChanged != null) TimeNodeChanged(candidateTN,candidateTN.Stop); } Gdk.Region region = GdkWindow.ClipRegion; GdkWindow.InvalidateRegion(region,true); GdkWindow.ProcessUpdates(true); return base.OnMotionNotifyEvent(evnt); } protected override bool OnButtonPressEvent(EventButton evnt) { if (evnt.Button == 1) ProcessButton1(evnt); // On Right button pressed else if (evnt.Button == 3) ProcessButton3(evnt.X); lastTime = evnt.Time; return base.OnButtonPressEvent(evnt); } protected override bool OnButtonReleaseEvent(EventButton evnt) { if (movingLimit) { movingLimit = false; candidateTN.Selected = false; GdkWindow.Cursor = new Gdk.Cursor(CursorType.Arrow); ReDraw(); } return base.OnButtonReleaseEvent(evnt); } } } longomatch-0.16.8/LongoMatch/Gui/Component/CategoryProperties.cs0000644000175000017500000000562111601631101021556 00000000000000// CategoryProperties.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gdk; using Gtk; using Mono.Unix; using LongoMatch.TimeNodes; using LongoMatch.Gui.Dialog; namespace LongoMatch.Gui.Component { public delegate void HotKeyChangeHandler(HotKey prevHotKey, SectionsTimeNode newSection); [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class CategoryProperties : Gtk.Bin { public event HotKeyChangeHandler HotKeyChanged; private SectionsTimeNode stn; public CategoryProperties() { this.Build(); } public SectionsTimeNode Section { set { stn = value; UpdateGui(); } get { return stn; } } private void UpdateGui() { if (stn != null) { nameentry.Text = stn.Name; timeadjustwidget1.SetTimeNode(stn); colorbutton1.Color = stn.Color; sortmethodcombobox.Active = (int)stn.SortMethod; if (stn.HotKey.Defined) { hotKeyLabel.Text = stn.HotKey.ToString(); } else hotKeyLabel.Text = Catalog.GetString("none"); } } protected virtual void OnChangebutonClicked(object sender, System.EventArgs e) { HotKeySelectorDialog dialog = new HotKeySelectorDialog(); dialog.TransientFor=(Gtk.Window)this.Toplevel; HotKey prevHotKey = stn.HotKey; if (dialog.Run() == (int)ResponseType.Ok) { stn.HotKey=dialog.HotKey; UpdateGui(); } dialog.Destroy(); if (HotKeyChanged != null) HotKeyChanged(prevHotKey,stn); } protected virtual void OnColorbutton1ColorSet(object sender, System.EventArgs e) { if (stn != null) stn.Color=colorbutton1.Color; } protected virtual void OnTimeadjustwidget1LeadTimeChanged(object sender, System.EventArgs e) { stn.Start = timeadjustwidget1.GetStartTime(); } protected virtual void OnTimeadjustwidget1LagTimeChanged(object sender, System.EventArgs e) { stn.Stop= timeadjustwidget1.GetStopTime(); } protected virtual void OnNameentryChanged(object sender, System.EventArgs e) { stn.Name = nameentry.Text; } protected virtual void OnSortmethodcomboboxChanged (object sender, System.EventArgs e) { stn.SortMethodString = sortmethodcombobox.ActiveText; } } } longomatch-0.16.8/LongoMatch/Gui/Component/TimeAdjustWidget.cs0000644000175000017500000000350311601631101021136 00000000000000// TimeAdjustWidget.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using LongoMatch.TimeNodes; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class TimeAdjustWidget : Gtk.Bin { public event EventHandler LeadTimeChanged; public event EventHandler LagTimeChanged; public TimeAdjustWidget() { this.Build(); } public void SetTimeNode(SectionsTimeNode tNode) { spinbutton1.Value=tNode.Start.Seconds; spinbutton2.Value=tNode.Stop.Seconds; } public Time GetStartTime() { return new Time((int)(spinbutton1.Value)*Time.SECONDS_TO_TIME); } public Time GetStopTime() { return new Time((int)(spinbutton2.Value)*Time.SECONDS_TO_TIME); } protected virtual void OnSpinbutton1ValueChanged(object sender, System.EventArgs e) { if (LeadTimeChanged != null) LeadTimeChanged(this,new EventArgs()); } protected virtual void OnSpinbutton2ValueChanged(object sender, System.EventArgs e) { if (LagTimeChanged != null) LagTimeChanged(this,new EventArgs()); } } } longomatch-0.16.8/LongoMatch/Gui/Component/TimeReferenceWidget.cs0000644000175000017500000001117411601631101021605 00000000000000// TimeReferenceWidget.cs // // Copyright (C2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gtk; using Gdk; using Cairo; using LongoMatch.Common; using LongoMatch.TimeNodes; using Pango; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class TimeReferenceWidget : Gtk.DrawingArea { private const int SECTION_HEIGHT = 30; double scroll; uint frames; uint pixelRatio=10;//Número de frames por pixel Pango.Layout layout; public TimeReferenceWidget() { Frames = 1; PixelRatio = 1; FrameRate = 1; this.HeightRequest= SECTION_HEIGHT; layout = new Pango.Layout(this.PangoContext); } public uint CurrentFrame { get; set; } public uint Frames { set{ frames = value; } } public ushort FrameRate { set; get; } public double Scroll { get { return scroll; } set { scroll = value; QueueDraw(); } } public uint PixelRatio { get { return pixelRatio; } set { pixelRatio = value; } } protected override bool OnExposeEvent(EventExpose evnt) { int height; int width; Gdk.Window win = evnt.Window; win.GetSize(out width, out height); win.Resize((int)(frames/pixelRatio), height); win.GetSize(out width, out height); if (Environment.OSVersion.Platform == PlatformID.Unix) this.CairoDraw(evnt,height,width); else this.GdkDraw(evnt,height,width); return base.OnExposeEvent(evnt); } private void CairoDraw(EventExpose evnt,int height,int width) { Time time = new Time(); using(Cairo.Context g = Gdk.CairoHelper.Create(evnt.Window)) { Cairo.Color color = new Cairo.Color(0, 0, 0); /* Drawing position triangle */ CairoUtils.DrawTriangle(g,CurrentFrame/pixelRatio-Scroll, height, 10, 15, color); /* Draw '0' */ CairoUtils.DrawLine(g, 0-Scroll, height, width, height, 2, color); g.MoveTo(new PointD(0-Scroll,height-20)); g.ShowText("0"); for (int i=10*FrameRate; i<=frames/pixelRatio;) { CairoUtils.DrawLine(g, i-Scroll, height,i-Scroll, height-10, 2, color); g.MoveTo(new PointD(i-Scroll-13,height-20)); time.MSeconds = (int)(i/FrameRate*pixelRatio); g.ShowText(time.ToSecondsString()); i=i+10*FrameRate; } for (int i=0; i<=frames/pixelRatio;) { CairoUtils.DrawLine(g, i-Scroll, height,i-Scroll, height-5, 1, color); i=i+FrameRate; } } } private void GdkDraw(EventExpose evnt,int height,int width) { Time time = new Time(); layout.SetMarkup("0"); this.GdkWindow.DrawLayout(this.Style.TextGC(StateType.Normal),0,height-23,layout); Gdk.Point topL= new Gdk.Point((int)(CurrentFrame/pixelRatio-Scroll-5),height-15); Gdk.Point topR= new Gdk.Point((int)(CurrentFrame/pixelRatio-Scroll+5),height-15); Gdk.Point bottom= new Gdk.Point((int)(CurrentFrame/pixelRatio-Scroll),height); this.GdkWindow.DrawPolygon(this.Style.TextGC(StateType.Normal),true,new Gdk.Point[] {topL,topR,bottom}); for (int i=10*FrameRate; i<=frames/pixelRatio;) { // Drawing separator line evnt.Window.DrawLine(Style.DarkGC(StateType.Normal),i-(int)Scroll,height,i-(int)Scroll,height-10); time.MSeconds = (int)(i/FrameRate*pixelRatio); layout.SetMarkup(time.ToSecondsString()); this.GdkWindow.DrawLayout(this.Style.TextGC(StateType.Normal),i-(int)Scroll-13,height-23,layout); //g.ShowText(time.ToSecondsString()); i=i+10*FrameRate; } for (int i=0; i<=frames/pixelRatio;) { evnt.Window.DrawLine(Style.DarkGC(StateType.Normal),i-(int)Scroll,height,i-(int)Scroll,height-5); i=i+FrameRate; } // Drawing main line evnt.Window.DrawLine(Style.DarkGC(StateType.Normal),0,height,width,height); } } } longomatch-0.16.8/LongoMatch/Gui/Component/DrawingToolBox.cs0000644000175000017500000000721111601631101020623 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using Gtk; using Gdk; using LongoMatch.Handlers; namespace LongoMatch.Gui.Component { [System.ComponentModel.ToolboxItem(true)] public partial class DrawingToolBox : Gtk.Bin { public event LineWidthChangedHandler LineWidthChanged; public event DrawToolChangedHandler DrawToolChanged; public event ColorChangedHandler ColorChanged; public event VisibilityChangedHandler VisibilityChanged; public event ClearDrawingHandler ClearDrawing; public event TransparencyChangedHandler TransparencyChanged; Gdk.Color normalColor; Gdk.Color activeColor; public DrawingToolBox() { this.Build(); penbutton.Active = true; colorbutton.Color = new Color(byte.MaxValue, byte.MinValue, byte.MinValue);/* red */ } public bool DrawingVisibility { set { if (VisibilityChanged != null) VisibilityChanged(value); } } public bool ToolsVisible { set { toolstable.Visible=value; toolslabel.Visible= value; } } public bool InfoVisible { set { label1.Visible=value; } } protected virtual void OnCombobox1Changed(object sender, System.EventArgs e) { int lineWidth; if (LineWidthChanged != null) { lineWidth = Int16.Parse(combobox1.ActiveText.Split(' ')[0]); LineWidthChanged(lineWidth); } } protected virtual void OnCirclebuttonToggled(object sender, System.EventArgs e) { if (DrawToolChanged != null && (sender as RadioButton).Active) DrawToolChanged(DrawTool.CIRCLE); } protected virtual void OnRectanglebuttonToggled(object sender, System.EventArgs e) { if (DrawToolChanged != null && (sender as RadioButton).Active) DrawToolChanged(DrawTool.RECTANGLE); } protected virtual void OnLinebuttonToggled(object sender, System.EventArgs e) { if (DrawToolChanged != null && (sender as RadioButton).Active) DrawToolChanged(DrawTool.LINE); } protected virtual void OnCrossbuttonToggled(object sender, System.EventArgs e) { if (DrawToolChanged != null && (sender as RadioButton).Active) DrawToolChanged(DrawTool.CROSS); } protected virtual void OnEraserbuttonToggled(object sender, System.EventArgs e) { if (DrawToolChanged != null && (sender as RadioButton).Active) DrawToolChanged(DrawTool.ERASER); } protected virtual void OnPenbuttonToggled(object sender, System.EventArgs e) { if (DrawToolChanged != null && (sender as RadioButton).Active) DrawToolChanged(DrawTool.PEN); } protected virtual void OnClearbuttonClicked(object sender, System.EventArgs e) { if (ClearDrawing != null) ClearDrawing(); } protected virtual void OnSpinbutton1Changed(object sender, System.EventArgs e) { if (TransparencyChanged != null) TransparencyChanged(spinbutton1.Value/100); } protected virtual void OnColorbuttonColorSet (object sender, System.EventArgs e) { if (ColorChanged != null) ColorChanged(colorbutton.Color); } } } longomatch-0.16.8/LongoMatch/Gui/Component/PlayerProperties.cs0000644000175000017500000001213411601631101021232 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.IO; using Gtk; using Gdk; using Mono.Unix; using LongoMatch.TimeNodes; using LongoMatch.Gui.Popup; using LongoMatch.Gui.Dialog; namespace LongoMatch.Gui.Component { [System.ComponentModel.ToolboxItem(true)] public partial class PlayerProperties : Gtk.Bin { private const int THUMBNAIL_MAX_WIDTH = 50; private const int THUMBNAIL_MAX_HEIGHT = 50; private Player player; private CalendarPopup cp; public PlayerProperties() { this.Build(); //HACK:The calendar dialog does not respond on win32 if (Environment.OSVersion.Platform != PlatformID.Win32NT) { cp = new CalendarPopup(); cp.Hide(); cp.DateSelectedEvent += delegate(DateTime selectedDate) { Player.Birthday = selectedDate; bdaylabel.Text = selectedDate.ToShortDateString(); }; } } public Player Player { set { this.player = value; nameentry.Text = value.Name; positionentry.Text = value.Position; nationalityentry.Text = value.Nationality; numberspinbutton.Value = value.Number; weightspinbutton.Value = value.Weight; heightspinbutton.Value = value.Height; image.Pixbuf = value.Photo; playscombobox.Active = value.Discarded ? 1 : 0; } get { return player; } } private FileFilter FileFilter { get { FileFilter filter = new FileFilter(); filter.Name = "Images"; filter.AddPattern("*.png"); filter.AddPattern("*.jpg"); filter.AddPattern("*.jpeg"); return filter; } } protected virtual void OnOpenbuttonClicked(object sender, System.EventArgs e) { Pixbuf pimage; StreamReader file; int h,w; double rate; FileChooserDialog fChooser = new FileChooserDialog(Catalog.GetString("Choose an image"), (Gtk.Window)this.Toplevel, FileChooserAction.Open, "gtk-cancel",ResponseType.Cancel, "gtk-open",ResponseType.Accept); fChooser.AddFilter(FileFilter); if (fChooser.Run() == (int)ResponseType.Accept) { // For Win32 compatibility we need to open the image file // using a StreamReader. Gdk.Pixbuf(string filePath) uses GLib to open the // input file and doesn't support Win32 files path encoding file = new StreamReader(fChooser.Filename); pimage= new Gdk.Pixbuf(file.BaseStream); if (pimage != null) { h = pimage.Height; w = pimage.Width; rate = (double)w/(double)h; if (h>w) player.Photo = pimage.ScaleSimple((int)(THUMBNAIL_MAX_HEIGHT*rate),THUMBNAIL_MAX_HEIGHT,InterpType.Bilinear); else player.Photo = pimage.ScaleSimple(THUMBNAIL_MAX_WIDTH,(int)(THUMBNAIL_MAX_WIDTH/rate),InterpType.Bilinear); image.Pixbuf = player.Photo; } } fChooser.Destroy(); } protected virtual void OnNameentryChanged(object sender, System.EventArgs e) { player.Name = nameentry.Text; } protected virtual void OnPositionentryChanged(object sender, System.EventArgs e) { player.Position = positionentry.Text; } protected virtual void OnNumberspinbuttonChanged(object sender, System.EventArgs e) { player.Number =(int) numberspinbutton.Value; } protected virtual void OnNumberspinbuttonValueChanged(object sender, System.EventArgs e) { player.Number =(int) numberspinbutton.Value; } protected virtual void OnDatebuttonClicked (object sender, System.EventArgs e) { if (Environment.OSVersion.Platform == PlatformID.Win32NT) { var win32CP = new Win32CalendarDialog(); win32CP.TransientFor = (Gtk.Window)this.Toplevel; win32CP.Run(); player.Birthday = win32CP.getSelectedDate(); bdaylabel.Text = win32CP.getSelectedDate().ToShortDateString(); win32CP.Destroy(); } else { cp.TransientFor=(Gtk.Window)this.Toplevel; cp.Show(); } } protected virtual void OnWeightspinbuttonValueChanged (object sender, System.EventArgs e) { player.Weight = (int)weightspinbutton.Value; } protected virtual void OnHeightspinbuttonValueChanged (object sender, System.EventArgs e) { player.Height = (float)heightspinbutton.Value; } protected virtual void OnNationalityentryChanged (object sender, System.EventArgs e) { player.Nationality = nationalityentry.Text; } protected virtual void OnPlayscomboboxChanged (object sender, System.EventArgs e) { player.Discarded = playscombobox.ActiveText == Catalog.GetString("No"); } } } longomatch-0.16.8/LongoMatch/Gui/Component/ProjectDetailsWidget.cs0000644000175000017500000004216311601631101022006 00000000000000// FileDescriptionWidget.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using Mono.Unix; using Gtk; using LongoMatch.Common; using LongoMatch.DB; using LongoMatch.Handlers; using LongoMatch.IO; using LongoMatch.Gui.Popup; using LongoMatch.Gui.Dialog; using LongoMatch.TimeNodes; using LongoMatch.Video.Utils; using LongoMatch.Video.Capturer; using LongoMatch.Video.Common; namespace LongoMatch.Gui.Component { //TODO añadir eventos de cambios para realizar el cambio directamente sobre el file data abierto [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class ProjectDetailsWidget : Gtk.Bin { public event EventHandler EditedEvent; private Project project; private LongoMatch.Video.Utils.PreviewMediaFile mFile; private bool edited; private DateTime date; private CalendarPopup cp; private Win32CalendarDialog win32CP; private Sections actualSection; private TeamTemplate actualVisitorTeam; private TeamTemplate actualLocalTeam; private ProjectType useType; private List videoDevices; private const string PAL_FORMAT = "720x576 (4:3)"; private const string PAL_3_4_FORMAT = "540x432 (4:3)"; private const string PAL_1_2_FORMAT = "360x288 (4:3)"; private const string DV_SOURCE = "DV Source"; private const string GCONF_SOURCE = "GConf Source"; public ProjectDetailsWidget() { this.Build(); //HACK:The calendar dialog does not respond on win32 if (Environment.OSVersion.Platform != PlatformID.Win32NT) { cp = new CalendarPopup(); cp.Hide(); cp.DateSelectedEvent += new DateSelectedHandler(OnDateSelected); } FillSections(); FillTeamsTemplate(); FillFormats(); videoDevices = new List(); Use=ProjectType.FileProject; } public ProjectType Use { set { bool visible1 = value == ProjectType.CaptureProject; bool visible2 = value != ProjectType.FakeCaptureProject; bool visible3 = value != ProjectType.EditProject; filelabel.Visible = visible2; filehbox.Visible = visible2; tagscombobox.Visible = visible3; localcombobox.Visible = visible3; visitorcombobox.Visible = visible3; expander1.Visible = visible1; device.Visible = visible1; devicecombobox.Visible = visible1; useType = value; } get { return useType; } } public bool Edited { set { edited=value; } get { return edited; } } public string LocalName { get { return localTeamEntry.Text; } set { localTeamEntry.Text = value; } } public string VisitorName { get { return visitorTeamEntry.Text; } set { visitorTeamEntry.Text = value; } } public string Season { get { return seasonentry.Text; } set { seasonentry.Text = value; } } public string Competition { get { return competitionentry.Text; } set { competitionentry.Text = value; } } public int LocalGoals { get { return (int)localSpinButton.Value; } set { localSpinButton.Value = value; } } public int VisitorGoals { get { return (int)visitorSpinButton.Value; } set { visitorSpinButton.Value = value; } } private string Filename { get { return fileEntry.Text; } set { fileEntry.Text = value; } } public DateTime Date { get { return date; } set { date = value; dateEntry.Text = value.ToShortDateString(); } } public Sections Sections { get { return actualSection; } set { actualSection = value; } } public TeamTemplate LocalTeamTemplate { get { return actualLocalTeam; } set { actualLocalTeam = value; } } public TeamTemplate VisitorTeamTemplate { get { return actualVisitorTeam; } set { actualVisitorTeam = value; } } private string SectionsFile { get { return tagscombobox.ActiveText + ".sct"; } } private string LocalTeamTemplateFile { get { return localcombobox.ActiveText + ".tem"; } } private string VisitorTeamTemplateFile { get { return visitorcombobox.ActiveText + ".tem"; } } public CapturePropertiesStruct CaptureProperties{ get{ CapturePropertiesStruct s = new CapturePropertiesStruct(); s.OutputFile = fileEntry.Text; s.AudioBitrate = (uint)audiobitratespinbutton.Value; s.VideoBitrate = (uint)videobitratespinbutton.Value; if (videoDevices[devicecombobox.Active].DeviceType == DeviceType.DV){ if (Environment.OSVersion.Platform == PlatformID.Win32NT) s.CaptureSourceType = CaptureSourceType.DShow; else s.CaptureSourceType = CaptureSourceType.DV; } else { s.CaptureSourceType = CaptureSourceType.Raw; } s.DeviceID = videoDevices[devicecombobox.Active].ID; /* Get size info */ switch (sizecombobox.ActiveText){ /* FIXME: Don't harcode size values */ case PAL_FORMAT: s.Width = 720; s.Height = 576; break; case PAL_3_4_FORMAT: s.Width = 540; s.Height = 432; break; case PAL_1_2_FORMAT: s.Width = 360; s.Height = 288; break; default: s.Width = 0; s.Height = 0; break; } /* Get video compresion format info */ switch (videoformatcombobox.ActiveText){ case Constants.AVI: s.VideoEncoder = VideoEncoderType.Mpeg4; s.AudioEncoder = AudioEncoderType.Mp3; s.Muxer = VideoMuxerType.Avi; break; case Constants.MP4: s.VideoEncoder = VideoEncoderType.H264; s.AudioEncoder = AudioEncoderType.Aac; s.Muxer = VideoMuxerType.Mp4; break; case Constants.OGG: s.VideoEncoder = VideoEncoderType.Theora; s.AudioEncoder = AudioEncoderType.Vorbis; s.Muxer = VideoMuxerType.Ogg; break; case Constants.WEBM: s.VideoEncoder = VideoEncoderType.VP8; s.AudioEncoder = AudioEncoderType.Vorbis; s.Muxer = VideoMuxerType.WebM; break; } return s; } } public void SetProject(Project project) { this.project = project; mFile = project.File; Filename = mFile != null ? mFile.FilePath : ""; LocalName = project.LocalName; VisitorName = project.VisitorName; LocalGoals = project.LocalGoals; VisitorGoals = project.VisitorGoals; Date = project.MatchDate; Season = project.Season; Competition = project.Competition; Sections = project.Sections; LocalTeamTemplate = project.LocalTeamTemplate; VisitorTeamTemplate = project.VisitorTeamTemplate; Edited = false; } public void UpdateProject() { project.File= mFile; project.LocalName = localTeamEntry.Text; project.VisitorName = visitorTeamEntry.Text; project.LocalGoals = (int)localSpinButton.Value; project.VisitorGoals = (int)visitorSpinButton.Value; project.MatchDate = DateTime.Parse(dateEntry.Text); project.Competition = competitionentry.Text; project.Season = seasonentry.Text; project.Sections = Sections; project.LocalTeamTemplate = LocalTeamTemplate; project.VisitorTeamTemplate = VisitorTeamTemplate; } public Project GetProject() { if (useType != ProjectType.EditProject) { if (Filename == "" && useType != ProjectType.FakeCaptureProject) return null; else { if (useType == ProjectType.FakeCaptureProject){ mFile = new PreviewMediaFile(); mFile.FilePath = Constants.FAKE_PROJECT; mFile.Fps = 25; } else if (useType == ProjectType.CaptureProject){ mFile = new PreviewMediaFile(); mFile.FilePath = fileEntry.Text; mFile.Fps = 25; } return new Project(mFile, LocalName, VisitorName, Season, Competition, LocalGoals, VisitorGoals, Date, Sections, LocalTeamTemplate, VisitorTeamTemplate); } } else { // New imported project from a fake live analysis will have a null File // return null to force selecting a new file. if (mFile == null) return null; UpdateProject(); return project; } } public void Clear() { LocalName = ""; VisitorName = ""; LocalGoals = 0; VisitorGoals = 0; Date = System.DateTime.Today; Filename = ""; mFile = null; edited = false; } public void FillDevices(List devices){ videoDevices = devices; foreach (Device device in devices){ string deviceElement; string deviceName; if (Environment.OSVersion.Platform == PlatformID.Unix){ if (device.DeviceType == DeviceType.DV) deviceElement = Catalog.GetString(DV_SOURCE); else deviceElement = Catalog.GetString(GCONF_SOURCE); } else deviceElement = Catalog.GetString("DirectShow Source"); deviceName = (device.ID == "") ? Catalog.GetString("Unknown"): device.ID; devicecombobox.AppendText(deviceName + " ("+deviceElement+")"); devicecombobox.Active = 0; } } private void FillSections() { string[] allFiles; int i=0; int index = 0; allFiles = System.IO.Directory.GetFiles(MainClass.TemplatesDir(),"*.sct"); foreach (string filePath in allFiles) { string fileName = System.IO .Path.GetFileNameWithoutExtension(filePath); tagscombobox.AppendText(fileName); //Setting the selected value to the default template if (fileName == "default") index = i; i++; } tagscombobox.Active = index; SectionsReader reader = new SectionsReader(System.IO.Path.Combine(MainClass.TemplatesDir(),SectionsFile)); Sections= reader.GetSections(); } private void FillTeamsTemplate() { string[] allFiles; int i=0; int index = 0; allFiles = System.IO.Directory.GetFiles(MainClass.TemplatesDir(),"*.tem"); foreach (string filePath in allFiles) { string fileName = System.IO .Path.GetFileNameWithoutExtension(filePath); localcombobox.AppendText(fileName); visitorcombobox.AppendText(fileName); //Setting the selected value to the default template if (fileName == "default") index = i; i++; } localcombobox.Active = index; visitorcombobox.Active = index; LocalTeamTemplate = TeamTemplate.LoadFromFile(System.IO.Path.Combine(MainClass.TemplatesDir(),LocalTeamTemplateFile)); VisitorTeamTemplate = TeamTemplate.LoadFromFile(System.IO.Path.Combine(MainClass.TemplatesDir(),VisitorTeamTemplateFile)); } private void FillFormats(){ sizecombobox.AppendText (Catalog.GetString("Keep original size")); sizecombobox.AppendText(PAL_FORMAT); sizecombobox.AppendText(PAL_3_4_FORMAT); sizecombobox.AppendText(PAL_1_2_FORMAT); sizecombobox.Active = 0; videoformatcombobox.AppendText(Constants.AVI); if (Environment.OSVersion.Platform != PlatformID.Win32NT) videoformatcombobox.AppendText(Constants.WEBM); videoformatcombobox.AppendText(Constants.OGG); videoformatcombobox.AppendText(Constants.MP4); videoformatcombobox.Active = 0; } protected virtual void OnDateSelected(DateTime dateTime) { Date = dateTime; } protected virtual void OnOpenbuttonClicked(object sender, System.EventArgs e) { FileChooserDialog fChooser = null; if (useType == ProjectType.CaptureProject) { fChooser = new FileChooserDialog(Catalog.GetString("Output file"), (Gtk.Window)this.Toplevel, FileChooserAction.Save, "gtk-cancel",ResponseType.Cancel, "gtk-save",ResponseType.Accept); fChooser.SetCurrentFolder(MainClass.VideosDir()); fChooser.DoOverwriteConfirmation = true; if (fChooser.Run() == (int)ResponseType.Accept) fileEntry.Text = fChooser.Filename; fChooser.Destroy(); } else { fChooser = new FileChooserDialog(Catalog.GetString("Open file..."), (Gtk.Window)this.Toplevel, FileChooserAction.Open, "gtk-cancel",ResponseType.Cancel, "gtk-open",ResponseType.Accept); fChooser.SetCurrentFolder(System.Environment.GetFolderPath(Environment.SpecialFolder.Personal)); if (fChooser.Run() == (int)ResponseType.Accept) { MessageDialog md=null; string filename = fChooser.Filename; fChooser.Destroy(); try { md = new MessageDialog((Gtk.Window)this.Toplevel, DialogFlags.Modal, MessageType.Info, Gtk.ButtonsType.None, Catalog.GetString("Analyzing video file:")+"\n"+filename); md.Icon=Stetic.IconLoader.LoadIcon(this, "longomatch", Gtk.IconSize.Dialog); md.Show(); mFile = LongoMatch.Video.Utils.PreviewMediaFile.GetMediaFile(filename); if (!mFile.HasVideo || mFile.VideoCodec == "") throw new Exception(Catalog.GetString("This file doesn't contain a video stream.")); if (mFile.HasVideo && mFile.Length == 0) throw new Exception(Catalog.GetString("This file contains a video stream but its length is 0.")); fileEntry.Text = filename; } catch (Exception ex) { MessagePopup.PopupMessage(this, MessageType.Error, ex.Message); } finally { md.Destroy(); } } fChooser.Destroy(); } } protected virtual void OnCalendarbuttonClicked(object sender, System.EventArgs e) { if (Environment.OSVersion.Platform == PlatformID.Win32NT) { win32CP = new Win32CalendarDialog(); win32CP.TransientFor = (Gtk.Window)this.Toplevel; win32CP.Run(); Date = win32CP.getSelectedDate(); win32CP.Destroy(); } else { cp.TransientFor=(Gtk.Window)this.Toplevel; cp.Show(); } } protected virtual void OnCombobox1Changed(object sender, System.EventArgs e) { SectionsReader reader = new SectionsReader(System.IO.Path.Combine(MainClass.TemplatesDir(),SectionsFile)); Sections= reader.GetSections(); } protected virtual void OnVisitorcomboboxChanged(object sender, System.EventArgs e) { VisitorTeamTemplate = TeamTemplate.LoadFromFile(System.IO.Path.Combine(MainClass.TemplatesDir(), VisitorTeamTemplateFile)); } protected virtual void OnLocalcomboboxChanged(object sender, System.EventArgs e) { LocalTeamTemplate = TeamTemplate.LoadFromFile(System.IO.Path.Combine(MainClass.TemplatesDir(), LocalTeamTemplateFile)); } protected virtual void OnEditbuttonClicked(object sender, System.EventArgs e) { ProjectTemplateEditorDialog ted = new ProjectTemplateEditorDialog(); ted.TransientFor = (Window)Toplevel; ted.Sections = Sections; ted.Project = project; ted.CanExport = Use == ProjectType.EditProject; if (ted.Run() == (int)ResponseType.Apply) { Sections = ted.Sections; } ted.Destroy(); OnEdited(this,null); } protected virtual void OnLocaltemplatebuttonClicked(object sender, System.EventArgs e) { TeamTemplateEditor tted = new TeamTemplateEditor(); tted.TransientFor = (Window)Toplevel; tted.Title=Catalog.GetString("Local Team Template"); tted.SetTeamTemplate(LocalTeamTemplate); if (tted.Run() == (int)ResponseType.Apply) { LocalTeamTemplate = tted.GetTeamTemplate(); } tted.Destroy(); OnEdited(this,null); } protected virtual void OnVisitorbuttonClicked(object sender, System.EventArgs e) { TeamTemplateEditor tted = new TeamTemplateEditor(); tted.TransientFor = (Window)Toplevel; tted.Title=Catalog.GetString("Visitor Team Template"); tted.SetTeamTemplate(VisitorTeamTemplate); if (tted.Run() == (int)ResponseType.Apply) { VisitorTeamTemplate = tted.GetTeamTemplate(); } tted.Destroy(); OnEdited(this,null); } protected virtual void OnEdited(object sender, System.EventArgs e) { Edited = true; if (EditedEvent != null) EditedEvent(this,null); } } } longomatch-0.16.8/LongoMatch/Gui/Component/DrawingWidget.cs0000644000175000017500000002455211601631101020467 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using Gdk; using Gtk; using Cairo; namespace LongoMatch.Gui.Component { public enum DrawTool { PEN, LINE, DASHED_LINE, CIRCLE, DASHED_CIRCLE, RECTANGLE, DASHED_RECTANGLE, CROSS, DASHED_CROSS, ERASER } [System.ComponentModel.ToolboxItem(true)] public partial class DrawingWidget : Gtk.Bin { private Surface source; private Surface drawings; private Cairo.Color lineColor; private int lineWidth; private double transparency; private DrawTool selectedTool; private Cairo.PointD initialPoint,finalPoint; private int sourceWidth,sourceHeight; private bool loaded; private bool visible; private bool preview; //Offset values to keep image in center private int xOffset; private int yOffset; //Mouse motion private double lastx=0; private double lasty=0; private const double ARROW_DEGREES = 0.5; private const int ARROW_LENGHT = 15; public DrawingWidget() { this.Build(); lineColor = new Cairo.Color(Double.MaxValue,0,0); lineWidth = 6; Transparency=0.8; selectedTool = DrawTool.PEN; loaded = false; visible = true; preview=false; } ~DrawingWidget() { source.Destroy(); drawings.Destroy(); } public Pixbuf SourceImage { set { sourceWidth = value.Width; sourceHeight = value.Height; source = new ImageSurface(Format.RGB24,sourceWidth,sourceHeight); drawings = new ImageSurface(Format.ARGB32,sourceWidth,sourceHeight); using(Context sourceCR = new Context(source)) { CairoHelper.SetSourcePixbuf(sourceCR,value,0,0); sourceCR.Paint(); } drawingarea.WidthRequest=sourceWidth; drawingarea.HeightRequest=sourceHeight; if (drawingarea.GdkWindow != null) drawingarea.GdkWindow.Resize(sourceWidth,sourceHeight); value.Dispose(); loaded = true; QueueDraw(); } } public int LineWidth { set { lineWidth = value; } } public double Transparency { set { if (value >=0 && value <=1) { transparency = value; drawingarea.QueueDraw(); } } } public Gdk.Color LineColor { set { lineColor = new Cairo.Color((double)value.Red/ushort.MaxValue, (double)value.Green/ushort.MaxValue, (double)value.Blue/ushort.MaxValue); } } public DrawTool DrawTool { set { this.selectedTool = value; switch (selectedTool) { case DrawTool.LINE: case DrawTool.DASHED_LINE: drawingarea.GdkWindow.Cursor = new Cursor(CursorType.DraftSmall); break; case DrawTool.RECTANGLE: case DrawTool.DASHED_RECTANGLE: drawingarea.GdkWindow.Cursor = new Cursor(CursorType.Dotbox); break; case DrawTool.CIRCLE: case DrawTool.DASHED_CIRCLE: drawingarea.GdkWindow.Cursor = new Cursor(CursorType.Circle); break; case DrawTool.CROSS: case DrawTool.DASHED_CROSS: drawingarea.GdkWindow.Cursor = new Cursor(CursorType.XCursor); break; case DrawTool.ERASER: drawingarea.GdkWindow.Cursor = new Cursor(CursorType.Target); break; case DrawTool.PEN: drawingarea.GdkWindow.Cursor = new Cursor(CursorType.Pencil); break; default: drawingarea.GdkWindow.Cursor = new Cursor(CursorType.Arrow); break; } } get { return selectedTool; } } public bool DrawingsVisible { set { visible = value; } } public void ClearDrawing() { drawings.Destroy(); drawings = new ImageSurface(Format.ARGB32,sourceWidth,sourceHeight); QueueDraw(); } public void SaveAll(string filename) { Save(filename,true,true); } public void SaveDrawings(string filename) { Save(filename,false,true); } private void Save(string filename,bool bSource,bool bDrawings) { Surface pngSurface = new ImageSurface(Format.ARGB32,sourceWidth,sourceHeight); using(Context c = new Context(pngSurface)) { if (bSource) { c.SetSourceSurface(source,0,0); c.Paint(); } if (bDrawings) { c.SetSourceSurface(drawings,0,0); c.PaintWithAlpha(transparency); } } pngSurface.WriteToPng(filename); } private void SetContextProperties(Context c, bool dashed) { c.LineCap = LineCap.Round; c.LineJoin = LineJoin.Round; if (selectedTool != DrawTool.ERASER) { c.Color = lineColor; c.LineWidth = lineWidth; c.Operator = Operator.Over; if (dashed) c.SetDash(new double[]{10, 10}, 10); } else { c.Color = new Cairo.Color(0,0,0,0); c.LineWidth = 20; c.Operator = Operator.Source; } } private void ResetDash(Context c){ c.SetDash(new Double[]{10,0}, 0); } private void DrawLine(Context c, bool dashed, double x1, double y1, double x2, double y2) { SetContextProperties(c, dashed); c.MoveTo(x1-xOffset,y1-yOffset); c.LineTo(x2-xOffset,y2-yOffset); c.Stroke(); c.Fill(); ResetDash(c); } private void DrawArrow(Context c, double x1, double y1, double x2, double y2) { double vx1,vy1,vx2,vy2; double angle = Math.Atan2(y2 - y1, x2 - x1) + Math.PI; vx1 = x2 + (ARROW_LENGHT + lineWidth) * Math.Cos(angle - ARROW_DEGREES); vy1 = y2 + (ARROW_LENGHT + lineWidth) * Math.Sin(angle - ARROW_DEGREES); vx2 = x2 + (ARROW_LENGHT + lineWidth) * Math.Cos(angle + ARROW_DEGREES); vy2 = y2 + (ARROW_LENGHT + lineWidth) * Math.Sin(angle + ARROW_DEGREES); c.MoveTo(x2-xOffset,y2-yOffset); c.LineTo(vx1-xOffset,vy1-yOffset); c.MoveTo(x2-xOffset,y2-yOffset); c.LineTo(vx2-xOffset,vy2-yOffset); c.Stroke(); c.Fill(); } private void DrawRectangle(Context c, bool dashed, double x1, double y1, double x2, double y2) { SetContextProperties(c, dashed); c.Rectangle(x1-xOffset,y1-yOffset,x2-x1,y2-y1); c.Stroke(); c.Fill(); ResetDash(c); } private void DrawCross(Context c, bool dashed, double x1, double y1, double x2, double y2) { DrawLine(c, dashed, x1, y1, x2, y2); DrawLine(c, dashed, x2, y1, x1, y2); } private void DrawCircle(Context c, bool dashed, double x1, double y1, double x2, double y2) { double xc,yc,radius,angle1,angle2; xc=x1+(x2-x1)/2 - xOffset; yc=y1+(y2-y1)/2 - yOffset; radius = Math.Sqrt(Math.Pow((x2-x1),2)+ Math.Pow((y2-y1),2)); radius /=2; angle1 = 0.0 * (Math.PI/180); angle2 = 360.0 * (Math.PI/180); SetContextProperties(c, dashed); c.Arc(xc,yc,radius,angle1,angle2); c.Stroke(); c.Fill(); ResetDash(c); } private void Paint(Context c, double x1, double y1, double x2, double y2){ switch (selectedTool) { case DrawTool.LINE: DrawLine(c, false, x1, y1, x2, y2); DrawArrow(c, x1, y1, x2, y2); break; case DrawTool.DASHED_LINE: DrawLine(c, true, x1, y1, x2, y2); DrawArrow(c, x1, y1, x2, y2); break; case DrawTool.RECTANGLE: DrawRectangle(c, false, x1, y1, x2, y2); break; case DrawTool.DASHED_RECTANGLE: DrawRectangle(c, true, x1, y1, x2, y2); break; case DrawTool.CIRCLE: DrawCircle(c, false, x1, y1, x2, y2); break; case DrawTool.DASHED_CIRCLE: DrawCircle(c, true, x1, y1, x2, y2); break; case DrawTool.CROSS: DrawCross(c, false, x1, y1, x2, y2); break; case DrawTool.DASHED_CROSS: DrawCross(c, true, x1, y1, x2, y2); break; default: //lastx=0; //lasty=0; break; } } protected virtual void OnDrawingareaExposeEvent(object o, Gtk.ExposeEventArgs args) { if (!loaded) return; drawingarea.GdkWindow.Clear(); using(Context c = CairoHelper.Create(drawingarea.GdkWindow)) { c.SetSourceSurface(source,xOffset,yOffset); c.Paint(); if (visible) { c.SetSourceSurface(drawings,xOffset,yOffset); c.PaintWithAlpha(transparency); } //Preview if (preview) Paint(c, initialPoint.X+xOffset,initialPoint.Y+yOffset, finalPoint.X+xOffset,finalPoint.Y+yOffset); } } protected virtual void OnDrawingareaButtonPressEvent(object o, Gtk.ButtonPressEventArgs args) { preview = true; initialPoint = new Cairo.PointD(args.Event.X,args.Event.Y); if (selectedTool == DrawTool.PEN || selectedTool == DrawTool.ERASER) { lastx = args.Event.X; lasty = args.Event.Y; if (args.Event.Button == 1) { using(Context c = new Context(drawings)) { DrawLine(c,false, args.Event.X,args.Event.Y,args.Event.X,args.Event.Y); } } } } protected virtual void OnDrawingareaButtonReleaseEvent(object o, Gtk.ButtonReleaseEventArgs args) { preview = false; finalPoint = new Cairo.PointD(args.Event.X,args.Event.Y); using(Context c = new Context(drawings)) { Paint (c, initialPoint.X,initialPoint.Y,finalPoint.X,finalPoint.Y); } QueueDraw(); } protected virtual void OnDrawingareaMotionNotifyEvent(object o, Gtk.MotionNotifyEventArgs args) { finalPoint = new Cairo.PointD(args.Event.X,args.Event.Y); if (selectedTool == DrawTool.PEN || selectedTool == DrawTool.ERASER) { using(Context c = new Context(drawings)) { DrawLine(c,false,lastx,lasty,args.Event.X,args.Event.Y); } lastx = args.Event.X; lasty = args.Event.Y; } QueueDraw(); } protected virtual void OnDrawingareaSizeAllocated(object o, Gtk.SizeAllocatedArgs args) { // Center the source in the drawing area if its size // is smaller than the drawing area one if (args.Allocation.Width > sourceWidth) xOffset = (Allocation.Width - sourceWidth) / 2; else xOffset = 0; if (args.Allocation.Height > sourceHeight) yOffset = (Allocation.Height -sourceHeight) / 2; else yOffset = 0; } protected virtual void OnDrawingareaConfigureEvent(object o, Gtk.ConfigureEventArgs args) { // We can't set the cursor until the Gdk.Window exists DrawTool = selectedTool; } } } longomatch-0.16.8/LongoMatch/Gui/Component/TaggerWidget.cs0000644000175000017500000000662211601631101020303 00000000000000// // Copyright (C) 2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.Collections.Generic; using Gtk; using LongoMatch.TimeNodes; using LongoMatch.DB; using LongoMatch.Handlers; namespace LongoMatch.Gui.Component { [System.ComponentModel.ToolboxItem(true)] public partial class TaggerWidget : Gtk.Bin { private Dictionary tagsDict; public TaggerWidget() { this.Build(); tagsDict = new Dictionary(); table1.NColumns = 5; } public TagsTemplate ProjectsTags{ set{ int tagsCount = value.Count(); scrolledwindow1.Visible = tagsCount > 0; label1.Visible = !(tagsCount > 0); tagsDict.Clear(); foreach (Widget w in table1.AllChildren){ w.Unrealize(); table1.Remove(w); } for(int i=0;i Tags{ set{ CheckButton button = null; foreach (Tag tag in value){ if (tagsDict.TryGetValue(tag, out button)) button.Active = true; } } get{ List list = new List(); foreach (KeyValuePair pair in tagsDict){ if (pair.Value.Active) list.Add(pair.Key); } return list; } } private void AddTag(string text, bool check){ Tag tag = new Tag(text); if (tagsDict.ContainsKey(tag)) return; AddTagWidget(tag, check); } private void AddTagWidget(Tag tag, bool check){ CheckButton button = new CheckButton(tag.Text); button.Name = tag.Text; AddElementToTable(button); button.Active = check; tagsDict.Add(tag, button); } private void AddElementToTable(CheckButton button){ uint row_top,row_bottom,col_left,col_right; int index = tagsDict.Count; table1.NRows =(uint) (index/5 + 1); row_top =(uint) (index/table1.NColumns); row_bottom = (uint) row_top+1 ; col_left = (uint) index%table1.NColumns; col_right = (uint) col_left+1 ; table1.Attach(button,col_left,col_right,row_top,row_bottom); button.Show(); } protected virtual void OnTagbuttonClicked (object sender, System.EventArgs e) { Tag tag; CheckButton button; // Don't allow tags with void strings if (entry1.Text == "") return; // Check if it's the first tag and show the tags table if (tagsDict.Count == 0){ scrolledwindow1.Visible = true; label1.Visible = false; } tag = new Tag(entry1.Text); if (tagsDict.TryGetValue(tag, out button)) button.Active = true; else AddTag(entry1.Text, true); entry1.Text = ""; } protected virtual void OnEntry1Activated (object sender, System.EventArgs e) { tagbutton.Click(); } } }longomatch-0.16.8/LongoMatch/Gui/Component/ProjectListWidget.cs0000644000175000017500000001517311601631101021335 00000000000000// ProjectListWidget.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using System.IO; using Mono.Unix; using Gtk; using Db4objects.Db4o; using LongoMatch.DB; using LongoMatch.Handlers; using LongoMatch.TimeNodes; using LongoMatch.Video.Utils; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class ProjectListWidget : Gtk.Bin { private Gtk.ListStore projectsListStore; private List projectsList; private TreeModelFilter filter; public event ProjectsSelectedHandler ProjectsSelected; public ProjectListWidget() { this.Build(); projectsListStore = new Gtk.ListStore(typeof(Project)); Gtk.TreeViewColumn fileDescriptionColumn = new Gtk.TreeViewColumn(); fileDescriptionColumn.Title = Catalog.GetString("Filename"); Gtk.CellRendererText filenameCell = new Gtk.CellRendererText(); Gtk.CellRendererText filePropertiesCell = new Gtk.CellRendererText(); Gtk.CellRendererPixbuf miniatureCell = new Gtk.CellRendererPixbuf(); fileDescriptionColumn.PackStart(miniatureCell,false); fileDescriptionColumn.PackStart(filenameCell, true); fileDescriptionColumn.PackStart(filePropertiesCell, true); fileDescriptionColumn.SetCellDataFunc(filenameCell, new Gtk.TreeCellDataFunc(RenderName)); fileDescriptionColumn.SetCellDataFunc(filePropertiesCell, new Gtk.TreeCellDataFunc(RenderProperties)); fileDescriptionColumn.SetCellDataFunc(miniatureCell, new Gtk.TreeCellDataFunc(RenderPixbuf)); treeview.AppendColumn(fileDescriptionColumn); treeview.EnableGridLines = TreeViewGridLines.Horizontal; treeview.HeadersVisible = false; } public SelectionMode SelectionMode { set { treeview.Selection.Mode = value; } } public void RemoveProjects(List projects) { /* FIXME: to delete projects from the treeview we need to remove the filter * and clear everything, otherwise we have seen several crashes trying * to render cells with an invalid iter. It's not very performant, but * it's safe. */ treeview.Model = projectsListStore; projectsListStore.Clear(); foreach (ProjectDescription project in projects) projectsList.Remove(project); Fill(projectsList); } public void Fill(List projects) { projectsList = projects; projectsList.Sort(); projectsListStore.Clear(); foreach (ProjectDescription project in projectsList) projectsListStore.AppendValues(project); filter = new Gtk.TreeModelFilter(projectsListStore, null); filter.VisibleFunc = new Gtk.TreeModelFilterVisibleFunc(FilterTree); treeview.Model = filter; treeview.Selection.Mode = SelectionMode.Multiple; treeview.Selection.Changed += OnSelectionChanged; } public void ClearSearch() { filterEntry.Text=""; } private void RenderPixbuf(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { ProjectDescription project = (ProjectDescription) model.GetValue(iter, 0); (cell as Gtk.CellRendererPixbuf).Pixbuf= project.Preview; } private void RenderProperties(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { string text; ProjectDescription project = (ProjectDescription) model.GetValue(iter, 0); text = "\n"+"\n"+"\n"+""+Catalog.GetString("File length")+": " + project.Length.ToSecondsString(); text = text +"\n"+""+Catalog.GetString("Video codec")+": " + project.VideoCodec; text = text +"\n"+""+Catalog.GetString("Audio codec")+": " + project.AudioCodec; text = text +"\n"+""+Catalog.GetString("Format")+": " + project.Format; (cell as Gtk.CellRendererText).Markup = text; } private void RenderName(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { string text; ProjectDescription project = (ProjectDescription) model.GetValue(iter, 0); text = ""+Catalog.GetString("Title")+": " + project.Title; text = text +"\n"+""+Catalog.GetString("Local team")+": " + project.LocalName; text = text +"\n"+""+Catalog.GetString("Visitor team")+": " + project.VisitorName; text = text +"\n"+""+Catalog.GetString("Season")+": " + project.Season; text = text +"\n"+""+Catalog.GetString("Competition")+": " + project.Competition; text = text +"\n"+""+Catalog.GetString("Result")+": " + project.LocalGoals+"-"+ project.VisitorGoals; text = text +"\n"+""+Catalog.GetString("Date")+": " + project.MatchDate.ToShortDateString(); (cell as Gtk.CellRendererText).Markup = text; } protected virtual void OnFilterentryChanged(object sender, System.EventArgs e) { filter.Refilter(); } private bool FilterTree(Gtk.TreeModel model, Gtk.TreeIter iter) { ProjectDescription project =(ProjectDescription) model.GetValue(iter, 0); if (project == null) return true; if (filterEntry.Text == "") return true; if (project.Title.IndexOf(filterEntry.Text) > -1) return true; else if (project.Season.IndexOf(filterEntry.Text) > -1) return true; else if (project.Competition.IndexOf(filterEntry.Text) > -1) return true; else if (project.LocalName.IndexOf(filterEntry.Text) > -1) return true; else if (project.VisitorName.IndexOf(filterEntry.Text) > -1) return true; else return false; } protected virtual void OnSelectionChanged (object o, EventArgs args){ TreeIter iter; List list; TreePath[] pathArray; list = new List(); pathArray = treeview.Selection.GetSelectedRows(); for (int i=0; i< pathArray.Length; i++){ treeview.Model.GetIterFromString (out iter, pathArray[i].ToString()); list.Add((ProjectDescription) treeview.Model.GetValue(iter, 0)); } if (ProjectsSelected != null) ProjectsSelected(list); } } } longomatch-0.16.8/LongoMatch/Gui/Component/ButtonsWidget.cs0000644000175000017500000000674111601631101020532 00000000000000// ButtonsWidget.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gtk; using LongoMatch.DB; using LongoMatch.Common; using LongoMatch.Handlers; using LongoMatch.TimeNodes; using System.Collections.Generic; namespace LongoMatch.Gui.Component { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class ButtonsWidget : Gtk.Bin { private Sections sections; private TagMode tagMode; public event NewMarkEventHandler NewMarkEvent; public event NewMarkStartHandler NewMarkStartEvent; public event NewMarkStopHandler NewMarkStopEvent; public ButtonsWidget() { this.Build(); Mode = TagMode.Predifined; } public TagMode Mode{ set{ bool isPredef = (value == TagMode.Predifined); table1.Visible = isPredef; starttagbutton.Visible = !isPredef; cancelbutton.Visible = false; tagMode = value; } } public Sections Sections { set { foreach (Widget w in table1.AllChildren) { table1.Remove(w); w.Destroy(); } sections = value; if (value == null) return; int sectionsCount = value.Count; table1.NColumns =(uint) 10; table1.NRows =(uint)(sectionsCount/10); for (int i=0;i AvailableTemplates { set { if (value.Count > 0){ foreach (String text in value) combobox.AppendText(text); setAvailableTemplatesVisible(true); combobox.Active = 0; } else setAvailableTemplatesVisible(false); } } public string SelectedTemplate { get { if (checkbutton.Active) return combobox.ActiveText; else return null; } } private void setAvailableTemplatesVisible(bool visible){ combobox.Visible = visible; existentemplatelabel.Visible = visible; checkbutton.Visible = visible; } protected virtual void OnCheckbuttonToggled (object sender, System.EventArgs e) { bool active = checkbutton.Active; if (ShowCount){ playerslabel.Sensitive = !active; playersspinbutton.Sensitive = !active; } combobox.Sensitive = active; } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/EndCaptureDialog.cs0000644000175000017500000000235511601631101020334 00000000000000// // Copyright (C) 2010 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using LongoMatch.Common; namespace LongoMatch.Gui.Dialog { public partial class EndCaptureDialog : Gtk.Dialog { public EndCaptureDialog() { this.Build(); } protected virtual void OnQuit (object sender, System.EventArgs e) { if (sender == quitbutton) Respond((int)EndCaptureResponse.Quit); else if (sender == savebutton) Respond((int)EndCaptureResponse.Save); else Respond((int)EndCaptureResponse.Return); } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/EditCategoryDialog.cs0000644000175000017500000000347711601631101020673 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.Collections.Generic; using Gtk; using LongoMatch.TimeNodes; using LongoMatch.Handlers; using LongoMatch.Gui.Component; using LongoMatch.Gui; using Mono.Unix; namespace LongoMatch.Gui.Dialog { public partial class EditCategoryDialog : Gtk.Dialog { private List hkList; public EditCategoryDialog() { this.Build(); timenodeproperties2.HotKeyChanged += OnHotKeyChanged; } public SectionsTimeNode Section { set { timenodeproperties2.Section = value; } } public List HotKeysList { set { hkList = value; } } protected virtual void OnHotKeyChanged(HotKey prevHotKey,SectionsTimeNode section) { if (hkList.Contains(section.HotKey)) { MessagePopup.PopupMessage(this,MessageType.Warning, Catalog.GetString("This hotkey is already in use.")); section.HotKey=prevHotKey; timenodeproperties2.Section=section; //Update Gui } else if (section.HotKey.Defined){ hkList.Remove(prevHotKey); hkList.Add(section.HotKey); } } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/TeamTemplateEditor.cs0000644000175000017500000000222611601631101020710 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using LongoMatch.DB; namespace LongoMatch.Gui.Dialog { public partial class TeamTemplateEditor : Gtk.Dialog { public TeamTemplateEditor() { this.Build(); } public void SetTeamTemplate(TeamTemplate template) { teamtemplatewidget1.TeamTemplate=template; } public TeamTemplate GetTeamTemplate() { return teamtemplatewidget1.TeamTemplate; } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/TaggerDialog.cs0000644000175000017500000000237511601631101017515 00000000000000// // Copyright (C) 2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.Collections.Generic; using LongoMatch.DB; using LongoMatch.TimeNodes; namespace LongoMatch.Gui.Dialog { public partial class TaggerDialog : Gtk.Dialog { public TaggerDialog() { this.Build(); buttonOk.Visible = false; } public TagsTemplate ProjectTags{ set{ taggerwidget1.ProjectsTags = value; } } public List Tags{ set{ taggerwidget1.Tags = value; } get{ return taggerwidget1.Tags; } } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/OpenProjectDialog.cs0000644000175000017500000000310411601631101020523 00000000000000// OpenProjectDialog.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using Gtk; using LongoMatch.DB; namespace LongoMatch.Gui.Dialog { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(false)] public partial class OpenProjectDialog : Gtk.Dialog { public OpenProjectDialog() { this.Build(); this.Fill(); projectlistwidget.SelectionMode = SelectionMode.Single; } public ProjectDescription SelectedProject { get; set; } public void Fill() { projectlistwidget.Fill(MainClass.DB.GetAllProjects()); } protected virtual void OnProjectlistwidgetProjectsSelected (List projects) { buttonOk.Sensitive = (projects.Count == 1); SelectedProject = projects[0]; } } }longomatch-0.16.8/LongoMatch/Gui/Dialog/Win32CalendarDialog.cs0000644000175000017500000000252311601631101020633 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using Gtk; namespace LongoMatch.Gui.Dialog { public partial class Win32CalendarDialog : Gtk.Dialog { DateTime selectedDate; public Win32CalendarDialog() { this.Build(); } public DateTime getSelectedDate() { return selectedDate; } protected virtual void OnCalendar1DaySelectedDoubleClick(object sender, System.EventArgs e) { selectedDate = calendar1.Date; this.Respond(ResponseType.Accept); } protected virtual void OnCalendar1DaySelected(object sender, System.EventArgs e) { selectedDate = calendar1.Date; } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/Migrator.cs0000644000175000017500000000724711601631101016753 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.IO; using LongoMatch.Compat; namespace LongoMatch.Gui.Dialog { public partial class Migrator : Gtk.Dialog { DatabaseMigrator dbMigrator; PlayListMigrator plMigrator; TemplatesMigrator tpMigrator; bool plFinished; bool dbFinished; bool tpFinished; public Migrator(string oldHomeFolder) { this.Build(); CheckDataBase(oldHomeFolder); CheckPlayLists(oldHomeFolder); CheckTemplates(oldHomeFolder); } private void CheckDataBase(string oldHomeFolder) { string oldDBFile = System.IO.Path.Combine(oldHomeFolder,"db/db.yap"); if (File.Exists(oldDBFile)) { dbMigrator = new DatabaseMigrator(oldDBFile); dbMigrator.ConversionProgressEvent += new ConversionProgressHandler(OnDBProgress); dbMigrator.Start(); } else { dbtextview.Buffer.Text = "No database to import"; dbFinished = true; } } private void CheckPlayLists(string oldHomeFolder) { string[] playlistFiles; playlistFiles = Directory.GetFiles(System.IO.Path.Combine(oldHomeFolder,"playlists"),"*.lgm"); if (playlistFiles.Length != 0) { plMigrator = new PlayListMigrator(playlistFiles); plMigrator.ConversionProgressEvent += new ConversionProgressHandler(OnPLProgress); plMigrator.Start(); } else { pltextview.Buffer.Text = "No playlists to import"; plFinished = true; } } private void CheckTemplates(string oldHomeFolder) { string[] templatesFiles; templatesFiles = Directory.GetFiles(System.IO.Path.Combine(oldHomeFolder,"templates"),"*.sct"); if (templatesFiles.Length != 0) { tpMigrator = new TemplatesMigrator(templatesFiles); tpMigrator.ConversionProgressEvent += new ConversionProgressHandler(OnTPProgress); tpMigrator.Start(); } else { tptextview.Buffer.Text = "No templates to import"; tpFinished = true; } } protected void OnDBProgress(string progress) { dbtextview.Buffer.Text+=progress+"\n"; if (progress == DatabaseMigrator.DONE) { dbFinished = true; if (dbFinished && plFinished && tpFinished) { buttonCancel.Visible=false; buttonOk.Visible=true; } } } protected void OnPLProgress(string progress) { pltextview.Buffer.Text+=progress+"\n"; if (progress == PlayListMigrator.DONE) { plFinished = true; if (dbFinished && plFinished && tpFinished) { buttonCancel.Visible=false; buttonOk.Visible=true; } } } protected void OnTPProgress(string progress) { tptextview.Buffer.Text+=progress+"\n"; if (progress == TemplatesMigrator.DONE) { tpFinished = true; if (dbFinished && plFinished && tpFinished) { buttonCancel.Visible=false; buttonOk.Visible=true; } } } protected virtual void OnButtonCancelClicked(object sender, System.EventArgs e) { if (dbMigrator != null) dbMigrator.Cancel(); if (plMigrator != null) plMigrator.Cancel(); if (tpMigrator != null) tpMigrator.Cancel(); } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/EditPlayerDialog.cs0000644000175000017500000000213111601631101020334 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using LongoMatch.TimeNodes; namespace LongoMatch.Gui.Dialog { public partial class EditPlayerDialog : Gtk.Dialog { public EditPlayerDialog() { this.Build(); } public Player Player { set { playerproperties1.Player = value; } get { return playerproperties1.Player; } } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/DrawingTool.cs0000644000175000017500000000711611601631101017413 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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 // using System; using Gdk; using Gtk; using Mono.Unix; using LongoMatch.Gui.Component; using LongoMatch.TimeNodes; namespace LongoMatch.Gui.Dialog { public partial class DrawingTool : Gtk.Dialog { private MediaTimeNode play; private int stopTime; public DrawingTool() { this.Build(); drawingtoolbox1.DrawToolChanged += OnDrawingtoolbox1DrawToolChanged; drawingtoolbox1.TransparencyChanged += OnDrawingtoolbox1TransparencyChanged; drawingtoolbox1.ToolsVisible = true; drawingtoolbox1.InfoVisible = false; } ~ DrawingTool() { drawingwidget1.Destroy(); } public Pixbuf Image { set { drawingwidget1.SourceImage = value; } } public void SetPlay(MediaTimeNode play,int stopTime) { this.play = play; this.stopTime = stopTime; savetoprojectbutton.Visible = true; } protected virtual void OnDrawingtoolbox1LineWidthChanged(int width) { drawingwidget1.LineWidth = width; } protected virtual void OnDrawingtoolbox1ColorChanged(Gdk.Color color) { drawingwidget1.LineColor = color; } protected virtual void OnDrawingtoolbox1VisibilityChanged(bool visible) { drawingwidget1.DrawingsVisible = visible; } protected virtual void OnDrawingtoolbox1ClearDrawing() { drawingwidget1.ClearDrawing(); } protected virtual void OnDrawingtoolbox1DrawToolChanged(DrawTool tool) { drawingwidget1.DrawTool = tool; } protected virtual void OnDrawingtoolbox1TransparencyChanged(double transparency) { drawingwidget1.Transparency = transparency; } protected virtual void OnSavebuttonClicked(object sender, System.EventArgs e) { string filename; FileChooserDialog fChooser; FileFilter filter = new FileFilter(); filter.Name = "PNG Images"; filter.AddPattern("*.png"); fChooser = new FileChooserDialog(Catalog.GetString("Save File as..."), (Gtk.Window)this.Toplevel, FileChooserAction.Save, "gtk-cancel",ResponseType.Cancel, "gtk-save",ResponseType.Accept); fChooser.SetCurrentFolder(MainClass.SnapshotsDir()); fChooser.Filter = filter; fChooser.DoOverwriteConfirmation = true; if (fChooser.Run() == (int)ResponseType.Accept) { filename = fChooser.Filename; if (System.IO.Path.GetExtension(filename) != "png") filename += ".png"; drawingwidget1.SaveAll(filename); } fChooser.Destroy(); } protected virtual void OnSavetoprojectbuttonClicked(object sender, System.EventArgs e) { string tempFile = System.IO.Path.GetTempFileName(); drawingwidget1.SaveDrawings(tempFile); Pixbuf frame = new Pixbuf(tempFile); play.KeyFrameDrawing =new Drawing(frame,stopTime); drawingwidget1.SaveAll(tempFile); frame.Dispose(); play.Miniature = new Pixbuf(tempFile); } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/NewProjectDialog.cs0000644000175000017500000000312011601631101020351 00000000000000// NewProjectDialog.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using LongoMatch.DB; using LongoMatch.Common; using LongoMatch.Video.Capturer; using LongoMatch.Video.Utils; namespace LongoMatch.Gui.Dialog { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(false)] public partial class NewProjectDialog : Gtk.Dialog { public NewProjectDialog() { this.Build(); fdwidget.Clear(); } public ProjectType Use { set { fdwidget.Use = value; } } public Project Project{ get { return fdwidget.GetProject(); } set{ fdwidget.SetProject(value); } } public List Devices { set{ fdwidget.FillDevices(value); } } public CapturePropertiesStruct CaptureProperties{ get{ return fdwidget.CaptureProperties; } } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/UpdateDialog.cs0000644000175000017500000000224711601631101017524 00000000000000// UpdateDialog.cs // // Copyright (C) 2009 Andoni Morales // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; namespace LongoMatch.Gui.Dialog { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(false)] public partial class UpdateDialog : Gtk.Dialog { public UpdateDialog() { this.Build(); } public void Fill(Version version, string URL) { this.label5.Text = "The new version is: LongoMatch "+version.ToString(); this.label7.Text = URL; } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/VideoEditionProperties.cs0000644000175000017500000001245311601631101021621 00000000000000// VideoEditionProperties.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gtk; using Mono.Unix; using LongoMatch.Video.Editor; using LongoMatch.Video.Common; using LongoMatch.Common; namespace LongoMatch.Gui.Dialog { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(false)] public partial class VideoEditionProperties : Gtk.Dialog { private VideoQuality vq; private VideoFormat vf; private VideoEncoderType vcodec; private AudioEncoderType acodec; private VideoMuxerType muxer; #region Constructors public VideoEditionProperties() { this.Build(); formatcombobox.AppendText(Constants.MP4); formatcombobox.AppendText(Constants.AVI); if (System.Environment.OSVersion.Platform != PlatformID.Win32NT) { formatcombobox.AppendText(Constants.WEBM); formatcombobox.AppendText(Constants.OGG); formatcombobox.AppendText(Constants.DVD); } formatcombobox.Active=0; } #endregion #region Properties public VideoQuality VideoQuality { get { return vq; } } public VideoEncoderType VideoEncoderType { get { return vcodec; } } public AudioEncoderType AudioEncoderType { get { return acodec; } } public VideoMuxerType VideoMuxer { get { return muxer; } } public string Filename { get { return fileentry.Text; } } public bool EnableAudio { get { return audiocheckbutton.Active; } } public bool TitleOverlay { get { return descriptioncheckbutton.Active; } } public VideoFormat VideoFormat { get { return vf; } } #endregion Properties #region Private Methods private string GetExtension() { if (formatcombobox.ActiveText == Constants.MP4) return "mp4"; else if (formatcombobox.ActiveText == Constants.OGG) return "ogg"; else if (formatcombobox.ActiveText == Constants.WEBM) return "webm"; else if (formatcombobox.ActiveText == Constants.AVI) return "avi"; else return "mpg"; } #endregion protected virtual void OnButtonOkClicked(object sender, System.EventArgs e) { if (qualitycombobox.ActiveText == Catalog.GetString("Low")) { vq = VideoQuality.Low; } else if (qualitycombobox.ActiveText == Catalog.GetString("Normal")) { vq = VideoQuality.Normal; } else if (qualitycombobox.ActiveText == Catalog.GetString("Good")) { vq = VideoQuality.Good; } else if (qualitycombobox.ActiveText == Catalog.GetString("Extra")) { vq = VideoQuality.Extra; } vf = (VideoFormat)sizecombobox.Active; if (formatcombobox.ActiveText == Constants.MP4) { vcodec = VideoEncoderType.H264; acodec = AudioEncoderType.Aac; muxer = VideoMuxerType.Mp4; } else if (formatcombobox.ActiveText == Constants.OGG) { vcodec = VideoEncoderType.Theora; acodec = AudioEncoderType.Vorbis; muxer = VideoMuxerType.Ogg; } else if (formatcombobox.ActiveText == Constants.WEBM) { vcodec = VideoEncoderType.VP8; acodec = AudioEncoderType.Vorbis; muxer = VideoMuxerType.WebM; } else if (formatcombobox.ActiveText == Constants.AVI) { vcodec = VideoEncoderType.Xvid; acodec = AudioEncoderType.Mp3; muxer = VideoMuxerType.Avi; } else if (formatcombobox.ActiveText == Constants.DVD) { vcodec = VideoEncoderType.Mpeg2; acodec = AudioEncoderType.Mp3; muxer = VideoMuxerType.MpegPS; } Hide(); } protected virtual void OnOpenbuttonClicked(object sender, System.EventArgs e) { FileChooserDialog fChooser = new FileChooserDialog(Catalog.GetString("Save Video As ..."), this, FileChooserAction.Save, "gtk-cancel",ResponseType.Cancel, "gtk-save",ResponseType.Accept); fChooser.SetCurrentFolder(MainClass.VideosDir()); fChooser.CurrentName = "NewVideo."+GetExtension(); fChooser.DoOverwriteConfirmation = true; FileFilter filter = new FileFilter(); filter.Name = "Multimedia Files"; filter.AddPattern("*.mkv"); filter.AddPattern("*.mp4"); filter.AddPattern("*.ogg"); filter.AddPattern("*.avi"); filter.AddPattern("*.mpg"); filter.AddPattern("*.vob"); fChooser.Filter = filter; if (fChooser.Run() == (int)ResponseType.Accept) { fileentry.Text = fChooser.Filename; } fChooser.Destroy(); } protected virtual void OnButtonCancelClicked (object sender, System.EventArgs e) { this.Destroy(); } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/BusyDialog.cs0000644000175000017500000000213211601631101017215 00000000000000// // Copyright (C) 2010 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; namespace LongoMatch.Gui.Dialog { public partial class BusyDialog : Gtk.Window { public BusyDialog() : base(Gtk.WindowType.Toplevel) { this.Build(); } public string Message { set{ messagelabel.Text = value; } } public void Pulse(){ progressbar1.Pulse(); } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs0000644000175000017500000000460111601631101021563 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.Collections.Generic; using Gtk; using LongoMatch.DB; using LongoMatch.TimeNodes; namespace LongoMatch.Gui.Dialog { public partial class PlayersSelectionDialog : Gtk.Dialog { TeamTemplate template; Dictionary checkButtonsDict; public PlayersSelectionDialog() { this.Build(); checkButtonsDict = new Dictionary(); } public void SetPlayersInfo(TeamTemplate template) { CheckButton button; Player player; int playersCount=0; if (this.template != null) return; this.template = template; table1.NColumns =(uint)(template.PlayersCount/10); table1.NRows =(uint) 10; for (int i=0;i PlayersChecked { set { foreach (int player in checkButtonsDict.Keys) checkButtonsDict[player].Active = value.Contains(player); } get { List playersList = new List(); foreach (int player in checkButtonsDict.Keys) { if (checkButtonsDict[player].Active) playersList.Add (player); } return playersList; } } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/FramesCaptureProgressDialog.cs0000644000175000017500000000404211601631101022563 00000000000000// FramesCaptureProgressDialog.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gtk; using Gdk; using Mono.Unix; using LongoMatch.Video.Utils; using LongoMatch.Video.Common; namespace LongoMatch.Gui.Dialog { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(false)] public partial class FramesCaptureProgressDialog : Gtk.Dialog { private FramesSeriesCapturer capturer; public FramesCaptureProgressDialog(FramesSeriesCapturer capturer) { this.Build(); this.Deletable = false; this.capturer = capturer; capturer.Progress += new FramesProgressHandler(Update); capturer.Start(); } protected virtual void Update(int actual, int total,Pixbuf frame) { if (actual <= total) { progressbar.Text= Catalog.GetString("Capturing frame: ")+actual+"/"+total; progressbar.Fraction = (double)actual/(double)total; if (frame != null) { if (image.Pixbuf != null) image.Pixbuf.Dispose(); image.Pixbuf = frame; } } if (actual == total) { progressbar.Text= Catalog.GetString("Done"); cancelbutton.Visible = false; okbutton.Visible = true; } } protected virtual void OnButtonCancelClicked(object sender, System.EventArgs e) { capturer.Cancel(); } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/SnapshotsDialog.cs0000644000175000017500000000253111601631101020260 00000000000000// SnapshotsDialog.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using LongoMatch.TimeNodes; using LongoMatch.Handlers; namespace LongoMatch.Gui.Dialog { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(false)] public partial class SnapshotsDialog : Gtk.Dialog { public SnapshotsDialog() { this.Build(); } public string Play { set { playLabel.Text = value; entry1.Text = value; } } public uint Interval { get { return 1000/(uint)spinbutton1.Value; } } public string SeriesName { get { return entry1.Text; } } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/HotKeySelectorDialog.cs0000644000175000017500000000416211601631101021204 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gtk; using Gdk; using LongoMatch.TimeNodes; namespace LongoMatch.Gui.Dialog { public partial class HotKeySelectorDialog : Gtk.Dialog { HotKey hotKey; #region Constructors public HotKeySelectorDialog() { hotKey = new HotKey(); this.Build(); } #endregion #region Properties public HotKey HotKey { get { return this.hotKey; } } #endregion #region Overrides protected override bool OnKeyPressEvent(Gdk.EventKey evnt) { Gdk.Key key = evnt.Key; ModifierType modifier = evnt.State; // Only react to {Shift|Alt|Ctrl}+key // Ctrl is a modifier to select single keys // Combination are allowed with Alt and Shift (Ctrl is not allowed to avoid // conflicts with menus shortcuts) if ((modifier & (ModifierType.Mod1Mask | ModifierType.ShiftMask | ModifierType.ControlMask)) != 0 && key != Gdk.Key.Shift_L && key != Gdk.Key.Shift_R && key != Gdk.Key.Alt_L && key != Gdk.Key.Control_L && key != Gdk.Key.Control_R) { hotKey.Key = key; hotKey.Modifier = modifier & (ModifierType.Mod1Mask | ModifierType.ShiftMask); this.Respond(ResponseType.Ok); } return base.OnKeyPressEvent(evnt); } #endregion } } longomatch-0.16.8/LongoMatch/Gui/Dialog/TemplatesEditor.cs0000644000175000017500000002163511601631101020271 00000000000000// TemplatesManager.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using System.IO; using Gtk; using Mono.Unix; using LongoMatch.DB; using LongoMatch.IO; namespace LongoMatch.Gui.Dialog { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(false)] public partial class TemplatesManager : Gtk.Dialog { public enum UseType { TeamTemplate, SectionsTemplate, } private Gtk.ListStore dataFileListStore; private Sections selectedSectionsTemplate; private TeamTemplate selectedTeamTemplate; private UseType useType; private string templateName; private string fileExtension; public TemplatesManager(UseType type) { this.Build(); Gtk.TreeViewColumn templateFileColumn = new Gtk.TreeViewColumn(); templateFileColumn.Title = Catalog.GetString("Templates Files"); Gtk.CellRendererText templateFileCell = new Gtk.CellRendererText(); templateFileColumn.PackStart(templateFileCell, true); templateFileColumn.SetCellDataFunc(templateFileCell, new Gtk.TreeCellDataFunc(RenderTemplateFile)); treeview.AppendColumn(templateFileColumn); Use = type; sectionspropertieswidget1.CanExport = false; } public UseType Use { set { useType = value; if (useType == UseType.TeamTemplate) { fileExtension = ".tem"; teamtemplatewidget1.Visible = true; } else { fileExtension=".sct"; sectionspropertieswidget1.Visible = true; } Fill(); } } //Recorrer el directorio en busca de los archivos de configuración validos private void Fill() { string[] allFiles = System.IO.Directory.GetFiles(MainClass.TemplatesDir(),"*"+fileExtension); dataFileListStore = new Gtk.ListStore(typeof(string)); foreach (string filePath in allFiles) { dataFileListStore.AppendValues(filePath); } treeview.Model = dataFileListStore; } private void RenderTemplateFile(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { string _templateFilePath = (string) model.GetValue(iter, 0); (cell as Gtk.CellRendererText).Text = System.IO.Path.GetFileNameWithoutExtension(_templateFilePath.ToString()); } public void SetSectionsTemplate(Sections sections) { if (useType != UseType.SectionsTemplate) return; sectionspropertieswidget1.Sections=sections; } public void SetTeamTemplate(TeamTemplate template) { if (useType != UseType.TeamTemplate) return; teamtemplatewidget1.TeamTemplate=template; } private void UpdateSections() { SectionsReader sr = new SectionsReader(templateName); selectedSectionsTemplate = sr.GetSections(); SetSectionsTemplate(sr.GetSections()); SetSensitive(true); } private void UpdateTeamTemplate() { SetTeamTemplate(TeamTemplate.LoadFromFile(templateName)); SetSensitive(true); } private void SetSensitive(bool sensitive) { if (useType == UseType.SectionsTemplate) sectionspropertieswidget1.Sensitive = true; else teamtemplatewidget1.Sensitive = true; savebutton.Sensitive = sensitive; deletebutton.Sensitive = sensitive; } private void SelectTemplate(string templateName) { TreeIter iter; string tName; ListStore model = (ListStore)treeview.Model; model.GetIterFirst(out iter); while (model.IterIsValid(iter)) { tName = System.IO.Path.GetFileNameWithoutExtension((string) model.GetValue(iter,0)); if (tName == templateName) { //Do not delete 'this' as we want to change the class attribute this.templateName = templateName = (string) this.dataFileListStore.GetValue(iter, 0); treeview.SetCursor(model.GetPath(iter),null,false); return; } model.IterNext(ref iter); } } private void SaveTemplate() { if (useType == UseType.SectionsTemplate) { selectedSectionsTemplate = sectionspropertieswidget1.Sections; SectionsWriter.UpdateTemplate(templateName,selectedSectionsTemplate); } else { selectedTeamTemplate = teamtemplatewidget1.TeamTemplate; selectedTeamTemplate.Save(templateName); } } private void PromptForSave() { MessageDialog mes = new MessageDialog(this,DialogFlags.Modal,MessageType.Question,ButtonsType.YesNo, Catalog.GetString("The template has been modified. Do you want to save it? ")); if (mes.Run() == (int)ResponseType.Yes) { SaveTemplate(); } mes.Destroy(); } protected virtual void OnSavebuttonClicked(object sender, System.EventArgs e) { SaveTemplate(); sectionspropertieswidget1.Edited=false; teamtemplatewidget1.Edited=false; } protected virtual void OnNewbuttonClicked(object sender, System.EventArgs e) { string name; int count; string [] templates = null; List availableTemplates = new List(); EntryDialog ed= new EntryDialog(); ed.Title = Catalog.GetString("Template name"); if (useType == UseType.TeamTemplate){ ed.ShowCount=true; } templates = System.IO.Directory.GetFiles(MainClass.TemplatesDir()); foreach (String text in templates){ string templateName = System.IO.Path.GetFileName(text); if (templateName.EndsWith(fileExtension) && templateName != "default"+fileExtension) availableTemplates.Add(templateName); } ed.AvailableTemplates = availableTemplates; if (ed.Run() == (int)ResponseType.Ok) { name = ed.Text; count = ed.Count; if (name == "") { MessagePopup.PopupMessage(ed, MessageType.Warning, Catalog.GetString("You cannot create a template with a void name")); ed.Destroy(); return; } if (System.IO.File.Exists(System.IO.Path.Combine(MainClass.TemplatesDir(),name+fileExtension))) { MessagePopup.PopupMessage(ed, MessageType.Warning, Catalog.GetString("A template with this name already exists")); ed.Destroy(); return; } if (ed.SelectedTemplate != null) System.IO.File.Copy(System.IO.Path.Combine(MainClass.TemplatesDir(),ed.SelectedTemplate), System.IO.Path.Combine(MainClass.TemplatesDir(),name+fileExtension)); else if (useType == UseType.SectionsTemplate){ SectionsWriter.CreateNewTemplate(name+fileExtension); } else { TeamTemplate tt = new TeamTemplate(); tt.CreateDefaultTemplate(count); tt.Save(System.IO.Path.Combine(MainClass.TemplatesDir(), name+fileExtension)); } Fill(); SelectTemplate(name); } ed.Destroy(); } protected virtual void OnDeletebuttonClicked(object sender, System.EventArgs e) { if (System.IO.Path.GetFileNameWithoutExtension(templateName) =="default") { MessagePopup.PopupMessage(this,MessageType.Warning,Catalog.GetString("You can't delete the 'default' template")); return; } MessageDialog mes = new MessageDialog(this,DialogFlags.Modal,MessageType.Warning,ButtonsType.YesNo, Catalog.GetString("Do you really want to delete the template: ")+ System.IO.Path.GetFileNameWithoutExtension(templateName)); if (mes.Run() == (int)ResponseType.Yes) { System.IO.File.Delete(templateName); this.Fill(); //The default template is always there so we select this one. //This allow to reset all the fields in the sections/players //properties. SelectTemplate("default"); } mes.Destroy(); } protected virtual void OnButtonCancelClicked(object sender, System.EventArgs e) { this.Destroy(); } protected virtual void OnTreeviewCursorChanged(object sender, System.EventArgs e) { TreeIter iter; if (sectionspropertieswidget1.Edited || teamtemplatewidget1.Edited) PromptForSave(); treeview.Selection.GetSelected(out iter); templateName = (string) this.dataFileListStore.GetValue(iter, 0); if (useType == UseType.SectionsTemplate) UpdateSections(); else UpdateTeamTemplate(); } protected virtual void OnButtonOkClicked(object sender, System.EventArgs e) { if (sectionspropertieswidget1.Edited) PromptForSave(); this.Destroy(); } protected virtual void OnTreeviewRowActivated(object o, Gtk.RowActivatedArgs args) { if (useType == UseType.SectionsTemplate) UpdateSections(); else UpdateTeamTemplate(); } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/ProjectTemplateEditorDialog.cs0000644000175000017500000000303311601631101022545 00000000000000// TemplateEditorDialog.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using LongoMatch.DB; namespace LongoMatch.Gui.Dialog { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(false)] public partial class ProjectTemplateEditorDialog : Gtk.Dialog { public ProjectTemplateEditorDialog() { this.Build(); projecttemplatewidget.CanExport = true; } public Project Project { set { projecttemplatewidget.SetProject(value); } } public Sections Sections { set { projecttemplatewidget.Sections=value; } get { return projecttemplatewidget.Sections; } } public bool CanExport{ set{ projecttemplatewidget.CanExport = value; } } protected virtual void OnButtonOkClicked(object sender, System.EventArgs e) { } } } longomatch-0.16.8/LongoMatch/Gui/Dialog/ProjectsManager.cs0000644000175000017500000001540011601631101020241 00000000000000// DBManager.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using Gtk; using Mono.Unix; using LongoMatch.Common; using LongoMatch.DB; using LongoMatch.Gui.Component; namespace LongoMatch.Gui.Dialog { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(false)] public partial class ProjectsManager : Gtk.Dialog { private string originalFilePath; private Project openedProject; private List selectedProjects; public ProjectsManager(Project openedProject) { this.Build(); this.openedProject = openedProject; this.Fill(); this.projectdetails.Use = ProjectType.EditProject; projectdetails.Edited = false; } public void Fill() { List projectsList = MainClass.DB.GetAllProjects(); projectlistwidget1.Fill(projectsList); projectlistwidget1.ClearSearch(); projectlistwidget1.SelectionMode = SelectionMode.Multiple; Clear(); originalFilePath=null; } private void Clear(){ projectdetails.Clear(); projectdetails.Sensitive = false; saveButton.Sensitive = false; deleteButton.Sensitive = false; exportbutton.Sensitive = false; } private void PromptToSaveEditedProject(){ MessageDialog md = new MessageDialog((Window)this.Toplevel,DialogFlags.Modal, MessageType.Question, ButtonsType.YesNo, Catalog.GetString("The Project has been edited, do you want to save the changes?")); if (md.Run() == (int)ResponseType.Yes) { SaveProject(); projectdetails.Edited=false; } md.Destroy(); } private void SaveProject() { Project project = projectdetails.GetProject(); if (project == null) return; if (project.File.FilePath == originalFilePath) { MainClass.DB.UpdateProject(project); saveButton.Sensitive = false; } else { try { MainClass.DB.UpdateProject(project,originalFilePath); saveButton.Sensitive = false; } catch { MessagePopup.PopupMessage(this, MessageType.Warning, Catalog.GetString("A Project is already using this file.")); } } projectlistwidget1.QueueDraw(); } protected virtual void OnDeleteButtonPressed(object sender, System.EventArgs e) { List deletedProjects = new List(); if (selectedProjects == null) return; foreach (ProjectDescription selectedProject in selectedProjects) { if (openedProject != null && selectedProject.File == openedProject.File.FilePath) { MessagePopup.PopupMessage(this, MessageType.Warning, Catalog.GetString("This Project is actually in use.")+"\n"+ Catalog.GetString("Close it first to allow its removal from the database")); continue; } MessageDialog md = new MessageDialog(this,DialogFlags.Modal, MessageType.Question, ButtonsType.YesNo, Catalog.GetString("Do you really want to delete:")+ "\n"+selectedProject.Title); if (md.Run()== (int)ResponseType.Yes) { MainClass.DB.RemoveProject(selectedProject.File); deletedProjects.Add (selectedProject); } md.Destroy(); } projectlistwidget1.RemoveProjects (deletedProjects); Clear(); } protected virtual void OnSaveButtonPressed(object sender, System.EventArgs e) { SaveProject(); projectdetails.Edited=false; Fill(); } protected virtual void OnButtonOkClicked(object sender, System.EventArgs e) { if (projectdetails.Edited) { PromptToSaveEditedProject(); } this.Destroy(); } protected virtual void OnProjectlistwidget1ProjectsSelected(List projects) { ProjectDescription project; /* prompt tp save the opened project if has changes */ if (projectdetails.Edited) { PromptToSaveEditedProject(); } selectedProjects = projects; /* if no projects are selected clear everything */ if (projects.Count == 0){ Clear(); return; /* if more than one project is selected clear everything but keep * the delete button and the export button sensitives */ } else if (projects.Count > 1){ Clear(); deleteButton.Sensitive = true; exportbutton.Sensitive = true; return; } /* if only one project is selected try to load it in the editor */ project = projects[0]; if (openedProject != null && project.File == openedProject.File.FilePath) { MessagePopup.PopupMessage(this, MessageType.Warning, Catalog.GetString("The Project you are trying to load is actually in use.")+"\n" +Catalog.GetString("Close it first to edit it")); Clear(); } else { projectdetails.Sensitive = true; projectdetails.SetProject(MainClass.DB.GetProject(project.File)); originalFilePath = project.File; saveButton.Sensitive = false; deleteButton.Sensitive = true; exportbutton.Sensitive = true; } } protected virtual void OnProjectdetailsEditedEvent(object sender, System.EventArgs e) { saveButton.Sensitive = true; } protected virtual void OnExportbuttonClicked (object sender, System.EventArgs e) { FileChooserDialog fChooser = new FileChooserDialog(Catalog.GetString("Save Project"), (Gtk.Window)Toplevel, FileChooserAction.Save, "gtk-cancel",ResponseType.Cancel, "gtk-save",ResponseType.Accept); fChooser.SetCurrentFolder(MainClass.HomeDir()); FileFilter filter = new FileFilter(); filter.Name = Constants.PROJECT_NAME; filter.AddPattern("*.lpr"); fChooser.AddFilter(filter); if (fChooser.Run() == (int)ResponseType.Accept) { Project.Export(projectdetails.GetProject(), fChooser.Filename); } fChooser.Destroy(); } } } longomatch-0.16.8/LongoMatch/Makefile.am0000644000175000017500000001377511601631101014754 00000000000000ASSEMBLY = LongoMatch TARGET = exe LINK = $(REF_DEP_LONGOMATCH) SOURCES = \ AssemblyInfo.cs \ Common/Enums.cs \ Common/Cairo.cs \ Common/Constants.cs \ Compat/0.0/DatabaseMigrator.cs \ Compat/0.0/DB/DataBase.cs \ Compat/0.0/DB/MediaFile.cs \ Compat/0.0/DB/Project.cs \ Compat/0.0/DB/Sections.cs \ Compat/0.0/IO/SectionsReader.cs \ Compat/0.0/Playlist/IPlayList.cs \ Compat/0.0/PlayListMigrator.cs \ Compat/0.0/Playlist/PlayList.cs \ Compat/0.0/TemplatesMigrator.cs \ Compat/0.0/Time/MediaTimeNode.cs \ Compat/0.0/Time/PixbufTimeNode.cs \ Compat/0.0/Time/PlayListTimeNode.cs \ Compat/0.0/Time/SectionsTimeNode.cs \ Compat/0.0/Time/Time.cs \ Compat/0.0/Time/TimeNode.cs \ DB/DataBase.cs \ DB/Project.cs \ DB/ProjectDescription.cs\ DB/Sections.cs \ DB/TagsTemplate.cs \ DB/TeamTemplate.cs \ gtk-gui/generated.cs \ gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs \ gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs \ gtk-gui/LongoMatch.Gui.Component.DrawingWidget.cs \ gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs \ gtk-gui/LongoMatch.Gui.Component.NotesWidget.cs \ gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs \ gtk-gui/LongoMatch.Gui.Component.PlayersListTreeWidget.cs \ gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs \ gtk-gui/LongoMatch.Gui.Component.PlaysListTreeWidget.cs \ gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs \ gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs \ gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs \ gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs \ gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs \ gtk-gui/LongoMatch.Gui.Component.TeamTemplateWidget.cs \ gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs \ gtk-gui/LongoMatch.Gui.Component.TimeLineWidget.cs \ gtk-gui/LongoMatch.Gui.Dialog.BusyDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs \ gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs \ gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs \ gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.TeamTemplateEditor.cs \ gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs \ gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs \ gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs \ gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs \ gtk-gui/LongoMatch.Gui.MainWindow.cs \ gtk-gui/LongoMatch.Gui.Popup.CalendarPopup.cs \ gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs \ Gui/Component/ButtonsWidget.cs \ Gui/Component/CategoriesScale.cs \ Gui/Component/CategoryProperties.cs \ Gui/Component/DrawingWidget.cs \ Gui/Component/DrawingToolBox.cs \ Gui/Component/NotesWidget.cs \ Gui/Component/PlayerProperties.cs \ Gui/Component/PlayersListTreeWidget.cs \ Gui/Component/PlayListWidget.cs \ Gui/Component/PlaysListTreeWidget.cs \ Gui/Component/ProjectDetailsWidget.cs \ Gui/Component/ProjectListWidget.cs \ Gui/Component/ProjectTemplateWidget.cs \ Gui/Component/TaggerWidget.cs\ Gui/Component/TagsTreeWidget.cs\ Gui/Component/TeamTemplateWidget.cs\ Gui/Component/TimeAdjustWidget.cs \ Gui/Component/TimeLineWidget.cs \ Gui/Component/TimeReferenceWidget.cs \ Gui/Component/TimeScale.cs \ Gui/Dialog/BusyDialog.cs \ Gui/Dialog/DrawingTool.cs \ Gui/Dialog/EditCategoryDialog.cs \ Gui/Dialog/EditPlayerDialog.cs \ Gui/Dialog/EndCaptureDialog.cs \ Gui/Dialog/EntryDialog.cs \ Gui/Dialog/FramesCaptureProgressDialog.cs \ Gui/Dialog/HotKeySelectorDialog.cs \ Gui/Dialog/Migrator.cs \ Gui/Dialog/NewProjectDialog.cs \ Gui/Dialog/OpenProjectDialog.cs \ Gui/Dialog/PlayersSelectionDialog.cs \ Gui/Dialog/ProjectsManager.cs \ Gui/Dialog/ProjectTemplateEditorDialog.cs \ Gui/Dialog/ProjectSelectionDialog.cs \ Gui/Dialog/SnapshotsDialog.cs \ Gui/Dialog/TaggerDialog.cs \ Gui/Dialog/TemplatesEditor.cs \ Gui/Dialog/TeamTemplateEditor.cs\ Gui/Dialog/UpdateDialog.cs \ Gui/Dialog/VideoEditionProperties.cs \ Gui/Dialog/Win32CalendarDialog.cs \ Gui/MainWindow.cs \ Gui/Popup/CalendarPopup.cs \ Gui/Popup/MessagePopup.cs \ Gui/TransparentDrawingArea.cs \ Gui/TreeView/CategoriesTreeView.cs \ Gui/TreeView/PlayerPropertiesTreeView.cs \ Gui/TreeView/PlayersTreeView.cs \ Gui/TreeView/ListTreeViewBase.cs \ Gui/TreeView/PlayListTreeView.cs \ Gui/TreeView/PlaysTreeView.cs \ Gui/TreeView/TagsTreeView.cs \ Handlers/DrawingManager.cs \ Handlers/EventsManager.cs \ Handlers/Handlers.cs \ Handlers/HotKeysManager.cs \ Handlers/VideoDrawingsManager.cs\ IO/CSVExport.cs \ IO/SectionsReader.cs \ IO/SectionsWriter.cs \ IO/XMLReader.cs \ Main.cs \ Playlist/IPlayList.cs \ Playlist/PlayList.cs \ Time/Tag.cs \ Time/Drawing.cs\ Time/HotKey.cs \ Time/MediaTimeNode.cs \ Time/PixbufTimeNode.cs \ Time/Player.cs \ Time/PlayListTimeNode.cs \ Time/SectionsTimeNode.cs \ Time/Time.cs \ Time/TimeNode.cs \ Updates/Updater.cs \ Updates/XmlUpdateParser.cs \ Utils/ProjectUtils.cs IMAGES = images/longomatch.png \ images/background.png LOGO = images/logo_48x48.png RESOURCES = \ gtk-gui/objects.xml \ gtk-gui/gui.stetic\ images/longomatch.png\ images/stock_draw-line-45.png\ images/stock_draw-circle-unfilled.png\ images/stock_draw-line-ends-with-arrow.png\ images/stock_draw-rectangle-unfilled.png\ images/stock_draw-freeform-line.png\ images/camera-video.png\ images/video.png bin_SCRIPTS = longomatch DESKTOP_FILE = longomatch.desktop.in include $(top_srcdir)/build/build.mk EXTRA_DIST += \ longomatch.in\ AssemblyInfo.cs.in longomatch-0.16.8/LongoMatch/Time/0002755000175000017500000000000011601631302013666 500000000000000longomatch-0.16.8/LongoMatch/Time/MediaTimeNode.cs0000644000175000017500000002170211601631101016576 00000000000000// MediaTimeNode.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using Mono.Unix; using Gdk; using LongoMatch.Common; namespace LongoMatch.TimeNodes { /// /// I represent a Play in the game, that's why I'm probably the most /// important object of the database. /// I have a name to describe the play as well as a start and a stop {@LongoMatch.TimeNode.Time}, /// which sets the play's position in the game's time line. /// I also stores a list a {@LongoMatch.TimeNode.Player} tagged to this play. /// [Serializable] public class MediaTimeNode : PixbufTimeNode { private Team team; private uint fps; private bool selected; private uint startFrame; private uint stopFrame; private string notes; private List localPlayersList; //Used for multitagging: one play and several players // We use the int index of the player in the template, private List visitorPlayersList;// because it's the only unmutable variable private List tagsList; private Drawing keyFrame; /// /// Creates a new play /// /// /// A with the play's name /// /// /// A with the play's start time /// /// /// A with the play's stop time /// /// /// A with the play's notes /// /// /// A with the frame rate in frames per second /// /// /// A with the play's preview /// #region Constructors public MediaTimeNode(String name, Time start, Time stop,string notes, uint fps,Pixbuf thumbnail):base(name,start,stop,thumbnail) { this.notes = notes; this.team = Team.NONE; this.fps = fps; this.startFrame = (uint) this.Start.MSeconds*fps/1000; this.stopFrame = (uint) this.Stop.MSeconds*fps/1000; localPlayersList = new List(); visitorPlayersList = new List(); tagsList = new List(); } #endregion #region Properties /// /// Play's notes /// public string Notes { get { return notes; } set { notes = value; } } /// /// The associated to this play /// public Team Team { get { return this.team; } set { this.team = value; } } /// /// Video frameratein frames per second. This value is taken from the /// video file properties and used to translate from seconds /// to frames: second 100 is equivalent to frame 100*fps /// public uint Fps { get { return this.fps; } set { this.fps = value; } } /// /// Central frame number using (stopFrame-startFrame)/2 /// public uint CentralFrame { get { return this.StopFrame-((this.TotalFrames)/2); } } /// /// Number of frames inside the play's boundaries /// public uint TotalFrames { get { return this.StopFrame-this.StartFrame; } } /// /// Start frame number /// public uint StartFrame { get { return startFrame; } set { this.startFrame = value; this.Start = new Time((int)(1000*value/fps)); } } /// /// Stop frame number /// public uint StopFrame { get { return stopFrame; } set { this.stopFrame = value; this.Stop = new Time((int)(1000*value/fps)); } } /// /// Get the key frame number if this play as key frame drawing or 0 /// public uint KeyFrame { get { if (HasKeyFrame) return (uint) KeyFrameDrawing.StopTime*fps/1000; else return 0; } } /// /// Get/Set wheter this play is actually loaded. Used in {@LongoMatch.Gui.Component.TimeScale} /// public bool Selected { get { return selected; } set { this.selected = value; } } /// /// Get/Set a list of local players tagged to this play /// public List LocalPlayers { set { localPlayersList = value; } get { return localPlayersList; } } /// /// Get/Set a list of visitor players tagged to this play /// public List VisitorPlayers { set { visitorPlayersList = value; } get { return visitorPlayersList; } } /// /// Get/Set the key frame's /// public Drawing KeyFrameDrawing { set { keyFrame = value; } get { return keyFrame; } } /// /// Get wether the play has as defined a key frame /// public bool HasKeyFrame { get { return keyFrame != null; } } //// /// Play's tags /// public List Tags{ get{ //From 0.10.5 if (tagsList == null) tagsList = new List(); return tagsList; } set{ tagsList = value; } } #endregion #region Public methods /// /// Check the frame number is inside the play boundaries /// /// /// A with the frame number /// /// /// A /// public bool HasFrame(int frame) { return (frame>=startFrame && frame /// Adds a player to the local team player's list /// /// /// A with the index /// public void AddLocalPlayer(int index) { localPlayersList.Add(index); } /// /// Adds a player to the visitor team player's list /// /// /// A with the index /// public void AddVisitorPlayer(int index) { visitorPlayersList.Add(index); } /// /// Removes a player from the local team player's list /// /// /// A with the index /// public void RemoveLocalPlayer(int index) { localPlayersList.Remove(index); } /// /// Removes a player from the visitor team player's list /// /// /// A with the index /// public void RemoveVisitorPlayer(int index) { visitorPlayersList.Remove(index); } /// /// Adds a new tag to the play /// /// /// A : the tag to add /// public void AddTag(Tag tag){ //From 0.15.5 if (tagsList == null) tagsList = new List(); if (!tagsList.Contains(tag)) tagsList.Add(tag); } /// /// Removes a tag to the play /// /// /// A : the tag to remove /// public void RemoveTag(Tag tag){ //From 0.15.5 if (tagsList == null) tagsList = new List(); if (tagsList.Contains(tag)) tagsList.Remove(tag); } public string ToString (string team) { String[] tags = new String[Tags.Count]; for (int i=0; i"+Catalog.GetString("Name")+": "+Name+"\n"+ ""+Catalog.GetString("Team")+": "+team+"\n"+ ""+Catalog.GetString("Start")+": "+Start.ToMSecondsString()+"\n"+ ""+Catalog.GetString("Stop")+": "+Stop.ToMSecondsString()+"\n"+ ""+Catalog.GetString("Tags")+": "+ String.Join(" ; ", tags); } public override string ToString(){ return ToString(Team.ToString()); } #endregion } } longomatch-0.16.8/LongoMatch/Time/Tag.cs0000644000175000017500000000254411601631101014650 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; namespace LongoMatch.TimeNodes { [Serializable] public class Tag { string text; public Tag(string text) { this.text=text; } public string Text { get { return text; } set { if (value == null) text=""; else text=value; } } public bool Equals(Tag tagComp) { return (text == tagComp.Text); } public override bool Equals(object obj) { Tag tag= obj as Tag; if (tag != null) return Equals(tag); else return false; } public override int GetHashCode() { return text.GetHashCode(); } } } longomatch-0.16.8/LongoMatch/Time/Drawing.cs0000644000175000017500000000317211601631101015526 00000000000000// // Copyright (C) 2009 Andoni Morales Alastruey // // 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 // using System; using Gdk; namespace LongoMatch.TimeNodes { /* Represent a drawing in the database using a {@Gdk.Pixbuf} stored in a bytes array in PNG format for serialization. {@Drawings} are used by {@MediaTimeNodes} to store the key frame drawing which stop time time is stored in a int value */ [Serializable] public class Drawing { private byte[] drawingBuf; private readonly int stopTime; public Drawing() { } public Drawing(Pixbuf drawing,int stopTime) { Pixbuf = drawing; this.stopTime = stopTime; } public Pixbuf Pixbuf { get { if (drawingBuf != null) return new Pixbuf(drawingBuf); else return null; } set { if (value != null) drawingBuf = value.SaveToBuffer("png"); else drawingBuf = null; } } public int StopTime { get { return stopTime; } } } } longomatch-0.16.8/LongoMatch/Time/PlayListTimeNode.cs0000644000175000017500000000553711601631101017330 00000000000000// PlayListTimeNode.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gdk; using LongoMatch.Video.Utils; namespace LongoMatch.TimeNodes { /// /// I am a special video segment used by . /// I stores the information of the video file I belong to and that's why I am independent of any context. /// [Serializable] public class PlayListTimeNode : TimeNode { private MediaFile mediaFile; private float rate=1; private bool valid=true; //True if the file exists #region Constructors public PlayListTimeNode() { } /// /// Creates a new playlist element /// /// /// A with my video file's information /// /// /// A with the play I come from /// public PlayListTimeNode(MediaFile mediaFile, MediaTimeNode tNode) : base(tNode.Name,tNode.Start,tNode.Stop) { MediaFile = mediaFile; } #endregion #region Properties /// /// My video file /// public MediaFile MediaFile { set { //PlayListTimeNode is serializable and only primary classes //can be serialiazed. In case it's a PreviewMidaFile we create //a new MediaFile object. if (value is PreviewMediaFile) { MediaFile mf = new MediaFile(value.FilePath,value.Length,value.Fps, value.HasAudio,value.HasVideo,value.VideoCodec, value.VideoCodec,value.VideoWidth,value.VideoHeight); this.mediaFile= mf; } else this.mediaFile = value; } get { return this.mediaFile; } } /// /// My play rate /// public float Rate { set { this.rate = value; } get { return this.rate; } } //// /// I wont't be valid if my file doesn't exists /// public bool Valid { get { return this.valid; } set { this.valid = value; } } #endregion } } longomatch-0.16.8/LongoMatch/Time/Time.cs0000644000175000017500000001045311601631101015031 00000000000000// Time.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; namespace LongoMatch.TimeNodes { /// /// I represent a time instant. Other objects uses me to maintain time units consitency. /// I am expressed in miliseconds and I provide some helper methods for time conversion and representation /// [Serializable] public class Time : IComparable { private int time; private const int MS = 1000000 ; public const int SECONDS_TO_TIME = 1000; #region Constructors public Time() { this.time = 0; } /// /// Creates a new time instant /// /// /// A with the time expressed in miliseconds /// public Time(int time) { this.time = time; } #endregion //// /// Time in miliseconds /// #region Properties public int MSeconds { get { return time; } set { time = value; } } /// /// Time in seconds /// public int Seconds { get { return time/SECONDS_TO_TIME; } } #endregion #region Public methods /// /// String representation in seconds /// /// /// A /// public string ToSecondsString() { int _h, _m, _s; _h = (time / 3600); _m = ((time % 3600) / 60); _s = ((time % 3600) % 60); if (_h > 0) return String.Format("{0}:{1}:{2}", _h, _m.ToString("d2"), _s.ToString("d2")); return String.Format("{0}:{1}", _m, _s.ToString("d2")); } /// /// String representation including the milisenconds information /// /// /// A /// public string ToMSecondsString() { int _h, _m, _s,_ms,_time; _time = time / 1000; _h = (_time / 3600); _m = ((_time % 3600) / 60); _s = ((_time % 3600) % 60); _ms = ((time % 3600000)%60000)%1000; //if (_h > 0) return String.Format("{0}:{1}:{2},{3}", _h, _m.ToString("d2"), _s.ToString("d2"),_ms.ToString("d3")); //return String.Format ("{0}:{1},{2}", _m, _s.ToString ("d2"),_ms.ToString("d3")); } public override bool Equals(object o) { if (o is Time) { return ((Time)o).MSeconds == MSeconds; } else return false; } public override int GetHashCode() { return base.GetHashCode(); } public int CompareTo(object obj) { if (obj is Time) { Time otherTime = (Time) obj; return MSeconds.CompareTo(otherTime.MSeconds); } else throw new ArgumentException("Object is not a Temperature"); } #endregion #region Operators public static bool operator < (Time t1,Time t2) { return t1.MSeconds < t2.MSeconds; } public static bool operator > (Time t1,Time t2) { return t1.MSeconds > t2.MSeconds; } public static bool operator <= (Time t1,Time t2) { return t1.MSeconds <= t2.MSeconds; } public static bool operator >= (Time t1,Time t2) { return t1.MSeconds >= t2.MSeconds; } public static Time operator +(Time t1,int t2) { return new Time(t1.MSeconds+t2); } public static Time operator +(Time t1,Time t2) { return new Time(t1.MSeconds+t2.MSeconds); } public static Time operator -(Time t1,Time t2) { return new Time(t1.MSeconds-t2.MSeconds); } public static Time operator -(Time t1,int t2) { return new Time(t1.MSeconds-t2); } #endregion } }longomatch-0.16.8/LongoMatch/Time/PixbufTimeNode.cs0000644000175000017500000000543711601631101017023 00000000000000// PixbufTimeNode.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gdk; namespace LongoMatch.TimeNodes { /// /// I am the base class for all the video segments. /// I have a with a thumbnail of the video segment I represent /// [Serializable] public class PixbufTimeNode : TimeNode { private byte[] thumbnailBuf; private const int MAX_WIDTH=100; private const int MAX_HEIGHT=75; #region Contructors public PixbufTimeNode() { } /// /// Creates a new PixbufTimeNode object /// /// /// A with my name /// /// /// A with my start time /// /// /// A with my stop time /// /// /// A with my preview /// public PixbufTimeNode(string name, Time start, Time stop, Pixbuf thumbnail): base(name,start,stop) { if (thumbnail != null) { this.thumbnailBuf = thumbnail.SaveToBuffer("png"); thumbnail.Dispose(); } else thumbnailBuf = null; } #endregion #region Properties /// /// Segment thumbnail /// public Pixbuf Miniature { get { if (thumbnailBuf != null) return new Pixbuf(thumbnailBuf); else return null; }set { if (value != null) ScaleAndSave(value); else thumbnailBuf = null; } } #endregion private void ScaleAndSave(Pixbuf pixbuf) { int ow,oh,h,w; h = ow = pixbuf.Height; w = oh = pixbuf.Width; ow = MAX_WIDTH; oh = MAX_HEIGHT; if (w>MAX_WIDTH || h>MAX_HEIGHT) { double rate = (double)w/(double)h; if (h>w) ow = (int)(oh * rate); else oh = (int)(ow / rate); thumbnailBuf = pixbuf.ScaleSimple(ow,oh,Gdk.InterpType.Bilinear).SaveToBuffer("png"); pixbuf.Dispose(); } else thumbnailBuf = pixbuf.SaveToBuffer("png"); } } } longomatch-0.16.8/LongoMatch/Time/HotKey.cs0000644000175000017500000000622111601631101015334 00000000000000// HotKey.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using System.Runtime.Serialization; using Gtk; using Gdk; using Mono.Unix; namespace LongoMatch.TimeNodes { /// /// I am key combination used to tag plays using the keyboard. /// uses me to create plays without using the mouse. I can only be used with Shith and Alt /// modifiers to avoid interfering with ohter shortcuts. In case I'am not associated to any /// key combinatio 'key' and 'modifier' will be set to -1 /// [Serializable] public class HotKey : IEquatable { private int key; private int modifier; #region Constructors /// /// Creates a new undefined HotKey /// public HotKey() { this.key = -1; this.modifier = -1; } #endregion #region Properties /// /// My keyboard key /// public Gdk.Key Key { get { return (Gdk.Key)key; } set { key = (int)value; } } /// /// My keyboard modifier. Only Alt and Shift can be used /// public Gdk.ModifierType Modifier { get { return (Gdk.ModifierType)modifier; } set { modifier= (int)value; } } /// /// Whether I am defined or not /// public Boolean Defined { get { return (key!=-1 && modifier != -1); } } #endregion #region Public Methods public bool Equals(HotKey hotkeyComp) { return (this.Key == hotkeyComp.Key && this.Modifier == hotkeyComp.Modifier); } #endregion #region Operators static public bool operator == (HotKey hk1, HotKey hk2) { return hk1.Equals(hk2); } static public bool operator != (HotKey hk1, HotKey hk2) { return !hk1.Equals(hk2); } #endregion #region Overrides public override bool Equals(object obj) { if (obj is HotKey){ HotKey hotkey= obj as HotKey; return Equals(hotkey); } else return false; } public override int GetHashCode() { return key ^ modifier; } public override string ToString() { string modifierS; if (!Defined) return Catalog.GetString("Not defined"); if (Modifier == ModifierType.Mod1Mask) modifierS = "+"; else if (Modifier == ModifierType.ShiftMask) modifierS = "+"; else modifierS = ""; return string.Format("{0}{1}", modifierS,(Key.ToString()).ToLower()); } #endregion } } longomatch-0.16.8/LongoMatch/Time/SectionsTimeNode.cs0000644000175000017500000001150411601631101017345 00000000000000// SectionsTimeNode.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Runtime.Serialization; using Gdk; using Mono.Unix; using LongoMatch.Common; namespace LongoMatch.TimeNodes { /// /// I am a tagging category for the analysis. I contain the default values to creates plays /// tagged in my category /// [Serializable] public class SectionsTimeNode:TimeNode, ISerializable { private HotKey hotkey; private Gdk.Color color; private SortMethodType sortMethod; #region Constructors /// /// Creates a new category /// /// /// A with the category's name /// /// /// A with the default lead time /// /// /// A with the default lag time /// /// /// A with the hotkey to create new plays in my category /// /// /// A that will be shared among plays tagged in my category /// public SectionsTimeNode(String name,Time start, Time stop, HotKey hotkey, Color color):base(name,start,stop) { this.hotkey = hotkey; this.color = color; this.sortMethod = SortMethodType.SortByName; } // this constructor is automatically called during deserialization public SectionsTimeNode(SerializationInfo info, StreamingContext context) { Name = info.GetString("name"); Start = (Time)info.GetValue("start", typeof(Time)); Stop = (Time)info.GetValue("stop", typeof(Time)); HotKey = (HotKey)info.GetValue("hotkey", typeof(HotKey)); // read 'red', 'blue' and 'green' values and convert it to Gdk.Color Color c = new Color(); c.Red = (ushort)info.GetValue("red", typeof(ushort)); c.Green = (ushort)info.GetValue("green", typeof(ushort)); c.Blue = (ushort)info.GetValue("blue", typeof(ushort)); Color = c; } #endregion #region Properties /// /// A key combination to create plays in my category /// public HotKey HotKey { get { return hotkey; } set { hotkey = value; } } /// /// A color to draw plays from my category /// public Color Color { get { return color; } set { color=value; } } //// /// Sort method used to sort plays for this category /// public SortMethodType SortMethod{ get{ // New in 0.15.5 try{ return sortMethod; } catch{ return SortMethodType.SortByName; } } set{ this.sortMethod = value; } } public string SortMethodString{ get{ switch (sortMethod){ case SortMethodType.SortByName: return Catalog.GetString("Sort by name"); case SortMethodType.SortByStartTime: return Catalog.GetString("Sort by start time"); case SortMethodType.SortByStopTime: return Catalog.GetString("Sort by stop time"); case SortMethodType.SortByDuration: return Catalog.GetString("Sort by duration"); default: return Catalog.GetString("Sort by name"); } } set{ if (value == Catalog.GetString("Sort by start time")) sortMethod = SortMethodType.SortByStartTime; else if (value == Catalog.GetString("Sort by stop time")) sortMethod = SortMethodType.SortByStopTime; else if (value == Catalog.GetString("Sort by duration")) sortMethod = SortMethodType.SortByDuration; else sortMethod = SortMethodType.SortByName; } } // this method is automatically called during serialization public void GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("name", Name); info.AddValue("start", Start); info.AddValue("stop", Stop); info.AddValue("hotkey", hotkey); info.AddValue("red", color.Red); info.AddValue("green", color.Green); info.AddValue("blue", color.Blue); } #endregion } } longomatch-0.16.8/LongoMatch/Time/Player.cs0000644000175000017500000001042311601631101015364 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using Gdk; namespace LongoMatch.TimeNodes { /// /// I am a player from a team /// [Serializable] public class Player { private string name; private string position; private int number; private byte[] photo; /* Added in 0.16.1 */ private float height; private int weight; private DateTime birthday; private String nationality; /* Added in 0.16.4 */ private bool discarded; /// /// Creates a new player /// /// /// A with my name /// /// /// A with my name /// /// /// A with my nationality /// /// /// A with my height /// /// /// A with my weight /// /// /// A with my position in the field /// /// /// A with my number /// /// /// A with my photo /// #region Constructors public Player(string name, DateTime birthday, String nationality, float height, int weight, string position, int number, Pixbuf photo, bool discarded) { this.name = name; this.birthday = birthday; this.nationality = nationality; this.height = height; this.weight = weight; this.position = position; this.number = number; this.discarded = discarded; Photo = photo; } #endregion #region Properties /// /// My name /// public string Name { get { return name; } set { name=value; } } /// /// My position in the field /// public string Position { get { return position; } set { position=value; } } /// /// My shirt number /// public int Number { get { return number; } set { number=value; } } /// /// My photo /// public Pixbuf Photo { get { if (photo != null) return new Pixbuf(photo); else return null; } set { if (value != null) photo=value.SaveToBuffer("png"); else photo=null; } } /// /// My birthdayt /// public DateTime Birthday{ get { return birthday; } set { birthday = value; } } /// /// My nationality /// public String Nationality{ get { return nationality; } set { nationality = value; } } /// /// My height /// public float Height{ get { return height; } set { height = value; } } /// /// My Weight /// public int Weight{ get { return weight; } set { weight = value; } } /// /// A team can have several players, but not all of them /// play in the same match,. This allow reusing the same /// template in a team, definning if this plays plays or not. /// public bool Discarded{ get { return discarded; } set { discarded = value; } } #endregion } } longomatch-0.16.8/LongoMatch/Time/TimeNode.cs0000644000175000017500000000522411601631101015637 00000000000000// TimeNode.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using LongoMatch.TimeNodes; namespace LongoMatch.TimeNodes { /// /// I am the base class for the time span related objects in the database. /// I have a name that describe me and a start and stop /// [Serializable] public class TimeNode { private string name; private Time start; private Time stop; #region Constructors public TimeNode() { } /// /// Creates a TimeNode object /// /// /// A with my name /// /// /// A with my start time /// /// /// A with my stop time /// public TimeNode(String name,Time start, Time stop) { this.name = name; this.start = start; this.stop = stop; } #endregion #region Properties /// /// A short description of myself /// public string Name { get { return this.name; } set { this.name=value; } } //// /// My start time /// public Time Start { get { return this.start; } set { this.start=value; } } /// /// My stop time /// public Time Stop { get { return stop; } set { this.stop = value; } } /// /// My duration /// public Time Duration { get { return Stop-Start; } } #endregion #region Public methods /// /// Change my boundaries /// /// /// My new start /// /// /// My new stop /// public void ChangeStartStop(Time start, Time stop) { this.start = start; this.stop = stop; } #endregion } } longomatch-0.16.8/LongoMatch/longomatch.desktop.in.in0000644000175000017500000000061511601631101017445 00000000000000[Desktop Entry] Version=1.0 _Name=LongoMatch _X-GNOME-FullName=LongoMatch: The Digital Coach Type=Application Exec=longomatch Terminal=false Categories=Video;AudioVideo;Player;AudioVideoEditing; Icon=longomatch _Comment=Sports video analysis tool for coaches X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=longomatch X-GNOME-Bugzilla-Component=general X-GNOME-Bugzilla-Version=@VERSION@ longomatch-0.16.8/LongoMatch/gtk-gui/0002755000175000017500000000000011601631302014337 500000000000000longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs0000644000175000017500000000444711601631101024611 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class HotKeySelectorDialog { private global::Gtk.Label label1; private global::Gtk.Button buttonCancel; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.HotKeySelectorDialog this.Name = "LongoMatch.Gui.Dialog.HotKeySelectorDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Select a HotKey"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.HotKeySelectorDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Press a key combination using Shift+key or Alt+key.\nHotkeys with a single key are also allowed with Ctrl+key."); w1.Add (this.label1); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.label1])); w2.Position = 0; // Internal child LongoMatch.Gui.Dialog.HotKeySelectorDialog.ActionArea global::Gtk.HButtonBox w3 = this.ActionArea; w3.Name = "dialog1_ActionArea"; w3.Spacing = 6; w3.BorderWidth = ((uint)(5)); w3.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w4 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonCancel])); w4.Expand = false; w4.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 385; this.DefaultHeight = 94; this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingWidget.cs0000644000175000017500000000376611601631101024072 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class DrawingWidget { private global::Gtk.ScrolledWindow GtkScrolledWindow; private global::Gtk.DrawingArea drawingarea; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.DrawingWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.DrawingWidget"; // Container child LongoMatch.Gui.Component.DrawingWidget.Gtk.Container+ContainerChild this.GtkScrolledWindow = new global::Gtk.ScrolledWindow (); this.GtkScrolledWindow.Name = "GtkScrolledWindow"; this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child GtkScrolledWindow.Gtk.Container+ContainerChild global::Gtk.Viewport w1 = new global::Gtk.Viewport (); w1.ShadowType = ((global::Gtk.ShadowType)(0)); // Container child GtkViewport.Gtk.Container+ContainerChild this.drawingarea = new global::Gtk.DrawingArea (); this.drawingarea.Events = ((global::Gdk.EventMask)(784)); this.drawingarea.Name = "drawingarea"; w1.Add (this.drawingarea); this.GtkScrolledWindow.Add (w1); this.Add (this.GtkScrolledWindow); if ((this.Child != null)) { this.Child.ShowAll (); } this.Hide (); this.drawingarea.ExposeEvent += new global::Gtk.ExposeEventHandler (this.OnDrawingareaExposeEvent); this.drawingarea.ButtonPressEvent += new global::Gtk.ButtonPressEventHandler (this.OnDrawingareaButtonPressEvent); this.drawingarea.ButtonReleaseEvent += new global::Gtk.ButtonReleaseEventHandler (this.OnDrawingareaButtonReleaseEvent); this.drawingarea.MotionNotifyEvent += new global::Gtk.MotionNotifyEventHandler (this.OnDrawingareaMotionNotifyEvent); this.drawingarea.SizeAllocated += new global::Gtk.SizeAllocatedHandler (this.OnDrawingareaSizeAllocated); this.drawingarea.ConfigureEvent += new global::Gtk.ConfigureEventHandler (this.OnDrawingareaConfigureEvent); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.BusyDialog.cs0000644000175000017500000000337411601631101022625 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class BusyDialog { private global::Gtk.VBox vbox2; private global::Gtk.Label messagelabel; private global::Gtk.ProgressBar progressbar1; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.BusyDialog this.Name = "LongoMatch.Gui.Dialog.BusyDialog"; this.Title = ""; this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Menu); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.Resizable = false; this.AllowGrow = false; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Container child LongoMatch.Gui.Dialog.BusyDialog.Gtk.Container+ContainerChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.messagelabel = new global::Gtk.Label (); this.messagelabel.Name = "messagelabel"; this.vbox2.Add (this.messagelabel); global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.messagelabel])); w1.Position = 0; // Container child vbox2.Gtk.Box+BoxChild this.progressbar1 = new global::Gtk.ProgressBar (); this.progressbar1.Name = "progressbar1"; this.vbox2.Add (this.progressbar1); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.progressbar1])); w2.Position = 1; w2.Expand = false; w2.Fill = false; this.Add (this.vbox2); if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 295; this.DefaultHeight = 95; this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Popup.CalendarPopup.cs0000644000175000017500000000245111601631101023217 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Popup { public partial class CalendarPopup { private global::Gtk.Calendar calendar1; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Popup.CalendarPopup this.Name = "LongoMatch.Gui.Popup.CalendarPopup"; this.Title = ""; this.WindowPosition = ((global::Gtk.WindowPosition)(2)); this.Modal = true; this.Resizable = false; this.AllowGrow = false; this.Decorated = false; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Container child LongoMatch.Gui.Popup.CalendarPopup.Gtk.Container+ContainerChild this.calendar1 = new global::Gtk.Calendar (); this.calendar1.CanFocus = true; this.calendar1.Name = "calendar1"; this.calendar1.DisplayOptions = ((global::Gtk.CalendarDisplayOptions)(3)); this.Add (this.calendar1); if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 281; this.DefaultHeight = 154; this.Show (); this.FocusOutEvent += new global::Gtk.FocusOutEventHandler (this.OnFocusOutEvent); this.calendar1.DaySelectedDoubleClick += new global::System.EventHandler (this.OnCalendar1DaySelectedDoubleClick); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs0000644000175000017500000000423611601631101024264 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class EditCategoryDialog { private global::LongoMatch.Gui.Component.CategoryProperties timenodeproperties2; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.EditCategoryDialog this.Name = "LongoMatch.Gui.Dialog.EditCategoryDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Category Details"); this.Icon = global::Gdk.Pixbuf.LoadFromResource ("longomatch.png"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; // Internal child LongoMatch.Gui.Dialog.EditCategoryDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.timenodeproperties2 = new global::LongoMatch.Gui.Component.CategoryProperties (); this.timenodeproperties2.Events = ((global::Gdk.EventMask)(256)); this.timenodeproperties2.Name = "timenodeproperties2"; w1.Add (this.timenodeproperties2); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.timenodeproperties2])); w2.Position = 0; // Internal child LongoMatch.Gui.Dialog.EditCategoryDialog.ActionArea global::Gtk.HButtonBox w3 = this.ActionArea; w3.Name = "dialog1_ActionArea"; w3.Spacing = 6; w3.BorderWidth = ((uint)(5)); w3.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w4 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonOk])); w4.Expand = false; w4.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 266; this.DefaultHeight = 191; this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Popup.TransparentDrawingArea.cs0000644000175000017500000000321111601631101025063 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Popup { public partial class TransparentDrawingArea { private global::Gtk.DrawingArea drawingarea; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Popup.TransparentDrawingArea this.Name = "LongoMatch.Gui.Popup.TransparentDrawingArea"; this.Title = global::Mono.Unix.Catalog.GetString ("TransparentDrawingArea"); this.TypeHint = ((global::Gdk.WindowTypeHint)(4)); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.AllowShrink = true; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Container child LongoMatch.Gui.Popup.TransparentDrawingArea.Gtk.Container+ContainerChild this.drawingarea = new global::Gtk.DrawingArea (); this.drawingarea.Name = "drawingarea"; this.Add (this.drawingarea); if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 644; this.DefaultHeight = 370; this.Show (); this.drawingarea.MotionNotifyEvent += new global::Gtk.MotionNotifyEventHandler (this.OnDrawingareaMotionNotifyEvent); this.drawingarea.ButtonPressEvent += new global::Gtk.ButtonPressEventHandler (this.OnDrawingareaButtonPressEvent); this.drawingarea.ExposeEvent += new global::Gtk.ExposeEventHandler (this.OnDrawingareaExposeEvent); this.drawingarea.ConfigureEvent += new global::Gtk.ConfigureEventHandler (this.OnDrawingareaConfigureEvent); this.drawingarea.ButtonReleaseEvent += new global::Gtk.ButtonReleaseEventHandler (this.OnDrawingareaButtonReleaseEvent); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.NotesWidget.cs0000644000175000017500000000437211601631101023561 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class NotesWidget { private global::Gtk.VBox vbox2; private global::Gtk.ScrolledWindow scrolledwindow1; private global::Gtk.TextView textview1; private global::Gtk.Button savebutton; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.NotesWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.NotesWidget"; // Container child LongoMatch.Gui.Component.NotesWidget.Gtk.Container+ContainerChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.scrolledwindow1 = new global::Gtk.ScrolledWindow (); this.scrolledwindow1.CanFocus = true; this.scrolledwindow1.Name = "scrolledwindow1"; this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child scrolledwindow1.Gtk.Container+ContainerChild global::Gtk.Viewport w1 = new global::Gtk.Viewport (); w1.ShadowType = ((global::Gtk.ShadowType)(0)); // Container child GtkViewport.Gtk.Container+ContainerChild this.textview1 = new global::Gtk.TextView (); this.textview1.CanFocus = true; this.textview1.Name = "textview1"; w1.Add (this.textview1); this.scrolledwindow1.Add (w1); this.vbox2.Add (this.scrolledwindow1); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.scrolledwindow1])); w4.Position = 0; // Container child vbox2.Gtk.Box+BoxChild this.savebutton = new global::Gtk.Button (); this.savebutton.Sensitive = false; this.savebutton.CanFocus = true; this.savebutton.Name = "savebutton"; this.savebutton.UseStock = true; this.savebutton.UseUnderline = true; this.savebutton.Label = "gtk-save"; this.vbox2.Add (this.savebutton); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.savebutton])); w5.Position = 1; w5.Expand = false; w5.Fill = false; this.Add (this.vbox2); if ((this.Child != null)) { this.Child.ShowAll (); } this.Show (); this.savebutton.Clicked += new global::System.EventHandler (this.OnSavebuttonClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs0000644000175000017500000001350011601631101023655 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class SnapshotsDialog { private global::Gtk.Table table1; private global::Gtk.Entry entry1; private global::Gtk.Label label1; private global::Gtk.Label label3; private global::Gtk.Label label5; private global::Gtk.Label playLabel; private global::Gtk.SpinButton spinbutton1; private global::Gtk.Button button22; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.SnapshotsDialog this.Name = "LongoMatch.Gui.Dialog.SnapshotsDialog"; this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.SnapshotsDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.table1 = new global::Gtk.Table (((uint)(3)), ((uint)(2)), false); this.table1.Name = "table1"; this.table1.RowSpacing = ((uint)(6)); this.table1.ColumnSpacing = ((uint)(6)); // Container child table1.Gtk.Table+TableChild this.entry1 = new global::Gtk.Entry (); this.entry1.CanFocus = true; this.entry1.Name = "entry1"; this.entry1.IsEditable = true; this.entry1.InvisibleChar = '●'; this.table1.Add (this.entry1); global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table1[this.entry1])); w2.TopAttach = ((uint)(1)); w2.BottomAttach = ((uint)(2)); w2.LeftAttach = ((uint)(1)); w2.RightAttach = ((uint)(2)); w2.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Play:"); this.table1.Add (this.label1); global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1[this.label1])); w3.XOptions = ((global::Gtk.AttachOptions)(4)); w3.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label3 = new global::Gtk.Label (); this.label3.Name = "label3"; this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("Interval (frames/s):"); this.table1.Add (this.label3); global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table1[this.label3])); w4.TopAttach = ((uint)(2)); w4.BottomAttach = ((uint)(3)); // Container child table1.Gtk.Table+TableChild this.label5 = new global::Gtk.Label (); this.label5.Name = "label5"; this.label5.LabelProp = global::Mono.Unix.Catalog.GetString ("Series Name:"); this.table1.Add (this.label5); global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1[this.label5])); w5.TopAttach = ((uint)(1)); w5.BottomAttach = ((uint)(2)); // Container child table1.Gtk.Table+TableChild this.playLabel = new global::Gtk.Label (); this.playLabel.Name = "playLabel"; this.table1.Add (this.playLabel); global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table1[this.playLabel])); w6.LeftAttach = ((uint)(1)); w6.RightAttach = ((uint)(2)); w6.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.spinbutton1 = new global::Gtk.SpinButton (1, 25, 1); this.spinbutton1.CanFocus = true; this.spinbutton1.Name = "spinbutton1"; this.spinbutton1.Adjustment.PageIncrement = 10; this.spinbutton1.ClimbRate = 1; this.spinbutton1.Numeric = true; this.spinbutton1.Value = 1; this.table1.Add (this.spinbutton1); global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table1[this.spinbutton1])); w7.TopAttach = ((uint)(2)); w7.BottomAttach = ((uint)(3)); w7.LeftAttach = ((uint)(1)); w7.RightAttach = ((uint)(2)); w7.XOptions = ((global::Gtk.AttachOptions)(1)); w7.YOptions = ((global::Gtk.AttachOptions)(4)); w1.Add (this.table1); global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(w1[this.table1])); w8.Position = 0; // Internal child LongoMatch.Gui.Dialog.SnapshotsDialog.ActionArea global::Gtk.HButtonBox w9 = this.ActionArea; w9.Name = "dialog1_ActionArea"; w9.Spacing = 6; w9.BorderWidth = ((uint)(5)); w9.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.button22 = new global::Gtk.Button (); this.button22.CanFocus = true; this.button22.Name = "button22"; this.button22.UseUnderline = true; // Container child button22.Gtk.Container+ContainerChild global::Gtk.Alignment w10 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w11 = new global::Gtk.HBox (); w11.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w12 = new global::Gtk.Image (); w12.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-media-record", global::Gtk.IconSize.Button); w11.Add (w12); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w14 = new global::Gtk.Label (); w14.LabelProp = global::Mono.Unix.Catalog.GetString ("Export to PNG images"); w14.UseUnderline = true; w11.Add (w14); w10.Add (w11); this.button22.Add (w10); this.AddActionWidget (this.button22, -5); global::Gtk.ButtonBox.ButtonBoxChild w18 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w9[this.button22])); w18.Expand = false; w18.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 323; this.DefaultHeight = 160; this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.ButtonsWidget.cs0000644000175000017500000000453311601631101024126 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class ButtonsWidget { private global::Gtk.VBox vbox1; private global::Gtk.Button cancelbutton; private global::Gtk.Button starttagbutton; private global::Gtk.Table table1; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.ButtonsWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.ButtonsWidget"; // Container child LongoMatch.Gui.Component.ButtonsWidget.Gtk.Container+ContainerChild this.vbox1 = new global::Gtk.VBox (); this.vbox1.Name = "vbox1"; this.vbox1.Spacing = 6; // Container child vbox1.Gtk.Box+BoxChild this.cancelbutton = new global::Gtk.Button (); this.cancelbutton.Name = "cancelbutton"; this.cancelbutton.UseUnderline = true; this.cancelbutton.Label = global::Mono.Unix.Catalog.GetString ("Cancel"); this.vbox1.Add (this.cancelbutton); global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.cancelbutton])); w1.Position = 0; w1.Expand = false; w1.Fill = false; // Container child vbox1.Gtk.Box+BoxChild this.starttagbutton = new global::Gtk.Button (); this.starttagbutton.Name = "starttagbutton"; this.starttagbutton.UseUnderline = true; this.starttagbutton.Label = global::Mono.Unix.Catalog.GetString ("Tag new play"); this.vbox1.Add (this.starttagbutton); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.starttagbutton])); w2.Position = 1; w2.Expand = false; w2.Fill = false; // Container child vbox1.Gtk.Box+BoxChild this.table1 = new global::Gtk.Table (((uint)(5)), ((uint)(4)), false); this.table1.Name = "table1"; this.table1.RowSpacing = ((uint)(1)); this.table1.ColumnSpacing = ((uint)(1)); this.vbox1.Add (this.table1); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.table1])); w3.Position = 2; this.Add (this.vbox1); if ((this.Child != null)) { this.Child.ShowAll (); } this.cancelbutton.Hide (); this.starttagbutton.Hide (); this.Show (); this.cancelbutton.Clicked += new global::System.EventHandler (this.OnCancelbuttonClicked); this.starttagbutton.Clicked += new global::System.EventHandler (this.OnStartTagClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectTemplateWidget.cs0000644000175000017500000002357211601631101025576 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class ProjectTemplateWidget { private global::Gtk.HBox hbox1; private global::Gtk.ScrolledWindow scrolledwindow2; private global::LongoMatch.Gui.Component.CategoriesTreeView sectionstreeview1; private global::Gtk.VBox vbox2; private global::Gtk.Button newprevbutton; private global::Gtk.Button newafterbutton; private global::Gtk.Button removebutton; private global::Gtk.Button editbutton; private global::Gtk.HSeparator hseparator1; private global::Gtk.Button exportbutton; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.ProjectTemplateWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.ProjectTemplateWidget"; // Container child LongoMatch.Gui.Component.ProjectTemplateWidget.Gtk.Container+ContainerChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.scrolledwindow2 = new global::Gtk.ScrolledWindow (); this.scrolledwindow2.CanFocus = true; this.scrolledwindow2.Name = "scrolledwindow2"; this.scrolledwindow2.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child scrolledwindow2.Gtk.Container+ContainerChild this.sectionstreeview1 = new global::LongoMatch.Gui.Component.CategoriesTreeView (); this.sectionstreeview1.CanFocus = true; this.sectionstreeview1.Name = "sectionstreeview1"; this.scrolledwindow2.Add (this.sectionstreeview1); this.hbox1.Add (this.scrolledwindow2); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.scrolledwindow2])); w2.Position = 0; // Container child hbox1.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.newprevbutton = new global::Gtk.Button (); this.newprevbutton.TooltipMarkup = "Insert a new category before the selected one"; this.newprevbutton.Sensitive = false; this.newprevbutton.CanFocus = true; this.newprevbutton.Name = "newprevbutton"; this.newprevbutton.UseUnderline = true; // Container child newprevbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w3 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w4 = new global::Gtk.HBox (); w4.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w5 = new global::Gtk.Image (); w5.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-goto-top", global::Gtk.IconSize.Menu); w4.Add (w5); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w7 = new global::Gtk.Label (); w7.LabelProp = global::Mono.Unix.Catalog.GetString ("New Before"); w7.UseUnderline = true; w4.Add (w7); w3.Add (w4); this.newprevbutton.Add (w3); this.vbox2.Add (this.newprevbutton); global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.newprevbutton])); w11.Position = 0; w11.Expand = false; w11.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.newafterbutton = new global::Gtk.Button (); this.newafterbutton.TooltipMarkup = "Insert a new category after the selected one"; this.newafterbutton.Sensitive = false; this.newafterbutton.CanFocus = true; this.newafterbutton.Name = "newafterbutton"; this.newafterbutton.UseUnderline = true; // Container child newafterbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w12 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w13 = new global::Gtk.HBox (); w13.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w14 = new global::Gtk.Image (); w14.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-goto-bottom", global::Gtk.IconSize.Menu); w13.Add (w14); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w16 = new global::Gtk.Label (); w16.LabelProp = global::Mono.Unix.Catalog.GetString ("New After"); w16.UseUnderline = true; w13.Add (w16); w12.Add (w13); this.newafterbutton.Add (w12); this.vbox2.Add (this.newafterbutton); global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.newafterbutton])); w20.Position = 1; w20.Expand = false; w20.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.removebutton = new global::Gtk.Button (); this.removebutton.TooltipMarkup = "Remove the selected category"; this.removebutton.Sensitive = false; this.removebutton.CanFocus = true; this.removebutton.Name = "removebutton"; this.removebutton.UseUnderline = true; // Container child removebutton.Gtk.Container+ContainerChild global::Gtk.Alignment w21 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w22 = new global::Gtk.HBox (); w22.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w23 = new global::Gtk.Image (); w23.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-remove", global::Gtk.IconSize.Menu); w22.Add (w23); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w25 = new global::Gtk.Label (); w25.LabelProp = global::Mono.Unix.Catalog.GetString ("Remove"); w25.UseUnderline = true; w22.Add (w25); w21.Add (w22); this.removebutton.Add (w21); this.vbox2.Add (this.removebutton); global::Gtk.Box.BoxChild w29 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.removebutton])); w29.Position = 2; w29.Expand = false; w29.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.editbutton = new global::Gtk.Button (); this.editbutton.TooltipMarkup = "Edit the selected category"; this.editbutton.Sensitive = false; this.editbutton.CanFocus = true; this.editbutton.Name = "editbutton"; this.editbutton.UseUnderline = true; // Container child editbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w30 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w31 = new global::Gtk.HBox (); w31.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w32 = new global::Gtk.Image (); w32.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-edit", global::Gtk.IconSize.Menu); w31.Add (w32); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w34 = new global::Gtk.Label (); w34.LabelProp = global::Mono.Unix.Catalog.GetString ("Edit"); w34.UseUnderline = true; w31.Add (w34); w30.Add (w31); this.editbutton.Add (w30); this.vbox2.Add (this.editbutton); global::Gtk.Box.BoxChild w38 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.editbutton])); w38.Position = 3; w38.Expand = false; w38.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hseparator1 = new global::Gtk.HSeparator (); this.hseparator1.Name = "hseparator1"; this.vbox2.Add (this.hseparator1); global::Gtk.Box.BoxChild w39 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hseparator1])); w39.Position = 4; w39.Expand = false; w39.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.exportbutton = new global::Gtk.Button (); this.exportbutton.TooltipMarkup = "Export the template to a file"; this.exportbutton.CanFocus = true; this.exportbutton.Name = "exportbutton"; this.exportbutton.UseUnderline = true; // Container child exportbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w40 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w41 = new global::Gtk.HBox (); w41.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w42 = new global::Gtk.Image (); w42.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-save-as", global::Gtk.IconSize.Menu); w41.Add (w42); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w44 = new global::Gtk.Label (); w44.LabelProp = global::Mono.Unix.Catalog.GetString ("Export"); w44.UseUnderline = true; w41.Add (w44); w40.Add (w41); this.exportbutton.Add (w40); this.vbox2.Add (this.exportbutton); global::Gtk.Box.BoxChild w48 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.exportbutton])); w48.PackType = ((global::Gtk.PackType)(1)); w48.Position = 5; w48.Expand = false; w48.Fill = false; this.hbox1.Add (this.vbox2); global::Gtk.Box.BoxChild w49 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox2])); w49.Position = 1; w49.Expand = false; w49.Fill = false; this.Add (this.hbox1); if ((this.Child != null)) { this.Child.ShowAll (); } this.hseparator1.Hide (); this.exportbutton.Hide (); this.Show (); this.KeyPressEvent += new global::Gtk.KeyPressEventHandler (this.OnKeyPressEvent); this.sectionstreeview1.SectionClicked += new global::LongoMatch.Handlers.SectionHandler (this.OnSectionstreeview1SectionClicked); this.sectionstreeview1.SectionsSelected += new global::LongoMatch.Handlers.SectionsHandler (this.OnSectionstreeview1SectionsSelected); this.newprevbutton.Clicked += new global::System.EventHandler (this.OnNewBefore); this.newafterbutton.Clicked += new global::System.EventHandler (this.OnNewAfter); this.newafterbutton.Activated += new global::System.EventHandler (this.OnNewBefore); this.removebutton.Clicked += new global::System.EventHandler (this.OnRemove); this.editbutton.Clicked += new global::System.EventHandler (this.OnEdit); this.exportbutton.Clicked += new global::System.EventHandler (this.OnExportbuttonClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EndCaptureDialog.cs0000644000175000017500000001712511601631101023734 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class EndCaptureDialog { private global::Gtk.VBox vbox2; private global::Gtk.HBox hbox2; private global::Gtk.Image image439; private global::Gtk.Label label1; private global::Gtk.HBox hbox3; private global::Gtk.Button returnbutton; private global::Gtk.Button quitbutton; private global::Gtk.Button savebutton; private global::Gtk.Button buttonCancel; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.EndCaptureDialog this.Name = "LongoMatch.Gui.Dialog.EndCaptureDialog"; this.Title = ""; this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Menu); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; // Internal child LongoMatch.Gui.Dialog.EndCaptureDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.image439 = new global::Gtk.Image (); this.image439.Name = "image439"; this.image439.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "stock_dialog-question", global::Gtk.IconSize.Dialog); this.hbox2.Add (this.image439); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.image439])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("A capture project is actually running.\nYou can continue with the current capture, cancel it or save your project. \n\nWarning: If you cancel the current project all your changes will be lost."); this.label1.UseMarkup = true; this.label1.Justify = ((global::Gtk.Justification)(2)); this.hbox2.Add (this.label1); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.label1])); w3.Position = 1; this.vbox2.Add (this.hbox2); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox2])); w4.Position = 0; // Container child vbox2.Gtk.Box+BoxChild this.hbox3 = new global::Gtk.HBox (); this.hbox3.Name = "hbox3"; this.hbox3.Spacing = 6; // Container child hbox3.Gtk.Box+BoxChild this.returnbutton = new global::Gtk.Button (); this.returnbutton.CanFocus = true; this.returnbutton.Name = "returnbutton"; this.returnbutton.UseUnderline = true; // Container child returnbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w5 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w6 = new global::Gtk.HBox (); w6.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w7 = new global::Gtk.Image (); w7.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-undo", global::Gtk.IconSize.Button); w6.Add (w7); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w9 = new global::Gtk.Label (); w9.LabelProp = global::Mono.Unix.Catalog.GetString ("Return"); w9.UseUnderline = true; w6.Add (w9); w5.Add (w6); this.returnbutton.Add (w5); this.hbox3.Add (this.returnbutton); global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.returnbutton])); w13.Position = 0; w13.Fill = false; // Container child hbox3.Gtk.Box+BoxChild this.quitbutton = new global::Gtk.Button (); this.quitbutton.CanFocus = true; this.quitbutton.Name = "quitbutton"; this.quitbutton.UseUnderline = true; // Container child quitbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w14 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w15 = new global::Gtk.HBox (); w15.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w16 = new global::Gtk.Image (); w16.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-cancel", global::Gtk.IconSize.Button); w15.Add (w16); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w18 = new global::Gtk.Label (); w18.LabelProp = global::Mono.Unix.Catalog.GetString ("Cancel capture"); w18.UseUnderline = true; w15.Add (w18); w14.Add (w15); this.quitbutton.Add (w14); this.hbox3.Add (this.quitbutton); global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.quitbutton])); w22.Position = 1; w22.Fill = false; // Container child hbox3.Gtk.Box+BoxChild this.savebutton = new global::Gtk.Button (); this.savebutton.CanFocus = true; this.savebutton.Name = "savebutton"; this.savebutton.UseUnderline = true; // Container child savebutton.Gtk.Container+ContainerChild global::Gtk.Alignment w23 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w24 = new global::Gtk.HBox (); w24.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w25 = new global::Gtk.Image (); w25.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-save", global::Gtk.IconSize.Button); w24.Add (w25); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w27 = new global::Gtk.Label (); w27.LabelProp = global::Mono.Unix.Catalog.GetString ("Stop capture and save project"); w27.UseUnderline = true; w24.Add (w27); w23.Add (w24); this.savebutton.Add (w23); this.hbox3.Add (this.savebutton); global::Gtk.Box.BoxChild w31 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.savebutton])); w31.Position = 2; w31.Fill = false; this.vbox2.Add (this.hbox3); global::Gtk.Box.BoxChild w32 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox3])); w32.Position = 1; w32.Expand = false; w32.Fill = false; w1.Add (this.vbox2); global::Gtk.Box.BoxChild w33 = ((global::Gtk.Box.BoxChild)(w1[this.vbox2])); w33.Position = 0; // Internal child LongoMatch.Gui.Dialog.EndCaptureDialog.ActionArea global::Gtk.HButtonBox w34 = this.ActionArea; w34.Sensitive = false; w34.Name = "dialog1_ActionArea"; w34.Spacing = 6; w34.BorderWidth = ((uint)(5)); w34.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w35 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w34[this.buttonCancel])); w35.Expand = false; w35.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 517; this.DefaultHeight = 175; w34.Hide (); this.Show (); this.returnbutton.Clicked += new global::System.EventHandler (this.OnQuit); this.quitbutton.Clicked += new global::System.EventHandler (this.OnQuit); this.savebutton.Clicked += new global::System.EventHandler (this.OnQuit); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeLineWidget.cs0000644000175000017500000001537111601631101024200 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class TimeLineWidget { private global::Gtk.VBox vbox3; private global::Gtk.HSeparator hseparator1; private global::Gtk.HBox hbox3; private global::Gtk.VBox leftbox; private global::Gtk.HBox toolsbox; private global::Gtk.Button fitbutton; private global::Gtk.HScale zoomscale; private global::Gtk.Alignment categoriesalignment1; private global::Gtk.HBox categoriesbox; private global::Gtk.VSeparator vseparator1; private global::Gtk.VBox vbox2; private global::Gtk.VBox timescalebox; private global::Gtk.ScrolledWindow GtkScrolledWindow; private global::Gtk.VBox vbox1; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.TimeLineWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.TimeLineWidget"; // Container child LongoMatch.Gui.Component.TimeLineWidget.Gtk.Container+ContainerChild this.vbox3 = new global::Gtk.VBox (); this.vbox3.Name = "vbox3"; this.vbox3.Spacing = 6; // Container child vbox3.Gtk.Box+BoxChild this.hseparator1 = new global::Gtk.HSeparator (); this.hseparator1.Name = "hseparator1"; this.vbox3.Add (this.hseparator1); global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hseparator1])); w1.Position = 0; w1.Expand = false; w1.Fill = false; // Container child vbox3.Gtk.Box+BoxChild this.hbox3 = new global::Gtk.HBox (); this.hbox3.Name = "hbox3"; // Container child hbox3.Gtk.Box+BoxChild this.leftbox = new global::Gtk.VBox (); this.leftbox.Name = "leftbox"; this.leftbox.Spacing = 6; // Container child leftbox.Gtk.Box+BoxChild this.toolsbox = new global::Gtk.HBox (); this.toolsbox.Name = "toolsbox"; this.toolsbox.Spacing = 6; // Container child toolsbox.Gtk.Box+BoxChild this.fitbutton = new global::Gtk.Button (); this.fitbutton.Name = "fitbutton"; this.fitbutton.UseUnderline = true; // Container child fitbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w2 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w3 = new global::Gtk.HBox (); w3.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w4 = new global::Gtk.Image (); w4.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-zoom-fit", global::Gtk.IconSize.Button); w3.Add (w4); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w6 = new global::Gtk.Label (); w3.Add (w6); w2.Add (w3); this.fitbutton.Add (w2); this.toolsbox.Add (this.fitbutton); global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.toolsbox[this.fitbutton])); w10.Position = 0; w10.Expand = false; w10.Fill = false; // Container child toolsbox.Gtk.Box+BoxChild this.zoomscale = new global::Gtk.HScale (null); this.zoomscale.CanFocus = true; this.zoomscale.Name = "zoomscale"; this.zoomscale.UpdatePolicy = ((global::Gtk.UpdateType)(1)); this.zoomscale.Adjustment.Lower = 1; this.zoomscale.Adjustment.Upper = 100; this.zoomscale.Adjustment.PageIncrement = 10; this.zoomscale.Adjustment.StepIncrement = 1; this.zoomscale.Adjustment.Value = 1; this.zoomscale.DrawValue = true; this.zoomscale.Digits = 0; this.zoomscale.ValuePos = ((global::Gtk.PositionType)(2)); this.toolsbox.Add (this.zoomscale); global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.toolsbox[this.zoomscale])); w11.Position = 1; this.leftbox.Add (this.toolsbox); global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.leftbox[this.toolsbox])); w12.Position = 0; w12.Expand = false; w12.Fill = false; // Container child leftbox.Gtk.Box+BoxChild this.categoriesalignment1 = new global::Gtk.Alignment (0.5f, 0.5f, 1f, 1f); this.categoriesalignment1.Name = "categoriesalignment1"; // Container child categoriesalignment1.Gtk.Container+ContainerChild this.categoriesbox = new global::Gtk.HBox (); this.categoriesbox.Name = "categoriesbox"; this.categoriesbox.Spacing = 6; this.categoriesalignment1.Add (this.categoriesbox); this.leftbox.Add (this.categoriesalignment1); global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.leftbox[this.categoriesalignment1])); w14.Position = 1; this.hbox3.Add (this.leftbox); global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.leftbox])); w15.Position = 0; w15.Expand = false; w15.Fill = false; // Container child hbox3.Gtk.Box+BoxChild this.vseparator1 = new global::Gtk.VSeparator (); this.vseparator1.Name = "vseparator1"; this.hbox3.Add (this.vseparator1); global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.vseparator1])); w16.Position = 1; w16.Expand = false; w16.Fill = false; // Container child hbox3.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.timescalebox = new global::Gtk.VBox (); this.timescalebox.Name = "timescalebox"; this.timescalebox.Spacing = 6; this.vbox2.Add (this.timescalebox); global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.timescalebox])); w17.Position = 0; w17.Expand = false; w17.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.GtkScrolledWindow = new global::Gtk.ScrolledWindow (); this.GtkScrolledWindow.Name = "GtkScrolledWindow"; this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child GtkScrolledWindow.Gtk.Container+ContainerChild global::Gtk.Viewport w18 = new global::Gtk.Viewport (); w18.ShadowType = ((global::Gtk.ShadowType)(0)); // Container child GtkViewport.Gtk.Container+ContainerChild this.vbox1 = new global::Gtk.VBox (); this.vbox1.Name = "vbox1"; w18.Add (this.vbox1); this.GtkScrolledWindow.Add (w18); this.vbox2.Add (this.GtkScrolledWindow); global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.GtkScrolledWindow])); w21.Position = 1; this.hbox3.Add (this.vbox2); global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.vbox2])); w22.Position = 2; this.vbox3.Add (this.hbox3); global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hbox3])); w23.Position = 1; this.Add (this.vbox3); if ((this.Child != null)) { this.Child.ShowAll (); } this.Show (); this.fitbutton.Clicked += new global::System.EventHandler (this.OnFitbuttonClicked); this.zoomscale.ValueChanged += new global::System.EventHandler (this.OnZoomscaleValueChanged); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayersListTreeWidget.cs0000644000175000017500000000236711601631101025566 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class PlayersListTreeWidget { private global::Gtk.ScrolledWindow scrolledwindow1; private global::LongoMatch.Gui.Component.PlayersTreeView playerstreeview; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.PlayersListTreeWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.PlayersListTreeWidget"; // Container child LongoMatch.Gui.Component.PlayersListTreeWidget.Gtk.Container+ContainerChild this.scrolledwindow1 = new global::Gtk.ScrolledWindow (); this.scrolledwindow1.CanFocus = true; this.scrolledwindow1.Name = "scrolledwindow1"; this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child scrolledwindow1.Gtk.Container+ContainerChild this.playerstreeview = new global::LongoMatch.Gui.Component.PlayersTreeView (); this.playerstreeview.CanFocus = true; this.playerstreeview.Name = "playerstreeview"; this.scrolledwindow1.Add (this.playerstreeview); this.Add (this.scrolledwindow1); if ((this.Child != null)) { this.Child.ShowAll (); } this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs0000644000175000017500000000546411601631101025172 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class PlayersSelectionDialog { private global::Gtk.Table table1; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.PlayersSelectionDialog this.Name = "LongoMatch.Gui.Dialog.PlayersSelectionDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Tag players"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.PlayersSelectionDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.table1 = new global::Gtk.Table (((uint)(3)), ((uint)(3)), false); this.table1.Name = "table1"; this.table1.RowSpacing = ((uint)(6)); this.table1.ColumnSpacing = ((uint)(6)); w1.Add (this.table1); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.table1])); w2.Position = 0; // Internal child LongoMatch.Gui.Dialog.PlayersSelectionDialog.ActionArea global::Gtk.HButtonBox w3 = this.ActionArea; w3.Name = "dialog1_ActionArea"; w3.Spacing = 6; w3.BorderWidth = ((uint)(5)); w3.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w4 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonCancel])); w4.Expand = false; w4.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w5 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonOk])); w5.Position = 1; w5.Expand = false; w5.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 204; this.DefaultHeight = 300; this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayListWidget.cs0000644000175000017500000002224411601631101024230 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class PlayListWidget { private global::Gtk.VBox vbox2; private global::Gtk.ScrolledWindow scrolledwindow1; private global::Gtk.VBox vbox1; private global::Gtk.Label label1; private global::LongoMatch.Gui.Component.PlayListTreeView playlisttreeview1; private global::Gtk.HBox hbox2; private global::Gtk.Button newbutton; private global::Gtk.Button openbutton; private global::Gtk.Button savebutton; private global::Gtk.Button newvideobutton; private global::Gtk.Button closebutton; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.PlayListWidget global::Stetic.BinContainer.Attach (this); this.WidthRequest = 100; this.Name = "LongoMatch.Gui.Component.PlayListWidget"; // Container child LongoMatch.Gui.Component.PlayListWidget.Gtk.Container+ContainerChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.scrolledwindow1 = new global::Gtk.ScrolledWindow (); this.scrolledwindow1.CanFocus = true; this.scrolledwindow1.Name = "scrolledwindow1"; this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child scrolledwindow1.Gtk.Container+ContainerChild global::Gtk.Viewport w1 = new global::Gtk.Viewport (); w1.ShadowType = ((global::Gtk.ShadowType)(0)); // Container child GtkViewport.Gtk.Container+ContainerChild this.vbox1 = new global::Gtk.VBox (); this.vbox1.Name = "vbox1"; this.vbox1.Spacing = 6; // Container child vbox1.Gtk.Box+BoxChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Load a playlist\nor create a \nnew one."); this.vbox1.Add (this.label1); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.label1])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Container child vbox1.Gtk.Box+BoxChild this.playlisttreeview1 = new global::LongoMatch.Gui.Component.PlayListTreeView (); this.playlisttreeview1.Sensitive = false; this.playlisttreeview1.CanFocus = true; this.playlisttreeview1.Name = "playlisttreeview1"; this.vbox1.Add (this.playlisttreeview1); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.playlisttreeview1])); w3.Position = 1; w1.Add (this.vbox1); this.scrolledwindow1.Add (w1); this.vbox2.Add (this.scrolledwindow1); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.scrolledwindow1])); w6.Position = 0; // Container child vbox2.Gtk.Box+BoxChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Homogeneous = true; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.newbutton = new global::Gtk.Button (); this.newbutton.TooltipMarkup = "Create a new playlist"; this.newbutton.CanFocus = true; this.newbutton.Name = "newbutton"; this.newbutton.UseUnderline = true; // Container child newbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w7 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w8 = new global::Gtk.HBox (); w8.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w9 = new global::Gtk.Image (); w9.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-new", global::Gtk.IconSize.Button); w8.Add (w9); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w11 = new global::Gtk.Label (); w8.Add (w11); w7.Add (w8); this.newbutton.Add (w7); this.hbox2.Add (this.newbutton); global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.newbutton])); w15.Position = 0; // Container child hbox2.Gtk.Box+BoxChild this.openbutton = new global::Gtk.Button (); this.openbutton.TooltipMarkup = "Open a playlist"; this.openbutton.CanFocus = true; this.openbutton.Name = "openbutton"; this.openbutton.UseUnderline = true; // Container child openbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w16 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w17 = new global::Gtk.HBox (); w17.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w18 = new global::Gtk.Image (); w18.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-open", global::Gtk.IconSize.Button); w17.Add (w18); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w20 = new global::Gtk.Label (); w17.Add (w20); w16.Add (w17); this.openbutton.Add (w16); this.hbox2.Add (this.openbutton); global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.openbutton])); w24.Position = 1; // Container child hbox2.Gtk.Box+BoxChild this.savebutton = new global::Gtk.Button (); this.savebutton.TooltipMarkup = "Save the playlist"; this.savebutton.CanFocus = true; this.savebutton.Name = "savebutton"; this.savebutton.UseUnderline = true; // Container child savebutton.Gtk.Container+ContainerChild global::Gtk.Alignment w25 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w26 = new global::Gtk.HBox (); w26.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w27 = new global::Gtk.Image (); w27.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-save", global::Gtk.IconSize.Button); w26.Add (w27); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w29 = new global::Gtk.Label (); w26.Add (w29); w25.Add (w26); this.savebutton.Add (w25); this.hbox2.Add (this.savebutton); global::Gtk.Box.BoxChild w33 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.savebutton])); w33.Position = 2; // Container child hbox2.Gtk.Box+BoxChild this.newvideobutton = new global::Gtk.Button (); this.newvideobutton.TooltipMarkup = "Export the playlist to new video file"; this.newvideobutton.CanFocus = true; this.newvideobutton.Name = "newvideobutton"; this.newvideobutton.UseUnderline = true; // Container child newvideobutton.Gtk.Container+ContainerChild global::Gtk.Alignment w34 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w35 = new global::Gtk.HBox (); w35.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w36 = new global::Gtk.Image (); w36.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-media-record", global::Gtk.IconSize.Button); w35.Add (w36); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w38 = new global::Gtk.Label (); w35.Add (w38); w34.Add (w35); this.newvideobutton.Add (w34); this.hbox2.Add (this.newvideobutton); global::Gtk.Box.BoxChild w42 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.newvideobutton])); w42.Position = 3; // Container child hbox2.Gtk.Box+BoxChild this.closebutton = new global::Gtk.Button (); this.closebutton.TooltipMarkup = "Cancel rendering"; this.closebutton.CanFocus = true; this.closebutton.Name = "closebutton"; this.closebutton.UseUnderline = true; // Container child closebutton.Gtk.Container+ContainerChild global::Gtk.Alignment w43 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w44 = new global::Gtk.HBox (); w44.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w45 = new global::Gtk.Image (); w45.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-close", global::Gtk.IconSize.Button); w44.Add (w45); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w47 = new global::Gtk.Label (); w44.Add (w47); w43.Add (w44); this.closebutton.Add (w43); this.hbox2.Add (this.closebutton); global::Gtk.Box.BoxChild w51 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.closebutton])); w51.Position = 4; this.vbox2.Add (this.hbox2); global::Gtk.Box.BoxChild w52 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox2])); w52.Position = 1; w52.Expand = false; w52.Fill = false; this.Add (this.vbox2); if ((this.Child != null)) { this.Child.ShowAll (); } this.closebutton.Hide (); this.Show (); this.playlisttreeview1.DragEnd += new global::Gtk.DragEndHandler (this.OnPlaylisttreeview1DragEnd); this.newbutton.Clicked += new global::System.EventHandler (this.OnNewbuttonClicked); this.openbutton.Clicked += new global::System.EventHandler (this.OnOpenbuttonClicked); this.savebutton.Clicked += new global::System.EventHandler (this.OnSavebuttonClicked); this.newvideobutton.Clicked += new global::System.EventHandler (this.OnNewvideobuttonClicked); this.closebutton.Clicked += new global::System.EventHandler (this.OnClosebuttonClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs0000644000175000017500000000571411601631101023763 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class NewProjectDialog { private global::LongoMatch.Gui.Component.ProjectDetailsWidget fdwidget; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.NewProjectDialog this.Name = "LongoMatch.Gui.Dialog.NewProjectDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("New Project"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.DestroyWithParent = true; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.NewProjectDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.fdwidget = new global::LongoMatch.Gui.Component.ProjectDetailsWidget (); this.fdwidget.Name = "fdwidget"; this.fdwidget.Edited = false; this.fdwidget.LocalGoals = 0; this.fdwidget.VisitorGoals = 0; this.fdwidget.Date = new global::System.DateTime (0); w1.Add (this.fdwidget); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.fdwidget])); w2.Position = 0; // Internal child LongoMatch.Gui.Dialog.NewProjectDialog.ActionArea global::Gtk.HButtonBox w3 = this.ActionArea; w3.Name = "dialog1_ActionArea"; w3.Spacing = 6; w3.BorderWidth = ((uint)(5)); w3.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w4 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonCancel])); w4.Expand = false; w4.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w5 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonOk])); w5.Position = 1; w5.Expand = false; w5.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 384; this.DefaultHeight = 451; this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs0000644000175000017500000001621711601631101025157 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class ProjectSelectionDialog { private global::Gtk.VBox vbox2; private global::Gtk.HBox hbox1; private global::Gtk.RadioButton fromfileradiobutton; private global::Gtk.Image image61; private global::Gtk.HBox hbox2; private global::Gtk.RadioButton liveradiobutton; private global::Gtk.Image image63; private global::Gtk.HBox hbox3; private global::Gtk.RadioButton fakeliveradiobutton; private global::Gtk.Image image62; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.ProjectSelectionDialog this.Name = "LongoMatch.Gui.Dialog.ProjectSelectionDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("New Project"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Menu); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.ProjectSelectionDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.fromfileradiobutton = new global::Gtk.RadioButton (global::Mono.Unix.Catalog.GetString ("New project using a video file")); this.fromfileradiobutton.CanFocus = true; this.fromfileradiobutton.Name = "fromfileradiobutton"; this.fromfileradiobutton.Active = true; this.fromfileradiobutton.DrawIndicator = true; this.fromfileradiobutton.UseUnderline = true; this.fromfileradiobutton.FocusOnClick = false; this.fromfileradiobutton.Group = new global::GLib.SList (global::System.IntPtr.Zero); this.hbox1.Add (this.fromfileradiobutton); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.fromfileradiobutton])); w2.Position = 0; // Container child hbox1.Gtk.Box+BoxChild this.image61 = new global::Gtk.Image (); this.image61.Name = "image61"; this.image61.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("video.png"); this.hbox1.Add (this.image61); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.image61])); w3.Position = 1; w3.Expand = false; w3.Fill = false; this.vbox2.Add (this.hbox1); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox1])); w4.Position = 0; w4.Expand = false; w4.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.liveradiobutton = new global::Gtk.RadioButton (global::Mono.Unix.Catalog.GetString ("Live project using a capture device")); this.liveradiobutton.CanFocus = true; this.liveradiobutton.Name = "liveradiobutton"; this.liveradiobutton.DrawIndicator = true; this.liveradiobutton.UseUnderline = true; this.liveradiobutton.Group = this.fromfileradiobutton.Group; this.hbox2.Add (this.liveradiobutton); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.liveradiobutton])); w5.Position = 0; // Container child hbox2.Gtk.Box+BoxChild this.image63 = new global::Gtk.Image (); this.image63.Name = "image63"; this.image63.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("camera-video.png"); this.hbox2.Add (this.image63); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.image63])); w6.Position = 1; w6.Expand = false; w6.Fill = false; this.vbox2.Add (this.hbox2); global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox2])); w7.Position = 1; w7.Expand = false; w7.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox3 = new global::Gtk.HBox (); this.hbox3.Name = "hbox3"; this.hbox3.Spacing = 6; // Container child hbox3.Gtk.Box+BoxChild this.fakeliveradiobutton = new global::Gtk.RadioButton (global::Mono.Unix.Catalog.GetString ("Live project using a fake capture device")); this.fakeliveradiobutton.CanFocus = true; this.fakeliveradiobutton.Name = "fakeliveradiobutton"; this.fakeliveradiobutton.DrawIndicator = true; this.fakeliveradiobutton.UseUnderline = true; this.fakeliveradiobutton.Group = this.fromfileradiobutton.Group; this.hbox3.Add (this.fakeliveradiobutton); global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.fakeliveradiobutton])); w8.Position = 0; // Container child hbox3.Gtk.Box+BoxChild this.image62 = new global::Gtk.Image (); this.image62.Name = "image62"; this.image62.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("camera-video.png"); this.hbox3.Add (this.image62); global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.image62])); w9.Position = 1; w9.Expand = false; w9.Fill = false; this.vbox2.Add (this.hbox3); global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox3])); w10.Position = 2; w10.Expand = false; w10.Fill = false; w1.Add (this.vbox2); global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(w1[this.vbox2])); w11.Position = 0; w11.Expand = false; w11.Fill = false; // Internal child LongoMatch.Gui.Dialog.ProjectSelectionDialog.ActionArea global::Gtk.HButtonBox w12 = this.ActionArea; w12.Name = "dialog1_ActionArea"; w12.Spacing = 6; w12.BorderWidth = ((uint)(5)); w12.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w13 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w12[this.buttonCancel])); w13.Expand = false; w13.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w14 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w12[this.buttonOk])); w14.Position = 1; w14.Expand = false; w14.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 298; this.DefaultHeight = 179; this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.CategoryProperties.cs0000644000175000017500000001640611601631101025160 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class CategoryProperties { private global::Gtk.VBox vbox3; private global::Gtk.HBox hbox4; private global::Gtk.Label label1; private global::Gtk.Entry nameentry; private global::LongoMatch.Gui.Component.TimeAdjustWidget timeadjustwidget1; private global::Gtk.HBox hbox2; private global::Gtk.Label label4; private global::Gtk.ColorButton colorbutton1; private global::Gtk.Button changebuton; private global::Gtk.Label hotKeyLabel; private global::Gtk.Label label6; private global::Gtk.HBox hbox1; private global::Gtk.Label label5; private global::Gtk.ComboBox sortmethodcombobox; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.CategoryProperties global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.CategoryProperties"; // Container child LongoMatch.Gui.Component.CategoryProperties.Gtk.Container+ContainerChild this.vbox3 = new global::Gtk.VBox (); this.vbox3.Name = "vbox3"; this.vbox3.Spacing = 6; // Container child vbox3.Gtk.Box+BoxChild this.hbox4 = new global::Gtk.HBox (); this.hbox4.Name = "hbox4"; this.hbox4.Spacing = 6; // Container child hbox4.Gtk.Box+BoxChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Name:"); this.hbox4.Add (this.label1); global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.label1])); w1.Position = 0; w1.Expand = false; w1.Fill = false; // Container child hbox4.Gtk.Box+BoxChild this.nameentry = new global::Gtk.Entry (); this.nameentry.CanFocus = true; this.nameentry.Name = "nameentry"; this.nameentry.IsEditable = true; this.nameentry.InvisibleChar = '●'; this.hbox4.Add (this.nameentry); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.nameentry])); w2.Position = 1; this.vbox3.Add (this.hbox4); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hbox4])); w3.Position = 0; w3.Fill = false; // Container child vbox3.Gtk.Box+BoxChild this.timeadjustwidget1 = new global::LongoMatch.Gui.Component.TimeAdjustWidget (); this.timeadjustwidget1.Events = ((global::Gdk.EventMask)(256)); this.timeadjustwidget1.Name = "timeadjustwidget1"; this.vbox3.Add (this.timeadjustwidget1); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.timeadjustwidget1])); w4.Position = 1; w4.Fill = false; // Container child vbox3.Gtk.Box+BoxChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.label4 = new global::Gtk.Label (); this.label4.Name = "label4"; this.label4.LabelProp = global::Mono.Unix.Catalog.GetString ("Color: "); this.hbox2.Add (this.label4); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.label4])); w5.Position = 0; w5.Expand = false; w5.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.colorbutton1 = new global::Gtk.ColorButton (); this.colorbutton1.CanFocus = true; this.colorbutton1.Events = ((global::Gdk.EventMask)(784)); this.colorbutton1.Name = "colorbutton1"; this.hbox2.Add (this.colorbutton1); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.colorbutton1])); w6.Position = 1; w6.Expand = false; w6.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.changebuton = new global::Gtk.Button (); this.changebuton.CanFocus = true; this.changebuton.Name = "changebuton"; this.changebuton.UseUnderline = true; this.changebuton.Label = global::Mono.Unix.Catalog.GetString ("Change"); this.hbox2.Add (this.changebuton); global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.changebuton])); w7.PackType = ((global::Gtk.PackType)(1)); w7.Position = 2; w7.Expand = false; w7.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.hotKeyLabel = new global::Gtk.Label (); this.hotKeyLabel.Name = "hotKeyLabel"; this.hotKeyLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("none"); this.hbox2.Add (this.hotKeyLabel); global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.hotKeyLabel])); w8.PackType = ((global::Gtk.PackType)(1)); w8.Position = 3; w8.Expand = false; w8.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.label6 = new global::Gtk.Label (); this.label6.Name = "label6"; this.label6.LabelProp = global::Mono.Unix.Catalog.GetString ("HotKey:"); this.hbox2.Add (this.label6); global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.label6])); w9.PackType = ((global::Gtk.PackType)(1)); w9.Position = 4; w9.Expand = false; w9.Fill = false; this.vbox3.Add (this.hbox2); global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hbox2])); w10.Position = 2; w10.Fill = false; // Container child vbox3.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.label5 = new global::Gtk.Label (); this.label5.Name = "label5"; this.label5.LabelProp = global::Mono.Unix.Catalog.GetString ("Sort Method"); this.hbox1.Add (this.label5); global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.label5])); w11.Position = 0; w11.Expand = false; w11.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.sortmethodcombobox = global::Gtk.ComboBox.NewText (); this.sortmethodcombobox.AppendText (global::Mono.Unix.Catalog.GetString ("Sort by name")); this.sortmethodcombobox.AppendText (global::Mono.Unix.Catalog.GetString ("Sort by start time")); this.sortmethodcombobox.AppendText (global::Mono.Unix.Catalog.GetString ("Sort by stop time")); this.sortmethodcombobox.AppendText (global::Mono.Unix.Catalog.GetString ("Sort by duration")); this.sortmethodcombobox.Name = "sortmethodcombobox"; this.sortmethodcombobox.Active = 0; this.hbox1.Add (this.sortmethodcombobox); global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.sortmethodcombobox])); w12.Position = 1; this.vbox3.Add (this.hbox1); global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hbox1])); w13.Position = 3; w13.Expand = false; w13.Fill = false; this.Add (this.vbox3); if ((this.Child != null)) { this.Child.ShowAll (); } this.Show (); this.nameentry.Changed += new global::System.EventHandler (this.OnNameentryChanged); this.timeadjustwidget1.LeadTimeChanged += new global::System.EventHandler (this.OnTimeadjustwidget1LeadTimeChanged); this.timeadjustwidget1.LagTimeChanged += new global::System.EventHandler (this.OnTimeadjustwidget1LagTimeChanged); this.colorbutton1.ColorSet += new global::System.EventHandler (this.OnColorbutton1ColorSet); this.changebuton.Clicked += new global::System.EventHandler (this.OnChangebutonClicked); this.sortmethodcombobox.Changed += new global::System.EventHandler (this.OnSortmethodcomboboxChanged); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs0000644000175000017500000002602311601631101025216 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class VideoEditionProperties { private global::Gtk.VBox vbox2; private global::Gtk.HBox hbox2; private global::Gtk.Label label1; private global::Gtk.ComboBox qualitycombobox; private global::Gtk.HBox hbox4; private global::Gtk.Label label2; private global::Gtk.ComboBox sizecombobox; private global::Gtk.HBox hbox5; private global::Gtk.Label label3; private global::Gtk.ComboBox formatcombobox; private global::Gtk.HBox hbox6; private global::Gtk.CheckButton descriptioncheckbutton; private global::Gtk.CheckButton audiocheckbutton; private global::Gtk.HBox hbox1; private global::Gtk.Label filenamelabel; private global::Gtk.HBox hbox3; private global::Gtk.Entry fileentry; private global::Gtk.Button openbutton; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.VideoEditionProperties this.Name = "LongoMatch.Gui.Dialog.VideoEditionProperties"; this.Title = global::Mono.Unix.Catalog.GetString ("Video Properties"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.VideoEditionProperties.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Homogeneous = true; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.Xalign = 0f; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Video Quality:"); this.hbox2.Add (this.label1); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.label1])); w2.Position = 0; // Container child hbox2.Gtk.Box+BoxChild this.qualitycombobox = global::Gtk.ComboBox.NewText (); this.qualitycombobox.AppendText (global::Mono.Unix.Catalog.GetString ("Low")); this.qualitycombobox.AppendText (global::Mono.Unix.Catalog.GetString ("Normal")); this.qualitycombobox.AppendText (global::Mono.Unix.Catalog.GetString ("Good")); this.qualitycombobox.AppendText (global::Mono.Unix.Catalog.GetString ("Extra")); this.qualitycombobox.Name = "qualitycombobox"; this.qualitycombobox.Active = 1; this.hbox2.Add (this.qualitycombobox); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.qualitycombobox])); w3.Position = 1; this.vbox2.Add (this.hbox2); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox2])); w4.Position = 0; w4.Expand = false; w4.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox4 = new global::Gtk.HBox (); this.hbox4.Name = "hbox4"; this.hbox4.Homogeneous = true; this.hbox4.Spacing = 6; // Container child hbox4.Gtk.Box+BoxChild this.label2 = new global::Gtk.Label (); this.label2.Name = "label2"; this.label2.Xalign = 0f; this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("Size: "); this.hbox4.Add (this.label2); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.label2])); w5.Position = 0; // Container child hbox4.Gtk.Box+BoxChild this.sizecombobox = global::Gtk.ComboBox.NewText (); this.sizecombobox.AppendText (global::Mono.Unix.Catalog.GetString ("Portable (4:3 - 320x240)")); this.sizecombobox.AppendText (global::Mono.Unix.Catalog.GetString ("VGA (4:3 - 640x480)")); this.sizecombobox.AppendText (global::Mono.Unix.Catalog.GetString ("TV (4:3 - 720x576)")); this.sizecombobox.AppendText (global::Mono.Unix.Catalog.GetString ("HD 720p (16:9 - 1280x720)")); this.sizecombobox.AppendText (global::Mono.Unix.Catalog.GetString ("Full HD 1080p (16:9 - 1920x1080)")); this.sizecombobox.Name = "sizecombobox"; this.sizecombobox.Active = 1; this.hbox4.Add (this.sizecombobox); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.sizecombobox])); w6.Position = 1; this.vbox2.Add (this.hbox4); global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox4])); w7.Position = 1; w7.Expand = false; w7.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox5 = new global::Gtk.HBox (); this.hbox5.Name = "hbox5"; this.hbox5.Homogeneous = true; this.hbox5.Spacing = 6; // Container child hbox5.Gtk.Box+BoxChild this.label3 = new global::Gtk.Label (); this.label3.Name = "label3"; this.label3.Xalign = 0f; this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("Ouput Format:"); this.hbox5.Add (this.label3); global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.label3])); w8.Position = 0; // Container child hbox5.Gtk.Box+BoxChild this.formatcombobox = global::Gtk.ComboBox.NewText (); this.formatcombobox.Name = "formatcombobox"; this.hbox5.Add (this.formatcombobox); global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.formatcombobox])); w9.Position = 1; this.vbox2.Add (this.hbox5); global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox5])); w10.Position = 2; w10.Expand = false; w10.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox6 = new global::Gtk.HBox (); this.hbox6.Name = "hbox6"; this.hbox6.Spacing = 6; // Container child hbox6.Gtk.Box+BoxChild this.descriptioncheckbutton = new global::Gtk.CheckButton (); this.descriptioncheckbutton.CanFocus = true; this.descriptioncheckbutton.Name = "descriptioncheckbutton"; this.descriptioncheckbutton.Label = global::Mono.Unix.Catalog.GetString ("Enable Title Overlay"); this.descriptioncheckbutton.Active = true; this.descriptioncheckbutton.DrawIndicator = true; this.descriptioncheckbutton.UseUnderline = true; this.hbox6.Add (this.descriptioncheckbutton); global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox6[this.descriptioncheckbutton])); w11.Position = 0; // Container child hbox6.Gtk.Box+BoxChild this.audiocheckbutton = new global::Gtk.CheckButton (); this.audiocheckbutton.CanFocus = true; this.audiocheckbutton.Name = "audiocheckbutton"; this.audiocheckbutton.Label = global::Mono.Unix.Catalog.GetString ("Enable Audio (Experimental)"); this.audiocheckbutton.DrawIndicator = true; this.audiocheckbutton.UseUnderline = true; this.hbox6.Add (this.audiocheckbutton); global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.hbox6[this.audiocheckbutton])); w12.Position = 1; this.vbox2.Add (this.hbox6); global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox6])); w13.Position = 3; w13.Expand = false; w13.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.filenamelabel = new global::Gtk.Label (); this.filenamelabel.Name = "filenamelabel"; this.filenamelabel.LabelProp = global::Mono.Unix.Catalog.GetString ("File name: "); this.hbox1.Add (this.filenamelabel); global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.filenamelabel])); w14.Position = 0; w14.Expand = false; w14.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.hbox3 = new global::Gtk.HBox (); this.hbox3.Name = "hbox3"; this.hbox3.Spacing = 6; // Container child hbox3.Gtk.Box+BoxChild this.fileentry = new global::Gtk.Entry (); this.fileentry.CanFocus = true; this.fileentry.Name = "fileentry"; this.fileentry.IsEditable = false; this.fileentry.InvisibleChar = '●'; this.hbox3.Add (this.fileentry); global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.fileentry])); w15.Position = 0; // Container child hbox3.Gtk.Box+BoxChild this.openbutton = new global::Gtk.Button (); this.openbutton.CanFocus = true; this.openbutton.Name = "openbutton"; this.openbutton.UseStock = true; this.openbutton.UseUnderline = true; this.openbutton.Label = "gtk-save-as"; this.hbox3.Add (this.openbutton); global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.openbutton])); w16.Position = 1; w16.Expand = false; w16.Fill = false; this.hbox1.Add (this.hbox3); global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3])); w17.Position = 1; this.vbox2.Add (this.hbox1); global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox1])); w18.Position = 4; w18.Expand = false; w18.Fill = false; w1.Add (this.vbox2); global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(w1[this.vbox2])); w19.Position = 0; w19.Expand = false; w19.Fill = false; // Internal child LongoMatch.Gui.Dialog.VideoEditionProperties.ActionArea global::Gtk.HButtonBox w20 = this.ActionArea; w20.Name = "dialog1_ActionArea"; w20.Spacing = 6; w20.BorderWidth = ((uint)(5)); w20.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w21 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w20[this.buttonCancel])); w21.Expand = false; w21.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w22 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w20[this.buttonOk])); w22.Position = 1; w22.Expand = false; w22.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 514; this.DefaultHeight = 223; this.Show (); this.openbutton.Clicked += new global::System.EventHandler (this.OnOpenbuttonClicked); this.buttonCancel.Clicked += new global::System.EventHandler (this.OnButtonCancelClicked); this.buttonOk.Clicked += new global::System.EventHandler (this.OnButtonOkClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TeamTemplateEditor.cs0000644000175000017500000000436011601631101024310 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class TeamTemplateEditor { private global::LongoMatch.Gui.Component.TeamTemplateWidget teamtemplatewidget1; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.TeamTemplateEditor this.Name = "LongoMatch.Gui.Dialog.TeamTemplateEditor"; this.Icon = global::Gdk.Pixbuf.LoadFromResource ("longomatch.png"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.TeamTemplateEditor.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.teamtemplatewidget1 = new global::LongoMatch.Gui.Component.TeamTemplateWidget (); this.teamtemplatewidget1.Events = ((global::Gdk.EventMask)(256)); this.teamtemplatewidget1.Name = "teamtemplatewidget1"; this.teamtemplatewidget1.Edited = false; w1.Add (this.teamtemplatewidget1); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.teamtemplatewidget1])); w2.Position = 0; // Internal child LongoMatch.Gui.Dialog.TeamTemplateEditor.ActionArea global::Gtk.HButtonBox w3 = this.ActionArea; w3.Name = "dialog1_ActionArea"; w3.Spacing = 6; w3.BorderWidth = ((uint)(5)); w3.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-apply"; this.AddActionWidget (this.buttonOk, -10); global::Gtk.ButtonBox.ButtonBoxChild w4 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonOk])); w4.Expand = false; w4.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 436; this.DefaultHeight = 313; this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs0000644000175000017500000000561211601631101024731 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class ProjectListWidget { private global::Gtk.ScrolledWindow scrolledwindow2; private global::Gtk.VBox vbox1; private global::Gtk.HBox hbox1; private global::Gtk.Label filterlabel; private global::Gtk.Entry filterEntry; private global::Gtk.TreeView treeview; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.ProjectListWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.ProjectListWidget"; // Container child LongoMatch.Gui.Component.ProjectListWidget.Gtk.Container+ContainerChild this.scrolledwindow2 = new global::Gtk.ScrolledWindow (); this.scrolledwindow2.CanFocus = true; this.scrolledwindow2.Name = "scrolledwindow2"; // Container child scrolledwindow2.Gtk.Container+ContainerChild global::Gtk.Viewport w1 = new global::Gtk.Viewport (); w1.ShadowType = ((global::Gtk.ShadowType)(0)); // Container child GtkViewport.Gtk.Container+ContainerChild this.vbox1 = new global::Gtk.VBox (); this.vbox1.Name = "vbox1"; this.vbox1.Spacing = 6; // Container child vbox1.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.filterlabel = new global::Gtk.Label (); this.filterlabel.Name = "filterlabel"; this.filterlabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Projects Search:"); this.hbox1.Add (this.filterlabel); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.filterlabel])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.filterEntry = new global::Gtk.Entry (); this.filterEntry.CanFocus = true; this.filterEntry.Name = "filterEntry"; this.filterEntry.IsEditable = true; this.filterEntry.InvisibleChar = '●'; this.hbox1.Add (this.filterEntry); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.filterEntry])); w3.Position = 1; this.vbox1.Add (this.hbox1); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1])); w4.Position = 0; w4.Expand = false; w4.Fill = false; // Container child vbox1.Gtk.Box+BoxChild this.treeview = new global::Gtk.TreeView (); this.treeview.CanFocus = true; this.treeview.Name = "treeview"; this.vbox1.Add (this.treeview); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.treeview])); w5.Position = 1; w1.Add (this.vbox1); this.scrolledwindow2.Add (w1); this.Add (this.scrolledwindow2); if ((this.Child != null)) { this.Child.ShowAll (); } this.Show (); this.filterEntry.Changed += new global::System.EventHandler (this.OnFilterentryChanged); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.TeamTemplateWidget.cs0000644000175000017500000000370411601631101025051 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class TeamTemplateWidget { private global::Gtk.HBox hbox1; private global::Gtk.ScrolledWindow scrolledwindow2; private global::LongoMatch.Gui.Component.PlayerPropertiesTreeView playerpropertiestreeview1; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.TeamTemplateWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.TeamTemplateWidget"; // Container child LongoMatch.Gui.Component.TeamTemplateWidget.Gtk.Container+ContainerChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.scrolledwindow2 = new global::Gtk.ScrolledWindow (); this.scrolledwindow2.CanFocus = true; this.scrolledwindow2.Name = "scrolledwindow2"; this.scrolledwindow2.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child scrolledwindow2.Gtk.Container+ContainerChild this.playerpropertiestreeview1 = new global::LongoMatch.Gui.Component.PlayerPropertiesTreeView (); this.playerpropertiestreeview1.CanFocus = true; this.playerpropertiestreeview1.Name = "playerpropertiestreeview1"; this.scrolledwindow2.Add (this.playerpropertiestreeview1); this.hbox1.Add (this.scrolledwindow2); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.scrolledwindow2])); w2.Position = 0; this.Add (this.hbox1); if ((this.Child != null)) { this.Child.ShowAll (); } this.Hide (); this.playerpropertiestreeview1.PlayerClicked += new global::LongoMatch.Gui.Component.PlayerPropertiesHandler (this.OnPlayerpropertiestreeview1PlayerClicked); this.playerpropertiestreeview1.PlayerSelected += new global::LongoMatch.Gui.Component.PlayerPropertiesHandler (this.OnPlayerpropertiestreeview1PlayerSelected); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs0000644000175000017500000000607511601631101024134 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class OpenProjectDialog { private global::LongoMatch.Gui.Component.ProjectListWidget projectlistwidget; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.OpenProjectDialog this.Name = "LongoMatch.Gui.Dialog.OpenProjectDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Open Project"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.OpenProjectDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.projectlistwidget = new global::LongoMatch.Gui.Component.ProjectListWidget (); this.projectlistwidget.Events = ((global::Gdk.EventMask)(256)); this.projectlistwidget.Name = "projectlistwidget"; w1.Add (this.projectlistwidget); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.projectlistwidget])); w2.Position = 0; // Internal child LongoMatch.Gui.Dialog.OpenProjectDialog.ActionArea global::Gtk.HButtonBox w3 = this.ActionArea; w3.Name = "dialog1_ActionArea"; w3.Spacing = 6; w3.BorderWidth = ((uint)(5)); w3.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w4 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonCancel])); w4.Expand = false; w4.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.Sensitive = false; this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-open"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w5 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonOk])); w5.Position = 1; w5.Expand = false; w5.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 615; this.DefaultHeight = 359; this.Show (); this.projectlistwidget.ProjectsSelected += new global::LongoMatch.Handlers.ProjectsSelectedHandler (this.OnProjectlistwidgetProjectsSelected); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlaysListTreeWidget.cs0000644000175000017500000000247011601631101025232 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class PlaysListTreeWidget { private global::Gtk.ScrolledWindow scrolledwindow1; private global::LongoMatch.Gui.Component.PlaysTreeView treeview; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.PlaysListTreeWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.PlaysListTreeWidget"; // Container child LongoMatch.Gui.Component.PlaysListTreeWidget.Gtk.Container+ContainerChild this.scrolledwindow1 = new global::Gtk.ScrolledWindow (); this.scrolledwindow1.CanFocus = true; this.scrolledwindow1.Name = "scrolledwindow1"; // Container child scrolledwindow1.Gtk.Container+ContainerChild global::Gtk.Viewport w1 = new global::Gtk.Viewport (); w1.ShadowType = ((global::Gtk.ShadowType)(0)); // Container child GtkViewport.Gtk.Container+ContainerChild this.treeview = new global::LongoMatch.Gui.Component.PlaysTreeView (); this.treeview.CanFocus = true; this.treeview.Name = "treeview"; w1.Add (this.treeview); this.scrolledwindow1.Add (w1); this.Add (this.scrolledwindow1); if ((this.Child != null)) { this.Child.ShowAll (); } this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs0000644000175000017500000001676111601631101022353 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class Migrator { private global::Gtk.HBox hbox1; private global::Gtk.Frame frame1; private global::Gtk.Alignment GtkAlignment2; private global::Gtk.ScrolledWindow scrolledwindow1; private global::Gtk.TextView dbtextview; private global::Gtk.Label GtkLabel2; private global::Gtk.Frame frame2; private global::Gtk.Alignment GtkAlignment3; private global::Gtk.ScrolledWindow scrolledwindow2; private global::Gtk.TextView pltextview; private global::Gtk.Label GtkLabel3; private global::Gtk.Frame frame3; private global::Gtk.Alignment GtkAlignment4; private global::Gtk.ScrolledWindow scrolledwindow3; private global::Gtk.TextView tptextview; private global::Gtk.Label GtkLabel4; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.Migrator this.Name = "LongoMatch.Gui.Dialog.Migrator"; this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Menu); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Internal child LongoMatch.Gui.Dialog.Migrator.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.frame1 = new global::Gtk.Frame (); this.frame1.Name = "frame1"; this.frame1.ShadowType = ((global::Gtk.ShadowType)(0)); // Container child frame1.Gtk.Container+ContainerChild this.GtkAlignment2 = new global::Gtk.Alignment (0f, 0f, 1f, 1f); this.GtkAlignment2.Name = "GtkAlignment2"; this.GtkAlignment2.LeftPadding = ((uint)(12)); // Container child GtkAlignment2.Gtk.Container+ContainerChild this.scrolledwindow1 = new global::Gtk.ScrolledWindow (); this.scrolledwindow1.CanFocus = true; this.scrolledwindow1.Name = "scrolledwindow1"; this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child scrolledwindow1.Gtk.Container+ContainerChild this.dbtextview = new global::Gtk.TextView (); this.dbtextview.CanFocus = true; this.dbtextview.Name = "dbtextview"; this.scrolledwindow1.Add (this.dbtextview); this.GtkAlignment2.Add (this.scrolledwindow1); this.frame1.Add (this.GtkAlignment2); this.GtkLabel2 = new global::Gtk.Label (); this.GtkLabel2.Name = "GtkLabel2"; this.GtkLabel2.LabelProp = global::Mono.Unix.Catalog.GetString ("Data Base Migration"); this.GtkLabel2.UseMarkup = true; this.frame1.LabelWidget = this.GtkLabel2; this.hbox1.Add (this.frame1); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.frame1])); w5.Position = 0; // Container child hbox1.Gtk.Box+BoxChild this.frame2 = new global::Gtk.Frame (); this.frame2.Name = "frame2"; this.frame2.ShadowType = ((global::Gtk.ShadowType)(0)); // Container child frame2.Gtk.Container+ContainerChild this.GtkAlignment3 = new global::Gtk.Alignment (0f, 0f, 1f, 1f); this.GtkAlignment3.Name = "GtkAlignment3"; this.GtkAlignment3.LeftPadding = ((uint)(12)); // Container child GtkAlignment3.Gtk.Container+ContainerChild this.scrolledwindow2 = new global::Gtk.ScrolledWindow (); this.scrolledwindow2.CanFocus = true; this.scrolledwindow2.Name = "scrolledwindow2"; this.scrolledwindow2.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child scrolledwindow2.Gtk.Container+ContainerChild this.pltextview = new global::Gtk.TextView (); this.pltextview.CanFocus = true; this.pltextview.Name = "pltextview"; this.scrolledwindow2.Add (this.pltextview); this.GtkAlignment3.Add (this.scrolledwindow2); this.frame2.Add (this.GtkAlignment3); this.GtkLabel3 = new global::Gtk.Label (); this.GtkLabel3.Name = "GtkLabel3"; this.GtkLabel3.LabelProp = global::Mono.Unix.Catalog.GetString ("Playlists Migration"); this.GtkLabel3.UseMarkup = true; this.frame2.LabelWidget = this.GtkLabel3; this.hbox1.Add (this.frame2); global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.frame2])); w9.Position = 1; // Container child hbox1.Gtk.Box+BoxChild this.frame3 = new global::Gtk.Frame (); this.frame3.Name = "frame3"; this.frame3.ShadowType = ((global::Gtk.ShadowType)(0)); // Container child frame3.Gtk.Container+ContainerChild this.GtkAlignment4 = new global::Gtk.Alignment (0f, 0f, 1f, 1f); this.GtkAlignment4.Name = "GtkAlignment4"; this.GtkAlignment4.LeftPadding = ((uint)(12)); // Container child GtkAlignment4.Gtk.Container+ContainerChild this.scrolledwindow3 = new global::Gtk.ScrolledWindow (); this.scrolledwindow3.CanFocus = true; this.scrolledwindow3.Name = "scrolledwindow3"; this.scrolledwindow3.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child scrolledwindow3.Gtk.Container+ContainerChild this.tptextview = new global::Gtk.TextView (); this.tptextview.CanFocus = true; this.tptextview.Name = "tptextview"; this.scrolledwindow3.Add (this.tptextview); this.GtkAlignment4.Add (this.scrolledwindow3); this.frame3.Add (this.GtkAlignment4); this.GtkLabel4 = new global::Gtk.Label (); this.GtkLabel4.Name = "GtkLabel4"; this.GtkLabel4.LabelProp = global::Mono.Unix.Catalog.GetString ("Templates Migration"); this.GtkLabel4.UseMarkup = true; this.frame3.LabelWidget = this.GtkLabel4; this.hbox1.Add (this.frame3); global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.frame3])); w13.Position = 2; w1.Add (this.hbox1); global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(w1[this.hbox1])); w14.Position = 0; // Internal child LongoMatch.Gui.Dialog.Migrator.ActionArea global::Gtk.HButtonBox w15 = this.ActionArea; w15.Name = "dialog1_ActionArea"; w15.Spacing = 6; w15.BorderWidth = ((uint)(5)); w15.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.Sensitive = false; this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w16 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w15[this.buttonCancel])); w16.Expand = false; w16.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w17 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w15[this.buttonOk])); w17.Position = 1; w17.Expand = false; w17.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 821; this.DefaultHeight = 300; this.buttonCancel.Hide (); this.buttonOk.Hide (); this.Show (); this.buttonCancel.Clicked += new global::System.EventHandler (this.OnButtonCancelClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.TagsTreeWidget.cs0000644000175000017500000001122111601631101024176 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class TagsTreeWidget { private global::Gtk.VBox vbox1; private global::Gtk.ScrolledWindow GtkScrolledWindow; private global::LongoMatch.Gui.Component.TagsTreeView treeview; private global::Gtk.VBox tagsvbox; private global::Gtk.HBox hbox1; private global::Gtk.ComboBox tagscombobox; private global::Gtk.Button AddFilterButton; private global::Gtk.HBox hbox2; private global::Gtk.ComboBox filtercombobox; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.TagsTreeWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.TagsTreeWidget"; // Container child LongoMatch.Gui.Component.TagsTreeWidget.Gtk.Container+ContainerChild this.vbox1 = new global::Gtk.VBox (); this.vbox1.Name = "vbox1"; this.vbox1.Spacing = 6; // Container child vbox1.Gtk.Box+BoxChild this.GtkScrolledWindow = new global::Gtk.ScrolledWindow (); this.GtkScrolledWindow.Name = "GtkScrolledWindow"; this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child GtkScrolledWindow.Gtk.Container+ContainerChild this.treeview = new global::LongoMatch.Gui.Component.TagsTreeView (); this.treeview.CanFocus = true; this.treeview.Name = "treeview"; this.GtkScrolledWindow.Add (this.treeview); this.vbox1.Add (this.GtkScrolledWindow); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.GtkScrolledWindow])); w2.Position = 0; // Container child vbox1.Gtk.Box+BoxChild this.tagsvbox = new global::Gtk.VBox (); this.tagsvbox.Name = "tagsvbox"; this.tagsvbox.Spacing = 6; this.vbox1.Add (this.tagsvbox); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.tagsvbox])); w3.Position = 1; w3.Expand = false; w3.Fill = false; // Container child vbox1.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.tagscombobox = global::Gtk.ComboBox.NewText (); this.tagscombobox.Name = "tagscombobox"; this.hbox1.Add (this.tagscombobox); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.tagscombobox])); w4.Position = 0; // Container child hbox1.Gtk.Box+BoxChild this.AddFilterButton = new global::Gtk.Button (); this.AddFilterButton.CanFocus = true; this.AddFilterButton.Name = "AddFilterButton"; this.AddFilterButton.UseUnderline = true; // Container child AddFilterButton.Gtk.Container+ContainerChild global::Gtk.Alignment w5 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w6 = new global::Gtk.HBox (); w6.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w7 = new global::Gtk.Image (); w7.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-add", global::Gtk.IconSize.Menu); w6.Add (w7); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w9 = new global::Gtk.Label (); w9.LabelProp = global::Mono.Unix.Catalog.GetString ("Add Filter"); w9.UseUnderline = true; w6.Add (w9); w5.Add (w6); this.AddFilterButton.Add (w5); this.hbox1.Add (this.AddFilterButton); global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.AddFilterButton])); w13.Position = 1; w13.Expand = false; w13.Fill = false; this.vbox1.Add (this.hbox1); global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1])); w14.Position = 2; w14.Expand = false; w14.Fill = false; // Container child vbox1.Gtk.Box+BoxChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.filtercombobox = global::Gtk.ComboBox.NewText (); this.filtercombobox.Name = "filtercombobox"; this.hbox2.Add (this.filtercombobox); global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.filtercombobox])); w15.Position = 0; this.vbox1.Add (this.hbox2); global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox2])); w16.Position = 3; w16.Expand = false; w16.Fill = false; this.Add (this.vbox1); if ((this.Child != null)) { this.Child.ShowAll (); } this.Hide (); this.AddFilterButton.Clicked += new global::System.EventHandler (this.OnAddFilter); this.filtercombobox.Changed += new global::System.EventHandler (this.OnFiltercomboboxChanged); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Win32CalendarDialog.cs0000644000175000017500000000462611601631101024240 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class Win32CalendarDialog { private global::Gtk.Calendar calendar1; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.Win32CalendarDialog this.Name = "LongoMatch.Gui.Dialog.Win32CalendarDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Calendar"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Menu); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.Win32CalendarDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.calendar1 = new global::Gtk.Calendar (); this.calendar1.CanFocus = true; this.calendar1.Name = "calendar1"; this.calendar1.DisplayOptions = ((global::Gtk.CalendarDisplayOptions)(35)); w1.Add (this.calendar1); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.calendar1])); w2.Position = 0; // Internal child LongoMatch.Gui.Dialog.Win32CalendarDialog.ActionArea global::Gtk.HButtonBox w3 = this.ActionArea; w3.Name = "dialog1_ActionArea"; w3.Spacing = 6; w3.BorderWidth = ((uint)(5)); w3.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w4 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonOk])); w4.Expand = false; w4.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 219; this.DefaultHeight = 225; this.Show (); this.calendar1.DaySelectedDoubleClick += new global::System.EventHandler (this.OnCalendar1DaySelectedDoubleClick); this.calendar1.DaySelected += new global::System.EventHandler (this.OnCalendar1DaySelected); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs0000644000175000017500000002137311601631101023646 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class ProjectsManager { private global::Gtk.VBox dialog1_VBox1; private global::Gtk.HBox hbox2; private global::Gtk.HPaned hpaned1; private global::LongoMatch.Gui.Component.ProjectListWidget projectlistwidget1; private global::Gtk.VBox vbox2; private global::Gtk.Frame frame1; private global::Gtk.Alignment GtkAlignment2; private global::LongoMatch.Gui.Component.ProjectDetailsWidget projectdetails; private global::Gtk.Label GtkLabel6; private global::Gtk.Button saveButton; private global::Gtk.Button deleteButton; private global::Gtk.Button exportbutton; private global::Gtk.HSeparator hseparator3; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.ProjectsManager this.Name = "LongoMatch.Gui.Dialog.ProjectsManager"; this.Title = global::Mono.Unix.Catalog.GetString ("Projects Manager"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.ProjectsManager.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.dialog1_VBox1 = new global::Gtk.VBox (); this.dialog1_VBox1.Name = "dialog1_VBox1"; this.dialog1_VBox1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox1.Gtk.Box+BoxChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.hpaned1 = new global::Gtk.HPaned (); this.hpaned1.CanFocus = true; this.hpaned1.Name = "hpaned1"; this.hpaned1.Position = 349; // Container child hpaned1.Gtk.Paned+PanedChild this.projectlistwidget1 = new global::LongoMatch.Gui.Component.ProjectListWidget (); this.projectlistwidget1.Events = ((global::Gdk.EventMask)(256)); this.projectlistwidget1.Name = "projectlistwidget1"; this.hpaned1.Add (this.projectlistwidget1); global::Gtk.Paned.PanedChild w2 = ((global::Gtk.Paned.PanedChild)(this.hpaned1[this.projectlistwidget1])); w2.Resize = false; // Container child hpaned1.Gtk.Paned+PanedChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.frame1 = new global::Gtk.Frame (); this.frame1.Name = "frame1"; this.frame1.ShadowType = ((global::Gtk.ShadowType)(0)); // Container child frame1.Gtk.Container+ContainerChild this.GtkAlignment2 = new global::Gtk.Alignment (0f, 0f, 1f, 1f); this.GtkAlignment2.Name = "GtkAlignment2"; this.GtkAlignment2.LeftPadding = ((uint)(12)); // Container child GtkAlignment2.Gtk.Container+ContainerChild this.projectdetails = new global::LongoMatch.Gui.Component.ProjectDetailsWidget (); this.projectdetails.Sensitive = false; this.projectdetails.Events = ((global::Gdk.EventMask)(256)); this.projectdetails.Name = "projectdetails"; this.projectdetails.Edited = false; this.projectdetails.LocalGoals = 0; this.projectdetails.VisitorGoals = 0; this.projectdetails.Date = new global::System.DateTime (0); this.GtkAlignment2.Add (this.projectdetails); this.frame1.Add (this.GtkAlignment2); this.GtkLabel6 = new global::Gtk.Label (); this.GtkLabel6.Name = "GtkLabel6"; this.GtkLabel6.LabelProp = global::Mono.Unix.Catalog.GetString ("Project Details"); this.GtkLabel6.UseMarkup = true; this.frame1.LabelWidget = this.GtkLabel6; this.vbox2.Add (this.frame1); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.frame1])); w5.Position = 0; // Container child vbox2.Gtk.Box+BoxChild this.saveButton = new global::Gtk.Button (); this.saveButton.TooltipMarkup = "Save the selected project"; this.saveButton.Sensitive = false; this.saveButton.CanFocus = true; this.saveButton.Name = "saveButton"; this.saveButton.UseStock = true; this.saveButton.UseUnderline = true; this.saveButton.Label = "gtk-save"; this.vbox2.Add (this.saveButton); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.saveButton])); w6.Position = 1; w6.Expand = false; w6.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.deleteButton = new global::Gtk.Button (); this.deleteButton.TooltipMarkup = "Delete the selected project"; this.deleteButton.Sensitive = false; this.deleteButton.CanFocus = true; this.deleteButton.Name = "deleteButton"; this.deleteButton.UseStock = true; this.deleteButton.UseUnderline = true; this.deleteButton.Label = "gtk-delete"; this.vbox2.Add (this.deleteButton); global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.deleteButton])); w7.Position = 2; w7.Expand = false; w7.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.exportbutton = new global::Gtk.Button (); this.exportbutton.TooltipMarkup = "Export the selected project to a file"; this.exportbutton.Sensitive = false; this.exportbutton.CanFocus = true; this.exportbutton.Name = "exportbutton"; this.exportbutton.UseUnderline = true; // Container child exportbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w8 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w9 = new global::Gtk.HBox (); w9.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w10 = new global::Gtk.Image (); w10.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "stock_export", global::Gtk.IconSize.Menu); w9.Add (w10); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w12 = new global::Gtk.Label (); w12.LabelProp = global::Mono.Unix.Catalog.GetString ("_Export"); w12.UseUnderline = true; w9.Add (w12); w8.Add (w9); this.exportbutton.Add (w8); this.vbox2.Add (this.exportbutton); global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.exportbutton])); w16.Position = 3; w16.Expand = false; w16.Fill = false; this.hpaned1.Add (this.vbox2); this.hbox2.Add (this.hpaned1); global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.hpaned1])); w18.Position = 0; this.dialog1_VBox1.Add (this.hbox2); global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.dialog1_VBox1[this.hbox2])); w19.Position = 0; // Container child dialog1_VBox1.Gtk.Box+BoxChild this.hseparator3 = new global::Gtk.HSeparator (); this.hseparator3.Name = "hseparator3"; this.dialog1_VBox1.Add (this.hseparator3); global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.dialog1_VBox1[this.hseparator3])); w20.PackType = ((global::Gtk.PackType)(1)); w20.Position = 1; w20.Expand = false; w20.Fill = false; w1.Add (this.dialog1_VBox1); global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(w1[this.dialog1_VBox1])); w21.Position = 0; // Internal child LongoMatch.Gui.Dialog.ProjectsManager.ActionArea global::Gtk.HButtonBox w22 = this.ActionArea; w22.Name = "dialog1_ActionArea"; w22.Spacing = 6; w22.BorderWidth = ((uint)(5)); w22.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-quit"; this.AddActionWidget (this.buttonOk, 0); global::Gtk.ButtonBox.ButtonBoxChild w23 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w22[this.buttonOk])); w23.Expand = false; w23.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 804; this.DefaultHeight = 597; this.Show (); this.projectlistwidget1.ProjectsSelected += new global::LongoMatch.Handlers.ProjectsSelectedHandler (this.OnProjectlistwidget1ProjectsSelected); this.projectdetails.EditedEvent += new global::System.EventHandler (this.OnProjectdetailsEditedEvent); this.saveButton.Pressed += new global::System.EventHandler (this.OnSaveButtonPressed); this.deleteButton.Pressed += new global::System.EventHandler (this.OnDeleteButtonPressed); this.exportbutton.Clicked += new global::System.EventHandler (this.OnExportbuttonClicked); this.buttonOk.Clicked += new global::System.EventHandler (this.OnButtonOkClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs0000644000175000017500000000715611601631101026173 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class FramesCaptureProgressDialog { private global::Gtk.VBox vbox2; private global::Gtk.ProgressBar progressbar; private global::Gtk.Image image; private global::Gtk.Button okbutton; private global::Gtk.Button cancelbutton; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.FramesCaptureProgressDialog this.Name = "LongoMatch.Gui.Dialog.FramesCaptureProgressDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Capture Progress"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.BorderWidth = ((uint)(3)); this.Resizable = false; this.AllowGrow = false; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.progressbar = new global::Gtk.ProgressBar (); this.progressbar.Name = "progressbar"; this.vbox2.Add (this.progressbar); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.progressbar])); w2.Position = 0; w2.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.image = new global::Gtk.Image (); this.image.Name = "image"; this.vbox2.Add (this.image); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.image])); w3.PackType = ((global::Gtk.PackType)(1)); w3.Position = 1; w1.Add (this.vbox2); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(w1[this.vbox2])); w4.Position = 0; // Internal child LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.ActionArea global::Gtk.HButtonBox w5 = this.ActionArea; w5.Name = "dialog1_ActionArea"; w5.Spacing = 6; w5.BorderWidth = ((uint)(5)); w5.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.okbutton = new global::Gtk.Button (); this.okbutton.CanFocus = true; this.okbutton.Name = "okbutton"; this.okbutton.UseStock = true; this.okbutton.UseUnderline = true; this.okbutton.Label = "gtk-ok"; this.AddActionWidget (this.okbutton, -5); global::Gtk.ButtonBox.ButtonBoxChild w6 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w5[this.okbutton])); w6.Expand = false; w6.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.cancelbutton = new global::Gtk.Button (); this.cancelbutton.CanDefault = true; this.cancelbutton.CanFocus = true; this.cancelbutton.Name = "cancelbutton"; this.cancelbutton.UseStock = true; this.cancelbutton.UseUnderline = true; this.cancelbutton.Label = "gtk-cancel"; this.AddActionWidget (this.cancelbutton, -6); global::Gtk.ButtonBox.ButtonBoxChild w7 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w5[this.cancelbutton])); w7.Position = 1; w7.Expand = false; w7.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 400; this.DefaultHeight = 148; this.okbutton.Hide (); this.Show (); this.cancelbutton.Clicked += new global::System.EventHandler (this.OnButtonCancelClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs0000644000175000017500000000770111601631101023123 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class UpdateDialog { private global::Gtk.VBox vbox2; private global::Gtk.Label label3; private global::Gtk.Label label5; private global::Gtk.Label label6; private global::Gtk.Label label7; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.UpdateDialog this.Name = "LongoMatch.Gui.Dialog.UpdateDialog"; this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Internal child LongoMatch.Gui.Dialog.UpdateDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.label3 = new global::Gtk.Label (); this.label3.Name = "label3"; this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("\nA new version of LongoMatch has been released at www.ylatuya.es!\n"); this.label3.Justify = ((global::Gtk.Justification)(2)); this.vbox2.Add (this.label3); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.label3])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.label5 = new global::Gtk.Label (); this.label5.Name = "label5"; this.label5.LabelProp = global::Mono.Unix.Catalog.GetString ("The new version is "); this.label5.Justify = ((global::Gtk.Justification)(2)); this.vbox2.Add (this.label5); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.label5])); w3.Position = 1; w3.Expand = false; w3.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.label6 = new global::Gtk.Label (); this.label6.Name = "label6"; this.label6.LabelProp = global::Mono.Unix.Catalog.GetString ("\nYou can download it using this direct link:"); this.label6.Justify = ((global::Gtk.Justification)(2)); this.vbox2.Add (this.label6); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.label6])); w4.Position = 2; w4.Expand = false; w4.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.label7 = new global::Gtk.Label (); this.label7.Name = "label7"; this.label7.LabelProp = global::Mono.Unix.Catalog.GetString ("label7"); this.label7.UseMarkup = true; this.label7.Justify = ((global::Gtk.Justification)(2)); this.label7.Selectable = true; this.vbox2.Add (this.label7); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.label7])); w5.Position = 3; w5.Expand = false; w5.Fill = false; w1.Add (this.vbox2); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(w1[this.vbox2])); w6.Position = 0; w6.Expand = false; w6.Fill = false; // Internal child LongoMatch.Gui.Dialog.UpdateDialog.ActionArea global::Gtk.HButtonBox w7 = this.ActionArea; w7.Name = "dialog1_ActionArea"; w7.Spacing = 6; w7.BorderWidth = ((uint)(5)); w7.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w8 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w7[this.buttonOk])); w8.Expand = false; w8.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 508; this.DefaultHeight = 220; this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/objects.xml0000644000175000017500000002456311601631101016437 00000000000000 longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs0000644000175000017500000000416211601631101023110 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class TaggerDialog { private global::LongoMatch.Gui.Component.TaggerWidget taggerwidget1; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.TaggerDialog this.Name = "LongoMatch.Gui.Dialog.TaggerDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Tag play"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Menu); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Internal child LongoMatch.Gui.Dialog.TaggerDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.taggerwidget1 = new global::LongoMatch.Gui.Component.TaggerWidget (); this.taggerwidget1.Events = ((global::Gdk.EventMask)(256)); this.taggerwidget1.Name = "taggerwidget1"; w1.Add (this.taggerwidget1); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.taggerwidget1])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Internal child LongoMatch.Gui.Dialog.TaggerDialog.ActionArea global::Gtk.HButtonBox w3 = this.ActionArea; w3.Name = "dialog1_ActionArea"; w3.Spacing = 6; w3.BorderWidth = ((uint)(5)); w3.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w4 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonOk])); w4.Expand = false; w4.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 426; this.DefaultHeight = 267; this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.ProjectDetailsWidget.cs0000644000175000017500000007032211601631101025403 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class ProjectDetailsWidget { private global::Gtk.VBox vbox2; private global::Gtk.Table table1; private global::Gtk.Entry competitionentry; private global::Gtk.Label Competitionlabel; private global::Gtk.HBox filehbox; private global::Gtk.Entry fileEntry; private global::Gtk.Button openbutton; private global::Gtk.Label filelabel; private global::Gtk.HBox hbox1; private global::Gtk.ComboBox localcombobox; private global::Gtk.Button localtemplatebutton; private global::Gtk.HBox hbox2; private global::Gtk.ComboBox visitorcombobox; private global::Gtk.Button visitorbutton; private global::Gtk.HBox hbox3; private global::Gtk.ComboBox tagscombobox; private global::Gtk.Button editbutton; private global::Gtk.HBox hbox4; private global::Gtk.SpinButton localSpinButton; private global::Gtk.Label label1; private global::Gtk.SpinButton visitorSpinButton; private global::Gtk.HBox hbox5; private global::Gtk.Entry dateEntry; private global::Gtk.Button calendarbutton; private global::Gtk.Label label10; private global::Gtk.Label label11; private global::Gtk.Label label5; private global::Gtk.Label label8; private global::Gtk.Label label9; private global::Gtk.Entry localTeamEntry; private global::Gtk.Label localteamtemplatelabel; private global::Gtk.Entry seasonentry; private global::Gtk.Label seasonlabel; private global::Gtk.Entry visitorTeamEntry; private global::Gtk.Label visitorteamtemplatelabel; private global::Gtk.Expander expander1; private global::Gtk.Table table2; private global::Gtk.Label audiobitratelabel; private global::Gtk.SpinButton audiobitratespinbutton; private global::Gtk.Label device; private global::Gtk.ComboBox devicecombobox; private global::Gtk.ComboBox sizecombobox; private global::Gtk.Label sizelabel; private global::Gtk.Label videobitratelabel1; private global::Gtk.SpinButton videobitratespinbutton; private global::Gtk.ComboBox videoformatcombobox; private global::Gtk.Label videoformatlabel; private global::Gtk.Label GtkLabel5; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.ProjectDetailsWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.ProjectDetailsWidget"; // Container child LongoMatch.Gui.Component.ProjectDetailsWidget.Gtk.Container+ContainerChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.table1 = new global::Gtk.Table (((uint)(10)), ((uint)(2)), false); this.table1.Name = "table1"; this.table1.RowSpacing = ((uint)(6)); this.table1.ColumnSpacing = ((uint)(6)); // Container child table1.Gtk.Table+TableChild this.competitionentry = new global::Gtk.Entry (); this.competitionentry.CanFocus = true; this.competitionentry.Name = "competitionentry"; this.competitionentry.IsEditable = true; this.competitionentry.InvisibleChar = '●'; this.table1.Add (this.competitionentry); global::Gtk.Table.TableChild w1 = ((global::Gtk.Table.TableChild)(this.table1[this.competitionentry])); w1.TopAttach = ((uint)(4)); w1.BottomAttach = ((uint)(5)); w1.LeftAttach = ((uint)(1)); w1.RightAttach = ((uint)(2)); w1.XOptions = ((global::Gtk.AttachOptions)(4)); w1.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.Competitionlabel = new global::Gtk.Label (); this.Competitionlabel.Name = "Competitionlabel"; this.Competitionlabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Competition:"); this.table1.Add (this.Competitionlabel); global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table1[this.Competitionlabel])); w2.TopAttach = ((uint)(4)); w2.BottomAttach = ((uint)(5)); w2.XOptions = ((global::Gtk.AttachOptions)(4)); w2.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.filehbox = new global::Gtk.HBox (); this.filehbox.Name = "filehbox"; this.filehbox.Spacing = 6; // Container child filehbox.Gtk.Box+BoxChild this.fileEntry = new global::Gtk.Entry (); this.fileEntry.CanFocus = true; this.fileEntry.Name = "fileEntry"; this.fileEntry.IsEditable = false; this.fileEntry.InvisibleChar = '●'; this.filehbox.Add (this.fileEntry); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.filehbox[this.fileEntry])); w3.Position = 0; // Container child filehbox.Gtk.Box+BoxChild this.openbutton = new global::Gtk.Button (); this.openbutton.CanFocus = true; this.openbutton.Name = "openbutton"; this.openbutton.UseStock = true; this.openbutton.UseUnderline = true; this.openbutton.Label = "gtk-open"; this.filehbox.Add (this.openbutton); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.filehbox[this.openbutton])); w4.Position = 1; w4.Expand = false; this.table1.Add (this.filehbox); global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1[this.filehbox])); w5.TopAttach = ((uint)(9)); w5.BottomAttach = ((uint)(10)); w5.LeftAttach = ((uint)(1)); w5.RightAttach = ((uint)(2)); w5.XOptions = ((global::Gtk.AttachOptions)(4)); w5.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.filelabel = new global::Gtk.Label (); this.filelabel.Name = "filelabel"; this.filelabel.LabelProp = global::Mono.Unix.Catalog.GetString ("File:"); this.table1.Add (this.filelabel); global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table1[this.filelabel])); w6.TopAttach = ((uint)(9)); w6.BottomAttach = ((uint)(10)); w6.XOptions = ((global::Gtk.AttachOptions)(4)); w6.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.localcombobox = global::Gtk.ComboBox.NewText (); this.localcombobox.Name = "localcombobox"; this.hbox1.Add (this.localcombobox); global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.localcombobox])); w7.Position = 0; // Container child hbox1.Gtk.Box+BoxChild this.localtemplatebutton = new global::Gtk.Button (); this.localtemplatebutton.CanFocus = true; this.localtemplatebutton.Name = "localtemplatebutton"; this.localtemplatebutton.UseStock = true; this.localtemplatebutton.UseUnderline = true; this.localtemplatebutton.Label = "gtk-edit"; this.hbox1.Add (this.localtemplatebutton); global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.localtemplatebutton])); w8.PackType = ((global::Gtk.PackType)(1)); w8.Position = 1; w8.Expand = false; w8.Fill = false; this.table1.Add (this.hbox1); global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table1[this.hbox1])); w9.TopAttach = ((uint)(6)); w9.BottomAttach = ((uint)(7)); w9.LeftAttach = ((uint)(1)); w9.RightAttach = ((uint)(2)); w9.XOptions = ((global::Gtk.AttachOptions)(4)); w9.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.visitorcombobox = global::Gtk.ComboBox.NewText (); this.visitorcombobox.Name = "visitorcombobox"; this.hbox2.Add (this.visitorcombobox); global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.visitorcombobox])); w10.Position = 0; // Container child hbox2.Gtk.Box+BoxChild this.visitorbutton = new global::Gtk.Button (); this.visitorbutton.CanFocus = true; this.visitorbutton.Name = "visitorbutton"; this.visitorbutton.UseStock = true; this.visitorbutton.UseUnderline = true; this.visitorbutton.Label = "gtk-edit"; this.hbox2.Add (this.visitorbutton); global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.visitorbutton])); w11.PackType = ((global::Gtk.PackType)(1)); w11.Position = 1; w11.Expand = false; w11.Fill = false; this.table1.Add (this.hbox2); global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table1[this.hbox2])); w12.TopAttach = ((uint)(7)); w12.BottomAttach = ((uint)(8)); w12.LeftAttach = ((uint)(1)); w12.RightAttach = ((uint)(2)); w12.XOptions = ((global::Gtk.AttachOptions)(4)); w12.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.hbox3 = new global::Gtk.HBox (); this.hbox3.Name = "hbox3"; this.hbox3.Spacing = 6; // Container child hbox3.Gtk.Box+BoxChild this.tagscombobox = global::Gtk.ComboBox.NewText (); this.tagscombobox.Name = "tagscombobox"; this.hbox3.Add (this.tagscombobox); global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.tagscombobox])); w13.Position = 0; // Container child hbox3.Gtk.Box+BoxChild this.editbutton = new global::Gtk.Button (); this.editbutton.CanFocus = true; this.editbutton.Name = "editbutton"; this.editbutton.UseStock = true; this.editbutton.UseUnderline = true; this.editbutton.Label = "gtk-edit"; this.hbox3.Add (this.editbutton); global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.editbutton])); w14.PackType = ((global::Gtk.PackType)(1)); w14.Position = 1; w14.Expand = false; w14.Fill = false; this.table1.Add (this.hbox3); global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.table1[this.hbox3])); w15.TopAttach = ((uint)(5)); w15.BottomAttach = ((uint)(6)); w15.LeftAttach = ((uint)(1)); w15.RightAttach = ((uint)(2)); w15.XOptions = ((global::Gtk.AttachOptions)(4)); w15.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.hbox4 = new global::Gtk.HBox (); this.hbox4.Name = "hbox4"; this.hbox4.Spacing = 6; // Container child hbox4.Gtk.Box+BoxChild this.localSpinButton = new global::Gtk.SpinButton (0, 1000, 1); this.localSpinButton.CanFocus = true; this.localSpinButton.Name = "localSpinButton"; this.localSpinButton.Adjustment.PageIncrement = 10; this.localSpinButton.ClimbRate = 1; this.localSpinButton.Numeric = true; this.hbox4.Add (this.localSpinButton); global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.localSpinButton])); w16.Position = 0; w16.Fill = false; // Container child hbox4.Gtk.Box+BoxChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("-"); this.hbox4.Add (this.label1); global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.label1])); w17.Position = 1; w17.Expand = false; w17.Fill = false; // Container child hbox4.Gtk.Box+BoxChild this.visitorSpinButton = new global::Gtk.SpinButton (0, 1000, 1); this.visitorSpinButton.CanFocus = true; this.visitorSpinButton.Name = "visitorSpinButton"; this.visitorSpinButton.Adjustment.PageIncrement = 10; this.visitorSpinButton.ClimbRate = 1; this.visitorSpinButton.Numeric = true; this.hbox4.Add (this.visitorSpinButton); global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.visitorSpinButton])); w18.Position = 2; w18.Fill = false; this.table1.Add (this.hbox4); global::Gtk.Table.TableChild w19 = ((global::Gtk.Table.TableChild)(this.table1[this.hbox4])); w19.TopAttach = ((uint)(2)); w19.BottomAttach = ((uint)(3)); w19.LeftAttach = ((uint)(1)); w19.RightAttach = ((uint)(2)); w19.XOptions = ((global::Gtk.AttachOptions)(4)); w19.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.hbox5 = new global::Gtk.HBox (); this.hbox5.Name = "hbox5"; // Container child hbox5.Gtk.Box+BoxChild this.dateEntry = new global::Gtk.Entry (); this.dateEntry.CanFocus = true; this.dateEntry.Name = "dateEntry"; this.dateEntry.IsEditable = false; this.dateEntry.InvisibleChar = '●'; this.hbox5.Add (this.dateEntry); global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.dateEntry])); w20.Position = 0; // Container child hbox5.Gtk.Box+BoxChild this.calendarbutton = new global::Gtk.Button (); this.calendarbutton.CanFocus = true; this.calendarbutton.Name = "calendarbutton"; this.calendarbutton.UseUnderline = true; // Container child calendarbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w21 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w22 = new global::Gtk.HBox (); w22.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w23 = new global::Gtk.Image (); w23.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "stock_calendar", global::Gtk.IconSize.Button); w22.Add (w23); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w25 = new global::Gtk.Label (); w25.LabelProp = global::Mono.Unix.Catalog.GetString ("_Calendar"); w25.UseUnderline = true; w22.Add (w25); w21.Add (w22); this.calendarbutton.Add (w21); this.hbox5.Add (this.calendarbutton); global::Gtk.Box.BoxChild w29 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.calendarbutton])); w29.Position = 1; w29.Expand = false; w29.Fill = false; this.table1.Add (this.hbox5); global::Gtk.Table.TableChild w30 = ((global::Gtk.Table.TableChild)(this.table1[this.hbox5])); w30.TopAttach = ((uint)(8)); w30.BottomAttach = ((uint)(9)); w30.LeftAttach = ((uint)(1)); w30.RightAttach = ((uint)(2)); w30.YOptions = ((global::Gtk.AttachOptions)(1)); // Container child table1.Gtk.Table+TableChild this.label10 = new global::Gtk.Label (); this.label10.Name = "label10"; this.label10.LabelProp = global::Mono.Unix.Catalog.GetString ("Visitor Team:"); this.table1.Add (this.label10); global::Gtk.Table.TableChild w31 = ((global::Gtk.Table.TableChild)(this.table1[this.label10])); w31.TopAttach = ((uint)(1)); w31.BottomAttach = ((uint)(2)); w31.XOptions = ((global::Gtk.AttachOptions)(4)); w31.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label11 = new global::Gtk.Label (); this.label11.Name = "label11"; this.label11.LabelProp = global::Mono.Unix.Catalog.GetString ("Score:"); this.table1.Add (this.label11); global::Gtk.Table.TableChild w32 = ((global::Gtk.Table.TableChild)(this.table1[this.label11])); w32.TopAttach = ((uint)(2)); w32.BottomAttach = ((uint)(3)); w32.XOptions = ((global::Gtk.AttachOptions)(4)); w32.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label5 = new global::Gtk.Label (); this.label5.Name = "label5"; this.label5.LabelProp = global::Mono.Unix.Catalog.GetString ("Date:"); this.table1.Add (this.label5); global::Gtk.Table.TableChild w33 = ((global::Gtk.Table.TableChild)(this.table1[this.label5])); w33.TopAttach = ((uint)(8)); w33.BottomAttach = ((uint)(9)); w33.XOptions = ((global::Gtk.AttachOptions)(4)); w33.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label8 = new global::Gtk.Label (); this.label8.Name = "label8"; this.label8.LabelProp = global::Mono.Unix.Catalog.GetString ("Local Team:"); this.table1.Add (this.label8); global::Gtk.Table.TableChild w34 = ((global::Gtk.Table.TableChild)(this.table1[this.label8])); w34.XOptions = ((global::Gtk.AttachOptions)(4)); w34.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label9 = new global::Gtk.Label (); this.label9.Name = "label9"; this.label9.LabelProp = global::Mono.Unix.Catalog.GetString ("Categories Template:"); this.table1.Add (this.label9); global::Gtk.Table.TableChild w35 = ((global::Gtk.Table.TableChild)(this.table1[this.label9])); w35.TopAttach = ((uint)(5)); w35.BottomAttach = ((uint)(6)); w35.XOptions = ((global::Gtk.AttachOptions)(4)); w35.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.localTeamEntry = new global::Gtk.Entry (); this.localTeamEntry.CanFocus = true; this.localTeamEntry.Name = "localTeamEntry"; this.localTeamEntry.IsEditable = true; this.localTeamEntry.InvisibleChar = '●'; this.table1.Add (this.localTeamEntry); global::Gtk.Table.TableChild w36 = ((global::Gtk.Table.TableChild)(this.table1[this.localTeamEntry])); w36.LeftAttach = ((uint)(1)); w36.RightAttach = ((uint)(2)); // Container child table1.Gtk.Table+TableChild this.localteamtemplatelabel = new global::Gtk.Label (); this.localteamtemplatelabel.Name = "localteamtemplatelabel"; this.localteamtemplatelabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Visitor Team Template"); this.table1.Add (this.localteamtemplatelabel); global::Gtk.Table.TableChild w37 = ((global::Gtk.Table.TableChild)(this.table1[this.localteamtemplatelabel])); w37.TopAttach = ((uint)(7)); w37.BottomAttach = ((uint)(8)); w37.XOptions = ((global::Gtk.AttachOptions)(4)); w37.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.seasonentry = new global::Gtk.Entry (); this.seasonentry.CanFocus = true; this.seasonentry.Name = "seasonentry"; this.seasonentry.IsEditable = true; this.seasonentry.InvisibleChar = '●'; this.table1.Add (this.seasonentry); global::Gtk.Table.TableChild w38 = ((global::Gtk.Table.TableChild)(this.table1[this.seasonentry])); w38.TopAttach = ((uint)(3)); w38.BottomAttach = ((uint)(4)); w38.LeftAttach = ((uint)(1)); w38.RightAttach = ((uint)(2)); w38.XOptions = ((global::Gtk.AttachOptions)(4)); w38.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.seasonlabel = new global::Gtk.Label (); this.seasonlabel.Name = "seasonlabel"; this.seasonlabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Season:"); this.table1.Add (this.seasonlabel); global::Gtk.Table.TableChild w39 = ((global::Gtk.Table.TableChild)(this.table1[this.seasonlabel])); w39.TopAttach = ((uint)(3)); w39.BottomAttach = ((uint)(4)); w39.XOptions = ((global::Gtk.AttachOptions)(4)); w39.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.visitorTeamEntry = new global::Gtk.Entry (); this.visitorTeamEntry.CanFocus = true; this.visitorTeamEntry.Name = "visitorTeamEntry"; this.visitorTeamEntry.IsEditable = true; this.visitorTeamEntry.InvisibleChar = '●'; this.table1.Add (this.visitorTeamEntry); global::Gtk.Table.TableChild w40 = ((global::Gtk.Table.TableChild)(this.table1[this.visitorTeamEntry])); w40.TopAttach = ((uint)(1)); w40.BottomAttach = ((uint)(2)); w40.LeftAttach = ((uint)(1)); w40.RightAttach = ((uint)(2)); w40.XOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.visitorteamtemplatelabel = new global::Gtk.Label (); this.visitorteamtemplatelabel.Name = "visitorteamtemplatelabel"; this.visitorteamtemplatelabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Local Team Template"); this.table1.Add (this.visitorteamtemplatelabel); global::Gtk.Table.TableChild w41 = ((global::Gtk.Table.TableChild)(this.table1[this.visitorteamtemplatelabel])); w41.TopAttach = ((uint)(6)); w41.BottomAttach = ((uint)(7)); w41.XOptions = ((global::Gtk.AttachOptions)(4)); w41.YOptions = ((global::Gtk.AttachOptions)(4)); this.vbox2.Add (this.table1); global::Gtk.Box.BoxChild w42 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.table1])); w42.Position = 0; // Container child vbox2.Gtk.Box+BoxChild this.expander1 = new global::Gtk.Expander (null); this.expander1.CanFocus = true; this.expander1.Name = "expander1"; // Container child expander1.Gtk.Container+ContainerChild this.table2 = new global::Gtk.Table (((uint)(5)), ((uint)(2)), false); this.table2.Name = "table2"; this.table2.RowSpacing = ((uint)(6)); this.table2.ColumnSpacing = ((uint)(6)); // Container child table2.Gtk.Table+TableChild this.audiobitratelabel = new global::Gtk.Label (); this.audiobitratelabel.Name = "audiobitratelabel"; this.audiobitratelabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Audio Bitrate (kbps):"); this.table2.Add (this.audiobitratelabel); global::Gtk.Table.TableChild w43 = ((global::Gtk.Table.TableChild)(this.table2[this.audiobitratelabel])); w43.TopAttach = ((uint)(4)); w43.BottomAttach = ((uint)(5)); w43.XOptions = ((global::Gtk.AttachOptions)(4)); w43.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table2.Gtk.Table+TableChild this.audiobitratespinbutton = new global::Gtk.SpinButton (0, 360, 1); this.audiobitratespinbutton.CanFocus = true; this.audiobitratespinbutton.Name = "audiobitratespinbutton"; this.audiobitratespinbutton.Adjustment.PageIncrement = 10; this.audiobitratespinbutton.ClimbRate = 1; this.audiobitratespinbutton.Numeric = true; this.audiobitratespinbutton.Value = 64; this.table2.Add (this.audiobitratespinbutton); global::Gtk.Table.TableChild w44 = ((global::Gtk.Table.TableChild)(this.table2[this.audiobitratespinbutton])); w44.TopAttach = ((uint)(4)); w44.BottomAttach = ((uint)(5)); w44.LeftAttach = ((uint)(1)); w44.RightAttach = ((uint)(2)); w44.XOptions = ((global::Gtk.AttachOptions)(1)); w44.YOptions = ((global::Gtk.AttachOptions)(1)); // Container child table2.Gtk.Table+TableChild this.device = new global::Gtk.Label (); this.device.Name = "device"; this.device.LabelProp = global::Mono.Unix.Catalog.GetString ("Device:"); this.table2.Add (this.device); global::Gtk.Table.TableChild w45 = ((global::Gtk.Table.TableChild)(this.table2[this.device])); w45.XOptions = ((global::Gtk.AttachOptions)(4)); w45.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table2.Gtk.Table+TableChild this.devicecombobox = global::Gtk.ComboBox.NewText (); this.devicecombobox.Name = "devicecombobox"; this.table2.Add (this.devicecombobox); global::Gtk.Table.TableChild w46 = ((global::Gtk.Table.TableChild)(this.table2[this.devicecombobox])); w46.LeftAttach = ((uint)(1)); w46.RightAttach = ((uint)(2)); w46.XOptions = ((global::Gtk.AttachOptions)(4)); w46.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table2.Gtk.Table+TableChild this.sizecombobox = global::Gtk.ComboBox.NewText (); this.sizecombobox.Name = "sizecombobox"; this.table2.Add (this.sizecombobox); global::Gtk.Table.TableChild w47 = ((global::Gtk.Table.TableChild)(this.table2[this.sizecombobox])); w47.TopAttach = ((uint)(2)); w47.BottomAttach = ((uint)(3)); w47.LeftAttach = ((uint)(1)); w47.RightAttach = ((uint)(2)); w47.XOptions = ((global::Gtk.AttachOptions)(4)); w47.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table2.Gtk.Table+TableChild this.sizelabel = new global::Gtk.Label (); this.sizelabel.Name = "sizelabel"; this.sizelabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Video Size:"); this.table2.Add (this.sizelabel); global::Gtk.Table.TableChild w48 = ((global::Gtk.Table.TableChild)(this.table2[this.sizelabel])); w48.TopAttach = ((uint)(2)); w48.BottomAttach = ((uint)(3)); w48.XOptions = ((global::Gtk.AttachOptions)(4)); w48.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table2.Gtk.Table+TableChild this.videobitratelabel1 = new global::Gtk.Label (); this.videobitratelabel1.Name = "videobitratelabel1"; this.videobitratelabel1.LabelProp = global::Mono.Unix.Catalog.GetString ("Video Bitrate (kbps):"); this.table2.Add (this.videobitratelabel1); global::Gtk.Table.TableChild w49 = ((global::Gtk.Table.TableChild)(this.table2[this.videobitratelabel1])); w49.TopAttach = ((uint)(3)); w49.BottomAttach = ((uint)(4)); w49.XOptions = ((global::Gtk.AttachOptions)(4)); w49.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table2.Gtk.Table+TableChild this.videobitratespinbutton = new global::Gtk.SpinButton (1000, 8000, 1); this.videobitratespinbutton.CanFocus = true; this.videobitratespinbutton.Name = "videobitratespinbutton"; this.videobitratespinbutton.Adjustment.PageIncrement = 10; this.videobitratespinbutton.ClimbRate = 1; this.videobitratespinbutton.Numeric = true; this.videobitratespinbutton.Value = 4000; this.table2.Add (this.videobitratespinbutton); global::Gtk.Table.TableChild w50 = ((global::Gtk.Table.TableChild)(this.table2[this.videobitratespinbutton])); w50.TopAttach = ((uint)(3)); w50.BottomAttach = ((uint)(4)); w50.LeftAttach = ((uint)(1)); w50.RightAttach = ((uint)(2)); w50.XOptions = ((global::Gtk.AttachOptions)(1)); w50.YOptions = ((global::Gtk.AttachOptions)(1)); // Container child table2.Gtk.Table+TableChild this.videoformatcombobox = global::Gtk.ComboBox.NewText (); this.videoformatcombobox.Name = "videoformatcombobox"; this.table2.Add (this.videoformatcombobox); global::Gtk.Table.TableChild w51 = ((global::Gtk.Table.TableChild)(this.table2[this.videoformatcombobox])); w51.TopAttach = ((uint)(1)); w51.BottomAttach = ((uint)(2)); w51.LeftAttach = ((uint)(1)); w51.RightAttach = ((uint)(2)); w51.XOptions = ((global::Gtk.AttachOptions)(4)); w51.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table2.Gtk.Table+TableChild this.videoformatlabel = new global::Gtk.Label (); this.videoformatlabel.Name = "videoformatlabel"; this.videoformatlabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Video Format:"); this.table2.Add (this.videoformatlabel); global::Gtk.Table.TableChild w52 = ((global::Gtk.Table.TableChild)(this.table2[this.videoformatlabel])); w52.TopAttach = ((uint)(1)); w52.BottomAttach = ((uint)(2)); w52.XOptions = ((global::Gtk.AttachOptions)(4)); w52.YOptions = ((global::Gtk.AttachOptions)(4)); this.expander1.Add (this.table2); this.GtkLabel5 = new global::Gtk.Label (); this.GtkLabel5.Name = "GtkLabel5"; this.GtkLabel5.LabelProp = global::Mono.Unix.Catalog.GetString ("Video encoding properties"); this.GtkLabel5.UseUnderline = true; this.expander1.LabelWidget = this.GtkLabel5; this.vbox2.Add (this.expander1); global::Gtk.Box.BoxChild w54 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.expander1])); w54.Position = 1; w54.Expand = false; w54.Fill = false; this.Add (this.vbox2); if ((this.Child != null)) { this.Child.ShowAll (); } this.editbutton.Hide (); this.device.Hide (); this.videobitratelabel1.Hide (); this.Show (); this.visitorTeamEntry.Changed += new global::System.EventHandler (this.OnEdited); this.seasonentry.Changed += new global::System.EventHandler (this.OnEdited); this.localTeamEntry.Changed += new global::System.EventHandler (this.OnEdited); this.dateEntry.Changed += new global::System.EventHandler (this.OnEdited); this.calendarbutton.Clicked += new global::System.EventHandler (this.OnCalendarbuttonClicked); this.localSpinButton.ValueChanged += new global::System.EventHandler (this.OnEdited); this.visitorSpinButton.ValueChanged += new global::System.EventHandler (this.OnEdited); this.tagscombobox.Changed += new global::System.EventHandler (this.OnCombobox1Changed); this.editbutton.Clicked += new global::System.EventHandler (this.OnEditbuttonClicked); this.visitorcombobox.Changed += new global::System.EventHandler (this.OnVisitorcomboboxChanged); this.visitorbutton.Clicked += new global::System.EventHandler (this.OnVisitorbuttonClicked); this.localcombobox.Changed += new global::System.EventHandler (this.OnLocalcomboboxChanged); this.localtemplatebutton.Clicked += new global::System.EventHandler (this.OnLocaltemplatebuttonClicked); this.fileEntry.Changed += new global::System.EventHandler (this.OnEdited); this.openbutton.Clicked += new global::System.EventHandler (this.OnOpenbuttonClicked); this.competitionentry.Changed += new global::System.EventHandler (this.OnEdited); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs0000644000175000017500000001545611601631101023010 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class EntryDialog { private global::Gtk.Table table1; private global::Gtk.CheckButton checkbutton; private global::Gtk.Entry entry1; private global::Gtk.Label existentemplatelabel; private global::Gtk.Label label2; private global::Gtk.Label playerslabel; private global::Gtk.SpinButton playersspinbutton; private global::Gtk.ComboBox combobox; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.EntryDialog this.Name = "LongoMatch.Gui.Dialog.EntryDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Select template name"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.EntryDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.table1 = new global::Gtk.Table (((uint)(3)), ((uint)(2)), false); this.table1.Name = "table1"; this.table1.RowSpacing = ((uint)(6)); this.table1.ColumnSpacing = ((uint)(6)); // Container child table1.Gtk.Table+TableChild this.checkbutton = new global::Gtk.CheckButton (); this.checkbutton.CanFocus = true; this.checkbutton.Name = "checkbutton"; this.checkbutton.Label = ""; this.checkbutton.DrawIndicator = true; this.checkbutton.UseUnderline = true; this.table1.Add (this.checkbutton); global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table1[this.checkbutton])); w2.TopAttach = ((uint)(2)); w2.BottomAttach = ((uint)(3)); w2.LeftAttach = ((uint)(1)); w2.RightAttach = ((uint)(2)); w2.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.entry1 = new global::Gtk.Entry (); this.entry1.CanFocus = true; this.entry1.Name = "entry1"; this.entry1.IsEditable = true; this.entry1.InvisibleChar = '●'; this.table1.Add (this.entry1); global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1[this.entry1])); w3.LeftAttach = ((uint)(1)); w3.RightAttach = ((uint)(2)); w3.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.existentemplatelabel = new global::Gtk.Label (); this.existentemplatelabel.Name = "existentemplatelabel"; this.existentemplatelabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Copy existent template:"); this.table1.Add (this.existentemplatelabel); global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table1[this.existentemplatelabel])); w4.TopAttach = ((uint)(2)); w4.BottomAttach = ((uint)(3)); w4.XOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label2 = new global::Gtk.Label (); this.label2.Name = "label2"; this.label2.Xalign = 0f; this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("Name:"); this.table1.Add (this.label2); global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1[this.label2])); w5.XOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.playerslabel = new global::Gtk.Label (); this.playerslabel.Name = "playerslabel"; this.playerslabel.Xalign = 0f; this.playerslabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Players:"); this.table1.Add (this.playerslabel); global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table1[this.playerslabel])); w6.TopAttach = ((uint)(1)); w6.BottomAttach = ((uint)(2)); w6.XOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.playersspinbutton = new global::Gtk.SpinButton (1, 100, 1); this.playersspinbutton.CanFocus = true; this.playersspinbutton.Name = "playersspinbutton"; this.playersspinbutton.Adjustment.PageIncrement = 10; this.playersspinbutton.ClimbRate = 1; this.playersspinbutton.Numeric = true; this.playersspinbutton.Value = 15; this.table1.Add (this.playersspinbutton); global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table1[this.playersspinbutton])); w7.TopAttach = ((uint)(1)); w7.BottomAttach = ((uint)(2)); w7.LeftAttach = ((uint)(1)); w7.RightAttach = ((uint)(2)); w7.XOptions = ((global::Gtk.AttachOptions)(4)); w7.YOptions = ((global::Gtk.AttachOptions)(0)); w1.Add (this.table1); global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(w1[this.table1])); w8.Position = 0; // Container child dialog1_VBox.Gtk.Box+BoxChild this.combobox = global::Gtk.ComboBox.NewText (); this.combobox.Sensitive = false; this.combobox.Name = "combobox"; w1.Add (this.combobox); global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(w1[this.combobox])); w9.Position = 1; w9.Expand = false; w9.Fill = false; // Internal child LongoMatch.Gui.Dialog.EntryDialog.ActionArea global::Gtk.HButtonBox w10 = this.ActionArea; w10.Name = "dialog1_ActionArea"; w10.Spacing = 6; w10.BorderWidth = ((uint)(5)); w10.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w11 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w10[this.buttonCancel])); w11.Expand = false; w11.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w12 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w10[this.buttonOk])); w12.Position = 1; w12.Expand = false; w12.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 339; this.DefaultHeight = 178; this.Show (); this.checkbutton.Toggled += new global::System.EventHandler (this.OnCheckbuttonToggled); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs0000644000175000017500000002151111601631101024005 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class TemplatesManager { private global::Gtk.HPaned hpaned1; private global::Gtk.VBox vbox2; private global::Gtk.TreeView treeview; private global::Gtk.HBox hbox2; private global::Gtk.Button newbutton; private global::Gtk.Button deletebutton; private global::Gtk.Button savebutton; private global::Gtk.HBox hbox1; private global::LongoMatch.Gui.Component.ProjectTemplateWidget sectionspropertieswidget1; private global::LongoMatch.Gui.Component.TeamTemplateWidget teamtemplatewidget1; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.TemplatesManager this.Name = "LongoMatch.Gui.Dialog.TemplatesManager"; this.Title = global::Mono.Unix.Catalog.GetString ("Templates Manager"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.TemplatesManager.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.hpaned1 = new global::Gtk.HPaned (); this.hpaned1.CanFocus = true; this.hpaned1.Name = "hpaned1"; this.hpaned1.Position = 144; // Container child hpaned1.Gtk.Paned+PanedChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.treeview = new global::Gtk.TreeView (); this.treeview.CanFocus = true; this.treeview.Name = "treeview"; this.vbox2.Add (this.treeview); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.treeview])); w2.Position = 0; // Container child vbox2.Gtk.Box+BoxChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Homogeneous = true; // Container child hbox2.Gtk.Box+BoxChild this.newbutton = new global::Gtk.Button (); this.newbutton.TooltipMarkup = "Create a new template"; this.newbutton.CanFocus = true; this.newbutton.Name = "newbutton"; this.newbutton.UseUnderline = true; // Container child newbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w3 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w4 = new global::Gtk.HBox (); w4.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w5 = new global::Gtk.Image (); w5.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-new", global::Gtk.IconSize.Button); w4.Add (w5); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w7 = new global::Gtk.Label (); w4.Add (w7); w3.Add (w4); this.newbutton.Add (w3); this.hbox2.Add (this.newbutton); global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.newbutton])); w11.Position = 0; w11.Expand = false; w11.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.deletebutton = new global::Gtk.Button (); this.deletebutton.TooltipMarkup = "Delete this template"; this.deletebutton.Sensitive = false; this.deletebutton.CanFocus = true; this.deletebutton.Name = "deletebutton"; this.deletebutton.UseUnderline = true; // Container child deletebutton.Gtk.Container+ContainerChild global::Gtk.Alignment w12 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w13 = new global::Gtk.HBox (); w13.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w14 = new global::Gtk.Image (); w14.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-delete", global::Gtk.IconSize.Button); w13.Add (w14); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w16 = new global::Gtk.Label (); w13.Add (w16); w12.Add (w13); this.deletebutton.Add (w12); this.hbox2.Add (this.deletebutton); global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.deletebutton])); w20.Position = 1; w20.Expand = false; w20.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.savebutton = new global::Gtk.Button (); this.savebutton.TooltipMarkup = "Save this template"; this.savebutton.Sensitive = false; this.savebutton.CanFocus = true; this.savebutton.Name = "savebutton"; this.savebutton.UseUnderline = true; // Container child savebutton.Gtk.Container+ContainerChild global::Gtk.Alignment w21 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w22 = new global::Gtk.HBox (); w22.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w23 = new global::Gtk.Image (); w23.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-save", global::Gtk.IconSize.Button); w22.Add (w23); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w25 = new global::Gtk.Label (); w22.Add (w25); w21.Add (w22); this.savebutton.Add (w21); this.hbox2.Add (this.savebutton); global::Gtk.Box.BoxChild w29 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.savebutton])); w29.Position = 2; w29.Expand = false; w29.Fill = false; this.vbox2.Add (this.hbox2); global::Gtk.Box.BoxChild w30 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox2])); w30.Position = 1; w30.Expand = false; w30.Fill = false; this.hpaned1.Add (this.vbox2); global::Gtk.Paned.PanedChild w31 = ((global::Gtk.Paned.PanedChild)(this.hpaned1[this.vbox2])); w31.Resize = false; // Container child hpaned1.Gtk.Paned+PanedChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.sectionspropertieswidget1 = new global::LongoMatch.Gui.Component.ProjectTemplateWidget (); this.sectionspropertieswidget1.Sensitive = false; this.sectionspropertieswidget1.Events = ((global::Gdk.EventMask)(256)); this.sectionspropertieswidget1.Name = "sectionspropertieswidget1"; this.sectionspropertieswidget1.Edited = false; this.hbox1.Add (this.sectionspropertieswidget1); global::Gtk.Box.BoxChild w32 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.sectionspropertieswidget1])); w32.Position = 0; // Container child hbox1.Gtk.Box+BoxChild this.teamtemplatewidget1 = new global::LongoMatch.Gui.Component.TeamTemplateWidget (); this.teamtemplatewidget1.Sensitive = false; this.teamtemplatewidget1.Events = ((global::Gdk.EventMask)(256)); this.teamtemplatewidget1.Name = "teamtemplatewidget1"; this.teamtemplatewidget1.Edited = false; this.hbox1.Add (this.teamtemplatewidget1); global::Gtk.Box.BoxChild w33 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.teamtemplatewidget1])); w33.Position = 1; this.hpaned1.Add (this.hbox1); w1.Add (this.hpaned1); global::Gtk.Box.BoxChild w35 = ((global::Gtk.Box.BoxChild)(w1[this.hpaned1])); w35.Position = 0; // Internal child LongoMatch.Gui.Dialog.TemplatesManager.ActionArea global::Gtk.HButtonBox w36 = this.ActionArea; w36.Name = "dialog1_ActionArea"; w36.Spacing = 6; w36.BorderWidth = ((uint)(5)); w36.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-quit"; this.AddActionWidget (this.buttonOk, 0); global::Gtk.ButtonBox.ButtonBoxChild w37 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w36[this.buttonOk])); w37.Expand = false; w37.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 483; this.DefaultHeight = 336; this.sectionspropertieswidget1.Hide (); this.teamtemplatewidget1.Hide (); this.Show (); this.treeview.RowActivated += new global::Gtk.RowActivatedHandler (this.OnTreeviewRowActivated); this.treeview.CursorChanged += new global::System.EventHandler (this.OnTreeviewCursorChanged); this.newbutton.Clicked += new global::System.EventHandler (this.OnNewbuttonClicked); this.deletebutton.Clicked += new global::System.EventHandler (this.OnDeletebuttonClicked); this.savebutton.Clicked += new global::System.EventHandler (this.OnSavebuttonClicked); this.buttonOk.Clicked += new global::System.EventHandler (this.OnButtonOkClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs0000644000175000017500000001523511601631101023013 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class DrawingTool { private global::Gtk.HBox hbox1; private global::Gtk.VBox vbox2; private global::LongoMatch.Gui.Component.DrawingToolBox drawingtoolbox1; private global::Gtk.Button savetoprojectbutton; private global::Gtk.Button savebutton; private global::LongoMatch.Gui.Component.DrawingWidget drawingwidget1; private global::Gtk.Button button271; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.DrawingTool this.Name = "LongoMatch.Gui.Dialog.DrawingTool"; this.Title = global::Mono.Unix.Catalog.GetString ("Drawing Tool"); this.Icon = global::Gdk.Pixbuf.LoadFromResource ("longomatch.png"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.DrawingTool.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.drawingtoolbox1 = new global::LongoMatch.Gui.Component.DrawingToolBox (); this.drawingtoolbox1.Events = ((global::Gdk.EventMask)(256)); this.drawingtoolbox1.Name = "drawingtoolbox1"; this.vbox2.Add (this.drawingtoolbox1); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.drawingtoolbox1])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.savetoprojectbutton = new global::Gtk.Button (); this.savetoprojectbutton.CanFocus = true; this.savetoprojectbutton.Name = "savetoprojectbutton"; this.savetoprojectbutton.UseUnderline = true; // Container child savetoprojectbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w3 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w4 = new global::Gtk.HBox (); w4.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w5 = new global::Gtk.Image (); w5.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-save", global::Gtk.IconSize.Menu); w4.Add (w5); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w7 = new global::Gtk.Label (); w7.LabelProp = global::Mono.Unix.Catalog.GetString ("Save to Project"); w7.UseUnderline = true; w4.Add (w7); w3.Add (w4); this.savetoprojectbutton.Add (w3); this.vbox2.Add (this.savetoprojectbutton); global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.savetoprojectbutton])); w11.PackType = ((global::Gtk.PackType)(1)); w11.Position = 1; w11.Expand = false; w11.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.savebutton = new global::Gtk.Button (); this.savebutton.CanFocus = true; this.savebutton.Name = "savebutton"; this.savebutton.UseUnderline = true; // Container child savebutton.Gtk.Container+ContainerChild global::Gtk.Alignment w12 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w13 = new global::Gtk.HBox (); w13.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w14 = new global::Gtk.Image (); w14.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-save", global::Gtk.IconSize.Menu); w13.Add (w14); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w16 = new global::Gtk.Label (); w16.LabelProp = global::Mono.Unix.Catalog.GetString ("Save to File"); w16.UseUnderline = true; w13.Add (w16); w12.Add (w13); this.savebutton.Add (w12); this.vbox2.Add (this.savebutton); global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.savebutton])); w20.PackType = ((global::Gtk.PackType)(1)); w20.Position = 2; w20.Expand = false; w20.Fill = false; this.hbox1.Add (this.vbox2); global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox2])); w21.Position = 0; w21.Expand = false; w21.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.drawingwidget1 = new global::LongoMatch.Gui.Component.DrawingWidget (); this.drawingwidget1.Events = ((global::Gdk.EventMask)(256)); this.drawingwidget1.Name = "drawingwidget1"; this.hbox1.Add (this.drawingwidget1); global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.drawingwidget1])); w22.Position = 1; w1.Add (this.hbox1); global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(w1[this.hbox1])); w23.Position = 0; // Internal child LongoMatch.Gui.Dialog.DrawingTool.ActionArea global::Gtk.HButtonBox w24 = this.ActionArea; w24.Name = "dialog1_ActionArea"; w24.Spacing = 6; w24.BorderWidth = ((uint)(5)); w24.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.button271 = new global::Gtk.Button (); this.button271.CanFocus = true; this.button271.Name = "button271"; this.button271.UseUnderline = true; this.button271.Label = ""; this.AddActionWidget (this.button271, 0); global::Gtk.ButtonBox.ButtonBoxChild w25 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w24[this.button271])); w25.Expand = false; w25.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 600; this.DefaultHeight = 579; this.savetoprojectbutton.Hide (); this.button271.Hide (); this.Show (); this.drawingtoolbox1.LineWidthChanged += new global::LongoMatch.Handlers.LineWidthChangedHandler (this.OnDrawingtoolbox1LineWidthChanged); this.drawingtoolbox1.ColorChanged += new global::LongoMatch.Handlers.ColorChangedHandler (this.OnDrawingtoolbox1ColorChanged); this.drawingtoolbox1.VisibilityChanged += new global::LongoMatch.Handlers.VisibilityChangedHandler (this.OnDrawingtoolbox1VisibilityChanged); this.drawingtoolbox1.ClearDrawing += new global::LongoMatch.Handlers.ClearDrawingHandler (this.OnDrawingtoolbox1ClearDrawing); this.savebutton.Clicked += new global::System.EventHandler (this.OnSavebuttonClicked); this.savetoprojectbutton.Clicked += new global::System.EventHandler (this.OnSavetoprojectbuttonClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.cs0000644000175000017500000000463611601631101026156 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class ProjectTemplateEditorDialog { private global::LongoMatch.Gui.Component.ProjectTemplateWidget projecttemplatewidget; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog this.Name = "LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Categories Template"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.Gravity = ((global::Gdk.Gravity)(5)); this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.projecttemplatewidget = new global::LongoMatch.Gui.Component.ProjectTemplateWidget (); this.projecttemplatewidget.Events = ((global::Gdk.EventMask)(256)); this.projecttemplatewidget.Name = "projecttemplatewidget"; this.projecttemplatewidget.Edited = false; w1.Add (this.projecttemplatewidget); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.projecttemplatewidget])); w2.Position = 0; // Internal child LongoMatch.Gui.Dialog.ProjectTemplateEditorDialog.ActionArea global::Gtk.HButtonBox w3 = this.ActionArea; w3.Name = "dialog1_ActionArea"; w3.Spacing = 6; w3.BorderWidth = ((uint)(5)); w3.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-apply"; this.AddActionWidget (this.buttonOk, -10); global::Gtk.ButtonBox.ButtonBoxChild w4 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonOk])); w4.Expand = false; w4.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 516; this.DefaultHeight = 243; this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayerProperties.cs0000644000175000017500000003440511601631101024636 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class PlayerProperties { private global::Gtk.Table table1; private global::Gtk.HBox hbox1; private global::Gtk.Image image; private global::Gtk.Button openbutton; private global::Gtk.HBox hbox2; private global::Gtk.Label bdaylabel; private global::Gtk.Button datebutton; private global::Gtk.SpinButton heightspinbutton; private global::Gtk.Label label1; private global::Gtk.Label label2; private global::Gtk.Label label3; private global::Gtk.Label label4; private global::Gtk.Label label5; private global::Gtk.Label label6; private global::Gtk.Label label7; private global::Gtk.Label label8; private global::Gtk.Label label9; private global::Gtk.Entry nameentry; private global::Gtk.Entry nationalityentry; private global::Gtk.SpinButton numberspinbutton; private global::Gtk.ComboBox playscombobox; private global::Gtk.Entry positionentry; private global::Gtk.SpinButton weightspinbutton; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.PlayerProperties global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.PlayerProperties"; // Container child LongoMatch.Gui.Component.PlayerProperties.Gtk.Container+ContainerChild this.table1 = new global::Gtk.Table (((uint)(9)), ((uint)(2)), false); this.table1.Name = "table1"; this.table1.RowSpacing = ((uint)(6)); this.table1.ColumnSpacing = ((uint)(6)); // Container child table1.Gtk.Table+TableChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.image = new global::Gtk.Image (); this.image.Name = "image"; this.hbox1.Add (this.image); global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.image])); w1.Position = 0; // Container child hbox1.Gtk.Box+BoxChild this.openbutton = new global::Gtk.Button (); this.openbutton.CanFocus = true; this.openbutton.Name = "openbutton"; this.openbutton.UseStock = true; this.openbutton.UseUnderline = true; this.openbutton.Label = "gtk-open"; this.hbox1.Add (this.openbutton); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.openbutton])); w2.Position = 1; w2.Expand = false; w2.Fill = false; this.table1.Add (this.hbox1); global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1[this.hbox1])); w3.TopAttach = ((uint)(8)); w3.BottomAttach = ((uint)(9)); w3.LeftAttach = ((uint)(1)); w3.RightAttach = ((uint)(2)); w3.XOptions = ((global::Gtk.AttachOptions)(4)); w3.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.hbox2 = new global::Gtk.HBox (); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.bdaylabel = new global::Gtk.Label (); this.bdaylabel.Name = "bdaylabel"; this.hbox2.Add (this.bdaylabel); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.bdaylabel])); w4.Position = 0; // Container child hbox2.Gtk.Box+BoxChild this.datebutton = new global::Gtk.Button (); this.datebutton.CanFocus = true; this.datebutton.Name = "datebutton"; this.datebutton.UseUnderline = true; this.datebutton.Label = global::Mono.Unix.Catalog.GetString ("_Calendar"); this.hbox2.Add (this.datebutton); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.datebutton])); w5.Position = 1; w5.Expand = false; w5.Fill = false; this.table1.Add (this.hbox2); global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table1[this.hbox2])); w6.TopAttach = ((uint)(7)); w6.BottomAttach = ((uint)(8)); w6.LeftAttach = ((uint)(1)); w6.RightAttach = ((uint)(2)); w6.XOptions = ((global::Gtk.AttachOptions)(4)); w6.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.heightspinbutton = new global::Gtk.SpinButton (0, 10, 1); this.heightspinbutton.CanFocus = true; this.heightspinbutton.Name = "heightspinbutton"; this.heightspinbutton.Adjustment.PageIncrement = 1; this.heightspinbutton.ClimbRate = 1; this.heightspinbutton.Digits = ((uint)(2)); this.heightspinbutton.Numeric = true; this.heightspinbutton.Value = 10; this.table1.Add (this.heightspinbutton); global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table1[this.heightspinbutton])); w7.TopAttach = ((uint)(4)); w7.BottomAttach = ((uint)(5)); w7.LeftAttach = ((uint)(1)); w7.RightAttach = ((uint)(2)); w7.XOptions = ((global::Gtk.AttachOptions)(4)); w7.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Name:"); this.table1.Add (this.label1); global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table1[this.label1])); w8.XOptions = ((global::Gtk.AttachOptions)(4)); w8.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label2 = new global::Gtk.Label (); this.label2.Name = "label2"; this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("Position:"); this.table1.Add (this.label2); global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table1[this.label2])); w9.TopAttach = ((uint)(2)); w9.BottomAttach = ((uint)(3)); w9.XOptions = ((global::Gtk.AttachOptions)(4)); w9.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label3 = new global::Gtk.Label (); this.label3.Name = "label3"; this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("Number:"); this.table1.Add (this.label3); global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table1[this.label3])); w10.TopAttach = ((uint)(3)); w10.BottomAttach = ((uint)(4)); w10.XOptions = ((global::Gtk.AttachOptions)(4)); w10.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label4 = new global::Gtk.Label (); this.label4.Name = "label4"; this.label4.LabelProp = global::Mono.Unix.Catalog.GetString ("Photo:"); this.table1.Add (this.label4); global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table1[this.label4])); w11.TopAttach = ((uint)(8)); w11.BottomAttach = ((uint)(9)); w11.XOptions = ((global::Gtk.AttachOptions)(4)); w11.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label5 = new global::Gtk.Label (); this.label5.Name = "label5"; this.label5.LabelProp = global::Mono.Unix.Catalog.GetString ("Height"); this.table1.Add (this.label5); global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table1[this.label5])); w12.TopAttach = ((uint)(4)); w12.BottomAttach = ((uint)(5)); w12.XOptions = ((global::Gtk.AttachOptions)(4)); w12.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label6 = new global::Gtk.Label (); this.label6.Name = "label6"; this.label6.LabelProp = global::Mono.Unix.Catalog.GetString ("Weight"); this.table1.Add (this.label6); global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.table1[this.label6])); w13.TopAttach = ((uint)(5)); w13.BottomAttach = ((uint)(6)); w13.XOptions = ((global::Gtk.AttachOptions)(4)); w13.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label7 = new global::Gtk.Label (); this.label7.Name = "label7"; this.label7.LabelProp = global::Mono.Unix.Catalog.GetString ("Birth day"); this.table1.Add (this.label7); global::Gtk.Table.TableChild w14 = ((global::Gtk.Table.TableChild)(this.table1[this.label7])); w14.TopAttach = ((uint)(7)); w14.BottomAttach = ((uint)(8)); w14.XOptions = ((global::Gtk.AttachOptions)(4)); w14.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label8 = new global::Gtk.Label (); this.label8.Name = "label8"; this.label8.LabelProp = global::Mono.Unix.Catalog.GetString ("Nationality"); this.table1.Add (this.label8); global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.table1[this.label8])); w15.TopAttach = ((uint)(6)); w15.BottomAttach = ((uint)(7)); w15.XOptions = ((global::Gtk.AttachOptions)(4)); w15.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label9 = new global::Gtk.Label (); this.label9.Name = "label9"; this.label9.LabelProp = global::Mono.Unix.Catalog.GetString ("Plays this match:"); this.table1.Add (this.label9); global::Gtk.Table.TableChild w16 = ((global::Gtk.Table.TableChild)(this.table1[this.label9])); w16.TopAttach = ((uint)(1)); w16.BottomAttach = ((uint)(2)); w16.XOptions = ((global::Gtk.AttachOptions)(4)); w16.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.nameentry = new global::Gtk.Entry (); this.nameentry.CanFocus = true; this.nameentry.Name = "nameentry"; this.nameentry.IsEditable = true; this.nameentry.InvisibleChar = '●'; this.table1.Add (this.nameentry); global::Gtk.Table.TableChild w17 = ((global::Gtk.Table.TableChild)(this.table1[this.nameentry])); w17.LeftAttach = ((uint)(1)); w17.RightAttach = ((uint)(2)); w17.XOptions = ((global::Gtk.AttachOptions)(4)); w17.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.nationalityentry = new global::Gtk.Entry (); this.nationalityentry.CanFocus = true; this.nationalityentry.Name = "nationalityentry"; this.nationalityentry.IsEditable = true; this.nationalityentry.InvisibleChar = '●'; this.table1.Add (this.nationalityentry); global::Gtk.Table.TableChild w18 = ((global::Gtk.Table.TableChild)(this.table1[this.nationalityentry])); w18.TopAttach = ((uint)(6)); w18.BottomAttach = ((uint)(7)); w18.LeftAttach = ((uint)(1)); w18.RightAttach = ((uint)(2)); w18.XOptions = ((global::Gtk.AttachOptions)(4)); w18.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.numberspinbutton = new global::Gtk.SpinButton (0, 100, 1); this.numberspinbutton.CanFocus = true; this.numberspinbutton.Name = "numberspinbutton"; this.numberspinbutton.Adjustment.PageIncrement = 10; this.numberspinbutton.ClimbRate = 1; this.numberspinbutton.Numeric = true; this.table1.Add (this.numberspinbutton); global::Gtk.Table.TableChild w19 = ((global::Gtk.Table.TableChild)(this.table1[this.numberspinbutton])); w19.TopAttach = ((uint)(3)); w19.BottomAttach = ((uint)(4)); w19.LeftAttach = ((uint)(1)); w19.RightAttach = ((uint)(2)); w19.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.playscombobox = global::Gtk.ComboBox.NewText (); this.playscombobox.AppendText (global::Mono.Unix.Catalog.GetString ("Yes")); this.playscombobox.AppendText (global::Mono.Unix.Catalog.GetString ("No")); this.playscombobox.Name = "playscombobox"; this.playscombobox.Active = 0; this.table1.Add (this.playscombobox); global::Gtk.Table.TableChild w20 = ((global::Gtk.Table.TableChild)(this.table1[this.playscombobox])); w20.TopAttach = ((uint)(1)); w20.BottomAttach = ((uint)(2)); w20.LeftAttach = ((uint)(1)); w20.RightAttach = ((uint)(2)); w20.XOptions = ((global::Gtk.AttachOptions)(4)); w20.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.positionentry = new global::Gtk.Entry (); this.positionentry.CanFocus = true; this.positionentry.Name = "positionentry"; this.positionentry.IsEditable = true; this.positionentry.InvisibleChar = '●'; this.table1.Add (this.positionentry); global::Gtk.Table.TableChild w21 = ((global::Gtk.Table.TableChild)(this.table1[this.positionentry])); w21.TopAttach = ((uint)(2)); w21.BottomAttach = ((uint)(3)); w21.LeftAttach = ((uint)(1)); w21.RightAttach = ((uint)(2)); w21.XOptions = ((global::Gtk.AttachOptions)(4)); w21.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.weightspinbutton = new global::Gtk.SpinButton (0, 400, 1); this.weightspinbutton.CanFocus = true; this.weightspinbutton.Name = "weightspinbutton"; this.weightspinbutton.Adjustment.PageIncrement = 10; this.weightspinbutton.ClimbRate = 1; this.weightspinbutton.Numeric = true; this.weightspinbutton.Value = 80; this.table1.Add (this.weightspinbutton); global::Gtk.Table.TableChild w22 = ((global::Gtk.Table.TableChild)(this.table1[this.weightspinbutton])); w22.TopAttach = ((uint)(5)); w22.BottomAttach = ((uint)(6)); w22.LeftAttach = ((uint)(1)); w22.RightAttach = ((uint)(2)); w22.XOptions = ((global::Gtk.AttachOptions)(4)); w22.YOptions = ((global::Gtk.AttachOptions)(4)); this.Add (this.table1); if ((this.Child != null)) { this.Child.ShowAll (); } this.Hide (); this.weightspinbutton.ValueChanged += new global::System.EventHandler (this.OnWeightspinbuttonValueChanged); this.positionentry.Changed += new global::System.EventHandler (this.OnPositionentryChanged); this.playscombobox.Changed += new global::System.EventHandler (this.OnPlayscomboboxChanged); this.numberspinbutton.EditingDone += new global::System.EventHandler (this.OnNumberspinbuttonChanged); this.numberspinbutton.ValueChanged += new global::System.EventHandler (this.OnNumberspinbuttonValueChanged); this.nationalityentry.Changed += new global::System.EventHandler (this.OnNationalityentryChanged); this.nameentry.Changed += new global::System.EventHandler (this.OnNameentryChanged); this.heightspinbutton.ValueChanged += new global::System.EventHandler (this.OnHeightspinbuttonValueChanged); this.datebutton.Clicked += new global::System.EventHandler (this.OnDatebuttonClicked); this.openbutton.Clicked += new global::System.EventHandler (this.OnOpenbuttonClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs0000644000175000017500000006106711601631101021444 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui { public partial class MainWindow { private global::Gtk.UIManager UIManager; private global::Gtk.Action FileAction; private global::Gtk.Action NewPojectAction; private global::Gtk.Action OpenProjectAction; private global::Gtk.Action QuitAction; private global::Gtk.Action CloseProjectAction; private global::Gtk.Action ToolsAction; private global::Gtk.Action ProjectsManagerAction; private global::Gtk.Action CategoriesTemplatesManagerAction; private global::Gtk.Action ViewAction; private global::Gtk.ToggleAction FullScreenAction; private global::Gtk.ToggleAction PlaylistAction; private global::Gtk.RadioAction CaptureModeAction; private global::Gtk.RadioAction AnalyzeModeAction; private global::Gtk.Action SaveProjectAction; private global::Gtk.Action HelpAction; private global::Gtk.Action AboutAction; private global::Gtk.Action ExportProjectToCSVFileAction; private global::Gtk.Action TeamsTemplatesManagerAction; private global::Gtk.ToggleAction HideAllWidgetsAction; private global::Gtk.Action HelpAction1; private global::Gtk.ToggleAction DrawingToolAction; private global::Gtk.Action ImportProjectAction; private global::Gtk.RadioAction FreeCaptureModeAction; private global::Gtk.VBox vbox1; private global::Gtk.VBox menubox; private global::Gtk.MenuBar menubar1; private global::Gtk.HPaned hpaned; private global::Gtk.VBox leftbox; private global::Gtk.Notebook notebook1; private global::LongoMatch.Gui.Component.PlaysListTreeWidget treewidget1; private global::Gtk.Label playslabel; private global::LongoMatch.Gui.Component.PlayersListTreeWidget localplayerslisttreewidget; private global::Gtk.Label localteamlabel; private global::LongoMatch.Gui.Component.PlayersListTreeWidget visitorplayerslisttreewidget; private global::Gtk.Label visitorteamlabel; private global::LongoMatch.Gui.Component.TagsTreeWidget tagstreewidget1; private global::Gtk.Label tagslabel; private global::Gtk.HPaned hpaned1; private global::Gtk.VBox vbox5; private global::Gtk.HBox videowidgetsbox; private global::LongoMatch.Gui.Component.DrawingToolBox drawingtoolbox1; private global::LongoMatch.Gui.PlayerBin playerbin1; private global::LongoMatch.Gui.CapturerBin capturerBin; private global::LongoMatch.Gui.Component.TimeLineWidget timelinewidget1; private global::LongoMatch.Gui.Component.ButtonsWidget buttonswidget1; private global::Gtk.VBox rightvbox; private global::LongoMatch.Gui.Component.NotesWidget noteswidget1; private global::LongoMatch.Gui.Component.PlayListWidget playlistwidget2; private global::Gtk.Statusbar statusbar1; private global::Gtk.ProgressBar videoprogressbar; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.MainWindow this.UIManager = new global::Gtk.UIManager (); global::Gtk.ActionGroup w1 = new global::Gtk.ActionGroup ("Default"); this.FileAction = new global::Gtk.Action ("FileAction", global::Mono.Unix.Catalog.GetString ("_File"), null, null); this.FileAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_File"); w1.Add (this.FileAction, null); this.NewPojectAction = new global::Gtk.Action ("NewPojectAction", global::Mono.Unix.Catalog.GetString ("_New Project"), null, "gtk-new"); this.NewPojectAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_New Project"); w1.Add (this.NewPojectAction, null); this.OpenProjectAction = new global::Gtk.Action ("OpenProjectAction", global::Mono.Unix.Catalog.GetString ("_Open Project"), null, "gtk-open"); this.OpenProjectAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Open Project"); w1.Add (this.OpenProjectAction, null); this.QuitAction = new global::Gtk.Action ("QuitAction", global::Mono.Unix.Catalog.GetString ("_Quit"), null, "gtk-quit"); this.QuitAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Quit"); w1.Add (this.QuitAction, null); this.CloseProjectAction = new global::Gtk.Action ("CloseProjectAction", global::Mono.Unix.Catalog.GetString ("_Close Project"), null, "gtk-close"); this.CloseProjectAction.Sensitive = false; this.CloseProjectAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Close Project"); w1.Add (this.CloseProjectAction, null); this.ToolsAction = new global::Gtk.Action ("ToolsAction", global::Mono.Unix.Catalog.GetString ("_Tools"), null, null); this.ToolsAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Tools"); w1.Add (this.ToolsAction, null); this.ProjectsManagerAction = new global::Gtk.Action ("ProjectsManagerAction", global::Mono.Unix.Catalog.GetString ("Projects Manager"), null, null); this.ProjectsManagerAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Database Manager"); w1.Add (this.ProjectsManagerAction, null); this.CategoriesTemplatesManagerAction = new global::Gtk.Action ("CategoriesTemplatesManagerAction", global::Mono.Unix.Catalog.GetString ("Categories Templates Manager"), null, null); this.CategoriesTemplatesManagerAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Templates Manager"); w1.Add (this.CategoriesTemplatesManagerAction, null); this.ViewAction = new global::Gtk.Action ("ViewAction", global::Mono.Unix.Catalog.GetString ("_View"), null, null); this.ViewAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_View"); w1.Add (this.ViewAction, "t"); this.FullScreenAction = new global::Gtk.ToggleAction ("FullScreenAction", global::Mono.Unix.Catalog.GetString ("Full Screen"), null, "gtk-fullscreen"); this.FullScreenAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Full Screen"); w1.Add (this.FullScreenAction, "f"); this.PlaylistAction = new global::Gtk.ToggleAction ("PlaylistAction", global::Mono.Unix.Catalog.GetString ("Playlist"), null, null); this.PlaylistAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Playlist"); w1.Add (this.PlaylistAction, "p"); this.CaptureModeAction = new global::Gtk.RadioAction ("CaptureModeAction", global::Mono.Unix.Catalog.GetString ("Capture Mode"), null, null, 0); this.CaptureModeAction.Group = new global::GLib.SList (global::System.IntPtr.Zero); this.CaptureModeAction.Sensitive = false; this.CaptureModeAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Capture Mode"); w1.Add (this.CaptureModeAction, "c"); this.AnalyzeModeAction = new global::Gtk.RadioAction ("AnalyzeModeAction", global::Mono.Unix.Catalog.GetString ("Analyze Mode"), null, null, 0); this.AnalyzeModeAction.Group = this.CaptureModeAction.Group; this.AnalyzeModeAction.Sensitive = false; this.AnalyzeModeAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Analyze Mode"); w1.Add (this.AnalyzeModeAction, "a"); this.SaveProjectAction = new global::Gtk.Action ("SaveProjectAction", global::Mono.Unix.Catalog.GetString ("_Save Project"), null, "gtk-save"); this.SaveProjectAction.Sensitive = false; this.SaveProjectAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Save Project"); w1.Add (this.SaveProjectAction, null); this.HelpAction = new global::Gtk.Action ("HelpAction", global::Mono.Unix.Catalog.GetString ("_Help"), null, null); this.HelpAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Help"); w1.Add (this.HelpAction, null); this.AboutAction = new global::Gtk.Action ("AboutAction", global::Mono.Unix.Catalog.GetString ("_About"), null, "gtk-about"); this.AboutAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_About"); w1.Add (this.AboutAction, null); this.ExportProjectToCSVFileAction = new global::Gtk.Action ("ExportProjectToCSVFileAction", global::Mono.Unix.Catalog.GetString ("Export Project To CSV File"), null, null); this.ExportProjectToCSVFileAction.Sensitive = false; this.ExportProjectToCSVFileAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Export Project To CSV File"); w1.Add (this.ExportProjectToCSVFileAction, null); this.TeamsTemplatesManagerAction = new global::Gtk.Action ("TeamsTemplatesManagerAction", global::Mono.Unix.Catalog.GetString ("Teams Templates Manager"), null, null); this.TeamsTemplatesManagerAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Teams Templates Manager"); w1.Add (this.TeamsTemplatesManagerAction, null); this.HideAllWidgetsAction = new global::Gtk.ToggleAction ("HideAllWidgetsAction", global::Mono.Unix.Catalog.GetString ("Hide All Widgets"), null, null); this.HideAllWidgetsAction.Sensitive = false; this.HideAllWidgetsAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Hide All Widgets"); w1.Add (this.HideAllWidgetsAction, null); this.HelpAction1 = new global::Gtk.Action ("HelpAction1", global::Mono.Unix.Catalog.GetString ("_Help"), null, "gtk-help"); this.HelpAction1.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Help"); w1.Add (this.HelpAction1, null); this.DrawingToolAction = new global::Gtk.ToggleAction ("DrawingToolAction", global::Mono.Unix.Catalog.GetString ("_Drawing Tool"), null, null); this.DrawingToolAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Drawing Tool"); w1.Add (this.DrawingToolAction, "d"); this.ImportProjectAction = new global::Gtk.Action ("ImportProjectAction", global::Mono.Unix.Catalog.GetString ("_Import Project"), null, "stock-import"); this.ImportProjectAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Import Project"); w1.Add (this.ImportProjectAction, "i"); this.FreeCaptureModeAction = new global::Gtk.RadioAction ("FreeCaptureModeAction", global::Mono.Unix.Catalog.GetString ("Free Capture Mode"), null, null, 0); this.FreeCaptureModeAction.Group = this.CaptureModeAction.Group; this.FreeCaptureModeAction.Sensitive = false; this.FreeCaptureModeAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Free Capture Mode"); w1.Add (this.FreeCaptureModeAction, "f"); this.UIManager.InsertActionGroup (w1, 0); this.AddAccelGroup (this.UIManager.AccelGroup); this.Name = "LongoMatch.Gui.MainWindow"; this.Title = global::Mono.Unix.Catalog.GetString ("LongoMatch"); this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", global::Gtk.IconSize.Dialog); this.WindowPosition = ((global::Gtk.WindowPosition)(1)); this.Gravity = ((global::Gdk.Gravity)(5)); // Container child LongoMatch.Gui.MainWindow.Gtk.Container+ContainerChild this.vbox1 = new global::Gtk.VBox (); this.vbox1.Name = "vbox1"; this.vbox1.Spacing = 6; // Container child vbox1.Gtk.Box+BoxChild this.menubox = new global::Gtk.VBox (); this.menubox.Name = "menubox"; this.menubox.Spacing = 6; // Container child menubox.Gtk.Box+BoxChild this.UIManager.AddUiFromString (""); this.menubar1 = ((global::Gtk.MenuBar)(this.UIManager.GetWidget ("/menubar1"))); this.menubar1.Name = "menubar1"; this.menubox.Add (this.menubar1); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.menubox[this.menubar1])); w2.Position = 0; w2.Expand = false; w2.Fill = false; this.vbox1.Add (this.menubox); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.menubox])); w3.Position = 0; w3.Expand = false; w3.Fill = false; // Container child vbox1.Gtk.Box+BoxChild this.hpaned = new global::Gtk.HPaned (); this.hpaned.CanFocus = true; this.hpaned.Name = "hpaned"; this.hpaned.Position = 257; // Container child hpaned.Gtk.Paned+PanedChild this.leftbox = new global::Gtk.VBox (); this.leftbox.Name = "leftbox"; this.leftbox.Spacing = 6; // Container child leftbox.Gtk.Box+BoxChild this.notebook1 = new global::Gtk.Notebook (); this.notebook1.CanFocus = true; this.notebook1.Name = "notebook1"; this.notebook1.CurrentPage = 0; this.notebook1.TabPos = ((global::Gtk.PositionType)(3)); // Container child notebook1.Gtk.Notebook+NotebookChild this.treewidget1 = new global::LongoMatch.Gui.Component.PlaysListTreeWidget (); this.treewidget1.Events = ((global::Gdk.EventMask)(256)); this.treewidget1.Name = "treewidget1"; this.notebook1.Add (this.treewidget1); // Notebook tab this.playslabel = new global::Gtk.Label (); this.playslabel.Name = "playslabel"; this.playslabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Plays"); this.notebook1.SetTabLabel (this.treewidget1, this.playslabel); this.playslabel.ShowAll (); // Container child notebook1.Gtk.Notebook+NotebookChild this.localplayerslisttreewidget = new global::LongoMatch.Gui.Component.PlayersListTreeWidget (); this.localplayerslisttreewidget.Events = ((global::Gdk.EventMask)(256)); this.localplayerslisttreewidget.Name = "localplayerslisttreewidget"; this.notebook1.Add (this.localplayerslisttreewidget); global::Gtk.Notebook.NotebookChild w5 = ((global::Gtk.Notebook.NotebookChild)(this.notebook1[this.localplayerslisttreewidget])); w5.Position = 1; // Notebook tab this.localteamlabel = new global::Gtk.Label (); this.localteamlabel.Name = "localteamlabel"; this.localteamlabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Local Team"); this.notebook1.SetTabLabel (this.localplayerslisttreewidget, this.localteamlabel); this.localteamlabel.ShowAll (); // Container child notebook1.Gtk.Notebook+NotebookChild this.visitorplayerslisttreewidget = new global::LongoMatch.Gui.Component.PlayersListTreeWidget (); this.visitorplayerslisttreewidget.Events = ((global::Gdk.EventMask)(256)); this.visitorplayerslisttreewidget.Name = "visitorplayerslisttreewidget"; this.notebook1.Add (this.visitorplayerslisttreewidget); global::Gtk.Notebook.NotebookChild w6 = ((global::Gtk.Notebook.NotebookChild)(this.notebook1[this.visitorplayerslisttreewidget])); w6.Position = 2; // Notebook tab this.visitorteamlabel = new global::Gtk.Label (); this.visitorteamlabel.Name = "visitorteamlabel"; this.visitorteamlabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Visitor Team"); this.notebook1.SetTabLabel (this.visitorplayerslisttreewidget, this.visitorteamlabel); this.visitorteamlabel.ShowAll (); // Container child notebook1.Gtk.Notebook+NotebookChild this.tagstreewidget1 = new global::LongoMatch.Gui.Component.TagsTreeWidget (); this.tagstreewidget1.Events = ((global::Gdk.EventMask)(256)); this.tagstreewidget1.Name = "tagstreewidget1"; this.notebook1.Add (this.tagstreewidget1); global::Gtk.Notebook.NotebookChild w7 = ((global::Gtk.Notebook.NotebookChild)(this.notebook1[this.tagstreewidget1])); w7.Position = 3; // Notebook tab this.tagslabel = new global::Gtk.Label (); this.tagslabel.Name = "tagslabel"; this.tagslabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Tags"); this.notebook1.SetTabLabel (this.tagstreewidget1, this.tagslabel); this.tagslabel.ShowAll (); this.leftbox.Add (this.notebook1); global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.leftbox[this.notebook1])); w8.Position = 0; this.hpaned.Add (this.leftbox); global::Gtk.Paned.PanedChild w9 = ((global::Gtk.Paned.PanedChild)(this.hpaned[this.leftbox])); w9.Resize = false; // Container child hpaned.Gtk.Paned+PanedChild this.hpaned1 = new global::Gtk.HPaned (); this.hpaned1.CanFocus = true; this.hpaned1.Name = "hpaned1"; this.hpaned1.Position = 930; // Container child hpaned1.Gtk.Paned+PanedChild this.vbox5 = new global::Gtk.VBox (); this.vbox5.Name = "vbox5"; this.vbox5.Spacing = 6; // Container child vbox5.Gtk.Box+BoxChild this.videowidgetsbox = new global::Gtk.HBox (); this.videowidgetsbox.Name = "videowidgetsbox"; this.videowidgetsbox.Spacing = 6; // Container child videowidgetsbox.Gtk.Box+BoxChild this.drawingtoolbox1 = new global::LongoMatch.Gui.Component.DrawingToolBox (); this.drawingtoolbox1.Events = ((global::Gdk.EventMask)(256)); this.drawingtoolbox1.Name = "drawingtoolbox1"; this.videowidgetsbox.Add (this.drawingtoolbox1); global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.videowidgetsbox[this.drawingtoolbox1])); w10.Position = 0; w10.Expand = false; w10.Fill = false; // Container child videowidgetsbox.Gtk.Box+BoxChild this.playerbin1 = new global::LongoMatch.Gui.PlayerBin (); this.playerbin1.Events = ((global::Gdk.EventMask)(256)); this.playerbin1.Name = "playerbin1"; this.playerbin1.Rate = 1f; this.playerbin1.ExpandLogo = true; this.videowidgetsbox.Add (this.playerbin1); global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.videowidgetsbox[this.playerbin1])); w11.Position = 1; // Container child videowidgetsbox.Gtk.Box+BoxChild this.capturerBin = new global::LongoMatch.Gui.CapturerBin (); this.capturerBin.Events = ((global::Gdk.EventMask)(256)); this.capturerBin.Name = "capturerBin"; this.videowidgetsbox.Add (this.capturerBin); global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.videowidgetsbox[this.capturerBin])); w12.Position = 2; this.vbox5.Add (this.videowidgetsbox); global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.videowidgetsbox])); w13.Position = 0; // Container child vbox5.Gtk.Box+BoxChild this.timelinewidget1 = new global::LongoMatch.Gui.Component.TimeLineWidget (); this.timelinewidget1.HeightRequest = 200; this.timelinewidget1.Events = ((global::Gdk.EventMask)(256)); this.timelinewidget1.Name = "timelinewidget1"; this.timelinewidget1.CurrentFrame = ((uint)(0)); this.vbox5.Add (this.timelinewidget1); global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.timelinewidget1])); w14.Position = 1; w14.Expand = false; // Container child vbox5.Gtk.Box+BoxChild this.buttonswidget1 = new global::LongoMatch.Gui.Component.ButtonsWidget (); this.buttonswidget1.Events = ((global::Gdk.EventMask)(256)); this.buttonswidget1.Name = "buttonswidget1"; this.vbox5.Add (this.buttonswidget1); global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.buttonswidget1])); w15.Position = 2; w15.Expand = false; this.hpaned1.Add (this.vbox5); global::Gtk.Paned.PanedChild w16 = ((global::Gtk.Paned.PanedChild)(this.hpaned1[this.vbox5])); w16.Resize = false; w16.Shrink = false; // Container child hpaned1.Gtk.Paned+PanedChild this.rightvbox = new global::Gtk.VBox (); this.rightvbox.WidthRequest = 100; this.rightvbox.Name = "rightvbox"; this.rightvbox.Spacing = 6; // Container child rightvbox.Gtk.Box+BoxChild this.noteswidget1 = new global::LongoMatch.Gui.Component.NotesWidget (); this.noteswidget1.Events = ((global::Gdk.EventMask)(256)); this.noteswidget1.Name = "noteswidget1"; this.rightvbox.Add (this.noteswidget1); global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.rightvbox[this.noteswidget1])); w17.Position = 0; // Container child rightvbox.Gtk.Box+BoxChild this.playlistwidget2 = new global::LongoMatch.Gui.Component.PlayListWidget (); this.playlistwidget2.WidthRequest = 100; this.playlistwidget2.Events = ((global::Gdk.EventMask)(256)); this.playlistwidget2.Name = "playlistwidget2"; this.rightvbox.Add (this.playlistwidget2); global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.rightvbox[this.playlistwidget2])); w18.Position = 1; this.hpaned1.Add (this.rightvbox); global::Gtk.Paned.PanedChild w19 = ((global::Gtk.Paned.PanedChild)(this.hpaned1[this.rightvbox])); w19.Resize = false; w19.Shrink = false; this.hpaned.Add (this.hpaned1); global::Gtk.Paned.PanedChild w20 = ((global::Gtk.Paned.PanedChild)(this.hpaned[this.hpaned1])); w20.Resize = false; w20.Shrink = false; this.vbox1.Add (this.hpaned); global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hpaned])); w21.Position = 1; // Container child vbox1.Gtk.Box+BoxChild this.statusbar1 = new global::Gtk.Statusbar (); this.statusbar1.Name = "statusbar1"; this.statusbar1.Spacing = 6; // Container child statusbar1.Gtk.Box+BoxChild this.videoprogressbar = new global::Gtk.ProgressBar (); this.videoprogressbar.Name = "videoprogressbar"; this.videoprogressbar.Text = global::Mono.Unix.Catalog.GetString ("Creating video..."); this.statusbar1.Add (this.videoprogressbar); global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.statusbar1[this.videoprogressbar])); w22.Position = 3; w22.Expand = false; w22.Fill = false; this.vbox1.Add (this.statusbar1); global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.statusbar1])); w23.Position = 2; w23.Expand = false; w23.Fill = false; this.Add (this.vbox1); if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 1445; this.DefaultHeight = 853; this.leftbox.Hide (); this.drawingtoolbox1.Hide (); this.timelinewidget1.Hide (); this.buttonswidget1.Hide (); this.noteswidget1.Hide (); this.playlistwidget2.Hide (); this.rightvbox.Hide (); this.videoprogressbar.Hide (); this.Show (); this.NewPojectAction.Activated += new global::System.EventHandler (this.OnNewActivated); this.OpenProjectAction.Activated += new global::System.EventHandler (this.OnOpenActivated); this.QuitAction.Activated += new global::System.EventHandler (this.OnQuitActivated); this.CloseProjectAction.Activated += new global::System.EventHandler (this.OnCloseActivated); this.ProjectsManagerAction.Activated += new global::System.EventHandler (this.OnDatabaseManagerActivated); this.CategoriesTemplatesManagerAction.Activated += new global::System.EventHandler (this.OnSectionsTemplatesManagerActivated); this.FullScreenAction.Toggled += new global::System.EventHandler (this.OnFullScreenActionToggled); this.PlaylistAction.Toggled += new global::System.EventHandler (this.OnPlaylistActionToggled); this.CaptureModeAction.Toggled += new global::System.EventHandler (this.OnViewToggled); this.SaveProjectAction.Activated += new global::System.EventHandler (this.OnSaveProjectActionActivated); this.AboutAction.Activated += new global::System.EventHandler (this.OnAboutActionActivated); this.ExportProjectToCSVFileAction.Activated += new global::System.EventHandler (this.OnExportProjectToCSVFileActionActivated); this.TeamsTemplatesManagerAction.Activated += new global::System.EventHandler (this.OnTeamsTemplatesManagerActionActivated); this.HideAllWidgetsAction.Toggled += new global::System.EventHandler (this.OnHideAllWidgetsActionToggled); this.HelpAction1.Activated += new global::System.EventHandler (this.OnHelpAction1Activated); this.DrawingToolAction.Toggled += new global::System.EventHandler (this.OnDrawingToolActionToggled); this.ImportProjectAction.Activated += new global::System.EventHandler (this.OnImportProjectActionActivated); this.FreeCaptureModeAction.Toggled += new global::System.EventHandler (this.OnViewToggled); this.treewidget1.TimeNodeSelected += new global::LongoMatch.Handlers.TimeNodeSelectedHandler (this.OnTimeNodeSelected); this.playerbin1.Error += new global::LongoMatch.Video.Common.ErrorHandler (this.OnPlayerbin1Error); this.playerbin1.SegmentClosedEvent += new global::LongoMatch.Video.Common.SegmentClosedHandler (this.OnSegmentClosedEvent); this.capturerBin.Error += new global::LongoMatch.Video.Common.ErrorHandler (this.OnCapturerBinError); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.TaggerWidget.cs0000644000175000017500000001055311601631101023700 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class TaggerWidget { private global::Gtk.VBox vbox2; private global::Gtk.Label label1; private global::Gtk.ScrolledWindow scrolledwindow1; private global::Gtk.Table table1; private global::Gtk.HBox hbox1; private global::Gtk.Entry entry1; private global::Gtk.Button tagbutton; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.TaggerWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.TaggerWidget"; // Container child LongoMatch.Gui.Component.TaggerWidget.Gtk.Container+ContainerChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("You haven't tagged any play yet.\nYou can add new tags using the text entry and clicking \"Add Tag\""); this.label1.UseMarkup = true; this.label1.Justify = ((global::Gtk.Justification)(2)); this.vbox2.Add (this.label1); global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.label1])); w1.Position = 0; // Container child vbox2.Gtk.Box+BoxChild this.scrolledwindow1 = new global::Gtk.ScrolledWindow (); this.scrolledwindow1.CanFocus = true; this.scrolledwindow1.Name = "scrolledwindow1"; this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child scrolledwindow1.Gtk.Container+ContainerChild global::Gtk.Viewport w2 = new global::Gtk.Viewport (); w2.ShadowType = ((global::Gtk.ShadowType)(0)); // Container child GtkViewport.Gtk.Container+ContainerChild this.table1 = new global::Gtk.Table (((uint)(3)), ((uint)(3)), false); this.table1.Name = "table1"; this.table1.RowSpacing = ((uint)(6)); this.table1.ColumnSpacing = ((uint)(6)); w2.Add (this.table1); this.scrolledwindow1.Add (w2); this.vbox2.Add (this.scrolledwindow1); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.scrolledwindow1])); w5.Position = 1; // Container child vbox2.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; // Container child hbox1.Gtk.Box+BoxChild this.entry1 = new global::Gtk.Entry (); this.entry1.CanFocus = true; this.entry1.Name = "entry1"; this.entry1.IsEditable = true; this.entry1.InvisibleChar = '•'; this.hbox1.Add (this.entry1); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.entry1])); w6.Position = 0; // Container child hbox1.Gtk.Box+BoxChild this.tagbutton = new global::Gtk.Button (); this.tagbutton.CanFocus = true; this.tagbutton.Name = "tagbutton"; this.tagbutton.UseUnderline = true; // Container child tagbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w7 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w8 = new global::Gtk.HBox (); w8.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w9 = new global::Gtk.Image (); w9.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-add", global::Gtk.IconSize.Dialog); w8.Add (w9); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w11 = new global::Gtk.Label (); w11.LabelProp = global::Mono.Unix.Catalog.GetString ("Add Tag"); w11.UseUnderline = true; w8.Add (w11); w7.Add (w8); this.tagbutton.Add (w7); this.hbox1.Add (this.tagbutton); global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.tagbutton])); w15.Position = 1; w15.Expand = false; w15.Fill = false; this.vbox2.Add (this.hbox1); global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox1])); w16.Position = 2; w16.Expand = false; w16.Fill = false; this.Add (this.vbox2); if ((this.Child != null)) { this.Child.ShowAll (); } this.scrolledwindow1.Hide (); this.Hide (); this.entry1.Activated += new global::System.EventHandler (this.OnEntry1Activated); this.tagbutton.Clicked += new global::System.EventHandler (this.OnTagbuttonClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditPlayerDialog.cs0000644000175000017500000000427611601631101023747 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Dialog { public partial class EditPlayerDialog { private global::LongoMatch.Gui.Component.PlayerProperties playerproperties1; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Dialog.EditPlayerDialog this.Name = "LongoMatch.Gui.Dialog.EditPlayerDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Player Details"); this.Icon = global::Gdk.Pixbuf.LoadFromResource ("longomatch.png"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); this.Modal = true; this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Internal child LongoMatch.Gui.Dialog.EditPlayerDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.playerproperties1 = new global::LongoMatch.Gui.Component.PlayerProperties (); this.playerproperties1.Events = ((global::Gdk.EventMask)(256)); this.playerproperties1.Name = "playerproperties1"; w1.Add (this.playerproperties1); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.playerproperties1])); w2.Position = 0; // Internal child LongoMatch.Gui.Dialog.EditPlayerDialog.ActionArea global::Gtk.HButtonBox w3 = this.ActionArea; w3.Name = "dialog1_ActionArea"; w3.Spacing = 6; w3.BorderWidth = ((uint)(5)); w3.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w4 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonOk])); w4.Expand = false; w4.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 257; this.DefaultHeight = 355; this.Show (); } } } longomatch-0.16.8/LongoMatch/gtk-gui/gui.stetic0000644000175000017500000105157411601631101016270 00000000000000 .. 2.12 resource:longomatch.png 6 10 2 6 6 True True 4 5 1 2 True Fill Fill False True False False True False Competition: 4 5 True Fill Fill False True False False True False 6 True False 0 True True True StockItem gtk-open gtk-open 1 False False 9 10 1 2 False Fill Fill False True False False True False File: 9 10 False Fill Fill False True False False True False 6 True 0 False True True StockItem gtk-edit gtk-edit End 1 True False False 6 7 1 2 False Fill Fill False True False False True False 6 True 0 False True True StockItem gtk-edit gtk-edit End 1 True False False 7 8 1 2 False Fill Fill False True False False True False 6 True 0 False False True True StockItem gtk-edit gtk-edit End 1 True False False 5 6 1 2 True Fill Fill False True False False True False 6 localSpinButton True 1000 10 1 1 True 0 False False - 1 True False False visitorSpinButton True 1000 10 1 1 True 2 False False 2 3 1 2 True Fill Fill False True False False True False dateEntry True False 0 True True TextAndIcon stock:stock_calendar Button _Calendar True 1 True False False 8 9 1 2 False Expand True True False True False False Visitor Team: 1 2 False Fill Fill False True False False True False Score: 2 3 True Fill Fill False True False False True False Date: 8 9 False Fill Fill False True False False True False Local Team: False Fill Fill False True False False True False Categories Template: 5 6 False Fill Fill False True False False True False localTeamEntry True True 1 2 False True True False True True False Visitor Team Template 7 8 True Fill Fill False True False False True False True True 3 4 1 2 True Fill Fill False True False False True False Season: 3 4 True Fill Fill False True False False True False visitorTeamEntry True True 1 2 1 2 False Fill False True False True True False Local Team Template 6 7 True Fill Fill False True False False True False 0 False True 5 2 6 6 Audio Bitrate (kbps): 4 5 True Fill Fill False True False False True False True 360 10 1 1 True 64 4 5 1 2 False Expand Expand True False False True False False False Device: True Fill Fill False True False False True False True 1 2 True Fill Fill False True False False True False True 2 3 1 2 True Fill Fill False True False False True False Video Size: 2 3 True Fill Fill False True False False True False False Video Bitrate (kbps): 3 4 True Fill Fill False True False False True False True 1000 8000 10 1 1 True 4000 3 4 1 2 False Expand Expand True False False True False False True 1 2 1 2 True Fill Fill False True False False True False Video Format: 1 2 True Fill Fill False True False False True False Video encoding properties True label_item 1 True False False True None 6 6 Projects Search: 0 True False False True True 1 True 0 True False False treeview True 1 True True None True True Mouse True False False False Center True True True ShowHeading, ShowDayNames 6 False TextOnly Cancel True 0 True False False False TextOnly Tag new play True 1 True False False 5 4 1 1 2 True Projects Manager stock:longomatch Dialog CenterOnParent True Center True True 1 False 2 2 6 True 349 ButtonPressMask False 6 None 0 0 12 False ButtonPressMask False 0 0 0 <b>Project Details</b> True label_item 0 False False Save the selected project True True StockItem gtk-save gtk-save 1 False False False False Delete the selected project True True StockItem gtk-delete gtk-delete 2 False False False False Export the selected project to a file True TextAndIcon stock:stock_export Menu _Export True 3 True False False 0 True 0 False End 1 True False False 0 False 6 5 1 End True True True StockItem gtk-quit 0 gtk-quit False False Open Project stock:longomatch Dialog CenterOnParent True Center True True 2 False 2 projectlistwidget ButtonPressMask 0 False 6 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False False True True True StockItem gtk-open -5 gtk-open 1 False False New Project stock:longomatch Dialog CenterOnParent True True Center True True 2 False 2 fdwidget False 0 0 0 0 False 6 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False 5 6 6 Lead time: False 0 Fill False False False False True False Lag time: 3 4 False Fill Fill False True False False True False True 100 1 1 1 True 2 3 False Fill True True False False True False True 100 1 1 1 True 4 5 False Fill True True False False True False 1 2 True Fill Fill False True False False True False 6 True In True 0 True 6 False Insert a new category before the selected one True TextAndIcon stock:gtk-goto-top Menu New Before True 0 False False False False Insert a new category after the selected one True TextAndIcon stock:gtk-goto-bottom Menu New After True 1 False False False False Remove the selected category True TextAndIcon stock:gtk-remove Menu Remove True 2 False False False False Edit the selected category True TextAndIcon stock:gtk-edit Menu Edit True 3 False False False False 4 True False False False Export the template to a file True TextAndIcon stock:gtk-save-as Menu Export True End 5 True False False 1 False False False Action _File _File Action _New Project _New Project gtk-new Action _Open Project _Open Project gtk-open Action _Quit _Quit gtk-quit Action _Close Project False _Close Project gtk-close Action _Tools _Tools Action Projects Manager Database Manager Action Categories Templates Manager Templates Manager Action <Control>t _View _View Toggle <Control><Alt>f Full Screen Full Screen gtk-fullscreen False False Toggle <Control>p Playlist Playlist False False Radio <Control>c Capture Mode False Capture Mode False False 0 group1 Radio <Control>a Analyze Mode False Analyze Mode False True 0 group1 Action _Save Project False _Save Project gtk-save Action _Help _Help Action _About _About gtk-about Action Export Project To CSV File False Export Project To CSV File Action Teams Templates Manager Teams Templates Manager Toggle Hide All Widgets False Hide All Widgets False False Action _Help _Help gtk-help Toggle <Control>d _Drawing Tool Drawing Tool False False Action <Control>i _Import Project _Import Project stock-import Radio <Control>f Free Capture Mode False Free Capture Mode False False 0 group1 LongoMatch stock:longomatch Dialog Center Center 6 6 0 True False False 0 False False False True 257 False 6 True 0 Bottom ButtonPressMask Plays tab ButtonPressMask 1 Local Team tab ButtonPressMask 2 Visitor Team tab ButtonPressMask 3 Tags tab 0 False False True 930 6 6 False ButtonPressMask 0 True False False ButtonPressMask 1 True 1 True ButtonPressMask 2 False 0 False 200 False ButtonPressMask 0 1 False False False ButtonPressMask 2 False False False False 100 False 6 False ButtonPressMask 0 False 100 False ButtonPressMask 1 False False False False False 1 False 6 False Creating video... 3 False False False 2 True False False 6 6 Name: 0 True False False True True 1 True 0 False False ButtonPressMask 1 False False 6 Color: 0 False False False True ButtonMotionMask, ButtonPressMask, ButtonReleaseMask -1 1 True False False True TextOnly Change True End 2 True False False none End 3 True False False HotKey: End 4 True False False 2 False False 6 Sort Method 0 True False False True Sort by name Sort by start time Sort by stop time Sort by duration 0 1 False 3 True False False Categories Template stock:longomatch Dialog CenterOnParent True Center True True 1 False 2 ButtonPressMask False 0 False 6 5 1 End True True True StockItem gtk-apply -10 gtk-apply False False 100 6 True In None 6 Load a playlist or create a new one. 0 True False False False True 1 False 0 True True 6 Create a new playlist True TextAndIcon stock:gtk-new Button True 0 False Open a playlist True TextAndIcon stock:gtk-open Button True 1 False Save the playlist True TextAndIcon stock:gtk-save Button True 2 False Export the playlist to new video file True TextAndIcon stock:gtk-media-record Button True 3 False False Cancel rendering True TextAndIcon stock:gtk-close Button True 4 False 1 True False False Select template name stock:longomatch Dialog CenterOnParent True Center True True 2 False 2 3 2 6 6 True True True True 2 3 1 2 False Fill True True False False True False True True 1 2 False Fill True True False False True False Copy existent template: 2 3 False Fill False True False True True False 0 Name: False Fill False True False True True False 0 Players: 1 2 False Fill False True False True True False True 1 100 10 1 1 True 15 1 2 1 2 False Fill 0 False True False False False False 0 False False True 1 True False False 6 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False 6 0 True False False 6 6 TextAndIcon stock:gtk-zoom-fit Button True 0 True False False True Discontinuous 1 100 10 1 1 True 0 Top 1 True 0 True False False 6 1 True 0 False False False 1 True False False 6 6 0 False False False In None True 1 True 2 True 1 True Video Properties stock:longomatch Dialog CenterOnParent True Center True True 2 False 2 6 True 6 0 Video Quality: 0 False True Low Normal Good Extra 1 1 False 0 True False False True 6 0 Size: 0 False True Portable (4:3 - 320x240) VGA (4:3 - 640x480) TV (4:3 - 720x576) HD 720p (16:9 - 1280x720) Full HD 1080p (16:9 - 1920x1080) 1 1 False 1 True False False True 6 0 Ouput Format: 0 False True 1 False 2 True False False 6 True Enable Title Overlay True True True True 0 True True Enable Audio (Experimental) True True True 1 True 3 True False False 6 File name: 0 False False False 6 True False 0 True True True StockItem gtk-save-as gtk-save-as 1 True False False 1 True 4 True False False 0 True False False 6 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False stock:longomatch Dialog CenterOnParent Center True True 1 False 2 3 2 6 6 True True 1 2 1 2 False Fill True True False False True False Play, like the play of a game|Play: True Fill Fill False True False False True False Interval (frames/s): 2 3 False True True False True True False Series Name: 1 2 False True True False True True False 1 2 False Fill True True False False True False True 1 25 10 1 1 True 1 2 3 1 2 False Expand Fill True False False False True False 0 False 6 5 1 End True TextAndIcon stock:gtk-media-record Button Export to PNG images True -5 False False 6 True In None True True 0 True False True True StockItem gtk-save gtk-save 1 True False False Capture Progress stock:longomatch Dialog CenterOnParent True 3 False False Center True True 2 False 2 6 0 False False End 1 False 0 False 6 5 2 End False True True StockItem gtk-ok -5 gtk-ok False False True True True StockItem gtk-cancel -6 gtk-cancel 1 False False stock:longomatch Dialog CenterOnParent 1 False 2 6 A new version of LongoMatch has been released at www.ylatuya.es! (None) Center 0 False False False The new version is Center 1 True False False You can download it using this direct link: Center 2 True False False label7 True Center True 3 True False False 0 True False False 6 5 1 End True True True StockItem gtk-ok -5 gtk-ok False False Select a HotKey stock:longomatch Dialog CenterOnParent Center True True 1 False 2 Press a key combination using Shift+key or Alt+key. Hotkeys with a single key are also allowed with Ctrl+key. 0 False 6 5 1 End True True True StockItem gtk-cancel -6 gtk-cancel False False False 9 2 6 6 6 0 False True True StockItem gtk-open gtk-open 1 False False False 8 9 1 2 True Fill Fill False True False False True False 6 0 False True TextOnly _Calendar True 1 True False False 7 8 1 2 True Fill Fill False True False False True False True 10 1 1 1 2 True 10 4 5 1 2 True Fill Fill False True False False True False Name: True Fill Fill False True False False True False Position: 2 3 True Fill Fill False True False False True False Number: 3 4 True Fill Fill False True False False True False Photo: 8 9 True Fill Fill False True False False True False Height 4 5 True Fill Fill False True False False True False Weight 5 6 True Fill Fill False True False False True False Birth day 7 8 True Fill Fill False True False False True False Nationality 6 7 True Fill Fill False True False False True False Plays this match: 1 2 True Fill Fill False True False False True False True True 1 2 True Fill Fill False True False False True False True True 6 7 1 2 True Fill Fill False True False False True False True 100 10 1 1 True 3 4 1 2 False Fill True True False False True False True Yes No 0 1 2 1 2 False Fill Fill False True False False True False True True 2 3 1 2 True Fill Fill False True False False True False True 400 10 1 1 True 80 5 6 1 2 True Fill Fill False True False False True False False 6 True In True 0 True Templates Manager stock:longomatch Dialog CenterOnParent True Center True True 1 False 2 True 144 6 True 0 True True Create a new template True TextAndIcon stock:gtk-new Button True 0 True False False False Delete this template True TextAndIcon stock:gtk-delete Button True 1 True False False False Save this template True TextAndIcon stock:gtk-save Button True 2 True False False 1 True False False False 6 False False ButtonPressMask False 0 False False False ButtonPressMask False 1 False 0 True 6 5 1 End True True True StockItem gtk-quit 0 gtk-quit False False True In True Tag players stock:longomatch Dialog CenterOnParent Center True True 2 False 2 3 3 6 6 0 True 6 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False stock:longomatch Menu CenterOnParent 2 False 2 6 None 0 0 12 True In True <b>Data Base Migration</b> True label_item 0 False None 0 0 12 True In True <b>Playlists Migration</b> True label_item 1 False None 0 0 12 True In True <b>Templates Migration</b> True label_item 2 False 0 True 6 5 2 End False False True True True StockItem gtk-cancel -6 gtk-cancel False False False True True True StockItem gtk-ok -5 gtk-ok 1 False False Calendar stock:longomatch Menu CenterOnParent Center True True 1 False 2 True 35 0 False 6 5 1 End True True True StockItem gtk-ok -5 gtk-ok False False TransparentDrawingArea Splashscreen CenterOnParent True Center True True False 6 0 <b>Tools</b> True 0 True False False 3 2 6 6 True True False False True tools Circle tool resource:stock_draw-circle-unfilled.png 2 3 1 2 True Fill True True False False True False True False False True tools Cross tool resource:stock_draw-line-45.png 1 2 1 2 True Fill True True False False True False Rubber tool True False False True tools stock:gtk-delete Menu 1 2 True Fill True True False False True False True False False True tools Arrow line tool resource:stock_draw-line-ends-with-arrow.png 1 2 True Fill True True False False True False Pencil tool True False False True tools Pencil resource:stock_draw-freeform-line.png True Fill True True False False True False True False False True tools Rectangle tool resource:stock_draw-rectangle-unfilled.png 2 3 True Fill True True False False True False 1 False False 0 <b>Color</b> True 2 True False False True ButtonMotionMask, ButtonPressMask, ButtonReleaseMask -1 3 True False False 0 <b>Width</b> True 4 True False False Change the line's width True 2 px 4 px 6 px 8 px 10 px 2 5 True False False 0 <b>Transparency</b> True 6 True False False Change the drawings' transparency True 100 10 1 1 True 80 7 True False False Clear all drawings True TextAndIcon stock:gtk-clear LargeToolbar True 8 False False False Draw-><b> D</b> Clear-><b> C</b> Hide-><b> S</b> Show-><b> S</b> True 9 True False False Category Details resource:longomatch.png CenterOnParent True 1 False 2 ButtonPressMask 0 False 6 5 1 End True True True StockItem gtk-ok -5 gtk-ok False False Player Details resource:longomatch.png CenterOnParent True True True 1 False 2 ButtonPressMask 0 False 6 5 1 End True True True StockItem gtk-ok -5 gtk-ok False False resource:longomatch.png CenterOnParent True Center True True 1 False 2 ButtonPressMask False 0 False 6 5 1 End True True True StockItem gtk-apply -10 gtk-apply False False False In None ButtonMotionMask, ButtonPressMask, ButtonReleaseMask True Drawing Tool resource:longomatch.png CenterOnParent True Center True True 1 False 2 6 6 ButtonPressMask 0 True False False False True TextAndIcon stock:gtk-save Menu Save to Project True End 1 True False False True TextAndIcon stock:gtk-save Menu Save to File True End 2 True False False 0 True False False ButtonPressMask 1 False 0 False 6 5 1 End False True TextOnly True 0 False False False 6 <b>You haven't tagged any play yet.</b> You can add new tags using the text entry and clicking "Add Tag" True Center 0 False False True In None 3 3 6 6 1 True 6 True True 0 True True TextAndIcon stock:gtk-add Dialog Add Tag True 1 True False False 2 True False False Tag play stock:longomatch Menu CenterOnParent 1 False 2 ButtonPressMask 0 True False False 6 5 1 End True True True StockItem gtk-ok -5 gtk-ok False False False 6 In True True 0 True 6 1 False False False 6 True 0 False True TextAndIcon stock:gtk-add Menu Add Filter True 1 True False False 2 True False False 6 True 0 False 3 True False False New Project stock:longomatch Menu CenterOnParent True Center True True 2 False 2 6 6 True New project using a video file True True True True False project 0 False resource:video.png 1 False False False 0 True False False 6 True Live project using a capture device True True True project 0 True resource:camera-video.png 1 True False False 1 True False False 6 True Live project using a fake capture device True True True project 0 True resource:camera-video.png 1 False False False 2 True False False 0 True False False 6 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False stock:longomatch Menu CenterOnParent True 1 False 2 6 6 stock:stock_dialog-question Dialog 0 True False False A capture project is actually running. You can continue with the current capture, cancel it or save your project. <b>Warning: If you cancel the current project all your changes will be lost.</b> True Center 1 False 0 False 6 True TextAndIcon stock:gtk-undo Button Return True 0 False False True TextAndIcon stock:gtk-cancel Button Cancel capture True 1 False False True TextAndIcon stock:gtk-save Button Stop capture and save project True 2 False False 1 True False False 0 False False False 6 5 1 End True True True StockItem gtk-cancel -6 gtk-cancel False False stock:longomatch Menu CenterOnParent True False False Center True True 6 0 False 1 True False False longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.DrawingToolBox.cs0000644000175000017500000003423111601631101024224 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class DrawingToolBox { private global::Gtk.VBox vbox2; private global::Gtk.Label toolslabel; private global::Gtk.Table toolstable; private global::Gtk.RadioButton circlebutton; private global::Gtk.Image image79; private global::Gtk.RadioButton crossbutton; private global::Gtk.Image image83; private global::Gtk.RadioButton eraserbutton; private global::Gtk.Image image81; private global::Gtk.RadioButton linebutton; private global::Gtk.Image image82; private global::Gtk.RadioButton penbutton; private global::Gtk.Image image80; private global::Gtk.RadioButton rectanglebutton; private global::Gtk.Image image84; private global::Gtk.Label colorslabel; private global::Gtk.ColorButton colorbutton; private global::Gtk.Label label3; private global::Gtk.ComboBox combobox1; private global::Gtk.Label transparencylabel; private global::Gtk.SpinButton spinbutton1; private global::Gtk.Button clearbutton; private global::Gtk.Label label1; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.DrawingToolBox global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.DrawingToolBox"; // Container child LongoMatch.Gui.Component.DrawingToolBox.Gtk.Container+ContainerChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.toolslabel = new global::Gtk.Label (); this.toolslabel.Name = "toolslabel"; this.toolslabel.Xalign = 0f; this.toolslabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Tools"); this.toolslabel.UseMarkup = true; this.vbox2.Add (this.toolslabel); global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.toolslabel])); w1.Position = 0; w1.Expand = false; w1.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.toolstable = new global::Gtk.Table (((uint)(3)), ((uint)(2)), false); this.toolstable.Name = "toolstable"; this.toolstable.RowSpacing = ((uint)(6)); this.toolstable.ColumnSpacing = ((uint)(6)); // Container child toolstable.Gtk.Table+TableChild this.circlebutton = new global::Gtk.RadioButton (""); this.circlebutton.CanFocus = true; this.circlebutton.Name = "circlebutton"; this.circlebutton.DrawIndicator = false; this.circlebutton.UseUnderline = true; this.circlebutton.Group = new global::GLib.SList (global::System.IntPtr.Zero); this.circlebutton.Remove (this.circlebutton.Child); // Container child circlebutton.Gtk.Container+ContainerChild this.image79 = new global::Gtk.Image (); this.image79.TooltipMarkup = "Circle tool"; this.image79.Name = "image79"; this.image79.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("stock_draw-circle-unfilled.png"); this.circlebutton.Add (this.image79); this.toolstable.Add (this.circlebutton); global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.toolstable[this.circlebutton])); w3.TopAttach = ((uint)(2)); w3.BottomAttach = ((uint)(3)); w3.LeftAttach = ((uint)(1)); w3.RightAttach = ((uint)(2)); w3.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child toolstable.Gtk.Table+TableChild this.crossbutton = new global::Gtk.RadioButton (""); this.crossbutton.CanFocus = true; this.crossbutton.Name = "crossbutton"; this.crossbutton.DrawIndicator = false; this.crossbutton.UseUnderline = true; this.crossbutton.Group = this.circlebutton.Group; this.crossbutton.Remove (this.crossbutton.Child); // Container child crossbutton.Gtk.Container+ContainerChild this.image83 = new global::Gtk.Image (); this.image83.TooltipMarkup = "Cross tool"; this.image83.Name = "image83"; this.image83.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("stock_draw-line-45.png"); this.crossbutton.Add (this.image83); this.toolstable.Add (this.crossbutton); global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.toolstable[this.crossbutton])); w5.TopAttach = ((uint)(1)); w5.BottomAttach = ((uint)(2)); w5.LeftAttach = ((uint)(1)); w5.RightAttach = ((uint)(2)); w5.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child toolstable.Gtk.Table+TableChild this.eraserbutton = new global::Gtk.RadioButton (""); this.eraserbutton.TooltipMarkup = "Rubber tool"; this.eraserbutton.CanFocus = true; this.eraserbutton.Name = "eraserbutton"; this.eraserbutton.DrawIndicator = false; this.eraserbutton.UseUnderline = true; this.eraserbutton.Group = this.circlebutton.Group; this.eraserbutton.Remove (this.eraserbutton.Child); // Container child eraserbutton.Gtk.Container+ContainerChild this.image81 = new global::Gtk.Image (); this.image81.Name = "image81"; this.image81.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-delete", global::Gtk.IconSize.Menu); this.eraserbutton.Add (this.image81); this.toolstable.Add (this.eraserbutton); global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.toolstable[this.eraserbutton])); w7.LeftAttach = ((uint)(1)); w7.RightAttach = ((uint)(2)); w7.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child toolstable.Gtk.Table+TableChild this.linebutton = new global::Gtk.RadioButton (""); this.linebutton.CanFocus = true; this.linebutton.Name = "linebutton"; this.linebutton.DrawIndicator = false; this.linebutton.UseUnderline = true; this.linebutton.Group = this.circlebutton.Group; this.linebutton.Remove (this.linebutton.Child); // Container child linebutton.Gtk.Container+ContainerChild this.image82 = new global::Gtk.Image (); this.image82.TooltipMarkup = "Arrow line tool"; this.image82.Name = "image82"; this.image82.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("stock_draw-line-ends-with-arrow.png"); this.linebutton.Add (this.image82); this.toolstable.Add (this.linebutton); global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.toolstable[this.linebutton])); w9.TopAttach = ((uint)(1)); w9.BottomAttach = ((uint)(2)); w9.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child toolstable.Gtk.Table+TableChild this.penbutton = new global::Gtk.RadioButton (""); this.penbutton.TooltipMarkup = "Pencil tool"; this.penbutton.CanFocus = true; this.penbutton.Name = "penbutton"; this.penbutton.DrawIndicator = false; this.penbutton.UseUnderline = true; this.penbutton.Group = this.circlebutton.Group; this.penbutton.Remove (this.penbutton.Child); // Container child penbutton.Gtk.Container+ContainerChild this.image80 = new global::Gtk.Image (); this.image80.TooltipMarkup = "Pencil"; this.image80.Name = "image80"; this.image80.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("stock_draw-freeform-line.png"); this.penbutton.Add (this.image80); this.toolstable.Add (this.penbutton); global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.toolstable[this.penbutton])); w11.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child toolstable.Gtk.Table+TableChild this.rectanglebutton = new global::Gtk.RadioButton (""); this.rectanglebutton.CanFocus = true; this.rectanglebutton.Name = "rectanglebutton"; this.rectanglebutton.DrawIndicator = false; this.rectanglebutton.UseUnderline = true; this.rectanglebutton.Group = this.circlebutton.Group; this.rectanglebutton.Remove (this.rectanglebutton.Child); // Container child rectanglebutton.Gtk.Container+ContainerChild this.image84 = new global::Gtk.Image (); this.image84.TooltipMarkup = "Rectangle tool"; this.image84.Name = "image84"; this.image84.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("stock_draw-rectangle-unfilled.png"); this.rectanglebutton.Add (this.image84); this.toolstable.Add (this.rectanglebutton); global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.toolstable[this.rectanglebutton])); w13.TopAttach = ((uint)(2)); w13.BottomAttach = ((uint)(3)); w13.YOptions = ((global::Gtk.AttachOptions)(4)); this.vbox2.Add (this.toolstable); global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.toolstable])); w14.Position = 1; w14.Expand = false; // Container child vbox2.Gtk.Box+BoxChild this.colorslabel = new global::Gtk.Label (); this.colorslabel.Name = "colorslabel"; this.colorslabel.Xalign = 0f; this.colorslabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Color"); this.colorslabel.UseMarkup = true; this.vbox2.Add (this.colorslabel); global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.colorslabel])); w15.Position = 2; w15.Expand = false; w15.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.colorbutton = new global::Gtk.ColorButton (); this.colorbutton.CanFocus = true; this.colorbutton.Events = ((global::Gdk.EventMask)(784)); this.colorbutton.Name = "colorbutton"; this.vbox2.Add (this.colorbutton); global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.colorbutton])); w16.Position = 3; w16.Expand = false; w16.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.label3 = new global::Gtk.Label (); this.label3.Name = "label3"; this.label3.Xalign = 0f; this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("Width"); this.label3.UseMarkup = true; this.vbox2.Add (this.label3); global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.label3])); w17.Position = 4; w17.Expand = false; w17.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.combobox1 = global::Gtk.ComboBox.NewText (); this.combobox1.AppendText (global::Mono.Unix.Catalog.GetString ("2 px")); this.combobox1.AppendText (global::Mono.Unix.Catalog.GetString ("4 px")); this.combobox1.AppendText (global::Mono.Unix.Catalog.GetString ("6 px")); this.combobox1.AppendText (global::Mono.Unix.Catalog.GetString ("8 px")); this.combobox1.AppendText (global::Mono.Unix.Catalog.GetString ("10 px")); this.combobox1.TooltipMarkup = "Change the line's width"; this.combobox1.Name = "combobox1"; this.combobox1.Active = 2; this.vbox2.Add (this.combobox1); global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.combobox1])); w18.Position = 5; w18.Expand = false; w18.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.transparencylabel = new global::Gtk.Label (); this.transparencylabel.Name = "transparencylabel"; this.transparencylabel.Xalign = 0f; this.transparencylabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Transparency"); this.transparencylabel.UseMarkup = true; this.vbox2.Add (this.transparencylabel); global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.transparencylabel])); w19.Position = 6; w19.Expand = false; w19.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.spinbutton1 = new global::Gtk.SpinButton (0, 100, 1); this.spinbutton1.TooltipMarkup = "Change the drawings' transparency"; this.spinbutton1.CanFocus = true; this.spinbutton1.Name = "spinbutton1"; this.spinbutton1.Adjustment.PageIncrement = 10; this.spinbutton1.ClimbRate = 1; this.spinbutton1.Numeric = true; this.spinbutton1.Value = 80; this.vbox2.Add (this.spinbutton1); global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.spinbutton1])); w20.Position = 7; w20.Expand = false; w20.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.clearbutton = new global::Gtk.Button (); this.clearbutton.TooltipMarkup = "Clear all drawings"; this.clearbutton.CanFocus = true; this.clearbutton.Name = "clearbutton"; this.clearbutton.UseUnderline = true; // Container child clearbutton.Gtk.Container+ContainerChild global::Gtk.Alignment w21 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f); // Container child GtkAlignment.Gtk.Container+ContainerChild global::Gtk.HBox w22 = new global::Gtk.HBox (); w22.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Image w23 = new global::Gtk.Image (); w23.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-clear", global::Gtk.IconSize.LargeToolbar); w22.Add (w23); // Container child GtkHBox.Gtk.Container+ContainerChild global::Gtk.Label w25 = new global::Gtk.Label (); w22.Add (w25); w21.Add (w22); this.clearbutton.Add (w21); this.vbox2.Add (this.clearbutton); global::Gtk.Box.BoxChild w29 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.clearbutton])); w29.Position = 8; w29.Expand = false; w29.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Draw-> D\nClear-> C\nHide-> S\nShow-> S\n"); this.label1.UseMarkup = true; this.vbox2.Add (this.label1); global::Gtk.Box.BoxChild w30 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.label1])); w30.Position = 9; w30.Expand = false; w30.Fill = false; this.Add (this.vbox2); if ((this.Child != null)) { this.Child.ShowAll (); } this.Hide (); this.rectanglebutton.Toggled += new global::System.EventHandler (this.OnRectanglebuttonToggled); this.penbutton.Toggled += new global::System.EventHandler (this.OnPenbuttonToggled); this.linebutton.Toggled += new global::System.EventHandler (this.OnLinebuttonToggled); this.eraserbutton.Toggled += new global::System.EventHandler (this.OnEraserbuttonToggled); this.crossbutton.Toggled += new global::System.EventHandler (this.OnCrossbuttonToggled); this.circlebutton.Toggled += new global::System.EventHandler (this.OnCirclebuttonToggled); this.colorbutton.ColorSet += new global::System.EventHandler (this.OnColorbuttonColorSet); this.combobox1.Changed += new global::System.EventHandler (this.OnCombobox1Changed); this.spinbutton1.Changed += new global::System.EventHandler (this.OnSpinbutton1Changed); this.clearbutton.Clicked += new global::System.EventHandler (this.OnClearbuttonClicked); } } } longomatch-0.16.8/LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs0000644000175000017500000000725511601631101024545 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace LongoMatch.Gui.Component { public partial class TimeAdjustWidget { private global::Gtk.Table table1; private global::Gtk.Label label1; private global::Gtk.Label label3; private global::Gtk.SpinButton spinbutton1; private global::Gtk.SpinButton spinbutton2; private global::Gtk.Label startlabel; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget LongoMatch.Gui.Component.TimeAdjustWidget global::Stetic.BinContainer.Attach (this); this.Name = "LongoMatch.Gui.Component.TimeAdjustWidget"; // Container child LongoMatch.Gui.Component.TimeAdjustWidget.Gtk.Container+ContainerChild this.table1 = new global::Gtk.Table (((uint)(1)), ((uint)(5)), false); this.table1.Name = "table1"; this.table1.RowSpacing = ((uint)(6)); this.table1.ColumnSpacing = ((uint)(6)); // Container child table1.Gtk.Table+TableChild this.label1 = new global::Gtk.Label (); this.label1.Name = "label1"; this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Lead time:"); this.table1.Add (this.label1); global::Gtk.Table.TableChild w1 = ((global::Gtk.Table.TableChild)(this.table1[this.label1])); w1.XOptions = ((global::Gtk.AttachOptions)(0)); w1.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.label3 = new global::Gtk.Label (); this.label3.Name = "label3"; this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("Lag time:"); this.table1.Add (this.label3); global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table1[this.label3])); w2.LeftAttach = ((uint)(3)); w2.RightAttach = ((uint)(4)); w2.XOptions = ((global::Gtk.AttachOptions)(4)); w2.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.spinbutton1 = new global::Gtk.SpinButton (0, 100, 1); this.spinbutton1.CanFocus = true; this.spinbutton1.Name = "spinbutton1"; this.spinbutton1.Adjustment.PageIncrement = 1; this.spinbutton1.ClimbRate = 1; this.spinbutton1.Numeric = true; this.table1.Add (this.spinbutton1); global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1[this.spinbutton1])); w3.LeftAttach = ((uint)(2)); w3.RightAttach = ((uint)(3)); w3.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.spinbutton2 = new global::Gtk.SpinButton (0, 100, 1); this.spinbutton2.CanFocus = true; this.spinbutton2.Name = "spinbutton2"; this.spinbutton2.Adjustment.PageIncrement = 1; this.spinbutton2.ClimbRate = 1; this.spinbutton2.Numeric = true; this.table1.Add (this.spinbutton2); global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table1[this.spinbutton2])); w4.LeftAttach = ((uint)(4)); w4.RightAttach = ((uint)(5)); w4.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table1.Gtk.Table+TableChild this.startlabel = new global::Gtk.Label (); this.startlabel.Name = "startlabel"; this.table1.Add (this.startlabel); global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1[this.startlabel])); w5.LeftAttach = ((uint)(1)); w5.RightAttach = ((uint)(2)); w5.XOptions = ((global::Gtk.AttachOptions)(4)); w5.YOptions = ((global::Gtk.AttachOptions)(4)); this.Add (this.table1); if ((this.Child != null)) { this.Child.ShowAll (); } this.Show (); this.spinbutton2.ValueChanged += new global::System.EventHandler (this.OnSpinbutton2ValueChanged); this.spinbutton1.ValueChanged += new global::System.EventHandler (this.OnSpinbutton1ValueChanged); } } } longomatch-0.16.8/LongoMatch/gtk-gui/generated.cs0000644000175000017500000000654511601631101016551 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace Stetic { internal class Gui { private static bool initialized; static internal void Initialize (Gtk.Widget iconRenderer) { if ((Stetic.Gui.initialized == false)) { Stetic.Gui.initialized = true; global::Gtk.IconFactory w1 = new global::Gtk.IconFactory (); global::Gtk.IconSet w2 = new global::Gtk.IconSet (global::Gdk.Pixbuf.LoadFromResource ("longomatch.png")); w1.Add ("longomatch", w2); w1.AddDefault (); } } } internal class BinContainer { private Gtk.Widget child; private Gtk.UIManager uimanager; public static BinContainer Attach (Gtk.Bin bin) { BinContainer bc = new BinContainer (); bin.SizeRequested += new Gtk.SizeRequestedHandler (bc.OnSizeRequested); bin.SizeAllocated += new Gtk.SizeAllocatedHandler (bc.OnSizeAllocated); bin.Added += new Gtk.AddedHandler (bc.OnAdded); return bc; } private void OnSizeRequested (object sender, Gtk.SizeRequestedArgs args) { if ((this.child != null)) { args.Requisition = this.child.SizeRequest (); } } private void OnSizeAllocated (object sender, Gtk.SizeAllocatedArgs args) { if ((this.child != null)) { this.child.Allocation = args.Allocation; } } private void OnAdded (object sender, Gtk.AddedArgs args) { this.child = args.Widget; } public void SetUiManager (Gtk.UIManager uim) { this.uimanager = uim; this.child.Realized += new System.EventHandler (this.OnRealized); } private void OnRealized (object sender, System.EventArgs args) { if ((this.uimanager != null)) { Gtk.Widget w; w = this.child.Toplevel; if (((w != null) && typeof(Gtk.Window).IsInstanceOfType (w))) { ((Gtk.Window)(w)).AddAccelGroup (this.uimanager.AccelGroup); this.uimanager = null; } } } } internal class IconLoader { public static Gdk.Pixbuf LoadIcon (Gtk.Widget widget, string name, Gtk.IconSize size) { Gdk.Pixbuf res = widget.RenderIcon (name, size, null); if ((res != null)) { return res; } else { int sz; int sy; global::Gtk.Icon.SizeLookup (size, out sz, out sy); try { return Gtk.IconTheme.Default.LoadIcon (name, sz, 0); } catch (System.Exception) { if ((name != "gtk-missing-image")) { return Stetic.IconLoader.LoadIcon (widget, "gtk-missing-image", size); } else { Gdk.Pixmap pmap = new Gdk.Pixmap (Gdk.Screen.Default.RootWindow, sz, sz); Gdk.GC gc = new Gdk.GC (pmap); gc.RgbFgColor = new Gdk.Color (255, 255, 255); pmap.DrawRectangle (gc, true, 0, 0, sz, sz); gc.RgbFgColor = new Gdk.Color (0, 0, 0); pmap.DrawRectangle (gc, false, 0, 0, (sz - 1), (sz - 1)); gc.SetLineAttributes (3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round); gc.RgbFgColor = new Gdk.Color (255, 0, 0); pmap.DrawLine (gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), ((sz - 1) - (sz / 4))); pmap.DrawLine (gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1) - (sz / 4))); return Gdk.Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0, 0, sz, sz); } } } } } internal class ActionGroups { public static Gtk.ActionGroup GetActionGroup (System.Type type) { return Stetic.ActionGroups.GetActionGroup (type.FullName); } public static Gtk.ActionGroup GetActionGroup (string name) { return null; } } } longomatch-0.16.8/LongoMatch/AssemblyInfo.cs.in0000644000175000017500000000363011601631101016234 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System.Reflection; using System.Runtime.CompilerServices; // Information about this assembly is defined by the following // attributes. // // change them to the information which is associated with the assembly // you compile. [assembly: AssemblyTitle("LongoMatch")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("Andoni Morales Alastruey")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // The assembly version has following format : // // Major.Minor.Build.Revision // // You can specify all values by your own or you can build default build and revision // numbers with the '*' character (the default): [assembly: AssemblyVersion("@PACKAGE_VERSION@")] // The following attributes specify the key for the sign of your assembly. See the // .NET Framework documentation for more information about signing. // This is not required, if you don't want signing let these attributes like they're. [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile("")] longomatch-0.16.8/LongoMatch/Compat/0002755000175000017500000000000011601631302014213 500000000000000longomatch-0.16.8/LongoMatch/Compat/0.0/0002755000175000017500000000000011601631302014510 500000000000000longomatch-0.16.8/LongoMatch/Compat/0.0/Playlist/0002755000175000017500000000000011601631302016311 500000000000000longomatch-0.16.8/LongoMatch/Compat/0.0/Playlist/PlayList.cs0000644000175000017500000001007211601631101020314 00000000000000// PlayList.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using System.Collections; using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.Xml.Serialization; using Gtk; using LongoMatch.Compat.v00.TimeNodes; namespace LongoMatch.Compat.v00.PlayList { public class PlayList: IPlayList { private List list; private static XmlSerializer ser; private string filename = null; private int indexSelection = 0; public PlayList() { ser = new XmlSerializer(typeof(List),new Type[] {typeof(PlayListTimeNode)}); list = new List(); } public PlayList(string file) { ser = new XmlSerializer(typeof(List),new Type[] {typeof(PlayListTimeNode)}); //For new Play List if (!System.IO.File.Exists(file)) { list = new List(); filename = file; } else this.Load(file); } public int Count { get { return this.list.Count; } } public void Load(string file) { using(FileStream strm = new FileStream(file, FileMode.Open, FileAccess.Read)) { list = ser.Deserialize(strm) as List; } foreach (PlayListTimeNode plNode in list) { plNode.Valid = System.IO.File.Exists(plNode.FileName); } this.filename = file; } public void Save() { this.Save(this.filename); } public void Save(string file) { file = Path.ChangeExtension(file,"lgm"); using(FileStream strm = new FileStream(file, FileMode.Create, FileAccess.Write)) { ser.Serialize(strm, list); } } public bool isLoaded() { return this.filename != null; } public int GetCurrentIndex() { return this.indexSelection; } public PlayListTimeNode Next() { if (this.HasNext()) this.indexSelection++; return list[indexSelection]; } public PlayListTimeNode Prev() { if (this.HasPrev()) this.indexSelection--; return list[indexSelection]; } public void Add(PlayListTimeNode plNode) { this.list.Add(plNode); } public void Remove(PlayListTimeNode plNode) { this.list.Remove(plNode); if (this.GetCurrentIndex() >= list.Count) this.indexSelection --; } public PlayListTimeNode Select(int index) { this.indexSelection = index; return this.list[index]; } public bool HasNext() { return this.indexSelection < list.Count-1; } public bool HasPrev() { return ! this.indexSelection.Equals(0); } public string File { get { return this.filename; } } public ListStore GetModel() { Gtk.ListStore listStore = new ListStore(typeof(PlayListTimeNode)); foreach (PlayListTimeNode plNode in list) { listStore.AppendValues(plNode); } return listStore; } public void SetModel(ListStore listStore) { TreeIter iter ; listStore.GetIterFirst(out iter); this.list.Clear(); while (listStore.IterIsValid(iter)) { this.list.Add(listStore.GetValue(iter, 0) as PlayListTimeNode); listStore.IterNext(ref iter); } } public IEnumerator GetEnumerator() { return this.list.GetEnumerator(); } public IPlayList Copy() { return (IPlayList)(this.MemberwiseClone()); } } } longomatch-0.16.8/LongoMatch/Compat/0.0/Playlist/IPlayList.cs0000644000175000017500000000254611601631101020434 00000000000000// IPlayList.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections; using Gtk; using LongoMatch.Compat.v00.TimeNodes; namespace LongoMatch.Compat.v00.PlayList { public interface IPlayList:IEnumerable { int Count { get; } void Load(string path); void Save(string path); PlayListTimeNode Next(); PlayListTimeNode Prev(); int GetCurrentIndex(); void Add(PlayListTimeNode plNode); void Remove(PlayListTimeNode plNode); PlayListTimeNode Select(int index); bool HasNext(); bool HasPrev(); ListStore GetModel(); IPlayList Copy(); } } longomatch-0.16.8/LongoMatch/Compat/0.0/DB/0002755000175000017500000000000011601631302014775 500000000000000longomatch-0.16.8/LongoMatch/Compat/0.0/DB/MediaFile.cs0000644000175000017500000000367011601631101017064 00000000000000// MediaFile.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using LongoMatch.Compat.v00.TimeNodes; namespace LongoMatch.Compat.v00.DB { public class MediaFile { string filePath; Time length; ushort fps; bool hasAudio; bool hasVideo; public MediaFile(string filePath,Time length,ushort fps,bool hasAudio, bool hasVideo) { this.filePath = filePath; this.length = length; this.hasAudio = hasAudio; this.hasVideo = hasVideo; if (fps == 0) //For audio Files this.fps=25; else this.fps = fps; } public string FilePath { get { return this.filePath; } set { this.filePath = value; } } public Time Length { get { return this.length; } set { this.length = value; } } public bool HasVideo { get { return this.hasVideo; } set { this.hasVideo = value; } } public bool HasAudio { get { return this.hasAudio; } set { this.hasAudio = value; } } public ushort Fps { get { return this.fps; } set { if (value == 0) //For audio Files this.fps=25; else this.fps = value; } } public uint GetFrames() { return (uint)(Fps*Length.Seconds); } } } longomatch-0.16.8/LongoMatch/Compat/0.0/DB/DataBase.cs0000644000175000017500000000320711601631101016705 00000000000000// DB.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.IO; using System.Collections; using System.Collections.Generic; using Mono.Unix; using Db4objects.Db4o; using Db4objects.Db4o.Query; using Db4objects.Db4o.Config; using LongoMatch.Compat.v00.TimeNodes; namespace LongoMatch.Compat.v00.DB { public sealed class DataBase { // Database container private IObjectContainer db; // File path of the database private string file; public DataBase(string file) { this.file = file; } public ArrayList GetAllDB() { ArrayList allDB = new ArrayList(); db = Db4oFactory.OpenFile(file); try { IQuery query = db.Query(); query.Constrain(typeof(Project)); IObjectSet result = query.Execute(); while (result.HasNext()) allDB.Add(result.Next()); return allDB; } finally { db.Close(); } } } } longomatch-0.16.8/LongoMatch/Compat/0.0/DB/Sections.cs0000644000175000017500000000342511601631101017032 00000000000000// Sections.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gdk; using LongoMatch.Compat.v00.TimeNodes; namespace LongoMatch.Compat.v00.DB { public class Sections { private SectionsTimeNode[] timeNodesArray; private Color[] colorsArray; public Sections(int sections) { this.timeNodesArray = new SectionsTimeNode[sections]; this.colorsArray = new Color[sections]; for (int i=0;i<20;i++) { colorsArray[i] = new Color(254,0,0); timeNodesArray[i] = null; } } public Color[] Colors { set { this.colorsArray = value; } get { return this.colorsArray; } } public void SetTimeNodes(string[] names, Time[] startTimes, Time[] stopTimes,bool[] visible) { for (int i=0;i<20;i++) timeNodesArray[i] = new SectionsTimeNode(names[i],startTimes[i],stopTimes[i],visible[i]); } public SectionsTimeNode[] SectionsTimeNodes { set { this.timeNodesArray = value; } get { return timeNodesArray; } } public Color GetColor(int section) { return this.colorsArray[section]; } } } longomatch-0.16.8/LongoMatch/Compat/0.0/DB/Project.cs0000644000175000017500000000677211601631101016661 00000000000000// Project.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.IO; using System.Collections; using System.Collections.Generic; using Gtk; using Gdk; using LongoMatch.Compat.v00.TimeNodes; namespace LongoMatch.Compat.v00.DB { [Serializable] public class Project : IComparable { private MediaFile file; private string title; private string localName; private string visitorName; private int localGoals; private int visitorGoals; private DateTime matchDate; private Sections sections; //This field is not used but must be kept for DataBase compatibility private List[] dataSectionArray; public Project(MediaFile file, String localName, String visitorName, int localGoals, int visitorGoals, DateTime matchDate, Sections sections) { List tnArray; this.file = file; this.localName = localName; this.visitorName = visitorName; this.localGoals = localGoals; this.visitorGoals = visitorGoals; this.matchDate = matchDate; this.sections = sections; dataSectionArray = new List[20]; for (int i=0;i<20;i++) { tnArray = new List(); dataSectionArray[i]=tnArray; } this.Title = System.IO.Path.GetFileNameWithoutExtension(this.file.FilePath); } public Sections Sections { get { return this.sections; } set { this.sections = value; } } public List[] GetDataArray() { return dataSectionArray; } /*public String[] GetRoots() { return roots; }*/ public MediaFile File { get { return file; } set { file=value; } } public String Title { get { return title; } set { title=value; } } public String LocalName { get { return localName; } set { localName=value; } } public String VisitorName { get { return visitorName; } set { visitorName=value; } } public int LocalGoals { get { return localGoals; } set { localGoals=value; } } public int VisitorGoals { get { return visitorGoals; } set { visitorGoals=value; } } public DateTime MatchDate { get { return matchDate; } set { matchDate=value; } } public bool Equals(Project project) { return this.File.FilePath.Equals(project.File.FilePath); } public int CompareTo(object obj) { if (obj is Project) { Project project = (Project) obj; return this.File.FilePath.CompareTo(project.File.FilePath); } else throw new ArgumentException("object is not a Project and cannot be compared"); } } } longomatch-0.16.8/LongoMatch/Compat/0.0/TemplatesMigrator.cs0000644000175000017500000000611511601631101020420 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.IO; using System.Threading; using Gtk; using LongoMatch.DB; using LongoMatch.TimeNodes; using LongoMatch.IO; namespace LongoMatch.Compat { public class TemplatesMigrator { private string[] oldTPFiles; public event ConversionProgressHandler ConversionProgressEvent; public const string DONE="Templates imported successfully"; public const string ERROR="Error importing templates"; private Thread thread; public TemplatesMigrator(string[] oldTPFiles) { this.oldTPFiles= oldTPFiles; } public void Start() { thread = new Thread(new ThreadStart(StartConversion)); thread.Start(); } public void Cancel() { if (thread != null && thread.IsAlive) thread.Abort(); } public void StartConversion() { foreach (string templateFile in oldTPFiles) { v00.DB.Sections oldTemplate=null; Sections newTemplate= null; string newFileName; SendEvent(String.Format("Converting template: {0}",Path.GetFileName(templateFile))); try { v00.IO.SectionsReader reader = new v00.IO.SectionsReader(templateFile); oldTemplate = reader.GetSections(); newTemplate = new Sections(); } catch { oldTemplate= null; SendEvent("This file is not a valid template file"); } if (oldTemplate != null) { int i=0; foreach (v00.TimeNodes.SectionsTimeNode sectionTN in oldTemplate.SectionsTimeNodes) { //SendEvent(String.Format("Converting Section #{0}: {1}",i+1,sectionTN.Name)); SectionsTimeNode newSectionTN = new SectionsTimeNode(sectionTN.Name, new Time(sectionTN.Start.MSeconds), new Time(sectionTN.Stop.MSeconds), new HotKey(), oldTemplate.GetColor(i)); newTemplate.AddSection(newSectionTN); i++; } } newFileName = Path.Combine(MainClass.TemplatesDir(),Path.GetFileName(templateFile)); File.Copy(templateFile ,templateFile+".old",true); File.Delete(templateFile); SectionsWriter.UpdateTemplate(newFileName,newTemplate); SendEvent(String.Format("Template {0} converted successfully!",Path.GetFileName(templateFile))); } SendEvent(DONE); } public void SendEvent(string message) { if (ConversionProgressEvent != null) Application.Invoke(delegate {ConversionProgressEvent(message);}); } } } longomatch-0.16.8/LongoMatch/Compat/0.0/Time/0002755000175000017500000000000011601631302015406 500000000000000longomatch-0.16.8/LongoMatch/Compat/0.0/Time/MediaTimeNode.cs0000644000175000017500000000664011601631101020322 00000000000000// MediaTimeNode.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gdk; namespace LongoMatch.Compat.v00.TimeNodes { public enum Team { NONE = 0, LOCAL = 1, VISITOR = 2, } /* MediaTimeNode is the main object of the database for {@LongoMatch}. It' s used to store the name of each reference point we want to remind with its start time and its stop time, and the data type it belowns to. When we mark a moment in the video, this object contains all the information we need to reproduce the video sequence again. */ [Serializable] public class MediaTimeNode : PixbufTimeNode { //Stores the Data Section it belowns to, to allow its removal private int dataSection; private Team team; private uint fps; private bool selected; private uint startFrame; private uint stopFrame; private string notes; public MediaTimeNode(String name, Time start, Time stop, uint fps, int dataSection,string miniaturePath):base(name,start,stop,miniaturePath) { this.dataSection = dataSection; this.team = Team.NONE; this.fps = fps; if (stop <= start) this.Stop = start+500; else this.Stop = stop; this.startFrame = (uint) this.Start.MSeconds*fps/1000; this.stopFrame = (uint) this.Stop.MSeconds*fps/1000; } public MediaTimeNode(String name, Time start, Time stop,string notes, uint fps, int dataSection,string miniaturePath):base(name,start,stop,miniaturePath) { this.notes = notes; this.dataSection = dataSection; this.team = Team.NONE; this.fps = fps; this.startFrame = (uint) this.Start.MSeconds*fps/1000; this.stopFrame = (uint) this.Stop.MSeconds*fps/1000; } public string Notes { get { return notes; } set { notes = value; } } public int DataSection { get { return dataSection; } } public Team Team { get { return this.team; } set { this.team = value; } } public uint Fps { get { return this.fps; } set { this.fps = value; } } public uint CentralFrame { get { return this.StopFrame-((this.TotalFrames)/2); } } public uint TotalFrames { get { return this.StopFrame-this.StartFrame; } } public uint StartFrame { get { return startFrame; } set { this.startFrame = value; this.Start = new Time((int)(1000*value/fps)); } } public uint StopFrame { get { return stopFrame; } set { this.stopFrame = value; this.Stop = new Time((int)(1000*value/fps)); } } public bool HasFrame(int frame) { return (frame>=startFrame && frame 0) return String.Format("{0}:{1}:{2}", _h, _m.ToString("d2"), _s.ToString("d2")); return String.Format("{0}:{1}", _m, _s.ToString("d2")); } public string ToMSecondsString() { int _h, _m, _s,_ms,_time; _time = time / 1000; _h = (_time / 3600); _m = ((_time % 3600) / 60); _s = ((_time % 3600) % 60); _ms = ((time % 3600000)%60000)%1000; //if (_h > 0) return String.Format("{0}:{1}:{2},{3}", _h, _m.ToString("d2"), _s.ToString("d2"),_ms.ToString("d3")); //return String.Format ("{0}:{1},{2}", _m, _s.ToString ("d2"),_ms.ToString("d3")); } public override bool Equals(object o) { if (o is Time) { return ((Time)o).MSeconds == this.MSeconds; } else return false; } public override int GetHashCode () { return base.GetHashCode (); } public int CompareTo(object obj) { if (obj is Time) { Time otherTime = (Time) obj; return this.MSeconds.CompareTo(otherTime.MSeconds); } else { throw new ArgumentException("Object is not a Temperature"); } } public static bool operator < (Time t1,Time t2) { return t1.MSeconds < t2.MSeconds; } public static bool operator > (Time t1,Time t2) { return t1.MSeconds > t2.MSeconds; } public static bool operator <= (Time t1,Time t2) { return t1.MSeconds <= t2.MSeconds; } public static bool operator >= (Time t1,Time t2) { return t1.MSeconds >= t2.MSeconds; } public static Time operator +(Time t1,int t2) { return new Time(t1.MSeconds+t2); } public static Time operator +(Time t1,Time t2) { return new Time(t1.MSeconds+t2.MSeconds); } public static Time operator -(Time t1,Time t2) { return new Time(t1.MSeconds-t2.MSeconds); } public static Time operator -(Time t1,int t2) { return new Time(t1.MSeconds-t2); } } } longomatch-0.16.8/LongoMatch/Compat/0.0/Time/PixbufTimeNode.cs0000644000175000017500000000264411601631101020540 00000000000000// PixbufTimeNode.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gdk; namespace LongoMatch.Compat.v00.TimeNodes { public class PixbufTimeNode : TimeNode { private string miniaturePath; public PixbufTimeNode() { } public PixbufTimeNode(string name, Time start, Time stop, string miniaturePath): base(name,start,stop) { this.miniaturePath = miniaturePath; } public Pixbuf Miniature { get { if (System.IO.File.Exists(this.MiniaturePath)) { return new Pixbuf(this.MiniaturePath); } else return null; } } public String MiniaturePath { get { return this.miniaturePath; } set { this.miniaturePath = value; } } } } longomatch-0.16.8/LongoMatch/Compat/0.0/Time/SectionsTimeNode.cs0000644000175000017500000000221711601631101021066 00000000000000// SectionsTimeNode.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; namespace LongoMatch.Compat.v00.TimeNodes { public class SectionsTimeNode:TimeNode { bool visible; public SectionsTimeNode(String name,Time start, Time stop,bool visible):base(name,start,stop) { this.visible = visible; } public bool Visible { get { return this.visible; } set { this.visible = value; } } } } longomatch-0.16.8/LongoMatch/Compat/0.0/Time/TimeNode.cs0000644000175000017500000000474211601631101017363 00000000000000// TimeNode.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; namespace LongoMatch.Compat.v00.TimeNodes { [Serializable] public class TimeNode { //Stores the name of the refenrence point private string name; //Stores the start time private Time start; //Stores the stop time private Time stop; public TimeNode() { } public TimeNode(String name,Time start, Time stop) { this.name = name; this.start = start; this.stop = stop; /* if (stop <= start ) this.stop = start+500; else this.stop = stop; */ } /** * Returns a String object that represents the name of the reference point * * @returns name Name of the reference point */ public string Name { get { return this.name; } set { this.name=value; } } /** * Returns a Time object representing the start time of the video sequence * * @returns Start time */ public Time Start { get { return this.start; } set { if (this.Stop != null && value >= this.Stop) this.start = stop-500; else this.start=value; } } /** * Returns a Time object representing the stop time of the video sequence * * @returns Stop time */ public Time Stop { get { return stop; } set { if (this.Start != null && value<=this.Start) this.stop =start+500; else this.stop = value; } } public Time Duration { get { return Stop-Start; } } /** * Returns a String object that represents the name of the reference point * * @returns name Name of the reference point */ public string toString() { return name; } public void changeStartStop(Time start, Time stop) { this.start = start; this.stop = stop; } } } longomatch-0.16.8/LongoMatch/Compat/0.0/PlayListMigrator.cs0000644000175000017500000000655311601631101020231 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.Threading; using LongoMatch.Playlist; using LongoMatch.TimeNodes; using LongoMatch.Video.Utils; using Gtk; namespace LongoMatch.Compat { public class PlayListMigrator { private string[] oldPLFiles; public event ConversionProgressHandler ConversionProgressEvent; public const string DONE="Playlists files imported successfully"; public const string ERROR="Error importing playlists"; private Thread thread; public PlayListMigrator(string[] oldPLFiles) { this.oldPLFiles= oldPLFiles; } public void Start() { thread = new Thread(new ThreadStart(StartConversion)); thread.Start(); } public void Cancel() { if (thread != null && thread.IsAlive) thread.Abort(); } public void StartConversion() { foreach (string plFile in oldPLFiles) { v00.PlayList.PlayList oldPL = null; PlayList newPL; LongoMatch.Video.Utils.MediaFile file; SendEvent(String.Format("Converting playlist {0}",plFile)); try { oldPL = new LongoMatch.Compat.v00.PlayList.PlayList(plFile); } catch { SendEvent(String.Format("File {0} is not a valid playlist",plFile)); } if (System.IO.File.Exists(plFile+".old")) { SendEvent(String.Format("File {0} has already been converted",plFile)); oldPL = null; } if (oldPL != null) { System.IO.File.Copy(plFile,plFile+".old",true); System.IO.File.Delete(plFile); newPL= new PlayList(plFile); while (oldPL.HasNext()) { v00.TimeNodes.PlayListTimeNode oldPLNode = oldPL.Next(); PlayListTimeNode newPLNode = new PlayListTimeNode(); //SendEvent(String.Format("Add element {0} to playlist {1}",oldPLNode.Name,plFile)); newPLNode.Name = oldPLNode.Name; newPLNode.Start = new Time(oldPLNode.Start.MSeconds); newPLNode.Stop = new Time(oldPLNode.Stop.MSeconds); newPLNode.Rate = 1; newPLNode.Valid = true; try { file = LongoMatch.Video.Utils.MediaFile.GetMediaFile(oldPLNode.FileName); } catch { file = new LongoMatch.Video.Utils.MediaFile(); file.FilePath = oldPLNode.FileName; file.Fps = 25; file.HasAudio = false; file.HasVideo = true; file.Length = 0; file.VideoHeight = 576; file.VideoWidth = 720; file.AudioCodec = ""; file.VideoCodec = ""; } newPLNode.MediaFile = file; newPL.Add(newPLNode); } newPL.Save(); } } SendEvent(DONE); } public void SendEvent(string message) { if (ConversionProgressEvent != null) Application.Invoke(delegate {ConversionProgressEvent(message);}); } } } longomatch-0.16.8/LongoMatch/Compat/0.0/IO/0002755000175000017500000000000011601631302015017 500000000000000longomatch-0.16.8/LongoMatch/Compat/0.0/IO/SectionsReader.cs0000644000175000017500000000531311601631101020175 00000000000000// Config.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Configuration; using System.IO; using System.Xml; using LongoMatch.Compat.v00.DB; using Gdk; using LongoMatch.Compat.v00.TimeNodes; namespace LongoMatch.Compat.v00.IO { public class SectionsReader : LongoMatch.IO.XMLReader { public SectionsReader(string filePath) : base(filePath) { } private String[] GetNames() { String[] names = new String[20]; for (int i=0;i<20;i++) { names[i] = this.GetStringValue("configuration","Name"+(i+1)); } return names; } private Time[] GetStartTimes() { Time[] startTimes = new Time [20]; for (int i=0;i<20;i++) { startTimes[i] = new Time(GetIntValue("configuration","Start"+(i+1))*Time.SECONDS_TO_TIME); } return startTimes; } private Time[] GetStopTimes() { Time[] stopTimes = new Time [20]; for (int i=0;i<20;i++) { stopTimes[i] = new Time(GetIntValue("configuration","Stop"+(i+1))*Time.SECONDS_TO_TIME); } return stopTimes; } private bool[] GetVisibility() { bool[] visibility = new bool [20]; for (int i=0;i<20;i++) { visibility[i] = GetBoolValue("configuration","Visible"+(i+1)); } return visibility; } private Color[] GetColors() { Color[] colors = new Color[20]; ushort red,green,blue; for (int i=0;i<20;i++) { red = GetUShortValue("configuration","Red"+(i+1)); green = GetUShortValue("configuration","Green"+(i+1)); blue = GetUShortValue("configuration","Blue"+(i+1)); Color col = new Color(); col.Red = red; col.Blue = blue; col.Green = green; colors[i] = col; } return colors; } public Sections GetSections() { Sections sections = new Sections(20); this.GetStartTimes(); sections.SetTimeNodes(this.GetNames(),this.GetStartTimes(),this.GetStopTimes(),this.GetVisibility()); sections.Colors = this.GetColors(); return sections; } } } longomatch-0.16.8/LongoMatch/Compat/0.0/DatabaseMigrator.cs0000644000175000017500000001766611601631101020203 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.Collections; using System.Collections.Generic; using System.IO; using LongoMatch.DB; using LongoMatch.TimeNodes; using LongoMatch.Video.Utils; using LongoMatch.Common; using System.Threading; using Gtk; using Db4objects.Db4o; using Db4objects.Db4o.Config; using Db4objects.Db4o.Ext; namespace LongoMatch.Compat { public delegate void ConversionProgressHandler(string progress); public class DatabaseMigrator { public event ConversionProgressHandler ConversionProgressEvent; public const string DONE="Database migrated successfully"; public const string ERROR="Error importing the database"; private string oldDBFile; private PreviewMediaFile file; private Thread thread; public DatabaseMigrator(string oldDBFile) { this.oldDBFile = oldDBFile; } public void Start() { thread = new Thread(new ThreadStart(StartConversion)); thread.Start(); } public void Cancel() { if (thread != null && thread.IsAlive) thread.Abort(); } public void StartConversion() { DataBase newDB; v00.DB.DataBase backupDB; ArrayList backupProjects; ArrayList newProjects = new ArrayList(); string backupDBFile=oldDBFile+".bak1"; if (!File.Exists(oldDBFile)) { SendEvent(String.Format("File {0} doesn't exists",oldDBFile)); SendEvent(ERROR); return; } //Create a backup of the old DB in which objects are stored using //the old namespace scheme. If you try to use the old DB //directly, aliases messes-up all the DB. File.Copy(oldDBFile,backupDBFile,true); //Change the namespace of all classes to the new namespace ChangeDBNamespace(backupDBFile); newDB = MainClass.DB; backupDB = new LongoMatch.Compat.v00.DB.DataBase(backupDBFile); backupProjects = backupDB.GetAllDB(); SendEvent(String.Format("Importing Projects from the old database {0} (Version:0.0) to the current database (Version:{1})\n\n",oldDBFile, newDB.Version)); SendEvent(String.Format("Found {0} Projects",backupProjects.Count)); //SendEvent("Creating backup of the old database"); foreach (v00.DB.Project oldProject in backupProjects) { string localName, visitorName; int localGoals, visitorGoals; DateTime date; Sections sections; Project newProject; Thread openFileThread; localName = oldProject.LocalName; visitorName = oldProject.VisitorName; localGoals = oldProject.LocalGoals; visitorGoals = oldProject.VisitorGoals; date = oldProject.MatchDate; SendEvent(String.Format("Trying to convert project {0}...",oldProject.Title)); try { SendEvent(String.Format("[{0}]Getting properties of file {1}",oldProject.Title,oldProject.File.FilePath)); file = null; //If file doesn't exits the metadata reader send and async message but doesn't not //throw any Exception. We have to check if file exist and if not throw an //Excecptio to jump to 'catch' if (!File.Exists(oldProject.File.FilePath)) throw new Exception(); //Now we try to read the file until it's opened while (file==null) { openFileThread = new Thread(new ParameterizedThreadStart(OpenFile)); openFileThread.Start(oldProject.File.FilePath); openFileThread.Join(5000); if (openFileThread.IsAlive) openFileThread.Abort(); } } catch { SendEvent(String.Format("[{0}]Failed to open file {1} \n",oldProject.Title,oldProject.File.FilePath)); SendEvent(String.Format("[{0}]Cannot scan the file properties\n, using default values",oldProject.Title)); file = new PreviewMediaFile(); file.FilePath = oldProject.File.FilePath; file.Fps = oldProject.File.Fps; file.HasAudio = oldProject.File.HasAudio; file.HasVideo = oldProject.File.HasVideo; file.Length = oldProject.File.Length.MSeconds; file.VideoHeight = 576; file.VideoWidth = 720; file.AudioCodec = ""; file.VideoCodec = ""; } sections = new Sections(); int i=0; //SendEvent(String.Format("[{0}]Importing Sections...",oldProject.Title)); foreach (v00.TimeNodes.SectionsTimeNode oldSection in oldProject.Sections.SectionsTimeNodes) { SectionsTimeNode stn = new SectionsTimeNode(oldSection.Name, new Time(oldSection.Start.MSeconds), new Time(oldSection.Stop.MSeconds), new HotKey(), oldProject.Sections.GetColor(i) ); sections.AddSection(stn); //SendEvent(String.Format("[{0}]Adding Section #{1} with name {2}",oldProject.Title,i,oldSection.Name)); i++; } //SendEvent(String.Format("[{0}]Sections imported successfully",oldProject.Title)); newProject = new Project(file, localName, visitorName, "", "", localGoals, visitorGoals, date, sections, TeamTemplate.DefautlTemplate(15), TeamTemplate.DefautlTemplate(15)); i=0; //SendEvent(String.Format("[{0}]Importing all plays ...",oldProject.Title)); foreach (List list in oldProject.GetDataArray()) { foreach (v00.TimeNodes.MediaTimeNode oldTN in list) { MediaTimeNode tn; tn = newProject.AddTimeNode(oldTN.DataSection, new Time(oldTN.Start.MSeconds), new Time(oldTN.Stop.MSeconds), oldTN.Miniature); tn.Name = oldTN.Name; if (oldTN.Team == LongoMatch.Compat.v00.TimeNodes.Team.LOCAL) tn.Team =Team.LOCAL; else if (oldTN.Team == LongoMatch.Compat.v00.TimeNodes.Team.VISITOR) tn.Team=Team.VISITOR; else tn.Team=Team.NONE; tn.Fps = oldTN.Fps; tn.Notes = oldTN.Notes; //SendEvent(String.Format("[{0}]Added play {1}",oldProject.Title,tn.Name)); } i++; } SendEvent(String.Format("[{0}]Project converted successfully",oldProject.Title)); newProjects.Add(newProject); } foreach (Project project in newProjects) { try { newDB.AddProject(project); } catch {} } File.Copy(oldDBFile, oldDBFile+".bak",true); File.Delete(oldDBFile); File.Delete(backupDBFile); SendEvent(DONE); } private void ChangeDBNamespace(string DBFile) { using(IObjectContainer db = Db4oFactory.OpenFile(DBFile)) { var n = db.Ext().StoredClasses(); foreach (var x in n) { string newName; string oldName=x.GetName(); var c2 = db.Ext().StoredClass(oldName); if (c2 != null) { if (oldName.Contains("LongoMatch.DB")) { newName=oldName.Replace("LongoMatch.DB","LongoMatch.Compat.v00.DB"); c2.Rename(newName); } else if (oldName.Contains("LongoMatch.TimeNodes")) { newName=oldName.Replace("LongoMatch.TimeNodes","LongoMatch.Compat.v00.TimeNodes"); c2.Rename(newName); } } } } } private void OpenFile(object filePath) { file = PreviewMediaFile.GetMediaFile(filePath as string); } private void SendEvent(string message) { if (ConversionProgressEvent != null) Application.Invoke(delegate {ConversionProgressEvent(message);}); } } } longomatch-0.16.8/LongoMatch/Utils/0002755000175000017500000000000011601631302014070 500000000000000longomatch-0.16.8/LongoMatch/Utils/ProjectUtils.cs0000644000175000017500000002437211601631101016771 00000000000000// // Copyright (C) 2010 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.Collections.Generic; using Gtk; using Mono.Unix; using LongoMatch.Common; using LongoMatch.DB; using LongoMatch.Gui; using LongoMatch.Gui.Dialog; using LongoMatch.IO; using LongoMatch.TimeNodes; using LongoMatch.Video; using LongoMatch.Video.Capturer; using LongoMatch.Video.Utils; namespace LongoMatch.Utils { public class ProjectUtils { public static void SaveFakeLiveProject (Project project, Window window){ int response; MessageDialog md = new MessageDialog(window, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, Catalog.GetString("The project will be saved to a file. You can insert it later into the database using the "+ "\"Import project\" function once you copied the video file to your computer")); response = md.Run(); md.Destroy(); if (response == (int)ResponseType.Cancel) return; FileChooserDialog fChooser = new FileChooserDialog(Catalog.GetString("Save Project"), window, FileChooserAction.Save, "gtk-cancel",ResponseType.Cancel, "gtk-save",ResponseType.Accept); fChooser.SetCurrentFolder(MainClass.HomeDir()); FileFilter filter = new FileFilter(); filter.Name = Constants.PROJECT_NAME; filter.AddPattern("*.lpr"); fChooser.AddFilter(filter); if (fChooser.Run() == (int)ResponseType.Accept) { Project.Export(project, fChooser.Filename); MessagePopup.PopupMessage(window, MessageType.Info, Catalog.GetString("Project saved successfully.")); } fChooser.Destroy(); } public static void ImportProject(Window window){ Project project; bool isFake, exists; int res; string fileName; FileFilter filter; NewProjectDialog npd; FileChooserDialog fChooser; /* Show a file chooser dialog to select the file to import */ fChooser = new FileChooserDialog(Catalog.GetString("Import Project"), window, FileChooserAction.Open, "gtk-cancel",ResponseType.Cancel, "gtk-open",ResponseType.Accept); fChooser.SetCurrentFolder(MainClass.HomeDir()); filter = new FileFilter(); filter.Name = Constants.PROJECT_NAME; filter.AddPattern("*.lpr"); fChooser.AddFilter(filter); res = fChooser.Run(); fileName = fChooser.Filename; fChooser.Destroy(); /* return if the user cancelled */ if (res != (int)ResponseType.Accept) return; /* try to import the project and show a message error is the file * is not a valid project */ try{ project = Project.Import(fileName); } catch (Exception ex){ MessagePopup.PopupMessage(window, MessageType.Error, Catalog.GetString("Error importing project:")+ "\n"+ex.Message); return; } isFake = (project.File.FilePath == Constants.FAKE_PROJECT); /* If it's a fake live project prompt for a video file and * create a new PreviewMediaFile for this project */ if (isFake){ project.File = null; npd = new NewProjectDialog(); npd.TransientFor = window; npd.Use = ProjectType.EditProject; npd.Project = project; int response = npd.Run(); while (true){ if (response != (int)ResponseType.Ok){ npd.Destroy(); return; } else if (npd.Project == null) { MessagePopup.PopupMessage(window, MessageType.Info, Catalog.GetString("Please, select a video file.")); response=npd.Run(); } else { project = npd.Project; npd.Destroy(); break; } } } /* If the project exists ask if we want to overwrite it */ if (MainClass.DB.Exists(project)){ MessageDialog md = new MessageDialog(window, DialogFlags.Modal, MessageType.Question, Gtk.ButtonsType.YesNo, Catalog.GetString("A project already exists for the file:")+project.File.FilePath+ "\n"+Catalog.GetString("Do you want to overwrite it?")); md.Icon=Stetic.IconLoader.LoadIcon(window, "longomatch", Gtk.IconSize.Dialog); res = md.Run(); md.Destroy(); if (res != (int)ResponseType.Yes) return; exists = true; } else exists = false; if (isFake) CreateThumbnails(window, project); if (exists) MainClass.DB.UpdateProject(project); else MainClass.DB.AddProject(project); MessagePopup.PopupMessage(window, MessageType.Info, Catalog.GetString("Project successfully imported.")); } public static void CreateNewProject(Window window, out Project project, out ProjectType projectType, out CapturePropertiesStruct captureProps){ ProjectSelectionDialog psd; NewProjectDialog npd; List devices = null; int response; /* The out parameters must be set before leaving the method */ project = null; projectType = ProjectType.None; captureProps = new CapturePropertiesStruct(); /* Show the project selection dialog */ psd = new ProjectSelectionDialog(); psd.TransientFor = window; response = psd.Run(); psd.Destroy(); if (response != (int)ResponseType.Ok) return; projectType = psd.ProjectType; if (projectType == ProjectType.CaptureProject){ devices = Device.ListVideoDevices(); if (devices.Count == 0){ MessagePopup.PopupMessage(window, MessageType.Error, Catalog.GetString("No capture devices were found.")); return; } } /* Show the new project dialog and wait to get a valid project * or quit if the user cancel it.*/ npd = new NewProjectDialog(); npd.TransientFor = window; npd.Use = projectType; if (projectType == ProjectType.CaptureProject) npd.Devices = devices; response = npd.Run(); while (true) { /* User cancelled: quit */ if (response != (int)ResponseType.Ok){ npd.Destroy(); return; } /* No file chosen: display the dialog again */ if (npd.Project == null) MessagePopup.PopupMessage(window, MessageType.Info, Catalog.GetString("Please, select a video file.")); /* If a project with the same file path exists show a warning */ else if (MainClass.DB.Exists(npd.Project)) MessagePopup.PopupMessage(window, MessageType.Error, Catalog.GetString("This file is already used in another Project.")+"\n"+ Catalog.GetString("Select a different one to continue.")); else { /* We are now ready to create the new project */ project = npd.Project; if (projectType == ProjectType.CaptureProject) captureProps = npd.CaptureProperties; npd.Destroy(); break; } response = npd.Run(); } if (projectType == ProjectType.FileProject) /* We can safelly add the project since we already checked if * it can can added */ MainClass.DB.AddProject(project); } public static void ExportToCSV(Window window, Project project){ FileChooserDialog fChooser; FileFilter filter; string outputFile; CSVExport export; fChooser = new FileChooserDialog(Catalog.GetString("Select Export File"), window, FileChooserAction.Save, "gtk-cancel",ResponseType.Cancel, "gtk-save",ResponseType.Accept); fChooser.SetCurrentFolder(MainClass.HomeDir()); fChooser.DoOverwriteConfirmation = true; filter = new FileFilter(); filter.Name = "CSV File"; filter.AddPattern("*.csv"); fChooser.AddFilter(filter); if (fChooser.Run() == (int)ResponseType.Accept) { outputFile=fChooser.Filename; outputFile = System.IO.Path.ChangeExtension(outputFile,"csv"); export = new CSVExport(project, outputFile); export.WriteToFile(); } fChooser.Destroy(); } public static void CreateThumbnails(Window window, Project project){ MultimediaFactory factory; IFramesCapturer capturer; BusyDialog dialog; Console.WriteLine("start thumbnails"); dialog = new BusyDialog(); dialog.TransientFor = window; dialog.Message = Catalog.GetString("Creating video thumbnails. This can take a while."); dialog.Show(); dialog.Pulse(); /* Create all the thumbnails */ factory = new MultimediaFactory(); capturer = factory.getFramesCapturer(); capturer.Open (project.File.FilePath); foreach (List list in project.GetDataArray()){ foreach (MediaTimeNode play in list){ try{ capturer.SeekTime(play.Start.MSeconds + ((play.Stop - play.Start).MSeconds/2), true); play.Miniature = capturer.GetCurrentFrame(Constants.THUMBNAIL_MAX_WIDTH, Constants.THUMBNAIL_MAX_HEIGHT); dialog.Pulse(); } catch { /* FIXME: Add log */ } } } capturer.Dispose(); dialog.Destroy(); } } } longomatch-0.16.8/LongoMatch/Common/0002755000175000017500000000000011601631302014220 500000000000000longomatch-0.16.8/LongoMatch/Common/Constants.cs0000644000175000017500000000604611601631101016444 00000000000000// // Copyright (C) 2007-2010 Andoni Morales Alastruey // // 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 // using System; using Gdk; namespace LongoMatch.Common { class Constants{ public const string SOFTWARE_NAME = "LongoMatch"; public const string PROJECT_NAME = SOFTWARE_NAME + " project"; public const string DB_FILE = "longomatch.db"; public const string COPYRIGHT = "Copyright ©2007-2010 Andoni Morales Alastruey"; public const string FAKE_PROJECT = "@Fake Project@"; public const string PORTABLE_FILE = "longomatch.portable"; public const string LICENSE = @"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."; public const string TRANSLATORS = @"Andoni Morales Alastruey (es) Aron Xu (cn_ZH) Barkın Tanmann (tr) Bruno Brouard (fr) Daniel Nylander (sv) G. Baylard (fr) Joan Charmant (fr) João Paulo Azevedo (pt) Joe Hansen (da) Jorge González (es) Kenneth Nielsen (da) Kjartan Maraas (nb) Peter Strikwerda (nl) Laurent Coudeur (fr) Marek Cernocky (cs) Mario Blättermann (de) Matej Urbančič (sl) Maurizio Napolitano (it) Pavel Bárta (cs) Petr Kovar (cs) Xavier Queralt Mateu (ca)"; public const int THUMBNAIL_MAX_WIDTH = 100; public const int THUMBNAIL_MAX_HEIGHT = 100; public const string WEBSITE = "http://www.longomatch.ylatuya.es"; public const string MANUAL = "http://www.longomatch.ylatuya.es/documentation/manual.html"; public const ModifierType STEP = Gdk.ModifierType.ShiftMask; public const Key SEEK_BACKWARD = Gdk.Key.Left; public const Key SEEK_FORWARD = Gdk.Key.Right; public const Key FRAMERATE_UP = Gdk.Key.Up; public const Key FRAMERATE_DOWN = Gdk.Key.Down; public const Key TOGGLE_PLAY = Gdk.Key.space; /* Output formats */ public const string AVI = "AVI (XVID + MP3)"; public const string MP4 = "MP4 (H264 + AAC)"; public const string OGG = "OGG (Theora + Vorbis)"; public const string WEBM = "WebM (VP8 + Vorbis)"; public const string DVD="DVD (MPEG-2 + MP3)"; } } longomatch-0.16.8/LongoMatch/Common/Enums.cs0000644000175000017500000000234211601631101015552 00000000000000// // Copyright (C) 2009 Andoni Morales Alastruey // // 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 // using System; namespace LongoMatch.Common { public enum ProjectType { CaptureProject, FakeCaptureProject, FileProject, EditProject, None, } public enum EndCaptureResponse { Return = 234, Quit = 235, Save = 236 } public enum TagMode { Predifined, Free } public enum SortMethodType{ SortByName = 0, SortByStartTime = 1, SortByStopTime = 2, SortByDuration = 3 } public enum Team { NONE = 0, LOCAL = 1, VISITOR = 2, } } longomatch-0.16.8/LongoMatch/Common/Cairo.cs0000644000175000017500000000531711601631101015525 00000000000000// // Copyright (C) 2011 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using Cairo; namespace LongoMatch.Common { public class CairoUtils { public static void DrawRoundedRectangle(Cairo.Context gr, double x, double y, double width, double height, double radius, Cairo.Color color, Cairo.Color borderColor) { gr.Save(); if ((radius > height / 2) || (radius > width / 2)) radius = Math.Min(height / 2, width / 2); gr.MoveTo(x, y + radius); gr.Arc(x + radius, y + radius, radius, Math.PI, -Math.PI / 2); gr.LineTo(x + width - radius, y); gr.Arc(x + width - radius, y + radius, radius, -Math.PI / 2, 0); gr.LineTo(x + width, y + height - radius); gr.Arc(x + width - radius, y + height - radius, radius, 0, Math.PI / 2); gr.LineTo(x + radius, y + height); gr.Arc(x + radius, y + height - radius, radius, Math.PI / 2, Math.PI); gr.ClosePath(); gr.Restore(); gr.LineJoin = LineJoin.Round; gr.Color = borderColor; gr.StrokePreserve(); gr.Color = color; gr.Fill(); } public static void DrawLine (Cairo.Context g, double x1, double y1, double x2, double y2, int width, Cairo.Color color) { g.Color = color; g.Operator = Operator.Over; g.LineWidth = width; g.MoveTo(x1, y1); g.LineTo(x2,y2); g.Stroke(); } public static void DrawTriangle(Cairo.Context g, double x, double y, int width, int height, Cairo.Color color){ g.Color = color; g.MoveTo(x, y); g.LineTo(x + width/2, y-height); g.LineTo(x - width/2, y-height); g.ClosePath(); g.Fill(); g.Stroke(); } public static Cairo.Color RGBToCairoColor(Gdk.Color gdkColor) { return new Cairo.Color((double)(gdkColor.Red)/ushort.MaxValue, (double)(gdkColor.Green)/ushort.MaxValue, (double)(gdkColor.Blue)/ushort.MaxValue); } } } longomatch-0.16.8/LongoMatch/IO/0002755000175000017500000000000011601631302013277 500000000000000longomatch-0.16.8/LongoMatch/IO/XMLReader.cs0000644000175000017500000000454111601631101015330 00000000000000// XMLReader.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.IO; using System.Xml; namespace LongoMatch.IO { public class XMLReader { private XmlDocument configXml; #region Constructors public XMLReader(string filePath) { configXml = new XmlDocument(); if (!File.Exists(filePath)) { //manejar el error!!! } configXml.Load(filePath); } #endregion #region Public methods public string GetStringValue(string section, string clave) { XmlNode n; n = configXml.SelectSingleNode(section + "/add[@key=\"" + clave + "\"]"); if (n!=null) return (string)(n.Attributes["value"].Value); else return null; } public int GetIntValue(string section, string clave) { XmlNode n; n = configXml.SelectSingleNode(section + "/add[@key=\"" + clave + "\"]"); if (n != null) { object result = n.Attributes["value"].Value; return int.Parse(result.ToString()); } else return -1; } public bool GetBoolValue(string section, string clave) { XmlNode n; n = configXml.SelectSingleNode(section + "/add[@key=\"" + clave + "\"]"); if (n != null) { object result = n.Attributes["value"].Value; return bool.Parse(result.ToString()); } else return false; } public ushort GetUShortValue(string section, string clave) { XmlNode n; n = configXml.SelectSingleNode(section + "/add[@key=\"" + clave + "\"]"); if (n != null) { object result = n.Attributes["value"].Value; return ushort.Parse(result.ToString()); } else return 254; } #endregion } } longomatch-0.16.8/LongoMatch/IO/SectionsReader.cs0000644000175000017500000000544011601631101016456 00000000000000// Config.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Configuration; using System.IO; using System.Xml; using LongoMatch.DB; using Gdk; using LongoMatch.TimeNodes; namespace LongoMatch.IO { public class SectionsReader : XMLReader { #region Constructors public SectionsReader(string filePath) : base(filePath) { } #endregion #region Private methods private string GetName(int section) { return this.GetStringValue("configuration","Name"+(section)); } private Time GetStartTime(int section) { return new Time(GetIntValue("configuration","Start"+(section))*Time.SECONDS_TO_TIME); } private Time GetStopTime(int section) { return new Time(GetIntValue("configuration","Stop"+(section))*Time.SECONDS_TO_TIME); } private Color GetColor(int section) { ushort red,green,blue; red = GetUShortValue("configuration","Red"+(section)); green = GetUShortValue("configuration","Green"+(section)); blue = GetUShortValue("configuration","Blue"+(section)); Color col = new Color(); col.Red = red; col.Blue = blue; col.Green = green; return col; } private HotKey GetHotKey(int section) { HotKey hotkey = new HotKey(); hotkey.Modifier= (ModifierType)GetIntValue("configuration","Modifier"+(section)); hotkey.Key = (Gdk.Key)GetIntValue("configuration","Key"+(section)); return hotkey; } private String GetSortMethod(int section) { return GetStringValue("configuration","SortMethod"+(section)); } #endregion #region Public methods public Sections GetSections() { Sections sections = new Sections(); bool tryNext = true; string name; SectionsTimeNode tn; for (int i=1;tryNext;i++) { name = GetName(i); if (name != null) { tn = new SectionsTimeNode(name, GetStartTime(i), GetStopTime(i), GetHotKey(i), GetColor(i)); tn.SortMethodString = GetSortMethod(i); sections.AddSection(tn); } else tryNext=false; } return sections; } #endregion } } longomatch-0.16.8/LongoMatch/IO/SectionsWriter.cs0000644000175000017500000000736211601631101016535 00000000000000// SectionsWriter.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Configuration; using System.IO; using System.Xml; using Mono.Unix; using LongoMatch.DB; using LongoMatch.TimeNodes; using Gdk; namespace LongoMatch.IO { public class SectionsWriter { public static void CreateNewTemplate(string templateName) { XmlDocument configXml = new XmlDocument(); string fConfig = Path.Combine(MainClass.TemplatesDir(), templateName); System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(""); sb.Append(""); for (int i=1;i<21;i++) { sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); } sb.Append(""); configXml.LoadXml(sb.ToString()); configXml.Save(fConfig); } public static void SetValue(XmlDocument configXml,string section, string clave, string valor) { XmlNode n; n = configXml.SelectSingleNode(section + "/add[@key=\"" + clave + "\"]"); if (n != null) { n.Attributes["value"].Value = valor; } } public static void UpdateTemplate(string templateName,Sections sections) { string fConfig = Path.Combine(MainClass.TemplatesDir(), templateName); XmlDocument configXml = new XmlDocument(); int i=1; System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(""); sb.Append(""); foreach (SectionsTimeNode tn in sections.SectionsTimeNodes) { sb.Append(String.Format("",i,tn.Name)); sb.Append(String.Format("",i,tn.Start.Seconds)); sb.Append(String.Format("",i,tn.Stop.Seconds)); sb.Append(String.Format("",i,tn.Color.Red)); sb.Append(String.Format("",i,tn.Color.Green)); sb.Append(String.Format("",i,tn.Color.Blue)); sb.Append(String.Format("",i,(int)(tn.HotKey.Modifier))); sb.Append(String.Format("",i,(int)(tn.HotKey.Key))); sb.Append(String.Format("",i,tn.SortMethodString)); i++; } sb.Append(""); configXml.LoadXml(sb.ToString()); configXml.Save(fConfig); } } } longomatch-0.16.8/LongoMatch/IO/CSVExport.cs0000644000175000017500000001443411601631101015404 00000000000000// CSVExport.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.IO; using System.Collections.Generic; using Gtk; using LongoMatch.DB; using LongoMatch.TimeNodes; using LongoMatch.Gui; using Mono.Unix; namespace LongoMatch.IO { public class CSVExport { string outputFile; Project project; #region Constructors public CSVExport(Project project,string outputFile) { this.project = project; this.outputFile = outputFile; } #endregion #region Public methods public void WriteToFile() { List> list; Dictionary> tagsDic; List localPlayersList; List visitorPlayersList; Dictionary> localPlayersDic; Dictionary> visitorPlayersDic; string[] sectionNames; TextWriter tx; tx = new StreamWriter(outputFile); list = project.GetDataArray(); sectionNames = project.GetSectionsNames(); tagsDic = new Dictionary>(); foreach (Tag tag in project.Tags) tagsDic.Add(tag, new List()); localPlayersList = project.LocalTeamTemplate.GetPlayersList(); localPlayersDic = new Dictionary>(); foreach (Player player in localPlayersList) localPlayersDic.Add(player, new List()); visitorPlayersList = project.VisitorTeamTemplate.GetPlayersList(); visitorPlayersDic = new Dictionary>(); foreach (Player player in visitorPlayersList) visitorPlayersDic.Add(player, new List()); // Write catagories table tx.WriteLine(String.Format("{0};{1};{2};{3};{4};{5}", Catalog.GetString("Section"), Catalog.GetString("Name"), Catalog.GetString("Team"), Catalog.GetString("StartTime"), Catalog.GetString("StopTime"), Catalog.GetString("Duration"))); for (int i=0; i> tagsDic){ // Write Tags table tx.WriteLine(String.Format("{0};{1};{2};{3};{4};{5}", Catalog.GetString("Tag"), Catalog.GetString("Name"), Catalog.GetString("Team"), Catalog.GetString("StartTime"), Catalog.GetString("StopTime"), Catalog.GetString("Duration"))); foreach (KeyValuePair> pair in tagsDic){ if (pair.Value.Count == 0) continue; foreach (MediaTimeNode tn in pair.Value) { tx.WriteLine("\""+pair.Key.Text+"\";\""+ tn.Name+"\";\""+ tn.Team+"\";\""+ tn.Start.ToMSecondsString()+"\";\""+ tn.Stop.ToMSecondsString()+"\";\""+ (tn.Stop-tn.Start).ToMSecondsString()+"\""); } } tx.WriteLine(); tx.WriteLine(); } private void WritePlayersData(TextWriter tx, Dictionary> playersDic){ // Write Tags table tx.WriteLine(String.Format("{0};{1};{2};{3};{4};{5};{6}", Catalog.GetString("Player"), Catalog.GetString("Category"), Catalog.GetString("Name"), Catalog.GetString("Team"), Catalog.GetString("StartTime"), Catalog.GetString("StopTime"), Catalog.GetString("Duration"))); foreach (KeyValuePair> pair in playersDic){ if (pair.Value.Count == 0) continue; foreach (object[] o in pair.Value) { string sectionName = (string)o[0]; MediaTimeNode tn = (MediaTimeNode)o[1]; tx.WriteLine("\""+pair.Key.Name+"\";\""+ sectionName+"\";\""+ tn.Name+"\";\""+ tn.Team+"\";\""+ tn.Start.ToMSecondsString()+"\";\""+ tn.Stop.ToMSecondsString()+"\";\""+ (tn.Stop-tn.Start).ToMSecondsString()+"\""); } } tx.WriteLine(); tx.WriteLine(); } #endregion } } longomatch-0.16.8/INSTALL0000644000175000017500000002713511601631101011711 00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 6. Often, you can also type `make uninstall' to remove the installed files again. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *Note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. longomatch-0.16.8/configure.ac0000644000175000017500000000534511601631101013145 00000000000000dnl Warning: This is an automatically generated file, do not edit! dnl Process this file with autoconf to produce a configure script. AC_PREREQ([2.54]) AC_INIT([LongoMatch], [0.16.8]) AM_INIT_AUTOMAKE([foreign]) AM_MAINTAINER_MODE AC_CONFIG_MACRO_DIR([build/m4]) AC_SUBST([ACLOCAL_AMFLAGS], ["-I build/m4/shamrock -I build/m4/shave \${ACLOCAL_FLAGS}"]) AM_PROG_CC_STDC AC_ISC_POSIX AC_PROG_CC AC_C_CONST AC_HEADER_STDC AM_PROG_LIBTOOL dnl pkg-config AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test "x$PKG_CONFIG" = "xno"; then AC_MSG_ERROR([You need to install pkg-config]) fi SHAMROCK_EXPAND_LIBDIR SHAMROCK_EXPAND_BINDIR SHAMROCK_EXPAND_DATADIR AC_PROG_INSTALL #******************************************************************************* # Internationalization #******************************************************************************* GETTEXT_PACKAGE=longomatch AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [GETTEXT package name]) dnl Check for gettext utils AC_PATH_PROG(MSGFMT, msgfmt, no) if test "x$MSGFMT" = "xno"; then AC_MSG_ERROR([gettext not found]) else AC_SUBST(MSGFMT,[msgfmt]) fi IT_PROG_INTLTOOL([0.40.0]) AM_GLIB_GNU_GETTEXT dnl Mono and C# compiler dnl Check first for a 4.0 compiler or than fallback to 2.0 SHAMROCK_CHECK_MONO_MODULE(2.4.0) AC_PATH_PROG(MCS, dmcs, no) if test "x$MCS" = "xno"; then unset ac_cv_path_MCS SHAMROCK_FIND_MONO_2_0_COMPILER SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([ System.Data Mono.Cairo Mono.Posix ]) else AC_SUBST(MCS, ["$MCS"]) SHAMROCK_CHECK_MONO_4_0_GAC_ASSEMBLIES([ System.Data Mono.Cairo Mono.Posix ]) fi SHAMROCK_FIND_MONO_RUNTIME dnl NUnit (optional) SHAMROCK_CHECK_NUNIT dnl package checks, common for all configs PKG_CHECK_MODULES([GLIBSHARP], [glib-sharp-2.0]) AC_SUBST(GLIBSHARP_LIBS) PKG_CHECK_MODULES([GTKSHARP], [gtk-sharp-2.0]) AC_SUBST(GTKSHARP_LIBS) PKG_CHECK_MODULES([DB4O], [db4o]) AC_SUBST(DB4O_LIBS) dnl package checks for libcesarplayer PKG_CHECK_MODULES(CESARPLAYER, [gtk+-2.0 >= 2.8 gdk-2.0 gio-2.0 glib-2.0 gstreamer-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gobject-2.0 gstreamer-interfaces-0.10]) AC_SUBST(CESARPLAYER_CFLAGS) AC_SUBST(CESARPLAYER_LIBS) #SHAVE_INIT([build/m4/shave], [enable]) dnl package checks, per config AC_CONFIG_FILES([env], [chmod +x env]) AC_CONFIG_FILES([ Makefile build/Makefile build/m4/Makefile build/m4/shave/shave build/m4/shave/shave-libtool libcesarplayer/Makefile libcesarplayer/src/Makefile CesarPlayer/Makefile CesarPlayer/cesarplayer.pc CesarPlayer/CesarPlayer.dll.config CesarPlayer/AssemblyInfo.cs LongoMatch/Makefile LongoMatch/longomatch LongoMatch/longomatch.desktop.in LongoMatch/AssemblyInfo.cs po/Makefile.in ]) AC_OUTPUT longomatch-0.16.8/ltmain.sh0000755000175000017500000073341511601631260012516 00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 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. # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu3 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION="2.2.6b Debian-2.2.6b-2ubuntu3" TIMESTAMP="" package_revision=1.3017 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 longomatch-0.16.8/install-sh0000755000175000017500000003253711500011217012664 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: longomatch-0.16.8/configure0000755000175000017500000164125511601631265012610 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.67 for LongoMatch 0.16.8. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF $* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='LongoMatch' PACKAGE_TARNAME='longomatch' PACKAGE_VERSION='0.16.8' PACKAGE_STRING='LongoMatch 0.16.8' PACKAGE_BUGREPORT='' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS CESARPLAYER_LIBS CESARPLAYER_CFLAGS DB4O_LIBS DB4O_CFLAGS GTKSHARP_LIBS GTKSHARP_CFLAGS GLIBSHARP_LIBS GLIBSHARP_CFLAGS NUNIT_LIBS NUNIT_CFLAGS ENABLE_TESTS_FALSE ENABLE_TESTS_TRUE MONO MCS MONO_MODULE_LIBS MONO_MODULE_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES CATOBJEXT CATALOGS MSGFMT_OPTS DATADIRNAME ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGMERGE XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS MSGFMT GETTEXT_PACKAGE expanded_datadir expanded_bindir expanded_libdir PKG_CONFIG OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC ACLOCAL_AMFLAGS MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock enable_nls enable_tests ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR MONO_MODULE_CFLAGS MONO_MODULE_LIBS NUNIT_CFLAGS NUNIT_LIBS GLIBSHARP_CFLAGS GLIBSHARP_LIBS GTKSHARP_CFLAGS GTKSHARP_LIBS DB4O_CFLAGS DB4O_LIBS CESARPLAYER_CFLAGS CESARPLAYER_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures LongoMatch 0.16.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/longomatch] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of LongoMatch 0.16.8:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-nls do not use Native Language Support --enable-tests Enable NUnit tests Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path MONO_MODULE_CFLAGS C compiler flags for MONO_MODULE, overriding pkg-config MONO_MODULE_LIBS linker flags for MONO_MODULE, overriding pkg-config NUNIT_CFLAGS C compiler flags for NUNIT, overriding pkg-config NUNIT_LIBS linker flags for NUNIT, overriding pkg-config GLIBSHARP_CFLAGS C compiler flags for GLIBSHARP, overriding pkg-config GLIBSHARP_LIBS linker flags for GLIBSHARP, overriding pkg-config GTKSHARP_CFLAGS C compiler flags for GTKSHARP, overriding pkg-config GTKSHARP_LIBS linker flags for GTKSHARP, overriding pkg-config DB4O_CFLAGS C compiler flags for DB4O, overriding pkg-config DB4O_LIBS linker flags for DB4O, overriding pkg-config CESARPLAYER_CFLAGS C compiler flags for CESARPLAYER, overriding pkg-config CESARPLAYER_LIBS linker flags for CESARPLAYER, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF LongoMatch configure 0.16.8 generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval "test \"\${$3+set}\"" = set; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by LongoMatch $as_me 0.16.8, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` 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 || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5 ; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='longomatch' VERSION='0.16.8' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE ACLOCAL_AMFLAGS="-I build/m4/shamrock -I build/m4/shave \${ACLOCAL_FLAGS}" DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5 ; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5 ; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } if test "${ac_cv_search_strerror+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strerror (); int main () { return strerror (); ; return 0; } _ACEOF for ac_lib in '' cposix; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_strerror=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_strerror+set}" = set; then : break fi done if test "${ac_cv_search_strerror+set}" = set; then : else ac_cv_search_strerror=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 $as_echo "$ac_cv_search_strerror" >&6; } ac_res=$ac_cv_search_strerror if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6b' macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:5663: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:5666: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:5669: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 6874 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8149: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8153: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8488: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8492: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8593: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8597: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8648: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8652: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) link_all_deplibs=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11032 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11128 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$PKG_CONFIG" = "xno"; then as_fn_error $? "You need to install pkg-config" "$LINENO" 5 fi expanded_libdir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $libdir )` expanded_bindir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $bindir )` case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac expanded_datadir=`(eval echo $datadir)` expanded_datadir=`(eval echo $expanded_datadir)` #******************************************************************************* # Internationalization #******************************************************************************* GETTEXT_PACKAGE=longomatch cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$MSGFMT" = "xno"; then as_fn_error $? "gettext not found" "$LINENO" 5 else MSGFMT=msgfmt fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac if test -n "0.40.0"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.40.0" >&5 $as_echo_n "checking for intltool >= 0.40.0... " >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.40.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool 0.40.0 or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : DATADIRNAME=share else DATADIRNAME=lib fi ;; *) DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi for ac_header in locale.h do : ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LOCALE_H 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if test "${am_cv_val_LC_MESSAGES+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = x""yes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } if test "${gt_cv_func_ngettext_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 $as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if test "${gt_cv_func_dgettext_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else ac_cv_lib_intl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dgettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else ac_cv_lib_intl_dgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dcgettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else ac_cv_lib_intl_dcgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" _ACEOF if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MONO_MODULE" >&5 $as_echo_n "checking for MONO_MODULE... " >&6; } if test -n "$MONO_MODULE_CFLAGS"; then pkg_cv_MONO_MODULE_CFLAGS="$MONO_MODULE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono >= 2.4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono >= 2.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MONO_MODULE_CFLAGS=`$PKG_CONFIG --cflags "mono >= 2.4.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$MONO_MODULE_LIBS"; then pkg_cv_MONO_MODULE_LIBS="$MONO_MODULE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono >= 2.4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono >= 2.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MONO_MODULE_LIBS=`$PKG_CONFIG --libs "mono >= 2.4.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then MONO_MODULE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "mono >= 2.4.0" 2>&1` else MONO_MODULE_PKG_ERRORS=`$PKG_CONFIG --print-errors "mono >= 2.4.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$MONO_MODULE_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (mono >= 2.4.0) were not met: $MONO_MODULE_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables MONO_MODULE_CFLAGS and MONO_MODULE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables MONO_MODULE_CFLAGS and MONO_MODULE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else MONO_MODULE_CFLAGS=$pkg_cv_MONO_MODULE_CFLAGS MONO_MODULE_LIBS=$pkg_cv_MONO_MODULE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi # Extract the first word of "dmcs", so it can be a program name with args. set dummy dmcs; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MCS+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MCS in [\\/]* | ?:[\\/]*) ac_cv_path_MCS="$MCS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MCS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_MCS" && ac_cv_path_MCS="no" ;; esac fi MCS=$ac_cv_path_MCS if test -n "$MCS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MCS" >&5 $as_echo "$MCS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$MCS" = "xno"; then unset ac_cv_path_MCS # Extract the first word of "gmcs", so it can be a program name with args. set dummy gmcs; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MCS+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MCS in [\\/]* | ?:[\\/]*) ac_cv_path_MCS="$MCS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MCS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_MCS" && ac_cv_path_MCS="no" ;; esac fi MCS=$ac_cv_path_MCS if test -n "$MCS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MCS" >&5 $as_echo "$MCS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$MCS" = "xno"; then as_fn_error $? "You need to install 'gmcs'" "$LINENO" 5 fi for asm in $(echo "mono,2.0,System.Data Mono.Cairo Mono.Posix " | cut -d, -f3- | sed 's/\,/ /g') do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mono 2.0 GAC for $asm.dll" >&5 $as_echo_n "checking for Mono 2.0 GAC for $asm.dll... " >&6; } if test \ -e "$($PKG_CONFIG --variable=libdir mono)/mono/2.0/$asm.dll" -o \ -e "$($PKG_CONFIG --variable=prefix mono)/lib/mono/2.0/$asm.dll"; \ then \ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } as_fn_error $? "missing required Mono 2.0 assembly: $asm.dll" "$LINENO" 5 fi done else MCS="$MCS" for asm in $(echo "mono,4.0,System.Data Mono.Cairo Mono.Posix " | cut -d, -f3- | sed 's/\,/ /g') do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mono 4.0 GAC for $asm.dll" >&5 $as_echo_n "checking for Mono 4.0 GAC for $asm.dll... " >&6; } if test \ -e "$($PKG_CONFIG --variable=libdir mono)/mono/4.0/$asm.dll" -o \ -e "$($PKG_CONFIG --variable=prefix mono)/lib/mono/4.0/$asm.dll"; \ then \ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } as_fn_error $? "missing required Mono 4.0 assembly: $asm.dll" "$LINENO" 5 fi done fi # Extract the first word of "mono", so it can be a program name with args. set dummy mono; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MONO+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MONO in [\\/]* | ?:[\\/]*) ac_cv_path_MONO="$MONO" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MONO="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_MONO" && ac_cv_path_MONO="no" ;; esac fi MONO=$ac_cv_path_MONO if test -n "$MONO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MONO" >&5 $as_echo "$MONO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$MONO" = "xno"; then as_fn_error $? "You need to install 'mono'" "$LINENO" 5 fi NUNIT_REQUIRED=2.4.7 # Check whether --enable-tests was given. if test "${enable_tests+set}" = set; then : enableval=$enable_tests; enable_tests=$enableval else enable_tests="no" fi if test "x$enable_tests" = "xno"; then do_tests=no if false; then ENABLE_TESTS_TRUE= ENABLE_TESTS_FALSE='#' else ENABLE_TESTS_TRUE='#' ENABLE_TESTS_FALSE= fi else pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NUNIT" >&5 $as_echo_n "checking for NUNIT... " >&6; } if test -n "$NUNIT_CFLAGS"; then pkg_cv_NUNIT_CFLAGS="$NUNIT_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nunit >= \$NUNIT_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "nunit >= $NUNIT_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NUNIT_CFLAGS=`$PKG_CONFIG --cflags "nunit >= $NUNIT_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$NUNIT_LIBS"; then pkg_cv_NUNIT_LIBS="$NUNIT_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nunit >= \$NUNIT_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "nunit >= $NUNIT_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NUNIT_LIBS=`$PKG_CONFIG --libs "nunit >= $NUNIT_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then NUNIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "nunit >= $NUNIT_REQUIRED" 2>&1` else NUNIT_PKG_ERRORS=`$PKG_CONFIG --print-errors "nunit >= $NUNIT_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$NUNIT_PKG_ERRORS" >&5 do_tests="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } do_tests="no" else NUNIT_CFLAGS=$pkg_cv_NUNIT_CFLAGS NUNIT_LIBS=$pkg_cv_NUNIT_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } do_tests="yes" fi if test "x$do_tests" = "xyes"; then ENABLE_TESTS_TRUE= ENABLE_TESTS_FALSE='#' else ENABLE_TESTS_TRUE='#' ENABLE_TESTS_FALSE= fi if test "x$do_tests" = "xno"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NUNIT" >&5 $as_echo_n "checking for NUNIT... " >&6; } if test -n "$NUNIT_CFLAGS"; then pkg_cv_NUNIT_CFLAGS="$NUNIT_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono-nunit >= 2.4\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono-nunit >= 2.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NUNIT_CFLAGS=`$PKG_CONFIG --cflags "mono-nunit >= 2.4" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$NUNIT_LIBS"; then pkg_cv_NUNIT_LIBS="$NUNIT_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono-nunit >= 2.4\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono-nunit >= 2.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_NUNIT_LIBS=`$PKG_CONFIG --libs "mono-nunit >= 2.4" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then NUNIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "mono-nunit >= 2.4" 2>&1` else NUNIT_PKG_ERRORS=`$PKG_CONFIG --print-errors "mono-nunit >= 2.4" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$NUNIT_PKG_ERRORS" >&5 do_tests="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } do_tests="no" else NUNIT_CFLAGS=$pkg_cv_NUNIT_CFLAGS NUNIT_LIBS=$pkg_cv_NUNIT_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } do_tests="yes" fi if test "x$do_tests" = "xyes"; then ENABLE_TESTS_TRUE= ENABLE_TESTS_FALSE='#' else ENABLE_TESTS_TRUE='#' ENABLE_TESTS_FALSE= fi if test "x$do_tests" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find nunit: tests will not be available" >&5 $as_echo "$as_me: WARNING: Could not find nunit: tests will not be available" >&2;} fi fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIBSHARP" >&5 $as_echo_n "checking for GLIBSHARP... " >&6; } if test -n "$GLIBSHARP_CFLAGS"; then pkg_cv_GLIBSHARP_CFLAGS="$GLIBSHARP_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIBSHARP_CFLAGS=`$PKG_CONFIG --cflags "glib-sharp-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GLIBSHARP_LIBS"; then pkg_cv_GLIBSHARP_LIBS="$GLIBSHARP_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIBSHARP_LIBS=`$PKG_CONFIG --libs "glib-sharp-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GLIBSHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-sharp-2.0" 2>&1` else GLIBSHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-sharp-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GLIBSHARP_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (glib-sharp-2.0) were not met: $GLIBSHARP_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GLIBSHARP_CFLAGS and GLIBSHARP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GLIBSHARP_CFLAGS and GLIBSHARP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else GLIBSHARP_CFLAGS=$pkg_cv_GLIBSHARP_CFLAGS GLIBSHARP_LIBS=$pkg_cv_GLIBSHARP_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKSHARP" >&5 $as_echo_n "checking for GTKSHARP... " >&6; } if test -n "$GTKSHARP_CFLAGS"; then pkg_cv_GTKSHARP_CFLAGS="$GTKSHARP_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTKSHARP_CFLAGS=`$PKG_CONFIG --cflags "gtk-sharp-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTKSHARP_LIBS"; then pkg_cv_GTKSHARP_LIBS="$GTKSHARP_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTKSHARP_LIBS=`$PKG_CONFIG --libs "gtk-sharp-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTKSHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk-sharp-2.0" 2>&1` else GTKSHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk-sharp-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTKSHARP_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gtk-sharp-2.0) were not met: $GTKSHARP_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GTKSHARP_CFLAGS and GTKSHARP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GTKSHARP_CFLAGS and GTKSHARP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else GTKSHARP_CFLAGS=$pkg_cv_GTKSHARP_CFLAGS GTKSHARP_LIBS=$pkg_cv_GTKSHARP_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DB4O" >&5 $as_echo_n "checking for DB4O... " >&6; } if test -n "$DB4O_CFLAGS"; then pkg_cv_DB4O_CFLAGS="$DB4O_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"db4o\""; } >&5 ($PKG_CONFIG --exists --print-errors "db4o") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_DB4O_CFLAGS=`$PKG_CONFIG --cflags "db4o" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$DB4O_LIBS"; then pkg_cv_DB4O_LIBS="$DB4O_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"db4o\""; } >&5 ($PKG_CONFIG --exists --print-errors "db4o") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_DB4O_LIBS=`$PKG_CONFIG --libs "db4o" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then DB4O_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "db4o" 2>&1` else DB4O_PKG_ERRORS=`$PKG_CONFIG --print-errors "db4o" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$DB4O_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (db4o) were not met: $DB4O_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables DB4O_CFLAGS and DB4O_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables DB4O_CFLAGS and DB4O_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else DB4O_CFLAGS=$pkg_cv_DB4O_CFLAGS DB4O_LIBS=$pkg_cv_DB4O_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CESARPLAYER" >&5 $as_echo_n "checking for CESARPLAYER... " >&6; } if test -n "$CESARPLAYER_CFLAGS"; then pkg_cv_CESARPLAYER_CFLAGS="$CESARPLAYER_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.8 gdk-2.0 gio-2.0 glib-2.0 gstreamer-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gobject-2.0 gstreamer-interfaces-0.10\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.8 gdk-2.0 gio-2.0 glib-2.0 gstreamer-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gobject-2.0 gstreamer-interfaces-0.10") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_CESARPLAYER_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.8 gdk-2.0 gio-2.0 glib-2.0 gstreamer-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gobject-2.0 gstreamer-interfaces-0.10" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$CESARPLAYER_LIBS"; then pkg_cv_CESARPLAYER_LIBS="$CESARPLAYER_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.8 gdk-2.0 gio-2.0 glib-2.0 gstreamer-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gobject-2.0 gstreamer-interfaces-0.10\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.8 gdk-2.0 gio-2.0 glib-2.0 gstreamer-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gobject-2.0 gstreamer-interfaces-0.10") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_CESARPLAYER_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.8 gdk-2.0 gio-2.0 glib-2.0 gstreamer-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gobject-2.0 gstreamer-interfaces-0.10" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then CESARPLAYER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0 >= 2.8 gdk-2.0 gio-2.0 glib-2.0 gstreamer-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gobject-2.0 gstreamer-interfaces-0.10" 2>&1` else CESARPLAYER_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0 >= 2.8 gdk-2.0 gio-2.0 glib-2.0 gstreamer-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gobject-2.0 gstreamer-interfaces-0.10" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$CESARPLAYER_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gtk+-2.0 >= 2.8 gdk-2.0 gio-2.0 glib-2.0 gstreamer-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gobject-2.0 gstreamer-interfaces-0.10) were not met: $CESARPLAYER_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables CESARPLAYER_CFLAGS and CESARPLAYER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables CESARPLAYER_CFLAGS and CESARPLAYER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else CESARPLAYER_CFLAGS=$pkg_cv_CESARPLAYER_CFLAGS CESARPLAYER_LIBS=$pkg_cv_CESARPLAYER_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi #SHAVE_INIT([build/m4/shave], [enable]) ac_config_files="$ac_config_files env" ac_config_files="$ac_config_files Makefile build/Makefile build/m4/Makefile build/m4/shave/shave build/m4/shave/shave-libtool libcesarplayer/Makefile libcesarplayer/src/Makefile CesarPlayer/Makefile CesarPlayer/cesarplayer.pc CesarPlayer/CesarPlayer.dll.config CesarPlayer/AssemblyInfo.cs LongoMatch/Makefile LongoMatch/longomatch LongoMatch/longomatch.desktop.in LongoMatch/AssemblyInfo.cs po/Makefile.in" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ac_config_commands="$ac_config_commands po/stamp-it" if test -z "${ENABLE_TESTS_TRUE}" && test -z "${ENABLE_TESTS_FALSE}"; then as_fn_error $? "conditional \"ENABLE_TESTS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_TESTS_TRUE}" && test -z "${ENABLE_TESTS_FALSE}"; then as_fn_error $? "conditional \"ENABLE_TESTS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_TESTS_TRUE}" && test -z "${ENABLE_TESTS_FALSE}"; then as_fn_error $? "conditional \"ENABLE_TESTS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by LongoMatch $as_me 0.16.8, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ LongoMatch config.status 0.16.8 configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "env") CONFIG_FILES="$CONFIG_FILES env" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "build/Makefile") CONFIG_FILES="$CONFIG_FILES build/Makefile" ;; "build/m4/Makefile") CONFIG_FILES="$CONFIG_FILES build/m4/Makefile" ;; "build/m4/shave/shave") CONFIG_FILES="$CONFIG_FILES build/m4/shave/shave" ;; "build/m4/shave/shave-libtool") CONFIG_FILES="$CONFIG_FILES build/m4/shave/shave-libtool" ;; "libcesarplayer/Makefile") CONFIG_FILES="$CONFIG_FILES libcesarplayer/Makefile" ;; "libcesarplayer/src/Makefile") CONFIG_FILES="$CONFIG_FILES libcesarplayer/src/Makefile" ;; "CesarPlayer/Makefile") CONFIG_FILES="$CONFIG_FILES CesarPlayer/Makefile" ;; "CesarPlayer/cesarplayer.pc") CONFIG_FILES="$CONFIG_FILES CesarPlayer/cesarplayer.pc" ;; "CesarPlayer/CesarPlayer.dll.config") CONFIG_FILES="$CONFIG_FILES CesarPlayer/CesarPlayer.dll.config" ;; "CesarPlayer/AssemblyInfo.cs") CONFIG_FILES="$CONFIG_FILES CesarPlayer/AssemblyInfo.cs" ;; "LongoMatch/Makefile") CONFIG_FILES="$CONFIG_FILES LongoMatch/Makefile" ;; "LongoMatch/longomatch") CONFIG_FILES="$CONFIG_FILES LongoMatch/longomatch" ;; "LongoMatch/longomatch.desktop.in") CONFIG_FILES="$CONFIG_FILES LongoMatch/longomatch.desktop.in" ;; "LongoMatch/AssemblyInfo.cs") CONFIG_FILES="$CONFIG_FILES LongoMatch/AssemblyInfo.cs" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "env":F) chmod +x env ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi longomatch-0.16.8/libcesarplayer/0002755000175000017500000000000011601631301013735 500000000000000longomatch-0.16.8/libcesarplayer/src/0002755000175000017500000000000011601631301014524 500000000000000longomatch-0.16.8/libcesarplayer/src/Makefile.in0000644000175000017500000004700311601631265016524 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = libcesarplayer/src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(pkglibdir)" LTLIBRARIES = $(pkglib_LTLIBRARIES) libcesarplayer_la_LIBADD = am__objects_1 = baconvideowidget-marshal.lo am_libcesarplayer_la_OBJECTS = $(am__objects_1) \ bacon-video-widget-gst-0.10.lo gstscreenshot.lo \ gst-camera-capturer.lo gst-video-editor.lo bacon-resize.lo \ video-utils.lo libcesarplayer_la_OBJECTS = $(am_libcesarplayer_la_OBJECTS) libcesarplayer_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libcesarplayer_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libcesarplayer_la_SOURCES) DIST_SOURCES = $(libcesarplayer_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@ CESARPLAYER_LIBS = @CESARPLAYER_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DB4O_CFLAGS = @DB4O_CFLAGS@ DB4O_LIBS = @DB4O_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = \ -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ $(CESARPLAYER_CFLAGS) AM_CFLAGS = \ -Wall\ -g BVWMARSHALFILES = baconvideowidget-marshal.c baconvideowidget-marshal.h GLIB_GENMARSHAL = `pkg-config --variable=glib_genmarshal glib-2.0` BUILT_SOURCES = $(BVWMARSHALFILES) pkglib_LTLIBRARIES = \ libcesarplayer.la libcesarplayer_la_SOURCES = \ $(BVWMARSHALFILES) \ common.h\ bacon-video-widget.h\ bacon-video-widget-gst-0.10.c\ gstscreenshot.c \ gstscreenshot.h \ gst-camera-capturer.c\ gst-camera-capturer.h\ gst-video-editor.c\ gst-video-editor.h\ bacon-resize.c\ bacon-resize.h\ video-utils.c\ video-utils.h\ macros.h libcesarplayer_la_LDFLAGS = \ $(CESARPLAYER_LIBS) CLEANFILES = $(BUILT_SOURCES) EXTRA_DIST = \ baconvideowidget-marshal.list all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libcesarplayer/src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libcesarplayer/src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \ } uninstall-pkglibLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ done clean-pkglibLTLIBRARIES: -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES) @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcesarplayer.la: $(libcesarplayer_la_OBJECTS) $(libcesarplayer_la_DEPENDENCIES) $(libcesarplayer_la_LINK) -rpath $(pkglibdir) $(libcesarplayer_la_OBJECTS) $(libcesarplayer_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bacon-resize.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bacon-video-widget-gst-0.10.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/baconvideowidget-marshal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst-camera-capturer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst-video-editor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstscreenshot.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/video-utils.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(pkglibdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-pkglibLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pkglibLTLIBRARIES .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-pkglibLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pkglibLTLIBRARIES \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-pkglibLTLIBRARIES baconvideowidget-marshal.h: baconvideowidget-marshal.list ( $(GLIB_GENMARSHAL) --prefix=baconvideowidget_marshal $(srcdir)/baconvideowidget-marshal.list --header > baconvideowidget-marshal.h ) baconvideowidget-marshal.c: baconvideowidget-marshal.h ( $(GLIB_GENMARSHAL) --prefix=baconvideowidget_marshal $(srcdir)/baconvideowidget-marshal.list --body --header > baconvideowidget-marshal.c ) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: longomatch-0.16.8/libcesarplayer/src/baconvideowidget-marshal.list0000644000175000017500000000016711601631101022303 00000000000000VOID:INT64,INT64,DOUBLE,BOOLEAN VOID:STRING,BOOLEAN,BOOLEAN BOOLEAN:BOXED,BOXED,BOOLEAN VOID:INT64,INT64,FLOAT,BOOLEAN longomatch-0.16.8/libcesarplayer/src/common.h0000644000175000017500000000734711601631101016114 00000000000000/* * Copyright (C) 2010 Andoni Morales Alastruey * * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * */ /** * Error: * @GST_ERROR_AUDIO_PLUGIN: Error loading audio output plugin or device. * @GST_ERROR_NO_PLUGIN_FOR_FILE: A required GStreamer plugin or xine feature is missing. * @GST_ERROR_VIDEO_PLUGIN: Error loading video output plugin or device. * @GST_ERROR_AUDIO_BUSY: Audio output device is busy. * @GST_ERROR_BROKEN_FILE: The movie file is broken and cannot be decoded. * @GST_ERROR_FILE_GENERIC: A generic error for problems with movie files. * @GST_ERROR_FILE_PERMISSION: Permission was refused to access the stream, or authentication was required. * @GST_ERROR_FILE_ENCRYPTED: The stream is encrypted and cannot be played. * @GST_ERROR_FILE_NOT_FOUND: The stream cannot be found. * @GST_ERROR_DVD_ENCRYPTED: The DVD is encrypted and libdvdcss is not installed. * @GST_ERROR_INVALID_DEVICE: The device given in an MRL (e.g. DVD drive or DVB tuner) did not exist. * @GST_ERROR_DEVICE_BUSY: The device was busy. * @GST_ERROR_UNKNOWN_HOST: The host for a given stream could not be resolved. * @GST_ERROR_NETWORK_UNREACHABLE: The host for a given stream could not be reached. * @GST_ERROR_CONNECTION_REFUSED: The server for a given stream refused the connection. * @GST_ERROR_INVALID_LOCATION: An MRL was malformed, or CDDB playback was attempted (which is now unsupported). * @GST_ERROR_GENERIC: A generic error occurred. * @GST_ERROR_CODEC_NOT_HANDLED: The audio or video codec required by the stream is not supported. * @GST_ERROR_AUDIO_ONLY: An audio-only stream could not be played due to missing audio output support. * @GST_ERROR_CANNOT_CAPTURE: Error determining frame capture support for a video with bacon_video_widget_can_get_frames(). * @GST_ERROR_READ_ERROR: A generic error for problems reading streams. * @GST_ERROR_PLUGIN_LOAD: A library or plugin could not be loaded. * @GST_ERROR_EMPTY_FILE: A movie file was empty. * **/ typedef enum { /* Plugins */ GST_ERROR_AUDIO_PLUGIN, GST_ERROR_NO_PLUGIN_FOR_FILE, GST_ERROR_VIDEO_PLUGIN, GST_ERROR_AUDIO_BUSY, /* File */ GST_ERROR_BROKEN_FILE, GST_ERROR_FILE_GENERIC, GST_ERROR_FILE_PERMISSION, GST_ERROR_FILE_ENCRYPTED, GST_ERROR_FILE_NOT_FOUND, /* Devices */ GST_ERROR_DVD_ENCRYPTED, GST_ERROR_INVALID_DEVICE, GST_ERROR_DEVICE_BUSY, /* Network */ GST_ERROR_UNKNOWN_HOST, GST_ERROR_NETWORK_UNREACHABLE, GST_ERROR_CONNECTION_REFUSED, /* Generic */ GST_ERROR_INVALID_LOCATION, GST_ERROR_GENERIC, GST_ERROR_CODEC_NOT_HANDLED, GST_ERROR_AUDIO_ONLY, GST_ERROR_CANNOT_CAPTURE, GST_ERROR_READ_ERROR, GST_ERROR_PLUGIN_LOAD, GST_ERROR_EMPTY_FILE } Error; typedef enum { VIDEO_ENCODER_MPEG4, VIDEO_ENCODER_XVID, VIDEO_ENCODER_THEORA, VIDEO_ENCODER_H264, VIDEO_ENCODER_MPEG2, VIDEO_ENCODER_VP8 } VideoEncoderType; typedef enum { AUDIO_ENCODER_MP3, AUDIO_ENCODER_AAC, AUDIO_ENCODER_VORBIS } AudioEncoderType; typedef enum { VIDEO_MUXER_AVI, VIDEO_MUXER_MP4, VIDEO_MUXER_MATROSKA, VIDEO_MUXER_OGG, VIDEO_MUXER_MPEG_PS, VIDEO_MUXER_WEBM } VideoMuxerType; longomatch-0.16.8/libcesarplayer/src/baconvideowidget-marshal.c0000644000175000017500000003101511601631301021550 00000000000000 #ifndef __baconvideowidget_marshal_MARSHAL_H__ #define __baconvideowidget_marshal_MARSHAL_H__ #include G_BEGIN_DECLS #ifdef G_ENABLE_DEBUG #define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) #define g_marshal_value_peek_char(v) g_value_get_char (v) #define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) #define g_marshal_value_peek_int(v) g_value_get_int (v) #define g_marshal_value_peek_uint(v) g_value_get_uint (v) #define g_marshal_value_peek_long(v) g_value_get_long (v) #define g_marshal_value_peek_ulong(v) g_value_get_ulong (v) #define g_marshal_value_peek_int64(v) g_value_get_int64 (v) #define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v) #define g_marshal_value_peek_enum(v) g_value_get_enum (v) #define g_marshal_value_peek_flags(v) g_value_get_flags (v) #define g_marshal_value_peek_float(v) g_value_get_float (v) #define g_marshal_value_peek_double(v) g_value_get_double (v) #define g_marshal_value_peek_string(v) (char*) g_value_get_string (v) #define g_marshal_value_peek_param(v) g_value_get_param (v) #define g_marshal_value_peek_boxed(v) g_value_get_boxed (v) #define g_marshal_value_peek_pointer(v) g_value_get_pointer (v) #define g_marshal_value_peek_object(v) g_value_get_object (v) #define g_marshal_value_peek_variant(v) g_value_get_variant (v) #else /* !G_ENABLE_DEBUG */ /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API. * Do not access GValues directly in your code. Instead, use the * g_value_get_*() functions */ #define g_marshal_value_peek_boolean(v) (v)->data[0].v_int #define g_marshal_value_peek_char(v) (v)->data[0].v_int #define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint #define g_marshal_value_peek_int(v) (v)->data[0].v_int #define g_marshal_value_peek_uint(v) (v)->data[0].v_uint #define g_marshal_value_peek_long(v) (v)->data[0].v_long #define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong #define g_marshal_value_peek_int64(v) (v)->data[0].v_int64 #define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64 #define g_marshal_value_peek_enum(v) (v)->data[0].v_long #define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong #define g_marshal_value_peek_float(v) (v)->data[0].v_float #define g_marshal_value_peek_double(v) (v)->data[0].v_double #define g_marshal_value_peek_string(v) (v)->data[0].v_pointer #define g_marshal_value_peek_param(v) (v)->data[0].v_pointer #define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer #define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer #define g_marshal_value_peek_object(v) (v)->data[0].v_pointer #define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer #endif /* !G_ENABLE_DEBUG */ /* VOID:INT64,INT64,DOUBLE,BOOLEAN (./baconvideowidget-marshal.list:1) */ extern void baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure *closure, GValue *return_value G_GNUC_UNUSED, guint n_param_values, const GValue *param_values, gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data) { typedef void (*GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN) (gpointer data1, gint64 arg_1, gint64 arg_2, gdouble arg_3, gboolean arg_4, gpointer data2); register GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; g_return_if_fail (n_param_values == 5); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = g_value_peek_pointer (param_values + 0); } else { data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } callback = (GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN) (marshal_data ? marshal_data : cc->callback); callback (data1, g_marshal_value_peek_int64 (param_values + 1), g_marshal_value_peek_int64 (param_values + 2), g_marshal_value_peek_double (param_values + 3), g_marshal_value_peek_boolean (param_values + 4), data2); } /* VOID:STRING,BOOLEAN,BOOLEAN (./baconvideowidget-marshal.list:2) */ extern void baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure *closure, GValue *return_value G_GNUC_UNUSED, guint n_param_values, const GValue *param_values, gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data) { typedef void (*GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN) (gpointer data1, gpointer arg_1, gboolean arg_2, gboolean arg_3, gpointer data2); register GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; g_return_if_fail (n_param_values == 4); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = g_value_peek_pointer (param_values + 0); } else { data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } callback = (GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN) (marshal_data ? marshal_data : cc->callback); callback (data1, g_marshal_value_peek_string (param_values + 1), g_marshal_value_peek_boolean (param_values + 2), g_marshal_value_peek_boolean (param_values + 3), data2); } /* BOOLEAN:BOXED,BOXED,BOOLEAN (./baconvideowidget-marshal.list:3) */ extern void baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure *closure, GValue *return_value G_GNUC_UNUSED, guint n_param_values, const GValue *param_values, gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data) { typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN) (gpointer data1, gpointer arg_1, gpointer arg_2, gboolean arg_3, gpointer data2); register GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; gboolean v_return; g_return_if_fail (return_value != NULL); g_return_if_fail (n_param_values == 4); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = g_value_peek_pointer (param_values + 0); } else { data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } callback = (GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN) (marshal_data ? marshal_data : cc->callback); v_return = callback (data1, g_marshal_value_peek_boxed (param_values + 1), g_marshal_value_peek_boxed (param_values + 2), g_marshal_value_peek_boolean (param_values + 3), data2); g_value_set_boolean (return_value, v_return); } /* VOID:INT64,INT64,FLOAT,BOOLEAN (./baconvideowidget-marshal.list:4) */ extern void baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure *closure, GValue *return_value G_GNUC_UNUSED, guint n_param_values, const GValue *param_values, gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data) { typedef void (*GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN) (gpointer data1, gint64 arg_1, gint64 arg_2, gfloat arg_3, gboolean arg_4, gpointer data2); register GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; g_return_if_fail (n_param_values == 5); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = g_value_peek_pointer (param_values + 0); } else { data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } callback = (GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN) (marshal_data ? marshal_data : cc->callback); callback (data1, g_marshal_value_peek_int64 (param_values + 1), g_marshal_value_peek_int64 (param_values + 2), g_marshal_value_peek_float (param_values + 3), g_marshal_value_peek_boolean (param_values + 4), data2); } G_END_DECLS #endif /* __baconvideowidget_marshal_MARSHAL_H__ */ longomatch-0.16.8/libcesarplayer/src/gst-video-editor.h0000644000175000017500000000615011601631101020000 00000000000000/* * Gstreamer Video Editor * Copyright (C) 2007-2009 Andoni Morales Alastruey * * Gstreamer Video Editor is free software. * * You may 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. * * foob 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 foob. If not, write to: * The Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301, USA. */ #ifndef _GST_VIDEO_EDITOR_H_ #define _GST_VIDEO_EDITOR_H_ #ifdef WIN32 #define EXPORT __declspec (dllexport) #else #define EXPORT #endif #include #include #include "common.h" G_BEGIN_DECLS #define GST_TYPE_VIDEO_EDITOR (gst_video_editor_get_type ()) #define GST_VIDEO_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_VIDEO_EDITOR, GstVideoEditor)) #define GST_VIDEO_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_VIDEO_EDITOR, GstVideoEditorClass)) #define GST_IS_VIDEO_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_VIDEO_EDITOR)) #define GST_IS_VIDEO_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_VIDEO_EDITOR)) #define GST_VIDEO_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_VIDEO_EDITOR, GstVideoEditorClass)) #define GVC_ERROR gst_video_editor_error_quark () typedef struct _GstVideoEditorClass GstVideoEditorClass; typedef struct _GstVideoEditor GstVideoEditor; typedef struct GstVideoEditorPrivate GstVideoEditorPrivate; struct _GstVideoEditorClass { GtkHBoxClass parent_class; void (*error) (GstVideoEditor * gve, const char *message); void (*percent_completed) (GstVideoEditor * gve, float percent); }; struct _GstVideoEditor { GtkHBox parent_instance; GstVideoEditorPrivate *priv; }; EXPORT GType gst_video_editor_get_type (void) G_GNUC_CONST; EXPORT void gst_video_editor_init_backend (int *argc, char ***argv); EXPORT GstVideoEditor *gst_video_editor_new (GError ** err); EXPORT void gst_video_editor_start (GstVideoEditor * gve); EXPORT void gst_video_editor_cancel (GstVideoEditor * gve); EXPORT void gst_video_editor_set_video_encoder (GstVideoEditor * gve, gchar ** err, VideoEncoderType codec); EXPORT void gst_video_editor_set_audio_encoder (GstVideoEditor * gve, gchar ** err, AudioEncoderType codec); EXPORT void gst_video_editor_set_video_muxer (GstVideoEditor * gve, gchar ** err, VideoMuxerType codec); EXPORT void gst_video_editor_clear_segments_list (GstVideoEditor * gve); EXPORT void gst_video_editor_add_segment (GstVideoEditor * gve, gchar * file, gint64 start, gint64 duration, gdouble rate, gchar * title, gboolean hasAudio); G_END_DECLS #endif /* _GST_VIDEO_EDITOR_H_ */ longomatch-0.16.8/libcesarplayer/src/gst-camera-capturer.h0000644000175000017500000001011411601631101020454 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ /* * Gstreamer DV capturer * Copyright (C) Andoni Morales Alastruey 2008 * * Gstreamer DV capturer is free software. * * You may 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. * * foob 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 foob. If not, write to: * The Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301, USA. */ #ifndef _GST_CAMERA_CAPTURER_H_ #define _GST_CAMERA_CAPTURER_H_ #ifdef WIN32 #define EXPORT __declspec (dllexport) #else #define EXPORT #endif #include #include #include "common.h" G_BEGIN_DECLS #define GST_TYPE_CAMERA_CAPTURER (gst_camera_capturer_get_type ()) #define GST_CAMERA_CAPTURER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_CAMERA_CAPTURER, GstCameraCapturer)) #define GST_CAMERA_CAPTURER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_CAMERA_CAPTURER, GstCameraCapturerClass)) #define GST_IS_CAMERA_CAPTURER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_CAMERA_CAPTURER)) #define GST_IS_CAMERA_CAPTURER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_CAMERA_CAPTURER)) #define GST_CAMERA_CAPTURER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_CAMERA_CAPTURER, GstCameraCapturerClass)) #define GCC_ERROR gst_camera_capturer_error_quark () typedef struct _GstCameraCapturerClass GstCameraCapturerClass; typedef struct _GstCameraCapturer GstCameraCapturer; typedef struct GstCameraCapturerPrivate GstCameraCapturerPrivate; struct _GstCameraCapturerClass { GtkHBoxClass parent_class; void (*eos) (GstCameraCapturer * gcc); void (*error) (GstCameraCapturer * gcc, const char *message); void (*device_change) (GstCameraCapturer * gcc, gint *device_change); void (*invalidsource) (GstCameraCapturer * gcc); }; struct _GstCameraCapturer { GtkEventBox parent; GstCameraCapturerPrivate *priv; }; typedef enum { GST_CAMERA_CAPTURE_SOURCE_TYPE_NONE = 0, GST_CAMERA_CAPTURE_SOURCE_TYPE_DV = 1, GST_CAMERA_CAPTURE_SOURCE_TYPE_RAW = 2, GST_CAMERA_CAPTURE_SOURCE_TYPE_DSHOW = 3 } GstCameraCaptureSourceType; EXPORT GType gst_camera_capturer_get_type (void) G_GNUC_CONST; EXPORT void gst_camera_capturer_init_backend (int *argc, char ***argv); EXPORT GstCameraCapturer *gst_camera_capturer_new (gchar * filename, GError ** err); EXPORT void gst_camera_capturer_run (GstCameraCapturer * gcc); EXPORT void gst_camera_capturer_close (GstCameraCapturer * gcc); EXPORT void gst_camera_capturer_start (GstCameraCapturer * gcc); EXPORT void gst_camera_capturer_toggle_pause (GstCameraCapturer * gcc); EXPORT void gst_camera_capturer_stop (GstCameraCapturer * gcc); EXPORT gboolean gst_camera_capturer_set_video_encoder (GstCameraCapturer * gcc, VideoEncoderType type, GError ** err); EXPORT gboolean gst_camera_capturer_set_audio_encoder (GstCameraCapturer * gcc, AudioEncoderType type, GError ** err); EXPORT gboolean gst_camera_capturer_set_video_muxer (GstCameraCapturer * gcc, VideoMuxerType type, GError ** err); EXPORT gboolean gst_camera_capturer_set_source (GstCameraCapturer * gcc, GstCameraCaptureSourceType type, GError ** err); EXPORT GList *gst_camera_capturer_enum_audio_devices (void); EXPORT GList *gst_camera_capturer_enum_video_devices (void); EXPORT GdkPixbuf *gst_camera_capturer_get_current_frame (GstCameraCapturer * gcc); EXPORT void gst_camera_capturer_unref_pixbuf (GdkPixbuf * pixbuf); EXPORT void gst_camera_capturer_finalize (GObject * object); G_END_DECLS #endif /* _GST_CAMERA_CAPTURER_H_ */ longomatch-0.16.8/libcesarplayer/src/bacon-video-widget-gst-0.10.c0000644000175000017500000051076211601631101021435 00000000000000/* * Copyright (C) 2003-2007 the GStreamer project * Julien Moutte * Ronald Bultje * Copyright (C) 2005-2008 Tim-Philipp Müller * Copyright (C) 2009 Sebastian Dröge * Copyright (C) 2009 Andoni Morales Alastruey * * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * * The Totem project hereby grant permission for non-gpl compatible GStreamer * plugins to be used and distributed together with GStreamer and Totem. This * permission is above and beyond the permissions granted by the GPL license * Totem is covered by. * */ #include /* GStreamer Interfaces */ #include #include #include /* for detecting sources of errors */ #include #include #include /* for pretty multichannel strings */ #include /* for missing decoder/demuxer detection */ #include /* for the cover metadata info */ #include /* system */ #include #include #include #include /* gtk+/gnome */ #ifdef WIN32 #include #define DEFAULT_VIDEO_SINK "autovideosink" #else #include #define DEFAULT_VIDEO_SINK "gconfvideosink" #endif #include #include #include //#include #include "bacon-video-widget.h" #include "baconvideowidget-marshal.h" #include "common.h" #include "gstscreenshot.h" #include "bacon-resize.h" #include "video-utils.h" #define DEFAULT_HEIGHT 420 #define DEFAULT_WIDTH 315 #define is_error(e, d, c) \ (e->domain == GST_##d##_ERROR && \ e->code == GST_##d##_ERROR_##c) /* Signals */ enum { SIGNAL_ERROR, SIGNAL_EOS, SIGNAL_SEGMENT_DONE, SIGNAL_REDIRECT, SIGNAL_TITLE_CHANGE, SIGNAL_CHANNELS_CHANGE, SIGNAL_TICK, SIGNAL_GOT_METADATA, SIGNAL_BUFFERING, SIGNAL_MISSING_PLUGINS, SIGNAL_STATE_CHANGE, SIGNAL_GOT_DURATION, SIGNAL_READY_TO_SEEK, LAST_SIGNAL }; /* Properties */ enum { PROP_0, PROP_LOGO_MODE, PROP_EXPAND_LOGO, PROP_POSITION, PROP_CURRENT_TIME, PROP_STREAM_LENGTH, PROP_PLAYING, PROP_SEEKABLE, PROP_SHOW_CURSOR, PROP_MEDIADEV, PROP_VOLUME }; /* GstPlayFlags flags from playbin2 */ typedef enum { GST_PLAY_FLAGS_VIDEO = 0x01, GST_PLAY_FLAGS_AUDIO = 0x02, GST_PLAY_FLAGS_TEXT = 0x04, GST_PLAY_FLAGS_VIS = 0x08, GST_PLAY_FLAGS_SOFT_VOLUME = 0x10, GST_PLAY_FLAGS_NATIVE_AUDIO = 0x20, GST_PLAY_FLAGS_NATIVE_VIDEO = 0x40 } GstPlayFlags; struct BaconVideoWidgetPrivate { BvwAspectRatio ratio_type; char *mrl; GstElement *play; GstXOverlay *xoverlay; /* protect with lock */ GstColorBalance *balance; /* protect with lock */ GstNavigation *navigation; /* protect with lock */ guint interface_update_id; /* protect with lock */ GMutex *lock; guint update_id; GdkPixbuf *logo_pixbuf; GdkPixbuf *drawing_pixbuf; gboolean media_has_video; gboolean media_has_audio; gint seekable; /* -1 = don't know, FALSE = no */ gint64 stream_length; gint64 current_time_nanos; gint64 current_time; gfloat current_position; gboolean is_live; GstTagList *tagcache; GstTagList *audiotags; GstTagList *videotags; gboolean got_redirect; GdkWindow *video_window; GdkCursor *cursor; /* Other stuff */ gboolean logo_mode; gboolean drawing_mode; gboolean expand_logo; gboolean cursor_shown; gboolean fullscreen_mode; gboolean auto_resize; gboolean uses_fakesink; gint video_width; /* Movie width */ gint video_height; /* Movie height */ gboolean window_resized; /* Whether the window has already been resized for this media */ const GValue *movie_par; /* Movie pixel aspect ratio */ gint video_width_pixels; /* Scaled movie width */ gint video_height_pixels; /* Scaled movie height */ gint video_fps_n; gint video_fps_d; gdouble zoom; GstElement *audio_capsfilter; BvwAudioOutType speakersetup; gint connection_speed; gchar *media_device; GstMessageType ignore_messages_mask; GstBus *bus; gulong sig_bus_sync; gulong sig_bus_async; BvwUseType use_type; gint eos_id; /* state we want to be in, as opposed to actual pipeline state * which may change asynchronously or during buffering */ GstState target_state; gboolean buffering; /* for easy codec installation */ GList *missing_plugins; /* GList of GstMessages */ gboolean plugin_install_in_progress; /* Bacon resize */ BaconResize *bacon_resize; }; static void bacon_video_widget_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static void bacon_video_widget_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void bvw_update_interface_implementations (BaconVideoWidget * bvw); static void bacon_video_widget_finalize (GObject * object); static void bvw_update_interface_implementations (BaconVideoWidget * bvw); static gboolean bacon_video_widget_configure_event (GtkWidget * widget, GdkEventConfigure * event, BaconVideoWidget * bvw); static void size_changed_cb (GdkScreen * screen, BaconVideoWidget * bvw); static void bvw_process_pending_tag_messages (BaconVideoWidget * bvw); static void bvw_stop_play_pipeline (BaconVideoWidget * bvw); static GError *bvw_error_from_gst_error (BaconVideoWidget * bvw, GstMessage * m); static GtkWidgetClass *parent_class = NULL; static GThread *gui_thread; static int bvw_signals[LAST_SIGNAL] = { 0 }; GST_DEBUG_CATEGORY (_totem_gst_debug_cat); #define GST_CAT_DEFAULT _totem_gst_debug_cat typedef gchar *(*MsgToStrFunc) (GstMessage * msg); static gchar ** bvw_get_missing_plugins_foo (const GList * missing_plugins, MsgToStrFunc func) { GPtrArray *arr = g_ptr_array_new (); while (missing_plugins != NULL) { g_ptr_array_add (arr, func (GST_MESSAGE (missing_plugins->data))); missing_plugins = missing_plugins->next; } g_ptr_array_add (arr, NULL); return (gchar **) g_ptr_array_free (arr, FALSE); } static gchar ** bvw_get_missing_plugins_details (const GList * missing_plugins) { return bvw_get_missing_plugins_foo (missing_plugins, gst_missing_plugin_message_get_installer_detail); } static gchar ** bvw_get_missing_plugins_descriptions (const GList * missing_plugins) { return bvw_get_missing_plugins_foo (missing_plugins, gst_missing_plugin_message_get_description); } static void bvw_clear_missing_plugins_messages (BaconVideoWidget * bvw) { g_list_foreach (bvw->priv->missing_plugins, (GFunc) gst_mini_object_unref, NULL); g_list_free (bvw->priv->missing_plugins); bvw->priv->missing_plugins = NULL; } static void bvw_check_if_video_decoder_is_missing (BaconVideoWidget * bvw) { GList *l; if (bvw->priv->media_has_video || bvw->priv->missing_plugins == NULL) return; for (l = bvw->priv->missing_plugins; l != NULL; l = l->next) { GstMessage *msg = GST_MESSAGE (l->data); gchar *d, *f; if ((d = gst_missing_plugin_message_get_installer_detail (msg))) { if ((f = strstr (d, "|decoder-")) && strstr (f, "video")) { GError *err; /* create a fake GStreamer error so we get a nice warning message */ err = g_error_new (GST_CORE_ERROR, GST_CORE_ERROR_MISSING_PLUGIN, "x"); msg = gst_message_new_error (GST_OBJECT (bvw->priv->play), err, NULL); g_error_free (err); err = bvw_error_from_gst_error (bvw, msg); gst_message_unref (msg); g_signal_emit (bvw, bvw_signals[SIGNAL_ERROR], 0, err->message); g_error_free (err); g_free (d); break; } g_free (d); } } } static void bvw_error_msg (BaconVideoWidget * bvw, GstMessage * msg) { GError *err = NULL; gchar *dbg = NULL; GST_DEBUG_BIN_TO_DOT_FILE (GST_BIN_CAST (bvw->priv->play), GST_DEBUG_GRAPH_SHOW_ALL ^ GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS, "totem-error"); gst_message_parse_error (msg, &err, &dbg); if (err) { GST_ERROR ("message = %s", GST_STR_NULL (err->message)); GST_ERROR ("domain = %d (%s)", err->domain, GST_STR_NULL (g_quark_to_string (err->domain))); GST_ERROR ("code = %d", err->code); GST_ERROR ("debug = %s", GST_STR_NULL (dbg)); GST_ERROR ("source = %" GST_PTR_FORMAT, msg->src); GST_ERROR ("uri = %s", GST_STR_NULL (bvw->priv->mrl)); g_message ("Error: %s\n%s\n", GST_STR_NULL (err->message), GST_STR_NULL (dbg)); g_error_free (err); } g_free (dbg); } static void get_media_size (BaconVideoWidget * bvw, gint * width, gint * height) { if (bvw->priv->logo_mode) { if (bvw->priv->logo_pixbuf) { *width = gdk_pixbuf_get_width (bvw->priv->logo_pixbuf); *height = gdk_pixbuf_get_height (bvw->priv->logo_pixbuf); } else { *width = 0; *height = 0; } } else { if (bvw->priv->media_has_video) { GValue *disp_par = NULL; guint movie_par_n, movie_par_d, disp_par_n, disp_par_d, num, den; /* Create and init the fraction value */ disp_par = g_new0 (GValue, 1); g_value_init (disp_par, GST_TYPE_FRACTION); /* Square pixel is our default */ gst_value_set_fraction (disp_par, 1, 1); /* Now try getting display's pixel aspect ratio */ if (bvw->priv->xoverlay) { GObjectClass *klass; GParamSpec *pspec; klass = G_OBJECT_GET_CLASS (bvw->priv->xoverlay); pspec = g_object_class_find_property (klass, "pixel-aspect-ratio"); if (pspec != NULL) { GValue disp_par_prop = { 0, }; g_value_init (&disp_par_prop, pspec->value_type); g_object_get_property (G_OBJECT (bvw->priv->xoverlay), "pixel-aspect-ratio", &disp_par_prop); if (!g_value_transform (&disp_par_prop, disp_par)) { GST_WARNING ("Transform failed, assuming pixel-aspect-ratio = 1/1"); gst_value_set_fraction (disp_par, 1, 1); } g_value_unset (&disp_par_prop); } } disp_par_n = gst_value_get_fraction_numerator (disp_par); disp_par_d = gst_value_get_fraction_denominator (disp_par); GST_DEBUG ("display PAR is %d/%d", disp_par_n, disp_par_d); /* If movie pixel aspect ratio is enforced, use that */ if (bvw->priv->ratio_type != BVW_RATIO_AUTO) { switch (bvw->priv->ratio_type) { case BVW_RATIO_SQUARE: movie_par_n = 1; movie_par_d = 1; break; case BVW_RATIO_FOURBYTHREE: movie_par_n = 4 * bvw->priv->video_height; movie_par_d = 3 * bvw->priv->video_width; break; case BVW_RATIO_ANAMORPHIC: movie_par_n = 16 * bvw->priv->video_height; movie_par_d = 9 * bvw->priv->video_width; break; case BVW_RATIO_DVB: movie_par_n = 20 * bvw->priv->video_height; movie_par_d = 9 * bvw->priv->video_width; break; /* handle these to avoid compiler warnings */ case BVW_RATIO_AUTO: default: movie_par_n = 0; movie_par_d = 0; g_assert_not_reached (); } } else { /* Use the movie pixel aspect ratio if any */ if (bvw->priv->movie_par) { movie_par_n = gst_value_get_fraction_numerator (bvw->priv->movie_par); movie_par_d = gst_value_get_fraction_denominator (bvw->priv->movie_par); } else { /* Square pixels */ movie_par_n = 1; movie_par_d = 1; } } GST_DEBUG ("movie PAR is %d/%d", movie_par_n, movie_par_d); if (bvw->priv->video_width == 0 || bvw->priv->video_height == 0) { GST_DEBUG ("width and/or height 0, assuming 1/1 ratio"); num = 1; den = 1; } else if (!gst_video_calculate_display_ratio (&num, &den, bvw->priv->video_width, bvw->priv->video_height, movie_par_n, movie_par_d, disp_par_n, disp_par_d)) { GST_WARNING ("overflow calculating display aspect ratio!"); num = 1; /* FIXME: what values to use here? */ den = 1; } GST_DEBUG ("calculated scaling ratio %d/%d for video %dx%d", num, den, bvw->priv->video_width, bvw->priv->video_height); /* now find a width x height that respects this display ratio. * prefer those that have one of w/h the same as the incoming video * using wd / hd = num / den */ /* start with same height, because of interlaced video */ /* check hd / den is an integer scale factor, and scale wd with the PAR */ if (bvw->priv->video_height % den == 0) { GST_DEBUG ("keeping video height"); bvw->priv->video_width_pixels = (guint) gst_util_uint64_scale (bvw->priv->video_height, num, den); bvw->priv->video_height_pixels = bvw->priv->video_height; } else if (bvw->priv->video_width % num == 0) { GST_DEBUG ("keeping video width"); bvw->priv->video_width_pixels = bvw->priv->video_width; bvw->priv->video_height_pixels = (guint) gst_util_uint64_scale (bvw->priv->video_width, den, num); } else { GST_DEBUG ("approximating while keeping video height"); bvw->priv->video_width_pixels = (guint) gst_util_uint64_scale (bvw->priv->video_height, num, den); bvw->priv->video_height_pixels = bvw->priv->video_height; } GST_DEBUG ("scaling to %dx%d", bvw->priv->video_width_pixels, bvw->priv->video_height_pixels); *width = bvw->priv->video_width_pixels; *height = bvw->priv->video_height_pixels; /* Free the PAR fraction */ g_value_unset (disp_par); g_free (disp_par); } else { *width = 0; *height = 0; } } } static void bacon_video_widget_realize (GtkWidget * widget) { BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (widget); GdkWindowAttr attributes; gint attributes_mask, w, h; GdkColor colour; GdkWindow *window; GdkEventMask event_mask; event_mask = gtk_widget_get_events (widget) | GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK; gtk_widget_set_events (widget, event_mask); GTK_WIDGET_CLASS (parent_class)->realize (widget); window = gtk_widget_get_window (widget); /* Creating our video window */ attributes.window_type = GDK_WINDOW_CHILD; attributes.x = 0; attributes.y = 0; attributes.width = widget->allocation.width; attributes.height = widget->allocation.height; attributes.wclass = GDK_INPUT_OUTPUT; attributes.event_mask = gtk_widget_get_events (widget); attributes.event_mask |= GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK; attributes_mask = GDK_WA_X | GDK_WA_Y; bvw->priv->video_window = gdk_window_new (window, &attributes, attributes_mask); gdk_window_set_user_data (bvw->priv->video_window, widget); gdk_color_parse ("black", &colour); gdk_colormap_alloc_color (gtk_widget_get_colormap (widget), &colour, TRUE, TRUE); gdk_window_set_background (window, &colour); gtk_widget_set_style (widget, gtk_style_attach (gtk_widget_get_style (widget), window)); GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); /* Connect to configure event on the top level window */ g_signal_connect (G_OBJECT (gtk_widget_get_toplevel (widget)), "configure-event", G_CALLBACK (bacon_video_widget_configure_event), bvw); /* get screen size changes */ g_signal_connect (G_OBJECT (gtk_widget_get_screen (widget)), "size-changed", G_CALLBACK (size_changed_cb), bvw); /* nice hack to show the logo fullsize, while still being resizable */ get_media_size (BACON_VIDEO_WIDGET (widget), &w, &h); /*ANDONI totem_widget_set_preferred_size (widget, w, h); */ bvw->priv->bacon_resize = bacon_resize_new (widget); } static void bacon_video_widget_unrealize (GtkWidget * widget) { BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (widget); g_object_unref (bvw->priv->bacon_resize); gdk_window_set_user_data (bvw->priv->video_window, NULL); gdk_window_destroy (bvw->priv->video_window); bvw->priv->video_window = NULL; GTK_WIDGET_CLASS (parent_class)->unrealize (widget); } static void bacon_video_widget_show (GtkWidget * widget) { BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (widget); GdkWindow *window; window = gtk_widget_get_window (widget); if (window) gdk_window_show (window); if (bvw->priv->video_window) gdk_window_show (bvw->priv->video_window); if (GTK_WIDGET_CLASS (parent_class)->show) GTK_WIDGET_CLASS (parent_class)->show (widget); } static void bacon_video_widget_hide (GtkWidget * widget) { BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (widget); GdkWindow *window; window = gtk_widget_get_window (widget); if (window) gdk_window_hide (window); if (bvw->priv->video_window) gdk_window_hide (bvw->priv->video_window); if (GTK_WIDGET_CLASS (parent_class)->hide) GTK_WIDGET_CLASS (parent_class)->hide (widget); } static gboolean bacon_video_widget_configure_event (GtkWidget * widget, GdkEventConfigure * event, BaconVideoWidget * bvw) { GstXOverlay *xoverlay = NULL; g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); xoverlay = bvw->priv->xoverlay; if (xoverlay != NULL && GST_IS_X_OVERLAY (xoverlay)) { gst_x_overlay_expose (xoverlay); } return FALSE; } static void size_changed_cb (GdkScreen * screen, BaconVideoWidget * bvw) { /* FIXME:Used for visualization */ //setup_vis (bvw); } static gboolean bacon_video_widget_expose_event (GtkWidget * widget, GdkEventExpose * event) { BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (widget); GstXOverlay *xoverlay; gboolean draw_logo; GdkWindow *win; if (event && event->count > 0) return TRUE; g_mutex_lock (bvw->priv->lock); xoverlay = bvw->priv->xoverlay; if (xoverlay == NULL) { bvw_update_interface_implementations (bvw); xoverlay = bvw->priv->xoverlay; } if (xoverlay != NULL) gst_object_ref (xoverlay); g_mutex_unlock (bvw->priv->lock); if (xoverlay != NULL && GST_IS_X_OVERLAY (xoverlay)) { #ifdef WIN32 gst_x_overlay_set_xwindow_id (bvw->priv->xoverlay, GDK_WINDOW_HWND (bvw->priv->video_window)); #else gst_x_overlay_set_xwindow_id (bvw->priv->xoverlay, GDK_WINDOW_XID (bvw->priv->video_window)); #endif } /* Start with a nice black canvas */ win = gtk_widget_get_window (widget); gdk_draw_rectangle (win, gtk_widget_get_style (widget)->black_gc, TRUE, 0, 0, widget->allocation.width, widget->allocation.height); /* if there's only audio and no visualisation, draw the logo as well */ draw_logo = bvw->priv->media_has_audio && !bvw->priv->media_has_video; if (bvw->priv->logo_mode || draw_logo) { if (bvw->priv->logo_pixbuf != NULL) { GdkPixbuf *frame; GdkPixbuf *drawing; guchar *pixels; int rowstride; gint width, height, alloc_width, alloc_height, logo_x, logo_y; gfloat ratio; /* Checking if allocated space is smaller than our logo */ width = gdk_pixbuf_get_width (bvw->priv->logo_pixbuf); height = gdk_pixbuf_get_height (bvw->priv->logo_pixbuf); alloc_width = widget->allocation.width; alloc_height = widget->allocation.height; if ((gfloat) alloc_width / width > (gfloat) alloc_height / height) { ratio = (gfloat) alloc_height / height; } else { ratio = (gfloat) alloc_width / width; } width *= ratio; height *= ratio; logo_x = (alloc_width / 2) - (width / 2); logo_y = (alloc_height / 2) - (height / 2); /* Drawing our frame */ if (bvw->priv->expand_logo && !bvw->priv->drawing_mode) { /* Scaling to available space */ frame = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, widget->allocation.width, widget->allocation.height); gdk_pixbuf_composite (bvw->priv->logo_pixbuf, frame, 0, 0, alloc_width, alloc_height, logo_x, logo_y, ratio, ratio, GDK_INTERP_BILINEAR, 255); rowstride = gdk_pixbuf_get_rowstride (frame); pixels = gdk_pixbuf_get_pixels (frame) + rowstride * event->area.y + event->area.x * 3; gdk_draw_rgb_image_dithalign (widget->window, widget->style->black_gc, event->area.x, event->area.y, event->area.width, event->area.height, GDK_RGB_DITHER_NORMAL, pixels, rowstride, event->area.x, event->area.y); g_object_unref (frame); } else { gdk_window_clear_area (win, 0, 0, widget->allocation.width, widget->allocation.height); if (width <= 1 || height <= 1) { if (xoverlay != NULL) gst_object_unref (xoverlay); gdk_window_end_paint (win); return TRUE; } frame = gdk_pixbuf_scale_simple (bvw->priv->logo_pixbuf, width, height, GDK_INTERP_BILINEAR); gdk_draw_pixbuf (win, gtk_widget_get_style (widget)->fg_gc[0], frame, 0, 0, logo_x, logo_y, width, height, GDK_RGB_DITHER_NONE, 0, 0); if (bvw->priv->drawing_mode && bvw->priv->drawing_pixbuf != NULL) { drawing = gdk_pixbuf_scale_simple (bvw->priv->drawing_pixbuf, width, height, GDK_INTERP_BILINEAR); gdk_draw_pixbuf (win, gtk_widget_get_style (widget)->fg_gc[0], drawing, 0, 0, logo_x, logo_y, width, height, GDK_RGB_DITHER_NONE, 0, 0); g_object_unref (drawing); } g_object_unref (frame); } } else if (win) { /* No pixbuf, just draw a black background then */ gdk_window_clear_area (win, 0, 0, widget->allocation.width, widget->allocation.height); } } else { /* no logo, pass the expose to gst */ if (xoverlay != NULL && GST_IS_X_OVERLAY (xoverlay)) gst_x_overlay_expose (xoverlay); else { /* No xoverlay to expose yet */ gdk_window_clear_area (win, 0, 0, widget->allocation.width, widget->allocation.height); } } if (xoverlay != NULL) gst_object_unref (xoverlay); return TRUE; } static GstNavigation * bvw_get_navigation_iface (BaconVideoWidget * bvw) { GstNavigation *nav = NULL; g_mutex_lock (bvw->priv->lock); if (bvw->priv->navigation == NULL) bvw_update_interface_implementations (bvw); if (bvw->priv->navigation) nav = gst_object_ref (GST_OBJECT (bvw->priv->navigation)); g_mutex_unlock (bvw->priv->lock); return nav; } /* need to use gstnavigation interface for these vmethods, to allow for the sink to map screen coordinates to video coordinates in the presence of e.g. hardware scaling */ static gboolean bacon_video_widget_motion_notify (GtkWidget * widget, GdkEventMotion * event) { gboolean res = FALSE; BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (widget); g_return_val_if_fail (bvw->priv->play != NULL, FALSE); if (!bvw->priv->logo_mode) { GstNavigation *nav = bvw_get_navigation_iface (bvw); if (nav) { gst_navigation_send_mouse_event (nav, "mouse-move", 0, event->x, event->y); gst_object_unref (GST_OBJECT (nav)); } } if (GTK_WIDGET_CLASS (parent_class)->motion_notify_event) res |= GTK_WIDGET_CLASS (parent_class)->motion_notify_event (widget, event); return res; } static gboolean bacon_video_widget_button_press (GtkWidget * widget, GdkEventButton * event) { gboolean res = FALSE; BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (widget); g_return_val_if_fail (bvw->priv->play != NULL, FALSE); if (!bvw->priv->logo_mode) { GstNavigation *nav = bvw_get_navigation_iface (bvw); if (nav) { gst_navigation_send_mouse_event (nav, "mouse-button-press", event->button, event->x, event->y); gst_object_unref (GST_OBJECT (nav)); /* FIXME need to check whether the backend will have handled * the button press res = TRUE; */ } } if (GTK_WIDGET_CLASS (parent_class)->button_press_event) res |= GTK_WIDGET_CLASS (parent_class)->button_press_event (widget, event); return res; } static gboolean bacon_video_widget_button_release (GtkWidget * widget, GdkEventButton * event) { gboolean res = FALSE; BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (widget); g_return_val_if_fail (bvw->priv->play != NULL, FALSE); if (!bvw->priv->logo_mode) { GstNavigation *nav = bvw_get_navigation_iface (bvw); if (nav) { gst_navigation_send_mouse_event (nav, "mouse-button-release", event->button, event->x, event->y); gst_object_unref (GST_OBJECT (nav)); res = TRUE; } } if (GTK_WIDGET_CLASS (parent_class)->button_release_event) res |= GTK_WIDGET_CLASS (parent_class)->button_release_event (widget, event); return res; } static void bacon_video_widget_size_request (GtkWidget * widget, GtkRequisition * requisition) { requisition->width = 240; requisition->height = 180; } static void resize_video_window (BaconVideoWidget * bvw) { const GtkAllocation *allocation; gfloat width, height, ratio, x, y; int w, h; g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); allocation = >K_WIDGET (bvw)->allocation; get_media_size (bvw, &w, &h); if (!w || !h) { w = allocation->width; h = allocation->height; } width = w; height = h; /* calculate ratio for fitting video into the available space */ if ((gfloat) allocation->width / width > (gfloat) allocation->height / height) { ratio = (gfloat) allocation->height / height; } else { ratio = (gfloat) allocation->width / width; } /* apply zoom factor */ ratio = ratio * bvw->priv->zoom; width *= ratio; height *= ratio; x = (allocation->width - width) / 2; y = (allocation->height - height) / 2; gdk_window_move_resize (bvw->priv->video_window, x, y, width, height); gtk_widget_queue_draw (GTK_WIDGET (bvw)); } static void bacon_video_widget_size_allocate (GtkWidget * widget, GtkAllocation * allocation) { BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (widget); g_return_if_fail (widget != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (widget)); widget->allocation = *allocation; if (GTK_WIDGET_REALIZED (widget)) { gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x, allocation->y, allocation->width, allocation->height); resize_video_window (bvw); } } static gboolean bvw_boolean_handled_accumulator (GSignalInvocationHint * ihint, GValue * return_accu, const GValue * handler_return, gpointer foobar) { gboolean continue_emission; gboolean signal_handled; signal_handled = g_value_get_boolean (handler_return); g_value_set_boolean (return_accu, signal_handled); continue_emission = !signal_handled; return continue_emission; } static void bacon_video_widget_class_init (BaconVideoWidgetClass * klass) { GObjectClass *object_class; GtkWidgetClass *widget_class; object_class = (GObjectClass *) klass; widget_class = (GtkWidgetClass *) klass; parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (object_class, sizeof (BaconVideoWidgetPrivate)); /* GtkWidget */ widget_class->size_request = bacon_video_widget_size_request; widget_class->size_allocate = bacon_video_widget_size_allocate; widget_class->realize = bacon_video_widget_realize; widget_class->unrealize = bacon_video_widget_unrealize; widget_class->show = bacon_video_widget_show; widget_class->hide = bacon_video_widget_hide; widget_class->expose_event = bacon_video_widget_expose_event; widget_class->motion_notify_event = bacon_video_widget_motion_notify; widget_class->button_press_event = bacon_video_widget_button_press; widget_class->button_release_event = bacon_video_widget_button_release; /* GObject */ object_class->set_property = bacon_video_widget_set_property; object_class->get_property = bacon_video_widget_get_property; object_class->finalize = bacon_video_widget_finalize; /* Properties */ g_object_class_install_property (object_class, PROP_LOGO_MODE, g_param_spec_boolean ("logo_mode", NULL, NULL, FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_EXPAND_LOGO, g_param_spec_boolean ("expand_logo", NULL, NULL, TRUE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_POSITION, g_param_spec_int ("position", NULL, NULL, 0, G_MAXINT, 0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_STREAM_LENGTH, g_param_spec_int64 ("stream_length", NULL, NULL, 0, G_MAXINT64, 0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_PLAYING, g_param_spec_boolean ("playing", NULL, NULL, FALSE, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_SEEKABLE, g_param_spec_boolean ("seekable", NULL, NULL, FALSE, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_VOLUME, g_param_spec_int ("volume", NULL, NULL, 0, 100, 0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_SHOW_CURSOR, g_param_spec_boolean ("showcursor", NULL, NULL, FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_MEDIADEV, g_param_spec_string ("mediadev", NULL, NULL, FALSE, G_PARAM_READWRITE)); /* Signals */ bvw_signals[SIGNAL_ERROR] = g_signal_new ("error", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (BaconVideoWidgetClass, error), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); bvw_signals[SIGNAL_EOS] = g_signal_new ("eos", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (BaconVideoWidgetClass, eos), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); bvw_signals[SIGNAL_SEGMENT_DONE] = g_signal_new ("segment_done", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (BaconVideoWidgetClass, segment_done), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); bvw_signals[SIGNAL_READY_TO_SEEK] = g_signal_new ("ready_to_seek", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (BaconVideoWidgetClass, ready_to_seek), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); bvw_signals[SIGNAL_GOT_DURATION] = g_signal_new ("got_duration", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (BaconVideoWidgetClass, got_duration), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); bvw_signals[SIGNAL_GOT_METADATA] = g_signal_new ("got-metadata", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (BaconVideoWidgetClass, got_metadata), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); bvw_signals[SIGNAL_REDIRECT] = g_signal_new ("got-redirect", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (BaconVideoWidgetClass, got_redirect), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); bvw_signals[SIGNAL_TITLE_CHANGE] = g_signal_new ("title-change", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (BaconVideoWidgetClass, title_change), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); bvw_signals[SIGNAL_CHANNELS_CHANGE] = g_signal_new ("channels-change", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (BaconVideoWidgetClass, channels_change), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); bvw_signals[SIGNAL_TICK] = g_signal_new ("tick", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (BaconVideoWidgetClass, tick), NULL, NULL, baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN, G_TYPE_NONE, 4, G_TYPE_INT64, G_TYPE_INT64, G_TYPE_FLOAT, G_TYPE_BOOLEAN); bvw_signals[SIGNAL_BUFFERING] = g_signal_new ("buffering", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (BaconVideoWidgetClass, buffering), NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); bvw_signals[SIGNAL_STATE_CHANGE] = g_signal_new ("state_change", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (BaconVideoWidgetClass, state_change), NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); /* missing plugins signal: * - string array: details of missing plugins for libgimme-codec * - string array: details of missing plugins (human-readable strings) * - bool: if we managed to start playing something even without those plugins * return value: callback must return TRUE to indicate that it took some * action, FALSE will be interpreted as no action taken */ bvw_signals[SIGNAL_MISSING_PLUGINS] = g_signal_new ("missing-plugins", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, 0, /* signal is enough, we don't need a vfunc */ bvw_boolean_handled_accumulator, NULL, baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN, G_TYPE_BOOLEAN, 3, G_TYPE_STRV, G_TYPE_STRV, G_TYPE_BOOLEAN); } static void bacon_video_widget_init (BaconVideoWidget * bvw) { BaconVideoWidgetPrivate *priv; GTK_WIDGET_SET_FLAGS (GTK_WIDGET (bvw), GTK_CAN_FOCUS); GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET (bvw), GTK_DOUBLE_BUFFERED); bvw->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (bvw, BACON_TYPE_VIDEO_WIDGET, BaconVideoWidgetPrivate); priv->update_id = 0; priv->tagcache = NULL; priv->audiotags = NULL; priv->videotags = NULL; priv->zoom = 1.0; priv->lock = g_mutex_new (); bvw->priv->missing_plugins = NULL; bvw->priv->plugin_install_in_progress = FALSE; } static void shrink_toplevel (BaconVideoWidget * bvw) { GtkWidget *toplevel, *widget; widget = GTK_WIDGET (bvw); toplevel = gtk_widget_get_toplevel (widget); if (toplevel != widget && GTK_IS_WINDOW (toplevel) != FALSE) gtk_window_resize (GTK_WINDOW (toplevel), 1, 1); } static gboolean bvw_query_timeout (BaconVideoWidget * bvw); static void parse_stream_info (BaconVideoWidget * bvw); static void bvw_update_stream_info (BaconVideoWidget * bvw) { parse_stream_info (bvw); /* if we're not interactive, we want to announce metadata * only later when we can be sure we got it all */ if (bvw->priv->use_type == BVW_USE_TYPE_VIDEO || bvw->priv->use_type == BVW_USE_TYPE_AUDIO) { g_signal_emit (bvw, bvw_signals[SIGNAL_GOT_METADATA], 0, NULL); g_signal_emit (bvw, bvw_signals[SIGNAL_CHANNELS_CHANGE], 0); } } static void bvw_handle_application_message (BaconVideoWidget * bvw, GstMessage * msg) { const gchar *msg_name; GdkWindow *window; msg_name = gst_structure_get_name (msg->structure); g_return_if_fail (msg_name != NULL); GST_DEBUG ("Handling application message: %" GST_PTR_FORMAT, msg->structure); if (strcmp (msg_name, "stream-changed") == 0) { bvw_update_stream_info (bvw); } else if (strcmp (msg_name, "video-size") == 0) { /* if we're not interactive, we want to announce metadata * only later when we can be sure we got it all */ if (bvw->priv->use_type == BVW_USE_TYPE_VIDEO || bvw->priv->use_type == BVW_USE_TYPE_AUDIO) { g_signal_emit (bvw, bvw_signals[SIGNAL_GOT_METADATA], 0, NULL); } if (bvw->priv->auto_resize && !bvw->priv->fullscreen_mode && !bvw->priv->window_resized) { bacon_video_widget_set_scale_ratio (bvw, 1); } else { bacon_video_widget_size_allocate (GTK_WIDGET (bvw), >K_WIDGET (bvw)->allocation); /* Uhm, so this ugly hack here makes media loading work for * weird laptops with NVIDIA graphics cards... Dunno what the * bug is really, but hey, it works. :). */ window = gtk_widget_get_window (GTK_WIDGET (bvw)); if (window) { gdk_window_hide (window); gdk_window_show (window); bacon_video_widget_expose_event (GTK_WIDGET (bvw), NULL); } } bvw->priv->window_resized = TRUE; } else { g_message ("Unhandled application message %s", msg_name); } } static void bvw_handle_element_message (BaconVideoWidget * bvw, GstMessage * msg) { const gchar *type_name = NULL; gchar *src_name; src_name = gst_object_get_name (msg->src); if (msg->structure) type_name = gst_structure_get_name (msg->structure); GST_DEBUG ("from %s: %" GST_PTR_FORMAT, src_name, msg->structure); if (type_name == NULL) goto unhandled; if (strcmp (type_name, "redirect") == 0) { const gchar *new_location; new_location = gst_structure_get_string (msg->structure, "new-location"); GST_DEBUG ("Got redirect to '%s'", GST_STR_NULL (new_location)); if (new_location && *new_location) { g_signal_emit (bvw, bvw_signals[SIGNAL_REDIRECT], 0, new_location); goto done; } } else if (strcmp (type_name, "progress") == 0) { /* this is similar to buffering messages, but shouldn't affect pipeline * state; qtdemux emits those when headers are after movie data and * it is in streaming mode and has to receive all the movie data first */ if (!bvw->priv->buffering) { gint percent = 0; if (gst_structure_get_int (msg->structure, "percent", &percent)) g_signal_emit (bvw, bvw_signals[SIGNAL_BUFFERING], 0, percent); } goto done; } else if (strcmp (type_name, "prepare-xwindow-id") == 0 || strcmp (type_name, "have-xwindow-id") == 0) { /* we handle these synchronously or want to ignore them */ goto done; } else if (gst_is_missing_plugin_message (msg)) { bvw->priv->missing_plugins = g_list_prepend (bvw->priv->missing_plugins, gst_message_ref (msg)); goto done; } else { #if 0 GstNavigationMessageType nav_msg_type = gst_navigation_message_get_type (msg); switch (nav_msg_type) { case GST_NAVIGATION_MESSAGE_MOUSE_OVER: { gint active; if (!gst_navigation_message_parse_mouse_over (msg, &active)) break; if (active) { if (bvw->priv->cursor == NULL) { bvw->priv->cursor = gdk_cursor_new (GDK_HAND2); } } else { if (bvw->priv->cursor != NULL) { gdk_cursor_unref (bvw->priv->cursor); bvw->priv->cursor = NULL; } } gdk_window_set_cursor (gtk_widget_get_window (GTK_WIDGET (bvw)), bvw->priv->cursor); break; } default: break; } #endif } unhandled: GST_WARNING ("Unhandled element message %s from %s: %" GST_PTR_FORMAT, GST_STR_NULL (type_name), GST_STR_NULL (src_name), msg); done: g_free (src_name); } /* This is a hack to avoid doing poll_for_state_change() indirectly * from the bus message callback (via EOS => totem => close => wait for ready) * and deadlocking there. We need something like a * gst_bus_set_auto_flushing(bus, FALSE) ... */ static gboolean bvw_signal_eos_delayed (gpointer user_data) { BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (user_data); g_signal_emit (bvw, bvw_signals[SIGNAL_EOS], 0, NULL); bvw->priv->eos_id = 0; return FALSE; } static void bvw_reconfigure_tick_timeout (BaconVideoWidget * bvw, guint msecs) { if (bvw->priv->update_id != 0) { GST_INFO ("removing tick timeout"); g_source_remove (bvw->priv->update_id); bvw->priv->update_id = 0; } if (msecs > 0) { GST_INFO ("adding tick timeout (at %ums)", msecs); bvw->priv->update_id = g_timeout_add (msecs, (GSourceFunc) bvw_query_timeout, bvw); } } /* returns TRUE if the error/signal has been handled and should be ignored */ static gboolean bvw_emit_missing_plugins_signal (BaconVideoWidget * bvw, gboolean prerolled) { gboolean handled = FALSE; gchar **descriptions, **details; details = bvw_get_missing_plugins_details (bvw->priv->missing_plugins); descriptions = bvw_get_missing_plugins_descriptions (bvw->priv->missing_plugins); GST_LOG ("emitting missing-plugins signal (prerolled=%d)", prerolled); g_signal_emit (bvw, bvw_signals[SIGNAL_MISSING_PLUGINS], 0, details, descriptions, prerolled, &handled); GST_DEBUG ("missing-plugins signal was %shandled", (handled) ? "" : "not "); g_strfreev (descriptions); g_strfreev (details); if (handled) { bvw->priv->plugin_install_in_progress = TRUE; bvw_clear_missing_plugins_messages (bvw); } /* if it wasn't handled, we might need the list of missing messages again * later to create a proper error message with details of what's missing */ return handled; } /* returns TRUE if the error has been handled and should be ignored */ static gboolean bvw_check_missing_plugins_error (BaconVideoWidget * bvw, GstMessage * err_msg) { gboolean error_src_is_playbin; gboolean ret = FALSE; GError *err = NULL; if (bvw->priv->missing_plugins == NULL) { GST_DEBUG ("no missing-plugin messages"); return FALSE; } gst_message_parse_error (err_msg, &err, NULL); error_src_is_playbin = (err_msg->src == GST_OBJECT_CAST (bvw->priv->play)); /* If we get a WRONG_TYPE error from playbin itself it's most likely because * there is a subtitle stream we can decode, but no video stream to overlay * it on. Since there were missing-plugins messages, we'll assume this is * because we cannot decode the video stream (this should probably be fixed * in playbin, but for now we'll work around it here) */ if (is_error (err, CORE, MISSING_PLUGIN) || is_error (err, STREAM, CODEC_NOT_FOUND) || (is_error (err, STREAM, WRONG_TYPE) && error_src_is_playbin)) { ret = bvw_emit_missing_plugins_signal (bvw, FALSE); if (ret) { /* If it was handled, stop playback to make sure we're not processing any * other error messages that might also be on the bus */ bacon_video_widget_stop (bvw); } } else { GST_DEBUG ("not an error code we are looking for, doing nothing"); } g_error_free (err); return ret; } /* returns TRUE if the error/signal has been handled and should be ignored */ static gboolean bvw_check_missing_plugins_on_preroll (BaconVideoWidget * bvw) { if (bvw->priv->missing_plugins == NULL) { GST_DEBUG ("no missing-plugin messages"); return FALSE; } return bvw_emit_missing_plugins_signal (bvw, TRUE); } static void bvw_bus_message_cb (GstBus * bus, GstMessage * message, gpointer data) { BaconVideoWidget *bvw = (BaconVideoWidget *) data; GstMessageType msg_type; g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); msg_type = GST_MESSAGE_TYPE (message); /* somebody else is handling the message, probably in poll_for_state_change */ if (bvw->priv->ignore_messages_mask & msg_type) { GST_LOG ("Ignoring %s message from element %" GST_PTR_FORMAT " as requested: %" GST_PTR_FORMAT, GST_MESSAGE_TYPE_NAME (message), message->src, message); return; } if (msg_type != GST_MESSAGE_STATE_CHANGED) { gchar *src_name = gst_object_get_name (message->src); GST_LOG ("Handling %s message from element %s", gst_message_type_get_name (msg_type), src_name); g_free (src_name); } switch (msg_type) { case GST_MESSAGE_ERROR: { bvw_error_msg (bvw, message); if (!bvw_check_missing_plugins_error (bvw, message)) { GError *error; error = bvw_error_from_gst_error (bvw, message); bvw->priv->target_state = GST_STATE_NULL; if (bvw->priv->play) gst_element_set_state (bvw->priv->play, GST_STATE_NULL); bvw->priv->buffering = FALSE; g_signal_emit (bvw, bvw_signals[SIGNAL_ERROR], 0, error->message, TRUE, FALSE); g_error_free (error); } break; } case GST_MESSAGE_WARNING: { GST_WARNING ("Warning message: %" GST_PTR_FORMAT, message); break; } case GST_MESSAGE_TAG: { GstTagList *tag_list, *result; GstElementFactory *f; gst_message_parse_tag (message, &tag_list); GST_DEBUG ("Tags: %" GST_PTR_FORMAT, tag_list); /* all tags (replace previous tags, title/artist/etc. might change * in the middle of a stream, e.g. with radio streams) */ result = gst_tag_list_merge (bvw->priv->tagcache, tag_list, GST_TAG_MERGE_REPLACE); if (bvw->priv->tagcache) gst_tag_list_free (bvw->priv->tagcache); bvw->priv->tagcache = result; /* media-type-specific tags */ if (GST_IS_ELEMENT (message->src) && (f = gst_element_get_factory (GST_ELEMENT (message->src)))) { const gchar *klass = gst_element_factory_get_klass (f); GstTagList **cache = NULL; if (g_strrstr (klass, "Video")) { cache = &bvw->priv->videotags; } else if (g_strrstr (klass, "Audio")) { cache = &bvw->priv->audiotags; } if (cache) { result = gst_tag_list_merge (*cache, tag_list, GST_TAG_MERGE_REPLACE); if (*cache) gst_tag_list_free (*cache); *cache = result; } } /* clean up */ gst_tag_list_free (tag_list); /* if we're not interactive, we want to announce metadata * only later when we can be sure we got it all */ if (bvw->priv->use_type == BVW_USE_TYPE_VIDEO || bvw->priv->use_type == BVW_USE_TYPE_AUDIO) { /* If we updated metadata and we have a new title, send it * using TITLE_CHANGE, so that the UI knows it has a new * streaming title */ GValue value = { 0, }; g_signal_emit (bvw, bvw_signals[SIGNAL_GOT_METADATA], 0); bacon_video_widget_get_metadata (bvw, BVW_INFO_TITLE, &value); if (g_value_get_string (&value)) g_signal_emit (bvw, bvw_signals[SIGNAL_TITLE_CHANGE], 0, g_value_get_string (&value)); g_value_unset (&value); } break; } case GST_MESSAGE_EOS: GST_DEBUG ("EOS message"); /* update slider one last time */ bvw_query_timeout (bvw); if (bvw->priv->eos_id == 0) bvw->priv->eos_id = g_idle_add (bvw_signal_eos_delayed, bvw); break; case GST_MESSAGE_BUFFERING: { gint percent = 0; /* FIXME: use gst_message_parse_buffering() once core 0.10.11 is out */ gst_structure_get_int (message->structure, "buffer-percent", &percent); g_signal_emit (bvw, bvw_signals[SIGNAL_BUFFERING], 0, percent); if (percent >= 100) { /* a 100% message means buffering is done */ bvw->priv->buffering = FALSE; /* if the desired state is playing, go back */ if (bvw->priv->target_state == GST_STATE_PLAYING) { GST_DEBUG ("Buffering done, setting pipeline back to PLAYING"); gst_element_set_state (bvw->priv->play, GST_STATE_PLAYING); } else { GST_DEBUG ("Buffering done, keeping pipeline PAUSED"); } } else if (bvw->priv->buffering == FALSE && bvw->priv->target_state == GST_STATE_PLAYING) { GstState cur_state; gst_element_get_state (bvw->priv->play, &cur_state, NULL, 0); if (cur_state == GST_STATE_PLAYING) { GST_DEBUG ("Buffering ... temporarily pausing playback"); gst_element_set_state (bvw->priv->play, GST_STATE_PAUSED); } else { GST_DEBUG ("Buffering ... prerolling, not doing anything"); } bvw->priv->buffering = TRUE; } else { GST_LOG ("Buffering ... %d", percent); } break; } case GST_MESSAGE_APPLICATION: { bvw_handle_application_message (bvw, message); break; } case GST_MESSAGE_STATE_CHANGED: { GstState old_state, new_state; gchar *src_name; gst_message_parse_state_changed (message, &old_state, &new_state, NULL); if (old_state == new_state) break; /* we only care about playbin (pipeline) state changes */ if (GST_MESSAGE_SRC (message) != GST_OBJECT (bvw->priv->play)) break; src_name = gst_object_get_name (message->src); GST_DEBUG ("%s changed state from %s to %s", src_name, gst_element_state_get_name (old_state), gst_element_state_get_name (new_state)); g_free (src_name); /* now do stuff */ if (new_state <= GST_STATE_PAUSED) { bvw_query_timeout (bvw); bvw_reconfigure_tick_timeout (bvw, 0); g_signal_emit (bvw, bvw_signals[SIGNAL_STATE_CHANGE], 0, FALSE); } else if (new_state == GST_STATE_PAUSED) { bvw_reconfigure_tick_timeout (bvw, 500); g_signal_emit (bvw, bvw_signals[SIGNAL_STATE_CHANGE], 0, FALSE); } else if (new_state > GST_STATE_PAUSED) { bvw_reconfigure_tick_timeout (bvw, 200); g_signal_emit (bvw, bvw_signals[SIGNAL_STATE_CHANGE], 0, TRUE); } if (old_state == GST_STATE_READY && new_state == GST_STATE_PAUSED) { GST_DEBUG_BIN_TO_DOT_FILE (GST_BIN_CAST (bvw->priv->play), GST_DEBUG_GRAPH_SHOW_ALL ^ GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS, "totem-prerolled"); bvw->priv->stream_length = 0; if (bacon_video_widget_get_stream_length (bvw) == 0) { GST_DEBUG ("Failed to query duration in PAUSED state?!"); } break; bvw_update_stream_info (bvw); if (!bvw_check_missing_plugins_on_preroll (bvw)) { /* show a non-fatal warning message if we can't decode the video */ bvw_check_if_video_decoder_is_missing (bvw); } g_signal_emit (bvw, bvw_signals[SIGNAL_READY_TO_SEEK], 0, FALSE); } else if (old_state == GST_STATE_PAUSED && new_state == GST_STATE_READY) { bvw->priv->media_has_video = FALSE; bvw->priv->media_has_audio = FALSE; /* clean metadata cache */ if (bvw->priv->tagcache) { gst_tag_list_free (bvw->priv->tagcache); bvw->priv->tagcache = NULL; } if (bvw->priv->audiotags) { gst_tag_list_free (bvw->priv->audiotags); bvw->priv->audiotags = NULL; } if (bvw->priv->videotags) { gst_tag_list_free (bvw->priv->videotags); bvw->priv->videotags = NULL; } bvw->priv->video_width = 0; bvw->priv->video_height = 0; } break; } case GST_MESSAGE_ELEMENT: { bvw_handle_element_message (bvw, message); break; } case GST_MESSAGE_DURATION: { /* force _get_stream_length() to do new duration query */ /*bvw->priv->stream_length = 0; if (bacon_video_widget_get_stream_length (bvw) == 0) { GST_DEBUG ("Failed to query duration after DURATION message?!"); } break; */ } case GST_MESSAGE_CLOCK_PROVIDE: case GST_MESSAGE_CLOCK_LOST: case GST_MESSAGE_NEW_CLOCK: case GST_MESSAGE_STATE_DIRTY: break; default: GST_LOG ("Unhandled message: %" GST_PTR_FORMAT, message); break; } } static void got_video_size (BaconVideoWidget * bvw) { GstMessage *msg; g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); msg = gst_message_new_application (GST_OBJECT (bvw->priv->play), gst_structure_new ("video-size", "width", G_TYPE_INT, bvw->priv->video_width, "height", G_TYPE_INT, bvw->priv->video_height, NULL)); gst_element_post_message (bvw->priv->play, msg); } static void got_time_tick (GstElement * play, gint64 time_nanos, BaconVideoWidget * bvw) { gboolean seekable; g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); bvw->priv->current_time = (gint64) time_nanos / GST_MSECOND; if (bvw->priv->stream_length == 0) { bvw->priv->current_position = 0; } else { bvw->priv->current_position = (gdouble) bvw->priv->current_time / bvw->priv->stream_length; } if (bvw->priv->stream_length == 0) { seekable = bacon_video_widget_is_seekable (bvw); } else { if (bvw->priv->seekable == -1) g_object_notify (G_OBJECT (bvw), "seekable"); seekable = TRUE; } bvw->priv->is_live = (bvw->priv->stream_length == 0); /* GST_INFO ("%" GST_TIME_FORMAT ",%" GST_TIME_FORMAT " %s", GST_TIME_ARGS (bvw->priv->current_time), GST_TIME_ARGS (bvw->priv->stream_length), (seekable) ? "TRUE" : "FALSE"); */ g_signal_emit (bvw, bvw_signals[SIGNAL_TICK], 0, bvw->priv->current_time, bvw->priv->stream_length, bvw->priv->current_position, seekable); } static void bvw_set_device_on_element (BaconVideoWidget * bvw, GstElement * element) { if (bvw->priv->media_device == NULL) return; if (g_object_class_find_property (G_OBJECT_GET_CLASS (element), "device")) { GST_DEBUG ("Setting device to '%s'", bvw->priv->media_device); g_object_set (element, "device", bvw->priv->media_device, NULL); } } static void playbin_source_notify_cb (GObject * play, GParamSpec * p, BaconVideoWidget * bvw) { GObject *source = NULL; /* CHECKME: do we really need these taglist frees here (tpm)? */ if (bvw->priv->tagcache) { gst_tag_list_free (bvw->priv->tagcache); bvw->priv->tagcache = NULL; } if (bvw->priv->audiotags) { gst_tag_list_free (bvw->priv->audiotags); bvw->priv->audiotags = NULL; } if (bvw->priv->videotags) { gst_tag_list_free (bvw->priv->videotags); bvw->priv->videotags = NULL; } g_object_get (play, "source", &source, NULL); if (source) { GST_DEBUG ("Got source of type %s", G_OBJECT_TYPE_NAME (source)); bvw_set_device_on_element (bvw, GST_ELEMENT (source)); g_object_unref (source); } } static gboolean bvw_query_timeout (BaconVideoWidget * bvw) { GstFormat fmt = GST_FORMAT_TIME; gint64 prev_len = -1; gint64 pos = -1, len = -1; /* check length/pos of stream */ prev_len = bvw->priv->stream_length; if (gst_element_query_duration (bvw->priv->play, &fmt, &len)) { if (len != -1 && fmt == GST_FORMAT_TIME) { bvw->priv->stream_length = len / GST_MSECOND; if (bvw->priv->stream_length != prev_len) { g_signal_emit (bvw, bvw_signals[SIGNAL_GOT_METADATA], 0, NULL); } } } else { GST_INFO ("could not get duration"); } if (gst_element_query_position (bvw->priv->play, &fmt, &pos)) { if (pos != -1 && fmt == GST_FORMAT_TIME) { got_time_tick (GST_ELEMENT (bvw->priv->play), pos, bvw); } } else { GST_INFO ("could not get position"); } return TRUE; } static void caps_set (GObject * obj, GParamSpec * pspec, BaconVideoWidget * bvw) { GstPad *pad = GST_PAD (obj); GstStructure *s; GstCaps *caps; if (!(caps = gst_pad_get_negotiated_caps (pad))) return; /* Get video decoder caps */ s = gst_caps_get_structure (caps, 0); if (s) { /* We need at least width/height and framerate */ if (! (gst_structure_get_fraction (s, "framerate", &bvw->priv->video_fps_n, &bvw->priv->video_fps_d) && gst_structure_get_int (s, "width", &bvw->priv->video_width) && gst_structure_get_int (s, "height", &bvw->priv->video_height))) return; /* Get the movie PAR if available */ bvw->priv->movie_par = gst_structure_get_value (s, "pixel-aspect-ratio"); /* Now set for real */ bacon_video_widget_set_aspect_ratio (bvw, bvw->priv->ratio_type); } gst_caps_unref (caps); } static void parse_stream_info (BaconVideoWidget * bvw) { GstPad *videopad = NULL; gint n_audio, n_video; g_object_get (G_OBJECT (bvw->priv->play), "n-audio", &n_audio, "n-video", &n_video, NULL); bvw->priv->media_has_video = FALSE; if (n_video > 0) { gint i; bvw->priv->media_has_video = TRUE; if (bvw->priv->video_window) gdk_window_show (bvw->priv->video_window); for (i = 0; i < n_video && videopad == NULL; i++) g_signal_emit_by_name (bvw->priv->play, "get-video-pad", i, &videopad); } bvw->priv->media_has_audio = FALSE; if (n_audio > 0) { bvw->priv->media_has_audio = TRUE; if (!bvw->priv->media_has_video && bvw->priv->video_window) { gint flags; g_object_get (bvw->priv->play, "flags", &flags, NULL); gdk_window_hide (bvw->priv->video_window); GTK_WIDGET_SET_FLAGS (GTK_WIDGET (bvw), GTK_DOUBLE_BUFFERED); flags &= ~GST_PLAY_FLAGS_VIS; g_object_set (bvw->priv->play, "flags", flags, NULL); } } if (videopad) { GstCaps *caps; if ((caps = gst_pad_get_negotiated_caps (videopad))) { caps_set (G_OBJECT (videopad), NULL, bvw); gst_caps_unref (caps); } g_signal_connect (videopad, "notify::caps", G_CALLBACK (caps_set), bvw); gst_object_unref (videopad); } } static void playbin_stream_changed_cb (GstElement * obj, gpointer data) { BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (data); GstMessage *msg; /* we're being called from the streaming thread, so don't do anything here */ GST_LOG ("streams have changed"); msg = gst_message_new_application (GST_OBJECT (bvw->priv->play), gst_structure_new ("stream-changed", NULL)); gst_element_post_message (bvw->priv->play, msg); } static void bacon_video_widget_finalize (GObject * object) { BaconVideoWidget *bvw = (BaconVideoWidget *) object; GST_INFO ("finalizing"); if (bvw->priv->bus) { /* make bus drop all messages to make sure none of our callbacks is ever * called again (main loop might be run again to display error dialog) */ gst_bus_set_flushing (bvw->priv->bus, TRUE); if (bvw->priv->sig_bus_sync) g_signal_handler_disconnect (bvw->priv->bus, bvw->priv->sig_bus_sync); if (bvw->priv->sig_bus_async) g_signal_handler_disconnect (bvw->priv->bus, bvw->priv->sig_bus_async); gst_object_unref (bvw->priv->bus); bvw->priv->bus = NULL; } g_free (bvw->priv->media_device); bvw->priv->media_device = NULL; g_free (bvw->priv->mrl); bvw->priv->mrl = NULL; if (bvw->priv->play != NULL && GST_IS_ELEMENT (bvw->priv->play)) { gst_element_set_state (bvw->priv->play, GST_STATE_NULL); gst_object_unref (bvw->priv->play); bvw->priv->play = NULL; } if (bvw->priv->update_id) { g_source_remove (bvw->priv->update_id); bvw->priv->update_id = 0; } if (bvw->priv->interface_update_id) { g_source_remove (bvw->priv->interface_update_id); bvw->priv->interface_update_id = 0; } if (bvw->priv->tagcache) { gst_tag_list_free (bvw->priv->tagcache); bvw->priv->tagcache = NULL; } if (bvw->priv->audiotags) { gst_tag_list_free (bvw->priv->audiotags); bvw->priv->audiotags = NULL; } if (bvw->priv->videotags) { gst_tag_list_free (bvw->priv->videotags); bvw->priv->videotags = NULL; } if (bvw->priv->cursor != NULL) { gdk_cursor_unref (bvw->priv->cursor); bvw->priv->cursor = NULL; } if (bvw->priv->eos_id != 0) g_source_remove (bvw->priv->eos_id); g_mutex_free (bvw->priv->lock); G_OBJECT_CLASS (parent_class)->finalize (object); } static void bacon_video_widget_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { BaconVideoWidget *bvw; bvw = BACON_VIDEO_WIDGET (object); switch (property_id) { case PROP_LOGO_MODE: bacon_video_widget_set_logo_mode (bvw, g_value_get_boolean (value)); break; case PROP_EXPAND_LOGO: bvw->priv->expand_logo = g_value_get_boolean (value); break; case PROP_SHOW_CURSOR: bacon_video_widget_set_show_cursor (bvw, g_value_get_boolean (value)); break; case PROP_VOLUME: bacon_video_widget_set_volume (bvw, g_value_get_double (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void bacon_video_widget_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { BaconVideoWidget *bvw; bvw = BACON_VIDEO_WIDGET (object); switch (property_id) { case PROP_LOGO_MODE: g_value_set_boolean (value, bacon_video_widget_get_logo_mode (bvw)); break; case PROP_EXPAND_LOGO: g_value_set_boolean (value, bvw->priv->expand_logo); break; case PROP_POSITION: g_value_set_int64 (value, bacon_video_widget_get_position (bvw)); break; case PROP_STREAM_LENGTH: g_value_set_int64 (value, bacon_video_widget_get_stream_length (bvw)); break; case PROP_PLAYING: g_value_set_boolean (value, bacon_video_widget_is_playing (bvw)); break; case PROP_SEEKABLE: g_value_set_boolean (value, bacon_video_widget_is_seekable (bvw)); break; case PROP_SHOW_CURSOR: g_value_set_boolean (value, bacon_video_widget_get_show_cursor (bvw)); break; case PROP_VOLUME: g_value_set_int (value, bacon_video_widget_get_volume (bvw)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } /* ============================================================= */ /* */ /* Public Methods */ /* */ /* ============================================================= */ /** * bacon_video_widget_get_backend_name: * @bvw: a #BaconVideoWidget * * Returns the name string for @bvw. For the GStreamer backend, it is the output * of gst_version_string(). * * Return value: the backend's name; free with g_free() **/ char * bacon_video_widget_get_backend_name (BaconVideoWidget * bvw) { return gst_version_string (); } /** * bacon_video_widget_get_subtitle: * @bvw: a #BaconVideoWidget * * Returns the index of the current subtitles. * * If the widget is not playing, %-2 will be returned. If no subtitles are * being used, %-1 is returned. * * Return value: the subtitle index **/ int bacon_video_widget_get_subtitle (BaconVideoWidget * bvw) { int subtitle = -1; gint flags; g_return_val_if_fail (bvw != NULL, -2); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), -2); g_return_val_if_fail (bvw->priv->play != NULL, -2); g_object_get (bvw->priv->play, "flags", &flags, NULL); if ((flags & GST_PLAY_FLAGS_TEXT) == 0) return -2; g_object_get (G_OBJECT (bvw->priv->play), "current-text", &subtitle, NULL); return subtitle; } /** * bacon_video_widget_set_subtitle: * @bvw: a #BaconVideoWidget * @subtitle: a subtitle index * * Sets the subtitle index for @bvw. If @subtitle is %-1, no subtitles will * be used. **/ void bacon_video_widget_set_subtitle (BaconVideoWidget * bvw, int subtitle) { gint flags; g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (bvw->priv->play != NULL); g_object_get (bvw->priv->play, "flags", &flags, NULL); if (subtitle == -2) { flags &= ~GST_PLAY_FLAGS_TEXT; subtitle = -1; } else { flags |= GST_PLAY_FLAGS_TEXT; } g_object_set (bvw->priv->play, "flags", flags, "current-text", subtitle, NULL); } /** * bacon_video_widget_has_next_track: * @bvw: a #BaconVideoWidget * * Determines whether there is another track after the current one, typically * as a chapter on a DVD. * * Return value: %TRUE if there is another track, %FALSE otherwise **/ gboolean bacon_video_widget_has_next_track (BaconVideoWidget * bvw) { //FIXME return TRUE; } /** * bacon_video_widget_has_previous_track: * @bvw: a #BaconVideoWidget * * Determines whether there is another track before the current one, typically * as a chapter on a DVD. * * Return value: %TRUE if there is another track, %FALSE otherwise **/ gboolean bacon_video_widget_has_previous_track (BaconVideoWidget * bvw) { //FIXME return TRUE; } static GList * get_lang_list_for_type (BaconVideoWidget * bvw, const gchar * type_name) { GList *ret = NULL; gint num = 0; if (g_str_equal (type_name, "AUDIO")) { gint i, n; g_object_get (G_OBJECT (bvw->priv->play), "n-audio", &n, NULL); if (n == 0) return NULL; for (i = 0; i < n; i++) { GstTagList *tags = NULL; g_signal_emit_by_name (G_OBJECT (bvw->priv->play), "get-audio-tags", i, &tags); if (tags) { gchar *lc = NULL, *cd = NULL; gst_tag_list_get_string (tags, GST_TAG_LANGUAGE_CODE, &lc); gst_tag_list_get_string (tags, GST_TAG_CODEC, &lc); if (lc) { ret = g_list_prepend (ret, lc); g_free (cd); } else if (cd) { ret = g_list_prepend (ret, cd); } else { ret = g_list_prepend (ret, g_strdup_printf ("%s %d", type_name, num++)); } gst_tag_list_free (tags); } else { ret = g_list_prepend (ret, g_strdup_printf ("%s %d", type_name, num++)); } } } else if (g_str_equal (type_name, "TEXT")) { gint i, n = 0; g_object_get (G_OBJECT (bvw->priv->play), "n-text", &n, NULL); if (n == 0) return NULL; for (i = 0; i < n; i++) { GstTagList *tags = NULL; g_signal_emit_by_name (G_OBJECT (bvw->priv->play), "get-text-tags", i, &tags); if (tags) { gchar *lc = NULL, *cd = NULL; gst_tag_list_get_string (tags, GST_TAG_LANGUAGE_CODE, &lc); gst_tag_list_get_string (tags, GST_TAG_CODEC, &lc); if (lc) { ret = g_list_prepend (ret, lc); g_free (cd); } else if (cd) { ret = g_list_prepend (ret, cd); } else { ret = g_list_prepend (ret, g_strdup_printf ("%s %d", type_name, num++)); } gst_tag_list_free (tags); } else { ret = g_list_prepend (ret, g_strdup_printf ("%s %d", type_name, num++)); } } } else { g_critical ("Invalid stream type '%s'", type_name); return NULL; } return g_list_reverse (ret); } /** * bacon_video_widget_get_subtitles: * @bvw: a #BaconVideoWidget * * Returns a list of subtitle tags, each in the form TEXT x, * where x is the subtitle index. * * Return value: a #GList of subtitle tags, or %NULL; free each element with g_free() and the list with g_list_free() **/ GList * bacon_video_widget_get_subtitles (BaconVideoWidget * bvw) { GList *list; g_return_val_if_fail (bvw != NULL, NULL); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), NULL); g_return_val_if_fail (bvw->priv->play != NULL, NULL); list = get_lang_list_for_type (bvw, "TEXT"); return list; } /** * bacon_video_widget_get_languages: * @bvw: a #BaconVideoWidget * * Returns a list of audio language tags, each in the form AUDIO x, * where x is the language index. * * Return value: a #GList of audio language tags, or %NULL; free each element with g_free() and the list with g_list_free() **/ GList * bacon_video_widget_get_languages (BaconVideoWidget * bvw) { g_return_val_if_fail (bvw != NULL, NULL); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), NULL); g_return_val_if_fail (bvw->priv->play != NULL, NULL); return get_lang_list_for_type (bvw, "AUDIO"); } /** * bacon_video_widget_get_language: * @bvw: a #BaconVideoWidget * * Returns the index of the current audio language. * * If the widget is not playing, or the default language is in use, %-2 will be returned. * * Return value: the audio language index **/ int bacon_video_widget_get_language (BaconVideoWidget * bvw) { int language = -1; g_return_val_if_fail (bvw != NULL, -2); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), -2); g_return_val_if_fail (bvw->priv->play != NULL, -2); g_object_get (G_OBJECT (bvw->priv->play), "current-audio", &language, NULL); if (language == -1) language = -2; return language; } /** * bacon_video_widget_set_language: * @bvw: a #BaconVideoWidget * @language: an audio language index * * Sets the audio language index for @bvw. If @language is %-1, the default language will * be used. **/ void bacon_video_widget_set_language (BaconVideoWidget * bvw, int language) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (bvw->priv->play != NULL); if (language == -1) language = 0; else if (language == -2) language = -1; GST_DEBUG ("setting language to %d", language); g_object_set (bvw->priv->play, "current-audio", language, NULL); g_object_get (bvw->priv->play, "current-audio", &language, NULL); GST_DEBUG ("current-audio now: %d", language); /* so it updates its metadata for the newly-selected stream */ g_signal_emit (bvw, bvw_signals[SIGNAL_GOT_METADATA], 0, NULL); g_signal_emit (bvw, bvw_signals[SIGNAL_CHANNELS_CHANGE], 0); } static guint connection_speed_enum_to_kbps (gint speed) { static const guint conv_table[] = { 14400, 19200, 28800, 33600, 34400, 56000, 112000, 256000, 384000, 512000, 1536000, 10752000 }; g_return_val_if_fail (speed >= 0 && (guint) speed < G_N_ELEMENTS (conv_table), 0); /* must round up so that the correct streams are chosen and not ignored * due to rounding errors when doing kbps <=> bps */ return (conv_table[speed] / 1000) + (((conv_table[speed] % 1000) != 0) ? 1 : 0); } /** * bacon_video_widget_get_connection_speed: * @bvw: a #BaconVideoWidget * * Returns the current connection speed, where %0 is the lowest speed * and %11 is the highest. * * Return value: the connection speed index **/ int bacon_video_widget_get_connection_speed (BaconVideoWidget * bvw) { g_return_val_if_fail (bvw != NULL, 0); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), 0); return bvw->priv->connection_speed; } /** * bacon_video_widget_set_connection_speed: * @bvw: a #BaconVideoWidget * @speed: the connection speed index * * Sets the connection speed from the given @speed index, where %0 is the lowest speed * and %11 is the highest. **/ void bacon_video_widget_set_connection_speed (BaconVideoWidget * bvw, int speed) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); if (bvw->priv->connection_speed != speed) { bvw->priv->connection_speed = speed; } if (bvw->priv->play != NULL && g_object_class_find_property (G_OBJECT_GET_CLASS (bvw->priv->play), "connection-speed")) { guint kbps = connection_speed_enum_to_kbps (speed); GST_LOG ("Setting connection speed %d (= %d kbps)", speed, kbps); g_object_set (bvw->priv->play, "connection-speed", kbps, NULL); } } static gint get_num_audio_channels (BaconVideoWidget * bvw) { gint channels; switch (bvw->priv->speakersetup) { case BVW_AUDIO_SOUND_STEREO: channels = 2; break; case BVW_AUDIO_SOUND_CHANNEL4: channels = 4; break; case BVW_AUDIO_SOUND_CHANNEL5: channels = 5; break; case BVW_AUDIO_SOUND_CHANNEL41: /* so alsa has this as 5.1, but empty center speaker. We don't really * do that yet. ;-). So we'll take the placebo approach. */ case BVW_AUDIO_SOUND_CHANNEL51: channels = 6; break; case BVW_AUDIO_SOUND_AC3PASSTHRU: default: g_return_val_if_reached (-1); } return channels; } static GstCaps * fixate_to_num (const GstCaps * in_caps, gint channels) { gint n, count; GstStructure *s; const GValue *v; GstCaps *out_caps; out_caps = gst_caps_copy (in_caps); count = gst_caps_get_size (out_caps); for (n = 0; n < count; n++) { s = gst_caps_get_structure (out_caps, n); v = gst_structure_get_value (s, "channels"); if (!v) continue; /* get channel count (or list of ~) */ gst_structure_fixate_field_nearest_int (s, "channels", channels); } return out_caps; } static void set_audio_filter (BaconVideoWidget * bvw) { gint channels; GstCaps *caps, *res; GstPad *pad; /* reset old */ g_object_set (bvw->priv->audio_capsfilter, "caps", NULL, NULL); /* construct possible caps to filter down to our chosen caps */ /* Start with what the audio sink supports, but limit the allowed * channel count to our speaker output configuration */ pad = gst_element_get_pad (bvw->priv->audio_capsfilter, "src"); caps = gst_pad_peer_get_caps (pad); gst_object_unref (pad); if ((channels = get_num_audio_channels (bvw)) == -1) return; res = fixate_to_num (caps, channels); gst_caps_unref (caps); /* set */ if (res && gst_caps_is_empty (res)) { gst_caps_unref (res); res = NULL; } g_object_set (bvw->priv->audio_capsfilter, "caps", res, NULL); if (res) { gst_caps_unref (res); } /* reset */ pad = gst_element_get_pad (bvw->priv->audio_capsfilter, "src"); gst_pad_set_caps (pad, NULL); gst_object_unref (pad); } /** * bacon_video_widget_get_audio_out_type: * @bvw: a #BaconVideoWidget * * Returns the current audio output type (e.g. how many speaker channels) * from #BaconVideoWidgetAudioOutType. * * Return value: the audio output type, or %-1 **/ BvwAudioOutType bacon_video_widget_get_audio_out_type (BaconVideoWidget * bvw) { g_return_val_if_fail (bvw != NULL, -1); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), -1); return bvw->priv->speakersetup; } /** * bacon_video_widget_set_audio_out_type: * @bvw: a #BaconVideoWidget * @type: the new audio output type * * Sets the audio output type (number of speaker channels) in the video widget, * and stores it in GConf. * * Return value: %TRUE on success, %FALSE otherwise **/ gboolean bacon_video_widget_set_audio_out_type (BaconVideoWidget * bvw, BvwAudioOutType type) { g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); if (type == bvw->priv->speakersetup) return FALSE; else if (type == BVW_AUDIO_SOUND_AC3PASSTHRU) return FALSE; bvw->priv->speakersetup = type; set_audio_filter (bvw); return FALSE; } /* =========================================== */ /* */ /* Play/Pause, Stop */ /* */ /* =========================================== */ static GError * bvw_error_from_gst_error (BaconVideoWidget * bvw, GstMessage * err_msg) { const gchar *src_typename; GError *ret = NULL; GError *e = NULL; GST_LOG ("resolving error message %" GST_PTR_FORMAT, err_msg); src_typename = (err_msg->src) ? G_OBJECT_TYPE_NAME (err_msg->src) : NULL; gst_message_parse_error (err_msg, &e, NULL); if (is_error (e, RESOURCE, NOT_FOUND) || is_error (e, RESOURCE, OPEN_READ)) { #if 0 if (strchr (mrl, ':') && (g_str_has_prefix (mrl, "dvd") || g_str_has_prefix (mrl, "cd") || g_str_has_prefix (mrl, "vcd"))) { ret = g_error_new_literal (BVW_ERROR, GST_ERROR_INVALID_DEVICE, e->message); } else { #endif if (e->code == GST_RESOURCE_ERROR_NOT_FOUND) { if (GST_IS_BASE_AUDIO_SINK (err_msg->src)) { ret = g_error_new_literal (BVW_ERROR, GST_ERROR_AUDIO_PLUGIN, _ ("The requested audio output was not found. " "Please select another audio output in the Multimedia " "Systems Selector.")); } else { ret = g_error_new_literal (BVW_ERROR, GST_ERROR_FILE_NOT_FOUND, _("Location not found.")); } } else { ret = g_error_new_literal (BVW_ERROR, GST_ERROR_FILE_PERMISSION, _("Could not open location; " "you might not have permission to open the file.")); } #if 0 } #endif } else if (is_error (e, RESOURCE, BUSY)) { if (GST_IS_VIDEO_SINK (err_msg->src)) { /* a somewhat evil check, but hey.. */ ret = g_error_new_literal (BVW_ERROR, GST_ERROR_VIDEO_PLUGIN, _ ("The video output is in use by another application. " "Please close other video applications, or select " "another video output in the Multimedia Systems Selector.")); } else if (GST_IS_BASE_AUDIO_SINK (err_msg->src)) { ret = g_error_new_literal (BVW_ERROR, GST_ERROR_AUDIO_BUSY, _ ("The audio output is in use by another application. " "Please select another audio output in the Multimedia Systems Selector. " "You may want to consider using a sound server.")); } } else if (e->domain == GST_RESOURCE_ERROR) { ret = g_error_new_literal (BVW_ERROR, GST_ERROR_FILE_GENERIC, e->message); } else if (is_error (e, CORE, MISSING_PLUGIN) || is_error (e, STREAM, CODEC_NOT_FOUND)) { if (bvw->priv->missing_plugins != NULL) { gchar **descs, *msg = NULL; guint num; descs = bvw_get_missing_plugins_descriptions (bvw->priv->missing_plugins); num = g_list_length (bvw->priv->missing_plugins); if (is_error (e, CORE, MISSING_PLUGIN)) { /* should be exactly one missing thing (source or converter) */ msg = g_strdup_printf (_ ("The playback of this movie requires a %s " "plugin which is not installed."), descs[0]); } else { gchar *desc_list; desc_list = g_strjoinv ("\n", descs); msg = g_strdup_printf (ngettext (_("The playback of this movie " "requires a %s plugin which is not installed."), _("The playback " "of this movie requires the following decoders which are not " "installed:\n\n%s"), num), (num == 1) ? descs[0] : desc_list); g_free (desc_list); } ret = g_error_new_literal (BVW_ERROR, GST_ERROR_CODEC_NOT_HANDLED, msg); g_free (msg); g_strfreev (descs); } else { GST_LOG ("no missing plugin messages, posting generic error"); ret = g_error_new_literal (BVW_ERROR, GST_ERROR_CODEC_NOT_HANDLED, e->message); } } else if (is_error (e, STREAM, WRONG_TYPE) || is_error (e, STREAM, NOT_IMPLEMENTED)) { if (src_typename) { ret = g_error_new (BVW_ERROR, GST_ERROR_CODEC_NOT_HANDLED, "%s: %s", src_typename, e->message); } else { ret = g_error_new_literal (BVW_ERROR, GST_ERROR_CODEC_NOT_HANDLED, e->message); } } else if (is_error (e, STREAM, FAILED) && src_typename && strncmp (src_typename, "GstTypeFind", 11) == 0) { ret = g_error_new_literal (BVW_ERROR, GST_ERROR_READ_ERROR, _("Cannot play this file over the network. " "Try downloading it to disk first.")); } else { /* generic error, no code; take message */ ret = g_error_new_literal (BVW_ERROR, GST_ERROR_GENERIC, e->message); } g_error_free (e); bvw_clear_missing_plugins_messages (bvw); return ret; } static gboolean poll_for_state_change_full (BaconVideoWidget * bvw, GstElement * element, GstState state, GstMessage ** err_msg, gint64 timeout) { GstBus *bus; GstMessageType events, saved_events; g_assert (err_msg != NULL); bus = gst_element_get_bus (element); events = GST_MESSAGE_STATE_CHANGED | GST_MESSAGE_ERROR | GST_MESSAGE_EOS; saved_events = bvw->priv->ignore_messages_mask; if (element != NULL && element == bvw->priv->play) { /* we do want the main handler to process state changed messages for * playbin as well, otherwise it won't hook up the timeout etc. */ bvw->priv->ignore_messages_mask |= (events ^ GST_MESSAGE_STATE_CHANGED); } else { bvw->priv->ignore_messages_mask |= events; } while (TRUE) { GstMessage *message; GstElement *src; message = gst_bus_poll (bus, events, timeout); if (!message) goto timed_out; src = (GstElement *) GST_MESSAGE_SRC (message); switch (GST_MESSAGE_TYPE (message)) { case GST_MESSAGE_STATE_CHANGED: { GstState old, new, pending; if (src == element) { gst_message_parse_state_changed (message, &old, &new, &pending); if (new == state) { gst_message_unref (message); goto success; } } break; } case GST_MESSAGE_ERROR: { bvw_error_msg (bvw, message); *err_msg = message; message = NULL; goto error; break; } case GST_MESSAGE_EOS: { GError *e = NULL; gst_message_unref (message); e = g_error_new_literal (BVW_ERROR, GST_ERROR_FILE_GENERIC, _("Media file could not be played.")); *err_msg = gst_message_new_error (GST_OBJECT (bvw->priv->play), e, NULL); g_error_free (e); goto error; break; } default: g_assert_not_reached (); break; } gst_message_unref (message); } g_assert_not_reached (); success: /* state change succeeded */ GST_DEBUG ("state change to %s succeeded", gst_element_state_get_name (state)); bvw->priv->ignore_messages_mask = saved_events; return TRUE; timed_out: /* it's taking a long time to open -- just tell totem it was ok, this allows * the user to stop the loading process with the normal stop button */ GST_DEBUG ("state change to %s timed out, returning success and handling " "errors asynchronously", gst_element_state_get_name (state)); bvw->priv->ignore_messages_mask = saved_events; return TRUE; error: GST_DEBUG ("error while waiting for state change to %s: %" GST_PTR_FORMAT, gst_element_state_get_name (state), *err_msg); /* already set *err_msg */ bvw->priv->ignore_messages_mask = saved_events; return FALSE; } /** * bacon_video_widget_open: * @bvw: a #BaconVideoWidget * @mrl: an MRL * @subtitle_uri: the URI of a subtitle file, or %NULL * @error: a #GError, or %NULL * * Opens the given @mrl in @bvw for playing. If @subtitle_uri is not %NULL, the given * subtitle file is also loaded. Alternatively, the subtitle URI can be passed in @mrl * by adding it after #subtitle:. For example: * http://example.com/video.mpg#subtitle:/home/user/subtitle.ass. * * If there was a filesystem error, a %ERROR_GENERIC error will be returned. Otherwise, * more specific #BvwError errors will be returned. * * On success, the MRL is loaded and waiting to be played with bacon_video_widget_play(). * * Return value: %TRUE on success, %FALSE otherwise **/ gboolean bacon_video_widget_open (BaconVideoWidget * bvw, const gchar * mrl, const gchar * subtitle_uri, GError ** error) { GstMessage *err_msg = NULL; GFile *file; gboolean ret; char *path; g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (mrl != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (bvw->priv->play != NULL, FALSE); /* So we aren't closed yet... */ if (bvw->priv->mrl) { bacon_video_widget_close (bvw); } GST_DEBUG ("mrl = %s", GST_STR_NULL (mrl)); GST_DEBUG ("subtitle_uri = %s", GST_STR_NULL (subtitle_uri)); /* this allows non-URI type of files in the thumbnailer and so on */ file = g_file_new_for_commandline_arg (mrl); /* Only use the URI when FUSE isn't available for a file */ path = g_file_get_path (file); if (path) { bvw->priv->mrl = g_filename_to_uri (path, NULL, NULL); g_free (path); } else { bvw->priv->mrl = g_strdup (mrl); } g_object_unref (file); if (g_str_has_prefix (mrl, "icy:") != FALSE) { /* Handle "icy://" URLs from QuickTime */ g_free (bvw->priv->mrl); bvw->priv->mrl = g_strdup_printf ("http:%s", mrl + 4); } else if (g_str_has_prefix (mrl, "icyx:") != FALSE) { /* Handle "icyx://" URLs from Orban/Coding Technologies AAC/aacPlus Player */ g_free (bvw->priv->mrl); bvw->priv->mrl = g_strdup_printf ("http:%s", mrl + 5); } else if (g_str_has_prefix (mrl, "dvd:///")) { /* this allows to play backups of dvds */ g_free (bvw->priv->mrl); bvw->priv->mrl = g_strdup ("dvd://"); g_free (bvw->priv->media_device); bvw->priv->media_device = g_strdup (mrl + strlen ("dvd://")); } else if (g_str_has_prefix (mrl, "vcd:///")) { /* this allows to play backups of vcds */ g_free (bvw->priv->mrl); bvw->priv->mrl = g_strdup ("vcd://"); g_free (bvw->priv->media_device); bvw->priv->media_device = g_strdup (mrl + strlen ("vcd://")); } bvw->priv->got_redirect = FALSE; bvw->priv->media_has_video = FALSE; bvw->priv->media_has_audio = FALSE; bvw->priv->stream_length = 0; bvw->priv->ignore_messages_mask = 0; if (g_strrstr (bvw->priv->mrl, "#subtitle:")) { gchar **uris; gchar *subtitle_uri; uris = g_strsplit (bvw->priv->mrl, "#subtitle:", 2); /* Try to fix subtitle uri if needed */ if (uris[1][0] == '/') { subtitle_uri = g_strdup_printf ("file://%s", uris[1]); } else { if (strchr (uris[1], ':')) { subtitle_uri = g_strdup (uris[1]); } else { gchar *cur_dir = g_get_current_dir (); if (!cur_dir) { g_set_error_literal (error, BVW_ERROR, GST_ERROR_GENERIC, _("Failed to retrieve working directory")); return FALSE; } subtitle_uri = g_strdup_printf ("file://%s/%s", cur_dir, uris[1]); g_free (cur_dir); } } g_object_set (bvw->priv->play, "uri", bvw->priv->mrl, "suburi", subtitle_uri, NULL); g_free (subtitle_uri); g_strfreev (uris); } else { g_object_set (bvw->priv->play, "uri", bvw->priv->mrl, NULL); } bvw->priv->seekable = -1; bvw->priv->target_state = GST_STATE_PAUSED; bvw_clear_missing_plugins_messages (bvw); gst_element_set_state (bvw->priv->play, GST_STATE_PAUSED); if (bvw->priv->use_type == BVW_USE_TYPE_AUDIO || bvw->priv->use_type == BVW_USE_TYPE_VIDEO) { GST_INFO ("normal playback, handling all errors asynchroneously"); ret = TRUE; } else { /* used as thumbnailer or metadata extractor for properties dialog. In * this case, wait for any state change to really finish and process any * pending tag messages, so that the information is available right away */ GST_INFO ("waiting for state changed to PAUSED to complete"); ret = poll_for_state_change_full (bvw, bvw->priv->play, GST_STATE_PAUSED, &err_msg, -1); bvw_process_pending_tag_messages (bvw); bacon_video_widget_get_stream_length (bvw); GST_INFO ("stream length = %u", bvw->priv->stream_length); /* even in case of an error (e.g. no decoders installed) we might still * have useful metadata (like codec types, duration, etc.) */ g_signal_emit (bvw, bvw_signals[SIGNAL_GOT_METADATA], 0, NULL); } if (ret) { g_signal_emit (bvw, bvw_signals[SIGNAL_CHANNELS_CHANGE], 0); } else { GST_INFO ("Error on open: %" GST_PTR_FORMAT, err_msg); if (bvw_check_missing_plugins_error (bvw, err_msg)) { /* totem will try to start playing, so ignore all messages on the bus */ bvw->priv->ignore_messages_mask |= GST_MESSAGE_ERROR; GST_LOG ("missing plugins handled, ignoring error and returning TRUE"); gst_message_unref (err_msg); err_msg = NULL; ret = TRUE; } else { bvw->priv->ignore_messages_mask |= GST_MESSAGE_ERROR; bvw_stop_play_pipeline (bvw); g_free (bvw->priv->mrl); bvw->priv->mrl = NULL; } } /* When opening a new media we want to redraw ourselves */ gtk_widget_queue_draw (GTK_WIDGET (bvw)); if (err_msg != NULL) { if (error) { *error = bvw_error_from_gst_error (bvw, err_msg); } else { GST_WARNING ("Got error, but caller is not collecting error details!"); } gst_message_unref (err_msg); } return ret; } /** * bacon_video_widget_play: * @bvw: a #BaconVideoWidget * @error: a #GError, or %NULL * * Plays the currently-loaded video in @bvw. * * Errors from the GStreamer backend will be returned asynchronously via the * #BaconVideoWidget::error signal, even if this function returns %TRUE. * * Return value: %TRUE on success, %FALSE otherwise **/ gboolean bacon_video_widget_play (BaconVideoWidget * bvw) { GstState cur_state; g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); g_return_val_if_fail (bvw->priv->mrl != NULL, FALSE); bvw->priv->target_state = GST_STATE_PLAYING; /* no need to actually go into PLAYING in capture/metadata mode (esp. * not with sinks that don't sync to the clock), we'll get everything * we need by prerolling the pipeline, and that is done in _open() */ if (bvw->priv->use_type == BVW_USE_TYPE_CAPTURE || bvw->priv->use_type == BVW_USE_TYPE_METADATA) { return TRUE; } /* just lie and do nothing in this case */ gst_element_get_state (bvw->priv->play, &cur_state, NULL, 0); if (bvw->priv->plugin_install_in_progress && cur_state != GST_STATE_PAUSED) { GST_INFO ("plugin install in progress and nothing to play, doing nothing"); return TRUE; } GST_INFO ("play"); gst_element_set_state (bvw->priv->play, GST_STATE_PLAYING); /* will handle all errors asynchroneously */ return TRUE; } /** * bacon_video_widget_can_direct_seek: * @bvw: a #BaconVideoWidget * * Determines whether direct seeking is possible for the current stream. * * Return value: %TRUE if direct seeking is possible, %FALSE otherwise **/ gboolean bacon_video_widget_can_direct_seek (BaconVideoWidget * bvw) { g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); if (bvw->priv->mrl == NULL) return FALSE; /* (instant seeking only make sense with video, * hence no cdda:// here) */ if (g_str_has_prefix (bvw->priv->mrl, "file://") || g_str_has_prefix (bvw->priv->mrl, "dvd:/") || g_str_has_prefix (bvw->priv->mrl, "vcd:/")) return TRUE; return FALSE; } //If we want to seek throug a seekbar we want speed, so we use the KEY_UNIT flag //Sometimes accurate position is requested so we use the ACCURATE flag gboolean bacon_video_widget_seek_time (BaconVideoWidget * bvw, gint64 time, gfloat rate, gboolean accurate) { g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); GST_LOG ("Seeking to %" GST_TIME_FORMAT, GST_TIME_ARGS (time * GST_MSECOND)); if (time > bvw->priv->stream_length && bvw->priv->stream_length > 0 && !g_str_has_prefix (bvw->priv->mrl, "dvd:") && !g_str_has_prefix (bvw->priv->mrl, "vcd:")) { if (bvw->priv->eos_id == 0) bvw->priv->eos_id = g_idle_add (bvw_signal_eos_delayed, bvw); return TRUE; } if (accurate) { got_time_tick (bvw->priv->play, time * GST_MSECOND, bvw); gst_element_seek (bvw->priv->play, rate, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, time * GST_MSECOND, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); } else { /* Emit a time tick of where we are going, we are paused */ got_time_tick (bvw->priv->play, time * GST_MSECOND, bvw); gst_element_seek (bvw->priv->play, rate, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT, GST_SEEK_TYPE_SET, time * GST_MSECOND, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); } return TRUE; } gboolean bacon_video_widget_seek (BaconVideoWidget * bvw, gdouble position, gfloat rate) { gint64 seek_time, length_nanos; g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); length_nanos = (gint64) (bvw->priv->stream_length * GST_MSECOND); seek_time = (gint64) (length_nanos * position); GST_LOG ("Seeking to %3.2f%% %" GST_TIME_FORMAT, position, GST_TIME_ARGS (seek_time)); return bacon_video_widget_seek_time (bvw, seek_time / GST_MSECOND, rate, FALSE); } gboolean bacon_video_widget_seek_in_segment (BaconVideoWidget * bvw, gint64 pos, gfloat rate) { g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); GST_LOG ("Segment seeking from %" GST_TIME_FORMAT, GST_TIME_ARGS (pos * GST_MSECOND)); if (pos > bvw->priv->stream_length && bvw->priv->stream_length > 0 && !g_str_has_prefix (bvw->priv->mrl, "dvd:") && !g_str_has_prefix (bvw->priv->mrl, "vcd:")) { if (bvw->priv->eos_id == 0) bvw->priv->eos_id = g_idle_add (bvw_signal_eos_delayed, bvw); return TRUE; } got_time_tick (bvw->priv->play, pos * GST_MSECOND, bvw); gst_element_seek (bvw->priv->play, rate, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, pos * GST_MSECOND, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); return TRUE; } gboolean bacon_video_widget_set_rate_in_segment (BaconVideoWidget * bvw, gfloat rate, gint64 stop) { guint64 pos; g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); pos = bacon_video_widget_get_accurate_current_time (bvw); if (pos == 0) return FALSE; gst_element_seek (bvw->priv->play, rate, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE | GST_SEEK_FLAG_SEGMENT, GST_SEEK_TYPE_SET, pos * GST_MSECOND, GST_SEEK_TYPE_SET, stop * GST_MSECOND); return TRUE; } gboolean bacon_video_widget_set_rate (BaconVideoWidget * bvw, gfloat rate) { guint64 pos; g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); pos = bacon_video_widget_get_accurate_current_time (bvw); if (pos == 0) return FALSE; gst_element_seek (bvw->priv->play, rate, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, pos * GST_MSECOND, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); return TRUE; } gboolean bacon_video_widget_new_file_seek (BaconVideoWidget * bvw, gint64 start, gint64 stop, gfloat rate) { g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); GST_LOG ("Segment seeking from %" GST_TIME_FORMAT, GST_TIME_ARGS (start * GST_MSECOND)); if (start > bvw->priv->stream_length && bvw->priv->stream_length > 0 && !g_str_has_prefix (bvw->priv->mrl, "dvd:") && !g_str_has_prefix (bvw->priv->mrl, "vcd:")) { if (bvw->priv->eos_id == 0) bvw->priv->eos_id = g_idle_add (bvw_signal_eos_delayed, bvw); return TRUE; } GST_LOG ("Segment seeking from %" GST_TIME_FORMAT, GST_TIME_ARGS (start * GST_MSECOND)); //FIXME Needs to wait until GST_STATE_PAUSED gst_element_get_state (bvw->priv->play, NULL, NULL, 0); got_time_tick (bvw->priv->play, start * GST_MSECOND, bvw); gst_element_seek (bvw->priv->play, rate, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, start * GST_MSECOND, GST_SEEK_TYPE_SET, stop * GST_MSECOND); gst_element_set_state (bvw->priv->play, GST_STATE_PLAYING); return TRUE; } gboolean bacon_video_widget_segment_seek (BaconVideoWidget * bvw, gint64 start, gint64 stop, gfloat rate) { g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); GST_LOG ("Segment seeking from %" GST_TIME_FORMAT, GST_TIME_ARGS (start * GST_MSECOND)); if (start > bvw->priv->stream_length && bvw->priv->stream_length > 0 && !g_str_has_prefix (bvw->priv->mrl, "dvd:") && !g_str_has_prefix (bvw->priv->mrl, "vcd:")) { if (bvw->priv->eos_id == 0) bvw->priv->eos_id = g_idle_add (bvw_signal_eos_delayed, bvw); return TRUE; } got_time_tick (bvw->priv->play, start * GST_MSECOND, bvw); gst_element_seek (bvw->priv->play, rate, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, start * GST_MSECOND, GST_SEEK_TYPE_SET, stop * GST_MSECOND); return TRUE; } gboolean bacon_video_widget_seek_to_next_frame (BaconVideoWidget * bvw, gfloat rate, gboolean in_segment) { gint64 pos = -1; gboolean ret; g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); gst_element_send_event(bvw->priv->play, gst_event_new_step (GST_FORMAT_BUFFERS, 1, 1.0, TRUE, FALSE)); pos = bacon_video_widget_get_accurate_current_time (bvw); got_time_tick (GST_ELEMENT (bvw->priv->play), pos * GST_MSECOND, bvw); gst_x_overlay_expose (bvw->priv->xoverlay); return ret; } gboolean bacon_video_widget_seek_to_previous_frame (BaconVideoWidget * bvw, gfloat rate, gboolean in_segment) { gint fps; gint64 pos; gint64 final_pos; guint8 seek_flags; gboolean ret; g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); //Round framerate to the nearest integer fps = (bvw->priv->video_fps_n + bvw->priv->video_fps_d / 2) / bvw->priv->video_fps_d; pos = bacon_video_widget_get_accurate_current_time (bvw); final_pos = pos * GST_MSECOND - 1 * GST_SECOND / fps; if (pos == 0) return FALSE; if (bacon_video_widget_is_playing (bvw)) bacon_video_widget_pause (bvw); seek_flags = GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE; if (in_segment) seek_flags = seek_flags | GST_SEEK_FLAG_SEGMENT; ret = gst_element_seek (bvw->priv->play, rate, GST_FORMAT_TIME, seek_flags, GST_SEEK_TYPE_SET, final_pos, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); gst_x_overlay_expose (bvw->priv->xoverlay); got_time_tick (GST_ELEMENT (bvw->priv->play), pos * GST_MSECOND, bvw); return ret; } gboolean bacon_video_widget_segment_stop_update (BaconVideoWidget * bvw, gint64 stop, gfloat rate) { g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); gst_element_seek (bvw->priv->play, rate, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, stop * GST_MSECOND - 1, GST_SEEK_TYPE_SET, stop * GST_MSECOND); if (bacon_video_widget_is_playing (bvw)) bacon_video_widget_pause (bvw); gst_x_overlay_expose (bvw->priv->xoverlay); return TRUE; } gboolean bacon_video_widget_segment_start_update (BaconVideoWidget * bvw, gint64 start, gfloat rate) { g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); gst_element_seek (bvw->priv->play, rate, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, start * GST_MSECOND, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); if (bacon_video_widget_is_playing (bvw)) bacon_video_widget_pause (bvw); gst_x_overlay_expose (bvw->priv->xoverlay); return TRUE; } static void bvw_stop_play_pipeline (BaconVideoWidget * bvw) { GstState cur_state; gst_element_get_state (bvw->priv->play, &cur_state, NULL, 0); if (cur_state > GST_STATE_READY) { GstMessage *msg; GstBus *bus; GST_INFO ("stopping"); gst_element_set_state (bvw->priv->play, GST_STATE_READY); /* process all remaining state-change messages so everything gets * cleaned up properly (before the state change to NULL flushes them) */ GST_INFO ("processing pending state-change messages"); bus = gst_element_get_bus (bvw->priv->play); while ((msg = gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, 0))) { gst_bus_async_signal_func (bus, msg, NULL); gst_message_unref (msg); } gst_object_unref (bus); } gst_element_set_state (bvw->priv->play, GST_STATE_NULL); bvw->priv->target_state = GST_STATE_NULL; bvw->priv->buffering = FALSE; bvw->priv->plugin_install_in_progress = FALSE; bvw->priv->ignore_messages_mask = 0; GST_INFO ("stopped"); } /** * bacon_video_widget_stop: * @bvw: a #BaconVideoWidget * * Stops playing the current stream and resets to the first position in the stream. **/ void bacon_video_widget_stop (BaconVideoWidget * bvw) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (GST_IS_ELEMENT (bvw->priv->play)); GST_LOG ("Stopping"); bvw_stop_play_pipeline (bvw); /* Reset position to 0 when stopping */ got_time_tick (GST_ELEMENT (bvw->priv->play), 0, bvw); } /** * bacon_video_widget_close: * @bvw: a #BaconVideoWidget * * Closes the current stream and frees the resources associated with it. **/ void bacon_video_widget_close (BaconVideoWidget * bvw) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (GST_IS_ELEMENT (bvw->priv->play)); GST_LOG ("Closing"); bvw_stop_play_pipeline (bvw); g_free (bvw->priv->mrl); bvw->priv->mrl = NULL; bvw->priv->is_live = FALSE; bvw->priv->window_resized = FALSE; g_object_notify (G_OBJECT (bvw), "seekable"); g_signal_emit (bvw, bvw_signals[SIGNAL_CHANNELS_CHANGE], 0); got_time_tick (GST_ELEMENT (bvw->priv->play), 0, bvw); } void bacon_video_widget_redraw_last_frame (BaconVideoWidget * bvw) { g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (bvw->priv->xoverlay != NULL); if (!bvw->priv->logo_mode && !bacon_video_widget_is_playing (bvw)) { gst_x_overlay_expose (bvw->priv->xoverlay); } } #if 0 static void bvw_do_navigation_command (BaconVideoWidget * bvw, GstNavigationCommand command) { GstNavigation *nav = bvw_get_navigation_iface (bvw); if (nav == NULL) return; gst_navigation_send_command (nav, command); gst_object_unref (GST_OBJECT (nav)); } /** * bacon_video_widget_dvd_event: * @bvw: a #BaconVideoWidget * @type: the type of DVD event to issue * * Issues a DVD navigation event to the video widget, such as one to skip to the * next chapter, or navigate to the DVD title menu. * * This is a no-op if the current stream is not navigable. **/ void bacon_video_widget_dvd_event (BaconVideoWidget * bvw, BvwDVDEvent type) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (GST_IS_ELEMENT (bvw->priv->play)); switch (type) { case BVW_DVD_ROOT_MENU: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_DVD_MENU); break; case BVW_DVD_TITLE_MENU: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_DVD_TITLE_MENU); break; case BVW_DVD_SUBPICTURE_MENU: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU); break; case BVW_DVD_AUDIO_MENU: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU); break; case BVW_DVD_ANGLE_MENU: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU); break; case BVW_DVD_CHAPTER_MENU: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU); break; case BVW_DVD_NEXT_ANGLE: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_NEXT_ANGLE); break; case BVW_DVD_PREV_ANGLE: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_PREV_ANGLE); break; case BVW_DVD_ROOT_MENU_UP: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_UP); break; case BVW_DVD_ROOT_MENU_DOWN: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_DOWN); break; case BVW_DVD_ROOT_MENU_LEFT: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_LEFT); break; case BVW_DVD_ROOT_MENU_RIGHT: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_RIGHT); break; case BVW_DVD_ROOT_MENU_SELECT: bvw_do_navigation_command (bvw, GST_NAVIGATION_COMMAND_ACTIVATE); break; case BVW_DVD_NEXT_CHAPTER: case BVW_DVD_PREV_CHAPTER: case BVW_DVD_NEXT_TITLE: case BVW_DVD_PREV_TITLE: { const gchar *fmt_name; GstFormat fmt; gint64 val; gint dir; if (type == BVW_DVD_NEXT_CHAPTER || type == BVW_DVD_NEXT_TITLE) dir = 1; else dir = -1; if (type == BVW_DVD_NEXT_CHAPTER || type == BVW_DVD_PREV_CHAPTER) fmt_name = "chapter"; else if (type == BVW_DVD_NEXT_TITLE || type == BVW_DVD_PREV_TITLE) fmt_name = "title"; else fmt_name = "angle"; fmt = gst_format_get_by_nick (fmt_name); if (gst_element_query_position (bvw->priv->play, &fmt, &val)) { GST_DEBUG ("current %s is: %" G_GINT64_FORMAT, fmt_name, val); val += dir; GST_DEBUG ("seeking to %s: %" G_GINT64_FORMAT, val); gst_element_seek (bvw->priv->play, 1.0, fmt, GST_SEEK_FLAG_FLUSH, GST_SEEK_TYPE_SET, val, GST_SEEK_TYPE_NONE, 0); } else { GST_DEBUG ("failed to query position (%s)", fmt_name); } break; } default: GST_WARNING ("unhandled type %d", type); break; } } #endif /** * bacon_video_widget_set_logo: * @bvw: a #BaconVideoWidget * @filename: the logo filename * * Sets the logo displayed on the video widget when no stream is loaded. **/ void bacon_video_widget_set_logo (BaconVideoWidget * bvw, gchar * filename) { GError *error = NULL; g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (filename != NULL); if (bvw->priv->logo_pixbuf != NULL) g_object_unref (bvw->priv->logo_pixbuf); bvw->priv->logo_pixbuf = gdk_pixbuf_new_from_file (filename, &error); if (error) { g_warning ("An error occurred trying to open logo %s: %s", filename, error->message); g_error_free (error); } } /** * bacon_video_widget_set_logo_pixbuf: * @bvw: a #BaconVideoWidget * @logo: the logo #GdkPixbuf * * Sets the logo displayed on the video widget when no stream is loaded, * by passing in a #GdkPixbuf directly. @logo is reffed, so can be unreffed * once this function call is complete. **/ void bacon_video_widget_set_logo_pixbuf (BaconVideoWidget * bvw, GdkPixbuf * logo) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (logo != NULL); if (bvw->priv->logo_pixbuf != NULL) g_object_unref (bvw->priv->logo_pixbuf); g_object_ref (logo); bvw->priv->logo_pixbuf = logo; } /** * bacon_video_widget_set_logo_mode: * @bvw: a #BaconVideoWidget * @logo_mode: %TRUE to display the logo, %FALSE otherwise * * Sets whether to display a logo set with @bacon_video_widget_set_logo when * no stream is loaded. If @logo_mode is %FALSE, nothing will be displayed * and the video widget will take up no space. Otherwise, the logo will be * displayed and will requisition a corresponding amount of space. **/ void bacon_video_widget_set_logo_mode (BaconVideoWidget * bvw, gboolean logo_mode) { BaconVideoWidgetPrivate *priv; g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); priv = bvw->priv; logo_mode = logo_mode != FALSE; if (priv->logo_mode != logo_mode) { priv->logo_mode = logo_mode; if (priv->video_window) { if (logo_mode) { gdk_window_hide (priv->video_window); GTK_WIDGET_SET_FLAGS (GTK_WIDGET (bvw), GTK_DOUBLE_BUFFERED); } else { gdk_window_show (priv->video_window); GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET (bvw), GTK_DOUBLE_BUFFERED); } } g_object_notify (G_OBJECT (bvw), "logo_mode"); g_object_notify (G_OBJECT (bvw), "seekable"); /* Queue a redraw of the widget */ gtk_widget_queue_draw (GTK_WIDGET (bvw)); } } /** * bacon_video_widget_get_logo_mode * @bvw: a #BaconVideoWidget * * Gets whether the logo is displayed when no stream is loaded. * * Return value: %TRUE if the logo is displayed, %FALSE otherwise **/ gboolean bacon_video_widget_get_logo_mode (BaconVideoWidget * bvw) { g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); return bvw->priv->logo_mode; } void bacon_video_widget_set_drawing_pixbuf (BaconVideoWidget * bvw, GdkPixbuf * drawing) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (drawing != NULL); if (bvw->priv->drawing_pixbuf != NULL) g_object_unref (bvw->priv->drawing_pixbuf); g_object_ref (drawing); bvw->priv->drawing_pixbuf = drawing; } void bacon_video_widget_set_drawing_mode (BaconVideoWidget * bvw, gboolean drawing_mode) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); bvw->priv->drawing_mode = drawing_mode; } /** * bacon_video_widget_pause: * @bvw: a #BaconVideoWidget * * Pauses the current stream in the video widget. * * If a live stream is being played, playback is stopped entirely. **/ void bacon_video_widget_pause (BaconVideoWidget * bvw) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (GST_IS_ELEMENT (bvw->priv->play)); g_return_if_fail (bvw->priv->mrl != NULL); if (bvw->priv->is_live != FALSE) { GST_LOG ("Stopping because we have a live stream"); bacon_video_widget_stop (bvw); return; } GST_LOG ("Pausing"); gst_element_set_state (GST_ELEMENT (bvw->priv->play), GST_STATE_PAUSED); bvw->priv->target_state = GST_STATE_PAUSED; } /** * bacon_video_widget_set_subtitle_font: * @bvw: a #BaconVideoWidget * @font: a font description string * * Sets the font size and style in which to display subtitles. * * @font is a Pango font description string, as understood by * pango_font_description_from_string(). **/ void bacon_video_widget_set_subtitle_font (BaconVideoWidget * bvw, const gchar * font) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (GST_IS_ELEMENT (bvw->priv->play)); if (!g_object_class_find_property (G_OBJECT_GET_CLASS (bvw->priv->play), "subtitle-font-desc")) return; g_object_set (bvw->priv->play, "subtitle-font-desc", font, NULL); } /** * bacon_video_widget_set_subtitle_encoding: * @bvw: a #BaconVideoWidget * @encoding: an encoding system * * Sets the encoding system for the subtitles, so that they can be decoded * properly. **/ void bacon_video_widget_set_subtitle_encoding (BaconVideoWidget * bvw, const char *encoding) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (GST_IS_ELEMENT (bvw->priv->play)); if (!g_object_class_find_property (G_OBJECT_GET_CLASS (bvw->priv->play), "subtitle-encoding")) return; g_object_set (bvw->priv->play, "subtitle-encoding", encoding, NULL); } /** * bacon_video_widget_can_set_volume: * @bvw: a #BaconVideoWidget * * Returns whether the volume level can be set, given the current settings. * * The volume cannot be set if the audio output type is set to * %BVW_AUDIO_SOUND_AC3PASSTHRU. * * Return value: %TRUE if the volume can be set, %FALSE otherwise **/ gboolean bacon_video_widget_can_set_volume (BaconVideoWidget * bvw) { g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); if (bvw->priv->speakersetup == BVW_AUDIO_SOUND_AC3PASSTHRU) return FALSE; return !bvw->priv->uses_fakesink; } /** * bacon_video_widget_set_volume: * @bvw: a #BaconVideoWidget * @volume: the new volume level, as a percentage between %0 and %1 * * Sets the volume level of the stream as a percentage between %0 and %1. * * If bacon_video_widget_can_set_volume() returns %FALSE, this is a no-op. **/ void bacon_video_widget_set_volume (BaconVideoWidget * bvw, double volume) { g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (GST_IS_ELEMENT (bvw->priv->play)); if (bacon_video_widget_can_set_volume (bvw) != FALSE) { volume = CLAMP (volume, 0.0, 1.0); g_object_set (bvw->priv->play, "volume", (gdouble) volume, NULL); g_object_notify (G_OBJECT (bvw), "volume"); } } /** * bacon_video_widget_get_volume: * @bvw: a #BaconVideoWidget * * Returns the current volume level, as a percentage between %0 and %1. * * Return value: the volume as a percentage between %0 and %1 **/ double bacon_video_widget_get_volume (BaconVideoWidget * bvw) { double vol; g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), 0.0); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), 0.0); g_object_get (G_OBJECT (bvw->priv->play), "volume", &vol, NULL); return vol; } /** * bacon_video_widget_set_fullscreen: * @bvw: a #BaconVideoWidget * @fullscreen: %TRUE to go fullscreen, %FALSE otherwise * * Sets whether the widget renders the stream in fullscreen mode. * * Fullscreen rendering is done only when possible, as xvidmode is required. **/ void bacon_video_widget_set_fullscreen (BaconVideoWidget * bvw, gboolean fullscreen) { gboolean have_xvidmode; g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_object_get (G_OBJECT (bvw->priv->bacon_resize), "have-xvidmode", &have_xvidmode, NULL); if (have_xvidmode == FALSE) return; bvw->priv->fullscreen_mode = fullscreen; if (fullscreen == FALSE) { bacon_resize_restore (bvw->priv->bacon_resize); /* Turn fullscreen on when we have xvidmode */ } else if (have_xvidmode != FALSE) { bacon_resize_resize (bvw->priv->bacon_resize); } } /** * bacon_video_widget_set_show_cursor: * @bvw: a #BaconVideoWidget * @show_cursor: %TRUE to show the cursor, %FALSE otherwise * * Sets whether the cursor should be shown when it is over the video * widget. If @show_cursor is %FALSE, the cursor will be invisible * when it is moved over the video widget. **/ void bacon_video_widget_set_show_cursor (BaconVideoWidget * bvw, gboolean show_cursor) { GdkWindow *window; g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); bvw->priv->cursor_shown = show_cursor; window = gtk_widget_get_window (GTK_WIDGET (bvw)); if (!window) { return; } if (show_cursor == FALSE) { totem_gdk_window_set_invisible_cursor (window); } else { gdk_window_set_cursor (window, bvw->priv->cursor); } } /** * bacon_video_widget_get_show_cursor: * @bvw: a #BaconVideoWidget * * Returns whether the cursor is shown when it is over the video widget. * * Return value: %TRUE if the cursor is shown, %FALSE otherwise **/ gboolean bacon_video_widget_get_show_cursor (BaconVideoWidget * bvw) { g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); return bvw->priv->cursor_shown; } /** * bacon_video_widget_get_auto_resize: * @bvw: a #BaconVideoWidget * * Returns whether the widget will automatically resize to fit videos. * * Return value: %TRUE if the widget will resize, %FALSE otherwise **/ gboolean bacon_video_widget_get_auto_resize (BaconVideoWidget * bvw) { g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); return bvw->priv->auto_resize; } /** * bacon_video_widget_set_auto_resize: * @bvw: a #BaconVideoWidget * @auto_resize: %TRUE to automatically resize for new videos, %FALSE otherwise * * Sets whether the widget should automatically resize to fit to new videos when * they are loaded. Changes to this will take effect when the next media file is * loaded. **/ void bacon_video_widget_set_auto_resize (BaconVideoWidget * bvw, gboolean auto_resize) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); bvw->priv->auto_resize = auto_resize; /* this will take effect when the next media file loads */ } /** * bacon_video_widget_set_aspect_ratio: * @bvw: a #BaconVideoWidget * @ratio: the new aspect ratio * * Sets the aspect ratio used by the widget, from #BaconVideoWidgetAspectRatio. * * Changes to this take effect immediately. **/ void bacon_video_widget_set_aspect_ratio (BaconVideoWidget * bvw, BvwAspectRatio ratio) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); bvw->priv->ratio_type = ratio; got_video_size (bvw); } /** * bacon_video_widget_get_aspect_ratio: * @bvw: a #BaconVideoWidget * * Returns the current aspect ratio used by the widget, from * #BaconVideoWidgetAspectRatio. * * Return value: the aspect ratio **/ BvwAspectRatio bacon_video_widget_get_aspect_ratio (BaconVideoWidget * bvw) { g_return_val_if_fail (bvw != NULL, 0); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), 0); return bvw->priv->ratio_type; } /** * bacon_video_widget_set_scale_ratio: * @bvw: a #BaconVideoWidget * @ratio: the new scale ratio * * Sets the ratio by which the widget will scale videos when they are * displayed. If @ratio is set to %0, the highest ratio possible will * be chosen. **/ void bacon_video_widget_set_scale_ratio (BaconVideoWidget * bvw, gfloat ratio) { gint w, h; g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (GST_IS_ELEMENT (bvw->priv->play)); GST_DEBUG ("ratio = %.2f", ratio); if (bvw->priv->video_window == NULL) return; get_media_size (bvw, &w, &h); if (ratio == 0.0) { if (totem_ratio_fits_screen (bvw->priv->video_window, w, h, 2.0)) ratio = 2.0; else if (totem_ratio_fits_screen (bvw->priv->video_window, w, h, 1.0)) ratio = 1.0; else if (totem_ratio_fits_screen (bvw->priv->video_window, w, h, 0.5)) ratio = 0.5; else return; } else { if (!totem_ratio_fits_screen (bvw->priv->video_window, w, h, ratio)) { GST_DEBUG ("movie doesn't fit on screen @ %.1fx (%dx%d)", w, h, ratio); return; } } w = (gfloat) w *ratio; h = (gfloat) h *ratio; shrink_toplevel (bvw); GST_DEBUG ("setting preferred size %dx%d", w, h); totem_widget_set_preferred_size (GTK_WIDGET (bvw), w, h); } /** * bacon_video_widget_set_zoom: * @bvw: a #BaconVideoWidget * @zoom: a percentage zoom factor * * Sets the zoom factor applied to the video when it is displayed, * as an integeric percentage between %0 and %1 * (e.g. set @zoom to %1 to not zoom at all). **/ void bacon_video_widget_set_zoom (BaconVideoWidget * bvw, double zoom) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); bvw->priv->zoom = zoom; if (bvw->priv->video_window != NULL) resize_video_window (bvw); } /** * bacon_video_widget_get_zoom: * @bvw: a #BaconVideoWidget * * Returns the zoom factor applied to videos displayed by the widget, * as an integeric percentage between %0 and %1 * (e.g. %1 means no zooming at all). * * Return value: the zoom factor **/ double bacon_video_widget_get_zoom (BaconVideoWidget * bvw) { g_return_val_if_fail (bvw != NULL, 1.0); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), 1.0); return bvw->priv->zoom; } /* Search for the color balance channel corresponding to type and return it. */ static GstColorBalanceChannel * bvw_get_color_balance_channel (GstColorBalance * color_balance, BvwVideoProperty type) { const GList *channels; channels = gst_color_balance_list_channels (color_balance); for (; channels != NULL; channels = channels->next) { GstColorBalanceChannel *c = channels->data; if (type == BVW_VIDEO_BRIGHTNESS && g_strrstr (c->label, "BRIGHTNESS")) return g_object_ref (c); else if (type == BVW_VIDEO_CONTRAST && g_strrstr (c->label, "CONTRAST")) return g_object_ref (c); else if (type == BVW_VIDEO_SATURATION && g_strrstr (c->label, "SATURATION")) return g_object_ref (c); else if (type == BVW_VIDEO_HUE && g_strrstr (c->label, "HUE")) return g_object_ref (c); } return NULL; } /** * bacon_video_widget_get_video_property: * @bvw: a #BaconVideoWidget * @type: the type of property * * Returns the given property of the video, such as its brightness or saturation. * * It is returned as a percentage in the full range of integer values; from %0 * to %G_MAXINT, where %G_MAXINT/2 is the default. * * Return value: the property's value, in the range %0 to %G_MAXINT **/ int bacon_video_widget_get_video_property (BaconVideoWidget * bvw, BvwVideoProperty type) { int ret; g_return_val_if_fail (bvw != NULL, 65535 / 2); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), 65535 / 2); g_mutex_lock (bvw->priv->lock); ret = 0; if (bvw->priv->balance && GST_IS_COLOR_BALANCE (bvw->priv->balance)) { GstColorBalanceChannel *found_channel = NULL; found_channel = bvw_get_color_balance_channel (bvw->priv->balance, type); if (found_channel && GST_IS_COLOR_BALANCE_CHANNEL (found_channel)) { gint cur; cur = gst_color_balance_get_value (bvw->priv->balance, found_channel); GST_DEBUG ("channel %s: cur=%d, min=%d, max=%d", found_channel->label, cur, found_channel->min_value, found_channel->max_value); ret = floor (0.5 + ((double) cur - found_channel->min_value) * 65535 / ((double) found_channel->max_value - found_channel->min_value)); GST_DEBUG ("channel %s: returning value %d", found_channel->label, ret); g_object_unref (found_channel); goto done; } else { ret = -1; } } done: g_mutex_unlock (bvw->priv->lock); return ret; } /** * bacon_video_widget_set_video_property: * @bvw: a #BaconVideoWidget * @type: the type of property * @value: the property's value, in the range %0 to %G_MAXINT * * Sets the given property of the video, such as its brightness or saturation. * * It should be given as a percentage in the full range of integer values; from %0 * to %G_MAXINT, where %G_MAXINT/2 is the default. **/ void bacon_video_widget_set_video_property (BaconVideoWidget * bvw, BvwVideoProperty type, int value) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); GST_DEBUG ("set video property type %d to value %d", type, value); if (!(value <= 65535 && value >= 0)) return; if (bvw->priv->balance && GST_IS_COLOR_BALANCE (bvw->priv->balance)) { GstColorBalanceChannel *found_channel = NULL; found_channel = bvw_get_color_balance_channel (bvw->priv->balance, type); if (found_channel && GST_IS_COLOR_BALANCE_CHANNEL (found_channel)) { int i_value; i_value = floor (0.5 + value * ((double) found_channel->max_value - found_channel->min_value) / 65535 + found_channel->min_value); GST_DEBUG ("channel %s: set to %d/65535", found_channel->label, value); gst_color_balance_set_value (bvw->priv->balance, found_channel, i_value); GST_DEBUG ("channel %s: val=%d, min=%d, max=%d", found_channel->label, i_value, found_channel->min_value, found_channel->max_value); g_object_unref (found_channel); } } } /** * bacon_video_widget_get_position: * @bvw: a #BaconVideoWidget * * Returns the current position in the stream, as a value between * %0 and %1. * * Return value: the current position, or %-1 **/ double bacon_video_widget_get_position (BaconVideoWidget * bvw) { g_return_val_if_fail (bvw != NULL, -1); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), -1); return bvw->priv->current_position; } /** * bacon_video_widget_get_current_time: * @bvw: a #BaconVideoWidget * * Returns the current position in the stream, as the time (in milliseconds) * since the beginning of the stream. * * Return value: time since the beginning of the stream, in milliseconds, or %-1 **/ gint64 bacon_video_widget_get_current_time (BaconVideoWidget * bvw) { g_return_val_if_fail (bvw != NULL, -1); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), -1); return bvw->priv->current_time; } /** * bacon_video_widget_get_accurate_current_time: * @bvw: a #BaconVideoWidget * * Returns the current position in the stream, as the time (in milliseconds) * since the beginning of the stream. * * Return value: time since the beginning of the stream querying directly to the pipeline, in milliseconds, or %-1 **/ gint64 bacon_video_widget_get_accurate_current_time (BaconVideoWidget * bvw) { GstFormat fmt; gint64 pos; g_return_val_if_fail (bvw != NULL, -1); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), -1); fmt = GST_FORMAT_TIME; pos = -1; gst_element_query_position (bvw->priv->play, &fmt, &pos); return pos / GST_MSECOND; } /** * bacon_video_widget_get_stream_length: * @bvw: a #BaconVideoWidget * * Returns the total length of the stream, in milliseconds. * * Return value: the stream length, in milliseconds, or %-1 **/ gint64 bacon_video_widget_get_stream_length (BaconVideoWidget * bvw) { g_return_val_if_fail (bvw != NULL, -1); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), -1); if (bvw->priv->stream_length == 0 && bvw->priv->play != NULL) { GstFormat fmt = GST_FORMAT_TIME; gint64 len = -1; if (gst_element_query_duration (bvw->priv->play, &fmt, &len) && len != -1) { bvw->priv->stream_length = len / GST_MSECOND; } } return bvw->priv->stream_length; } /** * bacon_video_widget_is_playing: * @bvw: a #BaconVideoWidget * * Returns whether the widget is currently playing a stream. * * Return value: %TRUE if a stream is playing, %FALSE otherwise **/ gboolean bacon_video_widget_is_playing (BaconVideoWidget * bvw) { gboolean ret; g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); ret = (bvw->priv->target_state == GST_STATE_PLAYING); GST_LOG ("%splaying", (ret) ? "" : "not "); return ret; } /** * bacon_video_widget_is_seekable: * @bvw: a #BaconVideoWidget * * Returns whether seeking is possible in the current stream. * * If no stream is loaded, %FALSE is returned. * * Return value: %TRUE if the stream is seekable, %FALSE otherwise **/ gboolean bacon_video_widget_is_seekable (BaconVideoWidget * bvw) { gboolean res; gint old_seekable; g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); if (bvw->priv->mrl == NULL) return FALSE; old_seekable = bvw->priv->seekable; if (bvw->priv->seekable == -1) { GstQuery *query; query = gst_query_new_seeking (GST_FORMAT_TIME); if (gst_element_query (bvw->priv->play, query)) { gst_query_parse_seeking (query, NULL, &res, NULL, NULL); bvw->priv->seekable = (res) ? 1 : 0; } else { GST_DEBUG ("seeking query failed"); } gst_query_unref (query); } if (bvw->priv->seekable != -1) { res = (bvw->priv->seekable != 0); goto done; } /* try to guess from duration (this is very unreliable though) */ if (bvw->priv->stream_length == 0) { res = (bacon_video_widget_get_stream_length (bvw) > 0); } else { res = (bvw->priv->stream_length > 0); } done: if (old_seekable != bvw->priv->seekable) g_object_notify (G_OBJECT (bvw), "seekable"); GST_DEBUG ("stream is%s seekable", (res) ? "" : " not"); return res; } static struct _metadata_map_info { BvwMetadataType type; const gchar *str; } metadata_str_map[] = { { BVW_INFO_TITLE, "title"}, { BVW_INFO_ARTIST, "artist"}, { BVW_INFO_YEAR, "year"}, { BVW_INFO_COMMENT, "comment"}, { BVW_INFO_ALBUM, "album"}, { BVW_INFO_DURATION, "duration"}, { BVW_INFO_TRACK_NUMBER, "track-number"}, { BVW_INFO_HAS_VIDEO, "has-video"}, { BVW_INFO_DIMENSION_X, "dimension-x"}, { BVW_INFO_DIMENSION_Y, "dimension-y"}, { BVW_INFO_VIDEO_BITRATE, "video-bitrate"}, { BVW_INFO_VIDEO_CODEC, "video-codec"}, { BVW_INFO_FPS, "fps"}, { BVW_INFO_HAS_AUDIO, "has-audio"}, { BVW_INFO_AUDIO_BITRATE, "audio-bitrate"}, { BVW_INFO_AUDIO_CODEC, "audio-codec"}, { BVW_INFO_AUDIO_SAMPLE_RATE, "samplerate"}, { BVW_INFO_AUDIO_CHANNELS, "channels"} }; static const gchar * get_metadata_type_name (BvwMetadataType type) { guint i; for (i = 0; i < G_N_ELEMENTS (metadata_str_map); ++i) { if (metadata_str_map[i].type == type) return metadata_str_map[i].str; } return "unknown"; } static gint bvw_get_current_stream_num (BaconVideoWidget * bvw, const gchar * stream_type) { gchar *lower, *cur_prop_str; gint stream_num = -1; if (bvw->priv->play == NULL) return stream_num; lower = g_ascii_strdown (stream_type, -1); cur_prop_str = g_strconcat ("current-", lower, NULL); g_object_get (bvw->priv->play, cur_prop_str, &stream_num, NULL); g_free (cur_prop_str); g_free (lower); GST_LOG ("current %s stream: %d", stream_type, stream_num); return stream_num; } static GstTagList * bvw_get_tags_of_current_stream (BaconVideoWidget * bvw, const gchar * stream_type) { GstTagList *tags = NULL; gint stream_num = -1; gchar *lower, *cur_sig_str; stream_num = bvw_get_current_stream_num (bvw, stream_type); if (stream_num < 0) return NULL; lower = g_ascii_strdown (stream_type, -1); cur_sig_str = g_strconcat ("get-", lower, "-tags", NULL); g_signal_emit_by_name (bvw->priv->play, cur_sig_str, stream_num, &tags); g_free (cur_sig_str); g_free (lower); GST_LOG ("current %s stream tags %" GST_PTR_FORMAT, stream_type, tags); return tags; } static GstCaps * bvw_get_caps_of_current_stream (BaconVideoWidget * bvw, const gchar * stream_type) { GstCaps *caps = NULL; gint stream_num = -1; GstPad *current; gchar *lower, *cur_sig_str; stream_num = bvw_get_current_stream_num (bvw, stream_type); if (stream_num < 0) return NULL; lower = g_ascii_strdown (stream_type, -1); cur_sig_str = g_strconcat ("get-", lower, "-pad", NULL); g_signal_emit_by_name (bvw->priv->play, cur_sig_str, stream_num, ¤t); g_free (cur_sig_str); g_free (lower); if (current != NULL) { caps = gst_pad_get_negotiated_caps (current); gst_object_unref (current); } GST_LOG ("current %s stream caps: %" GST_PTR_FORMAT, stream_type, caps); return caps; } static gboolean audio_caps_have_LFE (GstStructure * s) { GstAudioChannelPosition *positions; gint i, channels; if (!gst_structure_get_value (s, "channel-positions") || !gst_structure_get_int (s, "channels", &channels)) { return FALSE; } positions = gst_audio_get_channel_positions (s); if (positions == NULL) return FALSE; for (i = 0; i < channels; ++i) { if (positions[i] == GST_AUDIO_CHANNEL_POSITION_LFE) { g_free (positions); return TRUE; } } g_free (positions); return FALSE; } static void bacon_video_widget_get_metadata_string (BaconVideoWidget * bvw, BvwMetadataType type, GValue * value) { char *string = NULL; gboolean res = FALSE; g_value_init (value, G_TYPE_STRING); if (bvw->priv->play == NULL) { g_value_set_string (value, NULL); return; } switch (type) { case BVW_INFO_TITLE: if (bvw->priv->tagcache != NULL) { res = gst_tag_list_get_string_index (bvw->priv->tagcache, GST_TAG_TITLE, 0, &string); } break; case BVW_INFO_ARTIST: if (bvw->priv->tagcache != NULL) { res = gst_tag_list_get_string_index (bvw->priv->tagcache, GST_TAG_ARTIST, 0, &string); } break; case BVW_INFO_YEAR: if (bvw->priv->tagcache != NULL) { GDate *date; if ((res = gst_tag_list_get_date (bvw->priv->tagcache, GST_TAG_DATE, &date))) { string = g_strdup_printf ("%d", g_date_get_year (date)); g_date_free (date); } } break; case BVW_INFO_COMMENT: if (bvw->priv->tagcache != NULL) { res = gst_tag_list_get_string_index (bvw->priv->tagcache, GST_TAG_COMMENT, 0, &string); } break; case BVW_INFO_ALBUM: if (bvw->priv->tagcache != NULL) { res = gst_tag_list_get_string_index (bvw->priv->tagcache, GST_TAG_ALBUM, 0, &string); } break; case BVW_INFO_VIDEO_CODEC: { GstTagList *tags; /* try to get this from the stream info first */ if ((tags = bvw_get_tags_of_current_stream (bvw, "video"))) { res = gst_tag_list_get_string (tags, GST_TAG_CODEC, &string); gst_tag_list_free (tags); } /* if that didn't work, try the aggregated tags */ if (!res && bvw->priv->tagcache != NULL) { res = gst_tag_list_get_string (bvw->priv->tagcache, GST_TAG_VIDEO_CODEC, &string); } break; } case BVW_INFO_AUDIO_CODEC: { GstTagList *tags; /* try to get this from the stream info first */ if ((tags = bvw_get_tags_of_current_stream (bvw, "audio"))) { res = gst_tag_list_get_string (tags, GST_TAG_CODEC, &string); gst_tag_list_free (tags); } /* if that didn't work, try the aggregated tags */ if (!res && bvw->priv->tagcache != NULL) { res = gst_tag_list_get_string (bvw->priv->tagcache, GST_TAG_AUDIO_CODEC, &string); } break; } case BVW_INFO_AUDIO_CHANNELS: { GstStructure *s; GstCaps *caps; caps = bvw_get_caps_of_current_stream (bvw, "audio"); if (caps) { gint channels = 0; s = gst_caps_get_structure (caps, 0); if ((res = gst_structure_get_int (s, "channels", &channels))) { /* FIXME: do something more sophisticated - but what? */ if (channels > 2 && audio_caps_have_LFE (s)) { string = g_strdup_printf ("%s %d.1", _("Surround"), channels - 1); } else if (channels == 1) { string = g_strdup (_("Mono")); } else if (channels == 2) { string = g_strdup (_("Stereo")); } else { string = g_strdup_printf ("%d", channels); } } gst_caps_unref (caps); } break; } default: g_assert_not_reached (); } /* Remove line feeds */ if (string && strstr (string, "\n") != NULL) g_strdelimit (string, "\n", ' '); if (res && string && g_utf8_validate (string, -1, NULL)) { g_value_take_string (value, string); GST_DEBUG ("%s = '%s'", get_metadata_type_name (type), string); } else { g_value_set_string (value, NULL); g_free (string); } return; } static void bacon_video_widget_get_metadata_int (BaconVideoWidget * bvw, BvwMetadataType type, GValue * value) { int integer = 0; g_value_init (value, G_TYPE_INT); if (bvw->priv->play == NULL) { g_value_set_int (value, 0); return; } switch (type) { case BVW_INFO_DURATION: integer = bacon_video_widget_get_stream_length (bvw) / 1000; break; case BVW_INFO_TRACK_NUMBER: if (bvw->priv->tagcache == NULL) break; if (!gst_tag_list_get_uint (bvw->priv->tagcache, GST_TAG_TRACK_NUMBER, (guint *) & integer)) integer = 0; break; case BVW_INFO_DIMENSION_X: integer = bvw->priv->video_width; break; case BVW_INFO_DIMENSION_Y: integer = bvw->priv->video_height; break; case BVW_INFO_FPS: if (bvw->priv->video_fps_d > 0) { /* Round up/down to the nearest integer framerate */ integer = (bvw->priv->video_fps_n + bvw->priv->video_fps_d / 2) / bvw->priv->video_fps_d; } else integer = 0; break; case BVW_INFO_AUDIO_BITRATE: if (bvw->priv->audiotags == NULL) break; if (gst_tag_list_get_uint (bvw->priv->audiotags, GST_TAG_BITRATE, (guint *) & integer) || gst_tag_list_get_uint (bvw->priv->audiotags, GST_TAG_NOMINAL_BITRATE, (guint *) & integer)) { integer /= 1000; } break; case BVW_INFO_VIDEO_BITRATE: if (bvw->priv->videotags == NULL) break; if (gst_tag_list_get_uint (bvw->priv->videotags, GST_TAG_BITRATE, (guint *) & integer) || gst_tag_list_get_uint (bvw->priv->videotags, GST_TAG_NOMINAL_BITRATE, (guint *) & integer)) { integer /= 1000; } break; case BVW_INFO_AUDIO_SAMPLE_RATE: { GstStructure *s; GstCaps *caps; caps = bvw_get_caps_of_current_stream (bvw, "audio"); if (caps) { s = gst_caps_get_structure (caps, 0); gst_structure_get_int (s, "rate", &integer); gst_caps_unref (caps); } break; } default: g_assert_not_reached (); } g_value_set_int (value, integer); GST_DEBUG ("%s = %d", get_metadata_type_name (type), integer); return; } static void bacon_video_widget_get_metadata_bool (BaconVideoWidget * bvw, BvwMetadataType type, GValue * value) { gboolean boolean = FALSE; g_value_init (value, G_TYPE_BOOLEAN); if (bvw->priv->play == NULL) { g_value_set_boolean (value, FALSE); return; } GST_DEBUG ("tagcache = %" GST_PTR_FORMAT, bvw->priv->tagcache); GST_DEBUG ("videotags = %" GST_PTR_FORMAT, bvw->priv->videotags); GST_DEBUG ("audiotags = %" GST_PTR_FORMAT, bvw->priv->audiotags); switch (type) { case BVW_INFO_HAS_VIDEO: boolean = bvw->priv->media_has_video; /* if properties dialog, show the metadata we * have even if we cannot decode the stream */ if (!boolean && bvw->priv->use_type == BVW_USE_TYPE_METADATA && bvw->priv->tagcache != NULL && gst_structure_has_field ((GstStructure *) bvw->priv->tagcache, GST_TAG_VIDEO_CODEC)) { boolean = TRUE; } break; case BVW_INFO_HAS_AUDIO: boolean = bvw->priv->media_has_audio; /* if properties dialog, show the metadata we * have even if we cannot decode the stream */ if (!boolean && bvw->priv->use_type == BVW_USE_TYPE_METADATA && bvw->priv->tagcache != NULL && gst_structure_has_field ((GstStructure *) bvw->priv->tagcache, GST_TAG_AUDIO_CODEC)) { boolean = TRUE; } break; default: g_assert_not_reached (); } g_value_set_boolean (value, boolean); GST_DEBUG ("%s = %s", get_metadata_type_name (type), (boolean) ? "yes" : "no"); return; } static void bvw_process_pending_tag_messages (BaconVideoWidget * bvw) { GstMessageType events; GstMessage *msg; GstBus *bus; /* process any pending tag messages on the bus NOW, so we can get to * the information without/before giving control back to the main loop */ /* application message is for stream-info */ events = GST_MESSAGE_TAG | GST_MESSAGE_DURATION | GST_MESSAGE_APPLICATION; bus = gst_element_get_bus (bvw->priv->play); while ((msg = gst_bus_poll (bus, events, 0))) { gst_bus_async_signal_func (bus, msg, NULL); } gst_object_unref (bus); } static GdkPixbuf * bacon_video_widget_get_metadata_pixbuf (BaconVideoWidget * bvw, GstBuffer * buffer) { GdkPixbufLoader *loader; GdkPixbuf *pixbuf; loader = gdk_pixbuf_loader_new (); if (!gdk_pixbuf_loader_write (loader, buffer->data, buffer->size, NULL)) { g_object_unref (loader); return NULL; } if (!gdk_pixbuf_loader_close (loader, NULL)) { g_object_unref (loader); return NULL; } pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); if (pixbuf) g_object_ref (pixbuf); g_object_unref (loader); return pixbuf; } static const GValue * bacon_video_widget_get_best_image (BaconVideoWidget * bvw) { const GValue *cover_value = NULL; guint i; for (i = 0;; i++) { const GValue *value; GstBuffer *buffer; GstStructure *caps_struct; int type; value = gst_tag_list_get_value_index (bvw->priv->tagcache, GST_TAG_IMAGE, i); if (value == NULL) break; buffer = gst_value_get_buffer (value); caps_struct = gst_caps_get_structure (buffer->caps, 0); gst_structure_get_enum (caps_struct, "image-type", GST_TYPE_TAG_IMAGE_TYPE, &type); if (type == GST_TAG_IMAGE_TYPE_UNDEFINED) { if (cover_value == NULL) cover_value = value; } else if (type == GST_TAG_IMAGE_TYPE_FRONT_COVER) { cover_value = value; break; } } return cover_value; } /** * bacon_video_widget_get_metadata: * @bvw: a #BaconVideoWidget * @type: the type of metadata to return * @value: a #GValue * * Provides metadata of the given @type about the current stream in @value. * * Free the #GValue with g_value_unset(). **/ void bacon_video_widget_get_metadata (BaconVideoWidget * bvw, BvwMetadataType type, GValue * value) { g_return_if_fail (bvw != NULL); g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw)); g_return_if_fail (GST_IS_ELEMENT (bvw->priv->play)); switch (type) { case BVW_INFO_TITLE: case BVW_INFO_ARTIST: case BVW_INFO_YEAR: case BVW_INFO_COMMENT: case BVW_INFO_ALBUM: case BVW_INFO_VIDEO_CODEC: bacon_video_widget_get_metadata_string (bvw, type, value); break; case BVW_INFO_AUDIO_CODEC: bacon_video_widget_get_metadata_string (bvw, type, value); break; case BVW_INFO_AUDIO_CHANNELS: bacon_video_widget_get_metadata_string (bvw, type, value); break; case BVW_INFO_DURATION: bacon_video_widget_get_metadata_int (bvw, type, value); break; case BVW_INFO_DIMENSION_X: bacon_video_widget_get_metadata_int (bvw, type, value); break; case BVW_INFO_DIMENSION_Y: bacon_video_widget_get_metadata_int (bvw, type, value); break; case BVW_INFO_FPS: bacon_video_widget_get_metadata_int (bvw, type, value); break; case BVW_INFO_AUDIO_BITRATE: bacon_video_widget_get_metadata_int (bvw, type, value); break; case BVW_INFO_VIDEO_BITRATE: bacon_video_widget_get_metadata_int (bvw, type, value); break; case BVW_INFO_TRACK_NUMBER: case BVW_INFO_AUDIO_SAMPLE_RATE: bacon_video_widget_get_metadata_int (bvw, type, value); break; case BVW_INFO_HAS_VIDEO: bacon_video_widget_get_metadata_bool (bvw, type, value); break; case BVW_INFO_HAS_AUDIO: bacon_video_widget_get_metadata_bool (bvw, type, value); break; case BVW_INFO_COVER: { const GValue *cover_value; g_value_init (value, G_TYPE_OBJECT); if (bvw->priv->tagcache == NULL) break; cover_value = bacon_video_widget_get_best_image (bvw); if (!cover_value) { cover_value = gst_tag_list_get_value_index (bvw->priv->tagcache, GST_TAG_PREVIEW_IMAGE, 0); } if (cover_value) { GstBuffer *buffer; GdkPixbuf *pixbuf; buffer = gst_value_get_buffer (cover_value); pixbuf = bacon_video_widget_get_metadata_pixbuf (bvw, buffer); if (pixbuf) g_value_take_object (value, pixbuf); } } break; default: g_return_if_reached (); } return; } /* Screenshot functions */ /** * bacon_video_widget_can_get_frames: * @bvw: a #BaconVideoWidget * @error: a #GError, or %NULL * * Determines whether individual frames from the current stream can * be returned using bacon_video_widget_get_current_frame(). * * Frames cannot be returned for audio-only streams, unless visualisations * are enabled. * * Return value: %TRUE if frames can be captured, %FALSE otherwise **/ gboolean bacon_video_widget_can_get_frames (BaconVideoWidget * bvw, GError ** error) { g_return_val_if_fail (bvw != NULL, FALSE); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), FALSE); /* check for version */ if (!g_object_class_find_property (G_OBJECT_GET_CLASS (bvw->priv->play), "frame")) { g_set_error_literal (error, BVW_ERROR, GST_ERROR_GENERIC, _("Too old version of GStreamer installed.")); return FALSE; } /* check for video */ if (!bvw->priv->media_has_video) { g_set_error_literal (error, BVW_ERROR, GST_ERROR_GENERIC, _("Media contains no supported video streams.")); return FALSE; } return TRUE; } static void destroy_pixbuf (guchar * pix, gpointer data) { gst_buffer_unref (GST_BUFFER (data)); } void bacon_video_widget_unref_pixbuf (GdkPixbuf * pixbuf) { g_object_unref (pixbuf); } /** * bacon_video_widget_get_current_frame: * @bvw: a #BaconVideoWidget * * Returns a #GdkPixbuf containing the current frame from the playing * stream. This will wait for any pending seeks to complete before * capturing the frame. * * Return value: the current frame, or %NULL; unref with g_object_unref() **/ GdkPixbuf * bacon_video_widget_get_current_frame (BaconVideoWidget * bvw) { GstStructure *s; GstBuffer *buf = NULL; GdkPixbuf *pixbuf; GstCaps *to_caps; gint outwidth = 0; gint outheight = 0; g_return_val_if_fail (bvw != NULL, NULL); g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), NULL); g_return_val_if_fail (GST_IS_ELEMENT (bvw->priv->play), NULL); /*[> when used as thumbnailer, wait for pending seeks to complete <] */ /*if (bvw->priv->use_type == BVW_USE_TYPE_CAPTURE) */ /*{ */ /*gst_element_get_state (bvw->priv->play, NULL, NULL, -1); */ /*} */ gst_element_get_state (bvw->priv->play, NULL, NULL, -1); /* no video info */ if (!bvw->priv->video_width || !bvw->priv->video_height) { GST_DEBUG ("Could not take screenshot: %s", "no video info"); g_warning ("Could not take screenshot: %s", "no video info"); return NULL; } /* get frame */ g_object_get (bvw->priv->play, "frame", &buf, NULL); if (!buf) { GST_DEBUG ("Could not take screenshot: %s", "no last video frame"); g_warning ("Could not take screenshot: %s", "no last video frame"); return NULL; } if (GST_BUFFER_CAPS (buf) == NULL) { GST_DEBUG ("Could not take screenshot: %s", "no caps on buffer"); g_warning ("Could not take screenshot: %s", "no caps on buffer"); return NULL; } /* convert to our desired format (RGB24) */ to_caps = gst_caps_new_simple ("video/x-raw-rgb", "bpp", G_TYPE_INT, 24, "depth", G_TYPE_INT, 24, /* Note: we don't ask for a specific width/height here, so that * videoscale can adjust dimensions from a non-1/1 pixel aspect * ratio to a 1/1 pixel-aspect-ratio */ "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, "endianness", G_TYPE_INT, G_BIG_ENDIAN, "red_mask", G_TYPE_INT, 0xff0000, "green_mask", G_TYPE_INT, 0x00ff00, "blue_mask", G_TYPE_INT, 0x0000ff, NULL); if (bvw->priv->video_fps_n > 0 && bvw->priv->video_fps_d > 0) { gst_caps_set_simple (to_caps, "framerate", GST_TYPE_FRACTION, bvw->priv->video_fps_n, bvw->priv->video_fps_d, NULL); } GST_DEBUG ("frame caps: %" GST_PTR_FORMAT, GST_BUFFER_CAPS (buf)); GST_DEBUG ("pixbuf caps: %" GST_PTR_FORMAT, to_caps); /* bvw_frame_conv_convert () takes ownership of the buffer passed */ buf = bvw_frame_conv_convert (buf, to_caps); gst_caps_unref (to_caps); if (!buf) { GST_DEBUG ("Could not take screenshot: %s", "conversion failed"); g_warning ("Could not take screenshot: %s", "conversion failed"); return NULL; } if (!GST_BUFFER_CAPS (buf)) { GST_DEBUG ("Could not take screenshot: %s", "no caps on output buffer"); g_warning ("Could not take screenshot: %s", "no caps on output buffer"); return NULL; } s = gst_caps_get_structure (GST_BUFFER_CAPS (buf), 0); gst_structure_get_int (s, "width", &outwidth); gst_structure_get_int (s, "height", &outheight); g_return_val_if_fail (outwidth > 0 && outheight > 0, NULL); /* create pixbuf from that - use our own destroy function */ pixbuf = gdk_pixbuf_new_from_data (GST_BUFFER_DATA (buf), GDK_COLORSPACE_RGB, FALSE, 8, outwidth, outheight, GST_ROUND_UP_4 (outwidth * 3), destroy_pixbuf, buf); if (!pixbuf) { GST_DEBUG ("Could not take screenshot: %s", "could not create pixbuf"); g_warning ("Could not take screenshot: %s", "could not create pixbuf"); gst_buffer_unref (buf); } return pixbuf; } /* =========================================== */ /* */ /* Widget typing & Creation */ /* */ /* =========================================== */ G_DEFINE_TYPE (BaconVideoWidget, bacon_video_widget, GTK_TYPE_EVENT_BOX) /* applications must use exactly one of bacon_video_widget_get_option_group() * OR bacon_video_widget_init_backend(), but not both */ /** * bacon_video_widget_get_option_group: * * Returns the #GOptionGroup containing command-line options for * #BaconVideoWidget. * * Applications must call either this or bacon_video_widget_init_backend() exactly * once; but not both. * * Return value: a #GOptionGroup giving command-line options for #BaconVideoWidget **/ GOptionGroup *bacon_video_widget_get_option_group (void) { return gst_init_get_option_group (); } /** * bacon_video_widget_init_backend: * @argc: pointer to application's argc * @argv: pointer to application's argv * * Initialises #BaconVideoWidget's GStreamer backend. If this fails * for the GStreamer backend, your application will be terminated. * * Applications must call either this or bacon_video_widget_get_option_group() exactly * once; but not both. **/ void bacon_video_widget_init_backend (int *argc, char ***argv) { gst_init (argc, argv); } GQuark bacon_video_widget_error_quark (void) { static GQuark q; /* 0 */ if (G_UNLIKELY (q == 0)) { q = g_quark_from_static_string ("bvw-error-quark"); } return q; } /* fold function to pick the best colorspace element */ static gboolean find_colorbalance_element (GstElement * element, GValue * ret, GstElement ** cb) { GstColorBalanceClass *cb_class; GST_DEBUG ("Checking element %s ...", GST_OBJECT_NAME (element)); if (!GST_IS_COLOR_BALANCE (element)) return TRUE; GST_DEBUG ("Element %s is a color balance", GST_OBJECT_NAME (element)); cb_class = GST_COLOR_BALANCE_GET_CLASS (element); if (GST_COLOR_BALANCE_TYPE (cb_class) == GST_COLOR_BALANCE_HARDWARE) { gst_object_replace ((GstObject **) cb, (GstObject *) element); /* shortcuts the fold */ return FALSE; } else if (*cb == NULL) { gst_object_replace ((GstObject **) cb, (GstObject *) element); return TRUE; } else { return TRUE; } } static gboolean bvw_update_interfaces_delayed (BaconVideoWidget * bvw) { GST_DEBUG ("Delayed updating interface implementations"); g_mutex_lock (bvw->priv->lock); bvw_update_interface_implementations (bvw); bvw->priv->interface_update_id = 0; g_mutex_unlock (bvw->priv->lock); return FALSE; } /* Must be called with bvw->priv->lock held */ static void bvw_update_interface_implementations (BaconVideoWidget * bvw) { GstColorBalance *old_balance = bvw->priv->balance; GstXOverlay *old_xoverlay = bvw->priv->xoverlay; GstElement *video_sink = NULL; GstElement *element = NULL; GstIteratorResult ires; GstIterator *iter; if (g_thread_self () != gui_thread) { if (bvw->priv->balance) gst_object_unref (bvw->priv->balance); bvw->priv->balance = NULL; if (bvw->priv->xoverlay) gst_object_unref (bvw->priv->xoverlay); bvw->priv->xoverlay = NULL; if (bvw->priv->navigation) gst_object_unref (bvw->priv->navigation); bvw->priv->navigation = NULL; if (bvw->priv->interface_update_id) g_source_remove (bvw->priv->interface_update_id); bvw->priv->interface_update_id = g_idle_add ((GSourceFunc) bvw_update_interfaces_delayed, bvw); return; } g_object_get (bvw->priv->play, "video-sink", &video_sink, NULL); g_assert (video_sink != NULL); /* We try to get an element supporting XOverlay interface */ if (GST_IS_BIN (video_sink)) { GST_DEBUG ("Retrieving xoverlay from bin ..."); element = gst_bin_get_by_interface (GST_BIN (video_sink), GST_TYPE_X_OVERLAY); } else { element = gst_object_ref (video_sink); } if (GST_IS_X_OVERLAY (element)) { GST_DEBUG ("Found xoverlay: %s", GST_OBJECT_NAME (element)); bvw->priv->xoverlay = GST_X_OVERLAY (element); } else { GST_DEBUG ("No xoverlay found"); if (element) gst_object_unref (element); bvw->priv->xoverlay = NULL; } /* Try to find the navigation interface */ if (GST_IS_BIN (video_sink)) { GST_DEBUG ("Retrieving navigation from bin ..."); element = gst_bin_get_by_interface (GST_BIN (video_sink), GST_TYPE_NAVIGATION); } else { element = gst_object_ref (video_sink); } if (GST_IS_NAVIGATION (element)) { GST_DEBUG ("Found navigation: %s", GST_OBJECT_NAME (element)); bvw->priv->navigation = GST_NAVIGATION (element); } else { GST_DEBUG ("No navigation found"); if (element) gst_object_unref (element); bvw->priv->navigation = NULL; } /* Find best color balance element (using custom iterator so * we can prefer hardware implementations to software ones) */ /* FIXME: this doesn't work reliably yet, most of the time * the fold function doesn't even get called, while sometimes * it does ... */ iter = gst_bin_iterate_all_by_interface (GST_BIN (bvw->priv->play), GST_TYPE_COLOR_BALANCE); /* naively assume no resync */ element = NULL; ires = gst_iterator_fold (iter, (GstIteratorFoldFunction) find_colorbalance_element, NULL, &element); gst_iterator_free (iter); if (element) { bvw->priv->balance = GST_COLOR_BALANCE (element); GST_DEBUG ("Best colorbalance found: %s", GST_OBJECT_NAME (bvw->priv->balance)); } else if (GST_IS_COLOR_BALANCE (bvw->priv->xoverlay)) { bvw->priv->balance = GST_COLOR_BALANCE (bvw->priv->xoverlay); gst_object_ref (bvw->priv->balance); GST_DEBUG ("Colorbalance backup found: %s", GST_OBJECT_NAME (bvw->priv->balance)); } else { GST_DEBUG ("No colorbalance found"); bvw->priv->balance = NULL; } if (old_xoverlay) gst_object_unref (GST_OBJECT (old_xoverlay)); if (old_balance) gst_object_unref (GST_OBJECT (old_balance)); gst_object_unref (video_sink); } static void bvw_element_msg_sync (GstBus * bus, GstMessage * msg, gpointer data) { BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (data); g_assert (msg->type == GST_MESSAGE_ELEMENT); if (msg->structure == NULL) return; /* This only gets sent if we haven't set an ID yet. This is our last * chance to set it before the video sink will create its own window */ if (gst_structure_has_name (msg->structure, "prepare-xwindow-id")) { GST_INFO ("Handling sync prepare-xwindow-id message"); g_mutex_lock (bvw->priv->lock); bvw_update_interface_implementations (bvw); g_mutex_unlock (bvw->priv->lock); if (bvw->priv->xoverlay == NULL) { GstObject *sender = GST_MESSAGE_SRC (msg); if (sender && GST_IS_X_OVERLAY (sender)) bvw->priv->xoverlay = GST_X_OVERLAY (gst_object_ref (sender)); } g_return_if_fail (bvw->priv->xoverlay != NULL); g_return_if_fail (bvw->priv->video_window != NULL); #ifdef WIN32 gst_x_overlay_set_xwindow_id (bvw->priv->xoverlay, GDK_WINDOW_HWND (bvw->priv->video_window)); #else gst_x_overlay_set_xwindow_id (bvw->priv->xoverlay, GDK_WINDOW_XID (bvw->priv->video_window)); #endif } } static void got_new_video_sink_bin_element (GstBin * video_sink, GstElement * element, gpointer data) { BaconVideoWidget *bvw = BACON_VIDEO_WIDGET (data); g_mutex_lock (bvw->priv->lock); bvw_update_interface_implementations (bvw); g_mutex_unlock (bvw->priv->lock); } /** * bacon_video_widget_new: * @width: initial or expected video width, in pixels, or %-1 * @height: initial or expected video height, in pixels, or %-1 * @type: the widget's use type * @error: a #GError, or %NULL * * Creates a new #BaconVideoWidget for the purpose specified in @type. * * If @type is %BVW_USE_TYPE_VIDEO, the #BaconVideoWidget will be fully-featured; other * values of @type will enable less functionality on the widget, which will come with * corresponding decreases in the size of its memory footprint. * * @width and @height give the initial or expected video height. Set them to %-1 if the * video size is unknown. For small videos, #BaconVideoWidget will be configured differently. * * A #BvwError will be returned on error. * * Return value: a new #BaconVideoWidget, or %NULL; destroy with gtk_widget_destroy() **/ GtkWidget * bacon_video_widget_new (int width, int height, BvwUseType type, GError ** err) { BaconVideoWidget *bvw; GstElement *audio_sink = NULL, *video_sink = NULL; gchar *version_str; #ifndef GST_DISABLE_GST_INFO if (_totem_gst_debug_cat == NULL) { GST_DEBUG_CATEGORY_INIT (_totem_gst_debug_cat, "totem", 0, "Totem GStreamer Backend"); } #endif version_str = gst_version_string (); GST_INFO ("Initialised %s", version_str); g_free (version_str); gst_pb_utils_init (); bvw = g_object_new (bacon_video_widget_get_type (), NULL); bvw->priv->use_type = type; GST_INFO ("use_type = %d", type); bvw->priv->play = gst_element_factory_make ("playbin2", "play"); if (!bvw->priv->play) { g_set_error (err, BVW_ERROR, GST_ERROR_PLUGIN_LOAD, _("Failed to create a GStreamer play object. " "Please check your GStreamer installation.")); g_object_ref_sink (bvw); g_object_unref (bvw); return NULL; } bvw->priv->bus = gst_element_get_bus (bvw->priv->play); gst_bus_add_signal_watch (bvw->priv->bus); bvw->priv->sig_bus_async = g_signal_connect (bvw->priv->bus, "message", G_CALLBACK (bvw_bus_message_cb), bvw); bvw->priv->speakersetup = BVW_AUDIO_SOUND_STEREO; bvw->priv->media_device = g_strdup ("/dev/dvd"); bvw->priv->ratio_type = BVW_RATIO_AUTO; bvw->priv->cursor_shown = TRUE; bvw->priv->logo_mode = FALSE; bvw->priv->auto_resize = FALSE; if (type == BVW_USE_TYPE_VIDEO || type == BVW_USE_TYPE_AUDIO) { audio_sink = gst_element_factory_make ("autoaudiosink", "audio-sink"); if (audio_sink == NULL) { g_warning ("Could not create element 'autoaudiosink'"); } } else { audio_sink = gst_element_factory_make ("fakesink", "audio-fake-sink"); } if (type == BVW_USE_TYPE_VIDEO) { video_sink = gst_element_factory_make (DEFAULT_VIDEO_SINK, "video-sink"); if (video_sink == NULL) { g_warning ("Could not create element '%s'", DEFAULT_VIDEO_SINK); /* Try to fallback on ximagesink */ video_sink = gst_element_factory_make ("ximagesink", "video-sink"); } } else { video_sink = gst_element_factory_make ("fakesink", "video-fake-sink"); if (video_sink) g_object_set (video_sink, "sync", TRUE, NULL); } if (video_sink) { GstStateChangeReturn ret; /* need to set bus explicitly as it's not in a bin yet and * poll_for_state_change() needs one to catch error messages */ gst_element_set_bus (video_sink, bvw->priv->bus); /* state change NULL => READY should always be synchronous */ ret = gst_element_set_state (video_sink, GST_STATE_READY); if (ret == GST_STATE_CHANGE_FAILURE) { /* Drop this video sink */ gst_element_set_state (video_sink, GST_STATE_NULL); gst_object_unref (video_sink); /* Try again with autovideosink */ video_sink = gst_element_factory_make ("autovideosink", "video-sink"); gst_element_set_bus (video_sink, bvw->priv->bus); ret = gst_element_set_state (video_sink, GST_STATE_READY); if (ret == GST_STATE_CHANGE_FAILURE) { GstMessage *err_msg; err_msg = gst_bus_poll (bvw->priv->bus, GST_MESSAGE_ERROR, 0); if (err_msg == NULL) { g_warning ("Should have gotten an error message, please file a bug."); g_set_error (err, BVW_ERROR, GST_ERROR_VIDEO_PLUGIN, _ ("Failed to open video output. It may not be available. " "Please select another video output in the Multimedia " "Systems Selector.")); } else if (err_msg) { *err = bvw_error_from_gst_error (bvw, err_msg); gst_message_unref (err_msg); } goto sink_error; } } } else { g_set_error (err, BVW_ERROR, GST_ERROR_VIDEO_PLUGIN, _("Could not find the video output. " "You may need to install additional GStreamer plugins, " "or select another video output in the Multimedia Systems " "Selector.")); goto sink_error; } if (audio_sink) { GstStateChangeReturn ret; GstBus *bus; /* need to set bus explicitly as it's not in a bin yet and * we need one to catch error messages */ bus = gst_bus_new (); gst_element_set_bus (audio_sink, bus); /* state change NULL => READY should always be synchronous */ ret = gst_element_set_state (audio_sink, GST_STATE_READY); gst_element_set_bus (audio_sink, NULL); if (ret == GST_STATE_CHANGE_FAILURE) { /* doesn't work, drop this audio sink */ gst_element_set_state (audio_sink, GST_STATE_NULL); gst_object_unref (audio_sink); audio_sink = NULL; /* Hopefully, fakesink should always work */ if (type != BVW_USE_TYPE_AUDIO) audio_sink = gst_element_factory_make ("fakesink", "audio-sink"); if (audio_sink == NULL) { GstMessage *err_msg; err_msg = gst_bus_poll (bus, GST_MESSAGE_ERROR, 0); if (err_msg == NULL) { g_warning ("Should have gotten an error message, please file a bug."); g_set_error (err, BVW_ERROR, GST_ERROR_AUDIO_PLUGIN, _ ("Failed to open audio output. You may not have " "permission to open the sound device, or the sound " "server may not be running. " "Please select another audio output in the Multimedia " "Systems Selector.")); } else if (err) { *err = bvw_error_from_gst_error (bvw, err_msg); gst_message_unref (err_msg); } gst_object_unref (bus); goto sink_error; } /* make fakesink sync to the clock like a real sink */ g_object_set (audio_sink, "sync", TRUE, NULL); GST_INFO ("audio sink doesn't work, using fakesink instead"); bvw->priv->uses_fakesink = TRUE; } gst_object_unref (bus); } else { g_set_error (err, BVW_ERROR, GST_ERROR_AUDIO_PLUGIN, _("Could not find the audio output. " "You may need to install additional GStreamer plugins, or " "select another audio output in the Multimedia Systems " "Selector.")); goto sink_error; } /* set back to NULL to close device again in order to avoid interrupts * being generated after startup while there's nothing to play yet */ gst_element_set_state (audio_sink, GST_STATE_NULL); do { GstElement *bin; GstPad *pad; bvw->priv->audio_capsfilter = gst_element_factory_make ("capsfilter", "audiofilter"); bin = gst_bin_new ("audiosinkbin"); gst_bin_add_many (GST_BIN (bin), bvw->priv->audio_capsfilter, audio_sink, NULL); gst_element_link_pads (bvw->priv->audio_capsfilter, "src", audio_sink, "sink"); pad = gst_element_get_pad (bvw->priv->audio_capsfilter, "sink"); gst_element_add_pad (bin, gst_ghost_pad_new ("sink", pad)); gst_object_unref (pad); audio_sink = bin; } while (0); /* now tell playbin */ g_object_set (bvw->priv->play, "video-sink", video_sink, NULL); g_object_set (bvw->priv->play, "audio-sink", audio_sink, NULL); g_signal_connect (bvw->priv->play, "notify::source", G_CALLBACK (playbin_source_notify_cb), bvw); g_signal_connect (bvw->priv->play, "video-changed", G_CALLBACK (playbin_stream_changed_cb), bvw); g_signal_connect (bvw->priv->play, "audio-changed", G_CALLBACK (playbin_stream_changed_cb), bvw); g_signal_connect (bvw->priv->play, "text-changed", G_CALLBACK (playbin_stream_changed_cb), bvw); /* assume we're always called from the main Gtk+ GUI thread */ gui_thread = g_thread_self (); if (type == BVW_USE_TYPE_VIDEO) { GstStateChangeReturn ret; /* wait for video sink to finish changing to READY state, * otherwise we won't be able to detect the colorbalance interface */ ret = gst_element_get_state (video_sink, NULL, NULL, 5 * GST_SECOND); if (ret != GST_STATE_CHANGE_SUCCESS) { GST_WARNING ("Timeout setting videosink to READY"); g_set_error (err, BVW_ERROR, GST_ERROR_VIDEO_PLUGIN, _ ("Failed to open video output. It may not be available. " "Please select another video output in the Multimedia Systems Selector.")); return NULL; } bvw_update_interface_implementations (bvw); } /* we want to catch "prepare-xwindow-id" element messages synchronously */ gst_bus_set_sync_handler (bvw->priv->bus, gst_bus_sync_signal_handler, bvw); bvw->priv->sig_bus_sync = g_signal_connect (bvw->priv->bus, "sync-message::element", G_CALLBACK (bvw_element_msg_sync), bvw); if (GST_IS_BIN (video_sink)) { /* video sink bins like gconfvideosink might remove their children and * create new ones when set to NULL state, and they are currently set * to NULL state whenever playbin re-creates its internal video bin * (it sets all elements to NULL state before gst_bin_remove()ing them) */ g_signal_connect (video_sink, "element-added", G_CALLBACK (got_new_video_sink_bin_element), bvw); } return GTK_WIDGET (bvw); /* errors */ sink_error: { if (video_sink) { gst_element_set_state (video_sink, GST_STATE_NULL); gst_object_unref (video_sink); } if (audio_sink) { gst_element_set_state (audio_sink, GST_STATE_NULL); gst_object_unref (audio_sink); } g_object_ref (bvw); g_object_ref_sink (G_OBJECT (bvw)); g_object_unref (bvw); return NULL; } } longomatch-0.16.8/libcesarplayer/src/Makefile.am0000644000175000017500000000236611601631101016503 00000000000000## Process this file with automake to produce Makefile.in AM_CPPFLAGS = \ -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ $(CESARPLAYER_CFLAGS) AM_CFLAGS =\ -Wall\ -g BVWMARSHALFILES = baconvideowidget-marshal.c baconvideowidget-marshal.h GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0` BUILT_SOURCES = $(BVWMARSHALFILES) baconvideowidget-marshal.h: baconvideowidget-marshal.list ( $(GLIB_GENMARSHAL) --prefix=baconvideowidget_marshal $(srcdir)/baconvideowidget-marshal.list --header > baconvideowidget-marshal.h ) baconvideowidget-marshal.c: baconvideowidget-marshal.h ( $(GLIB_GENMARSHAL) --prefix=baconvideowidget_marshal $(srcdir)/baconvideowidget-marshal.list --body --header > baconvideowidget-marshal.c ) pkglib_LTLIBRARIES = \ libcesarplayer.la libcesarplayer_la_SOURCES = \ $(BVWMARSHALFILES) \ common.h\ bacon-video-widget.h\ bacon-video-widget-gst-0.10.c\ gstscreenshot.c \ gstscreenshot.h \ gst-camera-capturer.c\ gst-camera-capturer.h\ gst-video-editor.c\ gst-video-editor.h\ bacon-resize.c\ bacon-resize.h\ video-utils.c\ video-utils.h\ macros.h libcesarplayer_la_LDFLAGS = \ $(CESARPLAYER_LIBS) CLEANFILES = $(BUILT_SOURCES) EXTRA_DIST = \ baconvideowidget-marshal.list longomatch-0.16.8/libcesarplayer/src/gst-camera-capturer.c0000644000175000017500000015167211601631101020466 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ /* * Gstreamer DV capturer * Copyright (C) Andoni Morales Alastruey 2008 * * Gstreamer DV capturer is free software. * * You may 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. * * Gstreamer DV 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 foob. If not, write to: * The Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301, USA. */ #include #include #include #include #include #include #include "gst-camera-capturer.h" #include "gstscreenshot.h" /*Default video source*/ #ifdef WIN32 #define DVVIDEOSRC "dshowvideosrc" #define RAWVIDEOSRC "dshowvideosrc" #define AUDIOSRC "dshowaudiosrc" #else #define DVVIDEOSRC "dv1394src" #define RAWVIDEOSRC "gconfvideosrc" #define AUDIOSRC "gconfaudiosrc" #endif /* gtk+/gnome */ #ifdef WIN32 #include #else #include #endif #ifdef WIN32 #define DEFAULT_SOURCE_TYPE GST_CAMERA_CAPTURE_SOURCE_TYPE_DSHOW #else #define DEFAULT_SOURCE_TYPE GST_CAMERA_CAPTURE_SOURCE_TYPE_RAW #endif typedef enum { GST_CAMERABIN_FLAG_SOURCE_RESIZE = (1 << 0), GST_CAMERABIN_FLAG_SOURCE_COLOR_CONVERSION = (1 << 1), GST_CAMERABIN_FLAG_VIEWFINDER_COLOR_CONVERSION = (1 << 2), GST_CAMERABIN_FLAG_VIEWFINDER_SCALE = (1 << 3), GST_CAMERABIN_FLAG_AUDIO_CONVERSION = (1 << 4), GST_CAMERABIN_FLAG_DISABLE_AUDIO = (1 << 5), GST_CAMERABIN_FLAG_IMAGE_COLOR_CONVERSION = (1 << 6) } GstCameraBinFlags; /* Signals */ enum { SIGNAL_ERROR, SIGNAL_EOS, SIGNAL_STATE_CHANGED, SIGNAL_DEVICE_CHANGE, LAST_SIGNAL }; /* Properties */ enum { PROP_0, PROP_OUTPUT_HEIGHT, PROP_OUTPUT_WIDTH, PROP_VIDEO_BITRATE, PROP_AUDIO_BITRATE, PROP_AUDIO_ENABLED, PROP_OUTPUT_FILE, PROP_DEVICE_ID, }; struct GstCameraCapturerPrivate { /*Encoding properties */ gchar *output_file; gchar *device_id; guint output_height; guint output_width; guint output_fps_n; guint output_fps_d; guint audio_bitrate; guint video_bitrate; gboolean audio_enabled; VideoEncoderType video_encoder_type; AudioEncoderType audio_encoder_type; /*Video input info */ gint video_width; /* Movie width */ gint video_height; /* Movie height */ const GValue *movie_par; /* Movie pixel aspect ratio */ gint video_width_pixels; /* Scaled movie width */ gint video_height_pixels; /* Scaled movie height */ gint video_fps_n; gint video_fps_d; gboolean media_has_video; gboolean media_has_audio; GstCameraCaptureSourceType source_type; /* Snapshots */ GstBuffer *last_buffer; /*GStreamer elements */ GstElement *main_pipeline; GstElement *camerabin; GstElement *videosrc; GstElement *device_source; GstElement *videofilter; GstElement *audiosrc; GstElement *videoenc; GstElement *audioenc; GstElement *videomux; /*Overlay */ GstXOverlay *xoverlay; /* protect with lock */ guint interface_update_id; /* protect with lock */ GMutex *lock; /*Videobox */ GdkWindow *video_window; gboolean logo_mode; GdkPixbuf *logo_pixbuf; float zoom; /*GStreamer bus */ GstBus *bus; gulong sig_bus_async; gulong sig_bus_sync; }; static GtkWidgetClass *parent_class = NULL; static GThread *gui_thread; static int gcc_signals[LAST_SIGNAL] = { 0 }; static void gcc_error_msg (GstCameraCapturer * gcc, GstMessage * msg); static void gcc_bus_message_cb (GstBus * bus, GstMessage * message, gpointer data); static void gst_camera_capturer_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void gst_camera_capturer_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static void gcc_element_msg_sync (GstBus * bus, GstMessage * msg, gpointer data); static void gcc_update_interface_implementations (GstCameraCapturer * gcc); static int gcc_get_video_stream_info (GstCameraCapturer * gcc); G_DEFINE_TYPE (GstCameraCapturer, gst_camera_capturer, GTK_TYPE_EVENT_BOX); static void gst_camera_capturer_init (GstCameraCapturer * object) { GstCameraCapturerPrivate *priv; object->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (object, GST_TYPE_CAMERA_CAPTURER, GstCameraCapturerPrivate); GTK_WIDGET_SET_FLAGS (GTK_WIDGET (object), GTK_CAN_FOCUS); GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET (object), GTK_DOUBLE_BUFFERED); priv->zoom = 1.0; priv->output_height = 576; priv->output_width = 720; priv->output_fps_n = 25; priv->output_fps_d = 1; priv->audio_bitrate = 128; priv->video_bitrate = 5000; priv->last_buffer = NULL; priv->source_type = GST_CAMERA_CAPTURE_SOURCE_TYPE_NONE; priv->lock = g_mutex_new (); } void gst_camera_capturer_finalize (GObject * object) { GstCameraCapturer *gcc = (GstCameraCapturer *) object; GST_DEBUG_OBJECT (gcc, "Finalizing."); if (gcc->priv->bus) { /* make bus drop all messages to make sure none of our callbacks is ever * called again (main loop might be run again to display error dialog) */ gst_bus_set_flushing (gcc->priv->bus, TRUE); if (gcc->priv->sig_bus_async) g_signal_handler_disconnect (gcc->priv->bus, gcc->priv->sig_bus_async); if (gcc->priv->sig_bus_sync) g_signal_handler_disconnect (gcc->priv->bus, gcc->priv->sig_bus_sync); gst_object_unref (gcc->priv->bus); gcc->priv->bus = NULL; } if (gcc->priv->output_file) { g_free (gcc->priv->output_file); gcc->priv->output_file = NULL; } if (gcc->priv->device_id) { g_free (gcc->priv->device_id); gcc->priv->device_id = NULL; } if (gcc->priv->logo_pixbuf) { g_object_unref (gcc->priv->logo_pixbuf); gcc->priv->logo_pixbuf = NULL; } if (gcc->priv->interface_update_id) { g_source_remove (gcc->priv->interface_update_id); gcc->priv->interface_update_id = 0; } if (gcc->priv->last_buffer != NULL) gst_buffer_unref (gcc->priv->last_buffer); if (gcc->priv->main_pipeline != NULL && GST_IS_ELEMENT (gcc->priv->main_pipeline)) { gst_element_set_state (gcc->priv->main_pipeline, GST_STATE_NULL); gst_object_unref (gcc->priv->main_pipeline); gcc->priv->main_pipeline = NULL; } g_mutex_free (gcc->priv->lock); G_OBJECT_CLASS (parent_class)->finalize (object); } static void gst_camera_capturer_apply_resolution (GstCameraCapturer * gcc) { GST_INFO_OBJECT (gcc, "Changed video resolution to %dx%d@%d/%dfps", gcc->priv->output_width, gcc->priv->output_height, gcc->priv->output_fps_n, gcc->priv->output_fps_d); g_signal_emit_by_name (G_OBJECT (gcc->priv->camerabin), "set-video-resolution-fps", gcc->priv->output_width, gcc->priv->output_height, gcc->priv->output_fps_n, gcc->priv->output_fps_d); } static void gst_camera_capturer_set_video_bit_rate (GstCameraCapturer * gcc, gint bitrate) { gcc->priv->video_bitrate = bitrate; if (gcc->priv->video_encoder_type == VIDEO_ENCODER_MPEG4 || gcc->priv->video_encoder_type == VIDEO_ENCODER_XVID) g_object_set (gcc->priv->videoenc, "bitrate", bitrate * 1000, NULL); else g_object_set (gcc->priv->videoenc, "bitrate", gcc->priv->video_bitrate, NULL); GST_INFO_OBJECT (gcc, "Changed video bitrate to :\n%d", gcc->priv->video_bitrate); } static void gst_camera_capturer_set_audio_bit_rate (GstCameraCapturer * gcc, gint bitrate) { gcc->priv->audio_bitrate = bitrate; if (gcc->priv->audio_encoder_type == AUDIO_ENCODER_MP3) g_object_set (gcc->priv->audioenc, "bitrate", bitrate, NULL); else g_object_set (gcc->priv->audioenc, "bitrate", 1000 * bitrate, NULL); GST_INFO_OBJECT (gcc, "Changed audio bitrate to :\n%d", gcc->priv->audio_bitrate); } static void gst_camera_capturer_set_audio_enabled (GstCameraCapturer * gcc, gboolean enabled) { gint flags; gcc->priv->audio_enabled = enabled; g_object_get (gcc->priv->main_pipeline, "flags", &flags, NULL); if (!enabled) { flags &= ~GST_CAMERABIN_FLAG_DISABLE_AUDIO; GST_INFO_OBJECT (gcc, "Audio disabled"); } else { flags |= GST_CAMERABIN_FLAG_DISABLE_AUDIO; GST_INFO_OBJECT (gcc, "Audio enabled"); } } static void gst_camera_capturer_set_output_file (GstCameraCapturer * gcc, const gchar * file) { gcc->priv->output_file = g_strdup (file); g_object_set (gcc->priv->camerabin, "filename", file, NULL); GST_INFO_OBJECT (gcc, "Changed output filename to :\n%s", file); } static void gst_camera_capturer_set_device_id (GstCameraCapturer * gcc, const gchar * device_id) { gcc->priv->device_id = g_strdup (device_id); GST_INFO_OBJECT (gcc, "Changed device id/name to :\n%s", device_id); } /*********************************** * * GTK Widget * ************************************/ static void gst_camera_capturer_size_request (GtkWidget * widget, GtkRequisition * requisition) { requisition->width = 320; requisition->height = 240; } static void get_media_size (GstCameraCapturer * gcc, gint * width, gint * height) { if (gcc->priv->logo_mode) { if (gcc->priv->logo_pixbuf) { *width = gdk_pixbuf_get_width (gcc->priv->logo_pixbuf); *height = gdk_pixbuf_get_height (gcc->priv->logo_pixbuf); } else { *width = 0; *height = 0; } } else { GValue *disp_par = NULL; guint movie_par_n, movie_par_d, disp_par_n, disp_par_d, num, den; /* Create and init the fraction value */ disp_par = g_new0 (GValue, 1); g_value_init (disp_par, GST_TYPE_FRACTION); /* Square pixel is our default */ gst_value_set_fraction (disp_par, 1, 1); /* Now try getting display's pixel aspect ratio */ if (gcc->priv->xoverlay) { GObjectClass *klass; GParamSpec *pspec; klass = G_OBJECT_GET_CLASS (gcc->priv->xoverlay); pspec = g_object_class_find_property (klass, "pixel-aspect-ratio"); if (pspec != NULL) { GValue disp_par_prop = { 0, }; g_value_init (&disp_par_prop, pspec->value_type); g_object_get_property (G_OBJECT (gcc->priv->xoverlay), "pixel-aspect-ratio", &disp_par_prop); if (!g_value_transform (&disp_par_prop, disp_par)) { GST_WARNING ("Transform failed, assuming pixel-aspect-ratio = 1/1"); gst_value_set_fraction (disp_par, 1, 1); } g_value_unset (&disp_par_prop); } } disp_par_n = gst_value_get_fraction_numerator (disp_par); disp_par_d = gst_value_get_fraction_denominator (disp_par); GST_DEBUG_OBJECT (gcc, "display PAR is %d/%d", disp_par_n, disp_par_d); /* Use the movie pixel aspect ratio if any */ if (gcc->priv->movie_par) { movie_par_n = gst_value_get_fraction_numerator (gcc->priv->movie_par); movie_par_d = gst_value_get_fraction_denominator (gcc->priv->movie_par); } else { /* Square pixels */ movie_par_n = 1; movie_par_d = 1; } GST_DEBUG_OBJECT (gcc, "movie PAR is %d/%d", movie_par_n, movie_par_d); if (gcc->priv->video_width == 0 || gcc->priv->video_height == 0) { GST_DEBUG_OBJECT (gcc, "width and/or height 0, assuming 1/1 ratio"); num = 1; den = 1; } else if (!gst_video_calculate_display_ratio (&num, &den, gcc->priv->video_width, gcc->priv->video_height, movie_par_n, movie_par_d, disp_par_n, disp_par_d)) { GST_WARNING ("overflow calculating display aspect ratio!"); num = 1; /* FIXME: what values to use here? */ den = 1; } GST_DEBUG_OBJECT (gcc, "calculated scaling ratio %d/%d for video %dx%d", num, den, gcc->priv->video_width, gcc->priv->video_height); /* now find a width x height that respects this display ratio. * prefer those that have one of w/h the same as the incoming video * using wd / hd = num / den */ /* start with same height, because of interlaced video */ /* check hd / den is an integer scale factor, and scale wd with the PAR */ if (gcc->priv->video_height % den == 0) { GST_DEBUG_OBJECT (gcc, "keeping video height"); gcc->priv->video_width_pixels = (guint) gst_util_uint64_scale (gcc->priv->video_height, num, den); gcc->priv->video_height_pixels = gcc->priv->video_height; } else if (gcc->priv->video_width % num == 0) { GST_DEBUG_OBJECT (gcc, "keeping video width"); gcc->priv->video_width_pixels = gcc->priv->video_width; gcc->priv->video_height_pixels = (guint) gst_util_uint64_scale (gcc->priv->video_width, den, num); } else { GST_DEBUG_OBJECT (gcc, "approximating while keeping video height"); gcc->priv->video_width_pixels = (guint) gst_util_uint64_scale (gcc->priv->video_height, num, den); gcc->priv->video_height_pixels = gcc->priv->video_height; } GST_DEBUG_OBJECT (gcc, "scaling to %dx%d", gcc->priv->video_width_pixels, gcc->priv->video_height_pixels); *width = gcc->priv->video_width_pixels; *height = gcc->priv->video_height_pixels; /* Free the PAR fraction */ g_value_unset (disp_par); g_free (disp_par); } } static void resize_video_window (GstCameraCapturer * gcc) { const GtkAllocation *allocation; gfloat width, height, ratio, x, y; int w, h; g_return_if_fail (gcc != NULL); g_return_if_fail (GST_IS_CAMERA_CAPTURER (gcc)); allocation = >K_WIDGET (gcc)->allocation; get_media_size (gcc, &w, &h); if (!w || !h) { w = allocation->width; h = allocation->height; } width = w; height = h; /* calculate ratio for fitting video into the available space */ if ((gfloat) allocation->width / width > (gfloat) allocation->height / height) { ratio = (gfloat) allocation->height / height; } else { ratio = (gfloat) allocation->width / width; } /* apply zoom factor */ ratio = ratio * gcc->priv->zoom; width *= ratio; height *= ratio; x = (allocation->width - width) / 2; y = (allocation->height - height) / 2; gdk_window_move_resize (gcc->priv->video_window, x, y, width, height); gtk_widget_queue_draw (GTK_WIDGET (gcc)); } static void gst_camera_capturer_size_allocate (GtkWidget * widget, GtkAllocation * allocation) { GstCameraCapturer *gcc = GST_CAMERA_CAPTURER (widget); g_return_if_fail (widget != NULL); g_return_if_fail (GST_IS_CAMERA_CAPTURER (widget)); widget->allocation = *allocation; if (GTK_WIDGET_REALIZED (widget)) { gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x, allocation->y, allocation->width, allocation->height); resize_video_window (gcc); } } static gboolean gst_camera_capturer_configure_event (GtkWidget * widget, GdkEventConfigure * event, GstCameraCapturer * gcc) { GstXOverlay *xoverlay = NULL; g_return_val_if_fail (gcc != NULL, FALSE); g_return_val_if_fail (GST_IS_CAMERA_CAPTURER (gcc), FALSE); xoverlay = gcc->priv->xoverlay; if (xoverlay != NULL && GST_IS_X_OVERLAY (xoverlay)) { gst_x_overlay_expose (xoverlay); } return FALSE; } static void gst_camera_capturer_realize (GtkWidget * widget) { GstCameraCapturer *gcc = GST_CAMERA_CAPTURER (widget); GdkWindowAttr attributes; gint attributes_mask, w, h; GdkColor colour; GdkWindow *window; GdkEventMask event_mask; event_mask = gtk_widget_get_events (widget) | GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK; gtk_widget_set_events (widget, event_mask); GTK_WIDGET_CLASS (parent_class)->realize (widget); window = gtk_widget_get_window (widget); /* Creating our video window */ attributes.window_type = GDK_WINDOW_CHILD; attributes.x = 0; attributes.y = 0; attributes.width = widget->allocation.width; attributes.height = widget->allocation.height; attributes.wclass = GDK_INPUT_OUTPUT; attributes.event_mask = gtk_widget_get_events (widget); attributes.event_mask |= GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK; attributes_mask = GDK_WA_X | GDK_WA_Y; gcc->priv->video_window = gdk_window_new (window, &attributes, attributes_mask); gdk_window_set_user_data (gcc->priv->video_window, widget); gdk_color_parse ("black", &colour); gdk_colormap_alloc_color (gtk_widget_get_colormap (widget), &colour, TRUE, TRUE); gdk_window_set_background (window, &colour); gtk_widget_set_style (widget, gtk_style_attach (gtk_widget_get_style (widget), window)); GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); /* Connect to configure event on the top level window */ g_signal_connect (G_OBJECT (widget), "configure-event", G_CALLBACK (gst_camera_capturer_configure_event), gcc); /* nice hack to show the logo fullsize, while still being resizable */ get_media_size (GST_CAMERA_CAPTURER (widget), &w, &h); } static void gst_camera_capturer_unrealize (GtkWidget * widget) { GstCameraCapturer *gcc = GST_CAMERA_CAPTURER (widget); gdk_window_set_user_data (gcc->priv->video_window, NULL); gdk_window_destroy (gcc->priv->video_window); gcc->priv->video_window = NULL; GTK_WIDGET_CLASS (parent_class)->unrealize (widget); } static void gst_camera_capturer_show (GtkWidget * widget) { GstCameraCapturer *gcc = GST_CAMERA_CAPTURER (widget); GdkWindow *window; window = gtk_widget_get_window (widget); if (window) gdk_window_show (window); if (gcc->priv->video_window) gdk_window_show (gcc->priv->video_window); if (GTK_WIDGET_CLASS (parent_class)->show) GTK_WIDGET_CLASS (parent_class)->show (widget); } static void gst_camera_capturer_hide (GtkWidget * widget) { GstCameraCapturer *gcc = GST_CAMERA_CAPTURER (widget); GdkWindow *window; window = gtk_widget_get_window (widget); if (window) gdk_window_hide (window); if (gcc->priv->video_window) gdk_window_hide (gcc->priv->video_window); if (GTK_WIDGET_CLASS (parent_class)->hide) GTK_WIDGET_CLASS (parent_class)->hide (widget); } static gboolean gst_camera_capturer_expose_event (GtkWidget * widget, GdkEventExpose * event) { GstCameraCapturer *gcc = GST_CAMERA_CAPTURER (widget); GstXOverlay *xoverlay; gboolean draw_logo; GdkWindow *win; if (event && event->count > 0) return TRUE; g_mutex_lock (gcc->priv->lock); xoverlay = gcc->priv->xoverlay; if (xoverlay == NULL) { gcc_update_interface_implementations (gcc); resize_video_window (gcc); xoverlay = gcc->priv->xoverlay; } if (xoverlay != NULL) gst_object_ref (xoverlay); g_mutex_unlock (gcc->priv->lock); if (xoverlay != NULL && GST_IS_X_OVERLAY (xoverlay)) { gdk_window_show (gcc->priv->video_window); #ifdef WIN32 gst_x_overlay_set_xwindow_id (gcc->priv->xoverlay, GDK_WINDOW_HWND (gcc->priv->video_window)); #else gst_x_overlay_set_xwindow_id (gcc->priv->xoverlay, GDK_WINDOW_XID (gcc->priv->video_window)); #endif } /* Start with a nice black canvas */ win = gtk_widget_get_window (widget); gdk_draw_rectangle (win, gtk_widget_get_style (widget)->black_gc, TRUE, 0, 0, widget->allocation.width, widget->allocation.height); /* if there's only audio and no visualisation, draw the logo as well */ draw_logo = gcc->priv->media_has_audio && !gcc->priv->media_has_video; if (gcc->priv->logo_mode || draw_logo) { if (gcc->priv->logo_pixbuf != NULL) { GdkPixbuf *frame; guchar *pixels; int rowstride; gint width, height, alloc_width, alloc_height, logo_x, logo_y; gfloat ratio; /* Checking if allocated space is smaller than our logo */ width = gdk_pixbuf_get_width (gcc->priv->logo_pixbuf); height = gdk_pixbuf_get_height (gcc->priv->logo_pixbuf); alloc_width = widget->allocation.width; alloc_height = widget->allocation.height; if ((gfloat) alloc_width / width > (gfloat) alloc_height / height) { ratio = (gfloat) alloc_height / height; } else { ratio = (gfloat) alloc_width / width; } width *= ratio; height *= ratio; logo_x = (alloc_width / 2) - (width / 2); logo_y = (alloc_height / 2) - (height / 2); /* Drawing our frame */ /* Scaling to available space */ frame = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, widget->allocation.width, widget->allocation.height); gdk_pixbuf_composite (gcc->priv->logo_pixbuf, frame, 0, 0, alloc_width, alloc_height, logo_x, logo_y, ratio, ratio, GDK_INTERP_BILINEAR, 255); rowstride = gdk_pixbuf_get_rowstride (frame); pixels = gdk_pixbuf_get_pixels (frame) + rowstride * event->area.y + event->area.x * 3; gdk_draw_rgb_image_dithalign (widget->window, widget->style->black_gc, event->area.x, event->area.y, event->area.width, event->area.height, GDK_RGB_DITHER_NORMAL, pixels, rowstride, event->area.x, event->area.y); g_object_unref (frame); } else if (win) { /* No pixbuf, just draw a black background then */ gdk_window_clear_area (win, 0, 0, widget->allocation.width, widget->allocation.height); } } else { /* no logo, pass the expose to gst */ if (xoverlay != NULL && GST_IS_X_OVERLAY (xoverlay)) { gst_x_overlay_expose (xoverlay); } else { /* No xoverlay to expose yet */ gdk_window_clear_area (win, 0, 0, widget->allocation.width, widget->allocation.height); } } if (xoverlay != NULL) gst_object_unref (xoverlay); return TRUE; } static void gst_camera_capturer_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { GstCameraCapturer *gcc; gcc = GST_CAMERA_CAPTURER (object); switch (property_id) { case PROP_OUTPUT_HEIGHT: gcc->priv->output_height = g_value_get_uint (value); gst_camera_capturer_apply_resolution (gcc); break; case PROP_OUTPUT_WIDTH: gcc->priv->output_width = g_value_get_uint (value); gst_camera_capturer_apply_resolution (gcc); break; case PROP_VIDEO_BITRATE: gst_camera_capturer_set_video_bit_rate (gcc, g_value_get_uint (value)); break; case PROP_AUDIO_BITRATE: gst_camera_capturer_set_audio_bit_rate (gcc, g_value_get_uint (value)); break; case PROP_AUDIO_ENABLED: gst_camera_capturer_set_audio_enabled (gcc, g_value_get_boolean (value)); break; case PROP_OUTPUT_FILE: gst_camera_capturer_set_output_file (gcc, g_value_get_string (value)); break; case PROP_DEVICE_ID: gst_camera_capturer_set_device_id (gcc, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void gst_camera_capturer_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { GstCameraCapturer *gcc; gcc = GST_CAMERA_CAPTURER (object); switch (property_id) { case PROP_OUTPUT_HEIGHT: g_value_set_uint (value, gcc->priv->output_height); break; case PROP_OUTPUT_WIDTH: g_value_set_uint (value, gcc->priv->output_width); break; case PROP_AUDIO_BITRATE: g_value_set_uint (value, gcc->priv->audio_bitrate); break; case PROP_VIDEO_BITRATE: g_value_set_uint (value, gcc->priv->video_bitrate); break; case PROP_AUDIO_ENABLED: g_value_set_boolean (value, gcc->priv->audio_enabled); break; case PROP_OUTPUT_FILE: g_value_set_string (value, gcc->priv->output_file); break; case PROP_DEVICE_ID: g_value_set_string (value, gcc->priv->device_id); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void gst_camera_capturer_class_init (GstCameraCapturerClass * klass) { GObjectClass *object_class; GtkWidgetClass *widget_class; object_class = (GObjectClass *) klass; widget_class = (GtkWidgetClass *) klass; parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (object_class, sizeof (GstCameraCapturerPrivate)); /* GtkWidget */ widget_class->size_request = gst_camera_capturer_size_request; widget_class->size_allocate = gst_camera_capturer_size_allocate; widget_class->realize = gst_camera_capturer_realize; widget_class->unrealize = gst_camera_capturer_unrealize; widget_class->show = gst_camera_capturer_show; widget_class->hide = gst_camera_capturer_hide; widget_class->expose_event = gst_camera_capturer_expose_event; /* GObject */ object_class->set_property = gst_camera_capturer_set_property; object_class->get_property = gst_camera_capturer_get_property; object_class->finalize = gst_camera_capturer_finalize; /* Properties */ g_object_class_install_property (object_class, PROP_OUTPUT_HEIGHT, g_param_spec_uint ("output_height", NULL, NULL, 0, 5600, 576, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_OUTPUT_WIDTH, g_param_spec_uint ("output_width", NULL, NULL, 0, 5600, 720, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_VIDEO_BITRATE, g_param_spec_uint ("video_bitrate", NULL, NULL, 100, G_MAXUINT, 1000, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_AUDIO_BITRATE, g_param_spec_uint ("audio_bitrate", NULL, NULL, 12, G_MAXUINT, 128, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_AUDIO_ENABLED, g_param_spec_boolean ("audio_enabled", NULL, NULL, FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_OUTPUT_FILE, g_param_spec_string ("output_file", NULL, NULL, FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_DEVICE_ID, g_param_spec_string ("device_id", NULL, NULL, FALSE, G_PARAM_READWRITE)); /* Signals */ gcc_signals[SIGNAL_ERROR] = g_signal_new ("error", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstCameraCapturerClass, error), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); gcc_signals[SIGNAL_EOS] = g_signal_new ("eos", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstCameraCapturerClass, eos), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); gcc_signals[SIGNAL_DEVICE_CHANGE] = g_signal_new ("device-change", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstCameraCapturerClass, device_change), NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); } void gst_camera_capturer_init_backend (int *argc, char ***argv) { gst_init (argc, argv); } GQuark gst_camera_capturer_error_quark (void) { static GQuark q; /* 0 */ if (G_UNLIKELY (q == 0)) { q = g_quark_from_static_string ("gcc-error-quark"); } return q; } gboolean gst_camera_capture_videosrc_buffer_probe (GstPad * pad, GstBuffer * buf, gpointer data) { GstCameraCapturer *gcc = GST_CAMERA_CAPTURER (data); if (gcc->priv->last_buffer) { gst_buffer_unref (gcc->priv->last_buffer); gcc->priv->last_buffer = NULL; } gst_buffer_ref (buf); gcc->priv->last_buffer = buf; return TRUE; } static void cb_new_pad (GstElement * element, GstPad * pad, gpointer data) { GstCaps *caps; const gchar *mime; GstElement *sink; GstBin *bin = GST_BIN (data); caps = gst_pad_get_caps (pad); mime = gst_structure_get_name (gst_caps_get_structure (caps, 0)); if (g_strrstr (mime, "video")) { sink = gst_bin_get_by_name (bin, "source_video_sink"); gst_pad_link (pad, gst_element_get_pad (sink, "sink")); } if (g_strrstr (mime, "audio")) { /* Not implemented yet */ } } /* On linux GStreamer packages provided by distributions might still have the * dv1394src clock bug and the dvdemuxer buffers duration bug. That's why we * can't use decodebin2 and we need to force the use of ffdemux_dv */ static GstElement * gst_camera_capture_create_dv1394_source_bin (GstCameraCapturer * gcc) { GstElement *bin; GstElement *demuxer; GstElement *queue1; GstElement *decoder; GstElement *queue2; GstElement *deinterlacer; GstElement *colorspace; GstElement *videorate; GstElement *videoscale; GstPad *src_pad; bin = gst_bin_new ("videosource"); gcc->priv->device_source = gst_element_factory_make (DVVIDEOSRC, "source_device"); demuxer = gst_element_factory_make ("ffdemux_dv", NULL); queue1 = gst_element_factory_make ("queue", "source_video_sink"); decoder = gst_element_factory_make ("ffdec_dvvideo", NULL); queue2 = gst_element_factory_make ("queue", NULL); deinterlacer = gst_element_factory_make ("ffdeinterlace", NULL); videorate = gst_element_factory_make ("videorate", NULL); colorspace = gst_element_factory_make ("ffmpegcolorspace", NULL); videoscale = gst_element_factory_make ("videoscale", NULL); /* this property needs to be set before linking the element, where the device * id configured in get_caps() */ g_object_set (G_OBJECT (gcc->priv->device_source), "guid", g_ascii_strtoull (gcc->priv->device_id, NULL, 0), NULL); gst_bin_add_many (GST_BIN (bin), gcc->priv->device_source, demuxer, queue1, decoder, queue2, deinterlacer, colorspace, videorate, videoscale, NULL); gst_element_link (gcc->priv->device_source, demuxer); gst_element_link_many (queue1, decoder, queue2, deinterlacer, videorate, colorspace, videoscale, NULL); g_signal_connect (demuxer, "pad-added", G_CALLBACK (cb_new_pad), bin); /* add ghostpad */ src_pad = gst_element_get_static_pad (videoscale, "src"); gst_element_add_pad (bin, gst_ghost_pad_new ("src", src_pad)); gst_object_unref (GST_OBJECT (src_pad)); return bin; } static GstElement * gst_camera_capture_create_dshow_source_bin (GstCameraCapturer * gcc) { GstElement *bin; GstElement *decoder; GstElement *deinterlacer; GstElement *colorspace; GstElement *videorate; GstElement *videoscale; GstPad *src_pad; GstCaps *source_caps; bin = gst_bin_new ("videosource"); gcc->priv->device_source = gst_element_factory_make (DVVIDEOSRC, "source_device"); decoder = gst_element_factory_make ("decodebin2", NULL); colorspace = gst_element_factory_make ("ffmpegcolorspace", "source_video_sink"); deinterlacer = gst_element_factory_make ("ffdeinterlace", NULL); videorate = gst_element_factory_make ("videorate", NULL); videoscale = gst_element_factory_make ("videoscale", NULL); /* this property needs to be set before linking the element, where the device * id configured in get_caps() */ g_object_set (G_OBJECT (gcc->priv->device_source), "device-name", gcc->priv->device_id, NULL); gst_bin_add_many (GST_BIN (bin), gcc->priv->device_source, decoder, colorspace, deinterlacer, videorate, videoscale, NULL); source_caps = gst_caps_from_string ("video/x-dv, systemstream=true;" "video/x-raw-rgb; video/x-raw-yuv"); gst_element_link_filtered (gcc->priv->device_source, decoder, source_caps); gst_element_link_many (colorspace, deinterlacer, videorate, videoscale, NULL); g_signal_connect (decoder, "pad-added", G_CALLBACK (cb_new_pad), bin); /* add ghostpad */ src_pad = gst_element_get_static_pad (videoscale, "src"); gst_element_add_pad (bin, gst_ghost_pad_new ("src", src_pad)); gst_object_unref (GST_OBJECT (src_pad)); return bin; } gboolean gst_camera_capturer_set_source (GstCameraCapturer * gcc, GstCameraCaptureSourceType source_type, GError ** err) { GstPad *videosrcpad; g_return_val_if_fail (gcc != NULL, FALSE); g_return_val_if_fail (GST_IS_CAMERA_CAPTURER (gcc), FALSE); if (gcc->priv->source_type == source_type) return TRUE; gcc->priv->source_type = source_type; switch (gcc->priv->source_type) { case GST_CAMERA_CAPTURE_SOURCE_TYPE_DV: { gcc->priv->videosrc = gst_camera_capture_create_dv1394_source_bin (gcc); /*gcc->priv->audiosrc = gcc->priv->videosrc; */ break; } case GST_CAMERA_CAPTURE_SOURCE_TYPE_DSHOW: { gcc->priv->videosrc = gst_camera_capture_create_dshow_source_bin (gcc); /*gcc->priv->audiosrc = gcc->priv->videosrc; */ break; } case GST_CAMERA_CAPTURE_SOURCE_TYPE_RAW: default: { gchar *bin = g_strdup_printf ("%s name=device_source ! videorate ! " "ffmpegcolorspace ! videoscale", RAWVIDEOSRC); gcc->priv->videosrc = gst_parse_bin_from_description (bin, TRUE, err); gcc->priv->device_source = gst_bin_get_by_name (GST_BIN (gcc->priv->videosrc), "device_source"); gcc->priv->audiosrc = gst_element_factory_make (AUDIOSRC, "audiosource"); break; } } if (*err) { GST_ERROR_OBJECT (gcc, "Error changing source: %s", (*err)->message); return FALSE; } g_object_set (gcc->priv->camerabin, "video-source", gcc->priv->videosrc, NULL); /* Install pad probe to store the last buffer */ videosrcpad = gst_element_get_pad (gcc->priv->videosrc, "src"); gst_pad_add_buffer_probe (videosrcpad, G_CALLBACK (gst_camera_capture_videosrc_buffer_probe), gcc); return TRUE; } GstCameraCapturer * gst_camera_capturer_new (gchar * filename, GError ** err) { GstCameraCapturer *gcc = NULL; gchar *plugin; gint flags = 0; gcc = g_object_new (GST_TYPE_CAMERA_CAPTURER, NULL); gcc->priv->main_pipeline = gst_pipeline_new ("main_pipeline"); if (!gcc->priv->main_pipeline) { plugin = "pipeline"; goto missing_plugin; } /* Setup */ GST_INFO_OBJECT (gcc, "Initializing camerabin"); gcc->priv->camerabin = gst_element_factory_make ("camerabin", "camerabin"); gst_bin_add (GST_BIN (gcc->priv->main_pipeline), gcc->priv->camerabin); if (!gcc->priv->camerabin) { plugin = "camerabin"; goto missing_plugin; } GST_INFO_OBJECT (gcc, "Setting capture mode to \"video\""); g_object_set (gcc->priv->camerabin, "mode", 1, NULL); GST_INFO_OBJECT (gcc, "Disabling audio"); flags = GST_CAMERABIN_FLAG_DISABLE_AUDIO; #ifdef WIN32 flags |= GST_CAMERABIN_FLAG_VIEWFINDER_COLOR_CONVERSION; #endif g_object_set (gcc->priv->camerabin, "flags", flags, NULL); /* assume we're always called from the main Gtk+ GUI thread */ gui_thread = g_thread_self (); /*Connect bus signals */ GST_INFO_OBJECT (gcc, "Connecting bus signals"); gcc->priv->bus = gst_element_get_bus (GST_ELEMENT (gcc->priv->main_pipeline)); gst_bus_add_signal_watch (gcc->priv->bus); gcc->priv->sig_bus_async = g_signal_connect (gcc->priv->bus, "message", G_CALLBACK (gcc_bus_message_cb), gcc); /* we want to catch "prepare-xwindow-id" element messages synchronously */ gst_bus_set_sync_handler (gcc->priv->bus, gst_bus_sync_signal_handler, gcc); gcc->priv->sig_bus_sync = g_signal_connect (gcc->priv->bus, "sync-message::element", G_CALLBACK (gcc_element_msg_sync), gcc); return gcc; /* Missing plugin */ missing_plugin: { g_set_error (err, GCC_ERROR, GST_ERROR_PLUGIN_LOAD, ("Failed to create a GStreamer element. " "The element \"%s\" is missing. " "Please check your GStreamer installation."), plugin); g_object_ref_sink (gcc); g_object_unref (gcc); return NULL; } } void gst_camera_capturer_run (GstCameraCapturer * gcc) { GError *err = NULL; g_return_if_fail (gcc != NULL); g_return_if_fail (GST_IS_CAMERA_CAPTURER (gcc)); /* the source needs to be created before the 'device-is' is set * because dshowsrcwrapper can't change the device-name after * it has been linked for the first time */ if (!gcc->priv->videosrc) gst_camera_capturer_set_source (gcc, gcc->priv->source_type, &err); gst_element_set_state (gcc->priv->main_pipeline, GST_STATE_PLAYING); } void gst_camera_capturer_close (GstCameraCapturer * gcc) { g_return_if_fail (gcc != NULL); g_return_if_fail (GST_IS_CAMERA_CAPTURER (gcc)); gst_element_set_state (gcc->priv->main_pipeline, GST_STATE_NULL); } void gst_camera_capturer_start (GstCameraCapturer * gcc) { g_return_if_fail (gcc != NULL); g_return_if_fail (GST_IS_CAMERA_CAPTURER (gcc)); g_signal_emit_by_name (G_OBJECT (gcc->priv->camerabin), "capture-start", 0, 0); } void gst_camera_capturer_toggle_pause (GstCameraCapturer * gcc) { g_return_if_fail (gcc != NULL); g_return_if_fail (GST_IS_CAMERA_CAPTURER (gcc)); g_signal_emit_by_name (G_OBJECT (gcc->priv->camerabin), "capture-pause", 0, 0); } void gst_camera_capturer_stop (GstCameraCapturer * gcc) { g_return_if_fail (gcc != NULL); g_return_if_fail (GST_IS_CAMERA_CAPTURER (gcc)); #ifdef WIN32 //On windows we can't handle device disconnections until dshowvideosrc //supports it. When a device is disconnected, the source is locked //in ::create(), blocking the streaming thread. We need to change its //state to null, this way camerabin doesn't block in ::do_stop(). gst_element_set_state(gcc->priv->device_source, GST_STATE_NULL); #endif g_signal_emit_by_name (G_OBJECT (gcc->priv->camerabin), "capture-stop", 0, 0); } gboolean gst_camera_capturer_set_video_encoder (GstCameraCapturer * gcc, VideoEncoderType type, GError ** err) { gchar *name = NULL; g_return_val_if_fail (gcc != NULL, FALSE); g_return_val_if_fail (GST_IS_CAMERA_CAPTURER (gcc), FALSE); switch (type) { case VIDEO_ENCODER_MPEG4: gcc->priv->videoenc = gst_element_factory_make ("ffenc_mpeg4", "video-encoder"); g_object_set (gcc->priv->videoenc, "pass", 512, "max-key-interval", -1, NULL); name = "FFmpeg mpeg4 video encoder"; break; case VIDEO_ENCODER_XVID: gcc->priv->videoenc = gst_element_factory_make ("xvidenc", "video-encoder"); g_object_set (gcc->priv->videoenc, "pass", 1, "profile", 146, "max-key-interval", -1, NULL); name = "Xvid video encoder"; break; case VIDEO_ENCODER_H264: gcc->priv->videoenc = gst_element_factory_make ("x264enc", "video-encoder"); g_object_set (gcc->priv->videoenc, "key-int-max", 25, "pass", 17, "speed-preset", 3, NULL); name = "X264 video encoder"; break; case VIDEO_ENCODER_THEORA: gcc->priv->videoenc = gst_element_factory_make ("theoraenc", "video-encoder"); g_object_set (gcc->priv->videoenc, "keyframe-auto", FALSE, "keyframe-force", 25, NULL); name = "Theora video encoder"; break; case VIDEO_ENCODER_VP8: default: gcc->priv->videoenc = gst_element_factory_make ("vp8enc", "video-encoder"); g_object_set (gcc->priv->videoenc, "speed", 2, "threads", 8, "max-keyframe-distance", 25, NULL); name = "VP8 video encoder"; break; } if (!gcc->priv->videoenc) { g_set_error (err, GCC_ERROR, GST_ERROR_PLUGIN_LOAD, "Failed to create the %s element. " "Please check your GStreamer installation.", name); } else { g_object_set (gcc->priv->camerabin, "video-encoder", gcc->priv->videoenc, NULL); gcc->priv->video_encoder_type = type; } return TRUE; } gboolean gst_camera_capturer_set_audio_encoder (GstCameraCapturer * gcc, AudioEncoderType type, GError ** err) { gchar *name = NULL; g_return_val_if_fail (gcc != NULL, FALSE); g_return_val_if_fail (GST_IS_CAMERA_CAPTURER (gcc), FALSE); switch (type) { case AUDIO_ENCODER_MP3: gcc->priv->audioenc = gst_element_factory_make ("lamemp3enc", "audio-encoder"); g_object_set (gcc->priv->audioenc, "target", 0, NULL); name = "Mp3 audio encoder"; break; case AUDIO_ENCODER_AAC: gcc->priv->audioenc = gst_element_factory_make ("faac", "audio-encoder"); name = "AAC audio encoder"; break; case AUDIO_ENCODER_VORBIS: default: gcc->priv->audioenc = gst_element_factory_make ("vorbisenc", "audio-encoder"); name = "Vorbis audio encoder"; break; } if (!gcc->priv->audioenc) { g_set_error (err, GCC_ERROR, GST_ERROR_PLUGIN_LOAD, "Failed to create the %s element. " "Please check your GStreamer installation.", name); } else { g_object_set (gcc->priv->camerabin, "audio-encoder", gcc->priv->audioenc, NULL); gcc->priv->audio_encoder_type = type; } return TRUE; } gboolean gst_camera_capturer_set_video_muxer (GstCameraCapturer * gcc, VideoMuxerType type, GError ** err) { gchar *name = NULL; g_return_val_if_fail (gcc != NULL, FALSE); g_return_val_if_fail (GST_IS_CAMERA_CAPTURER (gcc), FALSE); switch (type) { case VIDEO_MUXER_OGG: name = "OGG muxer"; gcc->priv->videomux = gst_element_factory_make ("oggmux", "video-muxer"); break; case VIDEO_MUXER_AVI: name = "AVI muxer"; gcc->priv->videomux = gst_element_factory_make ("avimux", "video-muxer"); break; case VIDEO_MUXER_MATROSKA: name = "Matroska muxer"; gcc->priv->videomux = gst_element_factory_make ("matroskamux", "video-muxer"); break; case VIDEO_MUXER_MP4: name = "MP4 muxer"; gcc->priv->videomux = gst_element_factory_make ("qtmux", "video-muxer"); break; case VIDEO_MUXER_WEBM: default: name = "WebM muxer"; gcc->priv->videomux = gst_element_factory_make ("webmmux", "video-muxer"); break; } if (!gcc->priv->videomux) { g_set_error (err, GCC_ERROR, GST_ERROR_PLUGIN_LOAD, "Failed to create the %s element. " "Please check your GStreamer installation.", name); } else { g_object_set (gcc->priv->camerabin, "video-muxer", gcc->priv->videomux, NULL); } return TRUE; } static void gcc_bus_message_cb (GstBus * bus, GstMessage * message, gpointer data) { GstCameraCapturer *gcc = (GstCameraCapturer *) data; GstMessageType msg_type; g_return_if_fail (gcc != NULL); g_return_if_fail (GST_IS_CAMERA_CAPTURER (gcc)); msg_type = GST_MESSAGE_TYPE (message); switch (msg_type) { case GST_MESSAGE_ERROR: { if (gcc->priv->main_pipeline) { gst_camera_capturer_stop (gcc); gst_camera_capturer_close (gcc); gst_element_set_state (gcc->priv->main_pipeline, GST_STATE_NULL); } gcc_error_msg (gcc, message); break; } case GST_MESSAGE_WARNING: { GST_WARNING ("Warning message: %" GST_PTR_FORMAT, message); break; } case GST_MESSAGE_EOS: { GST_INFO_OBJECT (gcc, "EOS message"); g_signal_emit (gcc, gcc_signals[SIGNAL_EOS], 0); break; } case GST_MESSAGE_STATE_CHANGED: { GstState old_state, new_state; gst_message_parse_state_changed (message, &old_state, &new_state, NULL); if (old_state == new_state) break; /* we only care about playbin (pipeline) state changes */ if (GST_MESSAGE_SRC (message) != GST_OBJECT (gcc->priv->main_pipeline)) break; if (old_state == GST_STATE_PAUSED && new_state == GST_STATE_PLAYING) { gcc_get_video_stream_info (gcc); resize_video_window (gcc); gtk_widget_queue_draw (GTK_WIDGET (gcc)); } } case GST_MESSAGE_ELEMENT: { const GstStructure *s; gint device_change = 0; /* We only care about messages sent by the device source */ if (GST_MESSAGE_SRC (message) != GST_OBJECT (gcc->priv->device_source)) break; s = gst_message_get_structure (message); /* check if it's bus reset message and it contains the * 'current-device-change' field */ if (g_strcmp0 (gst_structure_get_name (s), "ieee1394-bus-reset")) break; if (!gst_structure_has_field (s, "current-device-change")) break; /* emit a signal if the device was connected or disconnected */ gst_structure_get_int (s, "current-device-change", &device_change); if (device_change != 0) g_signal_emit (gcc, gcc_signals[SIGNAL_DEVICE_CHANGE], 0, device_change); break; } default: GST_LOG ("Unhandled message: %" GST_PTR_FORMAT, message); break; } } static void gcc_error_msg (GstCameraCapturer * gcc, GstMessage * msg) { GError *err = NULL; gchar *dbg = NULL; gst_message_parse_error (msg, &err, &dbg); if (err) { GST_ERROR ("message = %s", GST_STR_NULL (err->message)); GST_ERROR ("domain = %d (%s)", err->domain, GST_STR_NULL (g_quark_to_string (err->domain))); GST_ERROR ("code = %d", err->code); GST_ERROR ("debug = %s", GST_STR_NULL (dbg)); GST_ERROR ("source = %" GST_PTR_FORMAT, msg->src); g_message ("Error: %s\n%s\n", GST_STR_NULL (err->message), GST_STR_NULL (dbg)); g_signal_emit (gcc, gcc_signals[SIGNAL_ERROR], 0, err->message); g_error_free (err); } g_free (dbg); } static gboolean gcc_update_interfaces_delayed (GstCameraCapturer * gcc) { GST_DEBUG_OBJECT (gcc, "Delayed updating interface implementations"); g_mutex_lock (gcc->priv->lock); gcc_update_interface_implementations (gcc); gcc->priv->interface_update_id = 0; g_mutex_unlock (gcc->priv->lock); return FALSE; } static void gcc_update_interface_implementations (GstCameraCapturer * gcc) { GstElement *element = NULL; if (g_thread_self () != gui_thread) { if (gcc->priv->interface_update_id) g_source_remove (gcc->priv->interface_update_id); gcc->priv->interface_update_id = g_idle_add ((GSourceFunc) gcc_update_interfaces_delayed, gcc); return; } GST_INFO_OBJECT (gcc, "Retrieving xoverlay from bin ..."); element = gst_bin_get_by_interface (GST_BIN (gcc->priv->camerabin), GST_TYPE_X_OVERLAY); if (GST_IS_X_OVERLAY (element)) { gcc->priv->xoverlay = GST_X_OVERLAY (element); } else { gcc->priv->xoverlay = NULL; } } static void gcc_element_msg_sync (GstBus * bus, GstMessage * msg, gpointer data) { GstCameraCapturer *gcc = GST_CAMERA_CAPTURER (data); g_assert (msg->type == GST_MESSAGE_ELEMENT); if (msg->structure == NULL) return; /* This only gets sent if we haven't set an ID yet. This is our last * chance to set it before the video sink will create its own window */ if (gst_structure_has_name (msg->structure, "prepare-xwindow-id")) { g_mutex_lock (gcc->priv->lock); gcc_update_interface_implementations (gcc); g_mutex_unlock (gcc->priv->lock); if (gcc->priv->xoverlay == NULL) { GstObject *sender = GST_MESSAGE_SRC (msg); if (sender && GST_IS_X_OVERLAY (sender)) gcc->priv->xoverlay = GST_X_OVERLAY (gst_object_ref (sender)); } g_return_if_fail (gcc->priv->xoverlay != NULL); g_return_if_fail (gcc->priv->video_window != NULL); #ifdef WIN32 gst_x_overlay_set_xwindow_id (gcc->priv->xoverlay, GDK_WINDOW_HWND (gcc->priv->video_window)); #else gst_x_overlay_set_xwindow_id (gcc->priv->xoverlay, GDK_WINDOW_XID (gcc->priv->video_window)); #endif } } static int gcc_get_video_stream_info (GstCameraCapturer * gcc) { GstPad *sourcepad; GstCaps *caps; GstStructure *s; sourcepad = gst_element_get_pad (gcc->priv->videosrc, "src"); caps = gst_pad_get_negotiated_caps (sourcepad); if (!(caps)) { GST_WARNING_OBJECT (gcc, "Could not get stream info"); return -1; } /* Get the source caps */ s = gst_caps_get_structure (caps, 0); if (s) { /* We need at least width/height and framerate */ if (! (gst_structure_get_fraction (s, "framerate", &gcc->priv->video_fps_n, &gcc->priv->video_fps_d) && gst_structure_get_int (s, "width", &gcc->priv->video_width) && gst_structure_get_int (s, "height", &gcc->priv->video_height))) return -1; /* Get the source PAR if available */ gcc->priv->movie_par = gst_structure_get_value (s, "pixel-aspect-ratio"); } return 1; } GList * gst_camera_capturer_enum_devices (gchar * device_name) { GstElement *device; GstPropertyProbe *probe; GValueArray *va; gchar *prop_name; GList *list = NULL; guint i = 0; device = gst_element_factory_make (device_name, "source"); if (!device || !GST_IS_PROPERTY_PROBE (device)) goto finish; gst_element_set_state (device, GST_STATE_READY); gst_element_get_state (device, NULL, NULL, 5 * GST_SECOND); probe = GST_PROPERTY_PROBE (device); if (!g_strcmp0 (device_name, "dv1394src")) prop_name = "guid"; else if (!g_strcmp0 (device_name, "v4l2src")) prop_name = "device"; else prop_name = "device-name"; va = gst_property_probe_get_values_name (probe, prop_name); if (!va) goto finish; for (i = 0; i < va->n_values; ++i) { GValue *v = g_value_array_get_nth (va, i); GValue valstr = { 0, }; g_value_init (&valstr, G_TYPE_STRING); if (!g_value_transform (v, &valstr)) continue; list = g_list_append (list, g_value_dup_string (&valstr)); g_value_unset (&valstr); } g_value_array_free (va); finish: { gst_element_set_state (device, GST_STATE_NULL); gst_object_unref (GST_OBJECT (device)); return list; } } GList * gst_camera_capturer_enum_video_devices (void) { return gst_camera_capturer_enum_devices (DVVIDEOSRC); } GList * gst_camera_capturer_enum_audio_devices (void) { return gst_camera_capturer_enum_devices (AUDIOSRC); } gboolean gst_camera_capturer_can_get_frames (GstCameraCapturer * gcc, GError ** error) { g_return_val_if_fail (gcc != NULL, FALSE); g_return_val_if_fail (GST_IS_CAMERA_CAPTURER (gcc), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (gcc->priv->camerabin), FALSE); /* check for video */ if (!gcc->priv->media_has_video) { g_set_error_literal (error, GCC_ERROR, GST_ERROR_GENERIC, "Media contains no supported video streams."); return FALSE; } return TRUE; } static void destroy_pixbuf (guchar * pix, gpointer data) { gst_buffer_unref (GST_BUFFER (data)); } void gst_camera_capturer_unref_pixbuf (GdkPixbuf * pixbuf) { gdk_pixbuf_unref (pixbuf); } GdkPixbuf * gst_camera_capturer_get_current_frame (GstCameraCapturer * gcc) { GstStructure *s; GdkPixbuf *pixbuf; GstBuffer *last_buffer; GstBuffer *buf; GstCaps *to_caps; gint outwidth = 0; gint outheight = 0; g_return_val_if_fail (gcc != NULL, NULL); g_return_val_if_fail (GST_IS_CAMERA_CAPTURER (gcc), NULL); g_return_val_if_fail (GST_IS_ELEMENT (gcc->priv->camerabin), NULL); gst_element_get_state (gcc->priv->camerabin, NULL, NULL, -1); /* no video info */ if (!gcc->priv->video_width || !gcc->priv->video_height) { GST_DEBUG_OBJECT (gcc, "Could not take screenshot: %s", "no video info"); g_warning ("Could not take screenshot: %s", "no video info"); return NULL; } /* get frame */ last_buffer = gcc->priv->last_buffer; gst_buffer_ref (last_buffer); if (!last_buffer) { GST_DEBUG_OBJECT (gcc, "Could not take screenshot: %s", "no last video frame"); g_warning ("Could not take screenshot: %s", "no last video frame"); return NULL; } if (GST_BUFFER_CAPS (last_buffer) == NULL) { GST_DEBUG_OBJECT (gcc, "Could not take screenshot: %s", "no caps on buffer"); g_warning ("Could not take screenshot: %s", "no caps on buffer"); return NULL; } /* convert to our desired format (RGB24) */ to_caps = gst_caps_new_simple ("video/x-raw-rgb", "bpp", G_TYPE_INT, 24, "depth", G_TYPE_INT, 24, /* Note: we don't ask for a specific width/height here, so that * videoscale can adjust dimensions from a non-1/1 pixel aspect * ratio to a 1/1 pixel-aspect-ratio */ "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, "endianness", G_TYPE_INT, G_BIG_ENDIAN, "red_mask", G_TYPE_INT, 0xff0000, "green_mask", G_TYPE_INT, 0x00ff00, "blue_mask", G_TYPE_INT, 0x0000ff, NULL); if (gcc->priv->video_fps_n > 0 && gcc->priv->video_fps_d > 0) { gst_caps_set_simple (to_caps, "framerate", GST_TYPE_FRACTION, gcc->priv->video_fps_n, gcc->priv->video_fps_d, NULL); } GST_DEBUG_OBJECT (gcc, "frame caps: %" GST_PTR_FORMAT, GST_BUFFER_CAPS (gcc->priv->last_buffer)); GST_DEBUG_OBJECT (gcc, "pixbuf caps: %" GST_PTR_FORMAT, to_caps); /* bvw_frame_conv_convert () takes ownership of the buffer passed */ buf = bvw_frame_conv_convert (last_buffer, to_caps); gst_caps_unref (to_caps); gst_buffer_unref (last_buffer); if (!buf) { GST_DEBUG_OBJECT (gcc, "Could not take screenshot: %s", "conversion failed"); g_warning ("Could not take screenshot: %s", "conversion failed"); return NULL; } if (!GST_BUFFER_CAPS (buf)) { GST_DEBUG_OBJECT (gcc, "Could not take screenshot: %s", "no caps on output buffer"); g_warning ("Could not take screenshot: %s", "no caps on output buffer"); return NULL; } s = gst_caps_get_structure (GST_BUFFER_CAPS (buf), 0); gst_structure_get_int (s, "width", &outwidth); gst_structure_get_int (s, "height", &outheight); g_return_val_if_fail (outwidth > 0 && outheight > 0, NULL); /* create pixbuf from that - we don't want to use the gstreamer's buffer * because the GTK# bindings won't call the destroy funtion */ pixbuf = gdk_pixbuf_new_from_data (GST_BUFFER_DATA (buf), GDK_COLORSPACE_RGB, FALSE, 8, outwidth, outheight, GST_ROUND_UP_4 (outwidth * 3), destroy_pixbuf, buf); if (!pixbuf) { GST_DEBUG_OBJECT (gcc, "Could not take screenshot: %s", "could not create pixbuf"); g_warning ("Could not take screenshot: %s", "could not create pixbuf"); } return pixbuf; } longomatch-0.16.8/libcesarplayer/src/bacon-video-widget.h0000644000175000017500000003671111601631101020270 00000000000000/* * Copyright (C) 2001,2002,2003,2004,2005 Bastien Nocera * * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * * The Totem project hereby grant permission for non-gpl compatible GStreamer * plugins to be used and distributed together with GStreamer and Totem. This * permission are above and beyond the permissions granted by the GPL license * Totem is covered by. * * Monday 7th February 2005: Christian Schaller: Add excemption clause. * See license_change file for details. * */ #ifndef HAVE_BACON_VIDEO_WIDGET_H #define HAVE_BACON_VIDEO_WIDGET_H #ifdef WIN32 #define EXPORT __declspec (dllexport) #else #define EXPORT #endif #include #include /* for optical disc enumeration type */ //#include "totem-disc.h" G_BEGIN_DECLS #define BACON_TYPE_VIDEO_WIDGET (bacon_video_widget_get_type ()) #define BACON_VIDEO_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), bacon_video_widget_get_type (), BaconVideoWidget)) #define BACON_VIDEO_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), bacon_video_widget_get_type (), BaconVideoWidgetClass)) #define BACON_IS_VIDEO_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, bacon_video_widget_get_type ())) #define BACON_IS_VIDEO_WIDGET_CLASS(klass) (G_CHECK_INSTANCE_GET_CLASS ((klass), bacon_video_widget_get_type ())) #define BVW_ERROR bacon_video_widget_error_quark () typedef struct BaconVideoWidgetPrivate BaconVideoWidgetPrivate; typedef struct { GtkEventBox parent; BaconVideoWidgetPrivate *priv; } BaconVideoWidget; typedef struct { GtkEventBoxClass parent_class; void (*error) (BaconVideoWidget * bvw, const char *message); void (*eos) (BaconVideoWidget * bvw); void (*got_metadata) (BaconVideoWidget * bvw); void (*segment_done) (BaconVideoWidget * bvw); void (*got_redirect) (BaconVideoWidget * bvw, const char *mrl); void (*title_change) (BaconVideoWidget * bvw, const char *title); void (*channels_change) (BaconVideoWidget * bvw); void (*tick) (BaconVideoWidget * bvw, gint64 current_time, gint64 stream_length, float current_position, gboolean seekable); void (*buffering) (BaconVideoWidget * bvw, guint progress); void (*state_change) (BaconVideoWidget * bvw, gboolean playing); void (*got_duration) (BaconVideoWidget * bvw); void (*ready_to_seek) (BaconVideoWidget * bvw); } BaconVideoWidgetClass; EXPORT GQuark bacon_video_widget_error_quark (void) G_GNUC_CONST; EXPORT GType bacon_video_widget_get_type (void) G_GNUC_CONST; EXPORT GOptionGroup *bacon_video_widget_get_option_group (void); /* This can be used if the app does not use popt */ EXPORT void bacon_video_widget_init_backend (int *argc, char ***argv); /** * BvwUseType: * @BVW_USE_TYPE_VIDEO: fully-featured with video, audio, capture and metadata support * @BVW_USE_TYPE_AUDIO: audio and metadata support * @BVW_USE_TYPE_CAPTURE: capture support only * @BVW_USE_TYPE_METADATA: metadata support only * * The purpose for which a #BaconVideoWidget will be used, as specified to * bacon_video_widget_new(). This determines which features will be enabled * in the created widget. **/ typedef enum { BVW_USE_TYPE_VIDEO, BVW_USE_TYPE_AUDIO, BVW_USE_TYPE_CAPTURE, BVW_USE_TYPE_METADATA } BvwUseType; EXPORT GtkWidget *bacon_video_widget_new (int width, int height, BvwUseType type, GError ** error); EXPORT char *bacon_video_widget_get_backend_name (BaconVideoWidget * bvw); /* Actions */ EXPORT gboolean bacon_video_widget_open (BaconVideoWidget * bvw, const char *mrl, const char *subtitle_uri, GError ** error); EXPORT gboolean bacon_video_widget_play (BaconVideoWidget * bvw); EXPORT void bacon_video_widget_pause (BaconVideoWidget * bvw); EXPORT gboolean bacon_video_widget_is_playing (BaconVideoWidget * bvw); /* Seeking and length */ EXPORT gboolean bacon_video_widget_is_seekable (BaconVideoWidget * bvw); EXPORT gboolean bacon_video_widget_seek (BaconVideoWidget * bvw, gdouble position, gfloat rate); EXPORT gboolean bacon_video_widget_seek_time (BaconVideoWidget * bvw, gint64 time, gfloat rate, gboolean accurate); EXPORT gboolean bacon_video_widget_segment_seek (BaconVideoWidget * bvw, gint64 start, gint64 stop, gfloat rate); EXPORT gboolean bacon_video_widget_seek_in_segment (BaconVideoWidget * bvw, gint64 pos, gfloat rate); EXPORT gboolean bacon_video_widget_seek_to_next_frame (BaconVideoWidget * bvw, gfloat rate, gboolean in_segment); EXPORT gboolean bacon_video_widget_seek_to_previous_frame (BaconVideoWidget * bvw, gfloat rate, gboolean in_segment); EXPORT gboolean bacon_video_widget_segment_stop_update (BaconVideoWidget * bvw, gint64 stop, gfloat rate); EXPORT gboolean bacon_video_widget_segment_start_update (BaconVideoWidget * bvw, gint64 start, gfloat rate); EXPORT gboolean bacon_video_widget_new_file_seek (BaconVideoWidget * bvw, gint64 start, gint64 stop, gfloat rate); EXPORT gboolean bacon_video_widget_can_direct_seek (BaconVideoWidget * bvw); EXPORT double bacon_video_widget_get_position (BaconVideoWidget * bvw); EXPORT gint64 bacon_video_widget_get_current_time (BaconVideoWidget * bvw); EXPORT gint64 bacon_video_widget_get_stream_length (BaconVideoWidget * bvw); EXPORT gint64 bacon_video_widget_get_accurate_current_time (BaconVideoWidget * bvw); EXPORT gboolean bacon_video_widget_set_rate (BaconVideoWidget * bvw, gfloat rate); EXPORT gboolean bacon_video_widget_set_rate_in_segment (BaconVideoWidget * bvw, gfloat rate, gint64 stop); EXPORT void bacon_video_widget_stop (BaconVideoWidget * bvw); EXPORT void bacon_video_widget_close (BaconVideoWidget * bvw); /* Audio volume */ EXPORT gboolean bacon_video_widget_can_set_volume (BaconVideoWidget * bvw); EXPORT void bacon_video_widget_set_volume (BaconVideoWidget * bvw, double volume); EXPORT double bacon_video_widget_get_volume (BaconVideoWidget * bvw); /*Drawings Overlay*/ EXPORT void bacon_video_widget_set_drawing_pixbuf (BaconVideoWidget * bvw, GdkPixbuf * drawing); EXPORT void bacon_video_widget_set_drawing_mode (BaconVideoWidget * bvw, gboolean drawing_mode); /* Properties */ EXPORT void bacon_video_widget_set_logo (BaconVideoWidget * bvw, char *filename); EXPORT void bacon_video_widget_set_logo_pixbuf (BaconVideoWidget * bvw, GdkPixbuf * logo); EXPORT void bacon_video_widget_set_logo_mode (BaconVideoWidget * bvw, gboolean logo_mode); EXPORT gboolean bacon_video_widget_get_logo_mode (BaconVideoWidget * bvw); EXPORT void bacon_video_widget_set_fullscreen (BaconVideoWidget * bvw, gboolean fullscreen); EXPORT void bacon_video_widget_set_show_cursor (BaconVideoWidget * bvw, gboolean show_cursor); EXPORT gboolean bacon_video_widget_get_show_cursor (BaconVideoWidget * bvw); EXPORT gboolean bacon_video_widget_get_auto_resize (BaconVideoWidget * bvw); EXPORT void bacon_video_widget_set_auto_resize (BaconVideoWidget * bvw, gboolean auto_resize); EXPORT void bacon_video_widget_set_connection_speed (BaconVideoWidget * bvw, int speed); EXPORT int bacon_video_widget_get_connection_speed (BaconVideoWidget * bvw); EXPORT void bacon_video_widget_set_subtitle_font (BaconVideoWidget * bvw, const char *font); EXPORT void bacon_video_widget_set_subtitle_encoding (BaconVideoWidget * bvw, const char *encoding); /* Metadata */ /** * BvwMetadataType: * @BVW_INFO_TITLE: the stream's title * @BVW_INFO_ARTIST: the artist who created the work * @BVW_INFO_YEAR: the year in which the work was created * @BVW_INFO_COMMENT: a comment attached to the stream * @BVW_INFO_ALBUM: the album in which the work was released * @BVW_INFO_DURATION: the stream's duration, in seconds * @BVW_INFO_TRACK_NUMBER: the track number of the work on the album * @BVW_INFO_COVER: a #GdkPixbuf of the cover artwork * @BVW_INFO_HAS_VIDEO: whether the stream has video * @BVW_INFO_DIMENSION_X: the video's width, in pixels * @BVW_INFO_DIMENSION_Y: the video's height, in pixels * @BVW_INFO_VIDEO_BITRATE: the video's bitrate, in kilobits per second * @BVW_INFO_VIDEO_CODEC: the video's codec * @BVW_INFO_FPS: the number of frames per second in the video * @BVW_INFO_HAS_AUDIO: whether the stream has audio * @BVW_INFO_AUDIO_BITRATE: the audio's bitrate, in kilobits per second * @BVW_INFO_AUDIO_CODEC: the audio's codec * @BVW_INFO_AUDIO_SAMPLE_RATE: the audio sample rate, in bits per second * @BVW_INFO_AUDIO_CHANNELS: a string describing the number of audio channels in the stream * * The different metadata available for querying from a #BaconVideoWidget * stream with bacon_video_widget_get_metadata(). **/ typedef enum { BVW_INFO_TITLE, BVW_INFO_ARTIST, BVW_INFO_YEAR, BVW_INFO_COMMENT, BVW_INFO_ALBUM, BVW_INFO_DURATION, BVW_INFO_TRACK_NUMBER, BVW_INFO_COVER, /* Video */ BVW_INFO_HAS_VIDEO, BVW_INFO_DIMENSION_X, BVW_INFO_DIMENSION_Y, BVW_INFO_VIDEO_BITRATE, BVW_INFO_VIDEO_CODEC, BVW_INFO_FPS, /* Audio */ BVW_INFO_HAS_AUDIO, BVW_INFO_AUDIO_BITRATE, BVW_INFO_AUDIO_CODEC, BVW_INFO_AUDIO_SAMPLE_RATE, BVW_INFO_AUDIO_CHANNELS } BvwMetadataType; EXPORT void bacon_video_widget_get_metadata (BaconVideoWidget * bvw, BvwMetadataType type, GValue * value); /* Picture settings */ /** * BvwVideoProperty: * @BVW_VIDEO_BRIGHTNESS: the video brightness * @BVW_VIDEO_CONTRAST: the video contrast * @BVW_VIDEO_SATURATION: the video saturation * @BVW_VIDEO_HUE: the video hue * * The video properties queryable with bacon_video_widget_get_video_property(), * and settable with bacon_video_widget_set_video_property(). **/ typedef enum { BVW_VIDEO_BRIGHTNESS, BVW_VIDEO_CONTRAST, BVW_VIDEO_SATURATION, BVW_VIDEO_HUE } BvwVideoProperty; /** * BvwAspectRatio: * @BVW_RATIO_AUTO: automatic * @BVW_RATIO_SQUARE: square (1:1) * @BVW_RATIO_FOURBYTHREE: four-by-three (4:3) * @BVW_RATIO_ANAMORPHIC: anamorphic (16:9) * @BVW_RATIO_DVB: DVB (20:9) * * The pixel aspect ratios available in which to display videos using * @bacon_video_widget_set_aspect_ratio(). **/ typedef enum { BVW_RATIO_AUTO = 0, BVW_RATIO_SQUARE = 1, BVW_RATIO_FOURBYTHREE = 2, BVW_RATIO_ANAMORPHIC = 3, BVW_RATIO_DVB = 4 } BvwAspectRatio; EXPORT gboolean bacon_video_widget_can_deinterlace (BaconVideoWidget * bvw); EXPORT void bacon_video_widget_set_deinterlacing (BaconVideoWidget * bvw, gboolean deinterlace); EXPORT gboolean bacon_video_widget_get_deinterlacing (BaconVideoWidget * bvw); EXPORT void bacon_video_widget_set_aspect_ratio (BaconVideoWidget * bvw, BvwAspectRatio ratio); EXPORT BvwAspectRatio bacon_video_widget_get_aspect_ratio (BaconVideoWidget * bvw); EXPORT void bacon_video_widget_set_scale_ratio (BaconVideoWidget * bvw, float ratio); EXPORT void bacon_video_widget_set_zoom (BaconVideoWidget * bvw, double zoom); EXPORT double bacon_video_widget_get_zoom (BaconVideoWidget * bvw); EXPORT int bacon_video_widget_get_video_property (BaconVideoWidget * bvw, BvwVideoProperty type); EXPORT void bacon_video_widget_set_video_property (BaconVideoWidget * bvw, BvwVideoProperty type, int value); /* DVD functions */ /** * BvwDVDEvent: * @BVW_DVD_ROOT_MENU: root menu * @BVW_DVD_TITLE_MENU: title menu * @BVW_DVD_SUBPICTURE_MENU: subpicture menu (if available) * @BVW_DVD_AUDIO_MENU: audio menu (if available) * @BVW_DVD_ANGLE_MENU: angle menu (if available) * @BVW_DVD_CHAPTER_MENU: chapter menu * @BVW_DVD_NEXT_CHAPTER: the next chapter * @BVW_DVD_PREV_CHAPTER: the previous chapter * @BVW_DVD_NEXT_TITLE: the next title in the current chapter * @BVW_DVD_PREV_TITLE: the previous title in the current chapter * @BVW_DVD_NEXT_ANGLE: the next angle * @BVW_DVD_PREV_ANGLE: the previous angle * @BVW_DVD_ROOT_MENU_UP: go up in the menu * @BVW_DVD_ROOT_MENU_DOWN: go down in the menu * @BVW_DVD_ROOT_MENU_LEFT: go left in the menu * @BVW_DVD_ROOT_MENU_RIGHT: go right in the menu * @BVW_DVD_ROOT_MENU_SELECT: select the current menu entry * * The DVD navigation actions available to fire as DVD events to * the #BaconVideoWidget. **/ typedef enum { BVW_DVD_ROOT_MENU, BVW_DVD_TITLE_MENU, BVW_DVD_SUBPICTURE_MENU, BVW_DVD_AUDIO_MENU, BVW_DVD_ANGLE_MENU, BVW_DVD_CHAPTER_MENU, BVW_DVD_NEXT_CHAPTER, BVW_DVD_PREV_CHAPTER, BVW_DVD_NEXT_TITLE, BVW_DVD_PREV_TITLE, BVW_DVD_NEXT_ANGLE, BVW_DVD_PREV_ANGLE, BVW_DVD_ROOT_MENU_UP, BVW_DVD_ROOT_MENU_DOWN, BVW_DVD_ROOT_MENU_LEFT, BVW_DVD_ROOT_MENU_RIGHT, BVW_DVD_ROOT_MENU_SELECT } BvwDVDEvent; EXPORT void bacon_video_widget_dvd_event (BaconVideoWidget * bvw, BvwDVDEvent type); EXPORT GList *bacon_video_widget_get_languages (BaconVideoWidget * bvw); EXPORT int bacon_video_widget_get_language (BaconVideoWidget * bvw); EXPORT void bacon_video_widget_set_language (BaconVideoWidget * bvw, int language); EXPORT GList *bacon_video_widget_get_subtitles (BaconVideoWidget * bvw); EXPORT int bacon_video_widget_get_subtitle (BaconVideoWidget * bvw); EXPORT void bacon_video_widget_set_subtitle (BaconVideoWidget * bvw, int subtitle); EXPORT gboolean bacon_video_widget_has_next_track (BaconVideoWidget * bvw); EXPORT gboolean bacon_video_widget_has_previous_track (BaconVideoWidget * bvw); /* Screenshot functions */ EXPORT gboolean bacon_video_widget_can_get_frames (BaconVideoWidget * bvw, GError ** error); EXPORT GdkPixbuf *bacon_video_widget_get_current_frame (BaconVideoWidget * bvw); EXPORT void bacon_video_widget_unref_pixbuf (GdkPixbuf * pixbuf); /* Audio-out functions */ /** * BvwAudioOutType: * @BVW_AUDIO_SOUND_STEREO: stereo output * @BVW_AUDIO_SOUND_4CHANNEL: 4-channel output * @BVW_AUDIO_SOUND_41CHANNEL: 4.1-channel output * @BVW_AUDIO_SOUND_5CHANNEL: 5-channel output * @BVW_AUDIO_SOUND_51CHANNEL: 5.1-channel output * @BVW_AUDIO_SOUND_AC3PASSTHRU: AC3 passthrough output * * The audio output types available for use with bacon_video_widget_set_audio_out_type(). **/ typedef enum { BVW_AUDIO_SOUND_STEREO, BVW_AUDIO_SOUND_CHANNEL4, BVW_AUDIO_SOUND_CHANNEL41, BVW_AUDIO_SOUND_CHANNEL5, BVW_AUDIO_SOUND_CHANNEL51, BVW_AUDIO_SOUND_AC3PASSTHRU } BvwAudioOutType; EXPORT BvwAudioOutType bacon_video_widget_get_audio_out_type (BaconVideoWidget * bvw); EXPORT gboolean bacon_video_widget_set_audio_out_type (BaconVideoWidget * bvw, BvwAudioOutType type); G_END_DECLS #endif /* HAVE_BACON_VIDEO_WIDGET_H */ longomatch-0.16.8/libcesarplayer/src/video-utils.h0000644000175000017500000000124411601631101017056 00000000000000 #include #include #define TOTEM_OBJECT_HAS_SIGNAL(obj, name) (g_signal_lookup (name, g_type_from_name (G_OBJECT_TYPE_NAME (obj))) != 0) void totem_gdk_window_set_invisible_cursor (GdkWindow * window); void totem_gdk_window_set_waiting_cursor (GdkWindow * window); gboolean totem_display_is_local (void); char *totem_time_to_string (gint64 msecs); gint64 totem_string_to_time (const char *time_string); char *totem_time_to_string_text (gint64 msecs); void totem_widget_set_preferred_size (GtkWidget * widget, gint width, gint height); gboolean totem_ratio_fits_screen (GdkWindow * window, int video_width, int video_height, gfloat ratio); longomatch-0.16.8/libcesarplayer/src/video-utils.c0000644000175000017500000001230511601631101017051 00000000000000 #include "video-utils.h" #include #include #include #include #include #include #include void totem_gdk_window_set_invisible_cursor (GdkWindow * window) { GdkCursor *cursor; #ifdef WIN32 cursor = gdk_cursor_new (GDK_X_CURSOR); #else cursor = gdk_cursor_new (GDK_BLANK_CURSOR); #endif gdk_window_set_cursor (window, cursor); gdk_cursor_unref (cursor); } void totem_gdk_window_set_waiting_cursor (GdkWindow * window) { GdkCursor *cursor; cursor = gdk_cursor_new (GDK_WATCH); gdk_window_set_cursor (window, cursor); gdk_cursor_unref (cursor); gdk_flush (); } gboolean totem_display_is_local (void) { const char *name, *work; int display, screen; gboolean has_hostname; name = gdk_display_get_name (gdk_display_get_default ()); if (name == NULL) return TRUE; work = strstr (name, ":"); if (work == NULL) return TRUE; has_hostname = (work - name) > 0; /* Get to the character after the colon */ work++; if (*work == '\0') return TRUE; if (sscanf (work, "%d.%d", &display, &screen) != 2) return TRUE; if (has_hostname == FALSE) return TRUE; if (display < 10) return TRUE; return FALSE; } char * totem_time_to_string (gint64 msecs) { int sec, min, hour, time; time = (int) (msecs / 1000); sec = time % 60; time = time - sec; min = (time % (60 * 60)) / 60; time = time - (min * 60); hour = time / (60 * 60); if (hour > 0) { /* hour:minutes:seconds */ /* Translators: This is a time format, like "9:05:02" for 9 * hours, 5 minutes, and 2 seconds. You may change ":" to * the separator that your locale uses or use "%Id" instead * of "%d" if your locale uses localized digits. */ return g_strdup_printf (C_ ("long time format", "%d:%02d:%02d"), hour, min, sec); } /* minutes:seconds */ /* Translators: This is a time format, like "5:02" for 5 * minutes and 2 seconds. You may change ":" to the * separator that your locale uses or use "%Id" instead of * "%d" if your locale uses localized digits. */ return g_strdup_printf (C_ ("short time format", "%d:%02d"), min, sec); } gint64 totem_string_to_time (const char *time_string) { int sec, min, hour, args; args = sscanf (time_string, C_ ("long time format", "%d:%02d:%02d"), &hour, &min, &sec); if (args == 3) { /* Parsed all three arguments successfully */ return (hour * (60 * 60) + min * 60 + sec) * 1000; } else if (args == 2) { /* Only parsed the first two arguments; treat hour and min as min and sec, respectively */ return (hour * 60 + min) * 1000; } else if (args == 1) { /* Only parsed the first argument; treat hour as sec */ return hour * 1000; } else { /* Error! */ return -1; } } char * totem_time_to_string_text (gint64 msecs) { char *secs, *mins, *hours, *string; int sec, min, hour, time; time = (int) (msecs / 1000); sec = time % 60; time = time - sec; min = (time % (60 * 60)) / 60; time = time - (min * 60); hour = time / (60 * 60); hours = g_strdup_printf (ngettext ("%d hour", "%d hours", hour), hour); mins = g_strdup_printf (ngettext ("%d minute", "%d minutes", min), min); secs = g_strdup_printf (ngettext ("%d second", "%d seconds", sec), sec); if (hour > 0) { /* hour:minutes:seconds */ string = g_strdup_printf (_("%s %s %s"), hours, mins, secs); } else if (min > 0) { /* minutes:seconds */ string = g_strdup_printf (_("%s %s"), mins, secs); } else if (sec > 0) { /* seconds */ string = g_strdup_printf (_("%s"), secs); } else { /* 0 seconds */ string = g_strdup (_("0 seconds")); } g_free (hours); g_free (mins); g_free (secs); return string; } typedef struct _TotemPrefSize { gint width, height; gulong sig_id; } TotemPrefSize; static gboolean cb_unset_size (gpointer data) { GtkWidget *widget = data; gtk_widget_queue_resize_no_redraw (widget); return FALSE; } static void cb_set_preferred_size (GtkWidget * widget, GtkRequisition * req, gpointer data) { TotemPrefSize *size = data; req->width = size->width; req->height = size->height; g_signal_handler_disconnect (widget, size->sig_id); g_free (size); g_idle_add (cb_unset_size, widget); } void totem_widget_set_preferred_size (GtkWidget * widget, gint width, gint height) { TotemPrefSize *size = g_new (TotemPrefSize, 1); size->width = width; size->height = height; size->sig_id = g_signal_connect (widget, "size-request", G_CALLBACK (cb_set_preferred_size), size); gtk_widget_queue_resize (widget); } gboolean totem_ratio_fits_screen (GdkWindow * video_window, int video_width, int video_height, gfloat ratio) { GdkRectangle fullscreen_rect; int new_w, new_h; GdkScreen *screen; if (video_width <= 0 || video_height <= 0) return TRUE; new_w = video_width * ratio; new_h = video_height * ratio; screen = gdk_drawable_get_screen (GDK_DRAWABLE (video_window)); gdk_screen_get_monitor_geometry (screen, gdk_screen_get_monitor_at_window (screen, video_window), &fullscreen_rect); if (new_w > (fullscreen_rect.width - 128) || new_h > (fullscreen_rect.height - 128)) { return FALSE; } return TRUE; } longomatch-0.16.8/libcesarplayer/src/gstscreenshot.h0000644000175000017500000000205511601631101017506 00000000000000/* Small helper element for format conversion * (c) 2004 Ronald Bultje * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef __BVW_FRAME_CONV_H__ #define __BVW_FRAME_CONV_H__ #include G_BEGIN_DECLS GstBuffer * bvw_frame_conv_convert (GstBuffer * buf, GstCaps * to); G_END_DECLS #endif /* __BVW_FRAME_CONV_H__ */ longomatch-0.16.8/libcesarplayer/src/gst-video-editor.c0000644000175000017500000012625011601631101017777 00000000000000 /*GStreamer Video Editor Based On GNonlin * Copyright (C) 2007-2009 Andoni Morales Alastruey * * This program is free software. * * You may 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. * * Gstreamer Video Transcoderis 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 foob. If not, write to: * The Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301, USA. */ #include #include #include #include "gst-video-editor.h" #define DEFAULT_VIDEO_ENCODER "vp8enc" #define DEFAULT_AUDIO_ENCODER "vorbisenc" #define DEFAULT_VIDEO_MUXER "matroskamux" #define FONT_SIZE_FACTOR 0.05 #define LAME_CAPS "audio/x-raw-int, rate=44100, channels=2, endianness=1234, signed=true, width=16, depth=16" #define VORBIS_CAPS "audio/x-raw-float, rate=44100, channels=2, endianness=1234, signed=true, width=32, depth=32" #define FAAC_CAPS "audio/x-raw-int, rate=44100, channels=2, endianness=1234, signed=true, width=16, depth=16" #define AC3_CAPS "audio/x-raw-int, rate=44100, channels=2, endianness=1234, signed=true, width=16, depth=16" #define TIMEOUT 50 /* Signals */ enum { SIGNAL_ERROR, SIGNAL_EOS, SIGNAL_PERCENT_COMPLETED, LAST_SIGNAL }; /* Properties */ enum { PROP_0, PROP_ENABLE_AUDIO, PROP_ENABLE_TITLE, PROP_VIDEO_BITRATE, PROP_AUDIO_BITRATE, PROP_HEIGHT, PROP_WIDTH, PROP_OUTPUT_FILE }; struct GstVideoEditorPrivate { gint segments; gint active_segment; gint64 *stop_times; GList *titles; GList *gnl_video_filesources; GList *gnl_audio_filesources; gint64 duration; /* Properties */ gboolean audio_enabled; gboolean title_enabled; gchar *output_file; gint audio_bitrate; gint video_bitrate; gint width; gint height; /* Bins */ GstElement *main_pipeline; GstElement *vencode_bin; GstElement *aencode_bin; /* Source */ GstElement *gnl_video_composition; GstElement *gnl_audio_composition; /* Video */ GstElement *identity; GstElement *ffmpegcolorspace; GstElement *videorate; GstElement *textoverlay; GstElement *videoscale; GstElement *capsfilter; GstElement *queue; GstElement *video_encoder; VideoEncoderType video_encoder_type; /* Audio */ GstElement *audioidentity; GstElement *audioconvert; GstElement *audioresample; GstElement *audiocapsfilter; GstElement *audioqueue; GstElement *audioencoder; /* Sink */ GstElement *muxer; GstElement *file_sink; GstBus *bus; gulong sig_bus_async; gint update_id; }; static int gve_signals[LAST_SIGNAL] = { 0 }; static void gve_error_msg (GstVideoEditor * gve, GstMessage * msg); static void new_decoded_pad_cb (GstElement * object, GstPad * arg0, gpointer user_data); static void gve_bus_message_cb (GstBus * bus, GstMessage * message, gpointer data); static void gst_video_editor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void gst_video_editor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static gboolean gve_query_timeout (GstVideoEditor * gve); static void gve_apply_new_caps (GstVideoEditor * gve); static void gve_rewrite_headers (GstVideoEditor * gve); G_DEFINE_TYPE (GstVideoEditor, gst_video_editor, G_TYPE_OBJECT); /* =========================================== */ /* */ /* Class Initialization/Finalization */ /* */ /* =========================================== */ static void gst_video_editor_init (GstVideoEditor * object) { GstVideoEditorPrivate *priv; object->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (object, GST_TYPE_VIDEO_EDITOR, GstVideoEditorPrivate); priv->output_file = "new_video.avi"; priv->audio_bitrate = 128000; priv->video_bitrate = 5000; priv->height = 540; priv->width = 720; priv->title_enabled = TRUE; priv->audio_enabled = TRUE; priv->duration = 0; priv->segments = 0; priv->gnl_video_filesources = NULL; priv->gnl_audio_filesources = NULL; priv->titles = NULL; priv->stop_times = (gint64 *) malloc (200 * sizeof (gint64)); priv->update_id = 0; } static void gst_video_editor_finalize (GObject * object) { GstVideoEditor *gve = (GstVideoEditor *) object; if (gve->priv->bus) { /* make bus drop all messages to make sure none of our callbacks is ever called again (main loop might be run again to display error dialog) */ gst_bus_set_flushing (gve->priv->bus, TRUE); if (gve->priv->sig_bus_async) g_signal_handler_disconnect (gve->priv->bus, gve->priv->sig_bus_async); gst_object_unref (gve->priv->bus); gve->priv->bus = NULL; } if (gve->priv->main_pipeline != NULL && GST_IS_ELEMENT (gve->priv->main_pipeline)) { gst_element_set_state (gve->priv->main_pipeline, GST_STATE_NULL); gst_object_unref (gve->priv->main_pipeline); gve->priv->main_pipeline = NULL; } g_free (gve->priv->output_file); g_list_free (gve->priv->gnl_video_filesources); g_list_free (gve->priv->gnl_audio_filesources); g_free (gve->priv->stop_times); g_list_free (gve->priv->titles); G_OBJECT_CLASS (gst_video_editor_parent_class)->finalize (object); } static void gst_video_editor_class_init (GstVideoEditorClass * klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = gst_video_editor_finalize; g_type_class_add_private (object_class, sizeof (GstVideoEditorPrivate)); /* GObject */ object_class->set_property = gst_video_editor_set_property; object_class->get_property = gst_video_editor_get_property; object_class->finalize = gst_video_editor_finalize; /* Properties */ g_object_class_install_property (object_class, PROP_ENABLE_AUDIO, g_param_spec_boolean ("enable-audio", NULL, NULL, TRUE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_ENABLE_TITLE, g_param_spec_boolean ("enable-title", NULL, NULL, TRUE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_VIDEO_BITRATE, g_param_spec_int ("video_bitrate", NULL, NULL, 100, G_MAXINT, 10000, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_AUDIO_BITRATE, g_param_spec_int ("audio_bitrate", NULL, NULL, 12000, G_MAXINT, 128000, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_HEIGHT, g_param_spec_int ("height", NULL, NULL, 240, 1080, 480, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_WIDTH, g_param_spec_int ("width", NULL, NULL, 320, 1920, 720, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_OUTPUT_FILE, g_param_spec_string ("output_file", NULL, NULL, "", G_PARAM_READWRITE)); /* Signals */ gve_signals[SIGNAL_ERROR] = g_signal_new ("error", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstVideoEditorClass, error), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); gve_signals[SIGNAL_PERCENT_COMPLETED] = g_signal_new ("percent_completed", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstVideoEditorClass, percent_completed), NULL, NULL, g_cclosure_marshal_VOID__FLOAT, G_TYPE_NONE, 1, G_TYPE_FLOAT); } /* =========================================== */ /* */ /* Properties */ /* */ /* =========================================== */ static void gst_video_editor_set_enable_audio (GstVideoEditor * gve, gboolean audio_enabled) { GstState cur_state; gst_element_get_state (gve->priv->main_pipeline, &cur_state, NULL, 0); if (cur_state > GST_STATE_READY) { GST_WARNING ("Could not enable/disable audio. Pipeline is playing"); return; } if (!gve->priv->audio_enabled && audio_enabled) { /* Audio needs to be enabled and is disabled */ gst_bin_add_many (GST_BIN (gve->priv->main_pipeline), gve->priv->gnl_audio_composition, gve->priv->aencode_bin, NULL); gst_element_link (gve->priv->aencode_bin, gve->priv->muxer); gst_element_set_state (gve->priv->gnl_audio_composition, cur_state); gst_element_set_state (gve->priv->aencode_bin, cur_state); gve_rewrite_headers (gve); gve->priv->audio_enabled = TRUE; GST_INFO ("Audio enabled"); } else if (gve->priv->audio_enabled && !audio_enabled) { /* Audio is enabled and needs to be disabled) */ gst_element_unlink_many (gve->priv->gnl_audio_composition, gve->priv->aencode_bin, gve->priv->muxer, NULL); gst_element_set_state (gve->priv->gnl_audio_composition, GST_STATE_NULL); gst_element_set_state (gve->priv->aencode_bin, GST_STATE_NULL); gst_object_ref (gve->priv->gnl_audio_composition); gst_object_ref (gve->priv->aencode_bin); gst_bin_remove_many (GST_BIN (gve->priv->main_pipeline), gve->priv->gnl_audio_composition, gve->priv->aencode_bin, NULL); gve_rewrite_headers (gve); gve->priv->audio_enabled = FALSE; GST_INFO ("Audio disabled"); } } static void gst_video_editor_set_enable_title (GstVideoEditor * gve, gboolean title_enabled) { gve->priv->title_enabled = title_enabled; g_object_set (G_OBJECT (gve->priv->textoverlay), "silent", !gve->priv->title_enabled, NULL); } static void gst_video_editor_set_video_bit_rate (GstVideoEditor * gve, gint bitrate) { GstState cur_state; gve->priv->video_bitrate = bitrate; gst_element_get_state (gve->priv->video_encoder, &cur_state, NULL, 0); if (cur_state <= GST_STATE_READY) { if (gve->priv->video_encoder_type == VIDEO_ENCODER_THEORA || gve->priv->video_encoder_type == VIDEO_ENCODER_H264) g_object_set (gve->priv->video_encoder, "bitrate", bitrate, NULL); else g_object_set (gve->priv->video_encoder, "bitrate", bitrate * 1000, NULL); GST_INFO ("Encoding video bitrate changed to :%d (kbps)\n", bitrate); } } static void gst_video_editor_set_audio_bit_rate (GstVideoEditor * gve, gint bitrate) { GstState cur_state; gve->priv->audio_bitrate = bitrate; gst_element_get_state (gve->priv->audioencoder, &cur_state, NULL, 0); if (cur_state <= GST_STATE_READY) { g_object_set (gve->priv->audioencoder, "bitrate", bitrate, NULL); GST_INFO ("Encoding audio bitrate changed to :%d (bps)\n", bitrate); } } static void gst_video_editor_set_width (GstVideoEditor * gve, gint width) { gve->priv->width = width; gve_apply_new_caps (gve); } static void gst_video_editor_set_height (GstVideoEditor * gve, gint height) { gve->priv->height = height; gve_apply_new_caps (gve); } static void gst_video_editor_set_output_file (GstVideoEditor * gve, const char *output_file) { GstState cur_state; gve->priv->output_file = g_strdup (output_file); gst_element_get_state (gve->priv->file_sink, &cur_state, NULL, 0); if (cur_state <= GST_STATE_READY) { gst_element_set_state (gve->priv->file_sink, GST_STATE_NULL); g_object_set (gve->priv->file_sink, "location", gve->priv->output_file, NULL); GST_INFO ("Ouput File changed to :%s\n", gve->priv->output_file); } } static void gst_video_editor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { GstVideoEditor *gve; gve = GST_VIDEO_EDITOR (object); switch (property_id) { case PROP_ENABLE_AUDIO: gst_video_editor_set_enable_audio (gve, g_value_get_boolean (value)); break; case PROP_ENABLE_TITLE: gst_video_editor_set_enable_title (gve, g_value_get_boolean (value)); break; case PROP_VIDEO_BITRATE: gst_video_editor_set_video_bit_rate (gve, g_value_get_int (value)); break; case PROP_AUDIO_BITRATE: gst_video_editor_set_audio_bit_rate (gve, g_value_get_int (value)); break; case PROP_WIDTH: gst_video_editor_set_width (gve, g_value_get_int (value)); break; case PROP_HEIGHT: gst_video_editor_set_height (gve, g_value_get_int (value)); break; case PROP_OUTPUT_FILE: gst_video_editor_set_output_file (gve, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void gst_video_editor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { GstVideoEditor *gve; gve = GST_VIDEO_EDITOR (object); switch (property_id) { case PROP_ENABLE_AUDIO: g_value_set_boolean (value, gve->priv->audio_enabled); break; case PROP_ENABLE_TITLE: g_value_set_boolean (value, gve->priv->title_enabled); break; case PROP_AUDIO_BITRATE: g_value_set_int (value, gve->priv->audio_bitrate); break; case PROP_VIDEO_BITRATE: g_value_set_int (value, gve->priv->video_bitrate); break; case PROP_WIDTH: g_value_set_int (value, gve->priv->width); break; case PROP_HEIGHT: g_value_set_int (value, gve->priv->height); break; case PROP_OUTPUT_FILE: g_value_set_string (value, gve->priv->output_file); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } /* =========================================== */ /* */ /* Private Methods */ /* */ /* =========================================== */ static void gve_rewrite_headers (GstVideoEditor * gve) { gst_element_set_state (gve->priv->muxer, GST_STATE_NULL); gst_element_set_state (gve->priv->file_sink, GST_STATE_NULL); gst_element_set_state (gve->priv->file_sink, GST_STATE_READY); gst_element_set_state (gve->priv->muxer, GST_STATE_READY); } static void gve_set_tick_timeout (GstVideoEditor * gve, guint msecs) { g_return_if_fail (msecs > 0); GST_INFO ("adding tick timeout (at %ums)", msecs); gve->priv->update_id = g_timeout_add (msecs, (GSourceFunc) gve_query_timeout, gve); } static void gve_apply_new_caps (GstVideoEditor * gve) { GstCaps *caps; gchar *font; caps = gst_caps_new_simple ("video/x-raw-yuv", "width", G_TYPE_INT, gve->priv->width, "height", G_TYPE_INT, gve->priv->height, "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, "framerate", GST_TYPE_FRACTION, 25, 1, NULL); g_object_set (G_OBJECT (gve->priv->capsfilter), "caps", caps, NULL); font = g_strdup_printf ("sans bold %d", (int) (gve->priv->height * FONT_SIZE_FACTOR)); g_object_set (G_OBJECT (gve->priv->textoverlay), "font-desc", font, NULL); g_free (font); gst_caps_unref (caps); } static void gve_create_video_encode_bin (GstVideoEditor * gve) { GstPad *sinkpad = NULL; GstPad *srcpad = NULL; if (gve->priv->vencode_bin != NULL) return; gve->priv->vencode_bin = gst_element_factory_make ("bin", "vencodebin"); gve->priv->identity = gst_element_factory_make ("identity", "identity"); gve->priv->ffmpegcolorspace = gst_element_factory_make ("ffmpegcolorspace", "ffmpegcolorspace"); gve->priv->videorate = gst_element_factory_make ("videorate", "videorate"); gve->priv->videoscale = gst_element_factory_make ("videoscale", "videoscale"); gve->priv->capsfilter = gst_element_factory_make ("capsfilter", "capsfilter"); gve->priv->textoverlay = gst_element_factory_make ("textoverlay", "textoverlay"); gve->priv->queue = gst_element_factory_make ("queue", "video-encode-queue"); gve->priv->video_encoder = gst_element_factory_make (DEFAULT_VIDEO_ENCODER, "video-encoder"); g_object_set (G_OBJECT (gve->priv->identity), "single-segment", TRUE, NULL); g_object_set (G_OBJECT (gve->priv->textoverlay), "font-desc", "sans bold 20", "shaded-background", TRUE, "valignment", 2, "halignment", 2, NULL); g_object_set (G_OBJECT (gve->priv->videoscale), "add-borders", TRUE, NULL); g_object_set (G_OBJECT (gve->priv->video_encoder), "bitrate", gve->priv->video_bitrate, NULL); /*Add and link elements */ gst_bin_add_many (GST_BIN (gve->priv->vencode_bin), gve->priv->identity, gve->priv->ffmpegcolorspace, gve->priv->videorate, gve->priv->videoscale, gve->priv->capsfilter, gve->priv->textoverlay, gve->priv->queue, gve->priv->video_encoder, NULL); gst_element_link_many (gve->priv->identity, gve->priv->ffmpegcolorspace, gve->priv->videoscale, gve->priv->videorate, gve->priv->capsfilter, gve->priv->textoverlay, gve->priv->queue, gve->priv->video_encoder, NULL); /*Create bin sink pad */ sinkpad = gst_element_get_static_pad (gve->priv->identity, "sink"); gst_pad_set_active (sinkpad, TRUE); gst_element_add_pad (GST_ELEMENT (gve->priv->vencode_bin), gst_ghost_pad_new ("sink", sinkpad)); /*Creat bin src pad */ srcpad = gst_element_get_static_pad (gve->priv->video_encoder, "src"); gst_pad_set_active (srcpad, TRUE); gst_element_add_pad (GST_ELEMENT (gve->priv->vencode_bin), gst_ghost_pad_new ("src", srcpad)); g_object_unref (srcpad); g_object_unref (sinkpad); } static void gve_create_audio_encode_bin (GstVideoEditor * gve) { GstPad *sinkpad = NULL; GstPad *srcpad = NULL; if (gve->priv->aencode_bin != NULL) return; gve->priv->aencode_bin = gst_element_factory_make ("bin", "aencodebin"); gve->priv->audioidentity = gst_element_factory_make ("identity", "audio-identity"); gve->priv->audioconvert = gst_element_factory_make ("audioconvert", "audioconvert"); gve->priv->audioresample = gst_element_factory_make ("audioresample", "audioresample"); gve->priv->audiocapsfilter = gst_element_factory_make ("capsfilter", "audiocapsfilter"); gve->priv->audioqueue = gst_element_factory_make ("queue", "audio-queue"); gve->priv->audioencoder = gst_element_factory_make (DEFAULT_AUDIO_ENCODER, "audio-encoder"); g_object_set (G_OBJECT (gve->priv->audioidentity), "single-segment", TRUE, NULL); g_object_set (G_OBJECT (gve->priv->audiocapsfilter), "caps", gst_caps_from_string (VORBIS_CAPS), NULL); g_object_set (G_OBJECT (gve->priv->audioencoder), "bitrate", gve->priv->audio_bitrate, NULL); /*Add and link elements */ gst_bin_add_many (GST_BIN (gve->priv->aencode_bin), gve->priv->audioidentity, gve->priv->audioconvert, gve->priv->audioresample, gve->priv->audiocapsfilter, gve->priv->audioqueue, gve->priv->audioencoder, NULL); gst_element_link_many (gve->priv->audioidentity, gve->priv->audioconvert, gve->priv->audioresample, gve->priv->audiocapsfilter, gve->priv->audioqueue, gve->priv->audioencoder, NULL); /*Create bin sink pad */ sinkpad = gst_element_get_static_pad (gve->priv->audioidentity, "sink"); gst_pad_set_active (sinkpad, TRUE); gst_element_add_pad (GST_ELEMENT (gve->priv->aencode_bin), gst_ghost_pad_new ("sink", sinkpad)); /*Creat bin src pad */ srcpad = gst_element_get_static_pad (gve->priv->audioencoder, "src"); gst_pad_set_active (srcpad, TRUE); gst_element_add_pad (GST_ELEMENT (gve->priv->aencode_bin), gst_ghost_pad_new ("src", srcpad)); g_object_unref (srcpad); g_object_unref (sinkpad); } GQuark gst_video_editor_error_quark (void) { static GQuark q; /* 0 */ if (G_UNLIKELY (q == 0)) { q = g_quark_from_static_string ("gve-error-quark"); } return q; } /* =========================================== */ /* */ /* Callbacks */ /* */ /* =========================================== */ static void new_decoded_pad_cb (GstElement * object, GstPad * pad, gpointer user_data) { GstCaps *caps = NULL; GstStructure *str = NULL; GstPad *videopad = NULL; GstPad *audiopad = NULL; GstVideoEditor *gve = NULL; g_return_if_fail (GST_IS_VIDEO_EDITOR (user_data)); gve = GST_VIDEO_EDITOR (user_data); /* check media type */ caps = gst_pad_get_caps (pad); str = gst_caps_get_structure (caps, 0); if (g_strrstr (gst_structure_get_name (str), "video")) { gst_element_set_state (gve->priv->vencode_bin, GST_STATE_PLAYING); videopad = gst_element_get_compatible_pad (gve->priv->vencode_bin, pad, NULL); /* only link once */ if (GST_PAD_IS_LINKED (videopad)) { g_object_unref (videopad); gst_caps_unref (caps); return; } /* link 'n play */ GST_INFO ("Found video stream...%" GST_PTR_FORMAT, caps); gst_pad_link (pad, videopad); g_object_unref (videopad); } else if (g_strrstr (gst_structure_get_name (str), "audio")) { gst_element_set_state (gve->priv->aencode_bin, GST_STATE_PLAYING); audiopad = gst_element_get_compatible_pad (gve->priv->aencode_bin, pad, NULL); /* only link once */ if (GST_PAD_IS_LINKED (audiopad)) { g_object_unref (audiopad); gst_caps_unref (caps); return; } /* link 'n play */ GST_INFO ("Found audio stream...%" GST_PTR_FORMAT, caps); gst_pad_link (pad, audiopad); g_object_unref (audiopad); } gst_caps_unref (caps); } static void gve_bus_message_cb (GstBus * bus, GstMessage * message, gpointer data) { GstVideoEditor *gve = (GstVideoEditor *) data; GstMessageType msg_type; g_return_if_fail (gve != NULL); g_return_if_fail (GST_IS_VIDEO_EDITOR (gve)); msg_type = GST_MESSAGE_TYPE (message); switch (msg_type) { case GST_MESSAGE_ERROR: gve_error_msg (gve, message); if (gve->priv->main_pipeline) gst_element_set_state (gve->priv->main_pipeline, GST_STATE_READY); break; case GST_MESSAGE_WARNING: GST_WARNING ("Warning message: %" GST_PTR_FORMAT, message); break; case GST_MESSAGE_STATE_CHANGED: { GstState old_state, new_state; gchar *src_name; gst_message_parse_state_changed (message, &old_state, &new_state, NULL); if (old_state == new_state) break; /* we only care about playbin (pipeline) state changes */ if (GST_MESSAGE_SRC (message) != GST_OBJECT (gve->priv->main_pipeline)) break; src_name = gst_object_get_name (message->src); GST_INFO ("%s changed state from %s to %s", src_name, gst_element_state_get_name (old_state), gst_element_state_get_name (new_state)); g_free (src_name); if (new_state == GST_STATE_PLAYING) gve_set_tick_timeout (gve, TIMEOUT); if (old_state == GST_STATE_PAUSED && new_state == GST_STATE_READY) { if (gve->priv->update_id > 0) { g_source_remove (gve->priv->update_id); gve->priv->update_id = 0; } } if (old_state == GST_STATE_NULL && new_state == GST_STATE_READY) GST_DEBUG_BIN_TO_DOT_FILE (GST_BIN (gve->priv->main_pipeline), GST_DEBUG_GRAPH_SHOW_ALL, "gst-camera-capturer-null-to-ready"); if (old_state == GST_STATE_READY && new_state == GST_STATE_PAUSED) GST_DEBUG_BIN_TO_DOT_FILE (GST_BIN (gve->priv->main_pipeline), GST_DEBUG_GRAPH_SHOW_ALL, "gst-camera-capturer-ready-to-paused"); break; } case GST_MESSAGE_EOS: if (gve->priv->update_id > 0) { g_source_remove (gve->priv->update_id); gve->priv->update_id = 0; } gst_element_set_state (gve->priv->main_pipeline, GST_STATE_NULL); g_signal_emit (gve, gve_signals[SIGNAL_PERCENT_COMPLETED], 0, (gfloat) 1); gve->priv->active_segment = 0; /* Close file sink properly */ g_object_set (G_OBJECT (gve->priv->file_sink), "location", "", NULL); break; default: GST_LOG ("Unhandled message: %" GST_PTR_FORMAT, message); break; } } static void gve_error_msg (GstVideoEditor * gve, GstMessage * msg) { GError *err = NULL; gchar *dbg = NULL; gst_message_parse_error (msg, &err, &dbg); if (err) { GST_ERROR ("message = %s", GST_STR_NULL (err->message)); GST_ERROR ("domain = %d (%s)", err->domain, GST_STR_NULL (g_quark_to_string (err->domain))); GST_ERROR ("code = %d", err->code); GST_ERROR ("debug = %s", GST_STR_NULL (dbg)); GST_ERROR ("source = %" GST_PTR_FORMAT, msg->src); g_message ("Error: %s\n%s\n", GST_STR_NULL (err->message), GST_STR_NULL (dbg)); g_signal_emit (gve, gve_signals[SIGNAL_ERROR], 0, err->message); g_error_free (err); } g_free (dbg); } static gboolean gve_query_timeout (GstVideoEditor * gve) { GstFormat fmt = GST_FORMAT_TIME; gint64 pos = -1; gchar *title; gint64 stop_time = gve->priv->stop_times[gve->priv->active_segment]; if (gst_element_query_position (gve->priv->main_pipeline, &fmt, &pos)) { if (pos != -1 && fmt == GST_FORMAT_TIME) { g_signal_emit (gve, gve_signals[SIGNAL_PERCENT_COMPLETED], 0, (float) pos / (float) gve->priv->duration); } } else { GST_INFO ("could not get position"); } if (gst_element_query_position (gve->priv->video_encoder, &fmt, &pos)) { if (stop_time - pos <= 0) { gve->priv->active_segment++; title = (gchar *) g_list_nth_data (gve->priv->titles, gve->priv->active_segment); g_object_set (G_OBJECT (gve->priv->textoverlay), "text", title, NULL); } } return TRUE; } /* =========================================== */ /* */ /* Public Methods */ /* */ /* =========================================== */ void gst_video_editor_add_segment (GstVideoEditor * gve, gchar * file, gint64 start, gint64 duration, gdouble rate, gchar * title, gboolean hasAudio) { GstState cur_state; GstElement *gnl_filesource = NULL; GstElement *audiotestsrc = NULL; GstCaps *filter = NULL; gchar *element_name = ""; gint64 final_duration; g_return_if_fail (GST_IS_VIDEO_EDITOR (gve)); gst_element_get_state (gve->priv->main_pipeline, &cur_state, NULL, 0); if (cur_state > GST_STATE_READY) { GST_WARNING ("Segments can only be added for a state <= GST_STATE_READY"); return; } final_duration = GST_MSECOND * duration / rate; /* Video */ filter = gst_caps_from_string ("video/x-raw-rgb;video/x-raw-yuv"); element_name = g_strdup_printf ("gnlvideofilesource%d", gve->priv->segments); gnl_filesource = gst_element_factory_make ("gnlfilesource", element_name); g_object_set (G_OBJECT (gnl_filesource), "location", file, "media-start", GST_MSECOND * start, "media-duration", GST_MSECOND * duration, "start", gve->priv->duration, "duration", final_duration, "caps", filter, NULL); if (gve->priv->segments == 0) { g_object_set (G_OBJECT (gve->priv->textoverlay), "text", title, NULL); } gst_bin_add (GST_BIN (gve->priv->gnl_video_composition), gnl_filesource); gve->priv->gnl_video_filesources = g_list_append (gve->priv->gnl_video_filesources, gnl_filesource); /* Audio */ if (hasAudio && rate == 1) { element_name = g_strdup_printf ("gnlaudiofilesource%d", gve->priv->segments); gnl_filesource = gst_element_factory_make ("gnlfilesource", element_name); g_object_set (G_OBJECT (gnl_filesource), "location", file, NULL); } else { /* If the file doesn't contain audio, something must be playing */ /* We use an audiotestsrc mutted and with a low priority */ element_name = g_strdup_printf ("gnlaudiofakesource%d", gve->priv->segments); gnl_filesource = gst_element_factory_make ("gnlsource", element_name); element_name = g_strdup_printf ("audiotestsource%d", gve->priv->segments); audiotestsrc = gst_element_factory_make ("audiotestsrc", element_name); g_object_set (G_OBJECT (audiotestsrc), "volume", (double) 0, NULL); gst_bin_add (GST_BIN (gnl_filesource), audiotestsrc); } filter = gst_caps_from_string ("audio/x-raw-float;audio/x-raw-int"); g_object_set (G_OBJECT (gnl_filesource), "media-start", GST_MSECOND * start, "media-duration", GST_MSECOND * duration, "start", gve->priv->duration, "duration", final_duration, "caps", filter, NULL); gst_bin_add (GST_BIN (gve->priv->gnl_audio_composition), gnl_filesource); gve->priv->gnl_audio_filesources = g_list_append (gve->priv->gnl_audio_filesources, gnl_filesource); gve->priv->duration += final_duration; gve->priv->segments++; gve->priv->titles = g_list_append (gve->priv->titles, title); gve->priv->stop_times[gve->priv->segments - 1] = gve->priv->duration; GST_INFO ("New segment: start={%" GST_TIME_FORMAT "} duration={%" GST_TIME_FORMAT "} ", GST_TIME_ARGS (start * GST_MSECOND), GST_TIME_ARGS (duration * GST_MSECOND)); g_free (element_name); } void gst_video_editor_clear_segments_list (GstVideoEditor * gve) { GList *tmp = NULL; g_return_if_fail (GST_IS_VIDEO_EDITOR (gve)); gst_video_editor_cancel (gve); tmp = gve->priv->gnl_video_filesources; for (; tmp; tmp = g_list_next (tmp)) { GstElement *object = (GstElement *) tmp->data; if (object) gst_element_set_state (object, GST_STATE_NULL); gst_bin_remove (GST_BIN (gve->priv->gnl_video_composition), object); } tmp = gve->priv->gnl_audio_filesources; for (; tmp; tmp = g_list_next (tmp)) { GstElement *object = (GstElement *) tmp->data; if (object) gst_element_set_state (object, GST_STATE_NULL); gst_bin_remove (GST_BIN (gve->priv->gnl_audio_composition), object); } g_list_free (tmp); g_list_free (gve->priv->gnl_video_filesources); g_list_free (gve->priv->gnl_audio_filesources); g_free (gve->priv->stop_times); g_list_free (gve->priv->titles); gve->priv->gnl_video_filesources = NULL; gve->priv->gnl_audio_filesources = NULL; gve->priv->stop_times = (gint64 *) malloc (200 * sizeof (gint64)); gve->priv->titles = NULL; gve->priv->duration = 0; gve->priv->active_segment = 0; } void gst_video_editor_set_video_encoder (GstVideoEditor * gve, gchar ** err, VideoEncoderType codec) { GstElement *encoder = NULL; GstState cur_state; GstPad *srcpad; GstPad *oldsrcpad; gchar *encoder_name = ""; gchar *error; g_return_if_fail (GST_IS_VIDEO_EDITOR (gve)); gst_element_get_state (gve->priv->main_pipeline, &cur_state, NULL, 0); if (cur_state > GST_STATE_READY) goto wrong_state; switch (codec) { case VIDEO_ENCODER_H264: encoder_name = "x264enc"; encoder = gst_element_factory_make (encoder_name, encoder_name); g_object_set (G_OBJECT (encoder), "pass", 17, NULL); //Variable Bitrate-Pass 1 g_object_set (G_OBJECT (encoder), "speed-preset", 4, NULL);//"Faster" preset break; case VIDEO_ENCODER_MPEG4: encoder_name = "xvidenc"; encoder = gst_element_factory_make (encoder_name, encoder_name); g_object_set (G_OBJECT (encoder), "pass", 1, NULL); //Variable Bitrate-Pass 1 break; case VIDEO_ENCODER_XVID: encoder_name = "ffenc_mpeg4"; encoder = gst_element_factory_make (encoder_name, encoder_name); g_object_set (G_OBJECT (encoder), "pass", 512, NULL); //Variable Bitrate-Pass 1 break; case VIDEO_ENCODER_MPEG2: encoder_name = "mpeg2enc"; encoder = gst_element_factory_make (encoder_name, encoder_name); g_object_set (G_OBJECT (encoder), "format", 9, NULL); //DVD compilant g_object_set (G_OBJECT (encoder), "framerate", 3, NULL); //25 FPS (PAL/SECAM) break; case VIDEO_ENCODER_THEORA: encoder_name = "theoraenc"; encoder = gst_element_factory_make (encoder_name, encoder_name); break; case VIDEO_ENCODER_VP8: encoder_name = "vp8enc"; encoder = gst_element_factory_make (encoder_name, encoder_name); g_object_set (G_OBJECT (encoder), "speed", 1, NULL); g_object_set (G_OBJECT (encoder), "threads", 4, NULL); break; } if (!encoder) goto no_encoder; if (!g_strcmp0 (gst_element_get_name (gve->priv->video_encoder), encoder_name)) goto same_encoder; gve->priv->video_encoder_type = codec; /*Remove old encoder element */ gst_element_unlink (gve->priv->queue, gve->priv->video_encoder); gst_element_unlink (gve->priv->vencode_bin, gve->priv->muxer); gst_element_set_state (gve->priv->video_encoder, GST_STATE_NULL); gst_bin_remove (GST_BIN (gve->priv->vencode_bin), gve->priv->video_encoder); /*Add new encoder element */ gve->priv->video_encoder = encoder; if (codec == VIDEO_ENCODER_THEORA || codec == VIDEO_ENCODER_H264) g_object_set (G_OBJECT (gve->priv->video_encoder), "bitrate", gve->priv->video_bitrate, NULL); else g_object_set (G_OBJECT (gve->priv->video_encoder), "bitrate", gve->priv->video_bitrate * 1000, NULL); /*Add first to the encoder bin */ gst_bin_add (GST_BIN (gve->priv->vencode_bin), gve->priv->video_encoder); gst_element_link (gve->priv->queue, gve->priv->video_encoder); /*Remove old encoder bin's src pad */ oldsrcpad = gst_element_get_static_pad (gve->priv->vencode_bin, "src"); gst_pad_set_active (oldsrcpad, FALSE); gst_element_remove_pad (gve->priv->vencode_bin, oldsrcpad); /*Create new encoder bin's src pad */ srcpad = gst_element_get_static_pad (gve->priv->video_encoder, "src"); gst_pad_set_active (srcpad, TRUE); gst_element_add_pad (gve->priv->vencode_bin, gst_ghost_pad_new ("src", srcpad)); gst_element_link (gve->priv->vencode_bin, gve->priv->muxer); gve_rewrite_headers (gve); return; wrong_state: { GST_WARNING ("The video encoder cannot be changed for a state <= GST_STATE_READY"); return; } no_encoder: { error = g_strdup_printf ("The %s encoder element is not avalaible. Check your GStreamer installation", encoder_name); GST_ERROR (error); *err = g_strdup (error); g_free (error); return; } same_encoder: { GST_WARNING ("The video encoder is not changed because it is already in use."); gst_object_unref (encoder); return; } } void gst_video_editor_set_audio_encoder (GstVideoEditor * gve, gchar ** err, AudioEncoderType codec) { GstElement *encoder = NULL; GstState cur_state; GstPad *srcpad; GstPad *oldsrcpad; gchar *encoder_name = ""; gchar *error; g_return_if_fail (GST_IS_VIDEO_EDITOR (gve)); gst_element_get_state (gve->priv->main_pipeline, &cur_state, NULL, 0); if (cur_state > GST_STATE_READY) goto wrong_state; switch (codec) { case AUDIO_ENCODER_AAC: encoder_name = "faac"; encoder = gst_element_factory_make (encoder_name, encoder_name); g_object_set (G_OBJECT (gve->priv->audiocapsfilter), "caps", gst_caps_from_string (FAAC_CAPS), NULL); break; case AUDIO_ENCODER_MP3: encoder_name = "lame"; encoder = gst_element_factory_make (encoder_name, encoder_name); g_object_set (G_OBJECT (encoder), "vbr", 4, NULL); //Variable Bitrate g_object_set (G_OBJECT (gve->priv->audiocapsfilter), "caps", gst_caps_from_string (LAME_CAPS), NULL); break; case AUDIO_ENCODER_VORBIS: encoder_name = "vorbisenc"; encoder = gst_element_factory_make (encoder_name, encoder_name); g_object_set (G_OBJECT (gve->priv->audiocapsfilter), "caps", gst_caps_from_string (VORBIS_CAPS), NULL); break; default: gst_video_editor_set_enable_audio (gve, FALSE); break; } if (!encoder) goto no_encoder; if (!g_strcmp0 (gst_element_get_name (gve->priv->audioencoder), encoder_name)) goto same_encoder; /*Remove old encoder element */ gst_element_unlink (gve->priv->audioqueue, gve->priv->audioencoder); if (gve->priv->audio_enabled) gst_element_unlink (gve->priv->aencode_bin, gve->priv->muxer); gst_element_set_state (gve->priv->audioencoder, GST_STATE_NULL); gst_bin_remove (GST_BIN (gve->priv->aencode_bin), gve->priv->audioencoder); /*Add new encoder element */ gve->priv->audioencoder = encoder; if (codec == AUDIO_ENCODER_MP3) g_object_set (G_OBJECT (gve->priv->audioencoder), "bitrate", gve->priv->audio_bitrate / 1000, NULL); else g_object_set (G_OBJECT (gve->priv->audioencoder), "bitrate", gve->priv->audio_bitrate, NULL); /*Add first to the encoder bin */ gst_bin_add (GST_BIN (gve->priv->aencode_bin), gve->priv->audioencoder); gst_element_link (gve->priv->audioqueue, gve->priv->audioencoder); /*Remove old encoder bin's src pad */ oldsrcpad = gst_element_get_static_pad (gve->priv->aencode_bin, "src"); gst_pad_set_active (oldsrcpad, FALSE); gst_element_remove_pad (gve->priv->aencode_bin, oldsrcpad); /*Create new encoder bin's src pad */ srcpad = gst_element_get_static_pad (gve->priv->audioencoder, "src"); gst_pad_set_active (srcpad, TRUE); gst_element_add_pad (gve->priv->aencode_bin, gst_ghost_pad_new ("src", srcpad)); if (gve->priv->audio_enabled) gst_element_link (gve->priv->aencode_bin, gve->priv->muxer); gve_rewrite_headers (gve); return; wrong_state: { GST_WARNING ("The audio encoder cannot be changed for a state <= GST_STATE_READY"); return; } no_encoder: { error = g_strdup_printf ("The %s encoder element is not avalaible. Check your GStreamer installation", encoder_name); GST_ERROR (error); *err = g_strdup (error); g_free (error); return; } same_encoder: { GST_WARNING ("The audio encoder is not changed because it is already in use."); gst_object_unref (encoder); return; } } void gst_video_editor_set_video_muxer (GstVideoEditor * gve, gchar ** err, VideoMuxerType muxerType) { GstElement *muxer = NULL; GstState cur_state; gchar *muxer_name = ""; gchar *error; g_return_if_fail (GST_IS_VIDEO_EDITOR (gve)); gst_element_get_state (gve->priv->main_pipeline, &cur_state, NULL, 0); if (cur_state > GST_STATE_READY) goto wrong_state; switch (muxerType) { case VIDEO_MUXER_MATROSKA: muxer_name = "matroskamux"; muxer = gst_element_factory_make ("matroskamux", muxer_name); break; case VIDEO_MUXER_AVI: muxer_name = "avimux"; muxer = gst_element_factory_make ("avimux", muxer_name); break; case VIDEO_MUXER_OGG: muxer_name = "oggmux"; muxer = gst_element_factory_make ("oggmux", muxer_name); break; case VIDEO_MUXER_MP4: muxer_name = "qtmux"; muxer = gst_element_factory_make ("qtmux", muxer_name); break; case VIDEO_MUXER_MPEG_PS: muxer_name = "ffmux_dvd"; //We don't want to mux anything yet as ffmux_dvd is buggy //FIXME: Until we don't have audio save the mpeg-ps stream without mux. muxer = gst_element_factory_make ("ffmux_dvd", muxer_name); break; case VIDEO_MUXER_WEBM: muxer_name = "webmmux"; muxer = gst_element_factory_make ("webmmux", muxer_name); break; } if (!muxer) goto no_muxer; if (!g_strcmp0 (gst_element_get_name (gve->priv->muxer), muxer_name)) goto same_muxer; gst_element_unlink (gve->priv->vencode_bin, gve->priv->muxer); if (gve->priv->audio_enabled) gst_element_unlink (gve->priv->aencode_bin, gve->priv->muxer); gst_element_unlink (gve->priv->muxer, gve->priv->file_sink); gst_element_set_state (gve->priv->muxer, GST_STATE_NULL); gst_bin_remove (GST_BIN (gve->priv->main_pipeline), gve->priv->muxer); gst_bin_add (GST_BIN (gve->priv->main_pipeline), muxer); gst_element_link_many (gve->priv->vencode_bin, muxer, gve->priv->file_sink, NULL); if (gve->priv->audio_enabled) gst_element_link (gve->priv->aencode_bin, muxer); gve->priv->muxer = muxer; gve_rewrite_headers (gve); return; wrong_state: { GST_WARNING ("The video muxer cannot be changed for a state <= GST_STATE_READY"); return; } no_muxer: { error = g_strdup_printf ("The %s muxer element is not avalaible. Check your GStreamer installation", muxer_name); GST_ERROR (error); *err = g_strdup (error); g_free (error); return; } same_muxer: { GST_WARNING ("Not changing the video muxer as the new one is the same in use."); gst_object_unref (muxer); return; } } void gst_video_editor_start (GstVideoEditor * gve) { g_return_if_fail (GST_IS_VIDEO_EDITOR (gve)); gst_element_set_state (gve->priv->main_pipeline, GST_STATE_PLAYING); g_signal_emit (gve, gve_signals[SIGNAL_PERCENT_COMPLETED], 0, (gfloat) 0); } void gst_video_editor_cancel (GstVideoEditor * gve) { g_return_if_fail (GST_IS_VIDEO_EDITOR (gve)); if (gve->priv->update_id > 0) { g_source_remove (gve->priv->update_id); gve->priv->update_id = 0; } gst_element_set_state (gve->priv->main_pipeline, GST_STATE_NULL); g_signal_emit (gve, gve_signals[SIGNAL_PERCENT_COMPLETED], 0, (gfloat) - 1); } void gst_video_editor_init_backend (int *argc, char ***argv) { gst_init (argc, argv); } GstVideoEditor * gst_video_editor_new (GError ** err) { GstVideoEditor *gve = NULL; gve = g_object_new (GST_TYPE_VIDEO_EDITOR, NULL); gve->priv->main_pipeline = gst_pipeline_new ("main_pipeline"); if (!gve->priv->main_pipeline) { g_set_error (err, GVC_ERROR, GST_ERROR_PLUGIN_LOAD, ("Failed to create a GStreamer Bin. " "Please check your GStreamer installation.")); g_object_ref_sink (gve); g_object_unref (gve); return NULL; } /* Create elements */ gve->priv->gnl_video_composition = gst_element_factory_make ("gnlcomposition", "gnl-video-composition"); gve->priv->gnl_audio_composition = gst_element_factory_make ("gnlcomposition", "gnl-audio-composition"); if (!gve->priv->gnl_video_composition || !gve->priv->gnl_audio_composition) { g_set_error (err, GVC_ERROR, GST_ERROR_PLUGIN_LOAD, ("Failed to create a Gnonlin element. " "Please check your GStreamer installation.")); g_object_ref_sink (gve); g_object_unref (gve); return NULL; } gve->priv->muxer = gst_element_factory_make (DEFAULT_VIDEO_MUXER, "videomuxer"); gve->priv->file_sink = gst_element_factory_make ("filesink", "filesink"); gve_create_video_encode_bin (gve); gve_create_audio_encode_bin (gve); /* Set elements properties */ g_object_set (G_OBJECT (gve->priv->file_sink), "location", gve->priv->output_file, NULL); /* Link elements */ gst_bin_add_many (GST_BIN (gve->priv->main_pipeline), gve->priv->gnl_video_composition, gve->priv->gnl_audio_composition, gve->priv->vencode_bin, gve->priv->aencode_bin, gve->priv->muxer, gve->priv->file_sink, NULL); gst_element_link_many (gve->priv->vencode_bin, gve->priv->muxer, gve->priv->file_sink, NULL); gst_element_link (gve->priv->aencode_bin, gve->priv->muxer); /*Connect bus signals */ /*Wait for a "new-decoded-pad" message to link the composition with the encoder tail */ gve->priv->bus = gst_element_get_bus (GST_ELEMENT (gve->priv->main_pipeline)); g_signal_connect (gve->priv->gnl_video_composition, "pad-added", G_CALLBACK (new_decoded_pad_cb), gve); g_signal_connect (gve->priv->gnl_audio_composition, "pad-added", G_CALLBACK (new_decoded_pad_cb), gve); gst_bus_add_signal_watch (gve->priv->bus); gve->priv->sig_bus_async = g_signal_connect (gve->priv->bus, "message", G_CALLBACK (gve_bus_message_cb), gve); gst_element_set_state (gve->priv->main_pipeline, GST_STATE_READY); return gve; } longomatch-0.16.8/libcesarplayer/src/bacon-resize.h0000644000175000017500000000362411601631101017177 00000000000000/* bacon-resize.h * Copyright (C) 2003-2004, Bastien Nocera * All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef BACON_RESIZE_H #define BACON_RESIZE_H #include #include #include G_BEGIN_DECLS #define BACON_TYPE_RESIZE (bacon_resize_get_type ()) #define BACON_RESIZE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BACON_TYPE_RESIZE, BaconResize)) #define BACON_RESIZE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BACON_TYPE_RESIZE, BaconResizeClass)) #define BACON_IS_RESIZE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BACON_TYPE_RESIZE)) #define BACON_IS_RESIZE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BACON_TYPE_RESIZE)) typedef struct BaconResize BaconResize; typedef struct BaconResizeClass BaconResizeClass; typedef struct BaconResizePrivate BaconResizePrivate; struct BaconResize { GObject parent; BaconResizePrivate *priv; }; struct BaconResizeClass { GObjectClass parent_class; }; GType bacon_resize_get_type (void); BaconResize *bacon_resize_new (GtkWidget * video_widget); void bacon_resize_resize (BaconResize * resize); void bacon_resize_restore (BaconResize * resize); G_END_DECLS #endif /* BACON_RESIZE_H */ longomatch-0.16.8/libcesarplayer/src/bacon-resize.c0000644000175000017500000002234111601631101017167 00000000000000/* bacon-resize.c * Copyright (C) 2003-2004, Bastien Nocera * All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "bacon-resize.h" #include #ifdef HAVE_XVIDMODE #include #include #include #include #include #include #include #include #endif static void bacon_resize_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static void bacon_resize_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); #ifdef HAVE_XVIDMODE static void bacon_resize_finalize (GObject * object); #endif /* HAVE_XVIDMODE */ static void set_video_widget (BaconResize * resize, GtkWidget * video_widget); struct BaconResizePrivate { gboolean have_xvidmode; gboolean resized; GtkWidget *video_widget; #ifdef HAVE_XVIDMODE /* XRandR */ XRRScreenConfiguration *xr_screen_conf; XRRScreenSize *xr_sizes; Rotation xr_current_rotation; SizeID xr_original_size; #endif }; enum { PROP_HAVE_XVIDMODE = 1, PROP_VIDEO_WIDGET }; G_DEFINE_TYPE (BaconResize, bacon_resize, G_TYPE_OBJECT) static void bacon_resize_class_init (BaconResizeClass * klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); g_type_class_add_private (klass, sizeof (BaconResizePrivate)); object_class->set_property = bacon_resize_set_property; object_class->get_property = bacon_resize_get_property; #ifdef HAVE_XVIDMODE object_class->finalize = bacon_resize_finalize; #endif /* HAVE_XVIDMODE */ g_object_class_install_property (object_class, PROP_HAVE_XVIDMODE, g_param_spec_boolean ("have-xvidmode", NULL, NULL, FALSE, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_VIDEO_WIDGET, g_param_spec_object ("video-widget", "video-widget", "The related video widget", GTK_TYPE_WIDGET, G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); } static void bacon_resize_init (BaconResize * resize) { resize->priv = G_TYPE_INSTANCE_GET_PRIVATE (resize, BACON_TYPE_RESIZE, BaconResizePrivate); resize->priv->have_xvidmode = FALSE; resize->priv->resized = FALSE; } BaconResize * bacon_resize_new (GtkWidget * video_widget) { return BACON_RESIZE (g_object_new (BACON_TYPE_RESIZE, "video-widget", video_widget, NULL)); } #ifdef HAVE_XVIDMODE static void bacon_resize_finalize (GObject * object) { BaconResize *self = BACON_RESIZE (object); g_signal_handlers_disconnect_by_func (self->priv->video_widget, screen_changed_cb, self); G_OBJECT_CLASS (bacon_resize_parent_class)->finalize (object); } #endif /* HAVE_XVIDMODE */ static void bacon_resize_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { switch (property_id) { case PROP_VIDEO_WIDGET: set_video_widget (BACON_RESIZE (object), GTK_WIDGET (g_value_get_object (value))); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } } static void bacon_resize_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { switch (property_id) { case PROP_HAVE_XVIDMODE: g_value_set_boolean (value, BACON_RESIZE (object)->priv->have_xvidmode); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } } static void set_video_widget (BaconResize * resize, GtkWidget * video_widget) { #ifdef HAVE_XVIDMODE GdkDisplay *display; GdkScreen *screen; int event_basep, error_basep; XRRScreenConfiguration *xr_screen_conf; #endif g_return_if_fail (GTK_WIDGET_REALIZED (video_widget)); resize->priv->video_widget = video_widget; #ifdef HAVE_XVIDMODE display = gtk_widget_get_display (video_widget); screen = gtk_widget_get_screen (video_widget); g_signal_connect (G_OBJECT (video_widget), "screen-changed", G_CALLBACK (screen_changed_cb), resize); XLockDisplay (GDK_DISPLAY_XDISPLAY (display)); if (!XF86VidModeQueryExtension (GDK_DISPLAY_XDISPLAY (display), &event_basep, &error_basep)) goto bail; if (!XRRQueryExtension (GDK_DISPLAY_XDISPLAY (display), &event_basep, &error_basep)) goto bail; /* We don't use the output here, checking whether XRRGetScreenInfo works */ xr_screen_conf = XRRGetScreenInfo (GDK_DISPLAY_XDISPLAY (display), GDK_WINDOW_XWINDOW (gdk_screen_get_root_window (screen))); if (xr_screen_conf == NULL) goto bail; XRRFreeScreenConfigInfo (xr_screen_conf); XUnlockDisplay (GDK_DISPLAY_XDISPLAY (display)); resize->priv->have_xvidmode = TRUE; return; bail: XUnlockDisplay (GDK_DISPLAY_XDISPLAY (display)); resize->priv->have_xvidmode = FALSE; #endif /* HAVE_XVIDMODE */ } void bacon_resize_resize (BaconResize * resize) { #ifdef HAVE_XVIDMODE int width, height, i, xr_nsize, res, dotclock; XF86VidModeModeLine modeline; XRRScreenSize *xr_sizes; gboolean found = FALSE; GdkWindow *root; GdkScreen *screen; Display *Display; g_return_if_fail (GTK_IS_WIDGET (resize->priv->video_widget)); g_return_if_fail (GTK_WIDGET_REALIZED (resize->priv->video_widget)); Display = GDK_DRAWABLE_XDISPLAY (resize->priv->video_widget->window); if (Display == NULL) return; XLockDisplay (Display); screen = gtk_widget_get_screen (resize->priv->video_widget); root = gdk_screen_get_root_window (screen); /* XF86VidModeGetModeLine just doesn't work nicely with multiple monitors */ if (gdk_screen_get_n_monitors (screen) > 1) goto bail; res = XF86VidModeGetModeLine (Display, GDK_SCREEN_XNUMBER (screen), &dotclock, &modeline); if (!res) goto bail; /* Check if there's a viewport */ width = gdk_screen_get_width (screen); height = gdk_screen_get_height (screen); if (width <= modeline.hdisplay && height <= modeline.vdisplay) goto bail; gdk_error_trap_push (); /* Find the XRandR mode that corresponds to the real size */ resize->priv->xr_screen_conf = XRRGetScreenInfo (Display, GDK_WINDOW_XWINDOW (root)); xr_sizes = XRRConfigSizes (resize->priv->xr_screen_conf, &xr_nsize); resize->priv->xr_original_size = XRRConfigCurrentConfiguration (resize->priv->xr_screen_conf, &(resize->priv->xr_current_rotation)); if (gdk_error_trap_pop ()) { g_warning ("XRRConfigSizes or XRRConfigCurrentConfiguration failed"); goto bail; } for (i = 0; i < xr_nsize; i++) { if (modeline.hdisplay == xr_sizes[i].width && modeline.vdisplay == xr_sizes[i].height) { found = TRUE; break; } } if (!found) goto bail; gdk_error_trap_push (); XRRSetScreenConfig (Display, resize->priv->xr_screen_conf, GDK_WINDOW_XWINDOW (root), (SizeID) i, resize->priv->xr_current_rotation, CurrentTime); gdk_flush (); if (gdk_error_trap_pop ()) g_warning ("XRRSetScreenConfig failed"); else resize->priv->resized = TRUE; bail: XUnlockDisplay (Display); #endif /* HAVE_XVIDMODE */ } void bacon_resize_restore (BaconResize * resize) { #ifdef HAVE_XVIDMODE int width, height, res, dotclock; XF86VidModeModeLine modeline; GdkWindow *root; GdkScreen *screen; Display *Display; g_return_if_fail (GTK_IS_WIDGET (resize->priv->video_widget)); g_return_if_fail (GTK_WIDGET_REALIZED (resize->priv->video_widget)); /* We haven't called bacon_resize_resize before, or it exited * as we didn't need a resize. */ if (resize->priv->xr_screen_conf == NULL) return; Display = GDK_DRAWABLE_XDISPLAY (resize->priv->video_widget->window); if (Display == NULL) return; XLockDisplay (Display); screen = gtk_widget_get_screen (resize->priv->video_widget); root = gdk_screen_get_root_window (screen); res = XF86VidModeGetModeLine (Display, GDK_SCREEN_XNUMBER (screen), &dotclock, &modeline); if (!res) goto bail; /* Check if there's a viewport */ width = gdk_screen_get_width (screen); height = gdk_screen_get_height (screen); if (width > modeline.hdisplay && height > modeline.vdisplay) goto bail; gdk_error_trap_push (); XRRSetScreenConfig (Display, resize->priv->xr_screen_conf, GDK_WINDOW_XWINDOW (root), resize->priv->xr_original_size, resize->priv->xr_current_rotation, CurrentTime); gdk_flush (); if (gdk_error_trap_pop ()) g_warning ("XRRSetScreenConfig failed"); else resize->priv->resized = FALSE; XRRFreeScreenConfigInfo (resize->priv->xr_screen_conf); resize->priv->xr_screen_conf = NULL; bail: XUnlockDisplay (Display); #endif } longomatch-0.16.8/libcesarplayer/src/gstscreenshot.c0000644000175000017500000001423511601631101017504 00000000000000/* Small helper element for format conversion * (c) 2004 Ronald Bultje * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #include "gstscreenshot.h" GST_DEBUG_CATEGORY_EXTERN (_totem_gst_debug_cat); #define GST_CAT_DEFAULT _totem_gst_debug_cat static void feed_fakesrc (GstElement * src, GstBuffer * buf, GstPad * pad, gpointer data) { GstBuffer *in_buf = GST_BUFFER (data); g_assert (GST_BUFFER_SIZE (buf) >= GST_BUFFER_SIZE (in_buf)); g_assert (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_READONLY)); gst_buffer_set_caps (buf, GST_BUFFER_CAPS (in_buf)); memcpy (GST_BUFFER_DATA (buf), GST_BUFFER_DATA (in_buf), GST_BUFFER_SIZE (in_buf)); GST_BUFFER_SIZE (buf) = GST_BUFFER_SIZE (in_buf); GST_DEBUG ("feeding buffer %p, size %u, caps %" GST_PTR_FORMAT, buf, GST_BUFFER_SIZE (buf), GST_BUFFER_CAPS (buf)); } static void save_result (GstElement * sink, GstBuffer * buf, GstPad * pad, gpointer data) { GstBuffer **p_buf = (GstBuffer **) data; *p_buf = gst_buffer_ref (buf); GST_DEBUG ("received converted buffer %p with caps %" GST_PTR_FORMAT, *p_buf, GST_BUFFER_CAPS (*p_buf)); } static gboolean create_element (const gchar * factory_name, GstElement ** element, GError ** err) { *element = gst_element_factory_make (factory_name, NULL); if (*element) return TRUE; if (err && *err == NULL) { *err = g_error_new (GST_CORE_ERROR, GST_CORE_ERROR_MISSING_PLUGIN, "cannot create element '%s' - please check your GStreamer installation", factory_name); } return FALSE; } /* takes ownership of the input buffer */ GstBuffer * bvw_frame_conv_convert (GstBuffer * buf, GstCaps * to_caps) { GstElement *src, *csp, *filter1, *vscale, *filter2, *sink, *pipeline; GstMessage *msg; GstBuffer *result = NULL; GError *error = NULL; GstBus *bus; GstCaps *to_caps_no_par; g_return_val_if_fail (GST_BUFFER_CAPS (buf) != NULL, NULL); /* videoscale is here to correct for the pixel-aspect-ratio for us */ GST_DEBUG ("creating elements"); if (!create_element ("fakesrc", &src, &error) || !create_element ("ffmpegcolorspace", &csp, &error) || !create_element ("videoscale", &vscale, &error) || !create_element ("capsfilter", &filter1, &error) || !create_element ("capsfilter", &filter2, &error) || !create_element ("fakesink", &sink, &error)) { g_warning ("Could not take screenshot: %s", error->message); g_error_free (error); return NULL; } pipeline = gst_pipeline_new ("screenshot-pipeline"); if (pipeline == NULL) { g_warning ("Could not take screenshot: %s", "no pipeline (unknown error)"); return NULL; } GST_DEBUG ("adding elements"); gst_bin_add_many (GST_BIN (pipeline), src, csp, filter1, vscale, filter2, sink, NULL); g_signal_connect (src, "handoff", G_CALLBACK (feed_fakesrc), buf); /* set to 'fixed' sizetype */ g_object_set (src, "sizemax", GST_BUFFER_SIZE (buf), "sizetype", 2, "num-buffers", 1, "signal-handoffs", TRUE, NULL); /* adding this superfluous capsfilter makes linking cheaper */ to_caps_no_par = gst_caps_copy (to_caps); gst_structure_remove_field (gst_caps_get_structure (to_caps_no_par, 0), "pixel-aspect-ratio"); g_object_set (filter1, "caps", to_caps_no_par, NULL); gst_caps_unref (to_caps_no_par); g_object_set (filter2, "caps", to_caps, NULL); g_signal_connect (sink, "handoff", G_CALLBACK (save_result), &result); g_object_set (sink, "preroll-queue-len", 1, "signal-handoffs", TRUE, NULL); /* FIXME: linking is still way too expensive, profile this properly */ GST_DEBUG ("linking src->csp"); if (!gst_element_link_pads (src, "src", csp, "sink")) return NULL; GST_DEBUG ("linking csp->filter1"); if (!gst_element_link_pads (csp, "src", filter1, "sink")) return NULL; GST_DEBUG ("linking filter1->vscale"); if (!gst_element_link_pads (filter1, "src", vscale, "sink")) return NULL; GST_DEBUG ("linking vscale->capsfilter"); if (!gst_element_link_pads (vscale, "src", filter2, "sink")) return NULL; GST_DEBUG ("linking capsfilter->sink"); if (!gst_element_link_pads (filter2, "src", sink, "sink")) return NULL; GST_DEBUG ("running conversion pipeline"); gst_element_set_state (pipeline, GST_STATE_PLAYING); bus = gst_element_get_bus (pipeline); msg = gst_bus_poll (bus, GST_MESSAGE_ERROR | GST_MESSAGE_EOS, 25 * GST_SECOND); if (msg) { switch (GST_MESSAGE_TYPE (msg)) { case GST_MESSAGE_EOS: { if (result) { GST_DEBUG ("conversion successful: result = %p", result); } else { GST_WARNING ("EOS but no result frame?!"); } break; } case GST_MESSAGE_ERROR: { gchar *dbg = NULL; gst_message_parse_error (msg, &error, &dbg); if (error) { g_warning ("Could not take screenshot: %s", error->message); GST_DEBUG ("%s [debug: %s]", error->message, GST_STR_NULL (dbg)); g_error_free (error); } else { g_warning ("Could not take screenshot (and NULL error!)"); } g_free (dbg); result = NULL; break; } default: { g_return_val_if_reached (NULL); } } } else { g_warning ("Could not take screenshot: %s", "timeout during conversion"); result = NULL; } gst_element_set_state (pipeline, GST_STATE_NULL); gst_object_unref (pipeline); return result; } longomatch-0.16.8/libcesarplayer/src/macros.h0000644000175000017500000000232711601631101016101 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* * Copyright (C) 2006 Peter Johanson * * 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 * Foundation, Inc., 51 Franklin St, Fifth Floor, * Boston, MA 02110-1301, USA. */ #ifndef __MACROS_H__ #define __MACROS_H__ #if BUILDING_DLL # define DLLIMPORT __declspec (dllexport) #else /* Not BUILDING_DLL */ # define DLLIMPORT __declspec (dllimport) #endif /* Not BUILDING_DLL */ #ifdef UNUSED #elif defined(__GNUC__) # define UNUSED(x) UNUSED_ ##x __attribute__((unused)) #elif defined(__LCLINT__) # define UNUSED(x) /*@unused@*/ x #else # define UNUSED(x) x #endif #endif /* __MACROS_H__ */ longomatch-0.16.8/libcesarplayer/src/baconvideowidget-marshal.h0000644000175000017500000000540411601631301021560 00000000000000 #ifndef __baconvideowidget_marshal_MARSHAL_H__ #define __baconvideowidget_marshal_MARSHAL_H__ #include G_BEGIN_DECLS /* VOID:INT64,INT64,DOUBLE,BOOLEAN (./baconvideowidget-marshal.list:1) */ extern void baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); /* VOID:STRING,BOOLEAN,BOOLEAN (./baconvideowidget-marshal.list:2) */ extern void baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); /* BOOLEAN:BOXED,BOXED,BOOLEAN (./baconvideowidget-marshal.list:3) */ extern void baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); /* VOID:INT64,INT64,FLOAT,BOOLEAN (./baconvideowidget-marshal.list:4) */ extern void baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); G_END_DECLS #endif /* __baconvideowidget_marshal_MARSHAL_H__ */ longomatch-0.16.8/libcesarplayer/Makefile.in0000644000175000017500000004371711601631265015745 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = libcesarplayer DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@ CESARPLAYER_LIBS = @CESARPLAYER_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DB4O_CFLAGS = @DB4O_CFLAGS@ DB4O_LIBS = @DB4O_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = src all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libcesarplayer/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libcesarplayer/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive dist-hook distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Copy all the spec files. Of cource, only one is actually used. dist-hook: for specfile in *.spec; do \ if test -f $$specfile; then \ cp -p $$specfile $(distdir); \ fi \ done # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: longomatch-0.16.8/libcesarplayer/Makefile.am0000644000175000017500000000043211601631101015704 00000000000000## Process this file with automake to produce Makefile.in ## Created by Anjuta SUBDIRS = src # Copy all the spec files. Of cource, only one is actually used. dist-hook: for specfile in *.spec; do \ if test -f $$specfile; then \ cp -p $$specfile $(distdir); \ fi \ done longomatch-0.16.8/expansions.m40000644000175000017500000000146611601631101013310 00000000000000AC_DEFUN([SHAMROCK_EXPAND_LIBDIR], [ expanded_libdir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $libdir )` AC_SUBST(expanded_libdir) ]) AC_DEFUN([SHAMROCK_EXPAND_BINDIR], [ expanded_bindir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $bindir )` AC_SUBST(expanded_bindir) ]) AC_DEFUN([SHAMROCK_EXPAND_DATADIR], [ case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac expanded_datadir=`(eval echo $datadir)` expanded_datadir=`(eval echo $expanded_datadir)` AC_SUBST(expanded_datadir) ]) longomatch-0.16.8/COPYING0000644000175000017500000000124111601631101011701 00000000000000This 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 longomatch-0.16.8/ChangeLog0000644000175000017500000157474311601631301012451 00000000000000Sun May 29 14:37:00 2011 +0200 Andoni Morales Alastruey *Add desktop files to DISTCLEAN build/build.rules.mk | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sun May 29 14:09:10 2011 +0200 Andoni Morales Alastruey *Clean .config files properly in dist clean CesarPlayer/Makefile.am | 4 +++- build/build.rules.mk | 5 ++++- build/dll-map-makefile-verifier | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) Sun May 29 13:35:19 2011 +0200 Andoni Morales Alastruey *Add logo to EXTRA_DIST build/build.rules.mk | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Thu May 26 01:21:01 2011 +0200 Julian Taylor *use only one variable for the compiler check configure.ac | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) Wed May 25 23:10:04 2011 +0200 Andoni Morales Alastruey *Fix compilation error LongoMatch/Gui/TreeView/PlaysTreeView.cs | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Wed May 25 23:05:15 2011 +0200 Andoni Morales Alastruey *Clean up autotools and add check for C# 4.0 CesarPlayer/Makefile.am | 82 ++---------- LongoMatch/Makefile.am | 139 +++----------------- Makefile.am | 13 +-- autogen.sh | 3 +- build/DllMapVerifier.cs | 258 ++++++++++++++++++++++++++++++++++++ build/Makefile.am | 19 +++ build/build.environment.mk | 40 ++++++ build/build.mk | 3 + build/build.rules.mk | 100 ++++++++++++++ build/dll-map-makefile-verifier | 10 ++ build/icon-theme-installer | 177 ++++++++++++++++++++++++ build/m4/Makefile.am | 6 + build/m4/shamrock/expansions.m4 | 50 +++++++ build/m4/shamrock/gnome-doc.m4 | 23 +++ build/m4/shamrock/i18n.m4 | 10 ++ build/m4/shamrock/mono.m4 | 120 +++++++++++++++++ build/m4/shamrock/monodoc.m4 | 25 ++++ build/m4/shamrock/nunit.m4 | 29 ++++ build/m4/shamrock/programs.m4 | 13 ++ build/m4/shamrock/util.m4 | 11 ++ build/m4/shave/shave-libtool.in | 109 +++++++++++++++ build/m4/shave/shave.in | 109 +++++++++++++++ build/m4/shave/shave.m4 | 102 ++++++++++++++ build/private-icon-theme-installer | 23 +++ configure.ac | 118 +++++++--------- 25 files changed, 1318 insertions(+), 274 deletions(-) Tue May 17 21:46:10 2011 +0200 Andoni Morales Alastruey *Bump release 0.16.8 NEWS | 15 +++++++++++++++ RELEASE | 8 ++++---- configure.ac | 2 +- 3 files changed, 20 insertions(+), 5 deletions(-) Tue May 17 21:40:08 2011 +0200 Andoni Morales Alastruey *Increase speed settings for the capture encoders libcesarplayer/src/gst-camera-capturer.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Tue May 17 21:20:19 2011 +0200 Andoni Morales Alastruey *Increase encoding speed settings libcesarplayer/src/gst-video-editor.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) Tue May 17 21:07:00 2011 +0200 Andoni Morales Alastruey *Add gui updates LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 4 +- LongoMatch/gtk-gui/gui.stetic | 11 +++++---- LongoMatch/gtk-gui/objects.xml | 28 +++++++++++----------- 3 files changed, 22 insertions(+), 21 deletions(-) Sun Apr 17 21:40:17 2011 +0200 Andoni Morales Alastruey *Bump release 0.16.7 NEWS | 7 +++++++ RELEASE | 13 ++++--------- configure.ac | 2 +- 3 files changed, 12 insertions(+), 10 deletions(-) Sun Apr 17 21:35:53 2011 +0200 Andoni Morales Alastruey *Add back the GST_PLUGIN_PATH env in win32 LongoMatch/Main.cs | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) Sun Apr 17 21:00:06 2011 +0200 Andoni Morales Alastruey *Set more reallistic limits to weight and height .../LongoMatch.Gui.Component.PlayerProperties.cs | 8 ++++---- LongoMatch/gtk-gui/gui.stetic | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) Sun Apr 17 20:43:04 2011 +0200 Andoni Morales Alastruey *Fix environment initialization LongoMatch/Main.cs | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Thu Apr 14 00:30:18 2011 +0200 Andoni Morales Alastruey *Update win32 makefile Makefile.win32 | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) Sun Apr 10 18:51:04 2011 +0200 Andoni Morales Alastruey *Bump version 0.16.6 NEWS | 13 +++++++++++++ RELEASE | 14 +++++++++----- configure.ac | 2 +- 3 files changed, 23 insertions(+), 6 deletions(-) Thu Apr 14 00:03:33 2011 +0200 Andoni Morales Alastruey *Add Barkın Tanman to the list of translators LongoMatch/Common/Constants.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Thu Apr 14 00:02:16 2011 +0200 Barkın Tanman *Add turkish translation po/LINGUAS | 1 + po/tr.po | 1363 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1364 insertions(+), 0 deletions(-) Sun Apr 10 23:44:00 2011 +0200 Andoni Morales Alastruey *Add support for a portable version that don't require installation LongoMatch/Common/Constants.cs | 2 + LongoMatch/Main.cs | 49 +++++++++++++++++---------------------- 2 files changed, 23 insertions(+), 28 deletions(-) Sun Apr 10 18:37:18 2011 +0200 Andoni Morales Alastruey *Fix players selection due to wrong indexing LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs | 17 ++++++++--------- 1 files changed, 8 insertions(+), 9 deletions(-) Sun Apr 10 17:50:15 2011 +0200 Andoni Morales Alastruey *Create win32 valid filenames to save projects LongoMatch/Gui/MainWindow.cs | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) Sun Apr 10 17:26:13 2011 +0200 Andoni Morales Alastruey *Use the last frame instead of seeking LongoMatch/Handlers/EventsManager.cs | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-) Thu Feb 10 00:02:03 2011 +0100 Andoni Morales Alastruey *Bump version to 0.16.5 NEWS | 8 ++++++++ RELEASE | 15 +++++---------- configure.ac | 2 +- 3 files changed, 14 insertions(+), 11 deletions(-) Sun Mar 13 12:16:10 2011 +0100 Joe Hansen *Updated Danish translation po/da.po | 412 ++++++++++++++++++++++++++++++++------------------------------ 1 files changed, 214 insertions(+), 198 deletions(-) Sun Feb 6 14:17:31 2011 +0100 Andoni Morales Alastruey *Fix drawing of selected category LongoMatch/Gui/Component/TimeScale.cs | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) Sun Feb 6 13:50:37 2011 +0100 Andoni Morales Alastruey *Add missing file LongoMatch/Gui/Component/CategoriesScale.cs | 95 +++++++++++++++++++++++++++ 1 files changed, 95 insertions(+), 0 deletions(-) Sun Feb 6 01:07:18 2011 +0100 Andoni Morales Alastruey *Merge branch 'timeline' Sun Feb 6 01:03:26 2011 +0100 Andoni Morales Alastruey *Make use of the new cairo helpers LongoMatch/Gui/Component/TimeReferenceWidget.cs | 72 +++++++++-------------- LongoMatch/Gui/Component/TimeScale.cs | 71 +++++------------------ 2 files changed, 43 insertions(+), 100 deletions(-) Sun Feb 6 01:01:14 2011 +0100 Andoni Morales Alastruey *Add helpers for Cairo LongoMatch/Common/Cairo.cs | 81 ++++++++++++++++++++++++++++++++++++++++++++ LongoMatch/Makefile.am | 2 + 2 files changed, 83 insertions(+), 0 deletions(-) Sun Feb 6 01:05:01 2011 +0100 Andoni Morales Alastruey *Add fixed categories and time to the timeline widget LongoMatch/Gui/Component/TimeLineWidget.cs | 52 +++++- LongoMatch/Gui/Component/TimeReferenceWidget.cs | 36 +++- LongoMatch/LongoMatch.mdp | 24 ++-- .../LongoMatch.Gui.Component.TimeLineWidget.cs | 178 ++++++++++++++------ LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 1 - LongoMatch/gtk-gui/gui.stetic | 169 ++++++++++++++----- LongoMatch/gtk-gui/objects.xml | 116 +++++++++---- 7 files changed, 409 insertions(+), 167 deletions(-) Mon Jan 31 23:45:05 2011 +0100 Andoni Morales Alastruey *Call gdk_window_show for the video window in the expose callback libcesarplayer/src/gst-camera-capturer.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Wed Jan 12 12:21:00 2011 -0200 Djavan Fagundes *Added Brazilian Portuguese translation po/LINGUAS | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Wed Jan 12 12:19:51 2011 -0200 Gabriel F. Vilar *Added Brazilian Portuguese translation po/pt_BR.po | 1338 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1338 insertions(+), 0 deletions(-) Thu Dec 16 20:20:48 2010 +0100 Mario Blättermann *[l10n] Updated German translation po/de.po | 384 +++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 202 insertions(+), 182 deletions(-) Sat Dec 11 00:21:14 2010 +0100 Marcos Lans *Updated Galician translations po/gl.po | 646 ++++++++++++++++++++++++++++++++++---------------------------- 1 files changed, 350 insertions(+), 296 deletions(-) Tue Nov 30 23:36:16 2010 +0100 Jorge González *Updated Spanish translation po/es.po | 388 +++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 206 insertions(+), 182 deletions(-) Wed Nov 24 21:46:17 2010 +0100 Bruno Brouard *Updated French translation po/fr.po | 407 +++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 216 insertions(+), 191 deletions(-) Fri Nov 19 14:07:33 2010 +0100 Marek Černocký *Updated Czech translation po/cs.po | 23 +++++++++++------------ 1 files changed, 11 insertions(+), 12 deletions(-) Tue Nov 16 20:58:50 2010 +0100 Andoni Morales Alastruey *Update win32 Makefile Makefile.win32 | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) Tue Nov 16 20:48:27 2010 +0100 Andoni Morales Alastruey *Bump version 0.16.4 NEWS | 13 +++++++++++++ RELEASE | 15 +++++++++++---- configure.ac | 2 +- 3 files changed, 25 insertions(+), 5 deletions(-) Tue Nov 16 20:26:21 2010 +0100 Andoni Morales Alastruey *Fix hang adding a new play from the timeline when a play is loaded LongoMatch/Handlers/EventsManager.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Tue Nov 16 19:39:27 2010 +0100 Petr Kovar *Update Czech translation by Marek Cernocky po/cs.po | 385 +++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 203 insertions(+), 182 deletions(-) Tue Nov 16 14:53:41 2010 +0100 Matej Urbančič *Updated Slovenian translation po/sl.po | 70 ++++++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 50 insertions(+), 20 deletions(-) Sun Nov 14 16:48:53 2010 +0100 Andoni Morales Alastruey *Only show players from a team template that are actually playing LongoMatch/DB/Project.cs | 28 ++++++++++++++++++----- LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs | 15 +++++++----- 2 files changed, 31 insertions(+), 12 deletions(-) Sat Nov 13 23:08:40 2010 +0100 Andoni Morales Alastruey *Invert the position of the preview and the despcription in the plays list LongoMatch/Gui/TreeView/ListTreeViewBase.cs | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Sat Nov 13 18:23:30 2010 +0100 Andoni Morales Alastruey *Order players by number instead of name LongoMatch/Gui/TreeView/PlayersTreeView.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Fri Nov 12 00:16:07 2010 +0100 Andoni Morales Alastruey *Add a new property to choose whether a player is to be shown in the players list LongoMatch/DB/TeamTemplate.cs | 2 +- LongoMatch/Gui/Component/PlayerProperties.cs | 8 + .../Gui/TreeView/PlayerPropertiesTreeView.cs | 14 ++ LongoMatch/Time/Player.cs | 19 +++- .../LongoMatch.Gui.Component.PlayerProperties.cs | 135 ++++++++++++-------- .../LongoMatch.Gui.Dialog.EditPlayerDialog.cs | 4 +- LongoMatch/gtk-gui/gui.stetic | 106 +++++++++++----- LongoMatch/gtk-gui/objects.xml | 16 +- 8 files changed, 208 insertions(+), 96 deletions(-) Sat Nov 13 11:29:09 2010 +0100 Matej Urbančič *Updated Slovenian translation po/sl.po | 352 +++++++++++++++++++++++++++++++------------------------------- 1 files changed, 176 insertions(+), 176 deletions(-) Thu Nov 11 23:29:50 2010 +0100 Andoni Morales Alastruey *Fix typos LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 3 ++- LongoMatch/Handlers/EventsManager.cs | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) Tue Nov 9 21:55:21 2010 +0100 Andoni Morales Alastruey *Bump version 0.16.3 NEWS | 6 ++++++ RELEASE | 13 ++++--------- configure.ac | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) Tue Nov 9 02:01:15 2010 +0100 Andoni Morales Alastruey *Connect back a some singnal removed by the stetic designer ...ngoMatch.Gui.Component.ProjectTemplateWidget.cs | 2 + LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 2 + LongoMatch/gtk-gui/objects.xml | 42 -------------------- 4 files changed, 5 insertions(+), 43 deletions(-) Mon Nov 8 01:23:28 2010 +0100 Andoni Morales Alastruey *Update GUI files for new Stetic LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 2 +- LongoMatch/Gui/Component/TagsTreeWidget.cs | 2 +- LongoMatch/Gui/Popup/MessagePopup.cs | 2 +- LongoMatch/Main.cs | 2 +- LongoMatch/Utils/ProjectUtils.cs | 2 +- .../LongoMatch.Gui.Component.ButtonsWidget.cs | 132 +-- .../LongoMatch.Gui.Component.CategoryProperties.cs | 364 +++--- .../LongoMatch.Gui.Component.DrawingToolBox.cs | 652 +++++----- .../LongoMatch.Gui.Component.DrawingWidget.cs | 90 +- .../LongoMatch.Gui.Component.NotesWidget.cs | 130 +-- .../LongoMatch.Gui.Component.PlayListWidget.cs | 430 ++++---- .../LongoMatch.Gui.Component.PlayerProperties.cs | 604 +++++----- ...ngoMatch.Gui.Component.PlayersListTreeWidget.cs | 72 +- ...LongoMatch.Gui.Component.PlaysListTreeWidget.cs | 78 +- ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 1286 ++++++++++---------- .../LongoMatch.Gui.Component.ProjectListWidget.cs | 164 ++-- ...ngoMatch.Gui.Component.ProjectTemplateWidget.cs | 450 ++++---- .../LongoMatch.Gui.Component.TaggerWidget.cs | 228 ++-- .../LongoMatch.Gui.Component.TagsTreeWidget.cs | 246 ++-- .../LongoMatch.Gui.Component.TeamTemplateWidget.cs | 94 +- .../LongoMatch.Gui.Component.TimeAdjustWidget.cs | 184 ++-- .../LongoMatch.Gui.Component.TimeLineWidget.cs | 210 ++-- .../gtk-gui/LongoMatch.Gui.Dialog.BusyDialog.cs | 112 +- .../gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs | 314 +++--- .../LongoMatch.Gui.Dialog.EditCategoryDialog.cs | 118 +- .../LongoMatch.Gui.Dialog.EditPlayerDialog.cs | 122 +- .../LongoMatch.Gui.Dialog.EndCaptureDialog.cs | 374 +++--- .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 340 +++--- ...Match.Gui.Dialog.FramesCaptureProgressDialog.cs | 198 ++-- .../LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs | 122 +- .../gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs | 382 +++--- .../LongoMatch.Gui.Dialog.NewProjectDialog.cs | 162 ++-- .../LongoMatch.Gui.Dialog.OpenProjectDialog.cs | 158 ++-- ...LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs | 154 ++-- ...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs | 366 +++--- ...Match.Gui.Dialog.ProjectTemplateEditorDialog.cs | 126 +- .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 422 ++++---- .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 294 +++--- .../gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs | 120 +- .../LongoMatch.Gui.Dialog.TeamTemplateEditor.cs | 124 +- .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 424 ++++---- .../gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs | 218 ++-- ...LongoMatch.Gui.Dialog.VideoEditionProperties.cs | 550 ++++----- .../LongoMatch.Gui.Dialog.Win32CalendarDialog.cs | 128 +- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 898 +++++++------- .../gtk-gui/LongoMatch.Gui.Popup.CalendarPopup.cs | 82 +- .../LongoMatch.Gui.Popup.TransparentDrawingArea.cs | 80 +- LongoMatch/gtk-gui/generated.cs | 235 ++-- LongoMatch/gtk-gui/objects.xml | 84 +- 49 files changed, 5898 insertions(+), 6233 deletions(-) Tue Nov 9 21:22:13 2010 +0100 Joe Hansen *Updated Danish translation po/da.po | 872 ++++++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 558 insertions(+), 314 deletions(-) Mon Nov 8 21:46:55 2010 +0100 Petr Kovar *Update Czech translation by Marek Cernocky po/cs.po | 14 ++++++-------- 1 files changed, 6 insertions(+), 8 deletions(-) Mon Nov 8 13:06:08 2010 +0100 Marek Černocký *Updated Czech translation po/cs.po | 113 ++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 59 insertions(+), 54 deletions(-) Mon Nov 8 00:43:35 2010 +0100 Jorge González *Updated Spanish translation po/es.po | 124 ++++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 69 insertions(+), 55 deletions(-) Sun Nov 7 16:40:20 2010 +0100 Mario Blättermann *[l10n] Updated German translation po/de.po | 124 ++++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 69 insertions(+), 55 deletions(-) Sat Nov 6 16:44:28 2010 +0100 Andoni Morales Alastruey *Bump version 0.16.2 NEWS | 13 +++++++++++++ RELEASE | 16 ++++++++-------- configure.ac | 2 +- debian/changelog | 12 +++--------- 4 files changed, 25 insertions(+), 18 deletions(-) Sat Nov 6 16:23:21 2010 +0100 Andoni Morales Alastruey *Add helper script to automate build of debian packages deb-pkg.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 43 insertions(+), 0 deletions(-) Sat Nov 6 15:38:46 2010 +0100 Matej Urbančič *Updated Slovenian translation po/sl.po | 67 ++++++++++++++++++++++++++++--------------------------------- 1 files changed, 31 insertions(+), 36 deletions(-) Sat Nov 6 12:48:29 2010 +0100 Andoni Morales Alastruey *Add Aron Xu to the translators dialog LongoMatch/Common/Constants.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sat Nov 6 11:49:08 2010 +0100 Andoni Morales Alastruey *Use 'score' instead of Goals and put it in single row ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 413 ++++++++++---------- LongoMatch/gtk-gui/gui.stetic | 202 +++++----- 2 files changed, 307 insertions(+), 308 deletions(-) Sat Nov 6 11:07:10 2010 +0100 Andoni Morales Alastruey *Revert this serie of commits for the release. libcesarplayer/src/gst-camera-capturer.c | 90 ++++++++---------------------- 1 files changed, 24 insertions(+), 66 deletions(-) Sat Nov 6 00:54:00 2010 +0100 Andoni Morales Alastruey *Added Dutch translation by Peter Strikwerda LongoMatch/Common/Constants.cs | 1 + po/LINGUAS | 1 + po/nl.po | 1325 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1327 insertions(+), 0 deletions(-) Fri Nov 5 15:04:15 2010 +0100 Matej Urbančič *Updated Slovenian translation po/sl.po | 120 +++++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 68 insertions(+), 52 deletions(-) Tue Nov 2 22:20:38 2010 +0100 Andoni Morales Alastruey *Get the renamed "video" pad libcesarplayer/src/gst-camera-capturer.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Tue Nov 2 01:33:10 2010 +0100 Andoni Morales Alastruey *Add audio support to the camera capturer libcesarplayer/src/gst-camera-capturer.c | 42 +++++++++++++++++------------- 1 files changed, 24 insertions(+), 18 deletions(-) Tue Nov 2 00:57:17 2010 +0100 Andoni Morales Alastruey *Fix win32 compilation guidelines README | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Fri Oct 29 22:51:05 2010 +0200 Andoni Morales Alastruey *Add an audio pad yo the source when the source has audio libcesarplayer/src/gst-camera-capturer.c | 48 ++++++++++++++++++++++++++---- 1 files changed, 42 insertions(+), 6 deletions(-) Fri Oct 29 20:07:15 2010 +0200 Andoni Morales Alastruey *Enable shortcuts for the playlist too CesarPlayer/Gui/PlayerBin.cs | 4 ++++ LongoMatch/Gui/Component/PlayListWidget.cs | 6 ++++++ LongoMatch/Gui/MainWindow.cs | 5 +++-- LongoMatch/Gui/TreeView/PlayListTreeView.cs | 5 +++++ 4 files changed, 18 insertions(+), 2 deletions(-) Tue Oct 26 00:53:03 2010 +0200 Andoni Morales Alastruey *Don't set dashed lines if we didn't ask for them LongoMatch/Gui/Component/DrawingWidget.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Mon Oct 25 17:19:33 2010 +0200 Andoni Morales Alastruey *Update UI files .../LongoMatch.Gui.Component.ButtonsWidget.cs | 1 + .../LongoMatch.Gui.Component.PlayerProperties.cs | 98 +++++++++++++------- ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 1 + ...ngoMatch.Gui.Component.ProjectTemplateWidget.cs | 2 - .../LongoMatch.Gui.Component.TaggerWidget.cs | 1 + .../LongoMatch.Gui.Component.TimeAdjustWidget.cs | 1 + .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 1 + ...LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs | 1 + .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 1 + LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 61 ++++++++++-- 11 files changed, 123 insertions(+), 47 deletions(-) Mon Oct 25 17:19:02 2010 +0200 Andoni Morales Alastruey *Add Nationality filed to the UI. LongoMatch/Gui/Component/PlayerProperties.cs | 5 +++++ .../Gui/TreeView/PlayerPropertiesTreeView.cs | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 0 deletions(-) Mon Oct 25 15:04:59 2010 +0200 Andoni Morales Alastruey *Fix string for date of birth .../Gui/TreeView/PlayerPropertiesTreeView.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Mon Oct 25 15:03:04 2010 +0200 Andoni Morales Alastruey *Add Nationality property to players LongoMatch/DB/TeamTemplate.cs | 2 +- LongoMatch/Time/Player.cs | 22 ++++++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) Fri Oct 29 12:58:05 2010 +0200 Marek Černocký *Updated Czech translation po/cs.po | 105 +++++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 63 insertions(+), 42 deletions(-) Thu Oct 28 21:52:26 2010 +0200 Bruno Brouard *Updated French translation po/fr.po | 107 ++++++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 62 insertions(+), 45 deletions(-) Wed Oct 27 15:53:22 2010 +0000 Yinghua Wang *Add Simplified Chinese translation. po/LINGUAS | 1 + po/zh_CN.po | 1282 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1283 insertions(+), 0 deletions(-) Mon Oct 25 20:00:40 2010 +0200 Mario Blättermann *[l10n] Updated German translation po/de.po | 107 ++++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 63 insertions(+), 44 deletions(-) Mon Oct 18 10:19:46 2010 +0200 Jorge González *Updated Spanish translation po/es.po | 108 ++++++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 63 insertions(+), 45 deletions(-) Sat Oct 16 21:43:22 2010 +0200 Matej Urbančič *Updated Slovenian translation po/sl.po | 118 ++++++++++++++++++++++++++++++++++---------------------------- 1 files changed, 65 insertions(+), 53 deletions(-) Tue Oct 12 21:04:38 2010 +0200 Andoni Morales Alastruey *Add more tools to the drawing widget LongoMatch/Gui/Component/DrawingWidget.cs | 68 +++++++++++++++++++++-------- 1 files changed, 49 insertions(+), 19 deletions(-) Tue Oct 12 20:46:38 2010 +0200 Andoni Morales Alastruey *Factor out the Paint() method LongoMatch/Gui/Component/DrawingWidget.cs | 67 ++++++++++++----------------- 1 files changed, 27 insertions(+), 40 deletions(-) Tue Oct 12 17:25:22 2010 +0200 Andoni Morales Alastruey *Add environment script Makefile.am | 4 +++- configure.ac | 2 +- env.in | 8 ++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) Tue Oct 12 17:15:46 2010 +0200 Andoni Morales Alastruey *Make use of the right constant to show the software name LongoMatch/Gui/MainWindow.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Fri Oct 8 20:31:50 2010 +0200 Andoni Morales Alastruey *Add player's number to ease the tagging LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Fri Oct 8 20:31:20 2010 +0200 Andoni Morales Alastruey *update UI file .../LongoMatch.Gui.Component.ButtonsWidget.cs | 1 - .../LongoMatch.Gui.Component.PlayerProperties.cs | 190 +++++++++++++++---- ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 1 - .../LongoMatch.Gui.Component.TaggerWidget.cs | 1 - .../LongoMatch.Gui.Component.TimeAdjustWidget.cs | 1 - .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 1 - ...LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs | 1 - .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 1 - LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 164 +++++++++++++++++- 10 files changed, 313 insertions(+), 50 deletions(-) Fri Oct 8 20:24:02 2010 +0200 Andoni Morales Alastruey *Add height weight and birthday edition field to ui LongoMatch/Gui/Component/PlayerProperties.cs | 41 ++++++++++++++++++++++++++ 1 files changed, 41 insertions(+), 0 deletions(-) Fri Oct 8 18:43:24 2010 +0200 Andoni Morales Alastruey *Fix crash on Linux opening the calendar LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Fri Oct 8 18:05:10 2010 +0200 Andoni Morales Alastruey *Add height, weight and birthday to the treeview .../Gui/TreeView/PlayerPropertiesTreeView.cs | 47 ++++++++++++++++++- 1 files changed, 44 insertions(+), 3 deletions(-) Fri Oct 8 17:47:09 2010 +0200 Andoni Morales Alastruey *Add brthday, height and weight properties to Players LongoMatch/DB/TeamTemplate.cs | 2 +- LongoMatch/Time/Player.cs | 55 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 55 insertions(+), 2 deletions(-) Sat Oct 9 12:02:09 2010 +0200 Petr Kovar *Update Czech translation by Marek Cernocky po/cs.po | 79 ++++++++++++++++++++++++++++++------------------------------- 1 files changed, 39 insertions(+), 40 deletions(-) Thu Oct 7 14:34:54 2010 +0200 Jorge González *Updated Spanish translation po/es.po | 66 +++++++++++++++++++++++++++++++------------------------------ 1 files changed, 34 insertions(+), 32 deletions(-) Mon Oct 4 23:46:38 2010 +0200 Andoni Morales Alastruey *Bump version 0.16.1 NEWS | 15 +++++++++++++++ README | 8 ++++---- RELEASE | 26 ++++++++++++-------------- configure.ac | 2 +- 4 files changed, 32 insertions(+), 19 deletions(-) Mon Oct 4 23:39:55 2010 +0200 Andoni Morales Alastruey *Add guidelines to compile LongoMatch on Windows README | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 56 insertions(+), 0 deletions(-) Sun Oct 3 21:23:12 2010 +0200 Andoni Morales Alastruey *Use gstreamer.local as default path for gstreamer installation win32/deploy_win32.py | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sun Oct 3 21:22:37 2010 +0200 Andoni Morales Alastruey *Add Italian transaltion ton win32 Makefile Makefile.win32 | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sun Oct 3 21:21:31 2010 +0200 Andoni Morales Alastruey *Update version in win32 installer win32/installer.iss | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Sun Oct 3 21:18:24 2010 +0200 Andoni Morales Alastruey *Catch any Exception closing the capturer CesarPlayer/Gui/CapturerBin.cs | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) Sun Oct 3 00:46:44 2010 +0200 Andoni Morales Alastruey *Add italian to LINGUAS po/LINGUAS | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sun Oct 3 00:36:12 2010 +0200 Andoni Morales Alastruey *Add french translators LongoMatch/Common/Constants.cs | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) Sun Oct 3 00:32:31 2010 +0200 Maurizio Napolitano *Added italian translation LongoMatch/Common/Constants.cs | 3 +- po/it.po | 1290 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1292 insertions(+), 1 deletions(-) Fri Oct 1 23:17:06 2010 +0200 Bruno Brouard *Updated French translation po/fr.po | 66 +++++++++++++++++++++++++++++++------------------------------- 1 files changed, 33 insertions(+), 33 deletions(-) Fri Oct 1 12:47:10 2010 +0200 Mario Blättermann *[i18n] Updated German translation po/de.po | 65 +++++++++++++++++++++++++++++++------------------------------ 1 files changed, 33 insertions(+), 32 deletions(-) Thu Sep 30 14:48:24 2010 +0200 Matej Urbančič *Updated Slovenian translation po/sl.po | 65 +++++++++++++++++++++++++++++++------------------------------ 1 files changed, 33 insertions(+), 32 deletions(-) Tue Sep 14 20:06:34 2010 +0200 Andoni Morales Alastruey *Add missing file the win32 makefile Makefile.win32 | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Tue Sep 28 17:59:04 2010 +0200 Andoni Morales Alastruey *Add a colors button to let the user choose its custom colors LongoMatch/Gui/Component/DrawingToolBox.cs | 42 +---- .../LongoMatch.Gui.Component.DrawingToolBox.cs | 211 ++++++-------------- LongoMatch/gtk-gui/gui.stetic | 210 +++----------------- LongoMatch/gtk-gui/objects.xml | 8 +- 4 files changed, 103 insertions(+), 368 deletions(-) Tue Sep 28 17:55:24 2010 +0200 Andoni Morales Alastruey *Fix the conversion from Gdk.Color to Cairo.Color LongoMatch/Gui/Component/DrawingWidget.cs | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) Tue Sep 28 17:00:20 2010 +0200 Andoni Morales Alastruey *Use C# 3.0 properties LongoMatch/Gui/TreeView/PlayersTreeView.cs | 10 +++------- 1 files changed, 3 insertions(+), 7 deletions(-) Tue Sep 28 16:56:52 2010 +0200 Andoni Morales Alastruey *Add menu to edit players name in the treeview LongoMatch/Gui/TreeView/PlayersTreeView.cs | 29 ++++++++++++++++++++++++++++ 1 files changed, 29 insertions(+), 0 deletions(-) Tue Sep 21 17:22:00 2010 +0200 Andoni Morales Alastruey *Fix screenshots of marks from the timeline LongoMatch/Handlers/EventsManager.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Tue Sep 21 17:06:01 2010 +0200 Andoni Morales Alastruey *Add accelerators for the analysis modes, the playlist and the fullscreen switch CesarPlayer/gtk-gui/gui.stetic | 2 +- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 10 +++++----- LongoMatch/gtk-gui/gui.stetic | 9 +++++++-- 3 files changed, 13 insertions(+), 8 deletions(-) Tue Sep 21 16:59:14 2010 +0200 Andoni Morales Alastruey *Fix edition of sections and players LongoMatch/Gui/TreeView/ListTreeViewBase.cs | 38 +++++++++++++++------------ 1 files changed, 21 insertions(+), 17 deletions(-) Tue Sep 21 16:58:48 2010 +0200 Andoni Morales Alastruey *Remove unused code LongoMatch/Gui/TreeView/ListTreeViewBase.cs | 5 ----- 1 files changed, 0 insertions(+), 5 deletions(-) Tue Sep 21 15:11:07 2010 +0200 Andoni Morales Alastruey *Fix seeking when we click directly the timescale CesarPlayer/Gui/PlayerBin.cs | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) Tue Sep 21 14:50:45 2010 +0200 Andoni Morales Alastruey *Hide treeview headers LongoMatch/Gui/TreeView/ListTreeViewBase.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Tue Sep 21 14:45:28 2010 +0200 Andoni Morales Alastruey *Add the plays count in the the list widget LongoMatch/Gui/TreeView/ListTreeViewBase.cs | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Tue Sep 21 14:37:15 2010 +0200 Andoni Morales Alastruey *Don't allow the zoom scale to focus LongoMatch/Gui/Component/TimeLineWidget.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Tue Sep 21 14:27:09 2010 +0200 Andoni Morales Alastruey *Pause the player for framestepping CesarPlayer/Gui/PlayerBin.cs | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) Tue Sep 21 14:09:46 2010 +0200 Andoni Morales Alastruey *Add some comments LongoMatch/Handlers/EventsManager.cs | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-) Tue Sep 21 13:28:02 2010 +0200 Andoni Morales Alastruey *Allow frame stepping on seeks with mouse scrolls over the video widget CesarPlayer/Gui/PlayerBin.cs | 21 ++++++++++++++++++++- 1 files changed, 20 insertions(+), 1 deletions(-) Tue Sep 21 12:26:45 2010 +0200 Andoni Morales Alastruey *Emit tick event when framestepping to update the timescale CesarPlayer/gtk-gui/gui.stetic | 2 +- LongoMatch/gtk-gui/gui.stetic | 4 ++-- libcesarplayer/src/bacon-video-widget-gst-0.10.c | 10 ++++++++-- 3 files changed, 11 insertions(+), 5 deletions(-) Sun Sep 19 22:34:16 2010 +0200 Bruno Brouard *Updated French translation po/fr.po | 1073 ++++++++++++++++++++++++++++++++++---------------------------- 1 files changed, 586 insertions(+), 487 deletions(-) Sun Sep 19 13:25:13 2010 +0200 Mario Blättermann *[i18n] Updated German translation po/de.po | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) Fri Sep 17 20:20:24 2010 +0200 Jorge González *Updated Spanish translation po/es.po | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-) Fri Sep 17 20:15:14 2010 +0200 Matej Urbančič *Updated Slovenian translation po/sl.po | 20 +++++++++++++++----- 1 files changed, 15 insertions(+), 5 deletions(-) Fri Sep 17 11:41:45 2010 +0200 Marek Černocký *Updated Czech translation po/cs.po | 128 +++++++++++++++++++++++++++++--------------------------------- 1 files changed, 60 insertions(+), 68 deletions(-) Thu Sep 16 12:55:13 2010 +0200 Mario Blättermann *[i18n] Updated German translation po/de.po | 120 +++++++++++++++++++++++++++++-------------------------------- 1 files changed, 57 insertions(+), 63 deletions(-) Thu Sep 16 00:36:56 2010 +0200 Andoni Morales Alastruey *Change the device description name to something more easy to understand CesarPlayer/Utils/Device.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Mon Sep 13 21:12:12 2010 +0200 Andoni Morales Alastruey *Use the mp4 muxer if mp4 is selected LongoMatch/Gui/Dialog/VideoEditionProperties.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sun Sep 12 23:12:18 2010 +0200 Andoni Morales Alastruey *Format plays name number with 3 digits LongoMatch/DB/Project.cs | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Sun Sep 12 22:59:19 2010 +0200 Andoni Morales Alastruey *Fix thinko. for "start time" use SortByStartTime LongoMatch/Gui/TreeView/PlaysTreeView.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Fri Sep 10 20:41:05 2010 +0200 Matej Urbančič *Updated Slovenian translation po/sl.po | 129 ++++++++++++++++++++++++++++---------------------------------- 1 files changed, 58 insertions(+), 71 deletions(-) Thu Sep 9 20:46:53 2010 +0200 Jorge González *Updated Spanish translation po/es.po | 122 +++++++++++++++++++++++++++++-------------------------------- 1 files changed, 58 insertions(+), 64 deletions(-) Tue Sep 7 22:27:01 2010 +0200 Andoni Morales Alastruey *Bump version 0.16.0 configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Tue Sep 7 23:53:29 2010 +0200 Andoni Morales Alastruey *Don't mape VP8 the default encoder, it's too slow for live LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Tue Sep 7 22:45:21 2010 +0200 Andoni Morales Alastruey *Add missing files to POTFILES.in po/POTFILES.in | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Tue Sep 7 22:31:26 2010 +0200 Andoni Morales Alastruey *Use the right version number LongoMatch/Makefile.am | 2 +- configure.ac | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Tue Sep 7 22:25:50 2010 +0200 Andoni Morales Alastruey *Prepare NEWS and README for the release NEWS | 18 +++++++++++++++ RELEASE | 73 ++++++++++++++++++++------------------------------------------ 2 files changed, 42 insertions(+), 49 deletions(-) Tue Sep 7 22:24:07 2010 +0200 Andoni Morales Alastruey *Remove white spaces NEWS | 61 +++++++++++++++++++++++++++++++------------------------------ RELEASE | 12 ++++++------ 2 files changed, 37 insertions(+), 36 deletions(-) Mon Sep 6 01:51:01 2010 +0200 Andoni Morales Alastruey *Do signal connections connections manually intead of with Stetic LongoMatch/Gui/Component/PlayersListTreeWidget.cs | 6 ++- LongoMatch/Gui/Component/PlaysListTreeWidget.cs | 15 ++++-- LongoMatch/Gui/Component/TagsTreeWidget.cs | 4 ++ ...ngoMatch.Gui.Component.PlayersListTreeWidget.cs | 4 -- ...LongoMatch.Gui.Component.PlaysListTreeWidget.cs | 7 --- .../LongoMatch.Gui.Component.TagsTreeWidget.cs | 4 -- LongoMatch/gtk-gui/gui.stetic | 15 ------ LongoMatch/gtk-gui/objects.xml | 52 +++++++++++--------- 8 files changed, 48 insertions(+), 59 deletions(-) Mon Sep 6 01:26:30 2010 +0200 Andoni Morales Alastruey *Add team's name to the menus LongoMatch/Gui/Component/TagsTreeWidget.cs | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Mon Sep 6 01:13:34 2010 +0200 Andoni Morales Alastruey *Add base class for plays treeviews LongoMatch/Gui/TreeView/ListTreeViewBase.cs | 409 +++++++++++++++++++++++++++ LongoMatch/Gui/TreeView/PlayersTreeView.cs | 251 +++++------------ LongoMatch/Gui/TreeView/PlaysTreeView.cs | 388 ++----------------------- LongoMatch/Gui/TreeView/TagsTreeView.cs | 181 +----------- LongoMatch/LongoMatch.mdp | 1 + LongoMatch/Makefile.am | 1 + 6 files changed, 522 insertions(+), 709 deletions(-) Sun Sep 5 14:10:20 2010 +0200 Andoni Morales Alastruey *Move 'Team' enum to common LongoMatch/Common/Enums.cs | 6 ++++++ LongoMatch/Compat/0.0/DatabaseMigrator.cs | 1 + LongoMatch/DB/DataBase.cs | 1 + LongoMatch/Gui/Component/PlayersListTreeWidget.cs | 1 + LongoMatch/Gui/Component/PlaysListTreeWidget.cs | 3 ++- LongoMatch/Gui/TreeView/PlayersTreeView.cs | 1 + LongoMatch/Handlers/Handlers.cs | 1 + LongoMatch/Time/MediaTimeNode.cs | 6 +----- 8 files changed, 14 insertions(+), 6 deletions(-) Fri Sep 3 19:24:14 2010 +0200 Andoni Morales Alastruey *Use the real team's names in the UI instead of 'local' and 'visitor' LongoMatch/Gui/Component/PlaysListTreeWidget.cs | 4 +- LongoMatch/Gui/MainWindow.cs | 13 ++++- LongoMatch/Gui/TreeView/PlaysTreeView.cs | 54 +++++++++++++++--- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 50 ++++++++-------- LongoMatch/gtk-gui/gui.stetic | 10 ++-- LongoMatch/gtk-gui/objects.xml | 68 ++++++++++++++++++++++- 6 files changed, 154 insertions(+), 45 deletions(-) Sun Sep 5 14:41:35 2010 +0200 Andoni Morales Alastruey *Add ToString(name) to display the real name of the team LongoMatch/Time/MediaTimeNode.cs | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) Fri Sep 3 18:10:27 2010 +0200 Andoni Morales Alastruey *Use the video height for the font size libcesarplayer/src/gst-video-editor.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Fri Sep 3 17:46:33 2010 +0200 Andoni Morales Alastruey *Close the dialog if cancel is clicked LongoMatch/Gui/Dialog/VideoEditionProperties.cs | 6 ++++++ ...LongoMatch.Gui.Dialog.VideoEditionProperties.cs | 1 + LongoMatch/gtk-gui/gui.stetic | 1 + 3 files changed, 8 insertions(+), 0 deletions(-) Fri Sep 3 17:18:16 2010 +0200 Andoni Morales Alastruey *Add mp4 extension LongoMatch/Gui/Dialog/VideoEditionProperties.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Fri Sep 3 17:04:58 2010 +0200 Andoni Morales Alastruey *Handle kbps vs bps mess in GStreamer. libcesarplayer/src/gst-video-editor.c | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-) Fri Sep 3 16:56:03 2010 +0200 Andoni Morales Alastruey *Delete unused variables libcesarplayer/src/bacon-video-widget-gst-0.10.c | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) Mon Aug 23 22:04:45 2010 +0200 Andoni Morales Alastruey *Remove commented win32 ifdef's libcesarplayer/src/bacon-video-widget-gst-0.10.c | 20 +++----------------- 1 files changed, 3 insertions(+), 17 deletions(-) Mon Aug 23 22:02:03 2010 +0200 Andoni Morales Alastruey *Clean-up backward frame stepping libcesarplayer/src/bacon-video-widget-gst-0.10.c | 18 ++++++------------ 1 files changed, 6 insertions(+), 12 deletions(-) Mon Aug 23 21:30:21 2010 +0200 Andoni Morales Alastruey *Make use of STEP events for frame stepping libcesarplayer/src/bacon-video-widget-gst-0.10.c | 36 +-------------------- 1 files changed, 2 insertions(+), 34 deletions(-) Mon Aug 23 21:17:51 2010 +0200 Andoni Morales Alastruey *Try to avoid DB errors updating projects when for some reason it gets deleted LongoMatch/DB/DataBase.cs | 14 +++++++++----- 1 files changed, 9 insertions(+), 5 deletions(-) Mon Aug 23 21:15:17 2010 +0200 Andoni Morales Alastruey *Protect with try and catch b/c it can throw an Exception LongoMatch/Gui/MainWindow.cs | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) Fri Aug 20 15:47:00 2010 +0200 Andoni Morales Alastruey *Code clean-up and indentation fixes libcesarplayer/src/gst-camera-capturer.c | 53 ++-- libcesarplayer/src/gst-video-editor.c | 623 +++++++++++++++--------------- 2 files changed, 345 insertions(+), 331 deletions(-) Fri Aug 6 22:57:46 2010 +0200 Andoni Morales Alastruey *vp8enc uses bps too libcesarplayer/src/gst-video-editor.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Fri Aug 6 22:57:02 2010 +0200 Andoni Morales Alastruey *Add graph dump in state changes for debug libcesarplayer/src/gst-video-editor.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) Fri Aug 6 22:09:36 2010 +0200 Andoni Morales Alastruey *Update control file for lucid debian/control | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) Tue Aug 31 21:23:29 2010 +0200 Andoni Morales Alastruey *Handle device disconnections on windows libcesarplayer/src/gst-camera-capturer.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) Wed Aug 25 22:07:01 2010 +0200 Petr Kovar *Update Czech translation by Marek Cernocky po/cs.po | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) Fri Aug 6 22:12:44 2010 +0200 Mario Blättermann *[i18n] Updated German translation po/de.po | 136 +++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 73 insertions(+), 63 deletions(-) Wed Aug 4 09:00:23 2010 +0200 Petr Kovar *Update Czech translation by Marek Cernocky po/cs.po | 188 ++++++++++++++++++++++++++++++++------------------------------ 1 files changed, 98 insertions(+), 90 deletions(-) Tue Aug 3 14:38:24 2010 +0200 Matej Urbančič *Updated Slovenian translation po/sl.po | 130 +++++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 73 insertions(+), 57 deletions(-) Tue Aug 3 07:10:40 2010 +0200 Jorge González *Updated Spanish translation po/es.po | 133 +++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 71 insertions(+), 62 deletions(-) Tue Aug 3 00:35:40 2010 +0200 Andoni Morales Alastruey *Only set the source if it hasn't been set already libcesarplayer/src/gst-camera-capturer.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Mon Aug 2 00:00:52 2010 +0200 Andoni Morales Alastruey *Toggle capture and warn on a device (re|dis)connection CesarPlayer/Capturer/FakeCapturer.cs | 1 + CesarPlayer/Capturer/ICapturer.cs | 1 + CesarPlayer/Gui/CapturerBin.cs | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 0 deletions(-) Sun Aug 1 20:50:16 2010 +0200 Andoni Morales Alastruey *Add bindings for the device change signal CesarPlayer/Capturer/GstCameraCapturer.cs | 69 +++++++++++++++++++++++++++++ CesarPlayer/Common/Handlers.cs | 10 ++++ 2 files changed, 79 insertions(+), 0 deletions(-) Sun Aug 1 20:13:33 2010 +0200 Andoni Morales Alastruey *Add support to signal device connected/disconnected changes libcesarplayer/src/gst-camera-capturer.c | 35 ++++++++++++++++++++++++++++++ libcesarplayer/src/gst-camera-capturer.h | 1 + 2 files changed, 36 insertions(+), 0 deletions(-) Sun Aug 1 18:59:30 2010 +0200 Andoni Morales Alastruey *Use a private variable for the device source element libcesarplayer/src/gst-camera-capturer.c | 27 ++++++++++++++------------- 1 files changed, 14 insertions(+), 13 deletions(-) Fri Jul 30 00:34:30 2010 +0200 Andoni Morales Alastruey *remove unused include libcesarplayer/src/gst-camera-capturer.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) Fri Jul 30 02:45:16 2010 +0200 Andoni Morales Alastruey *Set the device ID the first property as workarround for dshowsrcwrapper CesarPlayer/Gui/CapturerBin.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Jul 28 00:05:10 2010 +0200 Andoni Morales Alastruey *Link the source with the supported caps libcesarplayer/src/gst-camera-capturer.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) Wed Jul 28 00:03:56 2010 +0200 Andoni Morales Alastruey *Delay the creation of the source bin fro when we have the "device-id" set libcesarplayer/src/gst-camera-capturer.c | 39 +++++++++++------------------ 1 files changed, 15 insertions(+), 24 deletions(-) Wed Jul 28 00:02:18 2010 +0200 Andoni Morales Alastruey *Treat callbacks has unmanged pointers CesarPlayer/Capturer/GstCameraCapturer.cs | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Mon Jul 26 22:41:01 2010 +0200 Andoni Morales Alastruey *Fix typos LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 2 +- LongoMatch/Gui/MainWindow.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Mon Jul 26 22:27:33 2010 +0200 Andoni Morales Alastruey *Use local gstreamer instalation path Makefile.win32 | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Mon Jul 26 22:25:29 2010 +0200 Andoni Morales Alastruey *Use a constant to set the project name LongoMatch/Utils/ProjectUtils.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Mon Jul 26 22:16:35 2010 +0200 Andoni Morales Alastruey *Set the logo in the capturer bin LongoMatch/Gui/MainWindow.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Mon Jul 26 22:13:46 2010 +0200 Andoni Morales Alastruey *Get the xoverlay from the msg sender if null libcesarplayer/src/gst-camera-capturer.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) Sun Jul 25 23:31:58 2010 +0200 Andoni Morales Alastruey *Removed unused videobox element libcesarplayer/src/gst-video-editor.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) Sun Jul 25 23:29:31 2010 +0200 Andoni Morales Alastruey *Don't cancel the video edition LongoMatch/Gui/Component/PlayListWidget.cs | 5 ----- 1 files changed, 0 insertions(+), 5 deletions(-) Sun Jul 25 22:58:43 2010 +0200 Andoni Morales Alastruey *Some encoder needs bps instead of kbps libcesarplayer/src/gst-video-editor.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) Sun Jul 25 22:57:38 2010 +0200 Andoni Morales Alastruey *Switch videorate and videoscale position to avoid negotition errors libcesarplayer/src/gst-video-editor.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sun Jul 25 20:22:46 2010 +0200 Andoni Morales Alastruey *Try to get the sink element from the message emitter libcesarplayer/src/bacon-video-widget-gst-0.10.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) Sun Jul 25 17:19:08 2010 +0200 Andoni Morales Alastruey *Use autovideosink for the player libcesarplayer/src/bacon-video-widget-gst-0.10.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sun Jul 25 17:18:27 2010 +0200 Andoni Morales Alastruey *Reset properly the GUI when closing the capture CesarPlayer/Gui/CapturerBin.cs | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Fri Jul 23 22:34:11 2010 +0200 Andoni Morales Alastruey *Use integer to pass the property libcesarplayer/src/gst-camera-capturer.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Fri Jul 23 22:33:21 2010 +0200 Andoni Morales Alastruey *Bitrate is in bps for xvidenc and ffenc_mpeg4 libcesarplayer/src/gst-camera-capturer.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) Fri Jul 23 22:32:28 2010 +0200 Andoni Morales Alastruey *Set the dshow capturer type has default for windows libcesarplayer/src/gst-camera-capturer.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) Fri Jul 23 22:31:33 2010 +0200 Andoni Morales Alastruey *Use ffenc_mpeg4 rather than xvidenc FFmpeg one should be faster LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sun Jul 25 00:43:52 2010 +0200 Andoni Morales Alastruey *Use the matroska muxer as default libcesarplayer/src/gst-video-editor.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sun Jul 25 00:42:57 2010 +0200 Andoni Morales Alastruey *Change the file extension for mp4 files LongoMatch/Gui/Dialog/VideoEditionProperties.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sun Jul 25 00:39:40 2010 +0200 Andoni Morales Alastruey *Don't destroy the dialog until we have read the properties LongoMatch/Gui/Component/PlayListWidget.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sat Jul 24 21:56:23 2010 +0200 Andoni Morales Alastruey *Keep DAR using black borders libcesarplayer/src/gst-video-editor.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Thu Jul 22 02:19:47 2010 +0200 Andoni Morales Alastruey *Handle better Direct Show capture source CesarPlayer/Common/Enum.cs | 1 + LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 11 ++++++++--- libcesarplayer/src/gst-camera-capturer.c | 18 +++++++----------- libcesarplayer/src/gst-camera-capturer.h | 3 ++- 4 files changed, 18 insertions(+), 15 deletions(-) Wed Jul 21 17:23:14 2010 +0200 Andoni Morales Alastruey *Add some comments LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Wed Jul 21 22:06:10 2010 +0200 Andoni Morales Alastruey *Disable WEBM format on win32 (the encoder segfaults) LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 7 ++++--- LongoMatch/Gui/Dialog/VideoEditionProperties.cs | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) Wed Jul 21 22:02:10 2010 +0200 Andoni Morales Alastruey *Delete some files from the deploy script win32/deploy_win32.py | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Jul 21 21:07:44 2010 +0200 Andoni Morales Alastruey *Add more langs to the win32 makefile Makefile.win32 | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) Wed Jul 21 17:09:22 2010 +0200 Andoni Morales Alastruey *Remove check for capture source type done some lines before LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) Sat Jul 10 08:31:19 2010 +0200 Andoni Morales Alastruey *Set vp8's encoder speed to 2 libcesarplayer/src/gst-camera-capturer.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sat Jul 10 08:30:38 2010 +0200 Andoni Morales Alastruey *Make use a generic source decoder on windows libcesarplayer/src/gst-camera-capturer.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) Thu Jul 8 22:35:49 2010 +0200 Andoni Morales Alastruey *Update win32 makefiles Makefile.win32 | 24 ++++++++++++------------ 1 files changed, 12 insertions(+), 12 deletions(-) Thu Jul 8 22:35:18 2010 +0200 Andoni Morales Alastruey *Update win32 db4o dll to 7.4 win32/deps/Db4objects.Db4o.dll | Bin 600576 -> 716288 bytes 1 files changed, 0 insertions(+), 0 deletions(-) Thu Jul 8 22:34:14 2010 +0200 Andoni Morales Alastruey *Put the colorspace converter before the deinterlacer libcesarplayer/src/gst-camera-capturer.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) Thu Jul 8 22:33:26 2010 +0200 Andoni Morales Alastruey *Fix source device selection in the camera capturer libcesarplayer/src/gst-camera-capturer.c | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) Thu Jul 8 23:37:18 2010 +0200 Andoni Morales Alastruey *Fix typo libcesarplayer/src/gst-camera-capturer.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Thu Jul 8 23:33:17 2010 +0200 Andoni Morales Alastruey *Add Xavier Queralt to translators list LongoMatch/Common/Constants.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Thu Jul 8 23:31:49 2010 +0200 Andoni Morales Alastruey *Add catalan and portuguese to LINGUAS po/LINGUAS | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Thu Jul 8 23:30:36 2010 +0200 Xavier Queralt Mateu *Added catalan translation po/ca.po | 1289 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1289 insertions(+), 0 deletions(-) Mon Jul 5 20:44:14 2010 +0200 Andoni Morales Alastruey *Update GUI stetic changes .../LongoMatch.Gui.Component.PlayListWidget.cs | 10 ++-- ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 2 +- .../LongoMatch.Gui.Component.TimeLineWidget.cs | 2 +- .../LongoMatch.Gui.Dialog.EndCaptureDialog.cs | 6 +- .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 2 +- .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 8 +-- LongoMatch/gtk-gui/gui.stetic | 4 +- LongoMatch/gtk-gui/objects.xml | 73 -------------------- 8 files changed, 15 insertions(+), 92 deletions(-) Sun Jul 4 18:55:24 2010 +0200 Andoni Morales Alastruey *Fix indentation of C code using gst-indent libcesarplayer/src/bacon-resize.c | 109 +- libcesarplayer/src/bacon-video-widget-gst-0.10.c | 4980 ++++++++++------------ libcesarplayer/src/bacon-video-widget.h | 147 +- libcesarplayer/src/gst-camera-capturer.c | 173 +- libcesarplayer/src/gst-camera-capturer.h | 53 +- libcesarplayer/src/gst-smart-video-scaler.c | 227 +- libcesarplayer/src/gst-smart-video-scaler.h | 4 +- libcesarplayer/src/gst-video-editor.c | 1263 +++--- libcesarplayer/src/gst-video-editor.h | 17 +- libcesarplayer/src/gstscreenshot.c | 132 +- libcesarplayer/src/gstscreenshot.h | 2 +- libcesarplayer/src/gstvideowidget.c | 604 ++-- libcesarplayer/src/gstvideowidget.h | 21 +- libcesarplayer/src/main.c | 11 +- libcesarplayer/src/video-utils.c | 111 +- libcesarplayer/src/video-utils.h | 4 +- 16 files changed, 3485 insertions(+), 4373 deletions(-) Thu Jul 1 20:57:41 2010 +0200 Andoni Morales Alastruey *Fix constant name LongoMatch/Main.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Thu Jul 1 20:57:09 2010 +0200 Andoni Morales Alastruey *Use the constant SOFTWARE_NAME for the title LongoMatch/Gui/MainWindow.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Thu Jul 1 20:27:19 2010 +0200 Andoni Morales Alastruey *Delete unused file LongoMatch.sln | 44 -------------------------------------------- 1 files changed, 0 insertions(+), 44 deletions(-) Sun Jun 27 02:58:35 2010 +0200 Andoni Morales Alastruey *Disable 0169 warnings for variables kept for db compatibility LongoMatch/DB/Project.cs | 2 ++ LongoMatch/DB/Sections.cs | 2 ++ 2 files changed, 4 insertions(+), 0 deletions(-) Sun Jun 27 02:35:36 2010 +0200 Andoni Morales Alastruey *Disable 0169 warnings in bindings CesarPlayer/Capturer/GstCameraCapturer.cs | 4 +++- CesarPlayer/Editor/GstVideoSplitter.cs | 4 ++-- CesarPlayer/Player/GstPlayer.cs | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) Sun Jun 27 02:22:15 2010 +0200 Andoni Morales Alastruey *Rename Type to ProjectType LongoMatch/Gui/Dialog/ProjectSelectionDialog.cs | 2 +- LongoMatch/Utils/ProjectUtils.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Sun Jun 27 02:19:48 2010 +0200 Andoni Morales Alastruey *Implement GetHashCode() to supress warning LongoMatch/Compat/0.0/Time/Time.cs | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) Sun Jun 27 02:17:51 2010 +0200 Andoni Morales Alastruey *Replace db4o deprecated Set() with Store() LongoMatch/DB/DataBase.cs | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) Sun Jun 27 02:08:01 2010 +0200 Andoni Morales Alastruey *Rename signal to avoid overriden widget's StateChanged CesarPlayer/Gui/PlayerBin.cs | 6 +++--- CesarPlayer/gtk-gui/objects.xml | 2 +- LongoMatch/Handlers/VideoDrawingsManager.cs | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) Sun Jun 27 01:59:00 2010 +0200 Andoni Morales Alastruey *Remove unused variables CesarPlayer/Gui/CapturerBin.cs | 3 --- CesarPlayer/Gui/PlayerBin.cs | 7 +------ LongoMatch/Compat/0.0/DB/Sections.cs | 4 ---- LongoMatch/Compat/0.0/DatabaseMigrator.cs | 2 -- 4 files changed, 1 insertions(+), 15 deletions(-) Fri Jun 25 22:35:55 2010 +0200 Fran Diéguez *Updated Galician translations po/gl.po | 79 ++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 41 insertions(+), 38 deletions(-) Fri Jun 25 03:30:40 2010 +0200 Andoni Morales Alastruey *Delete unused files CesarPlayer/Capturer/ErrorHandler.cs | 34 --- CesarPlayer/Capturer/GstVideoCapturer.cs | 341 ------------------------- CesarPlayer/Capturer/GvcAudioEncoderType.cs | 34 --- CesarPlayer/Editor/ErrorHandler.cs | 33 --- CesarPlayer/Editor/GenericMerger.cs | 120 --------- CesarPlayer/Editor/GnonlinEditor.cs | 227 ---------------- CesarPlayer/Editor/PercentCompletedHandler.cs | 33 --- 7 files changed, 0 insertions(+), 822 deletions(-) Thu Jun 24 23:24:20 2010 +0200 Andoni Morales Alastruey *Use constants for some project strings LongoMatch/Common/Constants.cs | 7 +++++++ LongoMatch/Gui/Dialog/ProjectsManager.cs | 2 +- LongoMatch/Gui/MainWindow.cs | 8 ++++---- LongoMatch/Main.cs | 11 ++++++----- LongoMatch/Utils/ProjectUtils.cs | 2 +- 5 files changed, 19 insertions(+), 11 deletions(-) Mon Jun 21 23:59:51 2010 +0200 Andoni Morales Alastruey *Update GUI changes .../LongoMatch.Gui.Component.PlayListWidget.cs | 10 ++-- ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 2 +- .../LongoMatch.Gui.Component.ProjectListWidget.cs | 1 - .../LongoMatch.Gui.Component.TimeLineWidget.cs | 2 +- .../LongoMatch.Gui.Dialog.EndCaptureDialog.cs | 6 +- .../LongoMatch.Gui.Dialog.OpenProjectDialog.cs | 2 + .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 4 +- .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 2 +- .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 6 +- LongoMatch/gtk-gui/gui.stetic | 7 ++- LongoMatch/gtk-gui/objects.xml | 54 ++++++++++---------- 11 files changed, 49 insertions(+), 47 deletions(-) Mon Jun 21 23:59:07 2010 +0200 Andoni Morales Alastruey *Allow deletion of several projects at the same time and clean-up the projects list widget LongoMatch/Gui/Component/ProjectListWidget.cs | 103 ++++++++++++++----------- LongoMatch/Gui/Dialog/OpenProjectDialog.cs | 15 +++- LongoMatch/Gui/Dialog/ProjectsManager.cs | 92 ++++++++++++++-------- LongoMatch/Gui/Dialog/TemplatesEditor.cs | 4 - LongoMatch/Gui/MainWindow.cs | 2 +- LongoMatch/Handlers/Handlers.cs | 3 +- 6 files changed, 131 insertions(+), 88 deletions(-) Wed Jun 16 22:05:32 2010 +0200 Andoni Morales Alastruey *Set the 'guid' property using a guint64 libcesarplayer/src/gst-camera-capturer.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Mon Jun 21 14:21:12 2010 +0200 Fran Diéguez *Updated galician translations po/gl.po | 526 +++++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 314 insertions(+), 212 deletions(-) Thu Jun 17 09:57:14 2010 +0200 Matej Urbančič *Updated Slovenian translation po/sl.po | 37 ++++++++++++++++++++----------------- 1 files changed, 20 insertions(+), 17 deletions(-) Thu Jun 17 08:40:12 2010 +0200 Jorge González *Updated Spanish translation po/es.po | 129 ++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 68 insertions(+), 61 deletions(-) Wed Jun 16 21:57:00 2010 +0200 Andoni Morales Alastruey *Delete print LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) Wed Jun 16 21:54:44 2010 +0200 Andoni Morales Alastruey *Don't add two elements with the same name. libcesarplayer/src/gst-camera-capturer.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Jun 16 21:53:01 2010 +0200 Andoni Morales Alastruey *Stringify the device id libcesarplayer/src/gst-camera-capturer.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) Wed Jun 16 21:49:29 2010 +0200 Andoni Morales Alastruey *Add Portuguese translation by João Paulo Azevedo LongoMatch/Common/Constants.cs | 1 + po/pt.po | 1268 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1269 insertions(+), 0 deletions(-) Wed Jun 16 01:52:41 2010 +0200 Andoni Morales Alastruey *Add 'AND'/'OR' option to the tags filter LongoMatch/Gui/Component/TagsTreeWidget.cs | 39 +++++++++++++++++--- .../LongoMatch.Gui.Component.TagsTreeWidget.cs | 20 ++++++++++ LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 26 +++++++++++++- LongoMatch/gtk-gui/objects.xml | 22 ++++++------ 5 files changed, 91 insertions(+), 18 deletions(-) Wed Jun 16 20:57:21 2010 +0200 Mario Blättermann *[i18n] Updated German translation po/de.po | 39 +++++++++++++++++++++------------------ 1 files changed, 21 insertions(+), 18 deletions(-) Wed Jun 16 00:22:35 2010 +0200 Andoni Morales Alastruey *Allow deleting several categories at once LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 54 +++++++++++++------- LongoMatch/Gui/TreeView/CategoriesTreeView.cs | 25 ++++++--- LongoMatch/Handlers/Handlers.cs | 5 ++ ...ngoMatch.Gui.Component.ProjectTemplateWidget.cs | 4 +- .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 2 + LongoMatch/gtk-gui/gui.stetic | 4 +- LongoMatch/gtk-gui/objects.xml | 16 +++--- 7 files changed, 73 insertions(+), 37 deletions(-) Sun Jun 13 18:01:26 2010 +0200 Andoni Morales Alastruey *Fix GUI expanded windows .../LongoMatch.Gui.Dialog.EditPlayerDialog.cs | 2 - .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 6 +--- .../LongoMatch.Gui.Dialog.TeamTemplateEditor.cs | 2 - .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 4 -- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 32 ++++++------------- LongoMatch/gtk-gui/objects.xml | 18 +++++----- 7 files changed, 21 insertions(+), 45 deletions(-) Sun Jun 13 17:25:10 2010 +0200 Andoni Morales Alastruey *Fix Spanish translation po/es.po | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Sun Jun 13 17:19:20 2010 +0200 Andoni Morales Alastruey *Change generic debug messages to object messages libcesarplayer/src/gst-camera-capturer.c | 34 +++++++++++++++--------------- 1 files changed, 17 insertions(+), 17 deletions(-) Sat Jun 12 13:59:52 2010 +0200 Andoni Morales Alastruey *Force ffmpeg demuxer in windows for the DV source libcesarplayer/src/gst-camera-capturer.c | 51 ++++++++++++++++++++++++++++++ 1 files changed, 51 insertions(+), 0 deletions(-) Sat Jun 12 13:38:59 2010 +0200 Andoni Morales Alastruey *Get the stream info from the caps negotiated with the source element libcesarplayer/src/gst-camera-capturer.c | 50 ++++++++++++++++++----------- 1 files changed, 31 insertions(+), 19 deletions(-) Sat Jun 12 12:36:08 2010 +0200 Andoni Morales Alastruey *Allow '0' value for height and width. libcesarplayer/src/gst-camera-capturer.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Sat Jun 12 10:53:35 2010 +0200 Andoni Morales Alastruey *Remove duplicated sentence and change debug message libcesarplayer/src/gst-camera-capturer.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-) Sat Jun 12 20:52:48 2010 +0200 Mario Blättermann *Updated German translation po/de.po | 94 ++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 49 insertions(+), 45 deletions(-) Fri Jun 11 21:46:30 2010 +0200 Matej Urbančič *Updated Slovenian translation po/sl.po | 92 +++++++++++++++++++++++++++++++------------------------------ 1 files changed, 47 insertions(+), 45 deletions(-) Wed Jun 9 21:58:13 2010 +0200 Andoni Morales Alastruey *Set camerabin source in the set_source() function libcesarplayer/src/gst-camera-capturer.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Wed Jun 9 21:56:46 2010 +0200 Andoni Morales Alastruey *Add the buffer probe each time we change the source libcesarplayer/src/gst-camera-capturer.c | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-) Wed Jun 9 21:55:43 2010 +0200 Andoni Morales Alastruey *Add missing break sentences in the switch libcesarplayer/src/gst-camera-capturer.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Wed Jun 9 01:39:29 2010 +0200 Andoni Morales Alastruey *Fix typo. libcesarplayer/src/gst-camera-capturer.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Jun 9 01:38:28 2010 +0200 Andoni Morales Alastruey *Update audio and video encoder type when changing it libcesarplayer/src/gst-camera-capturer.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Wed Jun 9 00:49:48 2010 +0200 Andoni Morales Alastruey *Remove nasty hack. CesarPlayer/Capturer/GstCameraCapturer.cs | 9 --------- 1 files changed, 0 insertions(+), 9 deletions(-) Wed Jun 9 00:48:06 2010 +0200 Andoni Morales Alastruey *Connect the signal from our own widget and not the toplevel one. libcesarplayer/src/gst-camera-capturer.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Wed Jun 9 00:17:46 2010 +0200 Andoni Morales Alastruey *Fix typo CesarPlayer/Utils/Device.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Tue Jun 8 23:42:37 2010 +0200 Andoni Morales Alastruey *Configure encoders for live encoding and fast seek libcesarplayer/src/gst-camera-capturer.c | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-) Tue Jun 8 23:40:33 2010 +0200 Andoni Morales Alastruey *Fix some leak finalizing GstCameraCapturer object libcesarplayer/src/gst-camera-capturer.c | 21 +++++++++++++++++++-- 1 files changed, 19 insertions(+), 2 deletions(-) Tue Jun 8 00:39:14 2010 +0200 Andoni Morales Alastruey *Add more check for public methods libcesarplayer/src/gst-camera-capturer.c | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) Tue Jun 8 00:38:35 2010 +0200 Andoni Morales Alastruey *Handle better closing the capturing CesarPlayer/Gui/CapturerBin.cs | 81 ++++++++++++++++++++++++++++------------ 1 files changed, 57 insertions(+), 24 deletions(-) Mon Jun 7 01:03:36 2010 +0200 Andoni Morales Alastruey *Don't try to get the capture properties if it's a fake live capture LongoMatch/Utils/ProjectUtils.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Sun Jun 6 23:09:41 2010 +0200 Andoni Morales Alastruey *Clean up capturer bin using the CapturerProperties struct CesarPlayer/Gui/CapturerBin.cs | 109 +++++----------------- LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 1 + LongoMatch/Gui/MainWindow.cs | 1 - 3 files changed, 23 insertions(+), 88 deletions(-) Sun Jun 6 22:58:45 2010 +0200 Andoni Morales Alastruey *Add output file field in the capturer properties struct CesarPlayer/Capturer/CaptureProperties.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sun Jun 6 22:51:35 2010 +0200 Andoni Morales Alastruey *Use a different enum for the capturer GUI type and the camera capturer source type CesarPlayer/Capturer/CaptureProperties.cs | 2 +- CesarPlayer/Capturer/FakeCapturer.cs | 2 +- CesarPlayer/Capturer/GstCameraCapturer.cs | 2 +- CesarPlayer/Capturer/ICapturer.cs | 2 +- CesarPlayer/Common/Enum.cs | 11 ++++++++--- CesarPlayer/Gui/CapturerBin.cs | 12 ++++++------ CesarPlayer/MultimediaFactory.cs | 9 +++------ LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 8 ++++---- LongoMatch/Gui/MainWindow.cs | 4 ++-- 9 files changed, 27 insertions(+), 25 deletions(-) Sun Jun 6 21:15:23 2010 +0200 Andoni Morales Alastruey *Dipose properly the carpturer on error CesarPlayer/Capturer/GstCameraCapturer.cs | 10 ++++++++++ CesarPlayer/Capturer/ICapturer.cs | 2 ++ CesarPlayer/Gui/CapturerBin.cs | 7 +++++++ libcesarplayer/src/gst-camera-capturer.c | 9 ++++++--- libcesarplayer/src/gst-camera-capturer.h | 1 + 5 files changed, 26 insertions(+), 3 deletions(-) Sun Jun 6 20:11:30 2010 +0200 Andoni Morales Alastruey *Check if caps are null before using them to update the stream props libcesarplayer/src/gst-camera-capturer.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) Sun Jun 6 18:11:32 2010 +0200 Andoni Morales Alastruey *Fill the devices list when creating a new project to warn properly if no devices were found LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 60 +++++++++------------ LongoMatch/Gui/Dialog/NewProjectDialog.cs | 8 +++ LongoMatch/Utils/ProjectUtils.cs | 12 ++++ 3 files changed, 46 insertions(+), 34 deletions(-) Sun Jun 6 18:09:15 2010 +0200 Andoni Morales Alastruey *Fix typo. LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sat Jun 5 19:46:46 2010 +0200 Andoni Morales Alastruey *Factor our video formats a common file LongoMatch/Common/Constants.cs | 9 +++++- LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 20 +++++------- LongoMatch/Gui/Dialog/VideoEditionProperties.cs | 35 +++++++++------------ 3 files changed, 31 insertions(+), 33 deletions(-) Sat Jun 5 19:16:50 2010 +0200 Andoni Morales Alastruey *Guess the source type from the combobox and set in the capturer properties LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) Sat Jun 5 19:08:29 2010 +0200 Andoni Morales Alastruey *Add new Device class CesarPlayer/CesarPlayer.mdp | 2 + CesarPlayer/Common/Enum.cs | 6 +++ CesarPlayer/Makefile.am | 1 + CesarPlayer/Utils/Device.cs | 90 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 0 deletions(-) Sat Jun 5 19:06:58 2010 +0200 Andoni Morales Alastruey *Add new Constants class CesarPlayer/Common/Constants.cs | 28 ++++++++++++++++++++++++++++ CesarPlayer/Makefile.am | 1 + 2 files changed, 29 insertions(+), 0 deletions(-) Thu Jun 3 22:13:47 2010 +0200 Andoni Morales Alastruey *Display a readable string if the device is unknown LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Thu Jun 3 21:39:55 2010 +0200 Andoni Morales Alastruey *Use lamemp3enc encoder libcesarplayer/src/gst-camera-capturer.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Thu Jun 3 01:42:44 2010 +0200 Andoni Morales Alastruey *Use our own bin for the capturer source libcesarplayer/src/gst-camera-capturer.c | 78 +++++++++++++++++++++++++----- 1 files changed, 66 insertions(+), 12 deletions(-) Wed Jun 2 21:29:35 2010 +0200 Andoni Morales Alastruey *Added "audio-enabled" property libcesarplayer/src/gst-camera-capturer.c | 28 +++++++++++++++++++++++++++- 1 files changed, 27 insertions(+), 1 deletions(-) Wed Jun 2 21:20:33 2010 +0200 Andoni Morales Alastruey *Fix typo in device property libcesarplayer/src/gst-camera-capturer.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Jun 2 21:11:15 2010 +0200 Andoni Morales Alastruey *Use the right property for the device probbing libcesarplayer/src/gst-camera-capturer.c | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) Wed Jun 2 21:03:09 2010 +0200 Andoni Morales Alastruey *Use camerabin flags to disable audio and src colorspace conversion and scaling libcesarplayer/src/gst-camera-capturer.c | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) Wed Jun 2 20:55:58 2010 +0200 Andoni Morales Alastruey *Copy the string before adding it to the list libcesarplayer/src/gst-camera-capturer.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Thu Jun 3 12:01:56 2010 +0200 Jorge González *Updated Spanish translation po/es.po | 169 ++++++++++++++++++++++++++++++++------------------------------ 1 files changed, 87 insertions(+), 82 deletions(-) Wed Jun 2 14:36:03 2010 +0200 Matej Urbančič *Updated Slovenian translation po/sl.po | 159 +++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 85 insertions(+), 74 deletions(-) Mon May 31 23:10:58 2010 +0200 Petr Kovar *Update Czech translation by Marek Cernocky po/cs.po | 499 +++++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 298 insertions(+), 201 deletions(-) Mon May 31 23:07:12 2010 +0200 Andoni Morales Alastruey *Check the device element before doing anything libcesarplayer/src/gst-camera-capturer.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Mon May 31 23:04:05 2010 +0200 Andoni Morales Alastruey *Don't create a new string to add to the list libcesarplayer/src/gst-camera-capturer.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Mon May 31 21:48:24 2010 +0200 Andoni Morales Alastruey *Rename errors enum to fix a weird issue on win32 libcesarplayer/src/bacon-video-widget-gst-0.10.c | 46 ++++++------ libcesarplayer/src/common.h | 92 +++++++++++----------- libcesarplayer/src/gst-camera-capturer.c | 10 +- libcesarplayer/src/gst-video-editor.c | 4 +- 4 files changed, 76 insertions(+), 76 deletions(-) Mon May 31 21:24:53 2010 +0200 Andoni Morales Alastruey *Update win32 makefile Makefile.win32 | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) Mon May 31 17:36:47 2010 +0200 Mario Blättermann *Updated German translation po/de.po | 181 ++++++++++++++++++++++++++++--------------------------------- 1 files changed, 83 insertions(+), 98 deletions(-) Sun May 30 20:40:16 2010 +0200 Andoni Morales Alastruey *Move SortMethodType Enum to Common LongoMatch/Common/Enums.cs | 7 +++++ LongoMatch/Gui/Component/CategoryProperties.cs | 4 +- LongoMatch/Gui/TreeView/CategoriesTreeView.cs | 2 +- LongoMatch/Gui/TreeView/PlaysTreeView.cs | 29 +++++++++++---------- LongoMatch/IO/SectionsReader.cs | 2 +- LongoMatch/IO/SectionsWriter.cs | 2 +- LongoMatch/Time/SectionsTimeNode.cs | 33 ++++++++++------------- LongoMatch/gtk-gui/objects.xml | 16 ++++++------ 8 files changed, 49 insertions(+), 46 deletions(-) Sun May 30 16:18:03 2010 +0200 Andoni Morales Alastruey *Inrease the max number of players in a template to 100 .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Sun May 30 16:14:00 2010 +0200 Andoni Morales Alastruey *Inetgrate capture device selection with the GUI LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 63 +++++++---- ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 112 ++++++++------------ LongoMatch/gtk-gui/gui.stetic | 94 +++++------------ LongoMatch/gtk-gui/objects.xml | 16 ++-- 4 files changed, 116 insertions(+), 169 deletions(-) Sun May 30 16:00:19 2010 +0200 Andoni Morales Alastruey *Add properties change the source type and the device id CesarPlayer/Capturer/CaptureProperties.cs | 4 ++-- CesarPlayer/Capturer/FakeCapturer.cs | 9 +++++++++ CesarPlayer/Capturer/GstCameraCapturer.cs | 15 +++++++++++++++ CesarPlayer/Capturer/ICapturer.cs | 7 +++++++ CesarPlayer/Gui/CapturerBin.cs | 6 ++++++ libcesarplayer/src/gst-camera-capturer.c | 29 +++++++++++++++++++++++++++++ 6 files changed, 68 insertions(+), 2 deletions(-) Sat May 29 13:01:43 2010 +0200 Andoni Morales Alastruey *Added support for VP8 and WebM !!! CesarPlayer/Common/Enum.cs | 4 +++- LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 9 ++++++++- LongoMatch/Gui/Dialog/VideoEditionProperties.cs | 9 +++++++++ libcesarplayer/src/common.h | 6 ++++-- libcesarplayer/src/gst-camera-capturer.c | 15 +++++++++++++-- libcesarplayer/src/gst-video-editor.c | 12 ++++++++++-- 6 files changed, 47 insertions(+), 8 deletions(-) Sat May 29 12:17:49 2010 +0200 Andoni Morales Alastruey *Return a null project if no file is selected for Capture projects too LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sat May 29 10:19:15 2010 +0200 Andoni Morales Alastruey *Make use of macros to define the default sources libcesarplayer/src/gst-camera-capturer.c | 25 +++++++++---------------- 1 files changed, 9 insertions(+), 16 deletions(-) Sat May 22 21:12:02 2010 +0200 Andoni Morales Alastruey *Add bindings for the set source function CesarPlayer/Capturer/GstCameraCapturer.cs | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) Sat May 22 21:09:43 2010 +0200 Andoni Morales Alastruey *Initialize source type as NONE and then use the default source type at create time libcesarplayer/src/gst-camera-capturer.c | 5 +++-- libcesarplayer/src/gst-camera-capturer.h | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) Thu May 27 15:12:15 2010 +0200 Matej Urbančič *Updated Slovenian translation po/sl.po | 433 +++++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 256 insertions(+), 177 deletions(-) Tue May 25 20:45:13 2010 +0200 Jorge González *Updated Spanish translation po/es.po | 450 ++++++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 274 insertions(+), 176 deletions(-) Mon May 24 17:10:15 2010 +0200 Mario Blättermann *Updated German translation po/de.po | 443 +++++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 269 insertions(+), 174 deletions(-) Sat May 22 01:24:30 2010 +0200 Andoni Morales Alastruey *Merge live capture Sun May 16 16:45:44 2010 +0200 Andoni Morales Alastruey *Resize the video after parsing the stream info to add black borders libcesarplayer/src/gst-camera-capturer.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sun May 16 16:17:42 2010 +0200 Andoni Morales Alastruey *Allow negotiation of any kind of video caps with the source libcesarplayer/src/gst-camera-capturer.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Sun May 16 16:10:17 2010 +0200 Andoni Morales Alastruey *Add support to select between RAW and DV input sources libcesarplayer/src/gst-camera-capturer.c | 94 +++++++++++++++++++----------- libcesarplayer/src/gst-camera-capturer.h | 9 +++ 2 files changed, 69 insertions(+), 34 deletions(-) Tue May 11 02:51:08 2010 +0200 Andoni Morales Alastruey *Use real PAL values and add the "Keep original size" option LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 27 +++++++++++++--------- 1 files changed, 16 insertions(+), 11 deletions(-) Tue May 11 02:23:26 2010 +0200 Andoni Morales Alastruey *Fix inverted height width values in file properties CesarPlayer/Utils/MediaFile.cs | 4 ++-- CesarPlayer/Utils/PreviewMediaFile.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) Tue May 11 02:13:23 2010 +0200 Andoni Morales Alastruey *Show file properties in the projects list LongoMatch/Gui/Component/ProjectListWidget.cs | 23 +++++++++++++++++++++-- 1 files changed, 21 insertions(+), 2 deletions(-) Tue May 11 01:47:52 2010 +0200 Andoni Morales Alastruey *Add codec/lenght/format propeties to the project details LongoMatch/DB/DataBase.cs | 8 +++++++- LongoMatch/DB/ProjectDescription.cs | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletions(-) Tue May 11 01:25:13 2010 +0200 Andoni Morales Alastruey *Use C# 3.0 autoimplemented properties and objects initializers LongoMatch/DB/DataBase.cs | 15 +++-- LongoMatch/DB/ProjectDescription.cs | 107 +++++++---------------------------- 2 files changed, 30 insertions(+), 92 deletions(-) Sun May 9 18:19:09 2010 +0200 Andoni Morales Alastruey *Toggle pause/rec buttons visibility CesarPlayer/Gui/CapturerBin.cs | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-) Sun May 9 17:12:20 2010 +0200 Andoni Morales Alastruey *Use a common header file for errors, encoders, and muxers types libcesarplayer/src/Makefile.am | 1 + libcesarplayer/src/bacon-video-widget-gst-0.10.c | 49 +++++----- libcesarplayer/src/bacon-video-widget.h | 60 ------------- libcesarplayer/src/common.h | 104 ++++++++++++++++++++++ libcesarplayer/src/gst-camera-capturer.c | 61 +++++++------ libcesarplayer/src/gst-camera-capturer.h | 63 +------------ libcesarplayer/src/gst-video-editor.c | 40 +++++---- libcesarplayer/src/gst-video-editor.h | 38 +------- 8 files changed, 192 insertions(+), 224 deletions(-) Sun May 9 15:42:27 2010 +0200 Andoni Morales Alastruey *Cleanup projects' close and load logic LongoMatch/Gui/MainWindow.cs | 177 ++++++++++++++++++++++-------------------- 1 files changed, 92 insertions(+), 85 deletions(-) Sun May 9 17:17:13 2010 +0200 Andoni Morales Alastruey *Fix function badly renamed after merge libcesarplayer/src/gst-camera-capturer.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sat May 8 13:01:07 2010 +0200 Andoni Morales Alastruey *Hide stop and pause buttons if we are not recording CesarPlayer/Gui/CapturerBin.cs | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) Sat May 8 12:41:42 2010 +0200 Andoni Morales Alastruey *Merge branch 'livecapture' into mergelive Sat May 8 11:49:42 2010 +0200 Andoni Morales Alastruey *Save project capture after closing an load the newly created project CesarPlayer/Gui/CapturerBin.cs | 11 +++++++- LongoMatch/Gui/MainWindow.cs | 47 ++++++++++++++++++++++++++++++++++----- 2 files changed, 50 insertions(+), 8 deletions(-) Sat May 8 10:43:56 2010 +0200 Andoni Morales Alastruey *Add fps info to the dummy file LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Sat May 8 10:14:17 2010 +0200 Andoni Morales Alastruey *Transform bitrate from kbps to bps depending on the encoder libcesarplayer/src/gst-camera-capturer.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) Wed May 5 22:17:00 2010 +0200 Andoni Morales Alastruey *Don't allow creating new plays if the capturer is not recording CesarPlayer/Gui/CapturerBin.cs | 11 +++++++++++ LongoMatch/Handlers/EventsManager.cs | 9 ++++++++- 2 files changed, 19 insertions(+), 1 deletions(-) Sun May 2 14:50:09 2010 +0200 Andoni Morales Alastruey *Add an event listener for capturer errors CesarPlayer/Capturer/FakeCapturer.cs | 1 + CesarPlayer/Capturer/ICapturer.cs | 1 + CesarPlayer/Gui/CapturerBin.cs | 13 +++++++++++-- CesarPlayer/gtk-gui/objects.xml | 1 + LongoMatch/Gui/MainWindow.cs | 7 +++++++ LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 3 ++- LongoMatch/gtk-gui/gui.stetic | 1 + 7 files changed, 24 insertions(+), 3 deletions(-) Sun May 2 14:35:33 2010 +0200 Andoni Morales Alastruey *Reorder 'using' LongoMatch/Gui/MainWindow.cs | 26 +++++++++----------------- 1 files changed, 9 insertions(+), 17 deletions(-) Sun May 2 14:28:10 2010 +0200 Andoni Morales Alastruey *Add some properties and signal connections that was done with the stetic designer LongoMatch/Gui/Component/PlayListWidget.cs | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) Sat May 1 13:31:28 2010 +0200 Andoni Morales Alastruey *Always wait for a state change before trying to ge the last frame libcesarplayer/src/bacon-video-widget-gst-0.10.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-) Sat May 1 12:52:02 2010 +0200 Andoni Morales Alastruey *Fix indentation with gst-indent libcesarplayer/src/gst-camera-capturer.c | 200 +++++++++++++++--------------- 1 files changed, 98 insertions(+), 102 deletions(-) Sat May 1 12:47:57 2010 +0200 Andoni Morales Alastruey *Update project files after upgrade to MonoDevelop-2.2 CesarPlayer/CesarPlayer.mdp | 142 ++++---- CesarPlayer/gtk-gui/LongoMatch.Gui.CapturerBin.cs | 12 +- CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs | 10 +- CesarPlayer/gtk-gui/objects.xml | 16 +- LongoMatch.mds | 11 +- LongoMatch/LongoMatch.mdp | 364 ++++++++++---------- .../LongoMatch.Gui.Component.PlayListWidget.cs | 12 +- ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 2 +- .../LongoMatch.Gui.Component.TimeLineWidget.cs | 2 +- .../gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs | 15 +- .../LongoMatch.Gui.Dialog.EditCategoryDialog.cs | 5 +- .../LongoMatch.Gui.Dialog.EditPlayerDialog.cs | 3 +- .../LongoMatch.Gui.Dialog.EndCaptureDialog.cs | 19 +- .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 1 - ...Match.Gui.Dialog.FramesCaptureProgressDialog.cs | 1 - .../LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs | 1 - .../gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs | 1 - .../LongoMatch.Gui.Dialog.OpenProjectDialog.cs | 1 - ...LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs | 1 - ...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs | 3 +- ...Match.Gui.Dialog.ProjectTemplateEditorDialog.cs | 1 - .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 7 +- .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 3 +- .../gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs | 5 +- .../LongoMatch.Gui.Dialog.TeamTemplateEditor.cs | 3 +- .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 23 +- .../gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs | 1 - ...LongoMatch.Gui.Dialog.VideoEditionProperties.cs | 3 +- .../LongoMatch.Gui.Dialog.Win32CalendarDialog.cs | 5 +- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 6 +- LongoMatch/gtk-gui/gui.stetic | 63 ++--- LongoMatch/gtk-gui/objects.xml | 28 +- libcesarplayer/liblongomatch.mdp | 35 +- 33 files changed, 389 insertions(+), 416 deletions(-) Sat May 1 12:42:50 2010 +0200 Andoni Morales Alastruey *Show an error dialog message if the capturer could not be built LongoMatch/Gui/MainWindow.cs | 53 +++++++++++++++++++++++------------------ 1 files changed, 30 insertions(+), 23 deletions(-) Sat May 1 11:18:07 2010 +0200 Andoni Morales Alastruey *Add support to take screenshots from the live source CesarPlayer/Capturer/FakeCapturer.cs | 4 + CesarPlayer/Capturer/GstCameraCapturer.cs | 17 +++ CesarPlayer/Capturer/ICapturer.cs | 5 + CesarPlayer/Gui/CapturerBin.cs | 29 +++++ LongoMatch/Handlers/EventsManager.cs | 8 +- libcesarplayer/src/gst-camera-capturer.c | 162 ++++++++++++++++++++++++++++- libcesarplayer/src/gst-camera-capturer.h | 2 + 7 files changed, 224 insertions(+), 3 deletions(-) Sat May 1 11:05:46 2010 +0200 Andoni Morales Alastruey *Add check for missing plugins initialising the capturer libcesarplayer/src/gst-camera-capturer.c | 35 +++++++++++++++++++++++------ 1 files changed, 27 insertions(+), 8 deletions(-) Mon Apr 26 22:21:44 2010 +0200 Andoni Morales Alastruey *Integrate the capturer in the main window LongoMatch/Gui/MainWindow.cs | 28 ++++--- LongoMatch/Handlers/EventsManager.cs | 14 +-- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 97 ++++++++++++---------- LongoMatch/gtk-gui/gui.stetic | 17 +++- 4 files changed, 86 insertions(+), 70 deletions(-) Mon Apr 26 00:54:19 2010 +0200 Andoni Morales Alastruey *Add Close() funtion to close the capturer CesarPlayer/Capturer/FakeCapturer.cs | 3 +++ CesarPlayer/Capturer/GstCameraCapturer.cs | 7 +++++++ CesarPlayer/Capturer/ICapturer.cs | 2 ++ CesarPlayer/Gui/CapturerBin.cs | 4 ++++ 4 files changed, 16 insertions(+), 0 deletions(-) Sat Apr 24 22:53:31 2010 +0200 Andoni Morales Alastruey *Promp for overwrite when selecting the capture output file LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sat Apr 24 22:52:42 2010 +0200 Andoni Morales Alastruey *Create a dummy File object for Capture projects to set the output file LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) Sun Apr 18 20:49:16 2010 +0200 Andoni Morales Alastruey *Retrieve encoding properties from the project details widget CesarPlayer/Makefile.am | 1 + LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 90 +++- LongoMatch/Gui/Dialog/NewProjectDialog.cs | 7 + LongoMatch/Gui/MainWindow.cs | 9 +- LongoMatch/Utils/ProjectUtils.cs | 8 +- ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 624 +++++++++++--------- .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 4 +- LongoMatch/gtk-gui/gui.stetic | 469 +++++++++------ 8 files changed, 741 insertions(+), 471 deletions(-) Sat Apr 10 12:12:20 2010 +0200 Andoni Morales Alastruey *Update .gitignore .gitignore | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-) Sat Apr 10 12:01:28 2010 +0200 Andoni Morales Alastruey *Add bindings for device enumeration CesarPlayer/Capturer/GstCameraCapturer.cs | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-) Fri Apr 9 01:42:55 2010 +0200 Andoni Morales Alastruey *Add devices enumeration for audio and video libcesarplayer/src/gst-camera-capturer.c | 60 ++++++++++++++++++++++------- libcesarplayer/src/gst-camera-capturer.h | 3 +- 2 files changed, 47 insertions(+), 16 deletions(-) Wed Mar 31 15:38:32 2010 +0200 Andoni Morales Alastruey *Use the new timer for live sources in the capturers CesarPlayer/Capturer/FakeCapturer.cs | 61 ++++++--------------- CesarPlayer/Capturer/GstCameraCapturer.cs | 30 +++++++---- CesarPlayer/CesarPlayer.mdp | 1 + CesarPlayer/gtk-gui/LongoMatch.Gui.CapturerBin.cs | 12 ++-- 4 files changed, 43 insertions(+), 61 deletions(-) Wed Mar 31 15:26:35 2010 +0200 Andoni Morales Alastruey *Added timer for live sources CesarPlayer/Capturer/LiveSourceTimer.cs | 87 +++++++++++++++++++++++++++++++ CesarPlayer/Makefile.am | 1 + 2 files changed, 88 insertions(+), 0 deletions(-) Wed Mar 31 14:55:35 2010 +0200 Andoni Morales Alastruey *Set the capturer type after setting the default properties CesarPlayer/Gui/CapturerBin.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Wed Mar 31 08:58:20 2010 +0200 Andoni Morales Alastruey *Add support for live projects in the projects details widget LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 56 ++- ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 546 +++++++++++--------- ...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs | 1 + .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 4 +- LongoMatch/gtk-gui/gui.stetic | 282 ++++++++--- LongoMatch/gtk-gui/objects.xml | 20 +- 6 files changed, 565 insertions(+), 344 deletions(-) Wed Mar 31 08:15:26 2010 +0200 Andoni Morales Alastruey *Add option for live project in the project selection dialog LongoMatch/Gui/Dialog/ProjectSelectionDialog.cs | 2 + ...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs | 94 +++++++++++++------ LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 43 +++++++++- 4 files changed, 108 insertions(+), 33 deletions(-) Mon Mar 29 20:52:32 2010 +0200 Andoni Morales Alastruey *Update more project files CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs | 36 +++--- .../LongoMatch.Gui.Dialog.NewProjectDialog.cs | 2 +- ...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs | 128 ++++++++------------ LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- 4 files changed, 73 insertions(+), 95 deletions(-) Mon Mar 29 01:41:27 2010 +0200 Andoni Morales Alastruey *Hide logo if it's a live capture CesarPlayer/Gui/CapturerBin.cs | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Mon Mar 29 00:12:52 2010 +0200 Andoni Morales Alastruey *Add Mp4 to muxer's enum CesarPlayer/Capturer/GccVideoMuxerType.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Sun Mar 28 22:46:38 2010 +0200 Andoni Morales Alastruey *Implement all the capturer properties CesarPlayer/Gui/CapturerBin.cs | 75 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 70 insertions(+), 5 deletions(-) Fri Apr 16 21:19:50 2010 +0200 Andoni Morales Alastruey *Add new struct to store encoding porperties CesarPlayer/Capturer/CaptureProperties.cs | 37 +++++++++++++++++++++++++++++ CesarPlayer/CesarPlayer.mdp | 3 +- 2 files changed, 39 insertions(+), 1 deletions(-) Sun Mar 28 22:01:26 2010 +0200 Andoni Morales Alastruey *Add the capturer sources to the project libcesarplayer/liblongomatch.mdp | 4 ++-- libcesarplayer/src/Makefile.am | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) Sun Mar 28 21:58:29 2010 +0200 Andoni Morales Alastruey *Add Run() to ICapturer interface CesarPlayer/Capturer/FakeCapturer.cs | 3 +++ CesarPlayer/Capturer/ICapturer.cs | 2 ++ CesarPlayer/Gui/CapturerBin.cs | 6 +++++- 3 files changed, 10 insertions(+), 1 deletions(-) Sun Mar 28 21:56:49 2010 +0200 Andoni Morales Alastruey *Change size properties' name to Output CesarPlayer/Capturer/FakeCapturer.cs | 4 ++-- CesarPlayer/Capturer/GstCameraCapturer.cs | 16 ++++++++-------- CesarPlayer/Capturer/ICapturer.cs | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) Mon Mar 29 00:10:21 2010 +0200 Andoni Morales Alastruey *Rework on the camera capturer: merged camerabin API changes, embeded video widget and fixed indentation CesarPlayer/Capturer/GstCameraCapturer.cs | 48 +- libcesarplayer/src/gst-camera-capturer.c | 1138 +++++++++++++++++++---------- libcesarplayer/src/gst-camera-capturer.h | 48 +- 3 files changed, 806 insertions(+), 428 deletions(-) Sat Apr 17 04:36:47 2010 +0200 Andoni Morales Alastruey *Update win32 makefile Makefile.win32 | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) Sat Apr 17 04:13:49 2010 +0200 Andoni Morales Alastruey *Fix duration calculation:StreamLenght return a duration in nanoseconds CesarPlayer/Utils/PreviewMediaFile.cs | 2 +- .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 4 ++-- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) Thu Apr 15 20:51:58 2010 +0200 Andoni Morales Alastruey *Update installer win32/installer.iss | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) Tue Apr 13 20:07:08 2010 +0200 Marek Černocký *Updated Czech translation po/cs.po | 140 ++++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 78 insertions(+), 62 deletions(-) Mon Apr 12 21:40:57 2010 +0200 Andoni Morales Alastruey *Added Joan Charmant to Translators string LongoMatch/Common/Constants.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Mon Apr 12 21:34:26 2010 +0200 Andoni Morales Alastruey *Updated French translations po/fr.po | 1282 ++++++++++++++++++++++++++++++++++---------------------------- 1 files changed, 712 insertions(+), 570 deletions(-) Mon Apr 12 21:30:01 2010 +0200 Andoni Morales Alastruey *Delete unused files (see 7aa35f1) CesarPlayer/Handlers/ErrorHandler.cs | 36 ----------------- CesarPlayer/Handlers/Handlers.cs | 41 ------------------- CesarPlayer/Handlers/StateChangedHandler.cs | 34 ---------------- CesarPlayer/Handlers/TickHandler.cs | 56 --------------------------- 4 files changed, 0 insertions(+), 167 deletions(-) Mon Apr 12 21:27:18 2010 +0200 Andoni Morales Alastruey *Update POTFILES template with last changes po/POTFILES.in | 30 ++---------------------------- 1 files changed, 2 insertions(+), 28 deletions(-) Sun Apr 11 16:23:29 2010 +0200 Andoni Morales Alastruey *Refactor CesarPlayer grouping all the handlers in Common/Handlers.cs CesarPlayer/Capturer/FakeCapturer.cs | 1 - CesarPlayer/Capturer/GstCameraCapturer.cs | 7 +- CesarPlayer/Capturer/ICapturer.cs | 1 - CesarPlayer/CesarPlayer.mdp | 10 +-- CesarPlayer/Common/Handlers.cs | 96 ++++++++++++++++++++ CesarPlayer/Editor/GstVideoSplitter.cs | 14 ++-- CesarPlayer/Editor/IVideoEditor.cs | 2 +- CesarPlayer/Editor/IVideoSplitter.cs | 4 +- CesarPlayer/Gui/PlayerBin.cs | 8 +- CesarPlayer/Gui/VolumeWindow.cs | 2 +- CesarPlayer/Makefile.am | 10 +-- CesarPlayer/Player/GstPlayer.cs | 23 +++--- CesarPlayer/Player/IPlayer.cs | 4 +- CesarPlayer/Utils/FramesCapturer.cs | 2 +- LongoMatch/Gui/Component/PlayListWidget.cs | 5 +- .../Gui/Dialog/FramesCaptureProgressDialog.cs | 2 +- LongoMatch/Gui/MainWindow.cs | 3 +- LongoMatch/Handlers/EventsManager.cs | 4 +- LongoMatch/Handlers/VideoDrawingsManager.cs | 2 +- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 6 +- Makefile.win32 | 8 -- 21 files changed, 142 insertions(+), 72 deletions(-) Sat Apr 10 17:06:38 2010 +0200 Andoni Morales Alastruey *Refactor Cesarplayer groupping the enums in Common/Enum.cs CesarPlayer/Capturer/FakeCapturer.cs | 7 +- CesarPlayer/Capturer/GccAudioEncoderType.cs | 32 --- CesarPlayer/Capturer/GccError.cs | 50 ---- CesarPlayer/Capturer/GccType.cs | 29 -- CesarPlayer/Capturer/GccVideoEncoderType.cs | 33 --- CesarPlayer/Capturer/GccVideoMuxerType.cs | 31 --- CesarPlayer/Capturer/GstCameraCapturer.cs | 7 +- CesarPlayer/Capturer/GvcUseType.cs | 33 --- CesarPlayer/Capturer/GvcVideoEncoderType.cs | 36 --- CesarPlayer/Capturer/ICapturer.cs | 7 +- CesarPlayer/CesarPlayer.mdp | 21 +-- CesarPlayer/Common/Enum.cs | 153 +++++++++++ CesarPlayer/Editor/AudioCodec.cs | 33 --- CesarPlayer/Editor/AudioQuality.cs | 35 --- CesarPlayer/Editor/AviMerger.cs | 45 ---- CesarPlayer/Editor/AvidemuxMerger.cs | 79 ------ CesarPlayer/Editor/ConcatMerger.cs | 61 ----- CesarPlayer/Editor/GstVideoCapturer.cs | 310 ----------------------- CesarPlayer/Editor/GstVideoSplitter.cs | 13 +- CesarPlayer/Editor/IMerger.cs | 53 ---- CesarPlayer/Editor/IVideoEditor.cs | 7 +- CesarPlayer/Editor/IVideoSplitter.cs | 7 +- CesarPlayer/Editor/MatroskaMerger.cs | 67 ----- CesarPlayer/Editor/MencoderVideoEditor.cs | 231 ----------------- CesarPlayer/Editor/VideoCodec.cs | 32 --- CesarPlayer/Editor/VideoFormat.cs | 33 --- CesarPlayer/Editor/VideoMuxer.cs | 32 --- CesarPlayer/Editor/VideoQuality.cs | 35 --- CesarPlayer/Editor/VideoSplitterType.cs | 30 --- CesarPlayer/Gui/CapturerBin.cs | 7 +- CesarPlayer/Makefile.am | 24 +-- CesarPlayer/MultimediaFactory.cs | 19 +- CesarPlayer/Player/GstAspectRatio.cs | 34 --- CesarPlayer/Player/GstAudioOutType.cs | 35 --- CesarPlayer/Player/GstError.cs | 52 ---- CesarPlayer/Player/GstMetadataType.cs | 48 ---- CesarPlayer/Player/GstPlayer.cs | 20 +- CesarPlayer/Player/GstUseType.cs | 33 --- CesarPlayer/Player/GstVideoProperty.cs | 33 --- CesarPlayer/Utils/IMetadataReader.cs | 3 +- CesarPlayer/Utils/MediaFile.cs | 17 +- CesarPlayer/Utils/PreviewMediaFile.cs | 31 ++- LongoMatch/Gui/Component/PlayListWidget.cs | 5 +- LongoMatch/Gui/Dialog/VideoEditionProperties.cs | 37 ++-- LongoMatch/Time/PlayListTimeNode.cs | 2 +- Makefile.win32 | 20 +-- libcesarplayer/src/gst-video-editor.c | 16 +- libcesarplayer/src/gst-video-editor.h | 32 ++-- 48 files changed, 280 insertions(+), 1730 deletions(-) Sun Apr 11 19:52:35 2010 +0200 Matej Urbančič *Updated Slovenian translation po/sl.po | 118 +++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 63 insertions(+), 55 deletions(-) Sat Apr 10 19:25:31 2010 +0200 Jorge González *Updated Spanish translation po/es.po | 15 ++++++++++----- 1 files changed, 10 insertions(+), 5 deletions(-) Fri Apr 9 23:15:30 2010 +0200 Mario Blättermann *Updated German translation po/de.po | 148 ++++++++++++++++++++++++++++++++----------------------------- 1 files changed, 78 insertions(+), 70 deletions(-) Fri Apr 9 23:03:40 2010 +0200 Andoni Morales Alastruey *Show a different error message if the stream contains video but the lenght is 0 LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) Fri Apr 9 22:52:40 2010 +0200 Andoni Morales Alastruey *Try to get the stream duration from 2 different ways CesarPlayer/Player/GstPlayer.cs | 2 +- CesarPlayer/Utils/PreviewMediaFile.cs | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) Fri Apr 9 22:27:46 2010 +0200 Francisco Diéguez *Added Galician translations po/LINGUAS | 1 + po/gl.po | 1194 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1195 insertions(+), 0 deletions(-) Wed Apr 7 23:56:38 2010 +0200 Andoni Morales Alastruey *Bump version 0.15.7 configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Apr 7 00:30:26 2010 +0200 Andoni Morales Alastruey *Fix desktop file LongoMatch/longomatch.desktop.in.in | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Apr 7 00:27:29 2010 +0200 Andoni Morales Alastruey *Prepare NEWS and RELEASE for the release NEWS | 7 +++++-- RELEASE | 24 ++++++++++++++++++------ 2 files changed, 23 insertions(+), 8 deletions(-) Tue Apr 6 23:29:30 2010 +0200 Andoni Morales Alastruey *Show the project title instead of the file path LongoMatch/Gui/Dialog/ProjectsManager.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Tue Apr 6 14:55:24 2010 +0200 Jorge González *Updated Spanish translation po/es.po | 112 ++++++++++++++++++++++++++++++++------------------------------ 1 files changed, 58 insertions(+), 54 deletions(-) Tue Apr 6 02:25:23 2010 +0200 Andoni Morales Alastruey *Prepare NEWS and RELEASE NEWS | 10 ++++++++++ RELEASE | 23 ++++++++--------------- 2 files changed, 18 insertions(+), 15 deletions(-) Mon Apr 5 20:43:43 2010 +0200 Andoni Morales Alastruey *Add tooltops to the project template widget ...ngoMatch.Gui.Component.ProjectTemplateWidget.cs | 5 +++++ .../LongoMatch.Gui.Dialog.EditCategoryDialog.cs | 2 +- ...Match.Gui.Dialog.FramesCaptureProgressDialog.cs | 2 +- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 9 +++++++-- 5 files changed, 15 insertions(+), 5 deletions(-) Mon Apr 5 20:34:07 2010 +0200 Andoni Morales Alastruey *Add tooltips to the projects manager .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 3 +++ LongoMatch/gtk-gui/gui.stetic | 3 +++ 2 files changed, 6 insertions(+), 0 deletions(-) Mon Apr 5 20:30:19 2010 +0200 Andoni Morales Alastruey *Add tooltips to the playlist widget .../LongoMatch.Gui.Component.PlayListWidget.cs | 5 +++++ LongoMatch/gtk-gui/gui.stetic | 5 +++++ 2 files changed, 10 insertions(+), 0 deletions(-) Mon Apr 5 20:25:43 2010 +0200 Andoni Morales Alastruey *Prevent firing a wrong seek when the current time can be retrieved libcesarplayer/src/bacon-video-widget-gst-0.10.c | 21 ++++++++++++--------- 1 files changed, 12 insertions(+), 9 deletions(-) Mon Apr 5 19:26:13 2010 +0200 Andoni Morales Alastruey *Fix bug seeking to a wrong position after releasing the timescale CesarPlayer/Gui/PlayerBin.cs | 56 ++++++++++++++++++++++++----------------- 1 files changed, 33 insertions(+), 23 deletions(-) Mon Apr 5 19:34:17 2010 +0200 Andoni Morales Alastruey *Use STEP modifier to trigger the step seek LongoMatch/Common/Constants.cs | 8 ++--- LongoMatch/Gui/MainWindow.cs | 70 +++++++++++++++++++++------------------ 2 files changed, 41 insertions(+), 37 deletions(-) Mon Apr 5 18:31:58 2010 +0200 Andoni Morales Alastruey *Enable use of arrows for frame seeking and framerate changes CesarPlayer/Gui/PlayerBin.cs | 7 +++++++ CesarPlayer/gtk-gui/LongoMatch.Gui.CapturerBin.cs | 3 --- CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs | 7 ------- CesarPlayer/gtk-gui/gui.stetic | 10 ---------- LongoMatch/Common/Constants.cs | 8 ++++---- LongoMatch/Gui/Component/ButtonsWidget.cs | 3 +++ LongoMatch/Gui/MainWindow.cs | 5 ++--- LongoMatch/Gui/TreeView/PlayersTreeView.cs | 6 +++++- LongoMatch/Gui/TreeView/PlaysTreeView.cs | 5 +++++ LongoMatch/Gui/TreeView/TagsTreeView.cs | 7 ++++++- .../LongoMatch.Gui.Component.ButtonsWidget.cs | 2 -- .../LongoMatch.Gui.Component.TimeLineWidget.cs | 2 -- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 5 ----- 14 files changed, 33 insertions(+), 39 deletions(-) Mon Apr 5 17:10:16 2010 +0200 Andoni Morales Alastruey *Add tooltips to the capturer widget CesarPlayer/gtk-gui/LongoMatch.Gui.CapturerBin.cs | 3 +++ CesarPlayer/gtk-gui/gui.stetic | 3 +++ 2 files changed, 6 insertions(+), 0 deletions(-) Mon Apr 5 17:07:03 2010 +0200 Andoni Morales Alastruey *Rename 'toggle_pause' to 'pause' isnce there is no toggling. CesarPlayer/Capturer/FakeCapturer.cs | 15 ++------- CesarPlayer/Capturer/GstCameraCapturer.cs | 6 ++-- CesarPlayer/Capturer/ICapturer.cs | 2 +- CesarPlayer/Gui/CapturerBin.cs | 33 ++++++++++++++------ CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs | 36 +++++++++++----------- LongoMatch/Gui/MainWindow.cs | 2 +- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- libcesarplayer/src/gst-camera-capturer.c | 2 +- libcesarplayer/src/gst-camera-capturer.h | 2 +- 9 files changed, 52 insertions(+), 48 deletions(-) Mon Apr 5 16:48:29 2010 +0200 Andoni Morales Alastruey *Enable toggling capture state using the keyborad LongoMatch/Gui/MainWindow.cs | 54 ++++++++++++++++++++++++------------------ 1 files changed, 31 insertions(+), 23 deletions(-) Mon Apr 5 16:40:57 2010 +0200 Andoni Morales Alastruey *Disable the transparent drawing tool LongoMatch/Gui/MainWindow.cs | 5 ----- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 4 ++-- LongoMatch/gtk-gui/gui.stetic | 3 +-- 3 files changed, 3 insertions(+), 9 deletions(-) Mon Apr 5 16:37:48 2010 +0200 Andoni Morales Alastruey *Add tooltips to the drawing tool box .../LongoMatch.Gui.Component.DrawingToolBox.cs | 10 ++++++++++ LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 13 ++++++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) Mon Apr 5 16:29:37 2010 +0200 Andoni Morales Alastruey *Don't save projects that wasn't loaded successfully LongoMatch/Gui/MainWindow.cs | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Mon Apr 5 16:27:16 2010 +0200 Andoni Morales Alastruey *Always remove the logo mode after setting a project. LongoMatch/Gui/MainWindow.cs | 7 +------ 1 files changed, 1 insertions(+), 6 deletions(-) Mon Apr 5 16:26:16 2010 +0200 Andoni Morales Alastruey *Check if the project is null and remove an indentation level LongoMatch/Gui/MainWindow.cs | 120 +++++++++++++++++++++-------------------- 1 files changed, 61 insertions(+), 59 deletions(-) Mon Apr 5 16:23:08 2010 +0200 Andoni Morales Alastruey *Fix regression opening projects using a file that is not available in the system LongoMatch/Gui/MainWindow.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Mon Apr 5 16:12:05 2010 +0200 Andoni Morales Alastruey *Clean-up variables declaration CesarPlayer/Utils/MediaFile.cs | 11 +++-------- 1 files changed, 3 insertions(+), 8 deletions(-) Mon Apr 5 16:10:15 2010 +0200 Andoni Morales Alastruey *Dispose the player properly after an error opening a file CesarPlayer/Utils/MediaFile.cs | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) Mon Apr 5 16:08:09 2010 +0200 Andoni Morales Alastruey *Remove unexisting category 'Sports' from the desktop file LongoMatch/longomatch.desktop.in.in | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) Mon Apr 5 15:55:15 2010 +0200 Andoni Morales Alastruey *Ensure using a file with a valid video stream for new projects LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Wed Mar 31 19:47:58 2010 +0200 Matej Urbančič *Updated Slovenian translation po/sl.po | 16 +++++++++++----- 1 files changed, 11 insertions(+), 5 deletions(-) Wed Mar 31 00:01:47 2010 +0200 Andoni Morales Alastruey *Bump version 0.15.6 configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Mar 31 00:01:18 2010 +0200 Andoni Morales Alastruey *Delete gstreamer registry in the windows installation win32/installer.iss | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) Tue Mar 30 23:33:17 2010 +0200 Andoni Morales Alastruey *Update RELEASE and NEWS NEWS | 18 +++++++++++++++ RELEASE | 75 ++++++++++++++++++++++++++++++++------------------------------ 2 files changed, 57 insertions(+), 36 deletions(-) Tue Mar 30 00:47:20 2010 +0200 Andoni Morales Alastruey *Bump version 0.15.2.2 configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Tue Mar 30 20:52:54 2010 +0200 Jorge González *Updated Spanish translation po/es.po | 17 +++++++++++------ 1 files changed, 11 insertions(+), 6 deletions(-) Mon Mar 29 23:55:09 2010 +0200 Andoni Morales Alastruey *Fix typo ...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) Mon Mar 29 23:48:36 2010 +0200 Andoni Morales Alastruey *Add missing files to the windows makefile Makefile.win32 | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Mon Mar 29 23:42:33 2010 +0200 Andoni Morales Alastruey *Update translators string LongoMatch/Common/Constants.cs | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) Mon Mar 29 23:33:53 2010 +0200 Andoni Morales Alastruey *Update GUI related files .../LongoMatch.Gui.Dialog.NewProjectDialog.cs | 2 +- ...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs | 127 ++++++++------------ LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 5 +- LongoMatch/gtk-gui/gui.stetic | 3 +- 4 files changed, 57 insertions(+), 80 deletions(-) Mon Mar 29 23:33:11 2010 +0200 Andoni Morales Alastruey *Override the DeleteEvent to ask before quiting LongoMatch/Gui/MainWindow.cs | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) Mon Mar 29 22:58:44 2010 +0200 Mario Blättermann *Updated German translation po/de.po | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) Mon Mar 29 21:26:29 2010 +0200 Andoni Morales Alastruey *Update spanish translation po/es.po | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Mon Mar 29 21:15:26 2010 +0200 Andoni Morales Alastruey *Add missing file to POTFILES.in po/POTFILES.in | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Mon Mar 29 21:08:38 2010 +0200 Andoni Morales Alastruey *Update windows build/deploy scripts Makefile.win32 | 20 ++++++++++++++++---- win32/deploy_win32.py | 2 +- 2 files changed, 17 insertions(+), 5 deletions(-) Mon Mar 29 17:46:17 2010 +0200 Petr Kovar *Update Czech translation by Marek Cernocky po/cs.po | 12 ++++-------- 1 files changed, 4 insertions(+), 8 deletions(-) Sun Mar 28 19:50:40 2010 +0200 Mario Blättermann *Updated German translation po/de.po | 42 +++++++++++++++++++----------------------- 1 files changed, 19 insertions(+), 23 deletions(-) Sun Mar 28 19:14:47 2010 +0200 Marek Černocký *Update Czech translation po/cs.po | 392 ++++++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 243 insertions(+), 149 deletions(-) Sun Mar 28 18:03:22 2010 +0200 Andoni Morales Alastruey *Delete unused files libcesarplayer/src/Makefile.am | 2 - libcesarplayer/src/gst-video-capturer.c | 735 ------------------------------- libcesarplayer/src/gst-video-capturer.h | 81 ---- 3 files changed, 0 insertions(+), 818 deletions(-) Sun Mar 28 16:10:43 2010 +0200 Andoni Morales Alastruey *Change icons's position in the project selection dialog .../LongoMatch.Gui.Dialog.NewProjectDialog.cs | 2 +- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 79 ++++++------------- 3 files changed, 27 insertions(+), 56 deletions(-) Sun Mar 28 13:42:05 2010 +0200 Jorge González *Updated Spanish translation po/es.po | 21 ++++++++------------- 1 files changed, 8 insertions(+), 13 deletions(-) Sun Mar 28 12:17:52 2010 +0200 Matej Urbančič *Updated Slovenian translation po/sl.po | 383 +++++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 232 insertions(+), 151 deletions(-) Sat Mar 27 14:23:03 2010 +0100 Andoni Morales Alastruey *Remove 'New' from the project type enum. LongoMatch/Common/Enums.cs | 6 +++--- LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 14 +++++++------- LongoMatch/Gui/Dialog/ProjectSelectionDialog.cs | 4 ++-- LongoMatch/Gui/MainWindow.cs | 14 +++++++------- LongoMatch/Handlers/EventsManager.cs | 12 ++++++------ LongoMatch/Utils/ProjectUtils.cs | 2 +- 6 files changed, 26 insertions(+), 26 deletions(-) Sat Mar 27 14:09:25 2010 +0100 Andoni Morales Alastruey *Prompt to close the project even if it's a file project LongoMatch/Gui/MainWindow.cs | 16 +++++++++++++--- 1 files changed, 13 insertions(+), 3 deletions(-) Sat Mar 27 09:21:24 2010 +0100 Andoni Morales Alastruey *Ungrab the pointer after clicking the player's event box CesarPlayer/Gui/PlayerBin.cs | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) Fri Mar 26 22:38:38 2010 +0100 Mario Blättermann *Updated German translation po/de.po | 397 ++++++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 245 insertions(+), 152 deletions(-) Fri Mar 26 20:03:21 2010 +0100 Jorge González *Updated Spanish translation po/es.po | 397 ++++++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 245 insertions(+), 152 deletions(-) Fri Mar 26 02:10:51 2010 +0100 Andoni Morales Alastruey *Added new tagging mode using start and stop time LongoMatch/Common/Enums.cs | 5 + LongoMatch/Gui/Component/ButtonsWidget.cs | 53 ++++++- LongoMatch/Gui/MainWindow.cs | 31 ++-- LongoMatch/Handlers/EventsManager.cs | 31 ++++- LongoMatch/Handlers/Handlers.cs | 4 + LongoMatch/LongoMatch.mdp | 2 +- .../LongoMatch.Gui.Component.ButtonsWidget.cs | 41 +++++- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 14 ++- LongoMatch/gtk-gui/gui.stetic | 178 +++++++++++++------- LongoMatch/gtk-gui/objects.xml | 56 ++++--- 10 files changed, 304 insertions(+), 111 deletions(-) Fri Mar 26 00:38:00 2010 +0100 Andoni Morales Alastruey *Refactor prepareing for the new mark event based on duration LongoMatch/Handlers/EventsManager.cs | 63 ++++++++++++++++++---------------- 1 files changed, 33 insertions(+), 30 deletions(-) Sat Mar 20 21:29:57 2010 +0100 Andoni Morales Alastruey *Update POTFILES.in with last changes po/POTFILES.in | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) Sat Mar 20 21:17:59 2010 +0100 Andoni Morales Alastruey *Added extra keyboard shortcuts to the video player CesarPlayer/Gui/PlayerBin.cs | 35 ++++++++++++++++-- CesarPlayer/gtk-gui/LongoMatch.Gui.CapturerBin.cs | 12 +++--- CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs | 39 ++++++++++---------- CesarPlayer/gtk-gui/gui.stetic | 3 +- LongoMatch/Common/Constants.cs | 15 ++++++++ LongoMatch/Gui/MainWindow.cs | 27 ++++++++++++-- ...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs | 12 +++++- 7 files changed, 106 insertions(+), 37 deletions(-) Sat Mar 20 11:47:36 2010 +0100 Andoni Morales Alastruey *Display the logo scaled and filling all the window. CesarPlayer/Gui/CapturerBin.cs | 20 +++++++++++----- CesarPlayer/gtk-gui/LongoMatch.Gui.CapturerBin.cs | 16 ++++++------ CesarPlayer/gtk-gui/gui.stetic | 25 +++++++++----------- 3 files changed, 33 insertions(+), 28 deletions(-) Sat Mar 20 10:36:44 2010 +0100 Andoni Morales Alastruey *Created dialog with progress bar to show the thumbnailing progress LongoMatch/Gui/Dialog/BusyDialog.cs | 44 ++++++++++++++ LongoMatch/LongoMatch.mdp | 2 + LongoMatch/Makefile.am | 2 + LongoMatch/Utils/ProjectUtils.cs | 13 ++++- .../gtk-gui/LongoMatch.Gui.Dialog.BusyDialog.cs | 62 ++++++++++++++++++++ LongoMatch/gtk-gui/gui.stetic | 39 ++++++++++++ 6 files changed, 161 insertions(+), 1 deletions(-) Sat Mar 20 02:29:29 2010 +0100 Andoni Morales Alastruey *Add icons to new project selection dialog LongoMatch/LongoMatch.mdp | 2 ++ LongoMatch/Makefile.am | 4 +++- .../LongoMatch.Gui.Dialog.NewProjectDialog.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 14 ++++++++------ LongoMatch/images/camera-video.png | Bin 0 -> 1660 bytes LongoMatch/images/video.png | Bin 0 -> 2044 bytes Makefile.win32 | 5 ++++- 7 files changed, 18 insertions(+), 9 deletions(-) Sat Mar 20 02:05:55 2010 +0100 Andoni Morales Alastruey *Factor out some constants from to Common/Constants LongoMatch/Common/Constants.cs | 17 +++++++++++++++-- LongoMatch/Gui/MainWindow.cs | 15 +++------------ 2 files changed, 18 insertions(+), 14 deletions(-) Mon Mar 15 22:36:12 2010 +0100 Andoni Morales Alastruey *Refactor to clean up MainWindow LongoMatch/Common/Constants.cs | 4 + LongoMatch/Gui/Dialog/ProjectsManager.cs | 12 +- LongoMatch/Gui/MainWindow.cs | 454 +++++++++--------------------- LongoMatch/LongoMatch.mdp | 2 + LongoMatch/Makefile.am | 3 +- LongoMatch/Utils/ProjectUtils.cs | 269 ++++++++++++++++++ 6 files changed, 415 insertions(+), 329 deletions(-) Sun Mar 14 15:10:29 2010 +0100 Andoni Morales Alastruey *Change the message type to "Info" enabling only the OK button LongoMatch/Gui/MainWindow.cs | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) Sat Mar 13 14:22:07 2010 +0100 Andoni Morales Alastruey *Use the new dialog EndCaptureDialog when closing a capture project LongoMatch/Gui/MainWindow.cs | 55 +++++++++++++++++++++++++---------------- 1 files changed, 33 insertions(+), 22 deletions(-) Sat Mar 13 13:51:26 2010 +0100 Andoni Morales Alastruey *Add Logo property to the capturer bin CesarPlayer/Gui/CapturerBin.cs | 61 +++++++++- CesarPlayer/gtk-gui/LongoMatch.Gui.CapturerBin.cs | 139 +++++++++++---------- CesarPlayer/gtk-gui/gui.stetic | 27 +++- 3 files changed, 152 insertions(+), 75 deletions(-) Sat Mar 13 13:45:34 2010 +0100 Andoni Morales Alastruey *Add background to the capturer bin LongoMatch/Gui/MainWindow.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sat Mar 13 13:44:51 2010 +0100 Andoni Morales Alastruey *Refactor MainWindow LongoMatch/Gui/MainWindow.cs | 29 +++++++++++++++-------------- 1 files changed, 15 insertions(+), 14 deletions(-) Sat Mar 13 13:21:44 2010 +0100 Andoni Morales Alastruey *Added new dialog to prompt when closing a capture project LongoMatch/Common/Enums.cs | 6 + LongoMatch/Gui/Dialog/EndCaptureDialog.cs | 44 +++++ LongoMatch/LongoMatch.mdp | 2 + LongoMatch/Makefile.am | 2 + .../LongoMatch.Gui.Dialog.EndCaptureDialog.cs | 194 ++++++++++++++++++++ LongoMatch/gtk-gui/gui.stetic | 152 +++++++++++++++ 6 files changed, 400 insertions(+), 0 deletions(-) Sun Mar 7 18:53:57 2010 +0100 Andoni Morales Alastruey *Alwasy close the current project after SaveFakeProject LongoMatch/Gui/MainWindow.cs | 12 ++++-------- 1 files changed, 4 insertions(+), 8 deletions(-) Sun Mar 7 18:41:49 2010 +0100 Andoni Morales Alastruey *Save the database before setting the openedProject to null. LongoMatch/Gui/MainWindow.cs | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) Sun Mar 7 18:40:56 2010 +0100 Andoni Morales Alastruey *Improve user interaction when closing a fake live capture project. LongoMatch/Gui/MainWindow.cs | 23 +++++++++++++++-------- 1 files changed, 15 insertions(+), 8 deletions(-) Sun Mar 7 18:08:03 2010 +0100 Andoni Morales Alastruey *Open a NewProjectDialog when importing a fake live project LongoMatch/Gui/MainWindow.cs | 79 ++++++++++++++++++++++++++++-------------- 1 files changed, 53 insertions(+), 26 deletions(-) Sun Mar 7 18:07:03 2010 +0100 Andoni Morales Alastruey *Return a null project if File is null LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) Sun Mar 7 18:06:22 2010 +0100 Andoni Morales Alastruey *Remove redundant check. UpdateProject() will only be called for EditProject type LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) Sun Mar 7 17:43:18 2010 +0100 Andoni Morales Alastruey *Allow setting projects with null File object LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sun Mar 7 17:26:17 2010 +0100 Andoni Morales Alastruey *Added Project property LongoMatch/Gui/Dialog/NewProjectDialog.cs | 13 +++++++++---- LongoMatch/Gui/MainWindow.cs | 4 ++-- 2 files changed, 11 insertions(+), 6 deletions(-) Sun Mar 7 16:12:40 2010 +0100 Andoni Morales Alastruey *Reset Capture Mode for live projects LongoMatch/Gui/MainWindow.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Sun Mar 7 16:09:28 2010 +0100 Andoni Morales Alastruey *Add a dummy file for fkae live projects LongoMatch/Common/Constants.cs | 5 ++++- LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 9 ++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) Sat Mar 6 23:58:11 2010 +0100 Andoni Morales Alastruey *Save fake live projects to a file when the capture finishes LongoMatch/Gui/MainWindow.cs | 46 ++++++++++++++++++++++++++++++++++++----- 1 files changed, 40 insertions(+), 6 deletions(-) Sat Mar 6 23:57:13 2010 +0100 Andoni Morales Alastruey *Rename StopEvent to CaptureFinished and fire the event CesarPlayer/Gui/CapturerBin.cs | 9 +++++---- CesarPlayer/gtk-gui/gui.stetic | 1 - CesarPlayer/gtk-gui/objects.xml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) Sat Mar 6 23:24:37 2010 +0100 Andoni Morales Alastruey *Hide menus options for live projects LongoMatch/Gui/MainWindow.cs | 15 ++++++++------- 1 files changed, 8 insertions(+), 7 deletions(-) Sat Mar 6 19:09:07 2010 +0100 Andoni Morales Alastruey *Disable menu options for live projects. LongoMatch/Gui/Component/PlayersListTreeWidget.cs | 6 +++++ LongoMatch/Gui/Component/PlaysListTreeWidget.cs | 9 +++++-- LongoMatch/Gui/Component/TagsTreeWidget.cs | 6 +++++ LongoMatch/Gui/MainWindow.cs | 8 ++++++ LongoMatch/Gui/TreeView/PlayersTreeView.cs | 25 ++++++++++++++++---- LongoMatch/Gui/TreeView/PlaysTreeView.cs | 18 ++++++++++++-- LongoMatch/Gui/TreeView/TagsTreeView.cs | 19 ++++++++++++--- LongoMatch/Handlers/EventsManager.cs | 8 ++++-- 8 files changed, 81 insertions(+), 18 deletions(-) Sat Mar 6 17:15:03 2010 +0100 Andoni Morales Alastruey *Don't hide the file column if the project is beeing edited LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) Sat Mar 6 16:14:52 2010 +0100 Andoni Morales Alastruey *Update gui files .../LongoMatch.Gui.Component.DrawingToolBox.cs | 1 - .../LongoMatch.Gui.Component.PlayListWidget.cs | 5 ---- .../LongoMatch.Gui.Component.TimeAdjustWidget.cs | 1 - .../LongoMatch.Gui.Component.TimeLineWidget.cs | 1 - ...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs | 1 - .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 1 - .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 3 -- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 24 ++++++++++---------- LongoMatch/gtk-gui/gui.stetic | 2 +- 9 files changed, 13 insertions(+), 26 deletions(-) Thu Mar 4 23:29:47 2010 +0100 Andoni Morales Alastruey *Close the player before unsetting anything in the EventsManager LongoMatch/Gui/MainWindow.cs | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) Thu Mar 4 23:24:08 2010 +0100 Andoni Morales Alastruey *Retrieve the current time on a new marl using the apropiate device LongoMatch/Gui/MainWindow.cs | 4 ++- LongoMatch/Handlers/EventsManager.cs | 45 +++++++++++++++++++++++++-------- 2 files changed, 37 insertions(+), 12 deletions(-) Thu Mar 4 00:31:47 2010 +0100 Andoni Morales Alastruey *Set a null pixbuf for new plays with the fake capturer LongoMatch/Handlers/EventsManager.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Thu Mar 4 00:29:32 2010 +0100 Andoni Morales Alastruey *Set a default framerate for projects with unknnown files LongoMatch/DB/Project.cs | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) Wed Mar 3 23:38:12 2010 +0100 Andoni Morales Alastruey *Add new 'None' enum type for projects LongoMatch/Common/Enums.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Wed Mar 3 22:21:18 2010 +0100 Andoni Morales Alastruey *Fix timing in fake capturer CesarPlayer/Capturer/FakeCapturer.cs | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) Wed Mar 3 21:38:30 2010 +0100 Andoni Morales Alastruey *Allow projects with NULL MediaFile. LongoMatch/DB/Project.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Mar 3 23:40:01 2010 +0100 Andoni Morales Alastruey *Initial support for fake live projects LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 37 +++-- LongoMatch/Gui/MainWindow.cs | 169 +++++++++++++++------- LongoMatch/Handlers/EventsManager.cs | 8 + 3 files changed, 150 insertions(+), 64 deletions(-) Sat Feb 20 19:54:27 2010 +0100 Andoni Morales Alastruey *Add dialog for new project selection LongoMatch/Gui/Dialog/ProjectSelectionDialog.cs | 44 +++++ LongoMatch/LongoMatch.mdp | 2 + LongoMatch/Makefile.am | 2 + ...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs | 170 ++++++++++++++++++ LongoMatch/gtk-gui/gui.stetic | 183 +++++++++++++++++++- 5 files changed, 397 insertions(+), 4 deletions(-) Sat Feb 20 19:51:38 2010 +0100 Andoni Morales Alastruey *Add fake live project type LongoMatch/Common/Enums.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Thu Feb 18 01:14:25 2010 +0100 Andoni Morales Alastruey *Update monodevelop solution and Stetic genereated files CesarPlayer/CesarPlayer.mdp | 2 +- CesarPlayer/gtk-gui/LongoMatch.Gui.CapturerBin.cs | 5 ++--- CesarPlayer/gtk-gui/gui.stetic | 5 ++++- CesarPlayer/gtk-gui/objects.xml | 12 ++++++++---- .../LongoMatch.Gui.Component.DrawingToolBox.cs | 1 + .../LongoMatch.Gui.Component.PlayListWidget.cs | 5 +++++ .../LongoMatch.Gui.Component.TimeAdjustWidget.cs | 1 + .../LongoMatch.Gui.Component.TimeLineWidget.cs | 1 + .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 1 + .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 3 +++ LongoMatch/gtk-gui/gui.stetic | 2 ++ 11 files changed, 29 insertions(+), 9 deletions(-) Thu Feb 18 00:40:15 2010 +0100 Andoni Morales Alastruey *Add StopEvent to signal the stop of the capture CesarPlayer/Gui/CapturerBin.cs | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) Thu Feb 18 00:38:41 2010 +0100 Andoni Morales Alastruey *Show a warning message before stopping the capture CesarPlayer/Gui/CapturerBin.cs | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) Thu Feb 18 00:31:56 2010 +0100 Andoni Morales Alastruey *Toggle visibility of control volume depending on the state CesarPlayer/Gui/CapturerBin.cs | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) Thu Feb 18 00:26:42 2010 +0100 Andoni Morales Alastruey *Delete redundant code CesarPlayer/Gui/CapturerBin.cs | 24 ++++++++++++------------ 1 files changed, 12 insertions(+), 12 deletions(-) Thu Feb 18 00:24:32 2010 +0100 Andoni Morales Alastruey *Update ellpased time using EllapasedTime event CesarPlayer/Gui/CapturerBin.cs | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) Wed Feb 17 22:34:08 2010 +0100 Andoni Morales Alastruey *Add property to set the capturer type CesarPlayer/Gui/CapturerBin.cs | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-) Wed Feb 17 22:24:28 2010 +0100 Andoni Morales Alastruey *Change capturer factory to add new capturer types CesarPlayer/MultimediaFactory.cs | 100 +++++++++++++++++-------------------- 1 files changed, 46 insertions(+), 54 deletions(-) Wed Feb 17 22:19:33 2010 +0100 Andoni Morales Alastruey *Add enum for capturer types CesarPlayer/Capturer/GccType.cs | 29 +++++++++++++++++++++++++++++ CesarPlayer/CesarPlayer.mdp | 1 + CesarPlayer/Makefile.am | 1 + 3 files changed, 31 insertions(+), 0 deletions(-) Wed Feb 17 22:15:41 2010 +0100 Andoni Morales Alastruey *Delete unused code CesarPlayer/MultimediaFactory.cs | 13 ------------- 1 files changed, 0 insertions(+), 13 deletions(-) Wed Feb 17 22:06:20 2010 +0100 Andoni Morales Alastruey *Add a timer to notify the ellapsed time CesarPlayer/Capturer/FakeCapturer.cs | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-) Wed Feb 17 22:01:06 2010 +0100 Andoni Morales Alastruey *Add EllpasedTime event to capturers CesarPlayer/Capturer/FakeCapturer.cs | 3 +++ CesarPlayer/Capturer/GstCameraCapturer.cs | 3 +++ CesarPlayer/Capturer/ICapturer.cs | 4 +++- CesarPlayer/Handlers/Handlers.cs | 1 + 4 files changed, 10 insertions(+), 1 deletions(-) Wed Feb 17 21:53:14 2010 +0100 Andoni Morales Alastruey *Add a timer to the CapturerBin CesarPlayer/gtk-gui/LongoMatch.Gui.CapturerBin.cs | 32 ++++++- CesarPlayer/gtk-gui/gui.stetic | 95 +++++++++++++-------- 2 files changed, 89 insertions(+), 38 deletions(-) Wed Feb 17 21:18:19 2010 +0100 Andoni Morales Alastruey *Add FakeCapturer, which simulate a capture device for fake live analysis CesarPlayer/Capturer/FakeCapturer.cs | 110 ++++++++++++++++++++++++++++++++++ CesarPlayer/CesarPlayer.mdp | 3 +- CesarPlayer/Makefile.am | 1 + 3 files changed, 113 insertions(+), 1 deletions(-) Wed Feb 17 21:21:12 2010 +0100 Andoni Morales Alastruey *Addapt GstCameraCapturer and CaptrurerBin to new ICapturer interface CesarPlayer/Capturer/GstCameraCapturer.cs | 13 +++++++++++-- CesarPlayer/Gui/CapturerBin.cs | 21 +++++++++------------ 2 files changed, 20 insertions(+), 14 deletions(-) Wed Feb 17 21:15:43 2010 +0100 Andoni Morales Alastruey *Clean up the capturer interface, remove run() and add CurrentTime property CesarPlayer/Capturer/ICapturer.cs | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) Tue Mar 23 23:16:49 2010 +0100 Andoni Morales Alastruey *Query duration in the READY to PAUSED state transition. libcesarplayer/src/bacon-video-widget-gst-0.10.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) Tue Mar 23 23:13:48 2010 +0100 Andoni Morales Alastruey *Add missing zlib1.dll dependency to the win32 deploy script win32/deploy_win32.py | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Mon Mar 15 15:04:15 2010 +0100 Kjartan Maraas *Add Norwegian language entry. po/LINGUAS | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Mon Mar 15 15:04:04 2010 +0100 Kjartan Maraas *Added Norwegian bokmål translation po/nb.po | 1100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1100 insertions(+), 0 deletions(-) Sat Mar 6 16:56:42 2010 +0100 Andoni Morales Alastruey *Prevent cancelling the edition using an already deallocated Handle CesarPlayer/Editor/GstVideoSplitter.cs | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) Sat Mar 6 16:26:36 2010 +0100 Andoni Morales Alastruey *Fix print of hotkeys without modifier LongoMatch/Time/HotKey.cs | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Mon Mar 1 21:56:18 2010 +0100 Petr Kovar *Update Czech help translation by Marek Cernocky po/cs.po | 76 +++++++++++++++++++++++++++----------------------------------- 1 files changed, 33 insertions(+), 43 deletions(-) Tue Feb 23 23:12:31 2010 +0100 Joe Hansen *Updated Danish translation po/da.po | 1113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1113 insertions(+), 0 deletions(-) Tue Feb 23 23:12:31 2010 +0100 Kenneth Nielsen *Added da to list of languages po/LINGUAS | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Mon Feb 22 15:25:26 2010 +0100 Matej Urbančič *Updated Slovenian translation po/sl.po | 56 +++++++++++++++++++++++++++----------------------------- 1 files changed, 27 insertions(+), 29 deletions(-) Sun Feb 21 17:13:18 2010 +0100 Mario Blättermann *Updated German translation po/de.po | 63 +++++++++++++++++++++++++++++++------------------------------ 1 files changed, 32 insertions(+), 31 deletions(-) Sun Feb 21 11:32:48 2010 +0100 Jorge González *Updated Spanish translation po/es.po | 69 +++++++++++++++++++++++++++++++------------------------------ 1 files changed, 35 insertions(+), 34 deletions(-) Sat Feb 20 20:05:23 2010 +0100 Andoni Morales Alastruey *Fix string typos LongoMatch/DB/DataBase.cs | 2 +- LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 2 +- LongoMatch/Handlers/EventsManager.cs | 2 +- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 6 +++--- LongoMatch/gtk-gui/gui.stetic | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) Mon Feb 15 21:46:12 2010 +0100 Jorge González *Updated Spanish translation po/es.po | 34 +++++++++++++++++++--------------- 1 files changed, 19 insertions(+), 15 deletions(-) Mon Feb 15 19:59:14 2010 +0100 Andoni Morales Alastruey *Don't hide the playlist when project is closed LongoMatch/Gui/MainWindow.cs | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) Mon Feb 15 01:21:44 2010 +0100 Andoni Morales Alastruey *Revert "Don't try to set the xoverlay window in expose()." libcesarplayer/src/bacon-video-widget-gst-0.10.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) Sun Feb 14 21:38:13 2010 +0100 Andoni Morales Alastruey *Don't try to set the xoverlay window in expose(). This should be handled with the "prepare-xwindow-id" message libcesarplayer/src/bacon-video-widget-gst-0.10.c | 12 ------------ 1 files changed, 0 insertions(+), 12 deletions(-) Sun Feb 14 12:02:55 2010 +0100 Mario Blättermann *Updated German translation po/de.po | 22 +++++++++++++--------- 1 files changed, 13 insertions(+), 9 deletions(-) Wed Feb 10 16:36:56 2010 +0100 Matej Urbančič *Updated Slovenian translation po/sl.po | 21 ++++++++++----------- 1 files changed, 10 insertions(+), 11 deletions(-) Sat Feb 6 15:34:47 2010 +0100 Andoni Morales Alastruey *Fix typos LongoMatch/Common/Constants.cs | 10 ++++++---- LongoMatch/Gui/Dialog/ProjectsManager.cs | 2 +- LongoMatch/Gui/MainWindow.cs | 4 ++-- LongoMatch/Handlers/EventsManager.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 8 ++++---- 5 files changed, 14 insertions(+), 12 deletions(-) Sat Feb 6 15:13:21 2010 +0100 Andoni Morales Alastruey *Update tags list when a new tag has been added LongoMatch/Gui/Component/TagsTreeWidget.cs | 6 +++--- LongoMatch/Handlers/EventsManager.cs | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) Sat Feb 6 15:12:38 2010 +0100 Andoni Morales Alastruey *Add Common/Constants.cs to the project file LongoMatch/LongoMatch.mdp | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Sat Feb 6 15:10:04 2010 +0100 Andoni Morales Alastruey *Added README file for translators po/README.translators | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) Thu Feb 4 22:58:49 2010 +0100 Daniel Nylander *Added Swedish translation po/LINGUAS | 1 + po/sv.po | 1070 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1071 insertions(+), 0 deletions(-) Thu Feb 4 13:42:29 2010 +0100 Mario Blättermann *Updated German translation po/de.po | 678 ++++++++++++++++++++++++++++++------------------------------- 1 files changed, 333 insertions(+), 345 deletions(-) Tue Jan 26 16:58:13 2010 +0100 Andoni Morales Alastruey *Don't try to save the loaded project after a crash. Objects can be in an unrecoverable state and we might end saving a corrupt project in the database. LongoMatch/Main.cs | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) Tue Feb 2 13:25:58 2010 +0100 Marek Černocký *Update Czech translation po/cs.po | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) Sun Jan 31 18:28:12 2010 +0100 Jorge González *Updated Spanish translation po/es.po | 851 +++++++++++++++++++++++++++++++------------------------------- 1 files changed, 429 insertions(+), 422 deletions(-) Wed Jan 27 12:00:31 2010 +0100 Matej Urbančič *Updated Slovenian translation po/sl.po | 670 +++++++++++++++++++++++++++++++------------------------------- 1 files changed, 339 insertions(+), 331 deletions(-) Mon Jan 25 18:57:26 2010 +0100 Marek Černocký *Update Czech translation po/cs.po | 997 +++++++++++++++++++++++++++++++------------------------------- 1 files changed, 497 insertions(+), 500 deletions(-) Sun Jan 24 20:57:26 2010 +0100 Andoni Morales Alastruey *More fixes to make distcheck happy LongoMatch/Makefile.am | 13 +- po/POTFILES.in | 390 +++++++++++++++++++++++------------------------- po/POTFILES.skip | 16 ++- 3 files changed, 210 insertions(+), 209 deletions(-) Sun Jan 24 20:56:46 2010 +0100 Andoni Morales Alastruey *Delete unused file .../LongoMatch.Gui.Component.PlayersTreeView.cs | 27 -------------------- 1 files changed, 0 insertions(+), 27 deletions(-) Sun Jan 24 19:36:02 2010 +0100 Andoni Morales Alastruey *Use intltool to translate the desktop file LongoMatch/Makefile.am | 14 ++++++++------ LongoMatch/longomatch.desktop.in | 9 --------- LongoMatch/longomatch.desktop.in.in | 15 +++++++++++++++ configure.ac | 2 +- 4 files changed, 24 insertions(+), 16 deletions(-) Sun Jan 24 19:11:11 2010 +0100 Andoni Morales Alastruey *Use intltool to handle all the translations stuff autogen.sh | 14 ++++++++++++++ configure.ac | 13 +++++++++++-- po/Makefile.am | 40 ---------------------------------------- 3 files changed, 25 insertions(+), 42 deletions(-) Sun Jan 24 02:38:28 2010 +0100 Andoni Morales Alastruey *Remove unused file from POTFILES.in po/POTFILES.in | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) Sun Jan 24 02:37:48 2010 +0100 Andoni Morales Alastruey *Remove trailing whitespace to POTFILES.skip po/POTFILES.skip | 10 ++++------ 1 files changed, 4 insertions(+), 6 deletions(-) Sun Jan 24 02:34:02 2010 +0100 Andoni Morales Alastruey *Use POTFILES.skip instead of the deprecated POTFILES.ignore po/POTFILES.ignore | 6 ------ po/POTFILES.skip | 6 ++++++ 2 files changed, 6 insertions(+), 6 deletions(-) Sun Jan 24 02:31:38 2010 +0100 Andoni Morales Alastruey *Add Slovenian translation to makefiles po/Makefile.am | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Sat Jan 23 15:11:13 2010 +0100 Andoni Morales Alastruey *Update AUTHORS files AUTHORS | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sat Jan 23 15:09:34 2010 +0100 Andoni Morales Alastruey *Move translators string to a more accesible place LongoMatch/Common/Constants.cs | 30 ++++++++++++++++++++++++++++++ LongoMatch/Gui/MainWindow.cs | 6 ++---- LongoMatch/Makefile.am | 1 + Makefile.win32 | 1 + 4 files changed, 34 insertions(+), 4 deletions(-) Sat Jan 23 14:53:46 2010 +0100 Andoni Morales Alastruey *Updated Spanish translation po/es.po | 1624 +++++++++++++++++++++++++++++--------------------------------- 1 files changed, 762 insertions(+), 862 deletions(-) Sat Jan 23 14:53:24 2010 +0100 Andoni Morales Alastruey *Add old unused file to POTFILES.ignore po/POTFILES.ignore | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Sat Jan 23 14:42:33 2010 +0100 Andoni Morales Alastruey *Addes POTFILES.ignore po/POTFILES.ignore | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) Sat Jan 23 14:41:41 2010 +0100 Andoni Morales Alastruey *Add desktop file to POTFILES.in po/POTFILES.in | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sat Jan 23 14:30:25 2010 +0100 Stefan Sebner *Fix desktop file LongoMatch/longomatch.desktop.in | 21 ++++++--------------- 1 files changed, 6 insertions(+), 15 deletions(-) Wed Jan 20 19:34:12 2010 +0100 Matej Urbančič *Updated Slovenian translation po/sl.po | 199 +++++++++++++++++++++++++++----------------------------------- 1 files changed, 87 insertions(+), 112 deletions(-) Mon Jan 18 17:24:37 2010 +0100 Matej Urbančič *Added sl for Slovenian translation po/LINGUAS | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Mon Jan 18 17:24:11 2010 +0100 Matej Urbančič *Updated Slovenian translation po/sl.po | 1110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1110 insertions(+), 0 deletions(-) Sun Jan 17 12:38:51 2010 +0100 Mario Blättermann *Updated German translation po/de.po | 1528 +++++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 863 insertions(+), 665 deletions(-) Fri Jan 15 23:12:25 2010 +0100 Andoni Morales Alastruey *Update french translation po/fr.po | 1090 ++++++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 636 insertions(+), 454 deletions(-) Fri Jan 15 21:38:53 2010 +0100 Andoni Morales Alastruey *Finally fix the bug resizing the drawing tool LongoMatch/Gui/Component/DrawingWidget.cs | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) Fri Jan 15 00:22:25 2010 +0100 Andoni Morales Alastruey *Add translator to the About dialog LongoMatch/Gui/MainWindow.cs | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) Fri Jan 15 00:04:27 2010 +0100 Andoni Morales Alastruey *Added Czech translation AUTHORS | 1 + po/LINGUAS | 1 + po/Makefile.am | 3 +- po/cs.po | 1108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 1112 insertions(+), 1 deletions(-) Thu Jan 14 23:48:45 2010 +0100 Andoni Morales Alastruey *Update POTFILES.in po/POTFILES.in | 383 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 203 insertions(+), 180 deletions(-) Thu Jan 14 01:13:52 2010 +0100 Andoni Morales Alastruey *Fix drawing widget resizing LongoMatch/Gui/Component/DrawingWidget.cs | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) Wed Jan 13 23:59:29 2010 +0100 Andoni Morales Alastruey *Add translations to win32 deploy dir win32/deploy_win32.py | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) Wed Jan 13 23:36:28 2010 +0100 Andoni Morales Alastruey *Add translations ro win32 makefile and clean-up Makefile.win32 | 85 +++++++++++++++++++++++++++++++++----------------------- 1 files changed, 50 insertions(+), 35 deletions(-) Mon Jan 11 02:51:27 2010 +0100 Andoni Morales Alastruey *Bump version 0.15.5 configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Mon Jan 11 02:37:23 2010 +0100 Andoni Morales Alastruey *Remove warnings LongoMatch/Gui/Component/PlaysListTreeWidget.cs | 2 -- LongoMatch/Gui/TreeView/PlaysTreeView.cs | 2 +- 2 files changed, 1 insertions(+), 3 deletions(-) Mon Jan 11 02:27:09 2010 +0100 Andoni Morales Alastruey *Fix version in comment LongoMatch/Time/SectionsTimeNode.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sun Jan 10 20:17:52 2010 +0100 Andoni Morales Alastruey *Add players data to csv file LongoMatch/IO/CSVExport.cs | 96 ++++++++++++++++++++++++++++++++++++++----- 1 files changed, 84 insertions(+), 12 deletions(-) Sun Jan 10 03:41:14 2010 +0100 Andoni Morales Alastruey *Update RELEASE notes RELEASE | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Sun Jan 10 03:40:26 2010 +0100 Andoni Morales Alastruey *Add tags data to CSV file LongoMatch/IO/CSVExport.cs | 48 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 46 insertions(+), 2 deletions(-) Sun Jan 10 02:31:05 2010 +0100 Andoni Morales Alastruey *After adding a new play expand the tree and select the play LongoMatch/Gui/Component/PlaysListTreeWidget.cs | 26 ++++++++++++++++------ 1 files changed, 19 insertions(+), 7 deletions(-) Sat Jan 9 19:13:51 2010 +0100 Andoni Morales Alastruey *Remove LongoMatch binaries from the deps folder win32/deps/LongoMatch.exe | Bin 9589634 -> 0 bytes win32/deps/libcesarplayer.dll | Bin 265295 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) Sat Jan 9 18:21:06 2010 +0100 Andoni Morales Alastruey *Simplify win32 deployment Created new win32 folder for all the windows stuff Added new deployment script -> No more dll's in the repo! Makefile.win32 | 26 +- win32/COPYING.TXT | 278 +++++++++++ win32/deploy_win32.py | 117 +++++ win32/deps/Db4objects.Db4o.dll | Bin 0 -> 600576 bytes win32/deps/LongoMatch.exe | Bin 0 -> 9589634 bytes win32/deps/ThemeSelector.exe | Bin 0 -> 293376 bytes win32/deps/engines/libanachron.dll | Bin 0 -> 28558 bytes win32/deps/engines/libaurora.dll | Bin 0 -> 111369 bytes win32/deps/engines/libbluecurve.dll | Bin 0 -> 57580 bytes win32/deps/engines/libcandido.dll | Bin 0 -> 60073 bytes win32/deps/engines/libcleanice.dll | Bin 0 -> 36596 bytes win32/deps/engines/libclearlooks.dll | Bin 0 -> 164869 bytes win32/deps/engines/libcrux-engine.dll | Bin 0 -> 58726 bytes win32/deps/engines/libdyndyn.dll | Bin 0 -> 66599 bytes win32/deps/engines/libgflat.dll | Bin 0 -> 75869 bytes win32/deps/engines/libglide.dll | Bin 0 -> 77842 bytes win32/deps/engines/libhcengine.dll | Bin 0 -> 57334 bytes win32/deps/engines/libindustrial.dll | Bin 0 -> 55993 bytes win32/deps/engines/liblighthouseblue.dll | Bin 0 -> 51405 bytes win32/deps/engines/libmetal.dll | Bin 0 -> 47966 bytes win32/deps/engines/libmgicchikn.dll | Bin 0 -> 86783 bytes win32/deps/engines/libmist.dll | Bin 0 -> 50496 bytes win32/deps/engines/libmurrine.dll | Bin 0 -> 88123 bytes win32/deps/engines/libnimbus.dll | Bin 0 -> 138364 bytes win32/deps/engines/libnodoka.dll | Bin 0 -> 82547 bytes win32/deps/engines/libpixmap.dll | Bin 0 -> 35029 bytes win32/deps/engines/libredmond95.dll | Bin 0 -> 59520 bytes win32/deps/engines/librezlooks.dll | Bin 0 -> 61051 bytes win32/deps/engines/libsmooth.dll | Bin 0 -> 221642 bytes win32/deps/engines/libsvg.dll | Bin 0 -> 55369 bytes win32/deps/engines/libthinice.dll | Bin 0 -> 52463 bytes win32/deps/engines/libubuntulooks.dll | Bin 0 -> 78580 bytes win32/deps/engines/libwimp.dll | Bin 0 -> 55879 bytes win32/deps/engines/libxfce.dll | Bin 0 -> 42700 bytes win32/deps/gtkrc | 8 + win32/deps/icons/hicolor/24x24/status/Thumbs.db | Bin 0 -> 4608 bytes .../icons/hicolor/24x24/status/stock_calendar.png | Bin 0 -> 823 bytes .../icons/hicolor/24x24/status/stock_volume.png | Bin 0 -> 1217 bytes win32/deps/icons/hicolor/index.theme | 13 + win32/deps/libcesarplayer.dll | Bin 0 -> 265295 bytes win32/deps/themes/AnachronAna/gtk-2.0/gtkrc | 95 ++++ win32/deps/themes/Aurora-Midnight/gtk-2.0/gtkrc | 361 ++++++++++++++ win32/deps/themes/Aurora-looks/gtk-2.0/gtkrc | 350 +++++++++++++ win32/deps/themes/Aurora/gtk-2.0/gtkrc | 362 ++++++++++++++ win32/deps/themes/Bluecurve/gtk-2.0/gtkrc | 151 ++++++ win32/deps/themes/Candido-Calm/gtk-2.0/gtkrc | 205 ++++++++ win32/deps/themes/Candido-Candy/gtk-2.0/gtkrc | 209 ++++++++ win32/deps/themes/Candido-DarkOrange/gtk-2.0/gtkrc | 193 ++++++++ win32/deps/themes/Candido-Hybrid/gtk-2.0/gtkrc | 210 ++++++++ .../deps/themes/Candido-NeoGraphite/gtk-2.0/gtkrc | 200 ++++++++ win32/deps/themes/Cleanice-dark/gtk-2.0/gtkrc | 74 +++ win32/deps/themes/Cleanice/gtk-2.0/gtkrc | 37 ++ win32/deps/themes/Cleanice/gtk-2.0/index.theme | 10 + win32/deps/themes/Cleanice/gtk-2.0/index.theme.in | 10 + win32/deps/themes/Clearlooks/gtk-2.0/gtkrc | 272 ++++++++++ win32/deps/themes/ClearlooksClassic/gtk-2.0/gtkrc | 209 ++++++++ win32/deps/themes/CortlandChicken/README | 1 + .../themes/CortlandChicken/gtk-2.0/check-in.png | Bin 0 -> 161 bytes .../themes/CortlandChicken/gtk-2.0/check-out.png | Bin 0 -> 116 bytes win32/deps/themes/CortlandChicken/gtk-2.0/gtkrc | 327 ++++++++++++ .../themes/CortlandChicken/gtk-2.0/radio-both.png | Bin 0 -> 196 bytes .../themes/CortlandChicken/gtk-2.0/radio-in.png | Bin 0 -> 190 bytes .../themes/CortlandChicken/gtk-2.0/radio-out.png | Bin 0 -> 185 bytes win32/deps/themes/Crux/gtk-2.0/gtkrc | 149 ++++++ .../deps/themes/Delightfully-Smooth/gtk-2.0/gtkrc | 440 +++++++++++++++++ win32/deps/themes/DyndynBlueGray/gtk-2.0/gtkrc | 211 ++++++++ win32/deps/themes/DyndynPinkGray/gtk-2.0/gtkrc | 211 ++++++++ win32/deps/themes/G26/gtk-2.0/gtkrc | 319 ++++++++++++ win32/deps/themes/G26/gtk-2.0/iconrc | 20 + win32/deps/themes/G26/gtk-2.0/stock_apply.png | Bin 0 -> 812 bytes win32/deps/themes/G26/gtk-2.0/stock_bottom.png | Bin 0 -> 662 bytes win32/deps/themes/G26/gtk-2.0/stock_cancel.png | Bin 0 -> 1166 bytes win32/deps/themes/G26/gtk-2.0/stock_down.png | Bin 0 -> 590 bytes win32/deps/themes/G26/gtk-2.0/stock_first.png | Bin 0 -> 657 bytes win32/deps/themes/G26/gtk-2.0/stock_last.png | Bin 0 -> 644 bytes win32/deps/themes/G26/gtk-2.0/stock_left.png | Bin 0 -> 523 bytes win32/deps/themes/G26/gtk-2.0/stock_ok.png | Bin 0 -> 806 bytes win32/deps/themes/G26/gtk-2.0/stock_refresh.png | Bin 0 -> 1061 bytes win32/deps/themes/G26/gtk-2.0/stock_right.png | Bin 0 -> 522 bytes win32/deps/themes/G26/gtk-2.0/stock_top.png | Bin 0 -> 674 bytes win32/deps/themes/G26/gtk-2.0/stock_up.png | Bin 0 -> 605 bytes win32/deps/themes/Gflat-graphite/gtk-2.0/gtkrc | 213 ++++++++ win32/deps/themes/Gflat-quicksilver/gtk-2.0/gtkrc | 178 +++++++ win32/deps/themes/Glider/gtk-2.0/gtkrc | 129 +++++ win32/deps/themes/Glossy/gtk-2.0/gtkrc | 218 ++++++++ win32/deps/themes/HighContrast/gtk-2.0/gtkrc | 248 ++++++++++ win32/deps/themes/HighContrast/gtk-2.0/gtkrc.in | 67 +++ .../deps/themes/HighContrastInverse/gtk-2.0/gtkrc | 252 ++++++++++ .../themes/HighContrastInverse/gtk-2.0/gtkrc.in | 71 +++ .../themes/HighContrastLargePrint/gtk-2.0/gtkrc | 263 ++++++++++ .../themes/HighContrastLargePrint/gtk-2.0/gtkrc.in | 82 +++ .../HighContrastLargePrintInverse/gtk-2.0/gtkrc | 263 ++++++++++ .../HighContrastLargePrintInverse/gtk-2.0/gtkrc.in | 82 +++ win32/deps/themes/Human/gtk-2.0/gtkrc | 240 +++++++++ win32/deps/themes/Industrial/gtk-2.0/gtkrc | 225 +++++++++ win32/deps/themes/Inverted/gtk-2.0/gtkrc | 198 ++++++++ win32/deps/themes/LargePrint/gtk-2.0/gtkrc | 231 +++++++++ win32/deps/themes/LargePrint/gtk-2.0/gtkrc.in | 50 ++ win32/deps/themes/LighthouseBlue/gtk-2.0/gtkrc | 131 +++++ win32/deps/themes/LowContrast/gtk-2.0/gtkrc | 238 +++++++++ win32/deps/themes/LowContrast/gtk-2.0/gtkrc.in | 57 +++ .../themes/LowContrastLargePrint/gtk-2.0/gtkrc | 253 ++++++++++ .../themes/LowContrastLargePrint/gtk-2.0/gtkrc.in | 72 +++ win32/deps/themes/MagicChicken/README | 1 + win32/deps/themes/MagicChicken/gtk-2.0/gtkrc | 293 +++++++++++ win32/deps/themes/Metal/gtk-2.0/gtkrc | 71 +++ win32/deps/themes/Mist/gtk-2.0/gtkrc | 85 ++++ win32/deps/themes/MurrinaCandy/gtk-2.0/gtkrc | 215 ++++++++ win32/deps/themes/MurrinaCappuccino/gtk-2.0/gtkrc | 163 ++++++ win32/deps/themes/MurrinaEalm/gtk-2.0/gtkrc | 211 ++++++++ win32/deps/themes/MurrinaNeoGraphite/gtk-2.0/gtkrc | 202 ++++++++ win32/deps/themes/Nimbus/gtk-2.0/about.png | Bin 0 -> 1344 bytes win32/deps/themes/Nimbus/gtk-2.0/add.png | Bin 0 -> 1307 bytes win32/deps/themes/Nimbus/gtk-2.0/apply.png | Bin 0 -> 752 bytes win32/deps/themes/Nimbus/gtk-2.0/broken_image.png | Bin 0 -> 947 bytes win32/deps/themes/Nimbus/gtk-2.0/cancel.png | Bin 0 -> 646 bytes win32/deps/themes/Nimbus/gtk-2.0/cdrom_16.png | Bin 0 -> 782 bytes win32/deps/themes/Nimbus/gtk-2.0/cdrom_24.png | Bin 0 -> 1470 bytes win32/deps/themes/Nimbus/gtk-2.0/clear.png | Bin 0 -> 1056 bytes win32/deps/themes/Nimbus/gtk-2.0/close.png | Bin 0 -> 727 bytes win32/deps/themes/Nimbus/gtk-2.0/colorselector.png | Bin 0 -> 1732 bytes win32/deps/themes/Nimbus/gtk-2.0/connect.png | Bin 0 -> 1098 bytes win32/deps/themes/Nimbus/gtk-2.0/convert.png | Bin 0 -> 752 bytes win32/deps/themes/Nimbus/gtk-2.0/delete_16.png | Bin 0 -> 945 bytes win32/deps/themes/Nimbus/gtk-2.0/delete_24.png | Bin 0 -> 1562 bytes .../Nimbus/gtk-2.0/dialog_authentication.png | Bin 0 -> 2861 bytes win32/deps/themes/Nimbus/gtk-2.0/dialog_error.png | Bin 0 -> 2665 bytes win32/deps/themes/Nimbus/gtk-2.0/dialog_info.png | Bin 0 -> 3788 bytes .../deps/themes/Nimbus/gtk-2.0/dialog_question.png | Bin 0 -> 4111 bytes .../deps/themes/Nimbus/gtk-2.0/dialog_warning.png | Bin 0 -> 3308 bytes win32/deps/themes/Nimbus/gtk-2.0/directory.png | Bin 0 -> 721 bytes win32/deps/themes/Nimbus/gtk-2.0/disconnect.png | Bin 0 -> 1098 bytes win32/deps/themes/Nimbus/gtk-2.0/document-new.png | Bin 0 -> 843 bytes win32/deps/themes/Nimbus/gtk-2.0/document-open.png | Bin 0 -> 1053 bytes .../Nimbus/gtk-2.0/document-print-preview.png | Bin 0 -> 1340 bytes .../deps/themes/Nimbus/gtk-2.0/document-print.png | Bin 0 -> 1104 bytes .../themes/Nimbus/gtk-2.0/document-properties.png | Bin 0 -> 991 bytes .../themes/Nimbus/gtk-2.0/document-save-as.png | Bin 0 -> 1335 bytes win32/deps/themes/Nimbus/gtk-2.0/document-save.png | Bin 0 -> 955 bytes win32/deps/themes/Nimbus/gtk-2.0/edit-copy_16.png | Bin 0 -> 552 bytes win32/deps/themes/Nimbus/gtk-2.0/edit-copy_24.png | Bin 0 -> 698 bytes win32/deps/themes/Nimbus/gtk-2.0/edit-cut_16.png | Bin 0 -> 602 bytes win32/deps/themes/Nimbus/gtk-2.0/edit-cut_24.png | Bin 0 -> 1286 bytes .../themes/Nimbus/gtk-2.0/edit-find-replace.png | Bin 0 -> 1507 bytes win32/deps/themes/Nimbus/gtk-2.0/edit-find.png | Bin 0 -> 1103 bytes win32/deps/themes/Nimbus/gtk-2.0/edit-paste.png | Bin 0 -> 912 bytes win32/deps/themes/Nimbus/gtk-2.0/edit-redo.png | Bin 0 -> 1163 bytes win32/deps/themes/Nimbus/gtk-2.0/edit-undo.png | Bin 0 -> 1173 bytes win32/deps/themes/Nimbus/gtk-2.0/edit.png | Bin 0 -> 684 bytes win32/deps/themes/Nimbus/gtk-2.0/execute.png | Bin 0 -> 1300 bytes win32/deps/themes/Nimbus/gtk-2.0/file.png | Bin 0 -> 516 bytes win32/deps/themes/Nimbus/gtk-2.0/floppy.png | Bin 0 -> 818 bytes win32/deps/themes/Nimbus/gtk-2.0/font.png | Bin 0 -> 1105 bytes .../themes/Nimbus/gtk-2.0/format-indent-less.png | Bin 0 -> 818 bytes .../themes/Nimbus/gtk-2.0/format-indent-more.png | Bin 0 -> 830 bytes .../Nimbus/gtk-2.0/format-justify-center.png | Bin 0 -> 699 bytes .../themes/Nimbus/gtk-2.0/format-justify-fill.png | Bin 0 -> 763 bytes .../themes/Nimbus/gtk-2.0/format-justify-left.png | Bin 0 -> 682 bytes .../themes/Nimbus/gtk-2.0/format-justify-right.png | Bin 0 -> 676 bytes .../themes/Nimbus/gtk-2.0/format-text-bold.png | Bin 0 -> 587 bytes .../themes/Nimbus/gtk-2.0/format-text-italic.png | Bin 0 -> 752 bytes .../Nimbus/gtk-2.0/format-text-strikethrough.png | Bin 0 -> 595 bytes .../Nimbus/gtk-2.0/format-text-underline.png | Bin 0 -> 593 bytes win32/deps/themes/Nimbus/gtk-2.0/fullscreen.png | Bin 0 -> 1135 bytes win32/deps/themes/Nimbus/gtk-2.0/go-bottom.png | Bin 0 -> 915 bytes win32/deps/themes/Nimbus/gtk-2.0/go-down.png | Bin 0 -> 814 bytes win32/deps/themes/Nimbus/gtk-2.0/go-first.png | Bin 0 -> 960 bytes win32/deps/themes/Nimbus/gtk-2.0/go-home.png | Bin 0 -> 1130 bytes win32/deps/themes/Nimbus/gtk-2.0/go-jump.png | Bin 0 -> 1010 bytes win32/deps/themes/Nimbus/gtk-2.0/go-last.png | Bin 0 -> 958 bytes win32/deps/themes/Nimbus/gtk-2.0/go-next.png | Bin 0 -> 828 bytes win32/deps/themes/Nimbus/gtk-2.0/go-previous.png | Bin 0 -> 848 bytes win32/deps/themes/Nimbus/gtk-2.0/go-top.png | Bin 0 -> 958 bytes win32/deps/themes/Nimbus/gtk-2.0/go-up.png | Bin 0 -> 836 bytes win32/deps/themes/Nimbus/gtk-2.0/gtkrc | 70 +++ win32/deps/themes/Nimbus/gtk-2.0/harddisk.png | Bin 0 -> 957 bytes win32/deps/themes/Nimbus/gtk-2.0/help.png | Bin 0 -> 1494 bytes win32/deps/themes/Nimbus/gtk-2.0/iconrc | 103 ++++ win32/deps/themes/Nimbus/gtk-2.0/index.png | Bin 0 -> 972 bytes win32/deps/themes/Nimbus/gtk-2.0/info.png | Bin 0 -> 1333 bytes .../themes/Nimbus/gtk-2.0/leave_fullscreen.png | Bin 0 -> 895 bytes win32/deps/themes/Nimbus/gtk-2.0/media-ffwd.png | Bin 0 -> 313 bytes win32/deps/themes/Nimbus/gtk-2.0/media-next.png | Bin 0 -> 304 bytes win32/deps/themes/Nimbus/gtk-2.0/media-pause.png | Bin 0 -> 236 bytes win32/deps/themes/Nimbus/gtk-2.0/media-play.png | Bin 0 -> 282 bytes win32/deps/themes/Nimbus/gtk-2.0/media-prev.png | Bin 0 -> 326 bytes win32/deps/themes/Nimbus/gtk-2.0/media-record.png | Bin 0 -> 330 bytes win32/deps/themes/Nimbus/gtk-2.0/media-rewind.png | Bin 0 -> 307 bytes win32/deps/themes/Nimbus/gtk-2.0/media-stop.png | Bin 0 -> 227 bytes win32/deps/themes/Nimbus/gtk-2.0/network.png | Bin 0 -> 1420 bytes win32/deps/themes/Nimbus/gtk-2.0/no.png | Bin 0 -> 622 bytes win32/deps/themes/Nimbus/gtk-2.0/ok.png | Bin 0 -> 797 bytes win32/deps/themes/Nimbus/gtk-2.0/preferences.png | Bin 0 -> 898 bytes win32/deps/themes/Nimbus/gtk-2.0/quit.png | Bin 0 -> 1143 bytes win32/deps/themes/Nimbus/gtk-2.0/remove.png | Bin 0 -> 1188 bytes win32/deps/themes/Nimbus/gtk-2.0/revert.png | Bin 0 -> 1175 bytes .../deps/themes/Nimbus/gtk-2.0/sort_ascending.png | Bin 0 -> 989 bytes .../deps/themes/Nimbus/gtk-2.0/sort_descending.png | Bin 0 -> 983 bytes win32/deps/themes/Nimbus/gtk-2.0/spellcheck.png | Bin 0 -> 715 bytes win32/deps/themes/Nimbus/gtk-2.0/stock_dnd.png | Bin 0 -> 687 bytes .../themes/Nimbus/gtk-2.0/stock_dnd_multiple.png | Bin 0 -> 766 bytes win32/deps/themes/Nimbus/gtk-2.0/stop.png | Bin 0 -> 941 bytes win32/deps/themes/Nimbus/gtk-2.0/undelete.png | Bin 0 -> 1473 bytes win32/deps/themes/Nimbus/gtk-2.0/view-refresh.png | Bin 0 -> 1214 bytes win32/deps/themes/Nimbus/gtk-2.0/yes.png | Bin 0 -> 654 bytes win32/deps/themes/Nimbus/gtk-2.0/zoom-best-fit.png | Bin 0 -> 1195 bytes win32/deps/themes/Nimbus/gtk-2.0/zoom-in.png | Bin 0 -> 1167 bytes win32/deps/themes/Nimbus/gtk-2.0/zoom-original.png | Bin 0 -> 1133 bytes win32/deps/themes/Nimbus/gtk-2.0/zoom-out.png | Bin 0 -> 1116 bytes win32/deps/themes/Nodoka-Aqua/gtk-2.0/gtkrc | 287 +++++++++++ win32/deps/themes/Nodoka-Gilouche/gtk-2.0/gtkrc | 271 ++++++++++ win32/deps/themes/Nodoka-Looks/gtk-2.0/gtkrc | 281 +++++++++++ win32/deps/themes/Nodoka-Midnight/gtk-2.0/gtkrc | 282 +++++++++++ win32/deps/themes/Nodoka-Rounded/gtk-2.0/gtkrc | 281 +++++++++++ win32/deps/themes/Nodoka-Silver/gtk-2.0/gtkrc | 267 ++++++++++ win32/deps/themes/Nodoka-Squared/gtk-2.0/gtkrc | 281 +++++++++++ win32/deps/themes/Nodoka/gtk-2.0/gtkrc | 281 +++++++++++ win32/deps/themes/OkayishChicken/README | 1 + win32/deps/themes/OkayishChicken/gtk-2.0/gtkrc | 122 +++++ win32/deps/themes/Redmond/gtk-2.0/gtkrc | 102 ++++ win32/deps/themes/Rezlooks-Gilouche/gtk-2.0/gtkrc | 211 ++++++++ win32/deps/themes/Rezlooks-graphite/gtk-2.0/gtkrc | 208 ++++++++ win32/deps/themes/Simple/gtk-2.0/gtkrc | 70 +++ .../deps/themes/Smooth-Funky-Monkey/gtk-2.0/gtkrc | 214 ++++++++ .../Smooth-Funky-Monkey/gtk-2.0/stock_go-back.svg | 39 ++ .../gtk-2.0/stock_go-forward.svg | 39 ++ .../Smooth-Funky-Monkey/gtk-2.0/stock_go-up.svg | 42 ++ .../Smooth-Funky-Monkey/gtk-2.0/stock_home.svg | 26 + .../Smooth-Funky-Monkey/gtk-2.0/stock_new.svg | 46 ++ .../Smooth-Funky-Monkey/gtk-2.0/stock_open.svg | 51 ++ .../Smooth-Funky-Monkey/gtk-2.0/stock_refresh.svg | 29 ++ .../Smooth-Funky-Monkey/gtk-2.0/stock_stop.svg | 26 + win32/deps/themes/Smooth-Line/gtk-2.0/gtkrc | 522 ++++++++++++++++++++ win32/deps/themes/Smooth-Okayish/gtk-2.0/gtkrc | 143 ++++++ win32/deps/themes/Smooth-Sea-Ice/gtk-2.0/gtkrc | 365 ++++++++++++++ .../themes/Smooth-Tangerine-Dream/gtk-2.0/gtkrc | 380 ++++++++++++++ win32/deps/themes/Smooth-Winter/gtk-2.0/gtkrc | 353 +++++++++++++ win32/deps/themes/Smooth-Winter/gtk-2.0/iconrc | 20 + .../themes/Smooth-Winter/gtk-2.0/stock_apply.png | Bin 0 -> 812 bytes .../themes/Smooth-Winter/gtk-2.0/stock_bottom.png | Bin 0 -> 662 bytes .../themes/Smooth-Winter/gtk-2.0/stock_cancel.png | Bin 0 -> 1166 bytes .../themes/Smooth-Winter/gtk-2.0/stock_down.png | Bin 0 -> 590 bytes .../themes/Smooth-Winter/gtk-2.0/stock_first.png | Bin 0 -> 657 bytes .../themes/Smooth-Winter/gtk-2.0/stock_last.png | Bin 0 -> 644 bytes .../themes/Smooth-Winter/gtk-2.0/stock_left.png | Bin 0 -> 523 bytes .../deps/themes/Smooth-Winter/gtk-2.0/stock_ok.png | Bin 0 -> 806 bytes .../themes/Smooth-Winter/gtk-2.0/stock_refresh.png | Bin 0 -> 1061 bytes .../themes/Smooth-Winter/gtk-2.0/stock_right.png | Bin 0 -> 522 bytes .../themes/Smooth-Winter/gtk-2.0/stock_top.png | Bin 0 -> 674 bytes .../deps/themes/Smooth-Winter/gtk-2.0/stock_up.png | Bin 0 -> 605 bytes win32/deps/themes/ThinIce/gtk-2.0/gtkrc | 84 ++++ win32/deps/themes/XFCE-4.0/README.html | 5 + win32/deps/themes/XFCE-4.0/gtk-2.0/gtkrc | 238 +++++++++ win32/deps/themes/XFCE-4.2/README.html | 5 + win32/deps/themes/XFCE-4.2/gtk-2.0/gtkrc | 289 +++++++++++ win32/deps/themes/XFCE/README.html | 5 + win32/deps/themes/XFCE/gtk-2.0/gtkrc | 349 +++++++++++++ win32/installer.iss | 50 ++ 258 files changed, 16495 insertions(+), 13 deletions(-) Sat Jan 9 18:19:19 2010 +0100 Andoni Morales Alastruey *Delete the LongoMatch/win32 deployment folder LongoMatch/Win32/COPYING.TXT | 278 ---------- LongoMatch/Win32/bin/LongoMatch.exe | Bin 9170011 -> 0 bytes LongoMatch/Win32/bin/MonoPosixHelper.dll | Bin 394055 -> 0 bytes LongoMatch/Win32/bin/SDL.dll | Bin 460904 -> 0 bytes LongoMatch/Win32/bin/freetype-6.dll | Bin 650785 -> 0 bytes LongoMatch/Win32/bin/gdksharpglue-2.dll | Bin 231312 -> 0 bytes LongoMatch/Win32/bin/glibsharpglue-2.dll | Bin 97567 -> 0 bytes LongoMatch/Win32/bin/gst-inspect-0.10.exe | Bin 211968 -> 0 bytes LongoMatch/Win32/bin/gst-launch-0.10.exe | Bin 203264 -> 0 bytes LongoMatch/Win32/bin/gst-xmlinspect-0.10.exe | Bin 203264 -> 0 bytes LongoMatch/Win32/bin/gtk2_prefs.exe | Bin 293376 -> 0 bytes LongoMatch/Win32/bin/gtksharpglue-2.dll | Bin 709147 -> 0 bytes LongoMatch/Win32/bin/iconv.dll | Bin 5120 -> 0 bytes LongoMatch/Win32/bin/intl.dll | Bin 104861 -> 0 bytes LongoMatch/Win32/bin/jpeg62.dll | Bin 127488 -> 0 bytes LongoMatch/Win32/bin/liba52-0.dll | Bin 58031 -> 0 bytes LongoMatch/Win32/bin/libatk-1.0-0.dll | Bin 151812 -> 0 bytes LongoMatch/Win32/bin/libbz2.dll | Bin 152526 -> 0 bytes LongoMatch/Win32/bin/libcairo-2.dll | Bin 664581 -> 0 bytes LongoMatch/Win32/bin/libcesarplayer.dll | Bin 253036 -> 0 bytes LongoMatch/Win32/bin/libdca-0.dll | Bin 173099 -> 0 bytes LongoMatch/Win32/bin/libdl.dll | Bin 7168 -> 0 bytes LongoMatch/Win32/bin/libdvdnav-4.dll | Bin 151746 -> 0 bytes LongoMatch/Win32/bin/libdvdnavmini-4.dll | Bin 151746 -> 0 bytes LongoMatch/Win32/bin/libdvdread-4.dll | Bin 149398 -> 0 bytes LongoMatch/Win32/bin/libfaac-0.dll | Bin 109912 -> 0 bytes LongoMatch/Win32/bin/libfaad-2.dll | Bin 369232 -> 0 bytes LongoMatch/Win32/bin/libfontconfig-1.dll | Bin 270735 -> 0 bytes LongoMatch/Win32/bin/libfreetype-6.dll | Bin 650785 -> 0 bytes LongoMatch/Win32/bin/libgailutil-18.dll | Bin 51252 -> 0 bytes LongoMatch/Win32/bin/libgcrypt-11.dll | Bin 719092 -> 0 bytes LongoMatch/Win32/bin/libgdk-win32-2.0-0.dll | Bin 833453 -> 0 bytes LongoMatch/Win32/bin/libgdk_pixbuf-2.0-0.dll | Bin 138714 -> 0 bytes LongoMatch/Win32/bin/libgio-2.0-0.dll | Bin 521539 -> 0 bytes LongoMatch/Win32/bin/libglib-2.0-0.dll | Bin 1171256 -> 0 bytes LongoMatch/Win32/bin/libgmodule-2.0-0.dll | Bin 39516 -> 0 bytes LongoMatch/Win32/bin/libgnutls-26.dll | Bin 875476 -> 0 bytes LongoMatch/Win32/bin/libgnutls-extra-26.dll | Bin 74057 -> 0 bytes LongoMatch/Win32/bin/libgnutls-openssl-26.dll | Bin 182769 -> 0 bytes LongoMatch/Win32/bin/libgnutlsxx-26.dll | Bin 252942 -> 0 bytes LongoMatch/Win32/bin/libgobject-2.0-0.dll | Bin 316989 -> 0 bytes LongoMatch/Win32/bin/libgpg-error-0.dll | Bin 85616 -> 0 bytes LongoMatch/Win32/bin/libgstapp-0.10.dll | Bin 38400 -> 0 bytes LongoMatch/Win32/bin/libgstapp.dll | Bin 37888 -> 0 bytes LongoMatch/Win32/bin/libgstaudio-0.10.dll | Bin 102912 -> 0 bytes LongoMatch/Win32/bin/libgstbase-0.10.dll | Bin 178176 -> 0 bytes LongoMatch/Win32/bin/libgstcdda-0.10.dll | Bin 31232 -> 0 bytes LongoMatch/Win32/bin/libgstcontroller-0.10.dll | Bin 104960 -> 0 bytes LongoMatch/Win32/bin/libgstdataprotocol-0.10.dll | Bin 18944 -> 0 bytes LongoMatch/Win32/bin/libgstdshow-0.10.dll | Bin 57856 -> 0 bytes LongoMatch/Win32/bin/libgstfarsight-0.10.dll | Bin 45056 -> 0 bytes LongoMatch/Win32/bin/libgstfft-0.10.dll | Bin 39936 -> 0 bytes LongoMatch/Win32/bin/libgstinterfaces-0.10.dll | Bin 49152 -> 0 bytes LongoMatch/Win32/bin/libgstnet-0.10.dll | Bin 23040 -> 0 bytes LongoMatch/Win32/bin/libgstnetbuffer-0.10.dll | Bin 11264 -> 0 bytes LongoMatch/Win32/bin/libgstpbutils-0.10.dll | Bin 41472 -> 0 bytes LongoMatch/Win32/bin/libgstphotography-0.10.dll | Bin 16384 -> 0 bytes LongoMatch/Win32/bin/libgstreamer-0.10.dll | Bin 645120 -> 0 bytes LongoMatch/Win32/bin/libgstriff-0.10.dll | Bin 40960 -> 0 bytes LongoMatch/Win32/bin/libgstrtp-0.10.dll | Bin 56320 -> 0 bytes LongoMatch/Win32/bin/libgstrtsp-0.10.dll | Bin 66048 -> 0 bytes LongoMatch/Win32/bin/libgstsdp-0.10.dll | Bin 23552 -> 0 bytes LongoMatch/Win32/bin/libgsttag-0.10.dll | Bin 50176 -> 0 bytes LongoMatch/Win32/bin/libgstvideo-0.10.dll | Bin 22528 -> 0 bytes LongoMatch/Win32/bin/libgthread-2.0-0.dll | Bin 46605 -> 0 bytes LongoMatch/Win32/bin/libgtk-win32-2.0-0.dll | Bin 4846324 -> 0 bytes LongoMatch/Win32/bin/libiconv-2.dll | Bin 918016 -> 0 bytes LongoMatch/Win32/bin/libintl-8.dll | Bin 76800 -> 0 bytes LongoMatch/Win32/bin/libjpeg.dll | Bin 138752 -> 0 bytes LongoMatch/Win32/bin/libmms-0.dll | Bin 109666 -> 0 bytes LongoMatch/Win32/bin/libmp3lame-0.dll | Bin 380944 -> 0 bytes LongoMatch/Win32/bin/libmpeg2-0.dll | Bin 140015 -> 0 bytes LongoMatch/Win32/bin/libmpeg2convert-0.dll | Bin 47687 -> 0 bytes LongoMatch/Win32/bin/libneon-27.dll | Bin 182123 -> 0 bytes LongoMatch/Win32/bin/libnice.dll | Bin 116736 -> 0 bytes LongoMatch/Win32/bin/libogg-0.dll | Bin 35730 -> 0 bytes LongoMatch/Win32/bin/liboil-0.3-0.dll | Bin 708126 -> 0 bytes LongoMatch/Win32/bin/libopenjpeg-2.dll | Bin 162391 -> 0 bytes LongoMatch/Win32/bin/libpango-1.0-0.dll | Bin 374898 -> 0 bytes LongoMatch/Win32/bin/libpangocairo-1.0-0.dll | Bin 106845 -> 0 bytes LongoMatch/Win32/bin/libpangoft2-1.0-0.dll | Bin 350455 -> 0 bytes LongoMatch/Win32/bin/libpangowin32-1.0-0.dll | Bin 115659 -> 0 bytes LongoMatch/Win32/bin/libpixman-1-0.dll | Bin 1073869 -> 0 bytes LongoMatch/Win32/bin/libpng12-0.dll | Bin 247310 -> 0 bytes LongoMatch/Win32/bin/libpng13.dll | Bin 145920 -> 0 bytes LongoMatch/Win32/bin/librsvg-2.dll | Bin 260378 -> 0 bytes LongoMatch/Win32/bin/libschroedinger-1.0-0.dll | Bin 624910 -> 0 bytes LongoMatch/Win32/bin/libsoup-2.4-1.dll | Bin 377890 -> 0 bytes LongoMatch/Win32/bin/libspeex-1.dll | Bin 131150 -> 0 bytes LongoMatch/Win32/bin/libspeexdsp-1.dll | Bin 95954 -> 0 bytes LongoMatch/Win32/bin/libtheora-0.dll | Bin 364387 -> 0 bytes LongoMatch/Win32/bin/libtheoradec-1.dll | Bin 122390 -> 0 bytes LongoMatch/Win32/bin/libtheoraenc-1.dll | Bin 258918 -> 0 bytes LongoMatch/Win32/bin/libvorbis-0.dll | Bin 191320 -> 0 bytes LongoMatch/Win32/bin/libvorbisenc-2.dll | Bin 1153304 -> 0 bytes LongoMatch/Win32/bin/libvorbisfile-3.dll | Bin 54835 -> 0 bytes LongoMatch/Win32/bin/libwavpack-1.dll | Bin 224968 -> 0 bytes LongoMatch/Win32/bin/libx264-67.dll | Bin 750080 -> 0 bytes LongoMatch/Win32/bin/libxml2-2.dll | Bin 1527731 -> 0 bytes LongoMatch/Win32/bin/mono.dll | Bin 2188589 -> 0 bytes LongoMatch/Win32/bin/pangosharpglue-2.dll | Bin 96779 -> 0 bytes LongoMatch/Win32/bin/pthreadGC2.dll | Bin 71886 -> 0 bytes LongoMatch/Win32/bin/regex2.dll | Bin 79360 -> 0 bytes LongoMatch/Win32/bin/xvidcore.dll | Bin 1101318 -> 0 bytes LongoMatch/Win32/bin/zlib1.dll | Bin 75264 -> 0 bytes LongoMatch/Win32/deps/Db4objects.Db4o.dll | Bin 600576 -> 0 bytes .../Win32/etc/fonts/conf.avail/10-autohint.conf | 9 - .../etc/fonts/conf.avail/10-no-sub-pixel.conf | 9 - .../etc/fonts/conf.avail/10-sub-pixel-bgr.conf | 9 - .../etc/fonts/conf.avail/10-sub-pixel-rgb.conf | 9 - .../etc/fonts/conf.avail/10-sub-pixel-vbgr.conf | 9 - .../etc/fonts/conf.avail/10-sub-pixel-vrgb.conf | 9 - .../Win32/etc/fonts/conf.avail/10-unhinted.conf | 9 - .../etc/fonts/conf.avail/20-fix-globaladvance.conf | 29 - .../etc/fonts/conf.avail/20-lohit-gujarati.conf | 11 - .../etc/fonts/conf.avail/20-unhint-small-vera.conf | 49 -- .../Win32/etc/fonts/conf.avail/30-amt-aliases.conf | 21 - .../Win32/etc/fonts/conf.avail/30-urw-aliases.conf | 52 -- .../Win32/etc/fonts/conf.avail/40-generic.conf | 66 --- .../Win32/etc/fonts/conf.avail/49-sansserif.conf | 21 - LongoMatch/Win32/etc/fonts/conf.avail/50-user.conf | 7 - .../Win32/etc/fonts/conf.avail/51-local.conf | 7 - .../Win32/etc/fonts/conf.avail/60-latin.conf | 42 -- .../etc/fonts/conf.avail/65-fonts-persian.conf | 539 -------------------- .../Win32/etc/fonts/conf.avail/65-nonlatin.conf | 38 -- .../Win32/etc/fonts/conf.avail/69-unifont.conf | 24 - .../Win32/etc/fonts/conf.avail/70-no-bitmaps.conf | 13 - .../Win32/etc/fonts/conf.avail/70-yes-bitmaps.conf | 13 - .../Win32/etc/fonts/conf.avail/80-delicious.conf | 20 - .../Win32/etc/fonts/conf.avail/90-synthetic.conf | 64 --- LongoMatch/Win32/etc/fonts/conf.avail/README | 48 -- .../etc/fonts/conf.d/20-fix-globaladvance.conf | 29 - .../Win32/etc/fonts/conf.d/20-lohit-gujarati.conf | 11 - .../etc/fonts/conf.d/20-unhint-small-vera.conf | 49 -- .../Win32/etc/fonts/conf.d/30-amt-aliases.conf | 21 - .../Win32/etc/fonts/conf.d/30-urw-aliases.conf | 52 -- LongoMatch/Win32/etc/fonts/conf.d/40-generic.conf | 66 --- .../Win32/etc/fonts/conf.d/49-sansserif.conf | 21 - LongoMatch/Win32/etc/fonts/conf.d/50-user.conf | 7 - LongoMatch/Win32/etc/fonts/conf.d/51-local.conf | 7 - LongoMatch/Win32/etc/fonts/conf.d/60-latin.conf | 42 -- .../Win32/etc/fonts/conf.d/65-fonts-persian.conf | 539 -------------------- LongoMatch/Win32/etc/fonts/conf.d/65-nonlatin.conf | 38 -- LongoMatch/Win32/etc/fonts/conf.d/69-unifont.conf | 24 - .../Win32/etc/fonts/conf.d/80-delicious.conf | 20 - .../Win32/etc/fonts/conf.d/90-synthetic.conf | 64 --- LongoMatch/Win32/etc/fonts/fonts.conf | 400 --------------- LongoMatch/Win32/etc/fonts/fonts.dtd | 186 ------- LongoMatch/Win32/etc/fonts/local.conf | 14 - LongoMatch/Win32/etc/gtk-2.0/gdk-pixbuf.loaders | 118 ----- LongoMatch/Win32/etc/gtk-2.0/gtk.immodules | 7 - LongoMatch/Win32/etc/gtk-2.0/gtkrc | 8 - LongoMatch/Win32/etc/gtk-2.0/im-multipress.conf | 23 - LongoMatch/Win32/etc/pango/pango.modules | 28 - LongoMatch/Win32/installer.iss | 53 -- LongoMatch/Win32/lib/gstreamer-0.10/libgnl.dll | Bin 104448 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgsta52dec.dll | Bin 23040 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstaacparse.dll | Bin 38400 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstadder.dll | Bin 25600 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstaiffparse.dll | Bin 32256 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstalaw.dll | Bin 18944 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstalpha.dll | Bin 12800 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstamrparse.dll | Bin 35840 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstapetag.dll | Bin 14848 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstappplugin.dll | Bin 8192 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstasfdemux.dll | Bin 86528 -> 0 bytes .../lib/gstreamer-0.10/libgstaudioconvert.dll | Bin 51200 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstaudiofx.dll | Bin 80384 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstaudiorate.dll | Bin 17920 -> 0 bytes .../lib/gstreamer-0.10/libgstaudioresample.dll | Bin 51200 -> 0 bytes .../lib/gstreamer-0.10/libgstaudiotestsrc.dll | Bin 28672 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstauparse.dll | Bin 18944 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstautoconvert.dll | Bin 25088 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstautodetect.dll | Bin 29696 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstavi.dll | Bin 96256 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstbayer.dll | Bin 18432 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstcairo.dll | Bin 27136 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstcamerabin.dll | Bin 75776 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstcdxaparse.dll | Bin 22016 -> 0 bytes .../lib/gstreamer-0.10/libgstcoreelements.dll | Bin 119296 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstcutter.dll | Bin 16896 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstdebug.dll | Bin 40960 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstdecodebin.dll | Bin 32768 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstdecodebin2.dll | Bin 73216 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstdeinterlace.dll | Bin 37376 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstdirectdraw.dll | Bin 35328 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstdirectsound.dll | Bin 227840 -> 0 bytes .../lib/gstreamer-0.10/libgstdshowdecwrapper.dll | Bin 88576 -> 0 bytes .../lib/gstreamer-0.10/libgstdshowsrcwrapper.dll | Bin 41984 -> 0 bytes .../lib/gstreamer-0.10/libgstdshowvideosink.dll | Bin 53760 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstdtmf.dll | Bin 37888 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstdts.dll | Bin 22016 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstdvdlpcmdec.dll | Bin 19456 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstdvdread.dll | Bin 33280 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstdvdspu.dll | Bin 40448 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstdvdsub.dll | Bin 28160 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgsteffectv.dll | Bin 31232 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstequalizer.dll | Bin 24064 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstfaac.dll | Bin 20992 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstfaad.dll | Bin 27648 -> 0 bytes .../lib/gstreamer-0.10/libgstffmpegcolorspace.dll | Bin 131584 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstffmpeggpl.dll | Bin 5764096 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstflv.dll | Bin 58880 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstflx.dll | Bin 16896 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstfreeze.dll | Bin 13312 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstgdp.dll | Bin 29696 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstgio.dll | Bin 36864 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgsth264parse.dll | Bin 20480 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgsticydemux.dll | Bin 15360 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstid3demux.dll | Bin 30720 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstiec958.dll | Bin 15872 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstinterleave.dll | Bin 35328 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstjpeg.dll | Bin 47616 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstlame.dll | Bin 45568 -> 0 bytes .../lib/gstreamer-0.10/libgstlegacyresample.dll | Bin 31744 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstlevel.dll | Bin 19456 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstlibmms.dll | Bin 16896 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstliveadder.dll | Bin 34304 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstmatroska.dll | Bin 136192 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstmonoscope.dll | Bin 17920 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstmpeg2dec.dll | Bin 33792 -> 0 bytes .../lib/gstreamer-0.10/libgstmpeg4videoparse.dll | Bin 20480 -> 0 bytes .../lib/gstreamer-0.10/libgstmpegaudioparse.dll | Bin 44544 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstmpegdemux.dll | Bin 141824 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstmpegstream.dll | Bin 58880 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstmpegtsmux.dll | Bin 34304 -> 0 bytes .../lib/gstreamer-0.10/libgstmpegvideoparse.dll | Bin 22528 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstmulaw.dll | Bin 15872 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstmultifile.dll | Bin 15872 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstmultipart.dll | Bin 23552 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstmve.dll | Bin 88576 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstmxf.dll | Bin 358400 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstneon.dll | Bin 22528 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstnice.dll | Bin 15360 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstnuvdemux.dll | Bin 20480 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstogg.dll | Bin 98816 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstpango.dll | Bin 46592 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstpcapparse.dll | Bin 13312 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstplaybin.dll | Bin 158720 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstqtdemux.dll | Bin 115200 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstqtmux.dll | Bin 66048 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstqueue2.dll | Bin 39936 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstrawparse.dll | Bin 35328 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstreal.dll | Bin 29696 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstrealmedia.dll | Bin 65024 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstreplaygain.dll | Bin 35328 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstresindvd.dll | Bin 143872 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstrtp_good.dll | Bin 202752 -> 0 bytes .../lib/gstreamer-0.10/libgstrtpjitterbuffer.dll | Bin 30208 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstrtpmanager.dll | Bin 147456 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstrtpmux.dll | Bin 19968 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstrtpnetsim.dll | Bin 14336 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstrtppayloads.dll | Bin 16384 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstrtprtpdemux.dll | Bin 14336 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstrtsp_good.dll | Bin 83456 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstscaletempo.dll | Bin 16896 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstsdl.dll | Bin 27136 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstsdpplugin.dll | Bin 25600 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstselector.dll | Bin 34816 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstsiren.dll | Bin 61952 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstsmpte.dll | Bin 49664 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstspectrum.dll | Bin 18944 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstspeed.dll | Bin 17920 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgststereo.dll | Bin 12288 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstsubenc.dll | Bin 12288 -> 0 bytes .../lib/gstreamer-0.10/libgstsynaesthesia.dll | Bin 17920 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgsttheora.dll | Bin 52736 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgsttta.dll | Bin 22528 -> 0 bytes .../lib/gstreamer-0.10/libgsttypefindfunctions.dll | Bin 48128 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstudp.dll | Bin 41984 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstvalve.dll | Bin 12800 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstvideobox.dll | Bin 23040 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstvideocrop.dll | Bin 32768 -> 0 bytes .../gstreamer-0.10/libgstvideofilterbalance.dll | Bin 16384 -> 0 bytes .../lib/gstreamer-0.10/libgstvideofilterflip.dll | Bin 18944 -> 0 bytes .../lib/gstreamer-0.10/libgstvideofiltergamma.dll | Bin 12288 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstvideomixer.dll | Bin 28160 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstvideorate.dll | Bin 23040 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstvideoscale.dll | Bin 55296 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstvideosignal.dll | Bin 19968 -> 0 bytes .../lib/gstreamer-0.10/libgstvideotestsrc.dll | Bin 36352 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstvmnc.dll | Bin 20480 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstvolume.dll | Bin 18432 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstvorbis.dll | Bin 55296 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstwasapi.dll | Bin 20480 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstwaveenc.dll | Bin 15360 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstwaveform.dll | Bin 15872 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstwavpack.dll | Bin 52736 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstwavparse.dll | Bin 40448 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstwininet.dll | Bin 14336 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstwinks.dll | Bin 54784 -> 0 bytes .../lib/gstreamer-0.10/libgstwinscreencap.dll | Bin 23552 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstx264.dll | Bin 25088 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstxvid.dll | Bin 39424 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgsty4m.dll | Bin 12800 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libanachron.dll | Bin 28558 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libaurora.dll | Bin 111369 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libbluecurve.dll | Bin 57580 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libcandido.dll | Bin 60073 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libcleanice.dll | Bin 36596 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libclearlooks.dll | Bin 164869 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libcrux-engine.dll | Bin 58726 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libdyndyn.dll | Bin 66599 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libgflat.dll | Bin 75869 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libglide.dll | Bin 77842 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libhcengine.dll | Bin 57334 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libindustrial.dll | Bin 55993 -> 0 bytes .../gtk-2.0/2.10.0/engines/liblighthouseblue.dll | Bin 51405 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libmetal.dll | Bin 47966 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libmgicchikn.dll | Bin 86783 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libmist.dll | Bin 50496 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libmurrine.dll | Bin 88123 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libnimbus.dll | Bin 138364 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libnodoka.dll | Bin 82547 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libpixmap.dll | Bin 35029 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libredmond95.dll | Bin 59520 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/librezlooks.dll | Bin 61051 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libsmooth.dll | Bin 221642 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libsvg.dll | Bin 55369 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libthinice.dll | Bin 52463 -> 0 bytes .../lib/gtk-2.0/2.10.0/engines/libubuntulooks.dll | Bin 78580 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libwimp.dll | Bin 55879 -> 0 bytes .../Win32/lib/gtk-2.0/2.10.0/engines/libxfce.dll | Bin 42700 -> 0 bytes .../gtk-2.0/2.10.0/loaders/libpixbufloader-ani.dll | Bin 28701 -> 0 bytes .../gtk-2.0/2.10.0/loaders/libpixbufloader-bmp.dll | Bin 27633 -> 0 bytes .../gtk-2.0/2.10.0/loaders/libpixbufloader-gif.dll | Bin 41810 -> 0 bytes .../gtk-2.0/2.10.0/loaders/libpixbufloader-ico.dll | Bin 26987 -> 0 bytes .../2.10.0/loaders/libpixbufloader-jpeg.dll | Bin 33859 -> 0 bytes .../gtk-2.0/2.10.0/loaders/libpixbufloader-pcx.dll | Bin 21312 -> 0 bytes .../gtk-2.0/2.10.0/loaders/libpixbufloader-png.dll | Bin 35817 -> 0 bytes .../gtk-2.0/2.10.0/loaders/libpixbufloader-pnm.dll | Bin 23669 -> 0 bytes .../gtk-2.0/2.10.0/loaders/libpixbufloader-ras.dll | Bin 18495 -> 0 bytes .../gtk-2.0/2.10.0/loaders/libpixbufloader-tga.dll | Bin 23999 -> 0 bytes .../2.10.0/loaders/libpixbufloader-tiff.dll | Bin 27817 -> 0 bytes .../2.10.0/loaders/libpixbufloader-wbmp.dll | Bin 18036 -> 0 bytes .../gtk-2.0/2.10.0/loaders/libpixbufloader-xbm.dll | Bin 23992 -> 0 bytes .../gtk-2.0/2.10.0/loaders/libpixbufloader-xpm.dll | Bin 41713 -> 0 bytes .../lib/gtk-2.0/2.10.0/loaders/svg_loader.dll | Bin 7168 -> 0 bytes LongoMatch/Win32/lib/gtk-2.0/include/gdkconfig.h | 24 - .../gtk-2.0/pango/1.6.0/modules/pango-basic-fc.dll | Bin 10240 -> 0 bytes .../pango/1.6.0/modules/pango-basic-win32.dll | Bin 16384 -> 0 bytes .../icons/hicolor/24x24/status/stock_calendar.png | Bin 823 -> 0 bytes .../icons/hicolor/24x24/status/stock_volume.png | Bin 1217 -> 0 bytes LongoMatch/Win32/share/icons/hicolor/index.theme | 13 - .../Win32/share/locale/es/LC_MESSAGES/atk10.mo | Bin 8464 -> 0 bytes .../Win32/share/locale/es/LC_MESSAGES/glib20.mo | Bin 42173 -> 0 bytes .../locale/es/LC_MESSAGES/gtk20-properties.mo | Bin 161594 -> 0 bytes .../Win32/share/locale/es/LC_MESSAGES/gtk20.mo | Bin 73871 -> 0 bytes .../share/locale/es/LC_MESSAGES/longomatch.mo | Bin 12919 -> 0 bytes .../Win32/share/locale/fr/LC_MESSAGES/atk10.mo | Bin 8514 -> 0 bytes .../Win32/share/locale/fr/LC_MESSAGES/glib20.mo | Bin 44077 -> 0 bytes .../locale/fr/LC_MESSAGES/gtk20-properties.mo | Bin 163692 -> 0 bytes .../Win32/share/locale/fr/LC_MESSAGES/gtk20.mo | Bin 75411 -> 0 bytes .../Win32/share/locale/lt/LC_MESSAGES/atk10.mo | Bin 8392 -> 0 bytes .../Win32/share/locale/lt/LC_MESSAGES/glib20.mo | Bin 37960 -> 0 bytes .../locale/lt/LC_MESSAGES/gtk20-properties.mo | Bin 147953 -> 0 bytes .../Win32/share/locale/lt/LC_MESSAGES/gtk20.mo | Bin 70145 -> 0 bytes .../Win32/share/longomatch/images/background.png | Bin 73017 -> 0 bytes .../Win32/share/longomatch/images/longomatch.png | Bin 16818 -> 0 bytes .../Win32/share/themes/AnachronAna/gtk-2.0/gtkrc | 95 ---- .../share/themes/Aurora-Midnight/gtk-2.0/gtkrc | 361 ------------- .../Win32/share/themes/Aurora-looks/gtk-2.0/gtkrc | 350 ------------- LongoMatch/Win32/share/themes/Aurora/gtk-2.0/gtkrc | 362 ------------- .../Win32/share/themes/Bluecurve/gtk-2.0/gtkrc | 151 ------ .../Win32/share/themes/Candido-Calm/gtk-2.0/gtkrc | 205 -------- .../Win32/share/themes/Candido-Candy/gtk-2.0/gtkrc | 209 -------- .../share/themes/Candido-DarkOrange/gtk-2.0/gtkrc | 193 ------- .../share/themes/Candido-Hybrid/gtk-2.0/gtkrc | 210 -------- .../share/themes/Candido-NeoGraphite/gtk-2.0/gtkrc | 200 -------- .../Win32/share/themes/Cleanice-dark/gtk-2.0/gtkrc | 74 --- .../Win32/share/themes/Cleanice/gtk-2.0/gtkrc | 37 -- .../share/themes/Cleanice/gtk-2.0/index.theme | 10 - .../share/themes/Cleanice/gtk-2.0/index.theme.in | 10 - .../Win32/share/themes/Clearlooks/gtk-2.0/gtkrc | 272 ---------- .../share/themes/ClearlooksClassic/gtk-2.0/gtkrc | 209 -------- .../Win32/share/themes/CortlandChicken/README | 1 - .../themes/CortlandChicken/gtk-2.0/check-in.png | Bin 161 -> 0 bytes .../themes/CortlandChicken/gtk-2.0/check-out.png | Bin 116 -> 0 bytes .../share/themes/CortlandChicken/gtk-2.0/gtkrc | 327 ------------ .../themes/CortlandChicken/gtk-2.0/radio-both.png | Bin 196 -> 0 bytes .../themes/CortlandChicken/gtk-2.0/radio-in.png | Bin 190 -> 0 bytes .../themes/CortlandChicken/gtk-2.0/radio-out.png | Bin 185 -> 0 bytes LongoMatch/Win32/share/themes/Crux/gtk-2.0/gtkrc | 149 ------ .../share/themes/Delightfully-Smooth/gtk-2.0/gtkrc | 440 ---------------- .../share/themes/DyndynBlueGray/gtk-2.0/gtkrc | 211 -------- .../share/themes/DyndynPinkGray/gtk-2.0/gtkrc | 211 -------- LongoMatch/Win32/share/themes/G26/gtk-2.0/gtkrc | 319 ------------ LongoMatch/Win32/share/themes/G26/gtk-2.0/iconrc | 20 - .../Win32/share/themes/G26/gtk-2.0/stock_apply.png | Bin 812 -> 0 bytes .../share/themes/G26/gtk-2.0/stock_bottom.png | Bin 662 -> 0 bytes .../share/themes/G26/gtk-2.0/stock_cancel.png | Bin 1166 -> 0 bytes .../Win32/share/themes/G26/gtk-2.0/stock_down.png | Bin 590 -> 0 bytes .../Win32/share/themes/G26/gtk-2.0/stock_first.png | Bin 657 -> 0 bytes .../Win32/share/themes/G26/gtk-2.0/stock_last.png | Bin 644 -> 0 bytes .../Win32/share/themes/G26/gtk-2.0/stock_left.png | Bin 523 -> 0 bytes .../Win32/share/themes/G26/gtk-2.0/stock_ok.png | Bin 806 -> 0 bytes .../share/themes/G26/gtk-2.0/stock_refresh.png | Bin 1061 -> 0 bytes .../Win32/share/themes/G26/gtk-2.0/stock_right.png | Bin 522 -> 0 bytes .../Win32/share/themes/G26/gtk-2.0/stock_top.png | Bin 674 -> 0 bytes .../Win32/share/themes/G26/gtk-2.0/stock_up.png | Bin 605 -> 0 bytes .../share/themes/Gflat-graphite/gtk-2.0/gtkrc | 213 -------- .../share/themes/Gflat-quicksilver/gtk-2.0/gtkrc | 178 ------- LongoMatch/Win32/share/themes/Glider/gtk-2.0/gtkrc | 129 ----- LongoMatch/Win32/share/themes/Glossy/gtk-2.0/gtkrc | 218 -------- .../Win32/share/themes/HighContrast/gtk-2.0/gtkrc | 248 --------- .../share/themes/HighContrast/gtk-2.0/gtkrc.in | 67 --- .../share/themes/HighContrastInverse/gtk-2.0/gtkrc | 252 --------- .../themes/HighContrastInverse/gtk-2.0/gtkrc.in | 71 --- .../themes/HighContrastLargePrint/gtk-2.0/gtkrc | 263 ---------- .../themes/HighContrastLargePrint/gtk-2.0/gtkrc.in | 82 --- .../HighContrastLargePrintInverse/gtk-2.0/gtkrc | 263 ---------- .../HighContrastLargePrintInverse/gtk-2.0/gtkrc.in | 82 --- LongoMatch/Win32/share/themes/Human/gtk-2.0/gtkrc | 240 --------- .../Win32/share/themes/Industrial/gtk-2.0/gtkrc | 225 -------- .../Win32/share/themes/Inverted/gtk-2.0/gtkrc | 198 ------- .../Win32/share/themes/LargePrint/gtk-2.0/gtkrc | 231 --------- .../Win32/share/themes/LargePrint/gtk-2.0/gtkrc.in | 50 -- .../share/themes/LighthouseBlue/gtk-2.0/gtkrc | 131 ----- .../Win32/share/themes/LowContrast/gtk-2.0/gtkrc | 238 --------- .../share/themes/LowContrast/gtk-2.0/gtkrc.in | 57 -- .../themes/LowContrastLargePrint/gtk-2.0/gtkrc | 253 --------- .../themes/LowContrastLargePrint/gtk-2.0/gtkrc.in | 72 --- LongoMatch/Win32/share/themes/MagicChicken/README | 1 - .../Win32/share/themes/MagicChicken/gtk-2.0/gtkrc | 293 ----------- LongoMatch/Win32/share/themes/Metal/gtk-2.0/gtkrc | 71 --- LongoMatch/Win32/share/themes/Mist/gtk-2.0/gtkrc | 85 --- .../Win32/share/themes/MurrinaCandy/gtk-2.0/gtkrc | 215 -------- .../share/themes/MurrinaCappuccino/gtk-2.0/gtkrc | 163 ------ .../Win32/share/themes/MurrinaEalm/gtk-2.0/gtkrc | 211 -------- .../share/themes/MurrinaNeoGraphite/gtk-2.0/gtkrc | 202 -------- .../Win32/share/themes/Nimbus/gtk-2.0/about.png | Bin 1344 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/add.png | Bin 1307 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/apply.png | Bin 752 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/broken_image.png | Bin 947 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/cancel.png | Bin 646 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/cdrom_16.png | Bin 782 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/cdrom_24.png | Bin 1470 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/clear.png | Bin 1056 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/close.png | Bin 727 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/colorselector.png | Bin 1732 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/connect.png | Bin 1098 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/convert.png | Bin 752 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/delete_16.png | Bin 945 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/delete_24.png | Bin 1562 -> 0 bytes .../Nimbus/gtk-2.0/dialog_authentication.png | Bin 2861 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/dialog_error.png | Bin 2665 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/dialog_info.png | Bin 3788 -> 0 bytes .../themes/Nimbus/gtk-2.0/dialog_question.png | Bin 4111 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/dialog_warning.png | Bin 3308 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/directory.png | Bin 721 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/disconnect.png | Bin 1098 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/document-new.png | Bin 843 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/document-open.png | Bin 1053 -> 0 bytes .../Nimbus/gtk-2.0/document-print-preview.png | Bin 1340 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/document-print.png | Bin 1104 -> 0 bytes .../themes/Nimbus/gtk-2.0/document-properties.png | Bin 991 -> 0 bytes .../themes/Nimbus/gtk-2.0/document-save-as.png | Bin 1335 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/document-save.png | Bin 955 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/edit-copy_16.png | Bin 552 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/edit-copy_24.png | Bin 698 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/edit-cut_16.png | Bin 602 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/edit-cut_24.png | Bin 1286 -> 0 bytes .../themes/Nimbus/gtk-2.0/edit-find-replace.png | Bin 1507 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/edit-find.png | Bin 1103 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/edit-paste.png | Bin 912 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/edit-redo.png | Bin 1163 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/edit-undo.png | Bin 1173 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/edit.png | Bin 684 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/execute.png | Bin 1300 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/file.png | Bin 516 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/floppy.png | Bin 818 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/font.png | Bin 1105 -> 0 bytes .../themes/Nimbus/gtk-2.0/format-indent-less.png | Bin 818 -> 0 bytes .../themes/Nimbus/gtk-2.0/format-indent-more.png | Bin 830 -> 0 bytes .../Nimbus/gtk-2.0/format-justify-center.png | Bin 699 -> 0 bytes .../themes/Nimbus/gtk-2.0/format-justify-fill.png | Bin 763 -> 0 bytes .../themes/Nimbus/gtk-2.0/format-justify-left.png | Bin 682 -> 0 bytes .../themes/Nimbus/gtk-2.0/format-justify-right.png | Bin 676 -> 0 bytes .../themes/Nimbus/gtk-2.0/format-text-bold.png | Bin 587 -> 0 bytes .../themes/Nimbus/gtk-2.0/format-text-italic.png | Bin 752 -> 0 bytes .../Nimbus/gtk-2.0/format-text-strikethrough.png | Bin 595 -> 0 bytes .../Nimbus/gtk-2.0/format-text-underline.png | Bin 593 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/fullscreen.png | Bin 1135 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/go-bottom.png | Bin 915 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/go-down.png | Bin 814 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/go-first.png | Bin 960 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/go-home.png | Bin 1130 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/go-jump.png | Bin 1010 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/go-last.png | Bin 958 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/go-next.png | Bin 828 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/go-previous.png | Bin 848 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/go-top.png | Bin 958 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/go-up.png | Bin 836 -> 0 bytes LongoMatch/Win32/share/themes/Nimbus/gtk-2.0/gtkrc | 70 --- .../Win32/share/themes/Nimbus/gtk-2.0/harddisk.png | Bin 957 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/help.png | Bin 1494 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/iconrc | 103 ---- .../Win32/share/themes/Nimbus/gtk-2.0/index.png | Bin 972 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/info.png | Bin 1333 -> 0 bytes .../themes/Nimbus/gtk-2.0/leave_fullscreen.png | Bin 895 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/media-ffwd.png | Bin 313 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/media-next.png | Bin 304 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/media-pause.png | Bin 236 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/media-play.png | Bin 282 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/media-prev.png | Bin 326 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/media-record.png | Bin 330 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/media-rewind.png | Bin 307 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/media-stop.png | Bin 227 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/network.png | Bin 1420 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/no.png | Bin 622 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/ok.png | Bin 797 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/preferences.png | Bin 898 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/quit.png | Bin 1143 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/remove.png | Bin 1188 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/revert.png | Bin 1175 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/sort_ascending.png | Bin 989 -> 0 bytes .../themes/Nimbus/gtk-2.0/sort_descending.png | Bin 983 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/spellcheck.png | Bin 715 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/stock_dnd.png | Bin 687 -> 0 bytes .../themes/Nimbus/gtk-2.0/stock_dnd_multiple.png | Bin 766 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/stop.png | Bin 941 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/undelete.png | Bin 1473 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/view-refresh.png | Bin 1214 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/yes.png | Bin 654 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/zoom-best-fit.png | Bin 1195 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/zoom-in.png | Bin 1167 -> 0 bytes .../share/themes/Nimbus/gtk-2.0/zoom-original.png | Bin 1133 -> 0 bytes .../Win32/share/themes/Nimbus/gtk-2.0/zoom-out.png | Bin 1116 -> 0 bytes .../Win32/share/themes/Nodoka-Aqua/gtk-2.0/gtkrc | 287 ----------- .../share/themes/Nodoka-Gilouche/gtk-2.0/gtkrc | 271 ---------- .../Win32/share/themes/Nodoka-Looks/gtk-2.0/gtkrc | 281 ---------- .../share/themes/Nodoka-Midnight/gtk-2.0/gtkrc | 282 ---------- .../share/themes/Nodoka-Rounded/gtk-2.0/gtkrc | 281 ---------- .../Win32/share/themes/Nodoka-Silver/gtk-2.0/gtkrc | 267 ---------- .../share/themes/Nodoka-Squared/gtk-2.0/gtkrc | 281 ---------- LongoMatch/Win32/share/themes/Nodoka/gtk-2.0/gtkrc | 281 ---------- .../Win32/share/themes/OkayishChicken/README | 1 - .../share/themes/OkayishChicken/gtk-2.0/gtkrc | 122 ----- .../Win32/share/themes/Redmond/gtk-2.0/gtkrc | 102 ---- .../share/themes/Rezlooks-Gilouche/gtk-2.0/gtkrc | 211 -------- .../share/themes/Rezlooks-graphite/gtk-2.0/gtkrc | 208 -------- LongoMatch/Win32/share/themes/Simple/gtk-2.0/gtkrc | 70 --- .../share/themes/Smooth-Funky-Monkey/gtk-2.0/gtkrc | 214 -------- .../Smooth-Funky-Monkey/gtk-2.0/stock_go-back.svg | 39 -- .../gtk-2.0/stock_go-forward.svg | 39 -- .../Smooth-Funky-Monkey/gtk-2.0/stock_go-up.svg | 42 -- .../Smooth-Funky-Monkey/gtk-2.0/stock_home.svg | 26 - .../Smooth-Funky-Monkey/gtk-2.0/stock_new.svg | 46 -- .../Smooth-Funky-Monkey/gtk-2.0/stock_open.svg | 51 -- .../Smooth-Funky-Monkey/gtk-2.0/stock_refresh.svg | 29 - .../Smooth-Funky-Monkey/gtk-2.0/stock_stop.svg | 26 - .../Win32/share/themes/Smooth-Line/gtk-2.0/gtkrc | 522 ------------------- .../share/themes/Smooth-Okayish/gtk-2.0/gtkrc | 143 ------ .../share/themes/Smooth-Sea-Ice/gtk-2.0/gtkrc | 365 ------------- .../themes/Smooth-Tangerine-Dream/gtk-2.0/gtkrc | 380 -------------- .../Win32/share/themes/Smooth-Winter/gtk-2.0/gtkrc | 353 ------------- .../share/themes/Smooth-Winter/gtk-2.0/iconrc | 20 - .../themes/Smooth-Winter/gtk-2.0/stock_apply.png | Bin 812 -> 0 bytes .../themes/Smooth-Winter/gtk-2.0/stock_bottom.png | Bin 662 -> 0 bytes .../themes/Smooth-Winter/gtk-2.0/stock_cancel.png | Bin 1166 -> 0 bytes .../themes/Smooth-Winter/gtk-2.0/stock_down.png | Bin 590 -> 0 bytes .../themes/Smooth-Winter/gtk-2.0/stock_first.png | Bin 657 -> 0 bytes .../themes/Smooth-Winter/gtk-2.0/stock_last.png | Bin 644 -> 0 bytes .../themes/Smooth-Winter/gtk-2.0/stock_left.png | Bin 523 -> 0 bytes .../themes/Smooth-Winter/gtk-2.0/stock_ok.png | Bin 806 -> 0 bytes .../themes/Smooth-Winter/gtk-2.0/stock_refresh.png | Bin 1061 -> 0 bytes .../themes/Smooth-Winter/gtk-2.0/stock_right.png | Bin 522 -> 0 bytes .../themes/Smooth-Winter/gtk-2.0/stock_top.png | Bin 674 -> 0 bytes .../themes/Smooth-Winter/gtk-2.0/stock_up.png | Bin 605 -> 0 bytes .../Win32/share/themes/ThinIce/gtk-2.0/gtkrc | 84 --- LongoMatch/Win32/share/themes/XFCE-4.0/README.html | 5 - .../Win32/share/themes/XFCE-4.0/gtk-2.0/gtkrc | 238 --------- LongoMatch/Win32/share/themes/XFCE-4.2/README.html | 5 - .../Win32/share/themes/XFCE-4.2/gtk-2.0/gtkrc | 289 ----------- LongoMatch/Win32/share/themes/XFCE/README.html | 5 - LongoMatch/Win32/share/themes/XFCE/gtk-2.0/gtkrc | 349 ------------- 576 files changed, 0 insertions(+), 19285 deletions(-) Sat Jan 9 15:54:30 2010 +0100 Andoni Morales Alastruey *Update win32 Makefile Makefile.win32 | 23 ++++++++++++++--------- 1 files changed, 14 insertions(+), 9 deletions(-) Thu Jan 7 23:43:08 2010 +0100 Andoni Morales Alastruey *Bump prerelease version 0.15.4.1 NEWS | 21 +++++++++++++++++++++ RELEASE | 38 +++++++++++++++++++++++++++++--------- configure.ac | 2 +- 3 files changed, 51 insertions(+), 10 deletions(-) Thu Jan 7 23:42:17 2010 +0100 Andoni Morales Alastruey *Add german translation to the makefiles po/Makefile.am | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Thu Jan 7 23:38:17 2010 +0100 Andoni Morales Alastruey *Remove AssemblyInfo.cs because it is autogenerated CesarPlayer/AssemblyInfo.cs | 50 ------------------------------------------- 1 files changed, 0 insertions(+), 50 deletions(-) Thu Jan 7 22:58:49 2010 +0100 Andoni Morales Alastruey *Update Spanish translation po/es.po | 125 +++++++++++++++++++++++++++++-------------------------------- 1 files changed, 59 insertions(+), 66 deletions(-) Thu Jan 7 22:49:37 2010 +0100 Andoni Morales Alastruey *Fix typo in translatable string LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 2 +- .../LongoMatch.Gui.Component.TaggerWidget.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) Thu Jan 7 22:37:23 2010 +0100 Andoni Morales Alastruey *Update Spanish translation po/es.po | 546 ++++++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 350 insertions(+), 196 deletions(-) Thu Jan 7 22:29:18 2010 +0100 Andoni Morales Alastruey *Fix title typo LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Thu Jan 7 22:22:51 2010 +0100 Andoni Morales Alastruey *Initialize tags list form compatibility with older projects LongoMatch/Time/MediaTimeNode.cs | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) Thu Jan 7 05:05:26 2010 +0100 Andoni Morales Alastruey *Listen to events after creating the menu LongoMatch/Gui/TreeView/PlaysTreeView.cs | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) Thu Jan 7 05:04:22 2010 +0100 Andoni Morales Alastruey *Add a sorting method selection in a submenu LongoMatch/Gui/TreeView/PlaysTreeView.cs | 14 +++++++++----- 1 files changed, 9 insertions(+), 5 deletions(-) Thu Jan 7 04:45:53 2010 +0100 Andoni Morales Alastruey *Fix menu labels LongoMatch/Gui/TreeView/PlaysTreeView.cs | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Thu Jan 7 04:44:01 2010 +0100 Andoni Morales Alastruey *Add menu to set the category's sort method LongoMatch/Gui/TreeView/PlaysTreeView.cs | 159 +++++++++++++++++++++++------- 1 files changed, 124 insertions(+), 35 deletions(-) Thu Jan 7 03:29:14 2010 +0100 Andoni Morales Alastruey *Column name must be translatable .../Gui/TreeView/PlayerPropertiesTreeView.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Jan 6 23:00:17 2010 +0100 Andoni Morales Alastruey *Fix plays treeview sort function LongoMatch/Gui/TreeView/PlaysTreeView.cs | 34 +++++++++++++++++++++-------- 1 files changed, 24 insertions(+), 10 deletions(-) Wed Jan 6 21:26:46 2010 +0100 Andoni Morales Alastruey *Removed unused widget LongoMatch/gtk-gui/gui.stetic | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-) Wed Jan 6 20:37:16 2010 +0100 Andoni Morales Alastruey *Add sort function to the plays list treeview LongoMatch/Gui/TreeView/PlaysTreeView.cs | 60 ++++++++++++++++++++++++++++-- 1 files changed, 56 insertions(+), 4 deletions(-) Wed Jan 6 20:35:57 2010 +0100 Andoni Morales Alastruey *Delete unused file from project LongoMatch/LongoMatch.mdp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Jan 6 02:16:53 2010 +0100 Andoni Morales Alastruey *Fix typo Position clumn name .../Gui/TreeView/PlayerPropertiesTreeView.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Tue Jan 5 20:35:21 2010 +0100 Andoni Morales Alastruey *Add .gitignore .gitignore | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 56 insertions(+), 0 deletions(-) Tue Jan 5 20:32:00 2010 +0100 Andoni Morales Alastruey *Add missing files in previous commit LongoMatch/Gui/Component/TagsTreeWidget.cs | 204 ++++++++++++++++++ LongoMatch/Gui/TreeView/TagsTreeView.cs | 227 ++++++++++++++++++++ .../LongoMatch.Gui.Component.TagsTreeWidget.cs | 113 ++++++++++ 3 files changed, 544 insertions(+), 0 deletions(-) Tue Jan 5 02:29:52 2010 +0100 Andoni Morales Alastruey *Added widget to list plays filtered by tags LongoMatch/Gui/MainWindow.cs | 3 + LongoMatch/Handlers/EventsManager.cs | 18 ++-- LongoMatch/LongoMatch.mdp | 3 + LongoMatch/Makefile.am | 3 + LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 113 ++++++++++++--------- LongoMatch/gtk-gui/gui.stetic | 125 ++++++++++++++++++++++- LongoMatch/gtk-gui/objects.xml | 22 ++++ 7 files changed, 227 insertions(+), 60 deletions(-) Tue Jan 5 01:12:10 2010 +0100 Andoni Morales Alastruey *Fix multiselection function LongoMatch/Gui/TreeView/PlaysTreeView.cs | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-) Tue Jan 5 01:04:00 2010 +0100 Andoni Morales Alastruey *Add support to select the sort method to the GUI layer LongoMatch/Gui/Component/CategoryProperties.cs | 6 +++ LongoMatch/Gui/TreeView/CategoriesTreeView.cs | 15 +++++++ .../LongoMatch.Gui.Component.CategoryProperties.cs | 36 +++++++++++++++++ LongoMatch/gtk-gui/gui.stetic | 42 +++++++++++++++++++- 4 files changed, 98 insertions(+), 1 deletions(-) Mon Jan 4 22:46:38 2010 +0100 Andoni Morales Alastruey *Add SortingFunction property to SectionsTimeNode LongoMatch/IO/SectionsReader.cs | 5 ++ LongoMatch/IO/SectionsWriter.cs | 3 + LongoMatch/Time/SectionsTimeNode.cs | 71 +++++++++++++++++++++++++++++++---- 3 files changed, 71 insertions(+), 8 deletions(-) Mon Jan 4 21:32:23 2010 +0100 Andoni Morales Alastruey *libcesarplayer.so is a link, use libcesarplayer.so.0 CesarPlayer/CesarPlayer.dll.config.in | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Tue Dec 29 20:01:54 2009 +0100 Andoni Morales Alastruey *Fix infinit loop trying to get a frame at the segment stop time CesarPlayer/Gui/PlayerBin.cs | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) Tue Dec 29 19:34:21 2009 +0100 Andoni Morales Alastruey *Allow use of direct hotkeys (without Shift or Alt combination) LongoMatch/Gui/Component/CategoryProperties.cs | 3 -- LongoMatch/Gui/Dialog/HotKeySelectorDialog.cs | 12 +++++++-- LongoMatch/Handlers/HotKeysManager.cs | 23 ++++++++----------- LongoMatch/Time/HotKey.cs | 8 ++++-- .../LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs | 4 +- LongoMatch/gtk-gui/gui.stetic | 5 ++- 6 files changed, 29 insertions(+), 26 deletions(-) Tue Dec 29 19:21:40 2009 +0100 Andoni Morales Alastruey *Remove the changed hotkey from the unavailable hotkeys dictionary LongoMatch/Gui/Dialog/EditCategoryDialog.cs | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) Mon Dec 28 00:21:26 2009 +0100 Andoni Morales Alastruey *Add tags in the Plays description LongoMatch/Time/MediaTimeNode.cs | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) Sun Dec 27 23:59:24 2009 +0100 Andoni Morales Alastruey *Remove unused code LongoMatch/Gui/Component/TaggerWidget.cs | 11 ----------- 1 files changed, 0 insertions(+), 11 deletions(-) Sun Dec 27 23:39:56 2009 +0100 Andoni Morales Alastruey *Override MediaTimeNode's toString() and use it in the treeviews LongoMatch/DB/TagsTemplate.cs | 4 ++++ LongoMatch/Gui/TreeView/PlayersTreeView.cs | 4 +--- LongoMatch/Gui/TreeView/PlaysTreeView.cs | 5 +---- LongoMatch/Time/MediaTimeNode.cs | 10 ++++++++++ 4 files changed, 16 insertions(+), 7 deletions(-) Thu Dec 24 20:23:47 2009 +0100 Andoni Morales Alastruey *Add duration to CVS file LongoMatch/IO/CSVExport.cs | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) Thu Dec 24 14:49:10 2009 +0100 Andoni Morales Alastruey *Use helper function to prevent adding twice the same tag LongoMatch/Gui/Component/TaggerWidget.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Thu Dec 24 13:05:19 2009 +0100 Andoni Morales Alastruey *Added ability to import project into the DB Closes #603260: Ability to export/import projects to/from other machines LongoMatch/DB/DataBase.cs | 20 +++++++++ LongoMatch/Gui/MainWindow.cs | 49 ++++++++++++++++++++++- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 14 +++++-- LongoMatch/gtk-gui/gui.stetic | 16 ++++++- 4 files changed, 91 insertions(+), 8 deletions(-) Wed Dec 23 22:17:26 2009 +0100 Andoni Morales Alastruey *Fix Gdk.Color Serialization/Deserialization LongoMatch/Time/SectionsTimeNode.cs | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Wed Dec 23 21:28:35 2009 +0100 Andoni Morales Alastruey *Fix Project deserialization LongoMatch/DB/Project.cs | 2 +- LongoMatch/Time/SectionsTimeNode.cs | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) Wed Dec 23 04:28:09 2009 +0100 Andoni Morales Alastruey *Add project export function to the projects manager LongoMatch/Gui/Dialog/ProjectsManager.cs | 30 +++++++- .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 70 ++++++++++++++------ LongoMatch/gtk-gui/gui.stetic | 20 +++++- 3 files changed, 95 insertions(+), 25 deletions(-) Wed Dec 23 04:27:26 2009 +0100 Andoni Morales Alastruey *Make PreviewMediaFile serializable CesarPlayer/Utils/PreviewMediaFile.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Dec 23 04:26:14 2009 +0100 Andoni Morales Alastruey *Remove print LongoMatch/Time/SectionsTimeNode.cs | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) Wed Dec 23 04:19:21 2009 +0100 Andoni Morales Alastruey *Added Project's serialization support LongoMatch/DB/Project.cs | 25 ++++++++++++++++++++++++- LongoMatch/DB/Sections.cs | 1 + LongoMatch/DB/TagsTemplate.cs | 2 +- LongoMatch/Time/HotKey.cs | 1 + LongoMatch/Time/PixbufTimeNode.cs | 1 + LongoMatch/Time/SectionsTimeNode.cs | 31 +++++++++++++++++++++++++++++-- LongoMatch/Time/Tag.cs | 2 +- LongoMatch/Time/Time.cs | 1 + 8 files changed, 59 insertions(+), 5 deletions(-) Wed Dec 23 04:12:32 2009 +0100 Andoni Morales Alastruey *Fix Hotkey Equal(object obj) method. When comparing to an object, check first if has the right type LongoMatch/Time/HotKey.cs | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) Sun Dec 20 22:50:02 2009 +0100 Andoni Morales Alastruey *Added support for tagging plays LongoMatch.mds | 2 +- LongoMatch/DB/Project.cs | 20 +++- LongoMatch/DB/Tag.cs | 60 ------- LongoMatch/DB/TagsTemplate.cs | 13 ++- LongoMatch/Gui/Component/PlaysListTreeWidget.cs | 8 + LongoMatch/Gui/Component/TaggerWidget.cs | 145 +++++++++++++++++ LongoMatch/Gui/Dialog/TaggerDialog.cs | 52 ++++++ LongoMatch/Gui/TreeView/PlaysTreeView.cs | 32 +++- LongoMatch/Handlers/EventsManager.cs | 19 ++- LongoMatch/Handlers/Handlers.cs | 9 +- LongoMatch/LongoMatch.mdp | 6 +- LongoMatch/Makefile.am | 6 +- LongoMatch/Time/MediaTimeNode.cs | 43 +++++ LongoMatch/Time/Tag.cs | 64 ++++++++ ...LongoMatch.Gui.Component.PlaysListTreeWidget.cs | 1 + .../LongoMatch.Gui.Component.TaggerWidget.cs | 120 ++++++++++++++ .../gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs | 65 ++++++++ LongoMatch/gtk-gui/gui.stetic | 170 ++++++++++++++++++++ LongoMatch/gtk-gui/objects.xml | 52 ++++--- 19 files changed, 779 insertions(+), 108 deletions(-) Sun Dec 13 13:28:31 2009 +0100 Andoni Morales Alastruey *Prevent crash for projects with NULL file saved in the DB LongoMatch/DB/DataBase.cs | 37 ++++++++++++++++++++++++++++--------- 1 files changed, 28 insertions(+), 9 deletions(-) Thu Dec 3 00:50:10 2009 +0100 Andoni Morales Alastruey *Closes #603276 - Use a template different from the default one when creating a new one LongoMatch/Gui/Dialog/EntryDialog.cs | 55 ++++++- LongoMatch/Gui/Dialog/TemplatesEditor.cs | 33 +++- .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 176 ++++++++++++-------- LongoMatch/gtk-gui/gui.stetic | 141 ++++++++++++---- 4 files changed, 292 insertions(+), 113 deletions(-) Mon Nov 30 00:29:35 2009 +0100 Andoni Morales Alastruey *Updated AUTHORS AUTHORS | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) Mon Nov 30 00:16:38 2009 +0100 Andoni Morales Alastruey *Closes #603274: Enable multiple selection of plays LongoMatch/Gui/TreeView/PlaysTreeView.cs | 147 +++++++++++++++++++++--------- 1 files changed, 105 insertions(+), 42 deletions(-) Sun Nov 29 18:06:49 2009 +0100 Mario Blättermann *Added de to LINGUAS po/LINGUAS | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sun Nov 29 18:06:08 2009 +0100 Mario Blättermann *Added German translation po/de.po | 924 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 924 insertions(+), 0 deletions(-) Sun Nov 29 02:57:58 2009 +0100 Andoni Morales Alastruey *Closes #603277 The projects manager does not ask to save an edited project when exiting LongoMatch/Gui/Dialog/ProjectsManager.cs | 30 +++++++++++++++++++----------- 1 files changed, 19 insertions(+), 11 deletions(-) Sun Nov 29 02:37:54 2009 +0100 Andoni Morales Alastruey *Generate longomatch.desktop from template in configure script configure.ac | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sat Nov 28 23:46:25 2009 +0100 Andoni Morales Alastruey *Use templates in POTFILES po/POTFILES.in | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Sat Nov 28 23:43:50 2009 +0100 Andoni Morales Alastruey *Add the template file for longomatch.desktop LongoMatch/longomatch.desktop | 10 ---------- LongoMatch/longomatch.desktop.in | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 10 deletions(-) Sat Nov 28 23:09:58 2009 +0100 Andoni Morales Alastruey *Intltool/gettext compatiblity fixes po/LINGUAS | 7 - po/LongoMatch.pot | 901 --------------------------------------------- po/Makefile.am | 2 +- po/es.po | 1047 +++++++++++++++++++++++++++++++++++++++++++++++++++++ po/es_ES.po | 1047 ----------------------------------------------------- po/messages.po | 887 --------------------------------------------- 6 files changed, 1048 insertions(+), 2843 deletions(-) Wed Nov 25 02:38:56 2009 +0100 Andoni Morales Alastruey *Added templates export function and fix the mess with autogenereated code LongoMatch/AssemblyInfo.cs | 51 ------------------ LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 3 +- LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 38 ++++++++++++++ .../Gui/Dialog/ProjectTemplateEditorDialog.cs | 13 ++++- LongoMatch/Gui/Dialog/TemplatesEditor.cs | 1 + LongoMatch/LongoMatch.mdp | 1 + .../LongoMatch.Gui.Component.CategoryProperties.cs | 6 ++- .../LongoMatch.Gui.Component.DrawingToolBox.cs | 2 - .../LongoMatch.Gui.Component.PlayListWidget.cs | 8 +++- ...ngoMatch.Gui.Component.PlayersListTreeWidget.cs | 8 +++- ...LongoMatch.Gui.Component.PlaysListTreeWidget.cs | 10 +++- ...ngoMatch.Gui.Component.ProjectTemplateWidget.cs | 54 ++++++++++++++++++-- .../LongoMatch.Gui.Component.TeamTemplateWidget.cs | 6 ++- .../gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs | 24 ++++++--- .../LongoMatch.Gui.Dialog.EditCategoryDialog.cs | 6 ++- .../LongoMatch.Gui.Dialog.EditPlayerDialog.cs | 4 +- .../LongoMatch.Gui.Dialog.NewProjectDialog.cs | 7 ++- .../LongoMatch.Gui.Dialog.OpenProjectDialog.cs | 4 +- ...Match.Gui.Dialog.ProjectTemplateEditorDialog.cs | 13 +++-- .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 15 +++++- .../LongoMatch.Gui.Dialog.TeamTemplateEditor.cs | 5 ++- .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 14 ++++- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 42 ++++++++++++--- LongoMatch/gtk-gui/gui.stetic | 39 +++++++++++++-- LongoMatch/gtk-gui/objects.xml | 52 +++++++++--------- 25 files changed, 299 insertions(+), 127 deletions(-) Fri Nov 20 00:56:31 2009 +0100 Andoni Morales Alastruey *Add missing enums file LongoMatch/Common/Enums.cs | 30 ++++++++++++++++++++++++++++++ 1 files changed, 30 insertions(+), 0 deletions(-) Thu Nov 19 00:02:34 2009 +0100 Andoni Morales Alastruey *Move enums to a LongoMatch.Common namespace/folder LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 21 +++++++++------------ LongoMatch/Gui/Dialog/NewProjectDialog.cs | 3 ++- LongoMatch/Gui/Dialog/ProjectsManager.cs | 3 ++- LongoMatch/Gui/MainWindow.cs | 3 ++- LongoMatch/Makefile.am | 1 + 5 files changed, 16 insertions(+), 15 deletions(-) Fri Nov 20 00:33:53 2009 +0100 Andoni Morales Alastruey *Revert astyle for stetic generated files. These files are autogenerated by Gtk Stetic and wil be changed on each rebuild .../LongoMatch.Gui.Component.ButtonsWidget.cs | 52 +- .../LongoMatch.Gui.Component.CategoryProperties.cs | 282 +++--- .../LongoMatch.Gui.Component.DrawingToolBox.cs | 810 ++++++++-------- .../LongoMatch.Gui.Component.DrawingWidget.cs | 84 +- .../LongoMatch.Gui.Component.NotesWidget.cs | 124 ++-- .../LongoMatch.Gui.Component.PlayListWidget.cs | 412 ++++---- .../LongoMatch.Gui.Component.PlayerProperties.cs | 318 +++--- ...ngoMatch.Gui.Component.PlayersListTreeWidget.cs | 68 +- ...LongoMatch.Gui.Component.PlaysListTreeWidget.cs | 76 +- ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 1012 ++++++++++---------- .../LongoMatch.Gui.Component.ProjectListWidget.cs | 160 ++-- ...ngoMatch.Gui.Component.ProjectTemplateWidget.cs | 350 ++++---- .../LongoMatch.Gui.Component.TeamTemplateWidget.cs | 84 +- .../LongoMatch.Gui.Component.TimeAdjustWidget.cs | 178 ++-- .../LongoMatch.Gui.Component.TimeLineWidget.cs | 208 ++-- .../gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs | 302 +++--- .../LongoMatch.Gui.Dialog.EditCategoryDialog.cs | 112 ++-- .../LongoMatch.Gui.Dialog.EditPlayerDialog.cs | 120 ++-- .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 272 +++--- ...Match.Gui.Dialog.FramesCaptureProgressDialog.cs | 194 ++-- .../LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs | 118 ++-- .../gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs | 376 ++++---- .../LongoMatch.Gui.Dialog.NewProjectDialog.cs | 151 ++-- .../LongoMatch.Gui.Dialog.OpenProjectDialog.cs | 148 ++-- ...LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs | 150 ++-- ...Match.Gui.Dialog.ProjectTemplateEditorDialog.cs | 119 ++-- .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 341 ++++---- .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 290 +++--- .../LongoMatch.Gui.Dialog.TeamTemplateEditor.cs | 117 ++-- .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 410 ++++---- .../gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs | 214 ++-- ...LongoMatch.Gui.Dialog.VideoEditionProperties.cs | 544 ++++++------ .../LongoMatch.Gui.Dialog.Win32CalendarDialog.cs | 124 ++-- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 784 ++++++++-------- .../gtk-gui/LongoMatch.Gui.Popup.CalendarPopup.cs | 76 +- .../LongoMatch.Gui.Popup.TransparentDrawingArea.cs | 74 +- LongoMatch/gtk-gui/generated.cs | 220 +++--- 37 files changed, 4686 insertions(+), 4788 deletions(-) Wed Nov 18 23:11:28 2009 +0100 Andoni Morales Alastruey *Apply new coding style to LongoMatch/* LongoMatch/AssemblyInfo.cs | 2 +- LongoMatch/Compat/0.0/DB/DataBase.cs | 24 +- LongoMatch/Compat/0.0/DB/MediaFile.cs | 83 +- LongoMatch/Compat/0.0/DB/Project.cs | 132 ++- LongoMatch/Compat/0.0/DB/Sections.cs | 54 +- LongoMatch/Compat/0.0/DatabaseMigrator.cs | 186 ++-- LongoMatch/Compat/0.0/IO/SectionsReader.cs | 64 +- LongoMatch/Compat/0.0/PlayListMigrator.cs | 90 +- LongoMatch/Compat/0.0/Playlist/IPlayList.cs | 24 +- LongoMatch/Compat/0.0/Playlist/PlayList.cs | 150 ++-- LongoMatch/Compat/0.0/TemplatesMigrator.cs | 72 +- LongoMatch/Compat/0.0/Time/MediaTimeNode.cs | 128 ++- LongoMatch/Compat/0.0/Time/PixbufTimeNode.cs | 42 +- LongoMatch/Compat/0.0/Time/PlayListTimeNode.cs | 50 +- LongoMatch/Compat/0.0/Time/SectionsTimeNode.cs | 22 +- LongoMatch/Compat/0.0/Time/Time.cs | 106 ++- LongoMatch/Compat/0.0/Time/TimeNode.cs | 72 +- LongoMatch/DB/DataBase.cs | 28 +- LongoMatch/DB/Project.cs | 82 +- LongoMatch/DB/Sections.cs | 12 +- LongoMatch/DB/Tag.cs | 4 +- LongoMatch/DB/TagsTemplate.cs | 4 +- LongoMatch/Gui/Component/ButtonsWidget.cs | 52 +- LongoMatch/Gui/Component/CategoryProperties.cs | 72 +- LongoMatch/Gui/Component/DrawingToolBox.cs | 74 +- LongoMatch/Gui/Component/DrawingWidget.cs | 332 ++++---- LongoMatch/Gui/Component/NotesWidget.cs | 36 +- LongoMatch/Gui/Component/PlayListWidget.cs | 262 +++--- LongoMatch/Gui/Component/PlayerProperties.cs | 66 +- LongoMatch/Gui/Component/PlayersListTreeWidget.cs | 104 +- LongoMatch/Gui/Component/PlaysListTreeWidget.cs | 103 +- LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 389 +++++---- LongoMatch/Gui/Component/ProjectListWidget.cs | 122 ++-- LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 136 ++-- LongoMatch/Gui/Component/TeamTemplateWidget.cs | 54 +- LongoMatch/Gui/Component/TimeAdjustWidget.cs | 28 +- LongoMatch/Gui/Component/TimeLineWidget.cs | 162 ++-- LongoMatch/Gui/Component/TimeReferenceWidget.cs | 108 ++- LongoMatch/Gui/Component/TimeScale.cs | 326 ++++--- LongoMatch/Gui/Dialog/DrawingTool.cs | 72 +- LongoMatch/Gui/Dialog/EditCategoryDialog.cs | 46 +- LongoMatch/Gui/Dialog/EditPlayerDialog.cs | 28 +- LongoMatch/Gui/Dialog/EntryDialog.cs | 44 +- .../Gui/Dialog/FramesCaptureProgressDialog.cs | 30 +- LongoMatch/Gui/Dialog/HotKeySelectorDialog.cs | 52 +- LongoMatch/Gui/Dialog/Migrator.cs | 90 +- LongoMatch/Gui/Dialog/NewProjectDialog.cs | 18 +- LongoMatch/Gui/Dialog/OpenProjectDialog.cs | 20 +- LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs | 62 +- .../Gui/Dialog/ProjectTemplateEditorDialog.cs | 34 +- LongoMatch/Gui/Dialog/ProjectsManager.cs | 112 ++-- LongoMatch/Gui/Dialog/SnapshotsDialog.cs | 40 +- LongoMatch/Gui/Dialog/TeamTemplateEditor.cs | 24 +- LongoMatch/Gui/Dialog/TemplatesEditor.cs | 205 ++-- LongoMatch/Gui/Dialog/UpdateDialog.cs | 12 +- LongoMatch/Gui/Dialog/VideoEditionProperties.cs | 146 ++-- LongoMatch/Gui/Dialog/Win32CalendarDialog.cs | 28 +- LongoMatch/Gui/MainWindow.cs | 388 ++++---- LongoMatch/Gui/Popup/CalendarPopup.cs | 50 +- LongoMatch/Gui/Popup/MessagePopup.cs | 26 +- LongoMatch/Gui/TransparentDrawingArea.cs | 224 +++--- LongoMatch/Gui/TreeView/CategoriesTreeView.cs | 138 ++-- LongoMatch/Gui/TreeView/PlayListTreeView.cs | 125 ++-- .../Gui/TreeView/PlayerPropertiesTreeView.cs | 114 ++-- LongoMatch/Gui/TreeView/PlayersTreeView.cs | 198 ++-- LongoMatch/Gui/TreeView/PlaysTreeView.cs | 214 +++-- LongoMatch/Handlers/DrawingManager.cs | 52 +- LongoMatch/Handlers/EventsManager.cs | 260 +++--- LongoMatch/Handlers/Handlers.cs | 58 +- LongoMatch/Handlers/HotKeysManager.cs | 44 +- LongoMatch/Handlers/VideoDrawingsManager.cs | 106 +- LongoMatch/IO/CSVExport.cs | 30 +- LongoMatch/IO/SectionsReader.cs | 62 +- LongoMatch/IO/SectionsWriter.cs | 78 +- LongoMatch/IO/XMLReader.cs | 62 +- LongoMatch/Main.cs | 218 +++--- LongoMatch/Playlist/IPlayList.cs | 20 +- LongoMatch/Playlist/PlayList.cs | 152 ++-- LongoMatch/Time/HotKey.cs | 6 +- LongoMatch/Time/MediaTimeNode.cs | 2 +- LongoMatch/Time/PixbufTimeNode.cs | 6 +- LongoMatch/Time/SectionsTimeNode.cs | 2 +- LongoMatch/Time/Time.cs | 20 +- LongoMatch/Updates/Updater.cs | 64 +- LongoMatch/Updates/XmlUpdateParser.cs | 44 +- .../LongoMatch.Gui.Component.ButtonsWidget.cs | 52 +- .../LongoMatch.Gui.Component.CategoryProperties.cs | 286 +++--- .../LongoMatch.Gui.Component.DrawingToolBox.cs | 808 ++++++++-------- .../LongoMatch.Gui.Component.DrawingWidget.cs | 84 +- .../LongoMatch.Gui.Component.NotesWidget.cs | 124 ++-- .../LongoMatch.Gui.Component.PlayListWidget.cs | 418 ++++---- .../LongoMatch.Gui.Component.PlayerProperties.cs | 318 +++--- ...ngoMatch.Gui.Component.PlayersListTreeWidget.cs | 74 +- .../LongoMatch.Gui.Component.PlayersTreeView.cs | 36 +- ...LongoMatch.Gui.Component.PlaysListTreeWidget.cs | 84 +- ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 1012 ++++++++++---------- .../LongoMatch.Gui.Component.ProjectListWidget.cs | 160 ++-- ...ngoMatch.Gui.Component.ProjectTemplateWidget.cs | 354 ++++---- .../LongoMatch.Gui.Component.TeamTemplateWidget.cs | 88 +- .../LongoMatch.Gui.Component.TimeAdjustWidget.cs | 178 ++-- .../LongoMatch.Gui.Component.TimeLineWidget.cs | 208 ++-- .../gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs | 310 +++--- .../LongoMatch.Gui.Dialog.EditCategoryDialog.cs | 114 ++-- .../LongoMatch.Gui.Dialog.EditPlayerDialog.cs | 122 ++-- .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 272 +++--- ...Match.Gui.Dialog.FramesCaptureProgressDialog.cs | 194 ++-- .../LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs | 118 ++-- .../gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs | 376 ++++---- .../LongoMatch.Gui.Dialog.NewProjectDialog.cs | 156 ++-- .../LongoMatch.Gui.Dialog.OpenProjectDialog.cs | 150 ++-- ...LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs | 150 ++-- ...Match.Gui.Dialog.ProjectTemplateEditorDialog.cs | 122 ++-- .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 352 ++++---- .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 290 +++--- .../LongoMatch.Gui.Dialog.TeamTemplateEditor.cs | 120 ++-- .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 420 ++++---- .../gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs | 214 ++-- ...LongoMatch.Gui.Dialog.VideoEditionProperties.cs | 544 ++++++------ .../LongoMatch.Gui.Dialog.Win32CalendarDialog.cs | 124 ++-- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 810 ++++++++-------- .../gtk-gui/LongoMatch.Gui.Popup.CalendarPopup.cs | 76 +- .../LongoMatch.Gui.Popup.TransparentDrawingArea.cs | 74 +- LongoMatch/gtk-gui/generated.cs | 220 +++--- 123 files changed, 8800 insertions(+), 8495 deletions(-) Wed Nov 18 21:48:02 2009 +0100 Andoni Morales Alastruey *Document LongoMatch.DB and fix code style LongoMatch/DB/DataBase.cs | 239 +++++++++++------- LongoMatch/DB/Project.cs | 488 ++++++++++++++++++++++++++--------- LongoMatch/DB/ProjectDescription.cs | 145 +++++++---- LongoMatch/DB/Sections.cs | 249 ++++++++++++++---- LongoMatch/DB/Tag.cs | 42 ++-- LongoMatch/DB/TagsTemplate.cs | 24 +- LongoMatch/DB/TeamTemplate.cs | 75 +++--- 7 files changed, 872 insertions(+), 390 deletions(-) Wed Nov 18 21:45:46 2009 +0100 Andoni Morales Alastruey *Start documention and fix code style LongoMatch/Time/Drawing.cs | 44 +++-- LongoMatch/Time/DrawingsList.cs | 80 +++++++++ LongoMatch/Time/HotKey.cs | 102 +++++++---- LongoMatch/Time/MediaTimeNode.cs | 312 ++++++++++++++++++++++++---------- LongoMatch/Time/PixbufTimeNode.cs | 60 +++++--- LongoMatch/Time/PlayListTimeNode.cs | 74 ++++++--- LongoMatch/Time/Player.cs | 97 ++++++++--- LongoMatch/Time/SectionsTimeNode.cs | 64 ++++++-- LongoMatch/Time/Time.cs | 136 +++++++++------ LongoMatch/Time/TimeNode.cs | 124 ++++++++------- 10 files changed, 750 insertions(+), 343 deletions(-) Mon Nov 2 01:05:02 2009 +0100 Andoni Morales Alastruey *Revert "Start refactoring" LongoMatch/DB/Project.cs | 41 ++++++-------- LongoMatch/Time/Drawing.cs | 6 -- LongoMatch/Time/HotKey.cs | 28 ++++------ LongoMatch/Time/MediaTimeNode.cs | 103 ++++++----------------------------- LongoMatch/Time/PlayListTimeNode.cs | 12 ++-- LongoMatch/Time/Player.cs | 11 +--- LongoMatch/Time/Time.cs | 38 ++++++++------ LongoMatch/Time/TimeNode.cs | 60 ++++++++++++-------- 8 files changed, 112 insertions(+), 187 deletions(-) Sun Nov 1 16:13:05 2009 +0100 Andoni Morales Alastruey *Start refactoring LongoMatch/DB/Project.cs | 41 ++++++++------ LongoMatch/Time/Drawing.cs | 6 ++ LongoMatch/Time/HotKey.cs | 28 ++++++---- LongoMatch/Time/MediaTimeNode.cs | 103 +++++++++++++++++++++++++++++------ LongoMatch/Time/PlayListTimeNode.cs | 12 ++-- LongoMatch/Time/Player.cs | 11 +++- LongoMatch/Time/Time.cs | 38 ++++++-------- LongoMatch/Time/TimeNode.cs | 60 ++++++++------------ 8 files changed, 187 insertions(+), 112 deletions(-) Sun Nov 1 13:44:57 2009 +0100 Andoni Morales Alastruey *Bump version 0.15.4 CesarPlayer/AssemblyInfo.cs | 2 +- LongoMatch/AssemblyInfo.cs | 2 +- RELEASE | 11 +++++------ configure.ac | 2 +- 4 files changed, 8 insertions(+), 9 deletions(-) Tue Oct 20 13:02:52 2009 +0200 Andoni Morales Alastruey *Bump version 0.15.3.2 CesarPlayer/AssemblyInfo.cs | 2 +- LongoMatch/AssemblyInfo.cs | 2 +- configure.ac | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) Tue Oct 20 13:01:14 2009 +0200 Andoni Morales Alastruey *Don't try to set sections is we set a null project LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Tue Oct 20 13:00:22 2009 +0200 Andoni Morales Alastruey *Update projects list when a project is edited and saved LongoMatch/Gui/Dialog/ProjectsManager.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Tue Oct 20 11:04:05 2009 +0200 Andoni Morales Alastruey *Update RELEASE RELEASE | 16 +++++++++------- 1 files changed, 9 insertions(+), 7 deletions(-) Tue Oct 20 10:56:04 2009 +0200 Andoni Morales Alastruey *Remove warnings LongoMatch/Gui/Dialog/ProjectsManager.cs | 1 - LongoMatch/Gui/TreeView/PlaysTreeView.cs | 1 - LongoMatch/Handlers/EventsManager.cs | 1 - 3 files changed, 0 insertions(+), 3 deletions(-) Tue Oct 20 10:53:19 2009 +0200 Andoni Morales Alastruey *Change spanich translation code to es_ES in makefile po/Makefile.am | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Tue Oct 20 10:44:47 2009 +0200 Andoni Morales Alastruey *Force the deletion of the project from the DB when updating it When updating a project if we use the update method binding the current Project object to the one in the DB with the same filename, the update is successfull but all the childs of the stored project remains in the DB. Instead if we delete the project stored in the DB and we replace it with the updated one all the childs are deleted, and therefore the DB does not expand on each update LongoMatch/DB/DataBase.cs | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-) Mon Oct 19 01:09:00 2009 +0200 Andoni Morales Alastruey *Add more i18n fixes LongoMatch/Gui/Component/ProjectListWidget.cs | 2 +- .../gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs | 2 +- .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 2 -- LongoMatch/gtk-gui/gui.stetic | 2 -- 4 files changed, 2 insertions(+), 6 deletions(-) Sun Oct 18 16:47:05 2009 +0200 Andoni Morales Alastruey *i18n fixes LongoMatch.mds | 14 +- LongoMatch/Gui/Component/ProjectListWidget.cs | 14 +- LongoMatch/Gui/TreeView/PlayListTreeView.cs | 10 +- LongoMatch/Gui/TreeView/PlayersTreeView.cs | 6 +- LongoMatch/Gui/TreeView/PlaysTreeView.cs | 8 +- LongoMatch/gtk-gui/gui.stetic | 6 +- po/LongoMatch.pot | 901 +++++++++++++++++ po/es_ES.po | 1285 +++++++++++++------------ po/fr.po | 965 +++++++++---------- po/messages.po | 58 +- 10 files changed, 2067 insertions(+), 1200 deletions(-) Sun Oct 18 12:45:30 2009 +0200 Andoni Morales Alastruey *Make the project intltool compatible for GNOME translators Makefile.am | 8 +- Translations/Makefile.am | 37 -- Translations/Translations.mdse | 13 - Translations/es.po | 1026 --------------------------------------- Translations/fr.po | 901 ---------------------------------- Translations/messages.po | 899 ---------------------------------- autogen.sh | 2 +- configure.ac | 2 +- po/LINGUAS | 11 + po/Makefile.am | 37 ++ po/POTFILES.in | 182 +++++++ po/Translations.mdse | 13 + po/es_ES.po | 1040 ++++++++++++++++++++++++++++++++++++++++ po/fr.po | 917 +++++++++++++++++++++++++++++++++++ po/messages.po | 899 ++++++++++++++++++++++++++++++++++ 15 files changed, 3107 insertions(+), 2880 deletions(-) Sat Oct 17 23:05:21 2009 +0200 Andoni Morales Alastruey *Update win32 spanish translations .../share/locale/es/LC_MESSAGES/longomatch.mo | Bin 12232 -> 12919 bytes 1 files changed, 0 insertions(+), 0 deletions(-) Sat Oct 17 23:25:22 2009 +0200 Andoni Morales Alastruey *Improve win32 makefiles LongoMatch/Win32/deps/Db4objects.Db4o.dll | Bin 0 -> 600576 bytes Makefile.win32 | 109 ++++++++++++++++------------- makeBundle.sh | 8 -- 3 files changed, 59 insertions(+), 58 deletions(-) Fri Oct 16 22:22:03 2009 +0200 Andoni Morales Alastruey *Update win32 Mafefile Makefile.win32 | 229 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 123 insertions(+), 106 deletions(-) Sat Oct 17 01:26:21 2009 +0200 Andoni Morales Alastruey *Bump version 0.15.3.1 (pre-release) CesarPlayer/AssemblyInfo.cs | 2 +- LongoMatch/AssemblyInfo.cs | 2 +- NEWS | 14 ++++++++++++++ configure.ac | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) Sat Oct 17 01:08:49 2009 +0200 Andoni Morales Alastruey *Update Translations Translations/es.po | 156 ++++++++++++++++++++++++++++------------------ Translations/fr.po | 150 +++++++++++++++++++++++++++----------------- Translations/messages.po | 151 +++++++++++++++++++++++++++----------------- 3 files changed, 280 insertions(+), 177 deletions(-) Fri Oct 16 22:28:08 2009 +0200 Andoni Morales Alastruey *Apply changes in drawing tool icons to the class (previously only effective in the stetic file) .../LongoMatch.Gui.Component.DrawingToolBox.cs | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) Fri Oct 16 21:49:44 2009 +0200 Andoni Morales Alastruey *Used icons embeded as resources in the drawing tool LongoMatch/LongoMatch.mdp | 5 +++++ LongoMatch/Makefile.am | 7 ++++++- LongoMatch/gtk-gui/gui.stetic | 14 ++++++++------ LongoMatch/images/stock_draw-circle-unfilled.png | Bin 0 -> 418 bytes LongoMatch/images/stock_draw-freeform-line.png | Bin 0 -> 276 bytes LongoMatch/images/stock_draw-line-45.png | Bin 0 -> 113 bytes .../images/stock_draw-line-ends-with-arrow.png | Bin 0 -> 155 bytes .../images/stock_draw-rectangle-unfilled.png | Bin 0 -> 123 bytes 8 files changed, 19 insertions(+), 7 deletions(-) Fri Oct 16 21:47:07 2009 +0200 Andoni Morales Alastruey *Set a default width for the rubber LongoMatch/Gui/Component/DrawingWidget.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Fri Oct 16 17:52:21 2009 +0200 Andoni Morales Alastruey *Add missing file in previous commit LongoMatch/DB/ProjectDescription.cs | 120 +++++++++++++++++++++++++++++++++++ 1 files changed, 120 insertions(+), 0 deletions(-) Fri Oct 16 17:05:54 2009 +0200 Andoni Morales Alastruey *Closes bug: #598675 - Memory leak handling Project objects LongoMatch/DB/DataBase.cs | 111 +++++++++------ LongoMatch/DB/Project.cs | 155 ++++++++++--------- LongoMatch/DB/Sections.cs | 4 + LongoMatch/DB/TeamTemplate.cs | 6 +- LongoMatch/Gui/Component/ButtonsWidget.cs | 13 +- LongoMatch/Gui/Component/PlayersListTreeWidget.cs | 5 + LongoMatch/Gui/Component/PlaysListTreeWidget.cs | 12 +- LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 25 ++-- LongoMatch/Gui/Component/ProjectListWidget.cs | 62 ++++----- LongoMatch/Gui/Component/TimeLineWidget.cs | 30 +++-- LongoMatch/Gui/Dialog/OpenProjectDialog.cs | 21 +-- LongoMatch/Gui/Dialog/ProjectsManager.cs | 42 +++--- LongoMatch/Gui/MainWindow.cs | 80 ++++------- LongoMatch/Handlers/HotKeysManager.cs | 20 ++- LongoMatch/LongoMatch.mdp | 1 + LongoMatch/Main.cs | 9 +- LongoMatch/Makefile.am | 1 + .../LongoMatch.Gui.Dialog.OpenProjectDialog.cs | 3 +- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 6 +- LongoMatch/gtk-gui/gui.stetic | 11 +- LongoMatch/gtk-gui/objects.xml | 16 +- 21 files changed, 329 insertions(+), 304 deletions(-) Thu Oct 15 10:53:56 2009 +0200 Andoni Morales Alastruey *Try to fix some memory leaks handling Pxibuf's CesarPlayer/Gui/PlayerBin.cs | 24 +++--------------------- CesarPlayer/Handlers/Handlers.cs | 2 +- LongoMatch/Gui/Component/DrawingWidget.cs | 5 +++++ LongoMatch/Gui/Dialog/DrawingTool.cs | 4 ++++ LongoMatch/Gui/MainWindow.cs | 2 +- LongoMatch/Handlers/EventsManager.cs | 17 ++++++++++++++--- LongoMatch/Handlers/VideoDrawingsManager.cs | 7 +++++-- 7 files changed, 33 insertions(+), 28 deletions(-) Wed Oct 14 14:46:28 2009 +0200 Andoni Morales Alastruey *Improve plays details by displaying a bigger frame and using a unique Cell for all the details (name, start time,...) CesarPlayer/Gui/PlayerBin.cs | 4 +- LongoMatch/Gui/TreeView/PlayersTreeView.cs | 58 ++++----------- LongoMatch/Gui/TreeView/PlaysTreeView.cs | 111 ++++++---------------------- LongoMatch/Time/PixbufTimeNode.cs | 4 +- 4 files changed, 43 insertions(+), 134 deletions(-) Wed Oct 14 20:57:51 2009 +0200 Andoni Morales Alastruey *New Feature: Support for store a drawings in a plays named Key Frame and redraw it when the player reaches this instant CesarPlayer/Gui/PlayerBin.cs | 69 +++++++-- CesarPlayer/Handlers/Handlers.cs | 3 +- CesarPlayer/Player/GstPlayer.cs | 22 +++- CesarPlayer/Player/IPlayer.cs | 12 ++ CesarPlayer/gtk-gui/objects.xml | 3 +- LongoMatch/DB/DataBase.cs | 3 +- LongoMatch/Gui/Component/DrawingWidget.cs | 7 +- LongoMatch/Gui/Component/TimeScale.cs | 81 ++++++----- LongoMatch/Gui/Dialog/DrawingTool.cs | 24 +++- LongoMatch/Gui/MainWindow.cs | 11 ++- LongoMatch/Gui/TreeView/PlaysTreeView.cs | 40 ++++-- LongoMatch/Handlers/EventsManager.cs | 9 +- LongoMatch/Handlers/VideoDrawingsManager.cs | 156 ++++++++++++++++++++ LongoMatch/LongoMatch.mdp | 3 + LongoMatch/Main.cs | 21 +-- LongoMatch/Makefile.am | 2 + LongoMatch/Time/Drawing.cs | 58 +++++++ LongoMatch/Time/MediaTimeNode.cs | 28 +++- LongoMatch/Time/PixbufTimeNode.cs | 34 ++++- LongoMatch/Time/TimeNode.cs | 5 +- .../gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs | 93 +++++++++--- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 11 +- LongoMatch/gtk-gui/gui.stetic | 41 ++++-- libcesarplayer/src/bacon-video-widget-gst-0.10.c | 68 +++++++-- libcesarplayer/src/bacon-video-widget.h | 8 + 25 files changed, 661 insertions(+), 151 deletions(-) Mon Oct 12 14:20:03 2009 +0200 Andoni Morales Alastruey *Fix indentation using GNU indent libcesarplayer/src/bacon-resize.c | 456 +- libcesarplayer/src/bacon-resize.h | 31 +- libcesarplayer/src/bacon-video-widget-gst-0.10.c | 5731 ++++++++++++---------- libcesarplayer/src/bacon-video-widget.h | 547 ++- libcesarplayer/src/gst-camera-capturer.c | 1147 +++-- libcesarplayer/src/gst-camera-capturer.h | 141 +- libcesarplayer/src/gst-smart-video-scaler.c | 495 +- libcesarplayer/src/gst-smart-video-scaler.h | 26 +- libcesarplayer/src/gst-video-capturer.c | 1015 ++-- libcesarplayer/src/gst-video-capturer.h | 39 +- libcesarplayer/src/gst-video-editor.c | 2311 +++++---- libcesarplayer/src/gst-video-editor.h | 97 +- libcesarplayer/src/gstscreenshot.c | 132 +- libcesarplayer/src/gstscreenshot.h | 6 +- libcesarplayer/src/gstvideowidget.c | 616 ++- libcesarplayer/src/gstvideowidget.h | 21 +- libcesarplayer/src/main.c | 93 +- libcesarplayer/src/video-utils.c | 299 +- libcesarplayer/src/video-utils.h | 9 +- 19 files changed, 7169 insertions(+), 6043 deletions(-) Sun Oct 11 17:11:59 2009 +0200 Andoni Morales Alastruey *Cascade on deleted for 'Player' objects to delete them from the DB LongoMatch/DB/DataBase.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Sun Oct 11 17:09:16 2009 +0200 Andoni Morales Alastruey *Add config file for CesarPlayer.dll so ldconfig is not needed anymore after installing CesarPlayer/CesarPlayer.dll.config.in | 3 +++ CesarPlayer/Makefile.am | 12 ++++++++---- configure.ac | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) Fri Oct 2 17:47:40 2009 +0200 Andoni Morales Alastruey *Add Property to expand multimediaplayer logo CesarPlayer/Gui/PlayerBin.cs | 5 + CesarPlayer/Player/GstPlayer.cs | 15 ++ CesarPlayer/Player/IPlayer.cs | 5 + CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs | 36 +++--- CesarPlayer/gtk-gui/objects.xml | 1 + LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 1 + libcesarplayer/src/bacon-video-widget-gst-0.10.c | 158 ++++++++++------------ 7 files changed, 118 insertions(+), 103 deletions(-) Fri Oct 2 15:14:45 2009 +0200 Andoni Morales Alastruey *New Drawing Tool with specific tool for in-frame analysis CesarPlayer/Gui/PlayerBin.cs | 25 +- CesarPlayer/Handlers/Handlers.cs | 1 + CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs | 215 ++++++----- CesarPlayer/gtk-gui/gui.stetic | 25 +- CesarPlayer/gtk-gui/objects.xml | 9 +- LongoMatch.mds | 2 +- LongoMatch/Gui/Component/DrawingToolBox.cs | 79 +++- LongoMatch/Gui/Component/DrawingWidget.cs | 363 ++++++++++++++++ LongoMatch/Gui/Dialog/DrawingTool.cs | 103 +++++ LongoMatch/Handlers/DrawingManager.cs | 3 +- LongoMatch/Handlers/EventsManager.cs | 12 +- LongoMatch/Handlers/Handlers.cs | 4 + LongoMatch/LongoMatch.mdp | 4 + LongoMatch/Makefile.am | 4 + .../LongoMatch.Gui.Component.DrawingToolBox.cs | 359 +++++++++++++---- .../LongoMatch.Gui.Component.DrawingWidget.cs | 51 +++ .../gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs | 119 ++++++ LongoMatch/gtk-gui/gui.stetic | 436 +++++++++++++++++++- LongoMatch/gtk-gui/objects.xml | 14 +- Translations/es.po | 82 +++-- Translations/fr.po | 77 +++-- Translations/messages.po | 79 +++-- 22 files changed, 1762 insertions(+), 304 deletions(-) Mon Sep 28 15:30:36 2009 +0200 Andoni Morales Alastruey *Fix lintian warnings in debian/control debian/control | 28 +++++++++++++++++++--------- 1 files changed, 19 insertions(+), 9 deletions(-) Fri Sep 25 16:23:45 2009 +0200 Andoni Morales Alastruey *Bump version 0.15.3 CesarPlayer/AssemblyInfo.cs | 4 ++-- LongoMatch/AssemblyInfo.cs | 4 ++-- NEWS | 12 ++++++++++++ RELEASE | 20 ++++++++++---------- configure.ac | 2 +- 5 files changed, 27 insertions(+), 15 deletions(-) Fri Sep 25 16:19:24 2009 +0200 Andoni Morales Alastruey *Closes bug # Buttons' label doesn't ellipsize and prevent the main window to shrink LongoMatch/Gui/Component/ButtonsWidget.cs | 7 +++++-- .../LongoMatch.Gui.Component.ButtonsWidget.cs | 4 ++-- LongoMatch/gtk-gui/gui.stetic | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) Thu Sep 24 15:20:46 2009 +0200 Andoni Morales Alastruey *Improve ChangeLog readabilty Makefile.am | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Sep 23 21:22:17 2009 +0200 Andoni Morales Alastruey *Auto-generate ChangeLog in 'make dist' using git-log ChangeLog | 74 ----------------------------------------------------------- Makefile.am | 11 ++++++++ 2 files changed, 11 insertions(+), 74 deletions(-) Wed Sep 23 21:20:06 2009 +0200 Andoni Morales Alastruey *Autogenerate marshal code using glib utils libcesarplayer/src/Makefile.am | 19 ++- libcesarplayer/src/baconvideowidget-marshal.c | 198 ---------------------- libcesarplayer/src/baconvideowidget-marshal.h | 43 ----- libcesarplayer/src/baconvideowidget-marshal.list | 4 + 4 files changed, 20 insertions(+), 244 deletions(-) Wed Sep 23 19:54:45 2009 +0200 Andoni Morales Alastruey *Update copyright license libcesarplayer/src/bacon-video-widget-gst-0.10.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) Wed Sep 23 19:40:40 2009 +0200 Andoni Morales Alastruey *Fix FSF address CesarPlayer/AssemblyInfo.cs.in | 2 +- libcesarplayer/src/macros.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) Wed Sep 23 19:19:20 2009 +0200 Andoni Morales Alastruey *Fix FSF address LongoMatch/AssemblyInfo.cs.in | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Sep 23 18:51:44 2009 +0200 Andoni Morales Alastruey *Refresh Projects List Widget after a project is saved LongoMatch/Gui/Dialog/ProjectsManager.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Wed Sep 23 18:51:16 2009 +0200 Andoni Morales Alastruey *Prevent error parsing date depending on the localisation LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 19 ++++--------------- LongoMatch/Gui/Component/ProjectListWidget.cs | 2 +- 2 files changed, 5 insertions(+), 16 deletions(-) Wed Sep 23 15:13:30 2009 +0200 Andoni Morales Alastruey *Improve Projects Manager. Added edition event to prompt for saving if a project is edited LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 61 ++++++++++++------- LongoMatch/Gui/Dialog/ProjectsManager.cs | 47 +++++++++------ ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 8 +++ .../LongoMatch.Gui.Dialog.NewProjectDialog.cs | 1 + .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 20 ++++--- LongoMatch/gtk-gui/gui.stetic | 13 ++++- LongoMatch/gtk-gui/objects.xml | 27 +++++---- 7 files changed, 114 insertions(+), 63 deletions(-) Wed Sep 23 01:04:16 2009 +0200 Andoni Morales Alastruey *Update Translations .../share/locale/es/LC_MESSAGES/longomatch.mo | Bin 12039 -> 12232 bytes Translations/es.po | 117 ++++++++++---------- Translations/fr.po | 97 ++++++++-------- Translations/messages.po | 99 ++++++++--------- 4 files changed, 156 insertions(+), 157 deletions(-) Wed Sep 23 00:53:22 2009 +0200 Andoni Morales Alastruey *Ask before deleting a category and all its plays LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) Wed Sep 23 00:16:55 2009 +0200 Andoni Morales Alastruey *Fix GPLv2 header address CesarPlayer/AssemblyInfo.cs | 2 +- LongoMatch/AssemblyInfo.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Wed Sep 23 00:15:42 2009 +0200 Andoni Morales Alastruey *Fix bug #596013 - Removal of sections on a created project does not repect order LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Tue Sep 22 23:36:57 2009 +0200 Andoni Morales Alastruey *Fix compilation error LongoMatch/Handlers/EventsManager.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Tue Sep 22 18:58:08 2009 +0200 Andoni Morales Alastruey *GstPlayerMetadataType.cs is not used. Remove it from the Makefiles CesarPlayer/Makefile.am | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) Tue Sep 22 18:39:11 2009 +0200 Andoni Morales Alastruey *Unload play from the player when this play has been deleted LongoMatch/Handlers/EventsManager.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Tue Sep 22 15:05:21 2009 +0200 Andoni Morales Alastruey *Fix License Headers CesarPlayer/AssemblyInfo.cs | 2 +- CesarPlayer/Capturer/ErrorHandler.cs | 4 +- CesarPlayer/Capturer/GccAudioEncoderType.cs | 4 +- CesarPlayer/Capturer/GccError.cs | 4 +- CesarPlayer/Capturer/GccVideoEncoderType.cs | 4 +- CesarPlayer/Capturer/GccVideoMuxerType.cs | 4 +- CesarPlayer/Capturer/GstCameraCapturer.cs | 4 +- CesarPlayer/Capturer/ICapturer.cs | 4 +- CesarPlayer/Capturer/ObjectManager.cs | 4 +- CesarPlayer/Editor/AudioCodec.cs | 4 +- CesarPlayer/Editor/AudioQuality.cs | 4 +- CesarPlayer/Editor/EditorState.cs | 4 +- CesarPlayer/Editor/ErrorHandler.cs | 4 +- CesarPlayer/Editor/GstVideoSplitter.cs | 4 +- CesarPlayer/Editor/IMerger.cs | 4 +- CesarPlayer/Editor/IVideoEditor.cs | 4 +- CesarPlayer/Editor/IVideoSplitter.cs | 4 +- CesarPlayer/Editor/PercentCompletedHandler.cs | 4 +- CesarPlayer/Editor/VideoCodec.cs | 4 +- CesarPlayer/Editor/VideoFormat.cs | 4 +- CesarPlayer/Editor/VideoMuxer.cs | 4 +- CesarPlayer/Editor/VideoQuality.cs | 4 +- CesarPlayer/Editor/VideoSegment.cs | 4 +- CesarPlayer/Editor/VideoSplitterType.cs | 4 +- CesarPlayer/Gui/CapturerBin.cs | 4 +- CesarPlayer/Gui/PlayerBin.cs | 2 +- CesarPlayer/Gui/VolumeWindow.cs | 2 +- CesarPlayer/Handlers/ErrorHandler.cs | 4 +- CesarPlayer/Handlers/Handlers.cs | 4 +- CesarPlayer/Handlers/StateChangedHandler.cs | 4 +- CesarPlayer/Handlers/TickHandler.cs | 4 +- CesarPlayer/MultimediaFactory.cs | 2 +- CesarPlayer/Player/GstAspectRatio.cs | 4 +- CesarPlayer/Player/GstAudioOutType.cs | 4 +- CesarPlayer/Player/GstDVDEvent.cs | 4 +- CesarPlayer/Player/GstError.cs | 4 +- CesarPlayer/Player/GstMetadataType.cs | 4 +- CesarPlayer/Player/GstPlayer.cs | 2 +- CesarPlayer/Player/GstUseType.cs | 4 +- CesarPlayer/Player/GstVideoProperty.cs | 4 +- CesarPlayer/Player/IPlayer.cs | 2 +- CesarPlayer/Player/ObjectManager.cs | 4 +- CesarPlayer/Utils/FramesCapturer.cs | 4 +- CesarPlayer/Utils/GstPlayerMetadataType.cs | 31 -------------- CesarPlayer/Utils/IFramesCapturer.cs | 4 +- CesarPlayer/Utils/IMetadataReader.cs | 4 +- CesarPlayer/Utils/MediaFile.cs | 4 +- CesarPlayer/Utils/PreviewMediaFile.cs | 4 +- CesarPlayer/Utils/TimeString.cs | 2 +- CesarPlayer/gtk-gui/objects.xml | 8 ++-- LongoMatch.mds | 8 ++-- LongoMatch/AssemblyInfo.cs | 2 +- LongoMatch/Compat/0.0/DB/DataBase.cs | 2 +- LongoMatch/Compat/0.0/DB/MediaFile.cs | 4 +- LongoMatch/Compat/0.0/DB/Project.cs | 2 +- LongoMatch/Compat/0.0/DB/Sections.cs | 2 +- LongoMatch/Compat/0.0/DatabaseMigrator.cs | 4 +- LongoMatch/Compat/0.0/IO/SectionsReader.cs | 2 +- LongoMatch/Compat/0.0/PlayListMigrator.cs | 4 +- LongoMatch/Compat/0.0/Playlist/IPlayList.cs | 4 +- LongoMatch/Compat/0.0/Playlist/PlayList.cs | 4 +- LongoMatch/Compat/0.0/TemplatesMigrator.cs | 4 +- LongoMatch/Compat/0.0/Time/MediaTimeNode.cs | 2 +- LongoMatch/Compat/0.0/Time/PixbufTimeNode.cs | 4 +- LongoMatch/Compat/0.0/Time/PlayListTimeNode.cs | 2 +- LongoMatch/Compat/0.0/Time/SectionsTimeNode.cs | 4 +- LongoMatch/Compat/0.0/Time/Time.cs | 4 +- LongoMatch/Compat/0.0/Time/TimeNode.cs | 4 +- LongoMatch/DB/DataBase.cs | 2 +- LongoMatch/DB/Project.cs | 2 +- LongoMatch/DB/Sections.cs | 2 +- LongoMatch/DB/Tag.cs | 4 +- LongoMatch/DB/TagsTemplate.cs | 4 +- LongoMatch/DB/TeamTemplate.cs | 4 +- LongoMatch/Gui/Component/ButtonsWidget.cs | 2 +- LongoMatch/Gui/Component/CategoryProperties.cs | 2 +- LongoMatch/Gui/Component/DrawingToolBox.cs | 4 +- LongoMatch/Gui/Component/NotesWidget.cs | 4 +- LongoMatch/Gui/Component/PlayListWidget.cs | 2 +- LongoMatch/Gui/Component/PlayerProperties.cs | 4 +- LongoMatch/Gui/Component/PlayersListTreeWidget.cs | 2 +- LongoMatch/Gui/Component/PlaysListTreeWidget.cs | 2 +- LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 2 +- LongoMatch/Gui/Component/ProjectListWidget.cs | 2 +- LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 2 +- LongoMatch/Gui/Component/TeamTemplateWidget.cs | 2 +- LongoMatch/Gui/Component/TimeAdjustWidget.cs | 2 +- LongoMatch/Gui/Component/TimeLineWidget.cs | 4 +- LongoMatch/Gui/Component/TimeReferenceWidget.cs | 4 +- LongoMatch/Gui/Component/TimeScale.cs | 4 +- LongoMatch/Gui/Dialog/EditCategoryDialog.cs | 4 +- LongoMatch/Gui/Dialog/EditPlayerDialog.cs | 4 +- LongoMatch/Gui/Dialog/EntryDialog.cs | 2 +- .../Gui/Dialog/FramesCaptureProgressDialog.cs | 4 +- LongoMatch/Gui/Dialog/HotKeySelectorDialog.cs | 4 +- LongoMatch/Gui/Dialog/Migrator.cs | 4 +- LongoMatch/Gui/Dialog/NewProjectDialog.cs | 2 +- LongoMatch/Gui/Dialog/OpenProjectDialog.cs | 2 +- LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs | 2 +- .../Gui/Dialog/ProjectTemplateEditorDialog.cs | 2 +- LongoMatch/Gui/Dialog/ProjectsManager.cs | 2 +- LongoMatch/Gui/Dialog/SnapshotsDialog.cs | 4 +- LongoMatch/Gui/Dialog/TeamTemplateEditor.cs | 2 +- LongoMatch/Gui/Dialog/TemplatesEditor.cs | 2 +- LongoMatch/Gui/Dialog/UpdateDialog.cs | 2 +- LongoMatch/Gui/Dialog/VideoEditionProperties.cs | 4 +- LongoMatch/Gui/Dialog/Win32CalendarDialog.cs | 4 +- LongoMatch/Gui/MainWindow.cs | 2 +- LongoMatch/Gui/Popup/CalendarPopup.cs | 2 +- LongoMatch/Gui/Popup/MessagePopup.cs | 2 +- LongoMatch/Gui/TransparentDrawingArea.cs | 17 ++++++++ LongoMatch/Gui/TreeView/CategoriesTreeView.cs | 2 +- LongoMatch/Gui/TreeView/PlayListTreeView.cs | 2 +- .../Gui/TreeView/PlayerPropertiesTreeView.cs | 2 +- LongoMatch/Gui/TreeView/PlayersTreeView.cs | 2 +- LongoMatch/Gui/TreeView/PlaysTreeView.cs | 2 +- LongoMatch/Handlers/DrawingManager.cs | 4 +- LongoMatch/Handlers/EventsManager.cs | 4 +- LongoMatch/Handlers/Handlers.cs | 4 +- LongoMatch/Handlers/HotKeysManager.cs | 4 +- LongoMatch/IO/CSVExport.cs | 4 +- LongoMatch/IO/SectionsReader.cs | 2 +- LongoMatch/IO/SectionsWriter.cs | 2 +- LongoMatch/IO/XMLReader.cs | 4 +- LongoMatch/Main.cs | 2 +- LongoMatch/Playlist/IPlayList.cs | 4 +- LongoMatch/Playlist/PlayList.cs | 4 +- LongoMatch/Time/HotKey.cs | 4 +- LongoMatch/Time/MediaTimeNode.cs | 2 +- LongoMatch/Time/PixbufTimeNode.cs | 4 +- LongoMatch/Time/PlayListTimeNode.cs | 2 +- LongoMatch/Time/Player.cs | 4 +- LongoMatch/Time/SectionsTimeNode.cs | 4 +- LongoMatch/Time/Time.cs | 4 +- LongoMatch/Time/TimeNode.cs | 4 +- LongoMatch/Updates/Updater.cs | 4 +- LongoMatch/Updates/XmlUpdateParser.cs | 4 +- LongoMatch/gtk-gui/objects.xml | 44 ++++++++++---------- libcesarplayer/src/bacon-resize.c | 3 +- libcesarplayer/src/bacon-resize.h | 3 +- libcesarplayer/src/bacon-video-widget-gst-0.10.c | 4 +- libcesarplayer/src/bacon-video-widget.h | 2 +- libcesarplayer/src/gst-video-capturer.c | 2 +- libcesarplayer/src/gst-video-capturer.h | 2 +- libcesarplayer/src/gst-video-editor.c | 2 +- libcesarplayer/src/gst-video-editor.h | 2 +- 146 files changed, 275 insertions(+), 287 deletions(-) Tue Sep 22 14:57:50 2009 +0200 Andoni Morales Alastruey *Delete Unused Files CesarPlayer/Handlers/BufferingHandler.cs | 33 -------------------------- CesarPlayer/Handlers/GotRedirectHandler.cs | 33 -------------------------- CesarPlayer/Handlers/TitleChangeHandler.cs | 33 -------------------------- CesarPlayer/Player/GstPlayerAspectRatio.cs | 35 ---------------------------- 4 files changed, 0 insertions(+), 134 deletions(-) Tue Sep 22 14:26:20 2009 +0200 Andoni Morales Alastruey *Delete unused files LongoMatch/Gui/WorkspaceChooser.cs | 41 -------------------- LongoMatch/gtk-gui/LongoMatch.PlayerProperties.cs | 27 ------------- LongoMatch/gtk-gui/LongoMatch.TransparentWidget.cs | 37 ------------------ LongoMatch/make.sh | 5 -- 4 files changed, 0 insertions(+), 110 deletions(-) Sun Sep 20 22:35:37 2009 +0200 Andoni Morales Alastruey *Update win32 spanish transalations .../share/locale/es/LC_MESSAGES/longomatch.mo | Bin 11508 -> 12039 bytes 1 files changed, 0 insertions(+), 0 deletions(-) Sun Sep 20 20:23:40 2009 +0200 Andoni Morales Alastruey *Enable to load plays into the playlist form the Players treeviews LongoMatch/Gui/Component/PlayersListTreeWidget.cs | 10 ++++ LongoMatch/Gui/MainWindow.cs | 2 + LongoMatch/Gui/TreeView/PlayersTreeView.cs | 17 ++++++- LongoMatch/Handlers/EventsManager.cs | 52 ++++++++++--------- ...ngoMatch.Gui.Component.PlayersListTreeWidget.cs | 1 + LongoMatch/gtk-gui/gui.stetic | 1 + LongoMatch/gtk-gui/objects.xml | 2 + 7 files changed, 59 insertions(+), 26 deletions(-) Thu Sep 17 17:50:47 2009 +0200 Andoni Morales Alastruey *Bump Version 0.15.2 CesarPlayer/AssemblyInfo.cs | 2 +- LongoMatch/AssemblyInfo.cs | 2 +- LongoMatch/Win32/installer.iss | 5 +++-- configure.ac | 2 +- debian/changelog | 9 +++++++-- 5 files changed, 13 insertions(+), 7 deletions(-) Thu Sep 17 19:45:14 2009 +0200 Andoni Morales Alastruey *Fix debian postinstall script. Needs to call 'ldconfig /usr/lib/longomatch' to get the shared libarries correctly installed debian/longomatch.postinst | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) Thu Sep 17 18:14:34 2009 +0200 Andoni Morales Alastruey *Fix debian/control line space and add missing CDBS dependencyZ debian/control | 26 ++++++++++++-------------- 1 files changed, 12 insertions(+), 14 deletions(-) Thu Sep 17 17:46:14 2009 +0200 Andoni Morales Alastruey *Use autotools to set the package version in AssemblyInfo.cs CesarPlayer/AssemblyInfo.cs.in | 50 +++++++++++++++++++++++++++++++++++++++ CesarPlayer/Makefile.am | 3 +- LongoMatch/AssemblyInfo.cs.in | 51 ++++++++++++++++++++++++++++++++++++++++ LongoMatch/Makefile.am | 3 +- configure.ac | 4 +- 5 files changed, 107 insertions(+), 4 deletions(-) Thu Sep 17 17:39:59 2009 +0200 Andoni Morales Alastruey *Fix debian path folder debian/changelog | 6 ++++++ debian/control | 20 ++++++++++++++++++++ debian/copyright | 33 +++++++++++++++++++++++++++++++++ debian/debian/changelog | 6 ------ debian/debian/control | 20 -------------------- debian/debian/copyright | 33 --------------------------------- debian/debian/rules | 3 --- debian/debian/watch | 3 --- debian/rules | 3 +++ debian/watch | 3 +++ 10 files changed, 65 insertions(+), 65 deletions(-) Wed Sep 16 21:39:09 2009 +0200 Andoni Morales Alastruey *Update Info files AUTHORS | 6 +++++- ChangeLog | 14 ++++++++++++++ NEWS | 14 ++++++++++++++ README | 5 +++-- RELEASE | 39 +++++++++++++++++++++------------------ 5 files changed, 57 insertions(+), 21 deletions(-) Wed Sep 16 21:50:08 2009 +0200 Andoni Morales Alastruey *Add 'VGA' and 'Portable' size formats to video editor CesarPlayer/Editor/GstVideoSplitter.cs | 10 ++++- CesarPlayer/Editor/VideoFormat.cs | 8 ++- LongoMatch/Gui/Component/PlayListWidget.cs | 7 +-- LongoMatch/Gui/Dialog/VideoEditionProperties.cs | 51 +++++++++---------- ...LongoMatch.Gui.Dialog.VideoEditionProperties.cs | 11 ++--- LongoMatch/gtk-gui/gui.stetic | 12 ++--- LongoMatch/gtk-gui/objects.xml | 20 ++++---- libcesarplayer/src/gst-video-editor.c | 4 +- 8 files changed, 60 insertions(+), 63 deletions(-) Wed Sep 16 19:58:43 2009 +0200 Andoni Morales Alastruey *Disable Drawing tool on Windows LongoMatch/Gui/MainWindow.cs | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) Wed Sep 16 19:54:48 2009 +0200 Andoni Morales Alastruey *Update Translations ...Match.Gui.Dialog.ProjectTemplateEditorDialog.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 2 +- Translations/es.po | 1001 +++++++++++--------- Translations/fr.po | 886 ++++++++++-------- Translations/messages.po | 857 +++++++++-------- 5 files changed, 1502 insertions(+), 1246 deletions(-) Wed Sep 16 19:48:34 2009 +0200 Andoni Morales Alastruey *Fix menu string LongoMatch/Gui/Component/TimeScale.cs | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Wed Sep 16 19:19:31 2009 +0200 Andoni Morales Alastruey *More Gui fixes (windows titles, dialog transient,...) LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 17 ++-- LongoMatch/Gui/Component/TeamTemplateEditor.cs | 42 ------- LongoMatch/Gui/Dialog/TeamTemplateEditor.cs | 42 +++++++ LongoMatch/LongoMatch.mdp | 2 +- LongoMatch/Makefile.am | 4 +- ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 3 + ...Match.Gui.Dialog.ProjectTemplateEditorDialog.cs | 2 +- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 14 +- LongoMatch/gtk-gui/gui.stetic | 122 ++++++++++---------- LongoMatch/gtk-gui/objects.xml | 16 ++-- 10 files changed, 135 insertions(+), 129 deletions(-) Wed Sep 16 19:08:08 2009 +0200 Andoni Morales Alastruey *Make buttons unsensitive after each update, when no category is selected LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Wed Sep 16 18:49:04 2009 +0200 Andoni Morales Alastruey *Add missing changes to the previous commit LongoMatch/Gui/Component/TeamTemplateWidget.cs | 7 +- LongoMatch/LongoMatch.mdp | 16 +- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 2941 +++++++++++------------ LongoMatch/gtk-gui/objects.xml | 28 +- 5 files changed, 1494 insertions(+), 1500 deletions(-) Tue Sep 15 19:52:54 2009 +0200 Andoni Morales Alastruey *Gui refactoring LongoMatch.mds | 6 +- LongoMatch/Gui/ButtonsWidget.cs | 86 - LongoMatch/Gui/CalendarPopup.cs | 59 - LongoMatch/Gui/Component/ButtonsWidget.cs | 86 + LongoMatch/Gui/Component/CategoryProperties.cs | 107 + LongoMatch/Gui/Component/DrawingToolBox.cs | 104 + LongoMatch/Gui/Component/NotesWidget.cs | 78 + LongoMatch/Gui/Component/PlayListWidget.cs | 328 +++ LongoMatch/Gui/Component/PlayerProperties.cs | 118 + LongoMatch/Gui/Component/PlayersListTreeWidget.cs | 112 + LongoMatch/Gui/Component/PlaysListTreeWidget.cs | 132 + LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 406 +++ LongoMatch/Gui/Component/ProjectListWidget.cs | 168 ++ LongoMatch/Gui/Component/ProjectTemplateWidget.cs | 171 ++ LongoMatch/Gui/Component/TeamTemplateEditor.cs | 42 + LongoMatch/Gui/Component/TeamTemplateWidget.cs | 84 + LongoMatch/Gui/Component/TimeAdjustWidget.cs | 66 + LongoMatch/Gui/Component/TimeLineWidget.cs | 187 ++ LongoMatch/Gui/Component/TimeReferenceWidget.cs | 155 + LongoMatch/Gui/Component/TimeScale.cs | 377 +++ LongoMatch/Gui/DBManager.cs | 142 - LongoMatch/Gui/Dialog/EditCategoryDialog.cs | 61 + LongoMatch/Gui/Dialog/EditPlayerDialog.cs | 39 + LongoMatch/Gui/Dialog/EntryDialog.cs | 51 + .../Gui/Dialog/FramesCaptureProgressDialog.cs | 68 + LongoMatch/Gui/Dialog/HotKeySelectorDialog.cs | 71 + LongoMatch/Gui/Dialog/Migrator.cs | 133 + LongoMatch/Gui/Dialog/NewProjectDialog.cs | 48 + LongoMatch/Gui/Dialog/OpenProjectDialog.cs | 58 + LongoMatch/Gui/Dialog/PlayersSelectionDialog.cs | 87 + .../Gui/Dialog/ProjectTemplateEditorDialog.cs | 50 + LongoMatch/Gui/Dialog/ProjectsManager.cs | 142 + LongoMatch/Gui/Dialog/SnapshotsDialog.cs | 60 + LongoMatch/Gui/Dialog/TemplatesEditor.cs | 278 ++ LongoMatch/Gui/Dialog/UpdateDialog.cs | 43 + LongoMatch/Gui/Dialog/VideoEditionProperties.cs | 176 ++ LongoMatch/Gui/Dialog/Win32CalendarDialog.cs | 51 + LongoMatch/Gui/DrawingToolBox.cs | 104 - LongoMatch/Gui/EditSectionsDialog.cs | 61 - LongoMatch/Gui/EntryDialog.cs | 51 - LongoMatch/Gui/FileDescriptionWidget.cs | 406 --- LongoMatch/Gui/FramesCaptureProgressDialog.cs | 68 - LongoMatch/Gui/HotKeySelectorDialog.cs | 71 - LongoMatch/Gui/MainWindow.cs | 6 +- LongoMatch/Gui/MessagePopup.cs | 50 - LongoMatch/Gui/Migrator.cs | 133 - LongoMatch/Gui/NewProjectDialog.cs | 48 - LongoMatch/Gui/NotesWidget.cs | 78 - LongoMatch/Gui/OpenProjectDialog.cs | 58 - LongoMatch/Gui/PlayListTreeView.cs | 148 - LongoMatch/Gui/PlayListWidget.cs | 328 --- LongoMatch/Gui/PlayerProperties.cs | 118 - LongoMatch/Gui/PlayersListTreeWidget.cs | 112 - LongoMatch/Gui/PlayersSelectionDialog.cs | 87 - LongoMatch/Gui/PlayersTreeView.cs | 233 -- LongoMatch/Gui/Popup/CalendarPopup.cs | 59 + LongoMatch/Gui/Popup/MessagePopup.cs | 50 + LongoMatch/Gui/ProjectListWidget.cs | 168 -- LongoMatch/Gui/SectionsPropertiesWidget.cs | 171 -- LongoMatch/Gui/SectionsTreeView.cs | 137 - LongoMatch/Gui/SnapshotsDialog.cs | 60 - LongoMatch/Gui/TeamTemplateEditor.cs | 42 - LongoMatch/Gui/TeamTemplateWidget.cs | 84 - LongoMatch/Gui/TemplateEditorDialog.cs | 50 - LongoMatch/Gui/TemplatesEditor.cs | 278 -- LongoMatch/Gui/TimeAdjustWidget.cs | 66 - LongoMatch/Gui/TimeLineWidget.cs | 187 -- LongoMatch/Gui/TimeNodeProperties.cs | 107 - LongoMatch/Gui/TimeNodesTreeView.cs | 343 --- LongoMatch/Gui/TimeReferenceWidget.cs | 155 - LongoMatch/Gui/TimeScale.cs | 377 --- LongoMatch/Gui/TreeView/CategoriesTreeView.cs | 137 + LongoMatch/Gui/TreeView/PlayListTreeView.cs | 148 + .../Gui/TreeView/PlayerPropertiesTreeView.cs | 113 + LongoMatch/Gui/TreeView/PlayersTreeView.cs | 233 ++ LongoMatch/Gui/TreeView/PlaysTreeView.cs | 337 +++ LongoMatch/Gui/TreeWidget.cs | 132 - LongoMatch/Gui/UpdateDialog.cs | 43 - LongoMatch/Gui/VideoEditionProperties.cs | 176 -- LongoMatch/Gui/Win32CalendarDialog.cs | 51 - LongoMatch/Handlers/EventsManager.cs | 8 +- LongoMatch/LongoMatch.mdp | 120 +- LongoMatch/Makefile.am | 214 +- LongoMatch/Time/MediaTimeNode.cs | 2 +- .../LongoMatch.Gui.Component.CategoryProperties.cs | 152 + ...ngoMatch.Gui.Component.FileDescriptionWidget.cs | 504 ---- ...LongoMatch.Gui.Component.PlaysListTreeWidget.cs | 51 + ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 504 ++++ ...ngoMatch.Gui.Component.ProjectTemplateWidget.cs | 186 ++ ...Match.Gui.Component.SectionsPropertiesWidget.cs | 186 -- .../LongoMatch.Gui.Component.TimeNodeProperties.cs | 152 - .../gtk-gui/LongoMatch.Gui.Component.TreeWidget.cs | 51 - .../gtk-gui/LongoMatch.Gui.Dialog.DBManager.cs | 183 -- .../LongoMatch.Gui.Dialog.EditCategoryDialog.cs | 66 + .../LongoMatch.Gui.Dialog.EditPlayerDialog.cs | 70 + .../LongoMatch.Gui.Dialog.EditSectionsDialog.cs | 66 - .../LongoMatch.Gui.Dialog.NewProjectDialog.cs | 4 +- ...Match.Gui.Dialog.ProjectTemplateEditorDialog.cs | 70 + .../LongoMatch.Gui.Dialog.ProjectsManager.cs | 183 ++ .../LongoMatch.Gui.Dialog.TemplateEditorDialog.cs | 70 - .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 4 +- .../LongoMatch.Gui.Dialog.WorkspaceChooser.cs | 124 - LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 6 +- LongoMatch/gtk-gui/LongoMatch.TransparentWidget.cs | 37 + LongoMatch/gtk-gui/gui.stetic | 3014 ++++++++++---------- LongoMatch/gtk-gui/objects.xml | 227 +- 106 files changed, 8290 insertions(+), 8258 deletions(-) Tue Sep 15 01:08:16 2009 +0200 Andoni Morales Alastruey *Add new Gui elements to the makefiles LongoMatch/Makefile.am | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) Mon Sep 14 17:00:34 2009 +0200 Andoni Morales Alastruey *Fix frame stepping bug when getting a wrong accurate value libcesarplayer/src/bacon-video-widget-gst-0.10.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) Sun Sep 13 22:01:46 2009 +0200 Andoni Morales Alastruey *Fix memory leak with unmanaged Pixbuf CesarPlayer/Gui/PlayerBin.cs | 12 ++----- CesarPlayer/Player/GstPlayer.cs | 35 +++++++++++++++++---- CesarPlayer/Player/IPlayer.cs | 10 +++--- CesarPlayer/Utils/FramesCapturer.cs | 18 +++++++++-- CesarPlayer/Utils/IFramesCapturer.cs | 6 ++-- CesarPlayer/Utils/PreviewMediaFile.cs | 18 +++++------ LongoMatch/Gui/FramesCaptureProgressDialog.cs | 14 ++------ LongoMatch/Handlers/EventsManager.cs | 2 +- LongoMatch/Time/PixbufTimeNode.cs | 4 ++- libcesarplayer/src/bacon-video-widget-gst-0.10.c | 5 +++ libcesarplayer/src/bacon-video-widget.h | 1 + 11 files changed, 76 insertions(+), 49 deletions(-) Sun Sep 13 01:54:58 2009 +0200 Andoni Morales Alastruey *Fix editor bug with files that doesn't have an audio stream Instead of using a single fake audio source that should be active when the source doesn't have audio, we use a fake audio source for each segment without audio stream. This way we enforce an audio stream for a specific segment and we don't depend on the activation of the generic fake source. libcesarplayer/src/gst-video-editor.c | 71 ++++++++++++++------------------- 1 files changed, 30 insertions(+), 41 deletions(-) Mon Sep 14 02:03:09 2009 +0200 Andoni Morales Alastruey *Improved Templates GUI LongoMatch/Gui/EditSectionsDialog.cs | 61 ++ LongoMatch/Gui/PlayerProperties.cs | 46 +- LongoMatch/Gui/SectionsPropertiesWidget.cs | 193 ++--- LongoMatch/Gui/SectionsTreeView.cs | 137 +++ LongoMatch/Gui/TeamTemplateEditor.cs | 4 +- LongoMatch/Gui/TeamTemplateWidget.cs | 80 +- LongoMatch/Gui/TemplateEditorDialog.cs | 8 +- LongoMatch/Gui/TemplatesEditor.cs | 40 +- LongoMatch/Gui/TimeNodeProperties.cs | 45 +- LongoMatch/LongoMatch.mdp | 6 + LongoMatch/Makefile.am | 3 + LongoMatch/UpdateManager.cs | 21 - .../LongoMatch.Gui.Component.PlayerProperties.cs | 26 +- ...Match.Gui.Component.SectionsPropertiesWidget.cs | 173 +++- .../LongoMatch.Gui.Component.TeamTemplateWidget.cs | 28 +- .../LongoMatch.Gui.Component.TimeNodeProperties.cs | 201 +--- .../gtk-gui/LongoMatch.Gui.Dialog.DBManager.cs | 2 +- .../LongoMatch.Gui.Dialog.EditSectionsDialog.cs | 66 ++ .../LongoMatch.Gui.Dialog.TeamTemplateEditor.cs | 39 +- .../LongoMatch.Gui.Dialog.TemplateEditorDialog.cs | 5 +- .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 58 +- LongoMatch/gtk-gui/gui.stetic | 1070 ++++++++++---------- LongoMatch/gtk-gui/objects.xml | 39 +- 23 files changed, 1304 insertions(+), 1047 deletions(-) Thu Sep 10 17:26:20 2009 +0200 Andoni Morales Alastruey *Return "Not Defined" if hotkey is not defined LongoMatch/Time/HotKey.cs | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Tue Sep 8 21:24:54 2009 +0200 Andoni Morales Alastruey *Add c# objects to the win32 Makefile Makefile.win32 | 244 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 231 insertions(+), 13 deletions(-) Tue Sep 8 16:48:46 2009 +0200 Andoni Morales Alastruey *Embed longomatch.png as resource and don't deploy debian folder LongoMatch/LongoMatch.mdp | 4 ++-- LongoMatch/Makefile.am | 3 ++- LongoMatch/gtk-gui/generated.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 2 +- Makefile.am | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) Tue Sep 8 15:34:55 2009 +0200 Andoni Morales Alastruey *Clean-up and Warnings removal LongoMatch/Compat/0.0/DatabaseMigrator.cs | 1 - LongoMatch/Compat/0.0/TemplatesMigrator.cs | 1 - LongoMatch/Gui/FileDescriptionWidget.cs | 11 +++++++---- LongoMatch/Gui/TransparentDrawingArea.cs | 15 +-------------- LongoMatch/Handlers/DrawingManager.cs | 6 +----- LongoMatch/Handlers/EventsManager.cs | 1 - LongoMatch/Main.cs | 18 +----------------- .../LongoMatch.Gui.Popup.TransparentDrawingArea.cs | 2 -- 8 files changed, 10 insertions(+), 45 deletions(-) Mon Sep 7 21:17:37 2009 +0200 Andoni Morales Alastruey *Fixes initial flash creating the Window and focus loose on shown LongoMatch/Gui/TransparentDrawingArea.cs | 37 +++++-------------- .../LongoMatch.Gui.Popup.TransparentDrawingArea.cs | 1 + LongoMatch/gtk-gui/gui.stetic | 4 +-- 3 files changed, 12 insertions(+), 30 deletions(-) Sun Sep 6 22:22:52 2009 +0200 Andoni Morales Alastruey *New Tranparent Drawing Tool For Live Drawings Free-hand drawing tool based on a transparent drawing area that lets draw over any existent widget CesarPlayer/Gui/PlayerBin.cs | 3 + CesarPlayer/Player/GstPlayer.cs | 3 +- LongoMatch/Gui/DrawingToolBox.cs | 104 +++++++ LongoMatch/Gui/MainWindow.cs | 24 +- LongoMatch/Gui/TransparentDrawingArea.cs | 272 ++++++++++++++++++ LongoMatch/Handlers/DrawingManager.cs | 83 ++++++ LongoMatch/Handlers/Handlers.cs | 47 +++- LongoMatch/LongoMatch.mdp | 5 + LongoMatch/Makefile.am | 5 + .../LongoMatch.Gui.Component.DrawingToolBox.cs | 194 +++++++++++++ LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 99 ++++--- .../LongoMatch.Gui.Popup.TransparentDrawingArea.cs | 47 +++ LongoMatch/gtk-gui/gui.stetic | 303 +++++++++++++++++++- LongoMatch/gtk-gui/objects.xml | 15 + 14 files changed, 1136 insertions(+), 68 deletions(-) Sun Sep 6 21:19:18 2009 +0200 Andoni Morales Alastruey *Fix Bug 594329 - Cannot change the file associated to a project in the Projects Mamager LongoMatch/Gui/DBManager.cs | 41 +++++++++++++++++++---------------------- 1 files changed, 19 insertions(+), 22 deletions(-) Sun Sep 6 01:17:15 2009 +0200 Andoni Morales Alastruey *Move debian folder to root folder Build/debian/changelog | 6 ------ Build/debian/control | 20 -------------------- Build/debian/copyright | 33 --------------------------------- Build/debian/rules | 3 --- Build/debian/watch | 3 --- debian/debian/changelog | 6 ++++++ debian/debian/control | 20 ++++++++++++++++++++ debian/debian/copyright | 33 +++++++++++++++++++++++++++++++++ debian/debian/rules | 3 +++ debian/debian/watch | 3 +++ 10 files changed, 65 insertions(+), 65 deletions(-) Sun Sep 6 01:16:00 2009 +0200 Andoni Morales Alastruey *Clean-up autotools files. Only keep *ac and *am files and let autogen.sh do the rest aclocal.m4 | 9023 ----------------------------------------------------- install-sh | 1 - installer.sh | 20 - m4/libtool.m4 | 7373 ------------------------------------------- m4/ltoptions.m4 | 368 --- m4/ltsugar.m4 | 123 - m4/ltversion.m4 | 23 - m4/lt~obsolete.m4 | 92 - 8 files changed, 0 insertions(+), 17023 deletions(-) Sun Sep 6 00:58:09 2009 +0200 Andoni Morales Alastruey *Don't go into play or pause if no file is loaded CesarPlayer/Gui/PlayerBin.cs | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Sat Sep 5 19:03:43 2009 +0200 Andoni Morales Alastruey *Delete autotools template to have a cleaner repo CesarPlayer/Makefile.in | 707 -- LongoMatch/Makefile.in | 821 --- Makefile.in | 633 -- Translations/Makefile.in | 623 -- configure |15231 ---------------------------------------- libcesarplayer/Makefile.in | 507 -- libcesarplayer/src/Makefile.in | 520 -- 7 files changed, 0 insertions(+), 19042 deletions(-) Sat Sep 5 16:59:31 2009 +0200 Andoni Morales Alastruey *Removed prints libcesarplayer/src/gst-video-editor.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) Sat Sep 5 16:57:40 2009 +0200 Andoni Morales Alastruey *Enable compatibility with GStreamer 0.10.22 libcesarplayer/src/bacon-video-widget-gst-0.10.c | 6 +++++- libcesarplayer/src/gst-video-editor.c | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) Sat Sep 5 15:05:07 2009 +0200 Andoni Morales Alastruey *Fix C-sharp check configure.ac | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Sat Sep 5 13:54:59 2009 +0200 Andoni Morales Alastruey *Improve C-sharp compiler and Mono 2.0 assemblies checks configure.ac | 35 ++++++++++++++++++++++++++++++++++- 1 files changed, 34 insertions(+), 1 deletions(-) Sat Sep 5 13:54:23 2009 +0200 Andoni Morales Alastruey *Update debian/* files Build/debian/control | 16 ++++++++--- Build/debian/copyright | 66 +++++++++++++++++++++++------------------------ Build/debian/watch | 3 ++ 3 files changed, 47 insertions(+), 38 deletions(-) Fri Sep 4 21:33:32 2009 +0200 Andoni Morales Alastruey *Fix copyright headers LongoMatch/Gui/MessagePopup.cs | 2 +- LongoMatch/Gui/PlayersListTreeWidget.cs | 2 +- LongoMatch/Gui/PlayersSelectionDialog.cs | 2 +- LongoMatch/Gui/PlayersTreeView.cs | 2 +- LongoMatch/Gui/TeamTemplateEditor.cs | 2 +- LongoMatch/Gui/TeamTemplateWidget.cs | 2 +- LongoMatch/Gui/WorkspaceChooser.cs | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) Fri Sep 4 19:30:27 2009 +0200 Andoni Morales Alastruey *Allow edition of players name using the treeview LongoMatch/Gui/PlayersTreeView.cs | 21 ++++++++++++++++----- 1 files changed, 16 insertions(+), 5 deletions(-) Fri Sep 4 19:23:02 2009 +0200 Andoni Morales Alastruey *Closes Bug 594161 - Can't edit categories name in the treeview LongoMatch/Gui/TimeNodesTreeView.cs | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) Fri Aug 28 21:31:35 2009 +0200 Andoni Morales Alastruey *Use csc, which links to the default C# compiler instead of gmscs CesarPlayer/Makefile.am | 4 +- CesarPlayer/Makefile.in | 8 +-- LongoMatch/Makefile.am | 4 +- LongoMatch/Makefile.in | 8 +-- Makefile.in | 4 +- Translations/Makefile.in | 4 +- configure | 110 +++++++++++----------------------------- configure.ac | 14 +---- libcesarplayer/Makefile.in | 4 +- libcesarplayer/src/Makefile.in | 4 +- 10 files changed, 46 insertions(+), 118 deletions(-) Fri Aug 28 16:20:54 2009 +0200 Andoni Morales Alastruey *Fix license headers and copyright info CesarPlayer/AssemblyInfo.cs | 18 ++++++++++++++++++ CesarPlayer/Capturer/GccAudioEncoderType.cs | 19 +++++++++++++++++-- CesarPlayer/Capturer/GccError.cs | 20 +++++++++++++++++--- CesarPlayer/Capturer/GccVideoEncoderType.cs | 19 +++++++++++++++++-- CesarPlayer/Capturer/GccVideoMuxerType.cs | 20 +++++++++++++++++--- CesarPlayer/Capturer/GstCameraCapturer.cs | 19 +++++++++++++++++-- CesarPlayer/Editor/AudioCodec.cs | 2 +- CesarPlayer/Editor/EditorState.cs | 2 +- CesarPlayer/Editor/ErrorHandler.cs | 19 +++++++++++++++++-- CesarPlayer/Editor/IMerger.cs | 2 +- CesarPlayer/Editor/IVideoSplitter.cs | 2 +- CesarPlayer/Editor/PercentCompletedHandler.cs | 19 +++++++++++++++++-- CesarPlayer/Editor/VideoCodec.cs | 2 +- CesarPlayer/Editor/VideoFormat.cs | 2 +- CesarPlayer/Editor/VideoSplitterType.cs | 2 +- CesarPlayer/MultimediaFactory.cs | 2 +- CesarPlayer/Player/GstAspectRatio.cs | 19 +++++++++++++++++-- CesarPlayer/Player/GstAudioOutType.cs | 19 +++++++++++++++++-- CesarPlayer/Player/GstDVDEvent.cs | 19 +++++++++++++++++-- CesarPlayer/Player/GstError.cs | 19 +++++++++++++++++-- CesarPlayer/Player/GstMetadataType.cs | 19 +++++++++++++++++-- CesarPlayer/Player/GstPlayer.cs | 19 +++++++++++++++++-- CesarPlayer/Player/GstUseType.cs | 19 +++++++++++++++++-- CesarPlayer/Player/GstVideoProperty.cs | 19 +++++++++++++++++-- LongoMatch/AssemblyInfo.cs | 19 +++++++++++++++++++ LongoMatch/Gui/HotKeySelectorDialog.cs | 18 ++++++++++++++++++ LongoMatch/IO/CSVExport.cs | 2 +- LongoMatch/Time/Player.cs | 2 +- libcesarplayer/liblongomatch.mdp | 2 -- 29 files changed, 320 insertions(+), 44 deletions(-) Thu Aug 27 16:40:24 2009 +0200 Andoni Morales Alastruey *Bump version 0.15.1 CesarPlayer/AssemblyInfo.cs | 2 +- LongoMatch/AssemblyInfo.cs | 2 +- configure | 20 ++++++++++---------- configure.ac | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) Wed Aug 26 22:44:15 2009 +0200 Andoni Morales Alastruey *Added hicolor theme index for win32 extra icons LongoMatch/Win32/share/icons/hicolor/index.theme | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) Wed Aug 26 16:29:45 2009 +0200 Andoni Morales Alastruey *Update win32 translations files .../share/locale/es/LC_MESSAGES/longomatch.mo | Bin 11396 -> 11508 bytes 1 files changed, 0 insertions(+), 0 deletions(-) Wed Aug 26 16:27:19 2009 +0200 Andoni Morales Alastruey *Add missing win32 volume and calendar icons .../icons/hicolor/24x24/status/stock_calendar.png | Bin 0 -> 823 bytes .../icons/hicolor/24x24/status/stock_volume.png | Bin 0 -> 1217 bytes 2 files changed, 0 insertions(+), 0 deletions(-) Wed Aug 26 14:57:50 2009 +0200 Andoni Morales Alastruey *Update changelog, new, and release notes ChangeLog | 10 ++++++---- NEWS | 11 ++++++----- RELEASE | 23 ++++++++++++++++++----- 3 files changed, 30 insertions(+), 14 deletions(-) Wed Aug 26 00:58:34 2009 +0200 Andoni Morales Alastruey *Closes bug#592934 with commit b64122c LongoMatch/Gui/FileDescriptionWidget.cs | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) Wed Aug 26 00:16:28 2009 +0200 Andoni Morales Alastruey *Add Win32CalendarDialog to csharpdevelop project LongoMatch/LongoMatch.csproj | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Tue Aug 25 23:44:04 2009 +0200 Andoni Morales Alastruey *Version 0.15.0.2 LongoMatch/AssemblyInfo.cs | 2 +- LongoMatch/Win32/installer.iss | 2 +- configure | 20 ++++++++++---------- configure.ac | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) Tue Aug 25 23:17:56 2009 +0200 Andoni Morales Alastruey *Fixed several issues with database migraition tool Create a new thread to open the file Disable 'Canel' button when importing LongoMatch/Compat/0.0/DatabaseMigrator.cs | 33 ++++++++++++++++--- LongoMatch/Gui/Migrator.cs | 9 +++-- .../gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs | 2 + LongoMatch/gtk-gui/gui.stetic | 2 + 4 files changed, 37 insertions(+), 9 deletions(-) Mon Aug 24 22:21:38 2009 +0200 Andoni Morales Alastruey *Update transaltions Translations/es.po | 106 +++++++++++++++++++++++++--------------------- Translations/fr.po | 75 ++++++++++++++++---------------- Translations/messages.po | 77 +++++++++++++++++---------------- 3 files changed, 135 insertions(+), 123 deletions(-) Mon Aug 24 22:17:58 2009 +0200 Andoni Morales Alastruey *Use a standard name for sections. As the next version will come with extra tagging support call projects main tags "Sections" and extra tags "Tags". ...ngoMatch.Gui.Component.FileDescriptionWidget.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Mon Aug 24 22:11:26 2009 +0200 Andoni Morales Alastruey *Disable audio in video edition by default and set it as an experimental feature as the tests have shown errors with some audio codecs ...LongoMatch.Gui.Dialog.VideoEditionProperties.cs | 3 +-- LongoMatch/gtk-gui/gui.stetic | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) Mon Aug 24 21:40:22 2009 +0200 Andoni Morales Alastruey *Missing in previous commit. Adds Win32 Calendar LongoMatch/gtk-gui/gui.stetic | 59 ++++++++++++++++++++++++++++++++++++++++- 1 files changed, 58 insertions(+), 1 deletions(-) Mon Aug 24 21:33:53 2009 +0200 Andoni Morales Alastruey *Enable Calendar in Win32 using a dialog instead of a popup Window LongoMatch/Gui/CalendarPopup.cs | 6 +-- LongoMatch/Gui/FileDescriptionWidget.cs | 30 +++++--- LongoMatch/Gui/Win32CalendarDialog.cs | 51 ++++++++++++++ LongoMatch/LongoMatch.mdp | 2 + LongoMatch/Makefile.am | 2 + LongoMatch/Makefile.in | 2 + .../LongoMatch.Gui.Dialog.Win32CalendarDialog.cs | 71 ++++++++++++++++++++ .../gtk-gui/LongoMatch.Gui.Popup.CalendarPopup.cs | 3 +- LongoMatch/gtk-gui/objects.xml | 28 ++++---- 9 files changed, 164 insertions(+), 31 deletions(-) Mon Aug 24 21:28:56 2009 +0200 Andoni Morales Alastruey *Change dialog title to "Projects Manager" .../gtk-gui/LongoMatch.Gui.Dialog.DBManager.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Mon Aug 24 20:18:30 2009 +0200 Andoni Morales Alastruey *Closes http://bugzilla.gnome.org/show_bug.cgi?id=592934 LongoMatch/Gui/FileDescriptionWidget.cs | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-) Mon Aug 24 19:58:03 2009 +0200 Andoni Morales Alastruey *Closes Bug 592931 LongoMatch/Gui/FileDescriptionWidget.cs | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) Fri Aug 21 15:24:16 2009 +0200 Andoni Morales Alastruey *Version 0.15.0.1 LongoMatch/AssemblyInfo.cs | 2 +- Makefile.in | 2 +- configure | 20 ++++++++++---------- configure.ac | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) Sun Aug 23 18:45:39 2009 +0200 Andoni Morales Alastruey *Fix fonts .conf files deployment in win32. Only exclude longomatch.conf instead of *.conf LongoMatch/Win32/installer.iss | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Fri Aug 21 15:14:40 2009 +0200 Andoni Morales Alastruey *Update GStreamer requirements and add git and bugzilla links to README README | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) Fri Aug 21 00:34:47 2009 +0200 Andoni Morales Alastruey *Force overwrite old backup file, if exists LongoMatch/Compat/0.0/DatabaseMigrator.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Fri Aug 21 00:10:52 2009 +0200 Andoni Morales Alastruey *Don't delete newly converted template LongoMatch/Compat/0.0/TemplatesMigrator.cs | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Thu Aug 20 21:34:28 2009 +0200 Andoni Morales Alastruey *Use dafults folder for config files.Vista requieres extra permissions LongoMatch/Main.cs | 15 ++++++++------- 1 files changed, 8 insertions(+), 7 deletions(-) Thu Aug 20 21:24:53 2009 +0200 Andoni Morales Alastruey *Fix win32 Gtk theme settings LongoMatch/Win32/etc/gtk-2.0/.gtkrc-2.0 | 8 -------- LongoMatch/Win32/etc/gtk-2.0/gtkrc | 8 ++++++++ LongoMatch/Win32/etc/gtk-2.0/gtkrc-2.0 | 8 -------- 3 files changed, 8 insertions(+), 16 deletions(-) Thu Aug 20 20:08:07 2009 +0200 Andoni Morales Alastruey *Update InnoSetup installer script LongoMatch/Win32/installer.iss | 29 +++++++++++++++-------------- 1 files changed, 15 insertions(+), 14 deletions(-) Thu Aug 20 19:58:21 2009 +0200 Andoni Morales Alastruey *Update images path in win32 LongoMatch/Win32/share/images/Thumbs.db | Bin 14848 -> 0 bytes LongoMatch/Win32/share/images/background.png | Bin 73017 -> 0 bytes LongoMatch/Win32/share/images/lgmlogo.png | Bin 10559 -> 0 bytes LongoMatch/Win32/share/images/longomatch.png | Bin 16818 -> 0 bytes .../share/locale/es/LC_MESSAGES/longomatch.gmo | Bin 11396 -> 0 bytes .../share/locale/es/LC_MESSAGES/longomatch.mo | Bin 6152 -> 11396 bytes .../Win32/share/longomatch/images/background.png | Bin 0 -> 73017 bytes .../Win32/share/longomatch/images/longomatch.png | Bin 0 -> 16818 bytes 8 files changed, 0 insertions(+), 0 deletions(-) Thu Aug 20 17:35:41 2009 +0200 Andoni Morales Alastruey *Minor changes CesarPlayer/AssemblyInfo.cs | 4 ++-- Makefile.am | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) Thu Aug 20 17:26:54 2009 +0200 Andoni Morales Alastruey *Version 0.15.0 Unix CesarPlayer/AssemblyInfo.cs | 2 +- CesarPlayer/Makefile.in | 11 ++--------- LongoMatch/AssemblyInfo.cs | 2 +- LongoMatch/Makefile.in | 6 ++++-- Translations/Makefile.in | 2 +- autogen.sh | 2 +- configure | 20 ++++++++++---------- configure.ac | 2 +- 8 files changed, 21 insertions(+), 26 deletions(-) Thu Aug 20 17:26:16 2009 +0200 Andoni Morales Alastruey *Minor changes CesarPlayer/CesarPlayer.mdp | 2 -- CesarPlayer/Utils/PreviewMediaFile.cs | 2 +- CesarPlayer/gtk-gui/gui.stetic | 16 ---------------- 3 files changed, 1 insertions(+), 19 deletions(-) Thu Aug 20 17:24:56 2009 +0200 Andoni Morales Alastruey *Unable updates notifier LongoMatch/Gui/MainWindow.cs | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Thu Aug 20 17:12:54 2009 +0200 Andoni Morales Alastruey *Remove old editor files CesarPlayer/Makefile.am | 9 +-------- 1 files changed, 1 insertions(+), 8 deletions(-) Thu Aug 20 16:52:10 2009 +0200 Andoni Morales Alastruey *Players can be untagged using the 'delete' menu CesarPlayer/CesarPlayer.mdp | 2 + CesarPlayer/gtk-gui/gui.stetic | 16 ++++++++++ LongoMatch/Gui/MainWindow.cs | 5 ++- LongoMatch/Gui/PlayersListTreeWidget.cs | 5 ++- LongoMatch/Gui/PlayersTreeView.cs | 36 +++++++++++++--------- LongoMatch/Time/MediaTimeNode.cs | 8 +++++ LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 2 +- LongoMatch/gtk-gui/objects.xml | 2 +- 9 files changed, 57 insertions(+), 21 deletions(-) Thu Aug 20 02:59:40 2009 +0200 Andoni Morales Alastruey *Update projects file CesarPlayer/CesarPlayer.mdp | 6 ------ 1 files changed, 0 insertions(+), 6 deletions(-) Wed Aug 19 16:18:33 2009 +0200 Andoni Morales Alastruey *update translations .../share/locale/es/LC_MESSAGES/longomatch.gmo | Bin 0 -> 11396 bytes Translations/es.po | 33 ++++++++------------ Translations/fr.po | 6 +--- Translations/messages.po | 8 +--- 4 files changed, 16 insertions(+), 31 deletions(-) Wed Aug 19 21:02:11 2009 +0200 Andoni Morales Alastruey *Draw cute rounded rectangles in the timeline! LongoMatch/Gui/TimeScale.cs | 24 ++++++++++++++++++++++-- 1 files changed, 22 insertions(+), 2 deletions(-) Wed Aug 19 14:32:40 2009 +0200 Andoni Morales Alastruey *Delete mkverge binaries (We don't use it anymore) LongoMatch/Win32/bin/magic1.dll | Bin 135680 -> 0 bytes LongoMatch/Win32/bin/mkvmerge.exe | Bin 4828672 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) Wed Aug 19 14:25:28 2009 +0200 Andoni Morales Alastruey *LongoMatch 0.15.0 Win32 binary LongoMatch/Win32/bin/LongoMatch.exe | Bin 9218568 -> 9170011 bytes 1 files changed, 0 insertions(+), 0 deletions(-) Wed Aug 19 14:21:36 2009 +0200 Andoni Morales Alastruey *Remove old win32 GStreamer binaries LongoMatch/Win32/bin/libgstaudio.dll | Bin 100352 -> 0 bytes LongoMatch/Win32/bin/libgstbase.dll | Bin 163840 -> 0 bytes LongoMatch/Win32/bin/libgstcdda.dll | Bin 34816 -> 0 bytes LongoMatch/Win32/bin/libgstcontroller.dll | Bin 104448 -> 0 bytes LongoMatch/Win32/bin/libgstdataprotocol.dll | Bin 18432 -> 0 bytes LongoMatch/Win32/bin/libgstdshow.dll | Bin 56320 -> 0 bytes LongoMatch/Win32/bin/libgstfarsight.dll | Bin 45056 -> 0 bytes LongoMatch/Win32/bin/libgstfft.dll | Bin 39936 -> 0 bytes LongoMatch/Win32/bin/libgstgl-0.10.dll | Bin 55296 -> 0 bytes LongoMatch/Win32/bin/libgstinterfaces.dll | Bin 49152 -> 0 bytes LongoMatch/Win32/bin/libgstnet.dll | Bin 23040 -> 0 bytes LongoMatch/Win32/bin/libgstnetbuffer.dll | Bin 10752 -> 0 bytes LongoMatch/Win32/bin/libgstpbutils.dll | Bin 41472 -> 0 bytes LongoMatch/Win32/bin/libgstphotography.dll | Bin 16384 -> 0 bytes LongoMatch/Win32/bin/libgstreamer.dll | Bin 619520 -> 0 bytes LongoMatch/Win32/bin/libgstriff.dll | Bin 40960 -> 0 bytes LongoMatch/Win32/bin/libgstrtp.dll | Bin 54272 -> 0 bytes LongoMatch/Win32/bin/libgstrtsp.dll | Bin 64512 -> 0 bytes LongoMatch/Win32/bin/libgstsdp.dll | Bin 23552 -> 0 bytes LongoMatch/Win32/bin/libgsttag.dll | Bin 48128 -> 0 bytes LongoMatch/Win32/bin/libgstvideo.dll | Bin 21504 -> 0 bytes 21 files changed, 0 insertions(+), 0 deletions(-) Wed Aug 19 14:09:07 2009 +0200 Andoni Morales Alastruey *Disable OGG and DVD in win32 LongoMatch/Gui/VideoEditionProperties.cs | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) Wed Aug 19 13:49:35 2009 +0200 Andoni Morales Alastruey *Update win32 GStreamer stuff to 0.10.24 LongoMatch/Win32/bin/gst-inspect-0.10.exe | Bin 211968 -> 211968 bytes LongoMatch/Win32/bin/gst-launch-0.10.exe | Bin 202240 -> 203264 bytes LongoMatch/Win32/bin/gst-xmlinspect-0.10.exe | Bin 203264 -> 203264 bytes LongoMatch/Win32/bin/libcesarplayer.dll | Bin 238178 -> 253036 bytes LongoMatch/Win32/bin/libgstapp-0.10.dll | Bin 37888 -> 38400 bytes LongoMatch/Win32/bin/libgstaudio-0.10.dll | Bin 100352 -> 102912 bytes LongoMatch/Win32/bin/libgstbase-0.10.dll | Bin 163840 -> 178176 bytes LongoMatch/Win32/bin/libgstcdda-0.10.dll | Bin 34816 -> 31232 bytes LongoMatch/Win32/bin/libgstcontroller-0.10.dll | Bin 104448 -> 104960 bytes LongoMatch/Win32/bin/libgstdataprotocol-0.10.dll | Bin 18432 -> 18944 bytes LongoMatch/Win32/bin/libgstdshow-0.10.dll | Bin 57856 -> 57856 bytes LongoMatch/Win32/bin/libgstfarsight-0.10.dll | Bin 45056 -> 45056 bytes LongoMatch/Win32/bin/libgstfft-0.10.dll | Bin 39936 -> 39936 bytes LongoMatch/Win32/bin/libgstgl-0.10.dll | Bin 55296 -> 55296 bytes LongoMatch/Win32/bin/libgstinterfaces-0.10.dll | Bin 49152 -> 49152 bytes LongoMatch/Win32/bin/libgstnet-0.10.dll | Bin 23040 -> 23040 bytes LongoMatch/Win32/bin/libgstnetbuffer-0.10.dll | Bin 10752 -> 11264 bytes LongoMatch/Win32/bin/libgstnetbuffer.dll | Bin 10752 -> 10752 bytes LongoMatch/Win32/bin/libgstpbutils-0.10.dll | Bin 41472 -> 41472 bytes LongoMatch/Win32/bin/libgstphotography-0.10.dll | Bin 16384 -> 16384 bytes LongoMatch/Win32/bin/libgstreamer-0.10.dll | Bin 619008 -> 645120 bytes LongoMatch/Win32/bin/libgstriff-0.10.dll | Bin 40960 -> 40960 bytes LongoMatch/Win32/bin/libgstrtp-0.10.dll | Bin 54272 -> 56320 bytes LongoMatch/Win32/bin/libgstrtsp-0.10.dll | Bin 64512 -> 66048 bytes LongoMatch/Win32/bin/libgstsdp-0.10.dll | Bin 23552 -> 23552 bytes LongoMatch/Win32/bin/libgsttag-0.10.dll | Bin 48128 -> 50176 bytes LongoMatch/Win32/bin/libgstvideo-0.10.dll | Bin 21504 -> 22528 bytes LongoMatch/Win32/bin/libnice.dll | Bin 115200 -> 116736 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgnl.dll | Bin 102400 -> 104448 bytes .../Win32/lib/gstreamer-0.10/libgsta52dec.dll | Bin 23040 -> 23040 bytes .../Win32/lib/gstreamer-0.10/libgstaacparse.dll | Bin 38400 -> 38400 bytes .../Win32/lib/gstreamer-0.10/libgstadder.dll | Bin 22528 -> 25600 bytes .../Win32/lib/gstreamer-0.10/libgstaiffparse.dll | Bin 32256 -> 32256 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstalaw.dll | Bin 18944 -> 18944 bytes .../Win32/lib/gstreamer-0.10/libgstalpha.dll | Bin 12800 -> 12800 bytes .../Win32/lib/gstreamer-0.10/libgstamrparse.dll | Bin 35840 -> 35840 bytes .../Win32/lib/gstreamer-0.10/libgstapetag.dll | Bin 14848 -> 14848 bytes .../Win32/lib/gstreamer-0.10/libgstappplugin.dll | Bin 8192 -> 8192 bytes .../Win32/lib/gstreamer-0.10/libgstasfdemux.dll | Bin 86528 -> 86528 bytes .../lib/gstreamer-0.10/libgstaudioconvert.dll | Bin 51200 -> 51200 bytes .../Win32/lib/gstreamer-0.10/libgstaudiofx.dll | Bin 80384 -> 80384 bytes .../Win32/lib/gstreamer-0.10/libgstaudiorate.dll | Bin 17920 -> 17920 bytes .../lib/gstreamer-0.10/libgstaudioresample.dll | Bin 51200 -> 51200 bytes .../lib/gstreamer-0.10/libgstaudiotestsrc.dll | Bin 26112 -> 28672 bytes .../Win32/lib/gstreamer-0.10/libgstauparse.dll | Bin 18944 -> 18944 bytes .../Win32/lib/gstreamer-0.10/libgstautoconvert.dll | Bin 25088 -> 25088 bytes .../Win32/lib/gstreamer-0.10/libgstautodetect.dll | Bin 29696 -> 29696 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstavi.dll | Bin 96256 -> 96256 bytes .../Win32/lib/gstreamer-0.10/libgstbayer.dll | Bin 18432 -> 18432 bytes .../Win32/lib/gstreamer-0.10/libgstcairo.dll | Bin 27136 -> 27136 bytes .../Win32/lib/gstreamer-0.10/libgstcamerabin.dll | Bin 75776 -> 75776 bytes .../Win32/lib/gstreamer-0.10/libgstcdxaparse.dll | Bin 22016 -> 22016 bytes .../lib/gstreamer-0.10/libgstcoreelements.dll | Bin 118272 -> 119296 bytes .../Win32/lib/gstreamer-0.10/libgstcutter.dll | Bin 16896 -> 16896 bytes .../Win32/lib/gstreamer-0.10/libgstdebug.dll | Bin 40960 -> 40960 bytes .../Win32/lib/gstreamer-0.10/libgstdecodebin.dll | Bin 32768 -> 32768 bytes .../Win32/lib/gstreamer-0.10/libgstdecodebin2.dll | Bin 71168 -> 73216 bytes .../Win32/lib/gstreamer-0.10/libgstdeinterlace.dll | Bin 37376 -> 37376 bytes .../Win32/lib/gstreamer-0.10/libgstdirectdraw.dll | Bin 35328 -> 35328 bytes .../Win32/lib/gstreamer-0.10/libgstdirectsound.dll | Bin 227840 -> 227840 bytes .../lib/gstreamer-0.10/libgstdshowdecwrapper.dll | Bin 88576 -> 88576 bytes .../lib/gstreamer-0.10/libgstdshowsrcwrapper.dll | Bin 41984 -> 41984 bytes .../lib/gstreamer-0.10/libgstdshowvideosink.dll | Bin 53760 -> 53760 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstdtmf.dll | Bin 37888 -> 37888 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstdts.dll | Bin 22016 -> 22016 bytes .../Win32/lib/gstreamer-0.10/libgstdvdlpcmdec.dll | Bin 19456 -> 19456 bytes .../Win32/lib/gstreamer-0.10/libgstdvdread.dll | Bin 33280 -> 33280 bytes .../Win32/lib/gstreamer-0.10/libgstdvdspu.dll | Bin 40448 -> 40448 bytes .../Win32/lib/gstreamer-0.10/libgstdvdsub.dll | Bin 28160 -> 28160 bytes .../Win32/lib/gstreamer-0.10/libgsteffectv.dll | Bin 31232 -> 31232 bytes .../Win32/lib/gstreamer-0.10/libgstequalizer.dll | Bin 24064 -> 24064 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstfaac.dll | Bin 20992 -> 20992 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstfaad.dll | Bin 27648 -> 27648 bytes .../lib/gstreamer-0.10/libgstffmpegcolorspace.dll | Bin 124416 -> 131584 bytes .../Win32/lib/gstreamer-0.10/libgstffmpeggpl.dll | Bin 5764096 -> 5764096 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstflv.dll | Bin 58880 -> 58880 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstflx.dll | Bin 16896 -> 16896 bytes .../Win32/lib/gstreamer-0.10/libgstfreeze.dll | Bin 13312 -> 13312 bytes .../Win32/lib/gstreamer-0.10/libgstfsselector.dll | Bin 24576 -> 0 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstgdp.dll | Bin 29696 -> 29696 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstgio.dll | Bin 36352 -> 36864 bytes .../Win32/lib/gstreamer-0.10/libgsth264parse.dll | Bin 20480 -> 20480 bytes .../Win32/lib/gstreamer-0.10/libgsticydemux.dll | Bin 15360 -> 15360 bytes .../Win32/lib/gstreamer-0.10/libgstid3demux.dll | Bin 30720 -> 30720 bytes .../Win32/lib/gstreamer-0.10/libgstiec958.dll | Bin 15872 -> 15872 bytes .../Win32/lib/gstreamer-0.10/libgstinterleave.dll | Bin 35328 -> 35328 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstjpeg.dll | Bin 47616 -> 47616 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstlame.dll | Bin 45568 -> 45568 bytes .../lib/gstreamer-0.10/libgstlegacyresample.dll | Bin 31744 -> 31744 bytes .../Win32/lib/gstreamer-0.10/libgstlevel.dll | Bin 19456 -> 19456 bytes .../Win32/lib/gstreamer-0.10/libgstlibmms.dll | Bin 16896 -> 16896 bytes .../Win32/lib/gstreamer-0.10/libgstliveadder.dll | Bin 34304 -> 34304 bytes .../Win32/lib/gstreamer-0.10/libgstmatroska.dll | Bin 136192 -> 136192 bytes .../Win32/lib/gstreamer-0.10/libgstmonoscope.dll | Bin 17920 -> 17920 bytes .../Win32/lib/gstreamer-0.10/libgstmpeg2dec.dll | Bin 33792 -> 33792 bytes .../lib/gstreamer-0.10/libgstmpeg4videoparse.dll | Bin 20480 -> 20480 bytes .../lib/gstreamer-0.10/libgstmpegaudioparse.dll | Bin 44544 -> 44544 bytes .../Win32/lib/gstreamer-0.10/libgstmpegdemux.dll | Bin 141824 -> 141824 bytes .../Win32/lib/gstreamer-0.10/libgstmpegstream.dll | Bin 58880 -> 58880 bytes .../Win32/lib/gstreamer-0.10/libgstmpegtsmux.dll | Bin 34304 -> 34304 bytes .../lib/gstreamer-0.10/libgstmpegvideoparse.dll | Bin 22528 -> 22528 bytes .../Win32/lib/gstreamer-0.10/libgstmulaw.dll | Bin 15872 -> 15872 bytes .../Win32/lib/gstreamer-0.10/libgstmultifile.dll | Bin 15872 -> 15872 bytes .../Win32/lib/gstreamer-0.10/libgstmultipart.dll | Bin 23552 -> 23552 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstmve.dll | Bin 88576 -> 88576 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstmxf.dll | Bin 357888 -> 358400 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstneon.dll | Bin 22528 -> 22528 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstnice.dll | Bin 23552 -> 15360 bytes .../Win32/lib/gstreamer-0.10/libgstnuvdemux.dll | Bin 20480 -> 20480 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstogg.dll | Bin 96768 -> 98816 bytes .../Win32/lib/gstreamer-0.10/libgstpango.dll | Bin 43520 -> 46592 bytes .../Win32/lib/gstreamer-0.10/libgstpcapparse.dll | Bin 13312 -> 13312 bytes .../Win32/lib/gstreamer-0.10/libgstplaybin.dll | Bin 136704 -> 158720 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstpng.dll | Bin 27136 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstqtdemux.dll | Bin 115200 -> 115200 bytes .../Win32/lib/gstreamer-0.10/libgstqtmux.dll | Bin 66048 -> 66048 bytes .../Win32/lib/gstreamer-0.10/libgstqueue2.dll | Bin 38400 -> 39936 bytes .../Win32/lib/gstreamer-0.10/libgstrawparse.dll | Bin 35328 -> 35328 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstreal.dll | Bin 29696 -> 29696 bytes .../Win32/lib/gstreamer-0.10/libgstrealmedia.dll | Bin 65024 -> 65024 bytes .../Win32/lib/gstreamer-0.10/libgstreplaygain.dll | Bin 35328 -> 35328 bytes .../Win32/lib/gstreamer-0.10/libgstresindvd.dll | Bin 143872 -> 143872 bytes .../Win32/lib/gstreamer-0.10/libgstrtp_good.dll | Bin 202752 -> 202752 bytes .../lib/gstreamer-0.10/libgstrtpjitterbuffer.dll | Bin 29184 -> 30208 bytes .../Win32/lib/gstreamer-0.10/libgstrtpmanager.dll | Bin 147456 -> 147456 bytes .../Win32/lib/gstreamer-0.10/libgstrtpmux.dll | Bin 19968 -> 19968 bytes .../Win32/lib/gstreamer-0.10/libgstrtpnetsim.dll | Bin 14336 -> 14336 bytes .../Win32/lib/gstreamer-0.10/libgstrtppayloads.dll | Bin 16384 -> 16384 bytes .../Win32/lib/gstreamer-0.10/libgstrtprtpdemux.dll | Bin 14336 -> 14336 bytes .../Win32/lib/gstreamer-0.10/libgstrtsp_good.dll | Bin 83456 -> 83456 bytes .../Win32/lib/gstreamer-0.10/libgstscaletempo.dll | Bin 16896 -> 16896 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstsdl.dll | Bin 27136 -> 27136 bytes .../Win32/lib/gstreamer-0.10/libgstsdpplugin.dll | Bin 25600 -> 25600 bytes .../Win32/lib/gstreamer-0.10/libgstselector.dll | Bin 34816 -> 34816 bytes .../Win32/lib/gstreamer-0.10/libgstsiren.dll | Bin 61952 -> 61952 bytes .../Win32/lib/gstreamer-0.10/libgstsmpte.dll | Bin 49664 -> 49664 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstsoup.dll | Bin 28672 -> 0 bytes .../Win32/lib/gstreamer-0.10/libgstspectrum.dll | Bin 18944 -> 18944 bytes .../Win32/lib/gstreamer-0.10/libgstspeed.dll | Bin 17920 -> 17920 bytes .../Win32/lib/gstreamer-0.10/libgststereo.dll | Bin 12288 -> 12288 bytes .../Win32/lib/gstreamer-0.10/libgstsubenc.dll | Bin 12288 -> 12288 bytes .../lib/gstreamer-0.10/libgstsynaesthesia.dll | Bin 17920 -> 17920 bytes .../Win32/lib/gstreamer-0.10/libgsttheora.dll | Bin 51200 -> 52736 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgsttta.dll | Bin 22528 -> 22528 bytes .../lib/gstreamer-0.10/libgsttypefindfunctions.dll | Bin 47104 -> 48128 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstudp.dll | Bin 41984 -> 41984 bytes .../Win32/lib/gstreamer-0.10/libgstvalve.dll | Bin 12800 -> 12800 bytes .../Win32/lib/gstreamer-0.10/libgstvideobox.dll | Bin 23040 -> 23040 bytes .../Win32/lib/gstreamer-0.10/libgstvideocrop.dll | Bin 32768 -> 32768 bytes .../gstreamer-0.10/libgstvideofilterbalance.dll | Bin 16384 -> 16384 bytes .../lib/gstreamer-0.10/libgstvideofilterflip.dll | Bin 18944 -> 18944 bytes .../lib/gstreamer-0.10/libgstvideofiltergamma.dll | Bin 12288 -> 12288 bytes .../Win32/lib/gstreamer-0.10/libgstvideomixer.dll | Bin 28160 -> 28160 bytes .../Win32/lib/gstreamer-0.10/libgstvideorate.dll | Bin 23040 -> 23040 bytes .../Win32/lib/gstreamer-0.10/libgstvideoscale.dll | Bin 53248 -> 55296 bytes .../Win32/lib/gstreamer-0.10/libgstvideosignal.dll | Bin 19968 -> 19968 bytes .../lib/gstreamer-0.10/libgstvideotestsrc.dll | Bin 34816 -> 36352 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstvmnc.dll | Bin 20480 -> 20480 bytes .../Win32/lib/gstreamer-0.10/libgstvolume.dll | Bin 18432 -> 18432 bytes .../Win32/lib/gstreamer-0.10/libgstvorbis.dll | Bin 54784 -> 55296 bytes .../Win32/lib/gstreamer-0.10/libgstwasapi.dll | Bin 20480 -> 20480 bytes .../Win32/lib/gstreamer-0.10/libgstwaveenc.dll | Bin 15360 -> 15360 bytes .../Win32/lib/gstreamer-0.10/libgstwaveform.dll | Bin 15872 -> 15872 bytes .../Win32/lib/gstreamer-0.10/libgstwavpack.dll | Bin 52736 -> 52736 bytes .../Win32/lib/gstreamer-0.10/libgstwavparse.dll | Bin 40448 -> 40448 bytes .../Win32/lib/gstreamer-0.10/libgstwininet.dll | Bin 14336 -> 14336 bytes .../Win32/lib/gstreamer-0.10/libgstwinks.dll | Bin 54784 -> 54784 bytes .../lib/gstreamer-0.10/libgstwinscreencap.dll | Bin 23552 -> 23552 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstx264.dll | Bin 25088 -> 25088 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstxvid.dll | Bin 39424 -> 39424 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgsty4m.dll | Bin 12800 -> 12800 bytes 171 files changed, 0 insertions(+), 0 deletions(-) Wed Aug 19 13:30:08 2009 +0200 Andoni Morales Alastruey *Use Win32 GStreamer Uri has a workaround for the gnonlin bug where using c:/somepath returns a wrong uri CesarPlayer/Editor/GstVideoSplitter.cs | 838 ++++++++++++++++---------------- 1 files changed, 420 insertions(+), 418 deletions(-) Wed Aug 19 13:28:46 2009 +0200 Andoni Morales Alastruey *Path to icon .rc file has changed makeBundle.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Aug 19 13:26:00 2009 +0200 Andoni Morales Alastruey *Use default video editor in all platforms CesarPlayer/MultimediaFactory.cs | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Wed Aug 19 12:45:31 2009 +0200 Andoni Morales Alastruey *Revert "Use an Uri to set the location of the GnlFileSource." CesarPlayer/Editor/GstVideoSplitter.cs | 7 +++---- CesarPlayer/Editor/IVideoEditor.cs | 2 +- CesarPlayer/Editor/IVideoSplitter.cs | 2 +- CesarPlayer/Makefile.am | 12 +++++++++--- CesarPlayer/MultimediaFactory.cs | 6 +++--- LongoMatch/Gui/PlayListWidget.cs | 11 ++--------- LongoMatch/gtk-gui/objects.xml | 20 ++++++++++---------- 7 files changed, 29 insertions(+), 31 deletions(-) Tue Aug 18 21:39:27 2009 +0200 Andoni Morales Alastruey *Update CSharp project files LongoMatch/LongoMatch.csproj | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) Tue Aug 18 15:12:59 2009 +0200 Andoni Morales Alastruey *Update CSharp Project files CesarPlayer/CesarPlayer.csproj | 7 ------- LongoMatch/LongoMatch.csproj | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 7 deletions(-) Tue Aug 18 14:40:30 2009 +0200 Andoni Morales Alastruey *Update CSharpProject CesarPlayer/CesarPlayer.csproj | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Tue Aug 18 14:31:40 2009 +0200 Andoni Morales Alastruey *Use an Uri to set the location of the GnlFileSource. CesarPlayer/Editor/GstVideoSplitter.cs | 7 ++++--- CesarPlayer/Editor/IVideoEditor.cs | 2 +- CesarPlayer/Editor/IVideoSplitter.cs | 2 +- CesarPlayer/Makefile.am | 12 +++--------- CesarPlayer/MultimediaFactory.cs | 6 +++--- LongoMatch/Gui/PlayListWidget.cs | 11 +++++++++-- LongoMatch/gtk-gui/objects.xml | 20 ++++++++++---------- 7 files changed, 31 insertions(+), 29 deletions(-) Tue Aug 18 03:04:40 2009 +0200 Andoni Morales Alastruey *Updated translations Translations/es.po | 62 +++++++++++++++++++++++---------------------- Translations/fr.po | 57 +++++++++++++++++++++-------------------- Translations/messages.po | 59 ++++++++++++++++++++++--------------------- 3 files changed, 91 insertions(+), 87 deletions(-) Tue Aug 18 02:58:06 2009 +0200 Andoni Morales Alastruey *Added info icon and improved dialog information of the workspace selector .../LongoMatch.Gui.Dialog.WorkspaceChooser.cs | 103 ++++++++++--------- LongoMatch/gtk-gui/gui.stetic | 60 ++++++----- 2 files changed, 87 insertions(+), 76 deletions(-) Tue Aug 18 02:16:48 2009 +0200 Andoni Morales Alastruey *Change audio and video bitrate properties limits where audio is in bps and video in kbps libcesarplayer/src/gst-video-editor.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) Tue Aug 18 02:08:25 2009 +0200 Andoni Morales Alastruey *Use the new GNonlin editor also in win32 CesarPlayer/MultimediaFactory.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Mon Aug 17 19:38:40 2009 +0200 Andoni Morales Alastruey *Use the eventbox provided by the GstPlayer CesarPlayer/Gui/PlayerBin.cs | 2 ++ CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs | 6 +++--- CesarPlayer/gtk-gui/gui.stetic | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) Mon Aug 17 08:15:36 2009 +0200 Andoni Morales Alastruey *revert partially fef7b8a LongoMatch/Main.cs | 2 +- LongoMatch/gtk-gui/generated.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 2 +- Makefile.include | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) Sun Aug 16 18:31:33 2009 +0200 Andoni Morales Alastruey *Added debian packaging files Build/debian/changelog | 6 ++++++ Build/debian/control | 12 ++++++++++++ Build/debian/copyright | 35 +++++++++++++++++++++++++++++++++++ Build/debian/rules | 3 +++ 4 files changed, 56 insertions(+), 0 deletions(-) Sun Aug 16 18:04:43 2009 +0200 Andoni Morales Alastruey *Bump 0.15 pre-release info ChangeLog | 2 +- NEWS | 2 +- RELEASE | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 2 deletions(-) Sun Aug 16 17:28:21 2009 +0200 Andoni Morales Alastruey *Updates news, install and readme files INSTALL | 301 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ NEWS | 52 +++++++++++ README | 3 + 3 files changed, 356 insertions(+), 0 deletions(-) Sun Aug 16 17:10:33 2009 +0200 Andoni Morales Alastruey *Images for LongoMatch must be stored in share/images/longomatch LongoMatch/Main.cs | 8 ++++++-- .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 3 +++ LongoMatch/gtk-gui/generated.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 4 ++-- Makefile.include | 4 ++-- 5 files changed, 14 insertions(+), 7 deletions(-) Sun Aug 16 17:09:49 2009 +0200 Andoni Morales Alastruey *Use gconfvideo sink to let the user choose the ouput method libcesarplayer/src/bacon-video-widget-gst-0.10.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Sun Aug 16 16:52:32 2009 +0200 Andoni Morales Alastruey *Repository clean-up LongoMatch/Db4objects.Db4o.dll | Bin 600576 -> 0 bytes LongoMatch/LongoMatch.prjx | 153 --------------------- LongoMatch/images/minilogo.ico | Bin 0 -> 38078 bytes LongoMatch/images/minilogo.rc | 66 +++++++++ LongoMatch/images/resource.h | 15 ++ LongoMatch/mencoder.exe | Bin 12914688 -> 0 bytes LongoMatch/minilogo.ico | Bin 38078 -> 0 bytes LongoMatch/minilogo.png | Bin 16818 -> 0 bytes LongoMatch/minilogo.rc | 66 --------- LongoMatch/resource.h | 15 -- Packages.mdse | 37 ----- Packages/Packages.mdse | 23 ---- libcesarplayer/libcesarplayer.sln | 20 --- libcesarplayer/libcesarplayer.vcproj | 242 ---------------------------------- liblongomatch.mdp | 62 --------- 15 files changed, 81 insertions(+), 618 deletions(-) Sun Aug 16 07:30:35 2009 +0200 Andoni Morales Alastruey *Add DOAP file longomatch.doap | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) Sun Aug 16 05:23:16 2009 +0200 Andoni Morales Alastruey *Delete Patent infringing files for gnome git LongoMatch/Win32/bin/libdvdcss-2.dll | Bin 63282 -> 0 bytes 1 files changed, 0 insertions(+), 0 deletions(-) Sun Aug 16 01:29:10 2009 +0000 longomatch ** LongoMatch/gtk-gui/gui.stetic: Skip pager and taskbar LongoMatch/gtk-gui/gui.stetic | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) Sat Aug 15 17:55:25 2009 +0000 longomatch ** CesarPlayer/Gui/PlayerBin.cs: * CesarPlayer/Player/IPlayer.cs: Use the ready to seek event to seek on a new file CesarPlayer/Gui/PlayerBin.cs | 18 ++++++++++++++++-- CesarPlayer/Player/IPlayer.cs | 1 + LongoMatch/Compat/0.0/DatabaseMigrator.cs | 1 - LongoMatch/Playlist/PlayList.cs | 1 - libcesarplayer/src/bacon-video-widget-gst-0.10.c | 11 +++++++---- 5 files changed, 24 insertions(+), 8 deletions(-) Sat Aug 15 16:40:39 2009 +0000 longomatch ** libcesarplayer/src/gst-video-editor.c: Use lame for DVD audio. Set lame bitrate in kbps LongoMatch/Gui/PlayListWidget.cs | 5 +++-- libcesarplayer/src/gst-video-editor.c | 11 ++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) Sat Aug 15 15:51:02 2009 +0000 longomatch ** LongoMatch/Gui/PlayListWidget.cs: Add note for 0.16 CesarPlayer/Editor/AudioQuality.cs | 8 ++++---- LongoMatch/Gui/PlayListWidget.cs | 1 + libcesarplayer/src/gst-video-editor.c | 7 +++++-- 3 files changed, 10 insertions(+), 6 deletions(-) Sat Aug 15 14:19:28 2009 +0000 longomatch ** LongoMatch/Gui/TemplatesEditor.cs: Only set the deafult template if the user choosed to delete the template LongoMatch/Gui/TemplatesEditor.cs | 9 +++++---- Translations/es.po | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) Sat Aug 15 13:34:42 2009 +0000 longomatch ** LongoMatch/Gui/TreeWidget.cs: * LongoMatch/Gui/MainWindow.cs: * LongoMatch/Gui/TimeNodesTreeView.cs: * LongoMatch/gtk-gui/LongoMatch.Gui.Component.TimeNodeProperties.cs: Show "add to playlist" only when playlist widget is shown LongoMatch/Gui/MainWindow.cs | 17 +++++++++-------- LongoMatch/Gui/TimeNodesTreeView.cs | 10 +++++++++- LongoMatch/Gui/TreeWidget.cs | 6 +++++- .../LongoMatch.Gui.Component.TimeNodeProperties.cs | 2 -- 4 files changed, 23 insertions(+), 12 deletions(-) Sat Aug 15 12:52:38 2009 +0000 longomatch ** LongoMatch/gtk-gui/gui.stetic: Expnad the VBox in the TimeNode Properties widget LongoMatch/gtk-gui/gui.stetic | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-) Sat Aug 15 12:48:10 2009 +0000 longomatch ** LongoMatch/Gui/TemplatesEditor.cs: After deleting a tempalet select the default template to reset everything LongoMatch/Gui/TemplatesEditor.cs | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) Sat Aug 15 00:18:10 2009 +0000 longomatch ** README: Update README .../gtk-gui/LongoMatch.Gui.Dialog.DBManager.cs | 60 +++++---- LongoMatch/gtk-gui/gui.stetic | 150 ++++++++++---------- README | 62 ++++++++ 3 files changed, 172 insertions(+), 100 deletions(-) Fri Aug 14 22:41:53 2009 +0000 longomatch ** Translations/fr.po: * Translations/es.po: * Translations/messages.po: Update Translations LongoMatch/Gui/TemplatesEditor.cs | 7 +- Translations/es.po | 133 +++++++++++++++++++------------------ Translations/fr.po | 127 ++++++++++++++++++----------------- Translations/messages.po | 126 ++++++++++++++++++----------------- 4 files changed, 201 insertions(+), 192 deletions(-) Fri Aug 14 22:16:56 2009 +0000 longomatch ** LongoMatch/Gui/PlayerProperties.cs: Update copyright LongoMatch/Gui/PlayerProperties.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Fri Aug 14 22:14:32 2009 +0000 longomatch ** 0.0/DatabaseMigrator.cs: * 0.0/PlayListMigrator.cs: * 0.0/TemplatesMigrator.cs: Send clean message to the user LongoMatch/Compat/0.0/DatabaseMigrator.cs | 20 ++++++++++---------- LongoMatch/Compat/0.0/PlayListMigrator.cs | 7 ++----- LongoMatch/Compat/0.0/TemplatesMigrator.cs | 2 +- 3 files changed, 13 insertions(+), 16 deletions(-) Fri Aug 14 01:33:57 2009 +0000 longomatch *Update Copyright info * LongoMatch/Main.cs: * LongoMatch/Time/Time.cs: * LongoMatch/DB/Project.cs: * LongoMatch/DB/DataBase.cs: * LongoMatch/DB/Sections.cs: * LongoMatch/IO/XMLReader.cs: * LongoMatch/AssemblyInfo.cs: * LongoMatch/Gui/DBManager.cs: * LongoMatch/Gui/TimeScale.cs: * LongoMatch/Time/TimeNode.cs: * LongoMatch/Gui/MainWindow.cs: * LongoMatch/Gui/TreeWidget.cs: * CesarPlayer/Player/IPlayer.cs: * LongoMatch/Gui/NotesWidget.cs: * LongoMatch/Gui/EntryDialog.cs: * CesarPlayer/Utils/MediaFile.cs: * CesarPlayer/Gui/CapturerBin.cs: * CesarPlayer/Utils/TimeString.cs: * LongoMatch/Gui/ButtonsWidget.cs: * CesarPlayer/Gui/VolumeWindow.cs: * LongoMatch/Gui/CalendarPopup.cs: * LongoMatch/Playlist/PlayList.cs: * CesarPlayer/MultimediaFactory.cs: * CesarPlayer/Handlers/Handlers.cs: * LongoMatch/Gui/TimeLineWidget.cs: * LongoMatch/Playlist/IPlayList.cs: * CesarPlayer/Capturer/ICapturer.cs: * LongoMatch/Gui/SnapshotsDialog.cs: * LongoMatch/Time/PixbufTimeNode.cs: * CesarPlayer/Editor/IVideoEditor.cs: * CesarPlayer/Editor/AudioQuality.cs: * LongoMatch/Compat/0.0/Time/Time.cs: * LongoMatch/Gui/TimeAdjustWidget.cs: * LongoMatch/Gui/PlayListTreeView.cs: * CesarPlayer/Editor/VideoQuality.cs: * LongoMatch/Gui/NewProjectDialog.cs: * CesarPlayer/Handlers/TickHandler.cs: * CesarPlayer/Utils/FramesCapturer.cs: * LongoMatch/Gui/OpenProjectDialog.cs: * LongoMatch/Gui/ProjectListWidget.cs: * LongoMatch/Gui/TimeNodesTreeView.cs: * LongoMatch/Time/SectionsTimeNode.cs: * CesarPlayer/Player/ObjectManager.cs: * LongoMatch/Compat/0.0/DB/Project.cs: * CesarPlayer/Capturer/ErrorHandler.cs: * CesarPlayer/Utils/IFramesCapturer.cs: * LongoMatch/Gui/TimeNodeProperties.cs: * CesarPlayer/Handlers/ErrorHandler.cs: * LongoMatch/Handlers/EventsManager.cs: * LongoMatch/Compat/0.0/DB/DataBase.cs: * CesarPlayer/Utils/IMetadataReader.cs: * LongoMatch/Gui/TimeReferenceWidget.cs: * LongoMatch/Compat/0.0/DB/MediaFile.cs: * CesarPlayer/Capturer/ObjectManager.cs: * LongoMatch/Gui/TemplateEditorDialog.cs: * LongoMatch/Compat/0.0/Time/TimeNode.cs: * LongoMatch/Gui/VideoEditionProperties.cs: * LongoMatch/Compat/0.0/Playlist/PlayList.cs: * LongoMatch/Compat/0.0/Time/MediaTimeNode.cs: * CesarPlayer/Handlers/StateChangedHandler.cs: * LongoMatch/Compat/0.0/Playlist/IPlayList.cs: * LongoMatch/Compat/0.0/Time/PixbufTimeNode.cs: * LongoMatch/Gui/FramesCaptureProgressDialog.cs: * LongoMatch/Compat/0.0/Time/SectionsTimeNode.cs: * LongoMatch/Compat/0.0/Time/PlayListTimeNode.cs: CesarPlayer/Capturer/ErrorHandler.cs | 2 +- CesarPlayer/Capturer/ICapturer.cs | 2 +- CesarPlayer/Capturer/ObjectManager.cs | 2 +- CesarPlayer/Editor/AudioQuality.cs | 2 +- CesarPlayer/Editor/IVideoEditor.cs | 2 +- CesarPlayer/Editor/VideoQuality.cs | 2 +- CesarPlayer/Gui/CapturerBin.cs | 2 +- CesarPlayer/Gui/VolumeWindow.cs | 2 +- CesarPlayer/Handlers/ErrorHandler.cs | 2 +- CesarPlayer/Handlers/Handlers.cs | 2 +- CesarPlayer/Handlers/StateChangedHandler.cs | 2 +- CesarPlayer/Handlers/TickHandler.cs | 2 +- CesarPlayer/MultimediaFactory.cs | 2 +- CesarPlayer/Player/IPlayer.cs | 2 +- CesarPlayer/Player/ObjectManager.cs | 2 +- CesarPlayer/Utils/FramesCapturer.cs | 2 +- CesarPlayer/Utils/IFramesCapturer.cs | 2 +- CesarPlayer/Utils/IMetadataReader.cs | 2 +- CesarPlayer/Utils/MediaFile.cs | 2 +- CesarPlayer/Utils/TimeString.cs | 2 +- LongoMatch/AssemblyInfo.cs | 2 +- LongoMatch/Compat/0.0/DB/DataBase.cs | 2 +- LongoMatch/Compat/0.0/DB/MediaFile.cs | 2 +- LongoMatch/Compat/0.0/DB/Project.cs | 2 +- LongoMatch/Compat/0.0/Playlist/IPlayList.cs | 2 +- LongoMatch/Compat/0.0/Playlist/PlayList.cs | 2 +- LongoMatch/Compat/0.0/Time/MediaTimeNode.cs | 2 +- LongoMatch/Compat/0.0/Time/PixbufTimeNode.cs | 2 +- LongoMatch/Compat/0.0/Time/PlayListTimeNode.cs | 2 +- LongoMatch/Compat/0.0/Time/SectionsTimeNode.cs | 2 +- LongoMatch/Compat/0.0/Time/Time.cs | 2 +- LongoMatch/Compat/0.0/Time/TimeNode.cs | 2 +- LongoMatch/DB/DataBase.cs | 2 +- LongoMatch/DB/Project.cs | 2 +- LongoMatch/DB/Sections.cs | 2 +- LongoMatch/Gui/ButtonsWidget.cs | 2 +- LongoMatch/Gui/CalendarPopup.cs | 2 +- LongoMatch/Gui/DBManager.cs | 2 +- LongoMatch/Gui/EntryDialog.cs | 2 +- LongoMatch/Gui/FramesCaptureProgressDialog.cs | 2 +- LongoMatch/Gui/MainWindow.cs | 2 +- LongoMatch/Gui/NewProjectDialog.cs | 2 +- LongoMatch/Gui/NotesWidget.cs | 2 +- LongoMatch/Gui/OpenProjectDialog.cs | 2 +- LongoMatch/Gui/PlayListTreeView.cs | 2 +- LongoMatch/Gui/ProjectListWidget.cs | 2 +- LongoMatch/Gui/SnapshotsDialog.cs | 2 +- LongoMatch/Gui/TemplateEditorDialog.cs | 2 +- LongoMatch/Gui/TimeAdjustWidget.cs | 2 +- LongoMatch/Gui/TimeLineWidget.cs | 2 +- LongoMatch/Gui/TimeNodeProperties.cs | 2 +- LongoMatch/Gui/TimeNodesTreeView.cs | 2 +- LongoMatch/Gui/TimeReferenceWidget.cs | 2 +- LongoMatch/Gui/TimeScale.cs | 2 +- LongoMatch/Gui/TreeWidget.cs | 2 +- LongoMatch/Gui/VideoEditionProperties.cs | 2 +- LongoMatch/Handlers/EventsManager.cs | 2 +- LongoMatch/IO/XMLReader.cs | 2 +- LongoMatch/Main.cs | 2 +- LongoMatch/Playlist/IPlayList.cs | 2 +- LongoMatch/Playlist/PlayList.cs | 2 +- LongoMatch/Time/PixbufTimeNode.cs | 2 +- LongoMatch/Time/SectionsTimeNode.cs | 2 +- LongoMatch/Time/Time.cs | 2 +- LongoMatch/Time/TimeNode.cs | 2 +- 65 files changed, 65 insertions(+), 65 deletions(-) Fri Aug 14 01:22:54 2009 +0000 longomatch ** LongoMatch/longomatch.desktop: Update desktop file to be freedesktop compilant LongoMatch/Makefile.am | 4 +++- LongoMatch/longomatch.desktop | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) Fri Aug 14 01:20:52 2009 +0000 longomatch ** LongoMatch/Compat/0.0/IO: LongoMatch/LongoMatch.mdp | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Fri Aug 14 01:17:41 2009 +0000 longomatch ** LongoMatch/Compat/0.0/IO: .../LongoMatch.Gui.Component.PlayerProperties.cs | 1 - .../LongoMatch.Gui.Component.TimeNodeProperties.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 49 ++++++++++++++++++-- 3 files changed, 46 insertions(+), 6 deletions(-) Fri Aug 14 01:12:10 2009 +0000 longomatch ** LongoMatch/Compat/0.0/IO: * LongoMatch/Gui/Migrator.cs: * LongoMatch/IO/SectionsReader.cs: * LongoMatch/Time/PlayListTimeNode.cs: * LongoMatch/Compat/0.0/DB/Sections.cs: * LongoMatch/Compat/0.0/DatabaseMigrator.cs: * LongoMatch/Compat/0.0/PlayListMigrator.cs: * LongoMatch/Compat/0.0/IO/SectionsReader.cs: * LongoMatch/Compat/0.0/TemplatesMigrator.cs: * LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs: Update migration stuff. Now imports alse templates LongoMatch/Compat/0.0/DB/Sections.cs | 7 +- LongoMatch/Compat/0.0/DatabaseMigrator.cs | 8 +- LongoMatch/Compat/0.0/IO/SectionsReader.cs | 98 +++++++++++++++++++ LongoMatch/Compat/0.0/PlayListMigrator.cs | 10 +- LongoMatch/Compat/0.0/TemplatesMigrator.cs | 101 ++++++++++++++++++++ LongoMatch/Gui/Migrator.cs | 37 +++++++- LongoMatch/IO/SectionsReader.cs | 2 +- LongoMatch/Time/PlayListTimeNode.cs | 2 +- .../gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs | 68 ++++++++++--- 9 files changed, 306 insertions(+), 27 deletions(-) Thu Aug 13 21:45:23 2009 +0000 longomatch ** Translations/es.po: Update Spanish Translations Translations/es.po | 79 ++++++++++++++++++++++++--------------------------- 1 files changed, 37 insertions(+), 42 deletions(-) Thu Aug 13 21:44:58 2009 +0000 longomatch ** configure: * Makefile.am: * Makefile.in: * configure.ac: * LongoMatch/Makefile.am: * LongoMatch/Makefile.in: * CesarPlayer/Makefile.am: * CesarPlayer/Makefile.in: * libcesarplayer/src/Makefile.in: * libcesarplayer/src/Makefile.am: Update Makefiles CesarPlayer/Makefile.am | 13 +++++++------ CesarPlayer/Makefile.in | 1 + LongoMatch/Makefile.am | 7 +++++-- LongoMatch/Makefile.in | 8 ++++++-- Makefile.am | 2 +- Makefile.in | 2 +- configure | 40 ++++++++++++++++++++-------------------- configure.ac | 4 ++-- libcesarplayer/src/Makefile.am | 6 ++++-- libcesarplayer/src/Makefile.in | 12 ++++++++---- 10 files changed, 55 insertions(+), 40 deletions(-) Thu Aug 13 21:44:30 2009 +0000 longomatch ** src/gst-video-editor.c: * src/bacon-video-widget-gst-0.10.c: Remove unused includes libcesarplayer/src/bacon-video-widget-gst-0.10.c | 1 - libcesarplayer/src/gst-video-editor.c | 2 +- 2 files changed, 1 insertions(+), 2 deletions(-) Thu Aug 13 19:15:12 2009 +0000 longomatch ** LongoMatch/Gui/MainWindow.cs: Added url hoock. Changed weblink LongoMatch/Gui/MainWindow.cs | 26 ++++++++++++++++++++-- LongoMatch/Main.cs | 6 ++++- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 8 ++++++- LongoMatch/gtk-gui/gui.stetic | 8 +++++++ 4 files changed, 43 insertions(+), 5 deletions(-) Thu Aug 13 14:19:57 2009 +0000 longomatch *Update translations * Translations/fr.po: * Translations/es.po: * Translations/messages.po: LongoMatch/Playlist/PlayList.cs | 6 ++- Translations/es.po | 70 +++++++++++++++++++++++++++++--------- Translations/fr.po | 65 ++++++++++++++++++++++++++--------- Translations/messages.po | 67 +++++++++++++++++++++++++++---------- 4 files changed, 154 insertions(+), 54 deletions(-) Thu Aug 13 14:00:50 2009 +0000 longomatch ** LongoMatch/Time/PlayListTimeNode.cs: Force conversion to MedialFile so the PlayListTimeNode can be serialized LongoMatch/Gui/FramesCaptureProgressDialog.cs | 1 + LongoMatch/Time/PlayListTimeNode.cs | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) Wed Aug 12 23:38:16 2009 +0000 longomatch ** CesarPlayer/Gui/PlayerBin.cs: Force play after setting a segment CesarPlayer/Gui/PlayerBin.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Wed Aug 12 23:24:33 2009 +0000 longomatch ** Compat/0.0/DatabaseMigrator.cs: Backup converted DB and delete old one LongoMatch/Compat/0.0/DatabaseMigrator.cs | 5 ++++- LongoMatch/Compat/0.0/PlayListMigrator.cs | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) Wed Aug 12 23:01:10 2009 +0000 longomatch *Update autotools * LongoMatch/Makefile.am: * LongoMatch/Makefile.in: * CesarPlayer/Makefile.in: * CesarPlayer/Makefile.am: * CesarPlayer/CesarPlayer.mdp: * libcesarplayer/src/Makefile.in: * libcesarplayer/src/Makefile.am: CesarPlayer/CesarPlayer.mdp | 1 - CesarPlayer/Makefile.am | 31 ++++++++------ CesarPlayer/Makefile.in | 27 +++++++----- LongoMatch/Makefile.am | 88 +++++++++++++++++++------------------- LongoMatch/Makefile.in | 92 ++++++++++++++++++++------------------- libcesarplayer/src/Makefile.am | 2 +- libcesarplayer/src/Makefile.in | 50 +++++++++++----------- 7 files changed, 152 insertions(+), 139 deletions(-) Wed Aug 12 22:52:05 2009 +0000 longomatch ** PlayListMigrator.cs: Fix stupid mistake LongoMatch/Compat/0.0/PlayListMigrator.cs | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Wed Aug 12 22:20:52 2009 +0000 longomatch *Fixes Migration tools. Add PreviewMediaFile, has Pixbuf cannot be serialized and PlayListTimeNode needs to use a MediaFile without references to a Pixbuf * LongoMatch/Main.cs: * LongoMatch/DB/Project.cs: * LongoMatch/Gui/Migrator.cs: * CesarPlayer/CesarPlayer.mdp: * LongoMatch/gtk-gui/gui.stetic: * CesarPlayer/Utils/MediaFile.cs: * LongoMatch/Playlist/PlayList.cs: * LongoMatch/Gui/PlayListWidget.cs: * CesarPlayer/Utils/PreviewMediaFile.cs: * LongoMatch/Gui/FileDescriptionWidget.cs: * LongoMatch/Compat/0.0/DatabaseMigrator.cs: * LongoMatch/Compat/0.0/PlayListMigrator.cs: * LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs: CesarPlayer/CesarPlayer.mdp | 1 + CesarPlayer/Utils/MediaFile.cs | 50 ++------- CesarPlayer/Utils/PreviewMediaFile.cs | 119 ++++++++++++++++++++ LongoMatch/Compat/0.0/DatabaseMigrator.cs | 16 +-- LongoMatch/Compat/0.0/PlayListMigrator.cs | 117 +++++++++++++------ LongoMatch/DB/Project.cs | 6 +- LongoMatch/Gui/FileDescriptionWidget.cs | 4 +- LongoMatch/Gui/Migrator.cs | 63 +++++++++-- LongoMatch/Gui/PlayListWidget.cs | 20 ++-- LongoMatch/Main.cs | 17 +-- LongoMatch/Playlist/PlayList.cs | 1 + .../gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs | 108 +++++++++++++++---- LongoMatch/gtk-gui/gui.stetic | 88 ++++++++++++++- 13 files changed, 466 insertions(+), 144 deletions(-) Wed Aug 12 21:55:55 2009 +0000 longomatch ** bacon-video-widget-gst-0.10.c: New pipeline already prerolls on open().Set play after seeking libcesarplayer/src/bacon-video-widget-gst-0.10.c | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) Wed Aug 12 00:00:46 2009 +0000 longomatch ** DB/Project.cs: Restore old fileds needed for database compatibility * DB/Sections.cs: Restore old fileds needed for database compatibility LongoMatch/DB/Project.cs | 2 ++ LongoMatch/DB/Sections.cs | 3 +++ 2 files changed, 5 insertions(+), 0 deletions(-) Tue Aug 11 23:58:47 2009 +0000 longomatch *Move all DB compatibility stuff to LongoMatch.Compat * Compat: * DB/Compat: * Compat/0.0: * Compat/0.0/DB: * DB/Compat/0.0: * LongoMatch.mdp: * Gui/Migrator.cs: * Compat/0.0/Time: * DB/Compat/0.0/DB: * DB/Compat/0.0/Time: * Compat/0.0/Playlist: * DB/Compat/0.0/Playlist: * Compat/0.0/Time/Time.cs: * Compat/0.0/DB/Project.cs: * Compat/0.0/DB/DataBase.cs: * Compat/0.0/DB/Sections.cs: * Compat/0.0/DB/MediaFile.cs: * DB/Compat/0.0/Time/Time.cs: * DB/Compat/0.0/DB/Project.cs: * Compat/0.0/Time/TimeNode.cs: * DB/Compat/0.0/DB/DataBase.cs: * DB/Compat/0.0/DB/Sections.cs: * DB/Compat/0.0/DB/MediaFile.cs: * Compat/0.0/PlayListMigrator.cs: * DB/Compat/0.0/Time/TimeNode.cs: * Compat/0.0/DatabaseMigrator.cs: * Compat/0.0/Playlist/PlayList.cs: * Compat/0.0/Time/MediaTimeNode.cs: * Compat/0.0/Playlist/IPlayList.cs: * DB/Compat/0.0/PlayListMigrator.cs: * DB/Compat/0.0/DatabaseMigrator.cs: * Compat/0.0/Time/PixbufTimeNode.cs: * DB/Compat/0.0/Playlist/PlayList.cs: * DB/Compat/0.0/Time/MediaTimeNode.cs: * DB/Compat/0.0/Playlist/IPlayList.cs: * Compat/0.0/Time/SectionsTimeNode.cs: * Compat/0.0/Time/PlayListTimeNode.cs: * DB/Compat/0.0/Time/PixbufTimeNode.cs: * DB/Compat/0.0/Time/SectionsTimeNode.cs: * DB/Compat/0.0/Time/PlayListTimeNode.cs: LongoMatch/Compat/0.0/DB/DataBase.cs | 62 ++++++ LongoMatch/Compat/0.0/DB/MediaFile.cs | 84 ++++++++ LongoMatch/Compat/0.0/DB/Project.cs | 145 +++++++++++++ LongoMatch/Compat/0.0/DB/Sections.cs | 63 ++++++ LongoMatch/Compat/0.0/DatabaseMigrator.cs | 234 +++++++++++++++++++++ LongoMatch/Compat/0.0/PlayListMigrator.cs | 77 +++++++ LongoMatch/Compat/0.0/Playlist/IPlayList.cs | 47 ++++ LongoMatch/Compat/0.0/Playlist/PlayList.cs | 171 +++++++++++++++ LongoMatch/Compat/0.0/Time/MediaTimeNode.cs | 132 ++++++++++++ LongoMatch/Compat/0.0/Time/PixbufTimeNode.cs | 60 ++++++ LongoMatch/Compat/0.0/Time/PlayListTimeNode.cs | 59 +++++ LongoMatch/Compat/0.0/Time/SectionsTimeNode.cs | 41 ++++ LongoMatch/Compat/0.0/Time/Time.cs | 139 ++++++++++++ LongoMatch/Compat/0.0/Time/TimeNode.cs | 134 ++++++++++++ LongoMatch/DB/Compat/0.0/DB/DataBase.cs | 118 ----------- LongoMatch/DB/Compat/0.0/DB/MediaFile.cs | 84 -------- LongoMatch/DB/Compat/0.0/DB/Project.cs | 185 ---------------- LongoMatch/DB/Compat/0.0/DB/Sections.cs | 150 ------------- LongoMatch/DB/Compat/0.0/DatabaseMigrator.cs | 231 -------------------- LongoMatch/DB/Compat/0.0/PlayListMigrator.cs | 77 ------- LongoMatch/DB/Compat/0.0/Playlist/IPlayList.cs | 47 ---- LongoMatch/DB/Compat/0.0/Playlist/PlayList.cs | 171 --------------- LongoMatch/DB/Compat/0.0/Time/MediaTimeNode.cs | 132 ------------ LongoMatch/DB/Compat/0.0/Time/PixbufTimeNode.cs | 60 ------ LongoMatch/DB/Compat/0.0/Time/PlayListTimeNode.cs | 59 ----- LongoMatch/DB/Compat/0.0/Time/SectionsTimeNode.cs | 41 ---- LongoMatch/DB/Compat/0.0/Time/Time.cs | 139 ------------ LongoMatch/DB/Compat/0.0/Time/TimeNode.cs | 134 ------------ LongoMatch/Gui/Migrator.cs | 2 +- LongoMatch/LongoMatch.mdp | 38 ++-- 30 files changed, 1467 insertions(+), 1649 deletions(-) Tue Aug 11 21:50:48 2009 +0000 longomatch *Change app.desktop to longomatch.desktop * LongoMatch.mds: * LongoMatch/Makefile.am: * LongoMatch/LongoMatch.mdp: * LongoMatch/longomatch.desktop: * LongoMatch/app.desktop: LongoMatch.mds | 8 ++++---- LongoMatch/LongoMatch.mdp | 2 +- LongoMatch/Makefile.am | 4 ++-- LongoMatch/app.desktop | 10 ---------- LongoMatch/longomatch.desktop | 10 ++++++++++ 5 files changed, 17 insertions(+), 17 deletions(-) Tue Aug 11 13:48:00 2009 +0000 longomatch ** LongoMatch/Main.cs:Launches DataBase migration tool. Add more info in crash reports * LongoMatch/LongoMatch.mdp: * LongoMatch/Gui/Migrator.cs:New Migration Dialog * LongoMatch/gtk-gui/gui.stetic: * LongoMatch/Gui/MessagePopup.cs: * LongoMatch/Handlers/Handlers.cs: New delegate for migration events * LongoMatch/Gui/FileDescriptionWidget.cs: * LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs: LongoMatch/Gui/FileDescriptionWidget.cs | 8 +- LongoMatch/Gui/MessagePopup.cs | 2 +- LongoMatch/Gui/Migrator.cs | 52 ++++++++++++ LongoMatch/Handlers/Handlers.cs | 2 + LongoMatch/LongoMatch.mdp | 26 +++--- LongoMatch/Main.cs | 36 +++++++-- .../gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs | 89 ++++++++++++++++++++ LongoMatch/gtk-gui/gui.stetic | 76 +++++++++++++++++ 8 files changed, 266 insertions(+), 25 deletions(-) Tue Aug 11 13:46:21 2009 +0000 longomatch ** DataBase.cs: Fixes projects queries LongoMatch/DB/DataBase.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Tue Aug 11 13:45:28 2009 +0000 longomatch ** DatabaseMigrator.cs: Successfully migrates to new database LongoMatch/DB/Compat/0.0/DatabaseMigrator.cs | 155 ++++++++++++++++++++------ 1 files changed, 123 insertions(+), 32 deletions(-) Tue Aug 11 13:41:04 2009 +0000 longomatch *Change namespace to LongoMatch.DB.Compat.v00.** * Time/Time.cs: * DB/Project.cs: * DB/DataBase.cs: * DB/Sections.cs: * DB/MediaFile.cs: * Time/TimeNode.cs: * PlayListMigrator.cs: * Playlist/PlayList.cs: * Time/MediaTimeNode.cs: * Playlist/IPlayList.cs: * Time/PixbufTimeNode.cs: * Time/PlayListTimeNode.cs: * Time/SectionsTimeNode.cs: LongoMatch/DB/Compat/0.0/DB/DataBase.cs | 165 +++++---------------- LongoMatch/DB/Compat/0.0/DB/MediaFile.cs | 4 +- LongoMatch/DB/Compat/0.0/DB/Project.cs | 4 +- LongoMatch/DB/Compat/0.0/DB/Sections.cs | 4 +- LongoMatch/DB/Compat/0.0/PlayListMigrator.cs | 12 +- LongoMatch/DB/Compat/0.0/Playlist/IPlayList.cs | 4 +- LongoMatch/DB/Compat/0.0/Playlist/PlayList.cs | 4 +- LongoMatch/DB/Compat/0.0/Time/MediaTimeNode.cs | 2 +- LongoMatch/DB/Compat/0.0/Time/PixbufTimeNode.cs | 2 +- LongoMatch/DB/Compat/0.0/Time/PlayListTimeNode.cs | 2 +- LongoMatch/DB/Compat/0.0/Time/SectionsTimeNode.cs | 2 +- LongoMatch/DB/Compat/0.0/Time/Time.cs | 2 +- LongoMatch/DB/Compat/0.0/Time/TimeNode.cs | 2 +- 13 files changed, 57 insertions(+), 152 deletions(-) Sun Aug 9 11:42:27 2009 +0000 longomatch ** LongoMatch.mds: * LongoMatch/LongoMatch.mdp: * LongoMatch/Gui/MessagePoupcs.cs: * LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs: LongoMatch.mds | 6 +- LongoMatch/Gui/FileDescriptionWidget.cs | 56 +++++++++++--------- LongoMatch/Gui/MessagePopup.cs | 50 +++++++++++++++++ LongoMatch/Gui/MessagePoupcs.cs | 49 ----------------- LongoMatch/LongoMatch.mdp | 2 +- .../LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs | 2 +- 6 files changed, 85 insertions(+), 80 deletions(-) Sat Aug 8 00:03:35 2009 +0000 longomatch ** gtk-gui/gui.stetic: Update label LongoMatch/gtk-gui/gui.stetic | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Fri Aug 7 23:55:16 2009 +0000 longomatch ** Time/HotKey.cs: Do not use AltGr * Gui/HotKeySelectorDialog.cs: Do not use AltGr LongoMatch/Gui/HotKeySelectorDialog.cs | 10 ++++++---- LongoMatch/Time/HotKey.cs | 2 -- 2 files changed, 6 insertions(+), 6 deletions(-) Fri Aug 7 23:35:24 2009 +0000 longomatch ** messages.po: Update messages Translations/Translations.mdse | 1 - Translations/fr.po | 737 ++++++++++++++++++++++++++++++++++++++++ Translations/messages.po | 95 +++--- 3 files changed, 792 insertions(+), 41 deletions(-) Fri Aug 7 23:23:01 2009 +0000 longomatch ** Translations/es.po: Update Spanish translation Translations/es.po | 168 +++++++++++++++++++++++++++------------------------ 1 files changed, 89 insertions(+), 79 deletions(-) Fri Aug 7 23:15:52 2009 +0000 longomatch ** LongoMatch/Main.cs: Close missing parentesis ChangeLog | 55 +++++++++++++++++++++++++++++++++++++-------------- LongoMatch/Main.cs | 2 +- 2 files changed, 41 insertions(+), 16 deletions(-) Fri Aug 7 20:48:44 2009 +0000 longomatch *Remove the link. Must try to fix the markup for the pango layout LongoMatch/Main.cs | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) Fri Aug 7 20:45:00 2009 +0000 longomatch *Update Win32 build scripts Makefile.win32 | 32 +++++++++++--------------------- makeBundle.sh | 2 +- 2 files changed, 12 insertions(+), 22 deletions(-) Fri Aug 7 20:44:26 2009 +0000 longomatch *Update CesarPlayer project CesarPlayer/CesarPlayer.csproj | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) Fri Aug 7 20:43:17 2009 +0000 longomatch *force export symbols for win32 systems using the EXPORT define libcesarplayer/src/bacon-video-widget.h | 165 +++++++++++++------------------ 1 files changed, 69 insertions(+), 96 deletions(-) Fri Aug 7 20:37:19 2009 +0000 longomatch *Win32 doesn't accept : in file path LongoMatch/Main.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Fri Aug 7 19:50:36 2009 +0000 longomatch *Update SharpDevelop project LongoMatch/LongoMatch.csproj | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Fri Aug 7 19:38:49 2009 +0000 longomatch *ibcesarplayer\src\bacon-video-widget.h: define GNU_C_CONST for get_type() libcesarplayer\src\bacon-video-widget-gst-0.10.c: add stop() missing method libcesarplayer\src\video-utils.c: GDK_BLANK_CURSOR does not exists yet in the win32 version of gdk libcesarplayer/src/bacon-video-widget-gst-0.10.c | 21 +++++++++++++++++++++ libcesarplayer/src/bacon-video-widget.h | 2 +- libcesarplayer/src/video-utils.c | 7 +++++-- 3 files changed, 27 insertions(+), 3 deletions(-) Fri Aug 7 19:22:23 2009 +0000 longomatch ** bacon-video-widget-gst-0.10.c: Port to Win32 Where XID is HWND libcesarplayer/src/bacon-video-widget-gst-0.10.c | 21 +++++++++++---------- 1 files changed, 11 insertions(+), 10 deletions(-) Fri Aug 7 17:53:10 2009 +0000 longomatch *Adds support to draw the last frame captured * LongoMatch/gtk-gui/gui.stetic: * LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs: CesarPlayer/Handlers/Handlers.cs | 3 +- CesarPlayer/Utils/FramesCapturer.cs | 11 +++--- LongoMatch/Gui/FramesCaptureProgressDialog.cs | 14 +++++++- ...Match.Gui.Dialog.FramesCaptureProgressDialog.cs | 39 ++++++++++++-------- LongoMatch/gtk-gui/gui.stetic | 12 ++++++- 5 files changed, 56 insertions(+), 23 deletions(-) Fri Aug 7 17:00:35 2009 +0000 longomatch ** Main.cs: Add bug report link LongoMatch/Main.cs | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) Fri Aug 7 16:54:08 2009 +0000 longomatch ** Main.cs: Catch GLib Exceptions to generate crash reports LongoMatch/Main.cs | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) Fri Aug 7 16:46:25 2009 +0000 longomatch ** PlayList.cs: Refactoring. Add method to get the actual version of the playlist LongoMatch/Playlist/PlayList.cs | 60 ++++++++++++++++++++------------------- 1 files changed, 31 insertions(+), 29 deletions(-) Fri Aug 7 16:13:30 2009 +0000 longomatch ** Gui/TimeAdjustWidget.cs: Remove unused sentence LongoMatch/Gui/TimeAdjustWidget.cs | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) Fri Aug 7 15:32:42 2009 +0000 longomatch ** gtk-gui/gui.stetic: * gtk-gui/LongoMatch.Gui.Dialog.DBManager.cs: LongoMatch/Gui/DBManager.cs | 36 +++++++----- LongoMatch/Gui/ProjectListWidget.cs | 9 +++- .../gtk-gui/LongoMatch.Gui.Dialog.DBManager.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 63 ++++++++++++++++++-- 4 files changed, 88 insertions(+), 22 deletions(-) Fri Aug 7 15:27:13 2009 +0000 longomatch ** Gui/TimeAdjustWidget.cs: Remove unused prints LongoMatch/Gui/TimeAdjustWidget.cs | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) Fri Aug 7 13:51:24 2009 +0000 longomatch ** gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs: Enable projects search LongoMatch/Gui/ProjectListWidget.cs | 103 +++++++++++++------- .../LongoMatch.Gui.Component.ProjectListWidget.cs | 49 +++++++++- 2 files changed, 116 insertions(+), 36 deletions(-) Fri Aug 7 13:48:54 2009 +0000 longomatch ** Gui/FileDescriptionWidget.cs: Use the Date property to set the date. LongoMatch/Gui/FileDescriptionWidget.cs | 21 ++++++++------------- 1 files changed, 8 insertions(+), 13 deletions(-) Fri Aug 7 13:45:10 2009 +0000 longomatch ** Gui/NewProjectDialog.cs: Use Clear to set-up properly the date entry LongoMatch/Gui/NewProjectDialog.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Fri Aug 7 13:44:23 2009 +0000 longomatch ** Tag.cs: Fix GetHashCode() LongoMatch/DB/Tag.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Fri Aug 7 13:40:28 2009 +0000 longomatch ** DB/TagsTemplate.cs: Implement AddTag() and RemoveTag() LongoMatch/DB/TagsTemplate.cs | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) Fri Aug 7 13:37:23 2009 +0000 longomatch ** MultimediaFactory.cs: The thumbnailer must be GstUseType.Capture CesarPlayer/MultimediaFactory.cs | 6 ++-- CesarPlayer/Utils/IFramesCapturer.cs | 1 + CesarPlayer/Utils/MediaFile.cs | 53 ++++++++++++++++++++++++++++++--- 3 files changed, 52 insertions(+), 8 deletions(-) Fri Aug 7 13:34:53 2009 +0000 longomatch ** AvidemuxMerger.cs:Remove unused prints * MatroskaMerger.cs: Remove unused prints CesarPlayer/Editor/AvidemuxMerger.cs | 1 - CesarPlayer/Editor/MatroskaMerger.cs | 1 - 2 files changed, 0 insertions(+), 2 deletions(-) Fri Aug 7 08:22:37 2009 +0000 longomatch ** LongoMatch.mdp: Add tag.cs and TagsTemplate.cs LongoMatch/DB/Tag.cs | 56 +++++++++++++++++++++++++++++++++++++++++ LongoMatch/DB/TagsTemplate.cs | 40 +++++++++++++++++++++++++++++ LongoMatch/LongoMatch.mdp | 2 + 3 files changed, 98 insertions(+), 0 deletions(-) Fri Aug 7 08:02:53 2009 +0000 longomatch ** bacon-video-widget-gst-0.10.c: Draw logo wihout scaling compositing borders libcesarplayer/src/bacon-video-widget-gst-0.10.c | 60 ++++++++++++++++++++-- 1 files changed, 55 insertions(+), 5 deletions(-) Thu Aug 6 18:04:23 2009 +0000 longomatch *Migrating backend to Playbin2 and refactor GstPlayer CesarPlayer/CesarPlayer.mdp | 7 +- CesarPlayer/Gui/PlayerBin.cs | 38 +- CesarPlayer/Gui/VolumeWindow.cs | 10 +- CesarPlayer/Handlers/Handlers.cs | 2 +- CesarPlayer/Handlers/StateChangedHandler.cs | 4 +- CesarPlayer/MultimediaFactory.cs | 18 +- CesarPlayer/Player/GstAspectRatio.cs | 19 + CesarPlayer/Player/GstAudioOutType.cs | 20 + CesarPlayer/Player/GstDVDEvent.cs | 31 + CesarPlayer/Player/GstError.cs | 37 + CesarPlayer/Player/GstMetadataType.cs | 33 + CesarPlayer/Player/GstPlayer.cs | 2366 +++++++++++--------- CesarPlayer/Player/GstUseType.cs | 52 +- CesarPlayer/Player/GstVideoProperty.cs | 18 + CesarPlayer/Player/IPlayer.cs | 35 +- CesarPlayer/Utils/FramesCapturer.cs | 2 +- CesarPlayer/Utils/IFramesCapturer.cs | 2 +- CesarPlayer/Utils/IMetadataReader.cs | 3 +- CesarPlayer/Utils/MediaFile.cs | 20 +- CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs | 1 - CesarPlayer/gtk-gui/LongoMatch.Gui.VolumeWindow.cs | 6 +- CesarPlayer/gtk-gui/gui.stetic | 7 +- CesarPlayer/gtk-gui/objects.xml | 1 - LongoMatch/Gui/MainWindow.cs | 2 +- libcesarplayer/src/bacon-video-widget-gst-0.10.c | 59 +- libcesarplayer/src/bacon-video-widget.h | 11 +- libcesarplayer/src/sources.gapi | 7 +- 27 files changed, 1649 insertions(+), 1162 deletions(-) Thu Aug 6 18:01:25 2009 +0000 longomatch ** Gui/FileDescriptionWidget.cs: LongoMatch/Gui/FileDescriptionWidget.cs | 32 +++++++++++-------- LongoMatch/Main.cs | 4 ++- ...LongoMatch.Gui.Dialog.VideoEditionProperties.cs | 6 ++-- 3 files changed, 24 insertions(+), 18 deletions(-) Thu Aug 6 13:21:45 2009 +0000 longomatch ** GstPlayer.cs: Change type to Gtk.Widget CesarPlayer/Player/GstPlayer.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Thu Aug 6 12:30:31 2009 +0000 longomatch *Updated totem-like backend to use playbin2 * src/video-utils.c: * src/video-utils.h: * liblongomatch.mdp: * src/bacon-resize.h: * src/bacon-resize.c: * src/gstscreenshot.h: * src/gstscreenshot.c: * src/bacon-video-widget.h: * src/bacon-video-widget-gst-0.10.c: libcesarplayer/liblongomatch.mdp | 6 +- libcesarplayer/src/bacon-resize.c | 334 +++ libcesarplayer/src/bacon-resize.h | 55 + libcesarplayer/src/bacon-video-widget-gst-0.10.c | 3051 +++++++++++++++++----- libcesarplayer/src/bacon-video-widget.h | 374 ++- libcesarplayer/src/gstscreenshot.c | 398 ++-- libcesarplayer/src/gstscreenshot.h | 19 +- libcesarplayer/src/video-utils.c | 239 ++ libcesarplayer/src/video-utils.h | 20 + 9 files changed, 3502 insertions(+), 994 deletions(-) Wed Aug 5 20:57:46 2009 +0000 longomatch ** gtk-gui/gui.stetic:Change format descriptions adding audio info * Gui/VideoEditionProperties.cs: Change format descriptions adding audio info * Gui/PlayListWidget.cs: Change format descriptions adding audio info Create a new instance of the Editor to enable/disable audio until the problem is fixed in the video editor itself LongoMatch/Gui/PlayListWidget.cs | 25 +++++++++++++++++-------- LongoMatch/Gui/VideoEditionProperties.cs | 12 ++++++------ LongoMatch/gtk-gui/gui.stetic | 6 +++--- 3 files changed, 26 insertions(+), 17 deletions(-) Wed Aug 5 20:46:27 2009 +0000 longomatch ** gst-video-editor.c: Enable-Audio property working. libcesarplayer/src/gst-video-editor.c | 57 +++++++++++++++++++++++++++------ 1 files changed, 47 insertions(+), 10 deletions(-) Wed Aug 5 15:11:32 2009 +0000 longomatch ** Handlers/EventsManager.cs: Delete plays also from the players tree on a delete event LongoMatch/Handlers/EventsManager.cs | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-) Wed Aug 5 15:02:08 2009 +0000 longomatch ** gtk-gui/gui.stetic: Change logo path LongoMatch/Main.cs | 14 ++++++-------- LongoMatch/gtk-gui/gui.stetic | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) Wed Aug 5 12:29:17 2009 +0000 longomatch ** libcesarplayer/liblongomatch.mdp: CesarPlayer/Makefile.am | 20 +++---- CesarPlayer/Makefile.in | 72 ++++++++++++++++--------- LongoMatch/Makefile.am | 60 +++++++++++++-------- LongoMatch/Makefile.in | 111 +++++++++++++++++++++++++------------ LongoMatch/gtk-gui/generated.cs | 2 +- Makefile.include | 6 ++- Translations/Makefile.am | 1 + Translations/Makefile.in | 49 +++++++++++++---- libcesarplayer/liblongomatch.mdp | 4 +- libcesarplayer/src/Makefile.am | 7 +-- libcesarplayer/src/Makefile.in | 13 ++--- 11 files changed, 217 insertions(+), 128 deletions(-) Wed Aug 5 12:24:41 2009 +0000 longomatch ** gst-video-editor.c: Remove warnings libcesarplayer/src/gst-video-editor.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) Tue Aug 4 23:20:36 2009 +0000 longomatch ** LongoMatch.mdp: Added deployment of logo 48x48 LongoMatch/LongoMatch.mdp | 1 + LongoMatch/images/logo_48x48.png | Bin 0 -> 4965 bytes 2 files changed, 1 insertions(+), 0 deletions(-) Tue Aug 4 22:42:44 2009 +0000 longomatch ** LongoMatch.mds: Update main solution LongoMatch.mds | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Tue Aug 4 22:40:44 2009 +0000 longomatch ** liblongomatch.mdp: * src/gst-video-editor.c: Add caps filter for audio and define specifics caps or each audio encoder libcesarplayer/liblongomatch.mdp | 4 ++-- libcesarplayer/src/gst-video-editor.c | 30 ++++++++++++++++++++---------- 2 files changed, 22 insertions(+), 12 deletions(-) Tue Aug 4 22:08:00 2009 +0000 longomatch ** gst-video-editor.h:Add audio support * gst-video-editor.c: Add audio support and fixes progress/time timeout libcesarplayer/src/gst-video-editor.c | 319 ++++++++++++++++++++++++++++----- libcesarplayer/src/gst-video-editor.h | 2 +- 2 files changed, 278 insertions(+), 43 deletions(-) Tue Aug 4 21:37:13 2009 +0000 longomatch ** Gui/PlayListWidget.cs: The video editor needs now to know if a segment contains audio or not LongoMatch/Gui/PlayListWidget.cs | 15 ++++++++------- 1 files changed, 8 insertions(+), 7 deletions(-) Tue Aug 4 20:14:56 2009 +0000 longomatch *Need to know if segment contains audio * IVideoEditor.cs: * VideoSegment.cs: * GnonlinEditor.cs: * IVideoSplitter.cs: * GstVideoSplitter.cs: CesarPlayer/Editor/GnonlinEditor.cs | 6 ++-- CesarPlayer/Editor/GstVideoSplitter.cs | 46 ++++++++++++++++---------------- CesarPlayer/Editor/IVideoEditor.cs | 2 +- CesarPlayer/Editor/IVideoSplitter.cs | 2 +- CesarPlayer/Editor/VideoSegment.cs | 8 +++++- 5 files changed, 35 insertions(+), 29 deletions(-) Tue Aug 4 14:40:28 2009 +0000 longomatch *Rename gst-video-splitter to gst-video-editor. * gst-video-editor.c: * gst-video-editor.h: * gst-video-splitter.c: * gst-video-splitter.h: libcesarplayer/src/gst-video-editor.c | 981 ++++++++++++++++++++++++++++++ libcesarplayer/src/gst-video-editor.h | 109 ++++ libcesarplayer/src/gst-video-splitter.c | 984 ------------------------------- libcesarplayer/src/gst-video-splitter.h | 109 ---- 4 files changed, 1090 insertions(+), 1093 deletions(-) Tue Aug 4 14:33:54 2009 +0000 longomatch ** gst-video-splitter.c: Use bin for the encoding tail for better handling libcesarplayer/src/gst-video-splitter.c | 145 +++++++++++++++++++++---------- 1 files changed, 100 insertions(+), 45 deletions(-) Tue Aug 4 13:39:02 2009 +0000 longomatch ** LongoMatch/Makefile.am:use $(GMCS) from autoconf * CesarPlayer/Makefile.am:use $(GMCS) from autoconf * libcesarplayer/src/gst-video-splitter.c: Use proportianal ont size for text overlay. Fix some gchar management CesarPlayer/Makefile.am | 4 +- LongoMatch/Makefile.am | 4 +- libcesarplayer/src/gst-video-splitter.c | 34 ++++++++++++++++-------------- 3 files changed, 22 insertions(+), 20 deletions(-) Mon Aug 3 23:18:32 2009 +0000 longomatch ** LongoMatch/LongoMatch.mdp: Moved migrator to v00 * CesarPlayer/MultimediaFactory.cs:Use GstVideoSplitter to edit * libcesarplayer/src/gst-video-splitter.c: Fixes file change. On EOS the filesink need to be setted to GST_STATE_NULL to close properly the file CesarPlayer/MultimediaFactory.cs | 2 +- LongoMatch/LongoMatch.mdp | 3 ++- libcesarplayer/src/gst-video-splitter.c | 23 ++++++++++++++--------- 3 files changed, 17 insertions(+), 11 deletions(-) Mon Aug 3 22:30:39 2009 +0000 longomatch ** gst-video-splitter.c: Use of videobox to avoid renegotiation before the encoder libcesarplayer/src/gst-video-splitter.c | 34 ++++++++++++------------------ 1 files changed, 14 insertions(+), 20 deletions(-) Sun Aug 2 18:04:00 2009 +0000 longomatch ** PlayList.cs: Fix compilation issue LongoMatch/Playlist/PlayList.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sun Aug 2 18:02:41 2009 +0000 longomatch ** Compat/0.0/PlayListMigrator.cs: Added Play List Migrator * Compat/0.0/Playlist/PlayList.cs: * Compat/0.0/Playlist/IPlayList.cs: LongoMatch/DB/Compat/0.0/PlayListMigrator.cs | 77 ++++++++++++++++++++++++ LongoMatch/DB/Compat/0.0/Playlist/IPlayList.cs | 2 +- LongoMatch/DB/Compat/0.0/Playlist/PlayList.cs | 2 +- 3 files changed, 79 insertions(+), 2 deletions(-) Sun Aug 2 17:31:27 2009 +0000 longomatch ** Compat/DatabaseMigrator.cs: * Compat/0.0/DatabaseMigrator.cs: Moved to 0.0 LongoMatch/DB/Compat/0.0/DatabaseMigrator.cs | 140 ++++++++++++++++++++++++++ LongoMatch/DB/Compat/DatabaseMigrator.cs | 140 -------------------------- 2 files changed, 140 insertions(+), 140 deletions(-) Sun Aug 2 17:28:53 2009 +0000 longomatch ** LongoMatch.mdp: * Playlist/PlayList.cs: Check if Playlist file is valid on load * DB/Compat/0.0/Playlist: Added for compat * DB/Compat/0.0/Playlist/PlayList.cs: Added for compat * DB/Compat/0.0/Playlist/IPlayList.cs: Added for compat LongoMatch/DB/Compat/0.0/Playlist/IPlayList.cs | 47 +++++++ LongoMatch/DB/Compat/0.0/Playlist/PlayList.cs | 171 ++++++++++++++++++++++++ LongoMatch/LongoMatch.mdp | 2 + LongoMatch/Playlist/PlayList.cs | 11 ++- 4 files changed, 229 insertions(+), 2 deletions(-) Sun Aug 2 17:21:05 2009 +0000 longomatch ** es.po:Update spanish translation * messages.po: Update messages Translations/es.po | 394 ++++++++++++++++++++++++++++++---------------- Translations/messages.po | 366 ++++++++++++++++++++++++++++--------------- 2 files changed, 498 insertions(+), 262 deletions(-) Sun Aug 2 17:17:50 2009 +0000 longomatch ** src/gst-video-splitter.c: Code Clean-Up, Use Smart Video Scaler * src/gst-smart-video-scaler.c: Code Clean-up libcesarplayer/src/gst-smart-video-scaler.c | 32 ++- libcesarplayer/src/gst-video-splitter.c | 405 +++++++++++---------------- 2 files changed, 191 insertions(+), 246 deletions(-) Sun Aug 2 14:19:47 2009 +0000 longomatch ** FramesCapturer.cs: Create its own instance of IFramesCapturer to avoid threading issues CesarPlayer/Utils/FramesCapturer.cs | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) Fri Jul 31 18:38:05 2009 +0000 longomatch ** gtk-gui/gui.stetic: * Handlers/EventsManager.cs: * Gui/FramesCaptureProgressDialog.cs: Create another instance of the video player to avoid threading issues LongoMatch/Gui/FramesCaptureProgressDialog.cs | 6 ++---- LongoMatch/Handlers/EventsManager.cs | 9 +++------ LongoMatch/gtk-gui/gui.stetic | 2 +- 3 files changed, 6 insertions(+), 11 deletions(-) Fri Jul 31 17:37:35 2009 +0000 longomatch ** gst-video-splitter.c: Add ffmpeg colorspace converter libcesarplayer/src/gst-video-splitter.c | 42 +++++++++++++----------------- 1 files changed, 18 insertions(+), 24 deletions(-) Fri Jul 31 15:34:55 2009 +0000 longomatch ** LongoMatch.mds: Main solution updated LongoMatch.mds | 10 +++------- 1 files changed, 3 insertions(+), 7 deletions(-) Fri Jul 31 15:32:41 2009 +0000 longomatch ** Main.cs: Init the db after checking folders * LongoMatch.mdp: Added compat folder LongoMatch/LongoMatch.mdp | 13 +++++++++++++ LongoMatch/Main.cs | 12 ++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) Fri Jul 31 15:31:24 2009 +0000 longomatch ** DataBase.cs: Add versioning support * TeamTemplate.cs: Added static method to get a default template LongoMatch/DB/DataBase.cs | 37 ++++++++++++++----------------------- LongoMatch/DB/TeamTemplate.cs | 6 ++++++ 2 files changed, 20 insertions(+), 23 deletions(-) Fri Jul 31 15:30:35 2009 +0000 longomatch *DataBase migrator and compat files for v0.0 * .: * 0.0: * 0.0/DB: * 0.0/Time: * 0.0/Time/Time.cs: * 0.0/DB/Project.cs: * 0.0/DB/DataBase.cs: * 0.0/DB/Sections.cs: * 0.0/DB/MediaFile.cs: * DatabaseMigrator.cs: * 0.0/Time/TimeNode.cs: * 0.0/Time/MediaTimeNode.cs: * 0.0/Time/PixbufTimeNode.cs: * 0.0/Time/SectionsTimeNode.cs: * 0.0/Time/PlayListTimeNode.cs: LongoMatch/DB/Compat/0.0/DB/DataBase.cs | 213 +++++++++++++++++++++ LongoMatch/DB/Compat/0.0/DB/MediaFile.cs | 84 ++++++++ LongoMatch/DB/Compat/0.0/DB/Project.cs | 185 ++++++++++++++++++ LongoMatch/DB/Compat/0.0/DB/Sections.cs | 150 +++++++++++++++ LongoMatch/DB/Compat/0.0/Time/MediaTimeNode.cs | 132 +++++++++++++ LongoMatch/DB/Compat/0.0/Time/PixbufTimeNode.cs | 60 ++++++ LongoMatch/DB/Compat/0.0/Time/PlayListTimeNode.cs | 59 ++++++ LongoMatch/DB/Compat/0.0/Time/SectionsTimeNode.cs | 41 ++++ LongoMatch/DB/Compat/0.0/Time/Time.cs | 139 ++++++++++++++ LongoMatch/DB/Compat/0.0/Time/TimeNode.cs | 134 +++++++++++++ LongoMatch/DB/Compat/DatabaseMigrator.cs | 140 ++++++++++++++ 11 files changed, 1337 insertions(+), 0 deletions(-) Fri Jul 31 14:49:00 2009 +0000 longomatch ** MediaFile.cs: (Revert revision 908) CesarPlayer/Utils/MediaFile.cs | 51 ++++++++++++++++++---------------------- 1 files changed, 23 insertions(+), 28 deletions(-) Fri Jul 31 14:11:41 2009 +0000 longomatch ** MediaFile.cs: If the file doesn't exists we return o MediaFile with all the properties resetted CesarPlayer/Utils/MediaFile.cs | 51 ++++++++++++++++++++++------------------ 1 files changed, 28 insertions(+), 23 deletions(-) Fri Jul 31 12:00:56 2009 +0000 longomatch *Delete unused Test dir. Move the debian packaging folder to Build TEST/TEST.csproj | 79 --------------- TEST/main.cs | 60 ----------- TEST2/Main.c | 63 ------------ TEST2/TEST2.mdp | 26 ----- debian/autotools.mk | 40 -------- debian/changelog | 11 -- debian/control | 12 -- debian/copyright | 35 ------- debian/debhelper.mk | 278 --------------------------------------------------- debian/rules | 3 - 10 files changed, 0 insertions(+), 607 deletions(-) Fri Jul 31 11:53:05 2009 +0000 longomatch ** Build: New dir for distributions build files CesarPlayer/Makefile.in | 133 +- LongoMatch.mds | 10 +- LongoMatch/Makefile.in | 146 +- Makefile.in | 12 +- Makefile.include | 72 +- Translations/Makefile.in | 81 +- aclocal.m4 | 273 ++- configure | 4167 ++++++++++++++++++++------------------ configure.ac | 5 +- libcesarplayer/Makefile.in | 17 +- libcesarplayer/liblongomatch.mdp | 4 +- libcesarplayer/src/Makefile.am | 4 + libcesarplayer/src/Makefile.in | 24 +- m4/libtool.m4 | 128 +- m4/ltoptions.m4 | 2 +- m4/ltsugar.m4 | 20 +- m4/ltversion.m4 | 10 +- 17 files changed, 2845 insertions(+), 2263 deletions(-) Fri Jul 31 11:49:43 2009 +0000 longomatch ** gst-smart-video-scaler.c: Smart Videoscaler for the Video Editor * gst-smart-video-scaler.h: Smart Videoscaler for the Video Editor libcesarplayer/src/gst-smart-video-scaler.c | 275 +++++++++++++++++++++++++++ libcesarplayer/src/gst-smart-video-scaler.h | 63 ++++++ 2 files changed, 338 insertions(+), 0 deletions(-) Fri Jul 31 11:46:07 2009 +0000 longomatch ** GnonlinEditor.cs: Remove unused variables CesarPlayer/Editor/GnonlinEditor.cs | 7 +------ 1 files changed, 1 insertions(+), 6 deletions(-) Fri Jul 31 11:45:38 2009 +0000 longomatch ** FramesCapturer.cs: Remove unused variables CesarPlayer/Utils/FramesCapturer.cs | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) Fri Jul 31 11:45:15 2009 +0000 longomatch ** gtk-gui/gui.stetic: change logo path * gtk-gui/generated.cs: change logo path LongoMatch/gtk-gui/generated.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) Fri Jul 31 11:44:13 2009 +0000 longomatch ** DataBase.cs: Add version info to the db for backward compatibility LongoMatch/DB/DataBase.cs | 80 ++++++++++++++++++++++++++++---------------- 1 files changed, 51 insertions(+), 29 deletions(-) Wed Jul 29 16:39:38 2009 +0000 longomatch ** MediaFile.cs: Add void public constructor to allow serialization CesarPlayer/Utils/MediaFile.cs | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Wed Jul 29 15:47:13 2009 +0000 longomatch ** Main.cs: Plays list are stored in the home dir LongoMatch/Main.cs | 10 ++++------ 1 files changed, 4 insertions(+), 6 deletions(-) Wed Jul 29 15:46:39 2009 +0000 longomatch ** MainWindow.cs: Do not load the project if there is an Exception LongoMatch/Gui/MainWindow.cs | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-) Wed Jul 29 15:45:36 2009 +0000 longomatch ** Project.cs: Fix get models LongoMatch/DB/Project.cs | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Wed Jul 29 15:41:34 2009 +0000 longomatch ** Editor/GnonlinEditor.cs: Changes for new IVideoSplitter * Editor/IVideoSplitter.cs: Use porperties to change codecs and muxers * Editor/GstVideoSplitter.cs: Implements IVideoEditor CesarPlayer/Editor/GnonlinEditor.cs | 24 +++------- CesarPlayer/Editor/GstVideoSplitter.cs | 77 ++++++++++++++++++++++++++++++-- CesarPlayer/Editor/IVideoSplitter.cs | 12 ++++- 3 files changed, 88 insertions(+), 25 deletions(-) Wed Jul 29 15:12:54 2009 +0000 longomatch ** src/gst-video-splitter.h: Enable edition of multiple segments * src/gst-video-splitter.c: Enable edition of multiple segments libcesarplayer/src/gst-video-splitter.c | 175 ++++++++++++++++++++++++++----- libcesarplayer/src/gst-video-splitter.h | 4 +- 2 files changed, 152 insertions(+), 27 deletions(-) Tue Jul 28 10:28:20 2009 +0000 longomatch ** Gui/PlayerBin.cs: * Utils/MediaFile.cs: * Editor/ConcatMerger.cs: * Editor/GenericMerger.cs: * Editor/GnonlinEditor.cs: * Editor/GstVideoSplitter.cs: CesarPlayer/Editor/ConcatMerger.cs | 2 -- CesarPlayer/Editor/GenericMerger.cs | 2 +- CesarPlayer/Editor/GnonlinEditor.cs | 2 +- CesarPlayer/Editor/GstVideoSplitter.cs | 12 +++++++++--- CesarPlayer/Gui/PlayerBin.cs | 5 ++--- CesarPlayer/Utils/MediaFile.cs | 3 ++- 6 files changed, 15 insertions(+), 11 deletions(-) Tue Jul 28 10:27:01 2009 +0000 longomatch ** Main.cs: * DB/Project.cs: * Playlist/PlayList.cs: Use MediaFile object to set the file to use * Gui/PlayListWidget.cs: * Gui/PlayersTreeView.cs: * Gui/PlayListTreeView.cs: Use MediaFile object to set the file to use * Time/PlayListTimeNode.cs: Use MediaFile object to set the file to use * Gui/TimeNodesTreeView.cs: Use MediaFile object to set the file to use * Handlers/EventsManager.cs: Use MediaFile object to set the file to use * Gui/SectionsPropertiesWidget.cs: LongoMatch/DB/Project.cs | 1 - LongoMatch/Gui/PlayListTreeView.cs | 2 +- LongoMatch/Gui/PlayListWidget.cs | 2 +- LongoMatch/Gui/PlayersTreeView.cs | 4 ++-- LongoMatch/Gui/SectionsPropertiesWidget.cs | 2 +- LongoMatch/Gui/TimeNodesTreeView.cs | 1 - LongoMatch/Handlers/EventsManager.cs | 4 ++-- LongoMatch/Main.cs | 4 ++-- LongoMatch/Playlist/PlayList.cs | 2 +- LongoMatch/Time/PlayListTimeNode.cs | 24 ++++++++++-------------- 10 files changed, 20 insertions(+), 26 deletions(-) Mon Jul 20 09:13:51 2009 +0000 longomatch ** Makefile.am: * CesarPlayer.mdp: * Editor/IMerger.cs: * MultimediaFactory.cs: Use avidemux to merge segments * Editor/GnonlinEditor.cs: Added plugin missing error handling * Editor/GenericMerger.cs: Added plugin missing error handling * Editor/IVideoSplitter.cs: Added plugin missing error handling * Editor/MatroskaMerger.cs: Added plugin missing error handling * Editor/AvidemuxMerger.cs: Added plugin missing error handling * Editor/GstVideoSplitter.cs: Added plugin missing error handling * Editor/MencoderVideoEditor.cs: Moved from LongoMatch and renamed (old FFMPEGVideoEditor) CesarPlayer/CesarPlayer.mdp | 1 + CesarPlayer/Editor/AvidemuxMerger.cs | 80 ++++++++++ CesarPlayer/Editor/GenericMerger.cs | 25 ++- CesarPlayer/Editor/GnonlinEditor.cs | 53 +++++-- CesarPlayer/Editor/GstVideoSplitter.cs | 27 +++- CesarPlayer/Editor/IMerger.cs | 10 +- CesarPlayer/Editor/IVideoSplitter.cs | 6 +- CesarPlayer/Editor/MatroskaMerger.cs | 13 +- CesarPlayer/Editor/MencoderVideoEditor.cs | 231 +++++++++++++++++++++++++++++ CesarPlayer/Makefile.am | 56 +++++-- CesarPlayer/MultimediaFactory.cs | 15 +- 11 files changed, 449 insertions(+), 68 deletions(-) Mon Jul 20 09:11:06 2009 +0000 longomatch ** PlayerBin.cs: Remove comments CesarPlayer/Gui/PlayerBin.cs | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) Mon Jul 20 09:10:17 2009 +0000 longomatch ** gst-video-splitter.h: set errors if plugin doesn't exists * gst-video-splitter.c: set errors if plugin doesn't exists * bacon-video-widget-gst-0.10.c: Code clean-up libcesarplayer/src/bacon-video-widget-gst-0.10.c | 6 +-- libcesarplayer/src/gst-video-splitter.c | 74 +++++++++++---------- libcesarplayer/src/gst-video-splitter.h | 11 +++- 3 files changed, 48 insertions(+), 43 deletions(-) Mon Jul 20 07:10:52 2009 +0000 longomatch ** Video: Move to CesarPlayer * Main.cs: Log execution errors to ease the user feedback * Makefile.am: Updated makefiles * Gui/MainWindow.cs: Add "Hide All Widgets Function" * gtk-gui/gui.stetic: * Gui/ButtonsWidget.cs: Remove wrnings * PlayersListWidget.cs: Fix tab names * Gui/MessagePoupcs.cs: sender can be null * Gui/PlayListWidget.cs: Catch Exceptions changing codecs or muxer * Gui/PlayersTreeView.cs: Remove warnings * Gui/SnapshotsWidget.cs: Remove warnings * Gui/TeamTemplateWidget.cs: Remove warnings * Video/FFMPEGVideoEditor.cs: Moved to CesarPlayer * Gui/VideoEditionProperties.cs: Set the file path selector at the bottom of the vbox * gtk-gui/LongoMatch.Gui.MainWindow.cs: * gtk-gui/LongoMatch.Gui.Dialog.WorkspaceChooser.cs: * gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs: LongoMatch/Gui/ButtonsWidget.cs | 3 - LongoMatch/Gui/MainWindow.cs | 20 ++- LongoMatch/Gui/MessagePoupcs.cs | 16 +- LongoMatch/Gui/PlayListWidget.cs | 32 ++- LongoMatch/Gui/PlayersTreeView.cs | 4 +- LongoMatch/Gui/SnapshotsWidget.cs | 58 ----- LongoMatch/Gui/TeamTemplateWidget.cs | 1 - LongoMatch/Gui/VideoEditionProperties.cs | 8 +- LongoMatch/Main.cs | 41 +++- LongoMatch/Makefile.am | 74 ++++-- LongoMatch/PlayersListWidget.cs | 33 --- LongoMatch/Video/FFMPEGVideoEditor.cs | 271 -------------------- ...LongoMatch.Gui.Dialog.VideoEditionProperties.cs | 174 +++++++------- .../LongoMatch.Gui.Dialog.WorkspaceChooser.cs | 73 +++--- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 19 +- LongoMatch/gtk-gui/gui.stetic | 184 ++++++++------ 16 files changed, 374 insertions(+), 637 deletions(-) Mon Jul 13 19:42:27 2009 +0000 longomatch *Update Win32 binaries LongoMatch/Win32/bin/LongoMatch.exe | Bin 9169061 -> 9218568 bytes LongoMatch/Win32/bin/SDL.dll | Bin 0 -> 460904 bytes LongoMatch/Win32/bin/gst-inspect-0.10.exe | Bin 0 -> 211968 bytes LongoMatch/Win32/bin/gst-launch-0.10.exe | Bin 0 -> 202240 bytes LongoMatch/Win32/bin/gst-xmlinspect-0.10.exe | Bin 0 -> 203264 bytes LongoMatch/Win32/bin/iconv.dll | Bin 892928 -> 5120 bytes LongoMatch/Win32/bin/libbz2.dll | Bin 0 -> 152526 bytes LongoMatch/Win32/bin/libcairo-2.dll | Bin 664581 -> 664581 bytes LongoMatch/Win32/bin/libcesarplayer.dll | Bin 244957 -> 238178 bytes LongoMatch/Win32/bin/libdca-0.dll | Bin 173099 -> 173099 bytes LongoMatch/Win32/bin/libdvdnavmini-4.dll | Bin 0 -> 151746 bytes LongoMatch/Win32/bin/libfaac-0.dll | Bin 0 -> 109912 bytes LongoMatch/Win32/bin/libfaad-2.dll | Bin 0 -> 369232 bytes LongoMatch/Win32/bin/libfontconfig-1.dll | Bin 270735 -> 270735 bytes LongoMatch/Win32/bin/libfreetype-6.dll | Bin 650785 -> 650785 bytes LongoMatch/Win32/bin/libgcrypt-11.dll | Bin 0 -> 719092 bytes LongoMatch/Win32/bin/libgio-2.0-0.dll | Bin 521539 -> 521539 bytes LongoMatch/Win32/bin/libglib-2.0-0.dll | Bin 1171256 -> 1171256 bytes LongoMatch/Win32/bin/libgmodule-2.0-0.dll | Bin 39516 -> 39516 bytes LongoMatch/Win32/bin/libgnutls-26.dll | Bin 0 -> 875476 bytes LongoMatch/Win32/bin/libgnutls-extra-26.dll | Bin 0 -> 74057 bytes LongoMatch/Win32/bin/libgnutls-openssl-26.dll | Bin 0 -> 182769 bytes LongoMatch/Win32/bin/libgnutlsxx-26.dll | Bin 0 -> 252942 bytes LongoMatch/Win32/bin/libgobject-2.0-0.dll | Bin 316477 -> 316989 bytes LongoMatch/Win32/bin/libgpg-error-0.dll | Bin 0 -> 85616 bytes LongoMatch/Win32/bin/libgstapp-0.10.dll | Bin 0 -> 37888 bytes LongoMatch/Win32/bin/libgstaudio-0.10.dll | Bin 0 -> 100352 bytes LongoMatch/Win32/bin/libgstbase-0.10.dll | Bin 0 -> 163840 bytes LongoMatch/Win32/bin/libgstcdda-0.10.dll | Bin 0 -> 34816 bytes LongoMatch/Win32/bin/libgstcontroller-0.10.dll | Bin 0 -> 104448 bytes LongoMatch/Win32/bin/libgstdataprotocol-0.10.dll | Bin 0 -> 18432 bytes LongoMatch/Win32/bin/libgstdshow-0.10.dll | Bin 0 -> 57856 bytes LongoMatch/Win32/bin/libgstfarsight-0.10.dll | Bin 0 -> 45056 bytes LongoMatch/Win32/bin/libgstfft-0.10.dll | Bin 0 -> 39936 bytes LongoMatch/Win32/bin/libgstgl-0.10.dll | Bin 0 -> 55296 bytes LongoMatch/Win32/bin/libgstinterfaces-0.10.dll | Bin 0 -> 49152 bytes LongoMatch/Win32/bin/libgstnet-0.10.dll | Bin 0 -> 23040 bytes LongoMatch/Win32/bin/libgstnetbuffer-0.10.dll | Bin 0 -> 10752 bytes LongoMatch/Win32/bin/libgstpbutils-0.10.dll | Bin 0 -> 41472 bytes LongoMatch/Win32/bin/libgstphotography-0.10.dll | Bin 0 -> 16384 bytes LongoMatch/Win32/bin/libgstreamer-0.10.dll | Bin 0 -> 619008 bytes LongoMatch/Win32/bin/libgstriff-0.10.dll | Bin 0 -> 40960 bytes LongoMatch/Win32/bin/libgstrtp-0.10.dll | Bin 0 -> 54272 bytes LongoMatch/Win32/bin/libgstrtsp-0.10.dll | Bin 0 -> 64512 bytes LongoMatch/Win32/bin/libgstsdp-0.10.dll | Bin 0 -> 23552 bytes LongoMatch/Win32/bin/libgsttag-0.10.dll | Bin 0 -> 48128 bytes LongoMatch/Win32/bin/libgstvideo-0.10.dll | Bin 0 -> 21504 bytes LongoMatch/Win32/bin/libgthread-2.0-0.dll | Bin 46605 -> 46605 bytes LongoMatch/Win32/bin/libjpeg.dll | Bin 138752 -> 138752 bytes LongoMatch/Win32/bin/libmms-0.dll | Bin 109666 -> 109666 bytes LongoMatch/Win32/bin/libmp3lame-0.dll | Bin 380944 -> 380944 bytes LongoMatch/Win32/bin/libmpeg2convert-0.dll | Bin 0 -> 47687 bytes LongoMatch/Win32/bin/libneon-27.dll | Bin 0 -> 182123 bytes LongoMatch/Win32/bin/libnice.dll | Bin 0 -> 115200 bytes LongoMatch/Win32/bin/libogg-0.dll | Bin 35730 -> 35730 bytes LongoMatch/Win32/bin/liboil-0.3-0.dll | Bin 708126 -> 708126 bytes LongoMatch/Win32/bin/libopenjpeg-2.dll | Bin 162391 -> 162391 bytes LongoMatch/Win32/bin/libpango-1.0-0.dll | Bin 374898 -> 374898 bytes LongoMatch/Win32/bin/libpangocairo-1.0-0.dll | Bin 106845 -> 106845 bytes LongoMatch/Win32/bin/libpangoft2-1.0-0.dll | Bin 350455 -> 350455 bytes LongoMatch/Win32/bin/libpangowin32-1.0-0.dll | Bin 115659 -> 115659 bytes LongoMatch/Win32/bin/libpixman-1-0.dll | Bin 1073869 -> 1073869 bytes LongoMatch/Win32/bin/libpng12-0.dll | Bin 247310 -> 247310 bytes LongoMatch/Win32/bin/libschroedinger-1.0-0.dll | Bin 624910 -> 624910 bytes LongoMatch/Win32/bin/libsoup-2.4-1.dll | Bin 0 -> 377890 bytes LongoMatch/Win32/bin/libspeex-1.dll | Bin 131150 -> 131150 bytes LongoMatch/Win32/bin/libspeexdsp-1.dll | Bin 0 -> 95954 bytes LongoMatch/Win32/bin/libtheora-0.dll | Bin 364387 -> 364387 bytes LongoMatch/Win32/bin/libtheoradec-1.dll | Bin 122390 -> 122390 bytes LongoMatch/Win32/bin/libtheoraenc-1.dll | Bin 258918 -> 258918 bytes LongoMatch/Win32/bin/libvorbis-0.dll | Bin 192700 -> 191320 bytes LongoMatch/Win32/bin/libvorbisenc-2.dll | Bin 1153816 -> 1153304 bytes LongoMatch/Win32/bin/libvorbisfile-3.dll | Bin 55780 -> 54835 bytes LongoMatch/Win32/bin/libwavpack-1.dll | Bin 0 -> 224968 bytes LongoMatch/Win32/bin/libx264-67.dll | Bin 750080 -> 750080 bytes LongoMatch/Win32/bin/libxml2-2.dll | Bin 1527731 -> 1527731 bytes LongoMatch/Win32/bin/pthreadGC2.dll | Bin 71886 -> 71886 bytes LongoMatch/Win32/bin/xvidcore.dll | Bin 1101318 -> 1101318 bytes LongoMatch/Win32/bin/zlib1.dll | Bin 75264 -> 75264 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgnl.dll | Bin 102400 -> 102400 bytes .../Win32/lib/gstreamer-0.10/libgsta52dec.dll | Bin 23040 -> 23040 bytes .../Win32/lib/gstreamer-0.10/libgstaacparse.dll | Bin 38400 -> 38400 bytes .../Win32/lib/gstreamer-0.10/libgstadder.dll | Bin 22528 -> 22528 bytes .../Win32/lib/gstreamer-0.10/libgstaiffparse.dll | Bin 32256 -> 32256 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstalaw.dll | Bin 18944 -> 18944 bytes .../Win32/lib/gstreamer-0.10/libgstalpha.dll | Bin 12800 -> 12800 bytes .../Win32/lib/gstreamer-0.10/libgstamrparse.dll | Bin 35840 -> 35840 bytes .../Win32/lib/gstreamer-0.10/libgstapetag.dll | Bin 14848 -> 14848 bytes .../Win32/lib/gstreamer-0.10/libgstappplugin.dll | Bin 8192 -> 8192 bytes .../Win32/lib/gstreamer-0.10/libgstasfdemux.dll | Bin 88064 -> 86528 bytes .../lib/gstreamer-0.10/libgstaudioconvert.dll | Bin 51200 -> 51200 bytes .../Win32/lib/gstreamer-0.10/libgstaudiofx.dll | Bin 80384 -> 80384 bytes .../Win32/lib/gstreamer-0.10/libgstaudiorate.dll | Bin 17920 -> 17920 bytes .../lib/gstreamer-0.10/libgstaudioresample.dll | Bin 51200 -> 51200 bytes .../lib/gstreamer-0.10/libgstaudiotestsrc.dll | Bin 26112 -> 26112 bytes .../Win32/lib/gstreamer-0.10/libgstauparse.dll | Bin 18944 -> 18944 bytes .../Win32/lib/gstreamer-0.10/libgstautoconvert.dll | Bin 25088 -> 25088 bytes .../Win32/lib/gstreamer-0.10/libgstautodetect.dll | Bin 29696 -> 29696 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstavi.dll | Bin 96256 -> 96256 bytes .../Win32/lib/gstreamer-0.10/libgstbayer.dll | Bin 18432 -> 18432 bytes .../Win32/lib/gstreamer-0.10/libgstcairo.dll | Bin 27136 -> 27136 bytes .../Win32/lib/gstreamer-0.10/libgstcamerabin.dll | Bin 75264 -> 75776 bytes .../Win32/lib/gstreamer-0.10/libgstcdxaparse.dll | Bin 22016 -> 22016 bytes .../lib/gstreamer-0.10/libgstcoreelements.dll | Bin 118272 -> 118272 bytes .../Win32/lib/gstreamer-0.10/libgstcutter.dll | Bin 16896 -> 16896 bytes .../Win32/lib/gstreamer-0.10/libgstdebug.dll | Bin 40960 -> 40960 bytes .../Win32/lib/gstreamer-0.10/libgstdecodebin.dll | Bin 32768 -> 32768 bytes .../Win32/lib/gstreamer-0.10/libgstdecodebin2.dll | Bin 71168 -> 71168 bytes .../Win32/lib/gstreamer-0.10/libgstdeinterlace.dll | Bin 37376 -> 37376 bytes .../Win32/lib/gstreamer-0.10/libgstdirectdraw.dll | Bin 35328 -> 35328 bytes .../Win32/lib/gstreamer-0.10/libgstdirectsound.dll | Bin 227840 -> 227840 bytes .../lib/gstreamer-0.10/libgstdshowdecwrapper.dll | Bin 0 -> 88576 bytes .../lib/gstreamer-0.10/libgstdshowsrcwrapper.dll | Bin 30208 -> 41984 bytes .../lib/gstreamer-0.10/libgstdshowvideosink.dll | Bin 53760 -> 53760 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstdtmf.dll | Bin 37888 -> 37888 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstdts.dll | Bin 22016 -> 22016 bytes .../Win32/lib/gstreamer-0.10/libgstdvdlpcmdec.dll | Bin 19456 -> 19456 bytes .../Win32/lib/gstreamer-0.10/libgstdvdread.dll | Bin 0 -> 33280 bytes .../Win32/lib/gstreamer-0.10/libgstdvdspu.dll | Bin 40448 -> 40448 bytes .../Win32/lib/gstreamer-0.10/libgstdvdsub.dll | Bin 28672 -> 28160 bytes .../Win32/lib/gstreamer-0.10/libgsteffectv.dll | Bin 31232 -> 31232 bytes .../Win32/lib/gstreamer-0.10/libgstequalizer.dll | Bin 24064 -> 24064 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstfaac.dll | Bin 0 -> 20992 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstfaad.dll | Bin 0 -> 27648 bytes .../lib/gstreamer-0.10/libgstffmpegcolorspace.dll | Bin 124416 -> 124416 bytes .../Win32/lib/gstreamer-0.10/libgstffmpeggpl.dll | Bin 5699072 -> 5764096 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstflv.dll | Bin 58880 -> 58880 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstflx.dll | Bin 16896 -> 16896 bytes .../Win32/lib/gstreamer-0.10/libgstfreeze.dll | Bin 13312 -> 13312 bytes .../Win32/lib/gstreamer-0.10/libgstfsselector.dll | Bin 24576 -> 24576 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstgdp.dll | Bin 29696 -> 29696 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstgio.dll | Bin 36352 -> 36352 bytes .../Win32/lib/gstreamer-0.10/libgsth264parse.dll | Bin 20480 -> 20480 bytes .../Win32/lib/gstreamer-0.10/libgsticydemux.dll | Bin 15360 -> 15360 bytes .../Win32/lib/gstreamer-0.10/libgstid3demux.dll | Bin 30720 -> 30720 bytes .../Win32/lib/gstreamer-0.10/libgstiec958.dll | Bin 15872 -> 15872 bytes .../Win32/lib/gstreamer-0.10/libgstinterleave.dll | Bin 35328 -> 35328 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstjpeg.dll | Bin 47616 -> 47616 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstlame.dll | Bin 32768 -> 45568 bytes .../lib/gstreamer-0.10/libgstlegacyresample.dll | Bin 31744 -> 31744 bytes .../Win32/lib/gstreamer-0.10/libgstlevel.dll | Bin 19456 -> 19456 bytes .../Win32/lib/gstreamer-0.10/libgstlibmms.dll | Bin 16896 -> 16896 bytes .../Win32/lib/gstreamer-0.10/libgstliveadder.dll | Bin 34304 -> 34304 bytes .../Win32/lib/gstreamer-0.10/libgstmatroska.dll | Bin 136192 -> 136192 bytes .../Win32/lib/gstreamer-0.10/libgstmonoscope.dll | Bin 17920 -> 17920 bytes .../Win32/lib/gstreamer-0.10/libgstmpeg2dec.dll | Bin 34304 -> 33792 bytes .../lib/gstreamer-0.10/libgstmpeg4videoparse.dll | Bin 20480 -> 20480 bytes .../lib/gstreamer-0.10/libgstmpegaudioparse.dll | Bin 45056 -> 44544 bytes .../Win32/lib/gstreamer-0.10/libgstmpegdemux.dll | Bin 141824 -> 141824 bytes .../Win32/lib/gstreamer-0.10/libgstmpegstream.dll | Bin 59904 -> 58880 bytes .../Win32/lib/gstreamer-0.10/libgstmpegtsmux.dll | Bin 34304 -> 34304 bytes .../lib/gstreamer-0.10/libgstmpegvideoparse.dll | Bin 22528 -> 22528 bytes .../Win32/lib/gstreamer-0.10/libgstmulaw.dll | Bin 15872 -> 15872 bytes .../Win32/lib/gstreamer-0.10/libgstmultifile.dll | Bin 15872 -> 15872 bytes .../Win32/lib/gstreamer-0.10/libgstmultipart.dll | Bin 23552 -> 23552 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstmve.dll | Bin 88576 -> 88576 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstmxf.dll | Bin 357888 -> 357888 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstneon.dll | Bin 0 -> 22528 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstnice.dll | Bin 0 -> 23552 bytes .../Win32/lib/gstreamer-0.10/libgstnuvdemux.dll | Bin 20480 -> 20480 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstogg.dll | Bin 96768 -> 96768 bytes .../Win32/lib/gstreamer-0.10/libgstpango.dll | Bin 43520 -> 43520 bytes .../Win32/lib/gstreamer-0.10/libgstpcapparse.dll | Bin 13312 -> 13312 bytes .../Win32/lib/gstreamer-0.10/libgstplaybin.dll | Bin 136704 -> 136704 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstpng.dll | Bin 27136 -> 27136 bytes .../Win32/lib/gstreamer-0.10/libgstqtdemux.dll | Bin 114688 -> 115200 bytes .../Win32/lib/gstreamer-0.10/libgstqtmux.dll | Bin 66048 -> 66048 bytes .../Win32/lib/gstreamer-0.10/libgstqueue2.dll | Bin 38400 -> 38400 bytes .../Win32/lib/gstreamer-0.10/libgstrawparse.dll | Bin 35328 -> 35328 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstreal.dll | Bin 29696 -> 29696 bytes .../Win32/lib/gstreamer-0.10/libgstrealmedia.dll | Bin 65536 -> 65024 bytes .../Win32/lib/gstreamer-0.10/libgstreplaygain.dll | Bin 35328 -> 35328 bytes .../Win32/lib/gstreamer-0.10/libgstresindvd.dll | Bin 141824 -> 143872 bytes .../Win32/lib/gstreamer-0.10/libgstrtp_good.dll | Bin 202752 -> 202752 bytes .../lib/gstreamer-0.10/libgstrtpjitterbuffer.dll | Bin 29184 -> 29184 bytes .../Win32/lib/gstreamer-0.10/libgstrtpmanager.dll | Bin 147456 -> 147456 bytes .../Win32/lib/gstreamer-0.10/libgstrtpmux.dll | Bin 19968 -> 19968 bytes .../Win32/lib/gstreamer-0.10/libgstrtpnetsim.dll | Bin 14336 -> 14336 bytes .../Win32/lib/gstreamer-0.10/libgstrtppayloads.dll | Bin 16384 -> 16384 bytes .../Win32/lib/gstreamer-0.10/libgstrtprtpdemux.dll | Bin 14336 -> 14336 bytes .../Win32/lib/gstreamer-0.10/libgstrtsp_good.dll | Bin 83456 -> 83456 bytes .../Win32/lib/gstreamer-0.10/libgstscaletempo.dll | Bin 16896 -> 16896 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstsdl.dll | Bin 0 -> 27136 bytes .../Win32/lib/gstreamer-0.10/libgstsdpplugin.dll | Bin 25600 -> 25600 bytes .../Win32/lib/gstreamer-0.10/libgstselector.dll | Bin 34816 -> 34816 bytes .../Win32/lib/gstreamer-0.10/libgstsiren.dll | Bin 0 -> 61952 bytes .../Win32/lib/gstreamer-0.10/libgstsmpte.dll | Bin 49152 -> 49664 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstsoup.dll | Bin 0 -> 28672 bytes .../Win32/lib/gstreamer-0.10/libgstspectrum.dll | Bin 18944 -> 18944 bytes .../Win32/lib/gstreamer-0.10/libgstspeed.dll | Bin 17920 -> 17920 bytes .../Win32/lib/gstreamer-0.10/libgststereo.dll | Bin 12288 -> 12288 bytes .../Win32/lib/gstreamer-0.10/libgstsubenc.dll | Bin 12288 -> 12288 bytes .../lib/gstreamer-0.10/libgstsynaesthesia.dll | Bin 17920 -> 17920 bytes .../Win32/lib/gstreamer-0.10/libgsttheora.dll | Bin 51200 -> 51200 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgsttta.dll | Bin 22528 -> 22528 bytes .../lib/gstreamer-0.10/libgsttypefindfunctions.dll | Bin 47104 -> 47104 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstudp.dll | Bin 41984 -> 41984 bytes .../Win32/lib/gstreamer-0.10/libgstvalve.dll | Bin 12800 -> 12800 bytes .../Win32/lib/gstreamer-0.10/libgstvideobox.dll | Bin 23040 -> 23040 bytes .../Win32/lib/gstreamer-0.10/libgstvideocrop.dll | Bin 32768 -> 32768 bytes .../gstreamer-0.10/libgstvideofilterbalance.dll | Bin 16384 -> 16384 bytes .../lib/gstreamer-0.10/libgstvideofilterflip.dll | Bin 18944 -> 18944 bytes .../lib/gstreamer-0.10/libgstvideofiltergamma.dll | Bin 12288 -> 12288 bytes .../Win32/lib/gstreamer-0.10/libgstvideomixer.dll | Bin 28160 -> 28160 bytes .../Win32/lib/gstreamer-0.10/libgstvideorate.dll | Bin 23040 -> 23040 bytes .../Win32/lib/gstreamer-0.10/libgstvideoscale.dll | Bin 53248 -> 53248 bytes .../Win32/lib/gstreamer-0.10/libgstvideosignal.dll | Bin 19968 -> 19968 bytes .../lib/gstreamer-0.10/libgstvideotestsrc.dll | Bin 34816 -> 34816 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstvmnc.dll | Bin 20480 -> 20480 bytes .../Win32/lib/gstreamer-0.10/libgstvolume.dll | Bin 18432 -> 18432 bytes .../Win32/lib/gstreamer-0.10/libgstvorbis.dll | Bin 54784 -> 54784 bytes .../Win32/lib/gstreamer-0.10/libgstwasapi.dll | Bin 20480 -> 20480 bytes .../Win32/lib/gstreamer-0.10/libgstwaveenc.dll | Bin 15360 -> 15360 bytes .../Win32/lib/gstreamer-0.10/libgstwaveform.dll | Bin 15872 -> 15872 bytes .../Win32/lib/gstreamer-0.10/libgstwavpack.dll | Bin 52736 -> 52736 bytes .../Win32/lib/gstreamer-0.10/libgstwavparse.dll | Bin 40448 -> 40448 bytes .../Win32/lib/gstreamer-0.10/libgstwininet.dll | Bin 14336 -> 14336 bytes .../Win32/lib/gstreamer-0.10/libgstwinks.dll | Bin 53760 -> 54784 bytes .../lib/gstreamer-0.10/libgstwinscreencap.dll | Bin 23552 -> 23552 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstx264.dll | Bin 25088 -> 25088 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgstxvid.dll | Bin 39424 -> 39424 bytes LongoMatch/Win32/lib/gstreamer-0.10/libgsty4m.dll | Bin 12800 -> 12800 bytes LongoMatch/Win32/share/images/Thumbs.db | Bin 6656 -> 14848 bytes 223 files changed, 0 insertions(+), 0 deletions(-) Mon Jul 13 19:30:36 2009 +0000 longomatch *Add icon for win32 LongoMatch/Win32/share/images/longomatch.png | Bin 0 -> 16818 bytes 1 files changed, 0 insertions(+), 0 deletions(-) Sun Jul 12 23:31:38 2009 +0000 longomatch ** CesarPlayer/gtk-gui/gui.stetic: * CesarPlayer/Utils/FramesCapturer.cs: Use threading * LongoMatch/Gui/FramesCaptureProgressDialog.cs: Code Clean-up CesarPlayer/Utils/FramesCapturer.cs | 50 ++++++++++++------------- CesarPlayer/gtk-gui/gui.stetic | 2 +- LongoMatch/Gui/FramesCaptureProgressDialog.cs | 20 ++++------ 3 files changed, 33 insertions(+), 39 deletions(-) Sun Jul 12 21:38:18 2009 +0000 longomatch ** Main.cs: Code clean-up * gtk-gui/gui.stetic: * gtk-gui/objects.xml: * gtk-gui/LongoMatch.Gui.Component.TimeAdjustWidget.cs: * gtk-gui/LongoMatch.Gui.Component.TimeNodeProperties.cs: LongoMatch/Main.cs | 24 ++++--------------- .../LongoMatch.Gui.Component.TimeAdjustWidget.cs | 6 +++- .../LongoMatch.Gui.Component.TimeNodeProperties.cs | 4 +++ LongoMatch/gtk-gui/gui.stetic | 10 ++++++- LongoMatch/gtk-gui/objects.xml | 7 +++++- 5 files changed, 27 insertions(+), 24 deletions(-) Sun Jul 12 21:37:16 2009 +0000 longomatch ** TimeAdjustWidget.cs: Send event after time change * TimeNodeProperties.cs: Update the timenode after changes automatically * SectionsPropertiesWidget.cs: Change tndlist to tnplist LongoMatch/Gui/SectionsPropertiesWidget.cs | 18 +++++++------- LongoMatch/Gui/TimeAdjustWidget.cs | 22 +++++++++++++++- LongoMatch/Gui/TimeNodeProperties.cs | 37 +++++++++++++++++++--------- 3 files changed, 54 insertions(+), 23 deletions(-) Sun Jul 12 21:33:48 2009 +0000 longomatch ** Time.cs: Removed commented line * TimeNode.cs: When setting start and stop lets set whatever value LongoMatch/Time/Time.cs | 1 - LongoMatch/Time/TimeNode.cs | 20 +++----------------- 2 files changed, 3 insertions(+), 18 deletions(-) Thu Jul 9 00:21:40 2009 +0000 longomatch ** LongoMatch/Gui/TimeScale.cs: Add sepration to display tha play name * LongoMatch/Gui/PlayListWidget.cs: Don't add invalid segments to the editor * LongoMatch/Gui/PlayListTreeView.cs: Add file not found info LongoMatch/Gui/PlayListTreeView.cs | 6 ++++-- LongoMatch/Gui/PlayListWidget.cs | 11 ++++++----- LongoMatch/Gui/TimeScale.cs | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) Wed Jul 8 23:05:23 2009 +0000 longomatch ** Gui/PlayersTreeView.cs: Update the selected time when right clicking * Gui/PlayerProperties.cs: Fixes image resizing LongoMatch/Gui/PlayerProperties.cs | 2 +- LongoMatch/Gui/PlayersTreeView.cs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) Wed Jul 8 21:31:34 2009 +0000 longomatch ** PlayerProperties.cs: Check also images's max height * PlayersListTreeWidget.cs: LongoMatch/Gui/PlayerProperties.cs | 8 ++++++-- LongoMatch/Gui/PlayersListTreeWidget.cs | 3 +-- 2 files changed, 7 insertions(+), 4 deletions(-) Wed Jul 8 21:27:05 2009 +0000 longomatch ** gtk-gui/gui.stetic: * gtk-gui/objects.xml: * Gui/PlayersTreeView.cs: Propagte events * Handlers/EventsManager.cs: Handle TimeNodeChanged events and SnapshotSeries event in plays list * Gui/PlayersListTreeWidget.cs: Removed unused traces * Gui/PlayersSelectionDialog.cs: Removed unused traces * gtk-gui/LongoMatch.Gui.Component.PlayersListTreeWidget.cs: LongoMatch/Gui/PlayersListTreeWidget.cs | 13 +++++-- LongoMatch/Gui/PlayersSelectionDialog.cs | 20 ++++------- LongoMatch/Gui/PlayersTreeView.cs | 19 ++++++++++ LongoMatch/Handlers/EventsManager.cs | 36 ++++++++++++------- ...ngoMatch.Gui.Component.PlayersListTreeWidget.cs | 3 ++ LongoMatch/gtk-gui/gui.stetic | 3 ++ LongoMatch/gtk-gui/objects.xml | 2 + 7 files changed, 67 insertions(+), 29 deletions(-) Wed Jul 8 20:52:37 2009 +0000 longomatch ** Gui/MainWindow.cs:Add the players list * Handlers/EventsManager.cs: Add the players list * Gui/PlayersListTreeWidget.cs: Added method to update the list * gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs: LongoMatch/Gui/MainWindow.cs | 11 ++++++++--- LongoMatch/Gui/PlayersListTreeWidget.cs | 6 +++++- LongoMatch/Handlers/EventsManager.cs | 11 ++++++++--- ...LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs | 5 +++++ 4 files changed, 26 insertions(+), 7 deletions(-) Wed Jul 8 20:51:12 2009 +0000 longomatch ** MediaTimeNode.cs: Fixed setter for Visitor Players LongoMatch/Time/MediaTimeNode.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Jul 8 20:40:00 2009 +0000 longomatch ** Project.cs: Players List Model changed LongoMatch/DB/Project.cs | 49 +++++++++++++++++---------------------------- 1 files changed, 19 insertions(+), 30 deletions(-) Wed Jul 8 20:08:36 2009 +0000 longomatch ** Gui/TreeWidget.cs: Propagate PlayersTagged event * gtk-gui/gui.stetic: * gtk-gui/objects.xml: * Handlers/Handlers.cs: new PlayerTaggedHandler delegate * Gui/TimeNodesTreeView.cs: Send PlayersTagged event * Handlers/EventsManager.cs: Handle PlayersTaged event * Gui/PlayersSelectionDialog.cs: Initialize buttons list * gtk-gui/LongoMatch.Gui.Component.TreeWidget.cs: * gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs: Add icon. LongoMatch/Gui/PlayersSelectionDialog.cs | 22 ++-- LongoMatch/Gui/TimeNodesTreeView.cs | 172 ++++++++++---------- LongoMatch/Gui/TreeWidget.cs | 26 ++-- LongoMatch/Handlers/EventsManager.cs | 22 +++ LongoMatch/Handlers/Handlers.cs | 2 + .../gtk-gui/LongoMatch.Gui.Component.TreeWidget.cs | 1 + ...LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 8 +- LongoMatch/gtk-gui/objects.xml | 2 + 9 files changed, 145 insertions(+), 112 deletions(-) Wed Jul 8 20:06:40 2009 +0000 longomatch ** MediaTimeNode.cs: Change description LongoMatch/Time/MediaTimeNode.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Wed Jul 8 18:50:00 2009 +0000 longomatch ** MediaTimeNode.cs: Updated Copyright info LongoMatch/Time/MediaTimeNode.cs | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) Wed Jul 8 18:48:53 2009 +0000 longomatch ** MediaTimeNode.cs: Added setters for the players list LongoMatch/Time/MediaTimeNode.cs | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) Wed Jul 8 18:46:27 2009 +0000 longomatch ** PlayersSelectionDialog.cs: Added Property to set a get selected players LongoMatch/Gui/PlayersSelectionDialog.cs | 26 ++++++++++++++++++++------ 1 files changed, 20 insertions(+), 6 deletions(-) Wed Jul 8 18:45:09 2009 +0000 longomatch ** LongoMatch.mdp: * gtk-gui/gui.stetic: * gtk-gui/generated.cs: * Gui/ButtonsWidget.cs: Removed unused callbacks * Handlers/Handlers.cs: Added new delegate for multimark * Gui/PlayersSelectionDialog.cs: New Dialog to link a play to players * gtk-gui/LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs: New Dialog to link a play to players LongoMatch/Gui/ButtonsWidget.cs | 132 +------------------- LongoMatch/Gui/PlayersSelectionDialog.cs | 77 ++++++++++++ LongoMatch/Handlers/Handlers.cs | 1 + LongoMatch/LongoMatch.mdp | 2 + ...LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs | 79 ++++++++++++ LongoMatch/gtk-gui/generated.cs | 2 +- LongoMatch/gtk-gui/gui.stetic | 99 ++++++++++++++- 7 files changed, 260 insertions(+), 132 deletions(-) Mon Jul 6 18:19:54 2009 +0000 longomatch ** Handlers.cs: Added new delegate for multimark purpose LongoMatch/Handlers/Handlers.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Mon Jul 6 18:10:19 2009 +0000 longomatch ** gtk-gui/gui.stetic: Fixed longomatch.png icon path LongoMatch/gtk-gui/gui.stetic | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Mon Jul 6 01:21:59 2009 +0000 longomatch ** PlayerBin.cs: Removed commented statements CesarPlayer/Gui/PlayerBin.cs | 10 +++------- 1 files changed, 3 insertions(+), 7 deletions(-) Mon Jul 6 01:08:53 2009 +0000 longomatch ** PlayerBin.cs: Update time label seeking in segment CesarPlayer/Gui/PlayerBin.cs | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) Mon Jul 6 01:03:34 2009 +0000 longomatch ** PlayerBin.cs: The Stetic editor messes up the adjustement values, We need to set them manually CesarPlayer/Gui/PlayerBin.cs | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) Mon Jul 6 00:39:11 2009 +0000 longomatch ** PlayerBin.cs: Fixes InSegment() calculation. A play is not loaded when start time ans stop time are equal to 0 CesarPlayer/Gui/PlayerBin.cs | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sun Jul 5 20:10:06 2009 +0000 longomatch *update SharpDevelop project CesarPlayer/CesarPlayer.csproj | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sun Jul 5 20:09:55 2009 +0000 longomatch *update SharpDevelop project LongoMatch/LongoMatch.csproj | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-) Sun Jul 5 20:09:13 2009 +0000 longomatch *fixed workspace selection LongoMatch/Main.cs | 71 ++++++++++++++++++++++------------------------------ 1 files changed, 30 insertions(+), 41 deletions(-) Sun Jul 5 19:57:21 2009 +0000 longomatch ** PlayerProperties.cs: Fixes Win32 files path encoding issue with special caracters LongoMatch/Gui/PlayerProperties.cs | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) Sun Jul 5 18:48:13 2009 +0000 longomatch ** LongoMatch/LongoMatch.mdp: * LongoMatch/gtk-gui/gui.stetic: * LongoMatch/Gui/WorkspaceChooser.cs: New Workspace Chooser dialog for Win32 * LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.WorkspaceChooser.cs: LongoMatch/Gui/WorkspaceChooser.cs | 41 +++++++ LongoMatch/LongoMatch.mdp | 2 + .../LongoMatch.Gui.Dialog.WorkspaceChooser.cs | 112 ++++++++++++++++++++ LongoMatch/gtk-gui/gui.stetic | 104 ++++++++++++++++++ 4 files changed, 259 insertions(+), 0 deletions(-) Sun Jul 5 16:54:48 2009 +0000 longomatch ** PlayerBin.cs: Update the Rate scale after loading a play CesarPlayer/Gui/PlayerBin.cs | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Sun Jul 5 16:48:50 2009 +0000 longomatch ** Main.cs: Use '.longomatch' for config files on Unix LongoMatch/Main.cs | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) Sun Jul 5 16:44:18 2009 +0000 longomatch ** MainWindow.cs: Prevent frame stepping with a key modifier LongoMatch/Gui/MainWindow.cs | 15 +++++---------- 1 files changed, 5 insertions(+), 10 deletions(-) Sun Jul 5 16:25:28 2009 +0000 longomatch ** gtk-gui/gui.stetic: * Gui/EntryDialog.cs: Can prompt for an int value * Gui/TemplatesEditor.cs: Prompt for the numbers of players needed for the template * gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs: LongoMatch/Gui/EntryDialog.cs | 9 ++ LongoMatch/Gui/TemplatesEditor.cs | 10 ++- .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 91 ++++++++++++++++---- LongoMatch/gtk-gui/gui.stetic | 79 ++++++++++++++++-- 4 files changed, 165 insertions(+), 24 deletions(-) Sun Jul 5 16:01:58 2009 +0000 longomatch ** TemplatesEditor.cs: Avoid deletion of the default template LongoMatch/Gui/TemplatesEditor.cs | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) Sun Jul 5 15:51:07 2009 +0000 longomatch ** Main.cs: Some fixes to the Win32 config LongoMatch/Main.cs | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-) Sun Jul 5 15:44:11 2009 +0000 longomatch ** Main.cs: Using config file on Win32 to set the Home Dir, thi way we can avoid paths with special caracters LongoMatch/Main.cs | 56 +++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 40 insertions(+), 16 deletions(-) Sun Jul 5 15:03:16 2009 +0000 longomatch ** LongoMatch/Main.cs: Remove unused Thumbnails dir * LongoMatch/DB/Project.cs: Remove unused Thumbnails dir * LongoMatch/LongoMatch.mdp: * LongoMatch/DB/MediaFile.cs: Moved to LongoMatch.Video * CesarPlayer/CesarPlayer.mdp: * LongoMatch/Gui/DBManager.cs: Remove unused Thumbnails dir * CesarPlayer/Utils/MediaFile.cs: New method to create a MediFile from a file * LongoMatch/Handlers/EventsManager.cs: using new GetMediaFile() from MediaFile * LongoMatch/Gui/FileDescriptionWidget.cs: Using new media file CesarPlayer/CesarPlayer.mdp | 1 + CesarPlayer/Utils/MediaFile.cs | 150 +++++++++++++++++++++++++++++++ LongoMatch/DB/MediaFile.cs | 112 ----------------------- LongoMatch/DB/Project.cs | 11 ++- LongoMatch/Gui/DBManager.cs | 25 ++---- LongoMatch/Gui/FileDescriptionWidget.cs | 32 +------ LongoMatch/Handlers/EventsManager.cs | 2 +- LongoMatch/LongoMatch.mdp | 1 - LongoMatch/Main.cs | 7 +-- 9 files changed, 170 insertions(+), 171 deletions(-) Sat Jul 4 17:43:51 2009 +0000 longomatch ** LongoMatch.mds: * CesarPlayer/Gui/PlayerBin.cs:Seeks must set the play rate * CesarPlayer/Player/IPlayer.cs:Seeks must set the play rate * CesarPlayer/gtk-gui/objects.xml: * CesarPlayer/Player/GstPlayer.cs:Seeks must set the play rate * LongoMatch/Time/PixbufTimeNode.cs: Return null when no Pixbuf * LongoMatch/Handlers/EventsManager.cs: * libcesarplayer/src/bacon-video-widget.h: Seeks must set the play rate * libcesarplayer/src/bacon-video-widget-gst-0.10.c: Seeks must set the play rate CesarPlayer/Gui/PlayerBin.cs | 48 +++++++++-------- CesarPlayer/Player/GstPlayer.cs | 61 +++++++++++---------- CesarPlayer/Player/IPlayer.cs | 16 +++--- CesarPlayer/gtk-gui/objects.xml | 8 ++-- LongoMatch.mds | 6 +- LongoMatch/Handlers/EventsManager.cs | 3 +- LongoMatch/Time/PixbufTimeNode.cs | 6 ++- libcesarplayer/src/bacon-video-widget-gst-0.10.c | 44 ++++++++-------- libcesarplayer/src/bacon-video-widget.h | 17 +++--- 9 files changed, 109 insertions(+), 100 deletions(-) Sat Jul 4 15:05:34 2009 +0000 longomatch *Using stock item instead of resource for the logo * app.desktop: * LongoMatch.mdp: * gtk-gui/gui.stetic: * gtk-gui/generated.cs: * images/longomatch.png: * images/longomatch_logo.png: * gtk-gui/LongoMatch.Gui.MainWindow.cs: * gtk-gui/LongoMatch.Gui.Dialog.DBManager.cs: * gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs: * gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs: * gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs: * gtk-gui/LongoMatch.Gui.Dialog.TemplatesManager.cs: * gtk-gui/LongoMatch.Gui.Dialog.NewProjectDialog.cs: * gtk-gui/LongoMatch.Gui.Dialog.OpenProjectDialog.cs: * gtk-gui/LongoMatch.Gui.Dialog.TemplateEditorDialog.cs: * gtk-gui/LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs: * gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs: * gtk-gui/LongoMatch.Gui.Dialog.FramesCaptureProgressDialog.cs: LongoMatch/LongoMatch.mdp | 2 +- LongoMatch/app.desktop | 2 +- .../gtk-gui/LongoMatch.Gui.Dialog.DBManager.cs | 2 +- .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 2 +- ...Match.Gui.Dialog.FramesCaptureProgressDialog.cs | 2 +- .../LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs | 2 +- .../LongoMatch.Gui.Dialog.NewProjectDialog.cs | 2 +- .../LongoMatch.Gui.Dialog.OpenProjectDialog.cs | 2 +- .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 2 +- .../LongoMatch.Gui.Dialog.TemplateEditorDialog.cs | 2 +- .../LongoMatch.Gui.Dialog.TemplatesManager.cs | 2 +- .../gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs | 2 +- ...LongoMatch.Gui.Dialog.VideoEditionProperties.cs | 2 +- LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +- LongoMatch/gtk-gui/generated.cs | 4 ++ LongoMatch/gtk-gui/gui.stetic | 31 ++++++++++++------- LongoMatch/images/longomatch.png | Bin 0 -> 16818 bytes LongoMatch/images/longomatch_logo.png | Bin 16818 -> 0 bytes 18 files changed, 37 insertions(+), 26 deletions(-) Sat Jul 4 14:25:38 2009 +0000 longomatch ** EventsManager.cs: The selected TimeNode must be setted after loading the time node in the player, because it raises the CloseActualSegment event which sets the TimeNode to null LongoMatch/Handlers/EventsManager.cs | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) Sat Jul 4 14:10:25 2009 +0000 longomatch ** bacon-video-widget-gst-0.10.c: Remove unused traces libcesarplayer/src/bacon-video-widget-gst-0.10.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) Sat Jul 4 14:04:51 2009 +0000 longomatch ** LongoMatch/LongoMatch.mdp: * LongoMatch/Gui/TimeScale.cs: REmoved unused 'name' attribute * LongoMatch/Gui/MainWindow.cs: Call CloseActualProject() after loading a new one to save the previous one. Add the player playlists * LongoMatch/gtk-gui/gui.stetic: * LongoMatch/gtk-gui/objects.xml: * LongoMatch/PlayersListWidget.cs: * LongoMatch/Gui/TimeLineWidget.cs: Use new TimeScale constructor * LongoMatch/Gui/PlayersTreeView.cs: * LongoMatch/Gui/TemplatesEditor.cs: * LongoMatch/Gui/PlayersListTreeWidget.cs: * LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs: * LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayersTreeView.cs: * LongoMatch/gtk-gui/LongoMatch.Gui.Component.PlayersListTreeWidget.cs: LongoMatch/Gui/MainWindow.cs | 7 +- LongoMatch/Gui/PlayersListTreeWidget.cs | 99 +++++++++++ LongoMatch/Gui/PlayersTreeView.cs | 171 +++++++++++++++++++- LongoMatch/Gui/TemplatesEditor.cs | 1 - LongoMatch/Gui/TimeLineWidget.cs | 2 +- LongoMatch/Gui/TimeScale.cs | 4 +- LongoMatch/LongoMatch.mdp | 3 + LongoMatch/PlayersListWidget.cs | 33 ++++ ...ngoMatch.Gui.Component.PlayersListTreeWidget.cs | 42 +++++ .../LongoMatch.Gui.Component.PlayersTreeView.cs | 27 +++ LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 127 ++++++++++----- LongoMatch/gtk-gui/gui.stetic | 79 +++++++++- LongoMatch/gtk-gui/objects.xml | 18 ++ 13 files changed, 559 insertions(+), 54 deletions(-) Sat Jul 4 14:01:51 2009 +0000 longomatch ** PlayerBin.cs: Don't call PLAY() after a seek, it creates a new segment 0-* CesarPlayer/Gui/PlayerBin.cs | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Sat Jul 4 13:59:55 2009 +0000 longomatch ** GstPlayer.cs: The seek oafter loading a new file must be handled by the backend CesarPlayer/Player/GstPlayer.cs | 16 +++------------- 1 files changed, 3 insertions(+), 13 deletions(-) Sat Jul 4 13:58:17 2009 +0000 longomatch ** bacon-video-widget-gst-0.10.c: Waiting to PAUSED state is also working and should be faster libcesarplayer/src/bacon-video-widget-gst-0.10.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Sat Jul 4 13:56:19 2009 +0000 longomatch ** bacon-video-widget-gst-0.10.c: Must wait until PLAYING state to perform the seek libcesarplayer/src/bacon-video-widget-gst-0.10.c | 18 ++++++++++-------- 1 files changed, 10 insertions(+), 8 deletions(-) Sat Jul 4 13:55:29 2009 +0000 longomatch ** Project.cs: Projects have now playlist for players LongoMatch/DB/Project.cs | 38 +++++++++++++++++++++++++++++++++++++- 1 files changed, 37 insertions(+), 1 deletions(-) Sat Jul 4 13:53:17 2009 +0000 longomatch ** PixbufTimeNode.cs: Handle null Pixbuf LongoMatch/Time/PixbufTimeNode.cs | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) Sat Jul 4 13:52:47 2009 +0000 longomatch ** EventsManager.cs: The playlist must handle the clock itself LongoMatch/Handlers/EventsManager.cs | 8 +++----- 1 files changed, 3 insertions(+), 5 deletions(-) Sat Jul 4 13:48:31 2009 +0000 longomatch *Fixed clock stop after last segment. Also fixed stop time check of a segment LongoMatch/Gui/PlayListWidget.cs | 40 +++++++++++++++++++++---------------- 1 files changed, 23 insertions(+), 17 deletions(-) Fri Jul 3 01:17:57 2009 +0000 longomatch ** PlayersTreeView.cs: Tree widget for plays * FileDescriptionWidget.cs: Remove unused prints LongoMatch/Gui/FileDescriptionWidget.cs | 4 +-- LongoMatch/Gui/PlayersTreeView.cs | 34 +++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) longomatch-0.16.8/CesarPlayer/0002755000175000017500000000000011601631302013147 500000000000000longomatch-0.16.8/CesarPlayer/Makefile.in0000644000175000017500000005510511601631264015147 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/AssemblyInfo.cs.in \ $(srcdir)/CesarPlayer.dll.config.in $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/cesarplayer.pc.in \ $(top_srcdir)/build/build.environment.mk \ $(top_srcdir)/build/build.mk \ $(top_srcdir)/build/build.rules.mk @ENABLE_TESTS_TRUE@am__append_1 = " $(NUNIT_LIBS)" subdir = CesarPlayer ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \ $(top_srcdir)/build/m4/shamrock/mono.m4 \ $(top_srcdir)/build/m4/shamrock/nunit.m4 \ $(top_srcdir)/build/m4/shamrock/programs.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = cesarplayer.pc CesarPlayer.dll.config \ AssemblyInfo.cs CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" \ "$(DESTDIR)$(imagesdir)" "$(DESTDIR)$(logodir)" SCRIPTS = $(module_SCRIPTS) DIST_SOURCES = DATA = $(desktop_DATA) $(images_DATA) $(logo_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@ CESARPLAYER_LIBS = @CESARPLAYER_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DB4O_CFLAGS = @DB4O_CFLAGS@ DB4O_LIBS = @DB4O_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIBSHARP_CFLAGS = @GLIBSHARP_CFLAGS@ GLIBSHARP_LIBS = @GLIBSHARP_LIBS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTKSHARP_CFLAGS = @GTKSHARP_CFLAGS@ GTKSHARP_LIBS = @GTKSHARP_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MCS = @MCS@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MONO = @MONO@ MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@ MONO_MODULE_LIBS = @MONO_MODULE_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ NUNIT_CFLAGS = @NUNIT_CFLAGS@ NUNIT_LIBS = @NUNIT_LIBS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ASSEMBLY = CesarPlayer TARGET = library LINK = $(REF_DEP_CESARPLAYER) $(am__append_1) SOURCES = \ AssemblyInfo.cs \ gtk-gui/generated.cs \ Common/Constants.cs\ Common/Enum.cs\ Common/Handlers.cs\ Player/GstPlayer.cs \ Player/IPlayer.cs \ Player/ObjectManager.cs \ gtk-gui/LongoMatch.Gui.CapturerBin.cs \ gtk-gui/LongoMatch.Gui.PlayerBin.cs \ gtk-gui/LongoMatch.Gui.VolumeWindow.cs \ Gui/CapturerBin.cs \ Gui/PlayerBin.cs \ Gui/VolumeWindow.cs \ MultimediaFactory.cs \ Utils/IFramesCapturer.cs \ Utils/FramesCapturer.cs \ Utils/IMetadataReader.cs \ Utils/TimeString.cs \ Capturer/CaptureProperties.cs \ Capturer/GstCameraCapturer.cs \ Capturer/FakeCapturer.cs \ Capturer/ICapturer.cs \ Capturer/LiveSourceTimer.cs \ Capturer/ObjectManager.cs \ Editor/GstVideoSplitter.cs \ Editor/IVideoEditor.cs \ Editor/IVideoSplitter.cs \ Editor/VideoSegment.cs \ Editor/EditorState.cs \ Utils/Device.cs \ Utils/MediaFile.cs \ Utils/PreviewMediaFile.cs RESOURCES = \ gtk-gui/objects.xml \ gtk-gui/gui.stetic DLLCONFIG = CesarPlayer.dll.config # Initializers MONO_BASE_PATH = MONO_ADDINS_PATH = # Install Paths DEFAULT_INSTALL_DIR = $(pkglibdir) # External libraries to link against, generated from configure LINK_SYSTEM = -r:System LINK_CAIRO = -r:Mono.Cairo LINK_MONO_POSIX = -r:Mono.Posix LINK_MONO_ZEROCONF = $(MONO_ZEROCONF_LIBS) LINK_GLIB = $(GLIBSHARP_LIBS) LINK_GTK = $(GTKSHARP_LIBS) LINK_GCONF = $(GCONFSHARP_LIBS) LINK_DB40 = $(DB4O_LIBS) LINK_CESARPLAYER = -r:$(DIR_BIN)/CesarPlayer.dll REF_DEP_CESARPLAYER = $(LINK_GLIB) \ $(LINK_GTK) \ $(LINK_MONO_POSIX) REF_DEP_LONGOMATCH = \ $(LINK_MONO_POSIX) \ $(LINK_DB40) \ $(LINK_GLIB) \ $(LINK_GTK) \ $(LINK_CAIRO) \ $(LINK_CESARPLAYER) DIR_BIN = $(top_builddir)/bin # Cute hack to replace a space with something colon := : empty := space := $(empty) $(empty) # Build path to allow running uninstalled RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH)) UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE) SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES)) #SOURCES_BUILD += $(top_srcdir)/src/AssemblyInfo.cs RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES)) RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \ -resource:$(resource),$(notdir $(resource))) INSTALL_ICONS = $(top_srcdir)/build/private-icon-theme-installer "$(mkinstalldirs)" "$(INSTALL_DATA)" THEME_ICONS_SOURCE = $(wildcard $(srcdir)/ThemeIcons/*/*/*.png) $(wildcard $(srcdir)/ThemeIcons/scalable/*/*.svg) THEME_ICONS_RELATIVE = $(subst $(srcdir)/ThemeIcons/, , $(THEME_ICONS_SOURCE)) ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET))) ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION) DLLCONFIG_FILE = $(top_builddir)/bin/$(DLLCONFIG) INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR))) @ENABLE_TESTS_TRUE@ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS" FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE)) DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/') OUTPUT_FILES = \ $(ASSEMBLY_FILE) \ $(ASSEMBLY_FILE).mdb \ $(DLLCONFIG_FILE) moduledir = $(INSTALL_DIR_RESOLVED) module_SCRIPTS = $(OUTPUT_FILES) desktopdir = $(datadir)/applications desktop_in_files = $(DESKTOP_FILE) desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) imagesdir = @datadir@/@PACKAGE@/images images_DATA = $(IMAGES) logodir = @datadir@/icons/hicolor/48x48/apps logo_DATA = $(LOGO) EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_EXPANDED) \ $(THEME_ICONS_SOURCE) $(IMAGES) $(LOGO) $(desktop_in_files) \ CesarPlayer.dll.config AssemblyInfo.cs.in CLEANFILES = $(OUTPUT_FILES) DISTCLEANFILES = *.pidb $(desktop_DATA) MAINTAINERCLEANFILES = Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign CesarPlayer/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign CesarPlayer/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): cesarplayer.pc: $(top_builddir)/config.status $(srcdir)/cesarplayer.pc.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ CesarPlayer.dll.config: $(top_builddir)/config.status $(srcdir)/CesarPlayer.dll.config.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ AssemblyInfo.cs: $(top_builddir)/config.status $(srcdir)/AssemblyInfo.cs.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-moduleSCRIPTS: $(module_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \ } \ ; done uninstall-moduleSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(moduledir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(moduledir)" && rm -f $$files mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(desktopdir)" && rm -f $$files install-imagesDATA: $(images_DATA) @$(NORMAL_INSTALL) test -z "$(imagesdir)" || $(MKDIR_P) "$(DESTDIR)$(imagesdir)" @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \ done uninstall-imagesDATA: @$(NORMAL_UNINSTALL) @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(imagesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(imagesdir)" && rm -f $$files install-logoDATA: $(logo_DATA) @$(NORMAL_INSTALL) test -z "$(logodir)" || $(MKDIR_P) "$(DESTDIR)$(logodir)" @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logodir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(logodir)" || exit $$?; \ done uninstall-logoDATA: @$(NORMAL_UNINSTALL) @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(logodir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(logodir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) $(DATA) installdirs: for dir in "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(imagesdir)" "$(DESTDIR)$(logodir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-desktopDATA install-imagesDATA \ install-logoDATA install-moduleSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-desktopDATA uninstall-imagesDATA \ uninstall-logoDATA uninstall-moduleSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-hook \ install-desktopDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am \ install-imagesDATA install-info install-info-am \ install-logoDATA install-man install-moduleSCRIPTS install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-desktopDATA uninstall-hook uninstall-imagesDATA \ uninstall-logoDATA uninstall-moduleSCRIPTS @INTLTOOL_DESKTOP_RULE@ all: $(ASSEMBLY_FILE) theme-icons run: @pushd $(top_builddir); \ make run; \ popd; test: @pushd $(top_builddir)/tests; \ make $(ASSEMBLY); \ popd; build-debug: @echo $(DEP_LINK) $(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE) $(ASSEMBLY_FILE): $(SOURCES_BUILD) $(RESOURCES_EXPANDED) $(DEP_LINK) @mkdir -p $(top_builddir)/bin @if [ ! "x$(ENABLE_RELEASE)" = "xyes" ]; then \ $(top_srcdir)/build/dll-map-makefile-verifier $(srcdir)/Makefile.am $(srcdir)/$(notdir $@.config) && \ $(MONO) $(top_builddir)/build/dll-map-verifier.exe $(srcdir)/$(notdir $@.config) -iwinmm -ilibbanshee -ilibbnpx11 -ilibc -ilibc.so.6 -iintl -ilibmtp.dll -ilibigemacintegration.dylib -iCFRelease $(SOURCES_BUILD); \ fi; $(MCS) \ $(GMCS_FLAGS) \ $(ASSEMBLY_BUILD_FLAGS) \ -nowarn:0278 -nowarn:0078 $$warn -unsafe \ -define:HAVE_GTK_2_10 -define:NET_2_0 \ -debug -target:$(TARGET) -out:$@ \ $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \ $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD) @if [ -e $(srcdir)/$(notdir $@.config) ]; then \ cp $(srcdir)/$(notdir $@.config) $(top_builddir)/bin; \ fi; @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \ cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \ fi; theme-icons: $(THEME_ICONS_SOURCE) @$(INSTALL_ICONS) -il "$(BUILD_DATA_DIR)" "$(srcdir)" $(THEME_ICONS_RELATIVE) install-data-hook: $(THEME_ICONS_SOURCE) @$(INSTALL_ICONS) -i "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE) $(EXTRA_INSTALL_DATA_HOOK) uninstall-hook: $(THEME_ICONS_SOURCE) @$(INSTALL_ICONS) -u "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE) $(EXTRA_UNINSTALL_HOOK) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: longomatch-0.16.8/CesarPlayer/Player/0002755000175000017500000000000011601631301014402 500000000000000longomatch-0.16.8/CesarPlayer/Player/ObjectManager.cs0000644000175000017500000000222211601631101017344 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // namespace LongoMatch.GtkSharp.Video { public class ObjectManager { static bool initialized = false; // Call this method from the appropriate module init function. public static void Initialize () { if (initialized) return; initialized = true; GLib.GType.Register (LongoMatch.Video.Player.GstPlayer.GType, typeof (LongoMatch.Video.Player.GstPlayer)); } } } longomatch-0.16.8/CesarPlayer/Player/IPlayer.cs0000644000175000017500000000500211601631101016207 00000000000000// IPlayer.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gtk; using Gdk; using LongoMatch.Video.Common; namespace LongoMatch.Video.Player { public interface IPlayer { // Events event ErrorHandler Error; event System.EventHandler Eos; event StateChangeHandler StateChange; event TickHandler Tick; event System.EventHandler GotDuration; event System.EventHandler SegmentDone; event System.EventHandler ReadyToSeek; long StreamLength{ get; } long CurrentTime{ get; } double Position{ get; set; } bool LogoMode { get; set; } bool DrawingMode { set; } Pixbuf DrawingPixbuf { set; } bool ExpandLogo{ get; set; } double Volume{ get; set; } bool Playing { get; } string Logo { set; } Pixbuf LogoPixbuf{ set; } long AccurateCurrentTime{ get; } bool SeekTime(long time,float rate, bool accurate); bool Play(); bool Open(string mrl); bool SetRate(float rate); bool SetRateInSegment(float rate, long stopTime); void TogglePlay(); void Pause(); void Stop(); void Close(); void Dispose(); bool SegmentSeek(long start, long stop,float rate); bool SeekInSegment(long pos,float rate); bool NewFileSeek(long start, long stop,float rate); bool SegmentStartUpdate(long start,float rate); bool SegmentStopUpdate(long stop,float rate); bool SeekToNextFrame(float rate,bool in_segment); bool SeekToPreviousFrame(float rate,bool in_segment); Pixbuf GetCurrentFrame(int outwidth, int outheight); Pixbuf GetCurrentFrame(); void CancelProgramedStop(); } } longomatch-0.16.8/CesarPlayer/Player/GstPlayer.cs0000644000175000017500000012300411601631101016557 00000000000000// Copyright(C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // namespace LongoMatch.Video.Player { using System; using System.Collections; using System.Runtime.InteropServices; using LongoMatch.Video.Common; using LongoMatch.Video.Utils; #region Autogenerated code public class GstPlayer : Gtk.EventBox,IPlayer, IMetadataReader, IFramesCapturer{ [Obsolete] protected GstPlayer(GLib.GType gtype) : base(gtype) {} public GstPlayer(IntPtr raw) : base(raw) {} [DllImport("libcesarplayer.dll")] static extern unsafe IntPtr bacon_video_widget_new(int width, int height, int type, out IntPtr error); public unsafe GstPlayer (int width, int height, PlayerUseType type) : base (IntPtr.Zero) { if (GetType () != typeof (GstPlayer)) { throw new InvalidOperationException ("Can't override this constructor."); } IntPtr error = IntPtr.Zero; Raw = bacon_video_widget_new(width, height, (int) type, out error); if (error != IntPtr.Zero) throw new GLib.GException (error); } [GLib.Property ("seekable")] public bool Seekable { get { GLib.Value val = GetProperty ("seekable"); bool ret = (bool) val; val.Dispose (); return ret; } } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_get_logo_mode(IntPtr raw); [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_logo_mode(IntPtr raw, bool logo_mode); [GLib.Property ("logo_mode")] public bool LogoMode { get { bool raw_ret = bacon_video_widget_get_logo_mode(Handle); bool ret = raw_ret; return ret; } set { bacon_video_widget_set_logo_mode(Handle, value); } } [GLib.Property ("expand_logo")] public bool ExpandLogo { get { GLib.Value val = GetProperty ("expand_logo"); bool ret = (bool) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("expand_logo", val); val.Dispose (); } } [DllImport("libcesarplayer.dll")] static extern long bacon_video_widget_get_stream_length(IntPtr raw); [GLib.Property ("stream_length")] public long StreamLength { get { long raw_ret = bacon_video_widget_get_stream_length(Handle); long ret = raw_ret; return ret; } } [DllImport("libcesarplayer.dll")] static extern double bacon_video_widget_get_volume(IntPtr raw); [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_volume(IntPtr raw, double volume); [GLib.Property ("volume")] public double Volume { get { double raw_ret = bacon_video_widget_get_volume(Handle); double ret = raw_ret; return ret; } set { bacon_video_widget_set_volume(Handle, value); } } [GLib.Property ("showcursor")] public bool Showcursor { get { GLib.Value val = GetProperty ("showcursor"); bool ret = (bool) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("showcursor", val); val.Dispose (); } } [GLib.Property ("playing")] public bool Playing { get { GLib.Value val = GetProperty ("playing"); bool ret = (bool) val; val.Dispose (); return ret; } } [DllImport("libcesarplayer.dll")] static extern double bacon_video_widget_get_position(IntPtr raw); [GLib.Property ("position")] public double Position { get { double raw_ret = bacon_video_widget_get_position(Handle); double ret = raw_ret; return ret; } set { this.Seek(value,1); } } [GLib.Property ("mediadev")] public string Mediadev { get { GLib.Value val = GetProperty ("mediadev"); string ret = (string) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("mediadev", val); val.Dispose (); } } #pragma warning disable 0169 [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void ReadyToSeekVMDelegate (IntPtr bvw); static ReadyToSeekVMDelegate ReadyToSeekVMCallback; static void readytoseek_cb (IntPtr bvw) { try { GstPlayer bvw_managed = GLib.Object.GetObject (bvw, false) as GstPlayer; bvw_managed.OnReadyToSeek (); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideReadyToSeek (GLib.GType gtype) { if (ReadyToSeekVMCallback == null) ReadyToSeekVMCallback = new ReadyToSeekVMDelegate (readytoseek_cb); OverrideVirtualMethod (gtype, "ready_to_seek", ReadyToSeekVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Player.GstPlayer), ConnectionMethod="OverrideReadyToSeek")] protected virtual void OnReadyToSeek () { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (1); GLib.Value[] vals = new GLib.Value [1]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("ready_to_seek")] public event System.EventHandler ReadyToSeek { add { GLib.Signal sig = GLib.Signal.Lookup (this, "ready_to_seek"); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "ready_to_seek"); sig.RemoveDelegate (value); } } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void StateChangeVMDelegate (IntPtr bvw, bool playing); static StateChangeVMDelegate StateChangeVMCallback; static void statechange_cb (IntPtr bvw, bool playing) { try { GstPlayer bvw_managed = GLib.Object.GetObject (bvw, false) as GstPlayer; bvw_managed.OnStateChange (playing); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideStateChange (GLib.GType gtype) { if (StateChangeVMCallback == null) StateChangeVMCallback = new StateChangeVMDelegate (statechange_cb); OverrideVirtualMethod (gtype, "state_change", StateChangeVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Player.GstPlayer), ConnectionMethod="OverrideStateChange")] protected virtual void OnStateChange (bool playing) { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (2); GLib.Value[] vals = new GLib.Value [2]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); vals [1] = new GLib.Value (playing); inst_and_params.Append (vals [1]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("state_change")] public event StateChangeHandler StateChange { add { GLib.Signal sig = GLib.Signal.Lookup (this, "state_change", typeof (StateChangeArgs)); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "state_change", typeof (StateChangeArgs)); sig.RemoveDelegate (value); } } /*[UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void GotRedirectVMDelegate (IntPtr bvw, IntPtr mrl); static GotRedirectVMDelegate GotRedirectVMCallback; static void gotredirect_cb (IntPtr bvw, IntPtr mrl) { try { GstPlayer bvw_managed = GLib.Object.GetObject (bvw, false) as GstPlayer; bvw_managed.OnGotRedirect (GLib.Marshaller.Utf8PtrToString (mrl)); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideGotRedirect (GLib.GType gtype) { if (GotRedirectVMCallback == null) GotRedirectVMCallback = new GotRedirectVMDelegate (gotredirect_cb); OverrideVirtualMethod (gtype, "got-redirect", GotRedirectVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Player.GstPlayer), ConnectionMethod="OverrideGotRedirect")] protected virtual void OnGotRedirect (string mrl) { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (2); GLib.Value[] vals = new GLib.Value [2]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); vals [1] = new GLib.Value (mrl); inst_and_params.Append (vals [1]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("got-redirect")] public event GotRedirectHandler GotRedirect { add { GLib.Signal sig = GLib.Signal.Lookup (this, "got-redirect", typeof (LongoMatch.GotRedirectArgs)); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "got-redirect", typeof (LongoMatch.GotRedirectArgs)); sig.RemoveDelegate (value); } }*/ [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void SegmentDoneVMDelegate (IntPtr bvw); static SegmentDoneVMDelegate SegmentDoneVMCallback; static void segmentdone_cb (IntPtr bvw) { try { GstPlayer bvw_managed = GLib.Object.GetObject (bvw, false) as GstPlayer; bvw_managed.OnSegmentDone (); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideSegmentDone (GLib.GType gtype) { if (SegmentDoneVMCallback == null) SegmentDoneVMCallback = new SegmentDoneVMDelegate (segmentdone_cb); OverrideVirtualMethod (gtype, "segment_done", SegmentDoneVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Player.GstPlayer), ConnectionMethod="OverrideSegmentDone")] protected virtual void OnSegmentDone () { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (1); GLib.Value[] vals = new GLib.Value [1]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("segment_done")] public event System.EventHandler SegmentDone { add { GLib.Signal sig = GLib.Signal.Lookup (this, "segment_done"); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "segment_done"); sig.RemoveDelegate (value); } } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void EosVMDelegate (IntPtr bvw); static EosVMDelegate EosVMCallback; static void eos_cb (IntPtr bvw) { try { GstPlayer bvw_managed = GLib.Object.GetObject (bvw, false) as GstPlayer; bvw_managed.OnEos (); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideEos (GLib.GType gtype) { if (EosVMCallback == null) EosVMCallback = new EosVMDelegate (eos_cb); OverrideVirtualMethod (gtype, "eos", EosVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Player.GstPlayer), ConnectionMethod="OverrideEos")] protected virtual void OnEos () { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (1); GLib.Value[] vals = new GLib.Value [1]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("eos")] public event System.EventHandler Eos { add { GLib.Signal sig = GLib.Signal.Lookup (this, "eos"); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "eos"); sig.RemoveDelegate (value); } } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void ErrorVMDelegate (IntPtr bvw, IntPtr message); static ErrorVMDelegate ErrorVMCallback; static void error_cb (IntPtr bvw, IntPtr message) { try { GstPlayer bvw_managed = GLib.Object.GetObject (bvw, false) as GstPlayer; bvw_managed.OnError (GLib.Marshaller.Utf8PtrToString (message)); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideError (GLib.GType gtype) { if (ErrorVMCallback == null) ErrorVMCallback = new ErrorVMDelegate (error_cb); OverrideVirtualMethod (gtype, "error", ErrorVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Player.GstPlayer), ConnectionMethod="OverrideError")] protected virtual void OnError (string message) { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (2); GLib.Value[] vals = new GLib.Value [2]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); vals [1] = new GLib.Value (message); inst_and_params.Append (vals [1]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("error")] public event ErrorHandler Error { add { GLib.Signal sig = GLib.Signal.Lookup (this, "error", typeof (ErrorArgs)); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "error", typeof (ErrorArgs)); sig.RemoveDelegate (value); } } /*[UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void BufferingVMDelegate (IntPtr bvw, uint progress); static BufferingVMDelegate BufferingVMCallback; static void buffering_cb (IntPtr bvw, uint progress) { try { GstPlayer bvw_managed = GLib.Object.GetObject (bvw, false) as GstPlayer; bvw_managed.OnBuffering (progress); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideBuffering (GLib.GType gtype) { if (BufferingVMCallback == null) BufferingVMCallback = new BufferingVMDelegate (buffering_cb); OverrideVirtualMethod (gtype, "buffering", BufferingVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Player.GstPlayer), ConnectionMethod="OverrideBuffering")] protected virtual void OnBuffering (uint progress) { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (2); GLib.Value[] vals = new GLib.Value [2]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); vals [1] = new GLib.Value (progress); inst_and_params.Append (vals [1]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("buffering")] public event LongoMatch.BufferingHandler Buffering { add { GLib.Signal sig = GLib.Signal.Lookup (this, "buffering", typeof (LongoMatch.BufferingArgs)); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "buffering", typeof (LongoMatch.BufferingArgs)); sig.RemoveDelegate (value); } }*/ [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void ChannelsChangeVMDelegate (IntPtr bvw); static ChannelsChangeVMDelegate ChannelsChangeVMCallback; static void channelschange_cb (IntPtr bvw) { try { GstPlayer bvw_managed = GLib.Object.GetObject (bvw, false) as GstPlayer; bvw_managed.OnChannelsChange (); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideChannelsChange (GLib.GType gtype) { if (ChannelsChangeVMCallback == null) ChannelsChangeVMCallback = new ChannelsChangeVMDelegate (channelschange_cb); OverrideVirtualMethod (gtype, "channels-change", ChannelsChangeVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Player.GstPlayer), ConnectionMethod="OverrideChannelsChange")] protected virtual void OnChannelsChange () { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (1); GLib.Value[] vals = new GLib.Value [1]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("channels-change")] public event System.EventHandler ChannelsChange { add { GLib.Signal sig = GLib.Signal.Lookup (this, "channels-change"); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "channels-change"); sig.RemoveDelegate (value); } } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void GotMetadataVMDelegate (IntPtr bvw); static GotMetadataVMDelegate GotMetadataVMCallback; static void gotmetadata_cb (IntPtr bvw) { try { GstPlayer bvw_managed = GLib.Object.GetObject (bvw, false) as GstPlayer; bvw_managed.OnGotMetadata (); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideGotMetadata (GLib.GType gtype) { if (GotMetadataVMCallback == null) GotMetadataVMCallback = new GotMetadataVMDelegate (gotmetadata_cb); OverrideVirtualMethod (gtype, "got-metadata", GotMetadataVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Player.GstPlayer), ConnectionMethod="OverrideGotMetadata")] protected virtual void OnGotMetadata () { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (1); GLib.Value[] vals = new GLib.Value [1]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("got-metadata")] public event System.EventHandler GotMetadata { add { GLib.Signal sig = GLib.Signal.Lookup (this, "got-metadata"); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "got-metadata"); sig.RemoveDelegate (value); } } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void TickVMDelegate (IntPtr bvw, long current_time, long stream_length, float current_position, bool seekable); static TickVMDelegate TickVMCallback; static void tick_cb (IntPtr bvw, long current_time, long stream_length, float current_position, bool seekable) { try { GstPlayer bvw_managed = GLib.Object.GetObject (bvw, false) as GstPlayer; bvw_managed.OnTick (current_time, stream_length, current_position, seekable); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideTick (GLib.GType gtype) { if (TickVMCallback == null) TickVMCallback = new TickVMDelegate (tick_cb); OverrideVirtualMethod (gtype, "tick", TickVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Player.GstPlayer), ConnectionMethod="OverrideTick")] protected virtual void OnTick (long current_time, long stream_length, float current_position, bool seekable) { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (5); GLib.Value[] vals = new GLib.Value [5]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); vals [1] = new GLib.Value (current_time); inst_and_params.Append (vals [1]); vals [2] = new GLib.Value (stream_length); inst_and_params.Append (vals [2]); vals [3] = new GLib.Value (current_position); inst_and_params.Append (vals [3]); vals [4] = new GLib.Value (seekable); inst_and_params.Append (vals [4]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("tick")] public event TickHandler Tick { add { GLib.Signal sig = GLib.Signal.Lookup (this, "tick", typeof (TickArgs)); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "tick", typeof (TickArgs)); sig.RemoveDelegate (value); } } /*[UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void TitleChangeVMDelegate (IntPtr bvw, IntPtr title); static TitleChangeVMDelegate TitleChangeVMCallback; static void titlechange_cb (IntPtr bvw, IntPtr title) { try { GstPlayer bvw_managed = GLib.Object.GetObject (bvw, false) as GstPlayer; bvw_managed.OnTitleChange (GLib.Marshaller.Utf8PtrToString (title)); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideTitleChange (GLib.GType gtype) { if (TitleChangeVMCallback == null) TitleChangeVMCallback = new TitleChangeVMDelegate (titlechange_cb); OverrideVirtualMethod (gtype, "title-change", TitleChangeVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Player.GstPlayer), ConnectionMethod="OverrideTitleChange")] protected virtual void OnTitleChange (string title) { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (2); GLib.Value[] vals = new GLib.Value [2]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); vals [1] = new GLib.Value (title); inst_and_params.Append (vals [1]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("title-change")] public event TitleChangeHandler TitleChange { add { GLib.Signal sig = GLib.Signal.Lookup (this, "title-change", typeof (LongoMatch.TitleChangeArgs)); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "title-change", typeof (LongoMatch.TitleChangeArgs)); sig.RemoveDelegate (value); } }*/ [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void GotDurationVMDelegate (IntPtr bvw); static GotDurationVMDelegate GotDurationVMCallback; static void gotduration_cb (IntPtr bvw) { try { GstPlayer bvw_managed = GLib.Object.GetObject (bvw, false) as GstPlayer; bvw_managed.OnGotDuration (); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideGotDuration (GLib.GType gtype) { if (GotDurationVMCallback == null) GotDurationVMCallback = new GotDurationVMDelegate (gotduration_cb); OverrideVirtualMethod (gtype, "got_duration", GotDurationVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Player.GstPlayer), ConnectionMethod="OverrideGotDuration")] protected virtual void OnGotDuration () { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (1); GLib.Value[] vals = new GLib.Value [1]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("got_duration")] public event System.EventHandler GotDuration { add { GLib.Signal sig = GLib.Signal.Lookup (this, "got_duration"); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "got_duration"); sig.RemoveDelegate (value); } } #pragma warning restore 0169 [DllImport("libcesarplayer.dll")] static extern IntPtr bacon_video_widget_get_backend_name(IntPtr raw); public string BackendName { get { IntPtr raw_ret = bacon_video_widget_get_backend_name(Handle); string ret = GLib.Marshaller.PtrToStringGFree(raw_ret); return ret; } } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_set_rate(IntPtr raw, float rate); public bool SetRate(float rate) { bool raw_ret = bacon_video_widget_set_rate(Handle, rate); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_is_playing(IntPtr raw); public bool IsPlaying { get { bool raw_ret = bacon_video_widget_is_playing(Handle); bool ret = raw_ret; return ret; } } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_get_auto_resize(IntPtr raw); [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_auto_resize(IntPtr raw, bool auto_resize); public bool AutoResize { get { bool raw_ret = bacon_video_widget_get_auto_resize(Handle); bool ret = raw_ret; return ret; } set { bacon_video_widget_set_auto_resize(Handle, value); } } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_seek(IntPtr raw, double position, float rate); public bool Seek(double position, float rate) { bool raw_ret = bacon_video_widget_seek(Handle, position, rate); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_get_show_cursor(IntPtr raw); [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_show_cursor(IntPtr raw, bool show_cursor); public bool ShowCursor { get { bool raw_ret = bacon_video_widget_get_show_cursor(Handle); bool ret = raw_ret; return ret; } set { bacon_video_widget_set_show_cursor(Handle, value); } } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_init_backend(out int argc, IntPtr argv); public static int InitBackend(string argv) { int argc; bacon_video_widget_init_backend(out argc, GLib.Marshaller.StringToPtrGStrdup(argv)); return argc; } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_pause(IntPtr raw); public void Pause() { bacon_video_widget_pause(Handle); } [DllImport("libcesarplayer.dll")] static extern double bacon_video_widget_get_zoom(IntPtr raw); [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_zoom(IntPtr raw, double zoom); public double Zoom { get { double raw_ret = bacon_video_widget_get_zoom(Handle); double ret = raw_ret; return ret; } set { bacon_video_widget_set_zoom(Handle, value); } } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_seek_in_segment(IntPtr raw, long pos, float rate); public bool SeekInSegment(long pos, float rate) { bool raw_ret = bacon_video_widget_seek_in_segment(Handle, pos, rate); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_segment_seek(IntPtr raw, long start, long stop, float rate); public bool SegmentSeek(long start, long stop, float rate) { bool raw_ret = bacon_video_widget_segment_seek(Handle, start, stop, rate); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_stop(IntPtr raw); public void Stop() { bacon_video_widget_stop(Handle); } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_has_next_track(IntPtr raw); public bool HasNextTrack { get { bool raw_ret = bacon_video_widget_has_next_track(Handle); bool ret = raw_ret; return ret; } } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_subtitle_font(IntPtr raw, IntPtr font); public string SubtitleFont { set { IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value); bacon_video_widget_set_subtitle_font(Handle, native_value); GLib.Marshaller.Free (native_value); } } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_set_visuals(IntPtr raw, IntPtr name); public bool SetVisuals(string name) { IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name); bool raw_ret = bacon_video_widget_set_visuals(Handle, native_name); bool ret = raw_ret; GLib.Marshaller.Free (native_name); return ret; } [DllImport("libcesarplayer.dll")] static extern long bacon_video_widget_get_accurate_current_time(IntPtr raw); public long AccurateCurrentTime { get { long raw_ret = bacon_video_widget_get_accurate_current_time(Handle); long ret = raw_ret; return ret; } } [DllImport("libcesarplayer.dll")] static extern int bacon_video_widget_get_video_property(IntPtr raw, int type); public int GetVideoProperty(VideoProperty type) { int raw_ret = bacon_video_widget_get_video_property(Handle, (int) type); int ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern int bacon_video_widget_get_language(IntPtr raw); [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_language(IntPtr raw, int language); public int Language { get { int raw_ret = bacon_video_widget_get_language(Handle); int ret = raw_ret; return ret; } set { bacon_video_widget_set_language(Handle, value); } } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_seek_time(IntPtr raw, long time, float rate, bool accurate); public bool SeekTime(long time, float rate, bool accurate) { bool raw_ret = bacon_video_widget_seek_time(Handle, time, rate, accurate); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_is_seekable(IntPtr raw); public bool IsSeekable { get { bool raw_ret = bacon_video_widget_is_seekable(Handle); bool ret = raw_ret; return ret; } } [DllImport("libcesarplayer.dll")] static extern unsafe bool bacon_video_widget_can_get_frames(IntPtr raw, out IntPtr error); public unsafe bool CanGetFrames() { IntPtr error = IntPtr.Zero; bool raw_ret = bacon_video_widget_can_get_frames(Handle, out error); bool ret = raw_ret; if (error != IntPtr.Zero) throw new GLib.GException (error); return ret; } [DllImport("libcesarplayer.dll")] static extern long bacon_video_widget_get_current_time(IntPtr raw); public long CurrentTime { get { long raw_ret = bacon_video_widget_get_current_time(Handle); long ret = raw_ret; return ret; } } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_seek_to_previous_frame(IntPtr raw, float rate, bool in_segment); public bool SeekToPreviousFrame(float rate, bool in_segment) { bool raw_ret = bacon_video_widget_seek_to_previous_frame(Handle, rate, in_segment); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern IntPtr bacon_video_widget_get_type(); public static new GLib.GType GType { get { IntPtr raw_ret = bacon_video_widget_get_type(); GLib.GType ret = new GLib.GType(raw_ret); return ret; } } [DllImport("libcesarplayer.dll")] static extern IntPtr bacon_video_widget_get_languages(IntPtr raw); public GLib.List Languages { get { IntPtr raw_ret = bacon_video_widget_get_languages(Handle); GLib.List ret = new GLib.List(raw_ret); return ret; } } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_fullscreen(IntPtr raw, bool fullscreen); public bool Fullscreen { set { bacon_video_widget_set_fullscreen(Handle, value); } } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_set_audio_out_type(IntPtr raw, int type); public bool SetAudioOutType(AudioOutType type) { bool raw_ret = bacon_video_widget_set_audio_out_type(Handle, (int) type); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_has_previous_track(IntPtr raw); public bool HasPreviousTrack { get { bool raw_ret = bacon_video_widget_has_previous_track(Handle); bool ret = raw_ret; return ret; } } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_logo_pixbuf(IntPtr raw, IntPtr logo); public Gdk.Pixbuf LogoPixbuf { set { bacon_video_widget_set_logo_pixbuf(Handle, value == null ? IntPtr.Zero : value.Handle); } } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_drawing_pixbuf(IntPtr raw, IntPtr drawing_mode); public Gdk.Pixbuf DrawingPixbuf { set { bacon_video_widget_set_drawing_pixbuf(Handle, value == null ? IntPtr.Zero : value.Handle); } } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_drawing_mode(IntPtr raw, bool drawing_mode); public bool DrawingMode { set { bacon_video_widget_set_drawing_mode(Handle, value); } } /*[DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_visuals_quality(IntPtr raw, int quality); public GstVisualsQuality VisualsQuality { set { bacon_video_widget_set_visuals_quality(Handle, (int) value); } }*/ [DllImport("libcesarplayer.dll")] static extern int bacon_video_widget_get_connection_speed(IntPtr raw); [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_connection_speed(IntPtr raw, int speed); public int ConnectionSpeed { get { int raw_ret = bacon_video_widget_get_connection_speed(Handle); int ret = raw_ret; return ret; } set { bacon_video_widget_set_connection_speed(Handle, value); } } [DllImport("libcesarplayer.dll")] static extern IntPtr bacon_video_widget_get_subtitles(IntPtr raw); public GLib.List Subtitles { get { IntPtr raw_ret = bacon_video_widget_get_subtitles(Handle); GLib.List ret = new GLib.List(raw_ret); return ret; } } [DllImport("libcesarplayer.dll")] static extern IntPtr bacon_video_widget_get_current_frame(IntPtr raw); [DllImport("libcesarplayer.dll")] static extern IntPtr bacon_video_widget_unref_pixbuf(IntPtr raw); public Gdk.Pixbuf GetCurrentFrame(int outwidth, int outheight) { IntPtr raw_ret = bacon_video_widget_get_current_frame(Handle); Gdk.Pixbuf unmanaged = GLib.Object.GetObject(raw_ret) as Gdk.Pixbuf; if (unmanaged == null) return null; Gdk.Pixbuf managed; int h = unmanaged.Height; int w = unmanaged.Width; double rate = (double)w/(double)h; if (outwidth == -1 || outheight == -1){ outwidth = w; outheight = h; }else if (h>w){ outwidth = (int)(outheight*rate); }else{ outheight = (int)(outwidth/rate); } managed = unmanaged.ScaleSimple(outwidth,outheight,Gdk.InterpType.Bilinear); unmanaged.Dispose(); bacon_video_widget_unref_pixbuf(raw_ret); return managed; } public Gdk.Pixbuf GetCurrentFrame() { return GetCurrentFrame(-1,-1); } [DllImport("libcesarplayer.dll")] static extern IntPtr bacon_video_widget_get_visuals_list(IntPtr raw); public GLib.List VisualsList { get { IntPtr raw_ret = bacon_video_widget_get_visuals_list(Handle); GLib.List ret = new GLib.List(raw_ret); return ret; } } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_segment_stop_update(IntPtr raw, long stop, float rate); public bool SegmentStopUpdate(long stop, float rate) { bool raw_ret = bacon_video_widget_segment_stop_update(Handle, stop, rate); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_subtitle_encoding(IntPtr raw, IntPtr encoding); public string SubtitleEncoding { set { IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value); bacon_video_widget_set_subtitle_encoding(Handle, native_value); GLib.Marshaller.Free (native_value); } } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_aspect_ratio(IntPtr raw, int ratio); public AspectRatio AspectRatio { set { bacon_video_widget_set_aspect_ratio(Handle, (int) value); } } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_video_property(IntPtr raw, int type, int value); public void SetVideoProperty(VideoProperty type, int value) { bacon_video_widget_set_video_property(Handle, (int) type, value); } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_get_deinterlacing(IntPtr raw); [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_deinterlacing(IntPtr raw, bool deinterlace); public bool Deinterlacing { get { bool raw_ret = bacon_video_widget_get_deinterlacing(Handle); bool ret = raw_ret; return ret; } set { bacon_video_widget_set_deinterlacing(Handle, value); } } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_set_rate_in_segment(IntPtr raw, float rate, long stop); public bool SetRateInSegment(float rate, long stop) { bool raw_ret = bacon_video_widget_set_rate_in_segment(Handle, rate, stop); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_get_metadata(IntPtr raw, int type, IntPtr val); public object GetMetadata(MetadataType type) { GLib.Value val = new GLib.Value(); IntPtr native_value = GLib.Marshaller.StructureToPtrAlloc (val); bacon_video_widget_get_metadata(Handle, (int) type, native_value); val = (GLib.Value) Marshal.PtrToStructure (native_value, typeof (GLib.Value)); Marshal.FreeHGlobal (native_value); return val.Val; } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_can_set_volume(IntPtr raw); public bool CanSetVolume() { bool raw_ret = bacon_video_widget_can_set_volume(Handle); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_can_direct_seek(IntPtr raw); public bool CanDirectSeek() { bool raw_ret = bacon_video_widget_can_direct_seek(Handle); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_close(IntPtr raw); public void Close() { bacon_video_widget_close(Handle); } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_play(IntPtr raw); public bool Play() { bool raw_ret = bacon_video_widget_play(Handle); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern int bacon_video_widget_get_subtitle(IntPtr raw); [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_subtitle(IntPtr raw, int subtitle); public int Subtitle { get { int raw_ret = bacon_video_widget_get_subtitle(Handle); int ret = raw_ret; return ret; } set { bacon_video_widget_set_subtitle(Handle, value); } } [DllImport("libcesarplayer.dll")] static extern int bacon_video_widget_error_quark(); public static int ErrorQuark() { int raw_ret = bacon_video_widget_error_quark(); int ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern unsafe bool bacon_video_widget_open(IntPtr raw, IntPtr mrl, IntPtr subtitle_uri, out IntPtr error); public unsafe bool Open(string mrl, string subtitle_uri) { IntPtr native_mrl = GLib.Marshaller.StringToPtrGStrdup (mrl); IntPtr native_subtitle_uri = GLib.Marshaller.StringToPtrGStrdup (subtitle_uri); IntPtr error = IntPtr.Zero; bool raw_ret = bacon_video_widget_open(Handle, native_mrl, native_subtitle_uri, out error); bool ret = raw_ret; GLib.Marshaller.Free (native_mrl); GLib.Marshaller.Free (native_subtitle_uri); if (error != IntPtr.Zero) throw new GLib.GException (error); return ret; } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_new_file_seek(IntPtr raw, long start,long stop,float rate); public bool NewFileSeek(long start, long stop,float rate) { bool raw_ret = bacon_video_widget_new_file_seek(Handle,start,stop,rate); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_segment_start_update(IntPtr raw, long start, float rate); public bool SegmentStartUpdate(long start, float rate) { bool raw_ret = bacon_video_widget_segment_start_update(Handle, start, rate); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_can_deinterlace(IntPtr raw); public bool CanDeinterlace() { bool raw_ret = bacon_video_widget_can_deinterlace(Handle); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_show_visuals(IntPtr raw, bool show_visuals); public bool ShowVisuals { set { bacon_video_widget_set_show_visuals(Handle, value); } } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_logo(IntPtr raw, IntPtr filename); public string Logo { set { bacon_video_widget_set_logo(Handle, GLib.Marshaller.StringToPtrGStrdup(value)); } } [DllImport("libcesarplayer.dll")] static extern bool bacon_video_widget_seek_to_next_frame(IntPtr raw, float rate, bool in_segment); public bool SeekToNextFrame(float rate, bool in_segment) { bool raw_ret = bacon_video_widget_seek_to_next_frame(Handle, rate, in_segment); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern void bacon_video_widget_set_scale_ratio(IntPtr raw, float ratio); public float ScaleRatio { set { bacon_video_widget_set_scale_ratio(Handle, value); } } static GstPlayer () { LongoMatch.GtkSharp.Video.ObjectManager.Initialize (); } #endregion public bool SeekTime(long time, bool accurate) { return SeekTime(time,1,accurate); } public void TogglePlay(){ if(!this.Playing){ this.Play(); } else{ this.Pause(); } } public bool Open(string mrl){ return Open(mrl, null); } public void CancelProgramedStop(){ this.SegmentSeek(this.CurrentTime,this.StreamLength,1); } } } longomatch-0.16.8/CesarPlayer/AssemblyInfo.cs0000644000175000017500000000363411601631276016027 00000000000000// Copyright(C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System.Reflection; using System.Runtime.CompilerServices; // Information about this assembly is defined by the following // attributes. // // change them to the information which is associated with the assembly // you compile. [assembly: AssemblyTitle("CesarPlayer")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("Andoni Morales Alastruey")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // The assembly version has following format : // // Major.Minor.Build.Revision // // You can specify all values by your own or you can build default build and revision // numbers with the '*' character (the default): [assembly: AssemblyVersion("0.16.8")] // The following attributes specify the key for the sign of your assembly. See the // .NET Framework documentation for more information about signing. // This is not required, if you don't want signing let these attributes like they're. //[assembly: AssemblyDelaySign(false)] //[assembly: AssemblyKeyFile("cesarplayer.key")] longomatch-0.16.8/CesarPlayer/CesarPlayer.dll.config0000644000175000017500000000020311601631276017245 00000000000000 longomatch-0.16.8/CesarPlayer/CesarPlayer.dll.config.in0000644000175000017500000000020511601631101017637 00000000000000 longomatch-0.16.8/CesarPlayer/Gui/0002755000175000017500000000000011601631301013672 500000000000000longomatch-0.16.8/CesarPlayer/Gui/VolumeWindow.cs0000644000175000017500000000340611601631101016577 00000000000000// VolumeWindow.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using LongoMatch.Video.Common; namespace LongoMatch.Gui { public partial class VolumeWindow : Gtk.Window { public event VolumeChangedHandler VolumeChanged; public VolumeWindow() : base(Gtk.WindowType.Toplevel) { this.Build(); volumescale.Adjustment.PageIncrement = 0.0001; volumescale.Adjustment.StepIncrement = 0.0001; } public void SetLevel(double level){ volumescale.Value = level ; } protected virtual void OnLessbuttonClicked(object sender, System.EventArgs e) { volumescale.Value = volumescale.Value - 0.1; } protected virtual void OnMorebuttonClicked(object sender, System.EventArgs e) { volumescale.Value = volumescale.Value + 0.1; } protected virtual void OnVolumescaleValueChanged(object sender, System.EventArgs e) { VolumeChanged(volumescale.Value); } protected virtual void OnFocusOutEvent (object o, Gtk.FocusOutEventArgs args) { this.Hide(); } } } longomatch-0.16.8/CesarPlayer/Gui/CapturerBin.cs0000644000175000017500000002370511601631101016362 00000000000000// CapturerBin.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gtk; using Gdk; using GLib; using LongoMatch.Video; using LongoMatch.Video.Common; using LongoMatch.Video.Capturer; using LongoMatch.Video.Utils; using Mono.Unix; namespace LongoMatch.Gui { [System.ComponentModel.Category("CesarPlayer")] [System.ComponentModel.ToolboxItem(true)] public partial class CapturerBin : Gtk.Bin { public event EventHandler CaptureFinished; public event ErrorHandler Error; private Pixbuf logopix; private CapturePropertiesStruct captureProps; private CapturerType capturerType; private bool captureStarted; private bool capturing; private const int THUMBNAIL_MAX_WIDTH = 100; ICapturer capturer; public CapturerBin() { this.Build(); captureProps = new CapturePropertiesStruct(); captureProps.Width = 320; captureProps.Height = 240; captureProps.VideoBitrate = 1000; captureProps.AudioBitrate = 128; captureProps.VideoEncoder = VideoEncoderType.H264; captureProps.AudioEncoder = AudioEncoderType.Aac; captureProps.Muxer = VideoMuxerType.Mp4; captureProps.OutputFile = ""; captureProps.CaptureSourceType = CaptureSourceType.Raw; Type = CapturerType.Fake; } public CapturerType Type { set { /* Close any previous instance of the capturer */ Close(); MultimediaFactory factory = new MultimediaFactory(); capturer = factory.getCapturer(value); capturer.EllapsedTime += OnTick; if (value != CapturerType.Fake){ capturer.Error += OnError; capturer.DeviceChange += OnDeviceChange; capturerhbox.Add((Widget)capturer); (capturer as Widget).Visible = true; capturerhbox.Visible = true; logodrawingarea.Visible = false; } else{ logodrawingarea.Visible = true; capturerhbox.Visible = false; } SetProperties(); capturerType = value; } } public string Logo{ set{ try{ this.logopix = new Pixbuf(value); }catch{ /* FIXME: Add log */ } } } public int CurrentTime { get { if (capturer == null) return -1; return capturer.CurrentTime; } } public bool Capturing{ get{ return capturing; } } public CapturePropertiesStruct CaptureProperties{ set{ captureProps = value; } } public void Start(){ if (capturer == null) return; capturing = true; captureStarted = true; recbutton.Visible = false; pausebutton.Visible = true; stopbutton.Visible = true; capturer.Start(); } public void TogglePause(){ if (capturer == null) return; capturing = !capturing; recbutton.Visible = !capturing; pausebutton.Visible = capturing; capturer.TogglePause(); } public void Stop() { if (capturer != null){ capturing = false; capturer.Stop(); } } public void Run(){ if (capturer != null) capturer.Run(); } public void Close(){ /* resetting common properties */ pausebutton.Visible = false; stopbutton.Visible = false; recbutton.Visible = true; captureStarted = false; capturing = false; OnTick(0); if (capturer == null) return; /* stopping and closing capturer */ try { capturer.Stop(); capturer.Close(); if (capturerType == CapturerType.Live){ /* release and dispose live capturer */ capturer.Error -= OnError; capturer.DeviceChange += OnDeviceChange; capturerhbox.Remove(capturer as Gtk.Widget); capturer.Dispose(); } } catch (Exception e) {} capturer = null; } public Pixbuf CurrentMiniatureFrame { get { int h, w; double rate; Pixbuf scaled_pix; Pixbuf pix; if (capturer == null) return null; pix = capturer.CurrentFrame; if (pix == null) return null; w = pix.Width; h = pix.Height; rate = (double)w / (double)h; if (h > w) { w = (int)(THUMBNAIL_MAX_WIDTH * rate); h = THUMBNAIL_MAX_WIDTH; } else { h = (int)(THUMBNAIL_MAX_WIDTH / rate); w = THUMBNAIL_MAX_WIDTH; } scaled_pix = pix.ScaleSimple (w, h, Gdk.InterpType.Bilinear); pix.Dispose(); return scaled_pix; } } private void SetProperties(){ if (capturer == null) return; capturer.DeviceID = captureProps.DeviceID; capturer.OutputFile = captureProps.OutputFile; capturer.OutputHeight = captureProps.Height; capturer.OutputWidth = captureProps.Width; capturer.SetVideoEncoder(captureProps.VideoEncoder); capturer.SetAudioEncoder(captureProps.AudioEncoder); capturer.SetVideoMuxer(captureProps.Muxer); capturer.SetSource(captureProps.CaptureSourceType); capturer.VideoBitrate = captureProps.VideoBitrate; capturer.AudioBitrate = captureProps.AudioBitrate; } protected virtual void OnRecbuttonClicked (object sender, System.EventArgs e) { if (capturer == null) return; if (captureStarted == true){ if (capturing) return; TogglePause(); } else Start(); } protected virtual void OnPausebuttonClicked (object sender, System.EventArgs e) { if (capturer != null && capturing) TogglePause(); } protected virtual void OnStopbuttonClicked (object sender, System.EventArgs e) { int res; if (capturer == null) return; MessageDialog md = new MessageDialog((Gtk.Window)this.Toplevel, DialogFlags.Modal, MessageType.Question, ButtonsType.YesNo, Catalog.GetString("You are going to stop and finish the current capture."+"\n"+ "Do you want to proceed?")); res = md.Run(); md.Destroy(); if (res == (int)ResponseType.Yes){ md = new MessageDialog((Gtk.Window)this.Toplevel, DialogFlags.Modal, MessageType.Info, ButtonsType.None, Catalog.GetString("Finalizing file. This can take a while")); md.Show(); Stop(); md.Destroy(); recbutton.Visible = true; pausebutton.Visible = false; stopbutton.Visible = false; if (CaptureFinished != null) CaptureFinished(this, new EventArgs()); } } protected virtual void OnTick (int ellapsedTime){ timelabel.Text = "Time: " + TimeString.MSecondsToSecondsString(CurrentTime); } protected virtual void OnError (object o, ErrorArgs args) { if (Error != null) Error (o, args); Close(); } protected virtual void OnDeviceChange (object o, DeviceChangeArgs args) { /* device disconnected, pause capture */ if (args.DeviceChange == -1){ if (capturing) TogglePause(); recbutton.Sensitive = false; MessageDialog md = new MessageDialog((Gtk.Window)this.Toplevel, DialogFlags.Modal, MessageType.Question, ButtonsType.Ok, Catalog.GetString("Device disconnected. " + "The capture will be paused")); md.Icon=Stetic.IconLoader.LoadIcon(md, "longomatch", Gtk.IconSize.Dialog, 48); md.Run(); md.Destroy(); } else { recbutton.Sensitive = true; MessageDialog md = new MessageDialog((Gtk.Window)this.Toplevel, DialogFlags.Modal, MessageType.Question, ButtonsType.YesNo, Catalog.GetString("Device reconnected." + "Do you want to restart the capture?")); md.Icon=Stetic.IconLoader.LoadIcon(md, "longomatch", Gtk.IconSize.Dialog, 48); if (md.Run() == (int)ResponseType.Yes){ Console.WriteLine ("Accepted to toggle pause"); TogglePause(); } md.Destroy(); } } protected virtual void OnLogodrawingareaExposeEvent (object o, Gtk.ExposeEventArgs args) { Gdk.Window win; Pixbuf frame; int width, height, allocWidth, allocHeight, logoX, logoY; float ratio; if (logopix == null) return; win = logodrawingarea.GdkWindow; width = logopix.Width; height = logopix.Height; allocWidth = logodrawingarea.Allocation.Width; allocHeight = logodrawingarea.Allocation.Height; /* Checking if allocated space is smaller than our logo */ if ((float) allocWidth / width > (float) allocHeight / height) { ratio = (float) allocHeight / height; } else { ratio = (float) allocWidth / width; } width = (int) (width * ratio); height = (int) (height * ratio); logoX = (allocWidth / 2) - (width / 2); logoY = (allocHeight / 2) - (height / 2); /* Drawing our frame */ frame = new Pixbuf(Colorspace.Rgb, false, 8, allocWidth, allocHeight); logopix.Composite(frame, 0, 0, allocWidth, allocHeight, logoX, logoY, ratio, ratio, InterpType.Bilinear, 255); win.DrawPixbuf (this.Style.BlackGC, frame, 0, 0, 0, 0, allocWidth, allocHeight, RgbDither.Normal, 0, 0); frame.Dispose(); return; } } } longomatch-0.16.8/CesarPlayer/Gui/PlayerBin.cs0000644000175000017500000003750011601631101016027 00000000000000// PlayerBin.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gtk; using Gdk; using Mono.Unix; using System.Runtime.InteropServices; using LongoMatch.Video; using LongoMatch.Video.Common; using LongoMatch.Video.Player; using LongoMatch.Video.Utils; namespace LongoMatch.Gui { [System.ComponentModel.Category("LongoMatch")] [System.ComponentModel.ToolboxItem(true)] public partial class PlayerBin : Gtk.Bin { public event SegmentClosedHandler SegmentClosedEvent; public event TickHandler Tick; public event ErrorHandler Error; public event StateChangeHandler PlayStateChanged; public event NextButtonClickedHandler Next; public event PrevButtonClickedHandler Prev; public event DrawFrameHandler DrawFrame; public event SeekEventHandler SeekEvent; private const int THUMBNAIL_MAX_WIDTH = 100; private TickHandler tickHandler; private IPlayer player; private long length=0; private string slength; private long segmentStartTime; private long segmentStopTime; private bool seeking=false; private double[] seeksQueue; private bool IsPlayingPrevState = false; private float rate=1; private double previousVLevel = 1; private bool muted=false; private object[] pendingSeek=null; //{start,stop,rate} //the player.mrl is diferent from the filename as it's an uri eg:file:///foo.avi private string filename = null; protected VolumeWindow vwin; #region Constructors public PlayerBin() { this.Build(); PlayerInit(); vwin = new VolumeWindow(); vwin.VolumeChanged += new VolumeChangedHandler(OnVolumeChanged); controlsbox.Visible = false; UnSensitive(); timescale.Adjustment.PageIncrement = 0.01; timescale.Adjustment.StepIncrement = 0.0001; playbutton.CanFocus = false; prevbutton.CanFocus = false; nextbutton.CanFocus = false; volumebutton.CanFocus = false; timescale.CanFocus = false; vscale1.CanFocus = false; drawbutton.CanFocus = false; seeksQueue = new double[2]; seeksQueue [0] = -1; seeksQueue [1] = -1; } #endregion #region Properties public IPlayer Player{ get{return player;} } public long AccurateCurrentTime{ get{return player.AccurateCurrentTime;} } public long CurrentTime{ get{return player.CurrentTime;} } public long StreamLength{ get{return player.StreamLength;} } public float Rate{ get{return rate;} set{vscale1.Value = (int)(value*25);} } public bool FullScreen{ set{ if (value) GdkWindow.Fullscreen(); else GdkWindow.Unfullscreen(); } } public Pixbuf CurrentMiniatureFrame{ get{ Pixbuf pixbuf = player.GetCurrentFrame(THUMBNAIL_MAX_WIDTH,THUMBNAIL_MAX_WIDTH); return pixbuf; } } public Pixbuf CurrentFrame{ get{return player.GetCurrentFrame();} } public Pixbuf LogoPixbuf{ set{player.LogoPixbuf = value;} } public bool DrawingMode { set{player.DrawingMode= value;} } public Pixbuf DrawingPixbuf { set{player.DrawingPixbuf=value;} } public bool LogoMode{ set{player.LogoMode = value;} } public bool ExpandLogo { get{return player.ExpandLogo;} set{player.ExpandLogo = value;} } public bool Opened { get{return filename != null;} } public Widget VideoWidget{ get{return ((Gtk.EventBox)player);} } #endregion #region Public methods public void Open (string mrl){ filename = mrl; ResetGui(); CloseActualSegment(); try{ player.Open(mrl); } catch { //We handle this error async } } public void Play(){ player.Play(); float val = GetRateFromScale(); if (segmentStartTime == 0 && segmentStopTime==0) player.SetRate(val); else player.SetRateInSegment(val,segmentStopTime); } public void Pause(){ player.Pause(); } public void TogglePlay(){ if (player.Playing) Pause(); else Play(); } public void SetLogo (string filename){ player.Logo=filename; } public void ResetGui(){ closebutton.Hide(); SetSensitive(); timescale.Value=0; timelabel.Text=""; player.CancelProgramedStop(); } public void SetPlayListElement(string fileName,long start, long stop, float rate, bool hasNext){ if (hasNext) nextbutton.Sensitive = true; else nextbutton.Sensitive = false; if (fileName != filename){ Open(fileName); //Wait until the pipeline is prerolled and ready to seek pendingSeek = new object[3] {start,stop,rate}; } else player.SegmentSeek(start,stop,rate); segmentStartTime = start; segmentStopTime = stop; player.LogoMode = false; Rate = rate; } public void Close(){ player.Close(); filename = null; timescale.Value = 0; UnSensitive(); } public void SeekTo(long time, bool accurate){ player.SeekTime(time,1,accurate); if (SeekEvent != null) SeekEvent(time); } public void SeekInSegment(long pos){ player.SeekInSegment(pos, GetRateFromScale()); if (SeekEvent != null) SeekEvent(pos); } public void SeekToNextFrame(bool in_segment){ int currentTime = (int)player.CurrentTime; if (segmentStopTime==0 | currentTime < segmentStopTime){ if (player.Playing) player.Pause(); player.SeekToNextFrame( GetRateFromScale(), in_segment); if (SeekEvent != null) SeekEvent(currentTime ); } } public void SeekToPreviousFrame(bool in_segment){ long currentTime = player.CurrentTime; if (currentTime> segmentStartTime){ if (player.Playing) player.Pause(); player.SeekToPreviousFrame( GetRateFromScale(),in_segment); if (SeekEvent != null) SeekEvent(currentTime); } } public void StepForward(){ SeekFromTimescale(timescale.Value + timescale.Adjustment.PageIncrement); } public void StepBackward(){ SeekFromTimescale(timescale.Value - timescale.Adjustment.PageIncrement); } public void FramerateUp(){ vscale1.Adjustment.Value += vscale1.Adjustment.StepIncrement; } public void FramerateDown(){ vscale1.Adjustment.Value -= vscale1.Adjustment.StepIncrement; } public void UpdateSegmentStartTime (long start){ segmentStartTime = start; player.SegmentStartUpdate(start, GetRateFromScale()); if (SeekEvent != null) SeekEvent(start); } public void UpdateSegmentStopTime (long stop){ segmentStopTime = stop; player.SegmentStopUpdate(stop, GetRateFromScale()); if (SeekEvent != null) SeekEvent(stop); } public void SetStartStop(long start, long stop){ segmentStartTime = start; segmentStopTime = stop; closebutton.Show(); vscale1.Value = 25; player.SegmentSeek(start,stop, GetRateFromScale()); player.Play(); } public void CloseActualSegment(){ closebutton.Hide(); segmentStartTime = 0; segmentStopTime = 0; vscale1.Value=25; //timescale.Sensitive = true; slength = TimeString.MSecondsToSecondsString(length); SegmentClosedEvent(); player.CancelProgramedStop(); } public void SetSensitive(){ controlsbox.Sensitive = true; vscale1.Sensitive = true; } public void UnSensitive(){ controlsbox.Sensitive = false; vscale1.Sensitive = false; } #endregion #region Private methods private float GetRateFromScale(){ VScale scale= vscale1; double val = scale.Value; if (val >25 ){ val = val-25 ; } else if (val <=25){ val = val/25; } return (float)val; } private bool InSegment(){ return !(segmentStopTime == 0 && segmentStartTime ==0) ; } private void PlayerInit(){ MultimediaFactory factory; Widget playerWidget; factory= new MultimediaFactory(); player = factory.getPlayer(320,280); tickHandler = new TickHandler(OnTick); player.Tick += tickHandler; player.StateChange += new StateChangeHandler(OnStateChanged); player.Eos += new EventHandler (OnEndOfStream); player.Error += new ErrorHandler (OnError); player.ReadyToSeek += new EventHandler(OnReadyToSeek); playerWidget = (Widget)player; playerWidget.ButtonPressEvent += OnVideoboxButtonPressEvent; playerWidget.ScrollEvent += OnVideoboxScrollEvent; playerWidget.Show(); videobox.Add(playerWidget); } private void SeekFromTimescale(double pos){ if (InSegment()){ long seekPos = segmentStartTime + (long)(pos*(segmentStopTime-segmentStartTime)); player.SeekInSegment(seekPos, GetRateFromScale()); timelabel.Text= TimeString.MSecondsToSecondsString(seekPos) + "/" + TimeString.MSecondsToSecondsString(segmentStopTime-segmentStartTime); } else { player.Position = pos; timelabel.Text= TimeString.MSecondsToSecondsString(player.CurrentTime) + "/" + slength; Rate = 1; } } #endregion #region Callbacks protected virtual void OnStateChanged(object o, StateChangeArgs args){ if (args.Playing){ playbutton.Hide(); pausebutton.Show(); } else{ playbutton.Show(); pausebutton.Hide(); } if (PlayStateChanged != null) PlayStateChanged(this,args); } protected void OnReadyToSeek(object o, EventArgs args){ if (pendingSeek != null){ player.SegmentSeek((long)pendingSeek[0], (long)pendingSeek[1], (float)pendingSeek[2]); player.Play(); pendingSeek = null; } } protected virtual void OnTick(object o,TickArgs args){ long currentTime = args.CurrentTime; float currentposition = args.CurrentPosition; long streamLength = args.StreamLength; //Console.WriteLine ("Current Time:{0}\n Length:{1}\n",currentTime, streamLength); if (length != streamLength){ length = streamLength; slength = TimeString.MSecondsToSecondsString(length); } if (InSegment()){ currentTime -= segmentStartTime; currentposition = (float)currentTime/(float)(segmentStopTime-segmentStartTime); slength = TimeString.MSecondsToSecondsString(segmentStopTime-segmentStartTime); } timelabel.Text = TimeString.MSecondsToSecondsString(currentTime) + "/" + slength; timescale.Value = currentposition; if (Tick != null) Tick(o,args); } protected virtual void OnTimescaleAdjustBounds(object o, Gtk.AdjustBoundsArgs args) { double pos; if (!seeking){ seeking = true; IsPlayingPrevState = player.Playing; player.Tick -= tickHandler; player.Pause(); seeksQueue [0] = -1; seeksQueue [1] = -1; } pos = timescale.Value; seeksQueue[0] = seeksQueue[1]; seeksQueue[1] = pos; SeekFromTimescale(pos); } protected virtual void OnTimescaleValueChanged(object sender, System.EventArgs e) { if (seeking){ /* Releasing the timescale always report value different from the real one. * We need to cache previous position and seek again to the this position */ SeekFromTimescale(seeksQueue[0] != -1 ? seeksQueue[0] : seeksQueue[1]); seeking=false; player.Tick += tickHandler; if (IsPlayingPrevState) player.Play(); } } protected virtual void OnPlaybuttonClicked(object sender, System.EventArgs e) { Play(); } protected virtual void OnStopbuttonClicked(object sender, System.EventArgs e) { player.SeekTime(segmentStartTime,1,true); } protected virtual void OnVolumebuttonClicked(object sender, System.EventArgs e) { vwin.SetLevel(player.Volume); vwin.Show(); } protected virtual void OnDestroyEvent(object o, Gtk.DestroyEventArgs args) { player.Dispose(); } protected virtual void OnVolumeChanged(double level){ player.Volume = level; if (level == 0) muted = true; else muted = false; } protected virtual void OnPausebuttonClicked (object sender, System.EventArgs e) { player.Pause(); } protected virtual void OnEndOfStream (object o, EventArgs args){ player.SeekInSegment(0, GetRateFromScale()); player.Pause(); } protected virtual void OnError (object o, ErrorArgs args){ if(Error != null) Error(o,args); } protected virtual void OnClosebuttonClicked (object sender, System.EventArgs e) { CloseActualSegment(); } protected virtual void OnPrevbuttonClicked (object sender, System.EventArgs e) { if (Prev != null) Prev(); } protected virtual void OnNextbuttonClicked (object sender, System.EventArgs e) { if (Next != null) Next(); } protected virtual void OnVscale1FormatValue (object o, Gtk.FormatValueArgs args) { double val = args.Value; if (val >25 ){ val = val-25 ; args.RetVal = val +"X"; } else if (val ==25){ args.RetVal = "1X"; } else if (val <25){ args.RetVal = "-"+val+"/25"+"X"; } } protected virtual void OnVscale1ValueChanged (object sender, System.EventArgs e) { float val = GetRateFromScale(); // Mute for rate != 1 if (val != 1 && player.Volume != 0){ previousVLevel = player.Volume; player.Volume=0; } else if (val != 1 && muted) previousVLevel = 0; else if (val ==1) player.Volume = previousVLevel; if (InSegment()){ player.SetRateInSegment(val,segmentStopTime); } else player.SetRate(val); rate = val; } protected virtual void OnVideoboxButtonPressEvent (object o, Gtk.ButtonPressEventArgs args) { if(filename == null) return; /* FIXME: The pointer is grabbed when the event box is clicked. * Make sure to ungrab it in order to avoid clicks outisde the window * triggering this callback. This should be fixed properly.*/ Pointer.Ungrab(Gtk.Global.CurrentEventTime); if (!player.Playing) Play(); else Pause(); } protected virtual void OnVideoboxScrollEvent (object o, Gtk.ScrollEventArgs args) { switch (args.Event.Direction){ case ScrollDirection.Down: SeekToPreviousFrame(InSegment()); break; case ScrollDirection.Up: SeekToNextFrame(InSegment()); break; case ScrollDirection.Left: StepBackward(); break; case ScrollDirection.Right: StepForward(); break; } } protected virtual void OnDrawButtonClicked (object sender, System.EventArgs e) { int currentTime; currentTime = (int)AccurateCurrentTime; // If the player has reached the end of the segment the current time // will be unseekable and it's not possible to get a frame at this // instant. If we exceed the segment stop time, decrease in a // milisecond the position. if (InSegment() && currentTime >= segmentStopTime) currentTime -= 1; if (DrawFrame != null) DrawFrame(currentTime); } #endregion } } longomatch-0.16.8/CesarPlayer/Makefile.am0000644000175000017500000000221311601631101015114 00000000000000ASSEMBLY = CesarPlayer TARGET = library LINK = $(REF_DEP_CESARPLAYER) SOURCES = \ AssemblyInfo.cs \ gtk-gui/generated.cs \ Common/Constants.cs\ Common/Enum.cs\ Common/Handlers.cs\ Player/GstPlayer.cs \ Player/IPlayer.cs \ Player/ObjectManager.cs \ gtk-gui/LongoMatch.Gui.CapturerBin.cs \ gtk-gui/LongoMatch.Gui.PlayerBin.cs \ gtk-gui/LongoMatch.Gui.VolumeWindow.cs \ Gui/CapturerBin.cs \ Gui/PlayerBin.cs \ Gui/VolumeWindow.cs \ MultimediaFactory.cs \ Utils/IFramesCapturer.cs \ Utils/FramesCapturer.cs \ Utils/IMetadataReader.cs \ Utils/TimeString.cs \ Capturer/CaptureProperties.cs \ Capturer/GstCameraCapturer.cs \ Capturer/FakeCapturer.cs \ Capturer/ICapturer.cs \ Capturer/LiveSourceTimer.cs \ Capturer/ObjectManager.cs \ Editor/GstVideoSplitter.cs \ Editor/IVideoEditor.cs \ Editor/IVideoSplitter.cs \ Editor/VideoSegment.cs \ Editor/EditorState.cs \ Utils/Device.cs \ Utils/MediaFile.cs \ Utils/PreviewMediaFile.cs RESOURCES = \ gtk-gui/objects.xml \ gtk-gui/gui.stetic DLLCONFIG = CesarPlayer.dll.config include $(top_srcdir)/build/build.mk EXTRA_DIST += CesarPlayer.dll.config \ AssemblyInfo.cs.in longomatch-0.16.8/CesarPlayer/cesarplayer.pc.in0000644000175000017500000000017111601631101016324 00000000000000Name: CesarPlayer Description: CesarPlayer Version: 0.1 Requires: Libs: -r:@expanded_libdir@/@PACKAGE@/CesarPlayer.dll longomatch-0.16.8/CesarPlayer/gtk-gui/0002755000175000017500000000000011601631302014516 500000000000000longomatch-0.16.8/CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs0000644000175000017500000003711411601631101021430 00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace LongoMatch.Gui { public partial class PlayerBin { private Gtk.HBox mainbox; private Gtk.VBox vbox2; private Gtk.HBox videobox; private Gtk.HBox controlsbox; private Gtk.HBox buttonsbox; private Gtk.Button closebutton; private Gtk.Button drawbutton; private Gtk.Button playbutton; private Gtk.Button pausebutton; private Gtk.Button prevbutton; private Gtk.Button nextbutton; private Gtk.Label tlabel; private Gtk.HScale timescale; private Gtk.Label timelabel; private Gtk.Button volumebutton; private Gtk.VBox vbox3; private Gtk.VScale vscale1; protected virtual void Build() { Stetic.Gui.Initialize(this); // Widget LongoMatch.Gui.PlayerBin Stetic.BinContainer.Attach(this); this.Name = "LongoMatch.Gui.PlayerBin"; // Container child LongoMatch.Gui.PlayerBin.Gtk.Container+ContainerChild this.mainbox = new Gtk.HBox(); this.mainbox.Name = "mainbox"; this.mainbox.Spacing = 6; // Container child mainbox.Gtk.Box+BoxChild this.vbox2 = new Gtk.VBox(); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.videobox = new Gtk.HBox(); this.videobox.Name = "videobox"; this.videobox.Spacing = 6; this.vbox2.Add(this.videobox); Gtk.Box.BoxChild w1 = ((Gtk.Box.BoxChild)(this.vbox2[this.videobox])); w1.Position = 0; // Container child vbox2.Gtk.Box+BoxChild this.controlsbox = new Gtk.HBox(); this.controlsbox.Name = "controlsbox"; this.controlsbox.Spacing = 6; // Container child controlsbox.Gtk.Box+BoxChild this.buttonsbox = new Gtk.HBox(); this.buttonsbox.Name = "buttonsbox"; this.buttonsbox.Homogeneous = true; // Container child buttonsbox.Gtk.Box+BoxChild this.closebutton = new Gtk.Button(); this.closebutton.Name = "closebutton"; this.closebutton.UseUnderline = true; // Container child closebutton.Gtk.Container+ContainerChild Gtk.Alignment w2 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w3 = new Gtk.HBox(); w3.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w4 = new Gtk.Image(); w4.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-close", Gtk.IconSize.Dnd, 32); w3.Add(w4); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w6 = new Gtk.Label(); w3.Add(w6); w2.Add(w3); this.closebutton.Add(w2); this.buttonsbox.Add(this.closebutton); Gtk.Box.BoxChild w10 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.closebutton])); w10.Position = 0; w10.Expand = false; w10.Fill = false; // Container child buttonsbox.Gtk.Box+BoxChild this.drawbutton = new Gtk.Button(); this.drawbutton.Name = "drawbutton"; this.drawbutton.UseUnderline = true; // Container child drawbutton.Gtk.Container+ContainerChild Gtk.Alignment w11 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w12 = new Gtk.HBox(); w12.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w13 = new Gtk.Image(); w13.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-select-color", Gtk.IconSize.Menu, 16); w12.Add(w13); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w15 = new Gtk.Label(); w12.Add(w15); w11.Add(w12); this.drawbutton.Add(w11); this.buttonsbox.Add(this.drawbutton); Gtk.Box.BoxChild w19 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.drawbutton])); w19.Position = 1; w19.Expand = false; w19.Fill = false; // Container child buttonsbox.Gtk.Box+BoxChild this.playbutton = new Gtk.Button(); this.playbutton.Name = "playbutton"; this.playbutton.UseUnderline = true; this.playbutton.Relief = ((Gtk.ReliefStyle)(2)); // Container child playbutton.Gtk.Container+ContainerChild Gtk.Alignment w20 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w21 = new Gtk.HBox(); w21.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w22 = new Gtk.Image(); w22.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-play", Gtk.IconSize.Button, 16); w21.Add(w22); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w24 = new Gtk.Label(); w21.Add(w24); w20.Add(w21); this.playbutton.Add(w20); this.buttonsbox.Add(this.playbutton); Gtk.Box.BoxChild w28 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.playbutton])); w28.Position = 2; w28.Expand = false; w28.Fill = false; // Container child buttonsbox.Gtk.Box+BoxChild this.pausebutton = new Gtk.Button(); this.pausebutton.Name = "pausebutton"; this.pausebutton.UseUnderline = true; this.pausebutton.Relief = ((Gtk.ReliefStyle)(2)); // Container child pausebutton.Gtk.Container+ContainerChild Gtk.Alignment w29 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w30 = new Gtk.HBox(); w30.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w31 = new Gtk.Image(); w31.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-pause", Gtk.IconSize.Button, 16); w30.Add(w31); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w33 = new Gtk.Label(); w30.Add(w33); w29.Add(w30); this.pausebutton.Add(w29); this.buttonsbox.Add(this.pausebutton); Gtk.Box.BoxChild w37 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.pausebutton])); w37.Position = 3; w37.Expand = false; w37.Fill = false; // Container child buttonsbox.Gtk.Box+BoxChild this.prevbutton = new Gtk.Button(); this.prevbutton.Name = "prevbutton"; this.prevbutton.UseUnderline = true; this.prevbutton.Relief = ((Gtk.ReliefStyle)(2)); // Container child prevbutton.Gtk.Container+ContainerChild Gtk.Alignment w38 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w39 = new Gtk.HBox(); w39.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w40 = new Gtk.Image(); w40.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-previous", Gtk.IconSize.Button, 16); w39.Add(w40); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w42 = new Gtk.Label(); w39.Add(w42); w38.Add(w39); this.prevbutton.Add(w38); this.buttonsbox.Add(this.prevbutton); Gtk.Box.BoxChild w46 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.prevbutton])); w46.Position = 4; w46.Expand = false; w46.Fill = false; // Container child buttonsbox.Gtk.Box+BoxChild this.nextbutton = new Gtk.Button(); this.nextbutton.Sensitive = false; this.nextbutton.Name = "nextbutton"; this.nextbutton.UseUnderline = true; this.nextbutton.Relief = ((Gtk.ReliefStyle)(2)); // Container child nextbutton.Gtk.Container+ContainerChild Gtk.Alignment w47 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w48 = new Gtk.HBox(); w48.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w49 = new Gtk.Image(); w49.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-next", Gtk.IconSize.Button, 16); w48.Add(w49); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w51 = new Gtk.Label(); w48.Add(w51); w47.Add(w48); this.nextbutton.Add(w47); this.buttonsbox.Add(this.nextbutton); Gtk.Box.BoxChild w55 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.nextbutton])); w55.Position = 5; w55.Expand = false; w55.Fill = false; this.controlsbox.Add(this.buttonsbox); Gtk.Box.BoxChild w56 = ((Gtk.Box.BoxChild)(this.controlsbox[this.buttonsbox])); w56.Position = 0; w56.Expand = false; w56.Fill = false; // Container child controlsbox.Gtk.Box+BoxChild this.tlabel = new Gtk.Label(); this.tlabel.Name = "tlabel"; this.tlabel.LabelProp = Mono.Unix.Catalog.GetString("Time:"); this.controlsbox.Add(this.tlabel); Gtk.Box.BoxChild w57 = ((Gtk.Box.BoxChild)(this.controlsbox[this.tlabel])); w57.Position = 1; w57.Expand = false; w57.Fill = false; // Container child controlsbox.Gtk.Box+BoxChild this.timescale = new Gtk.HScale(null); this.timescale.Name = "timescale"; this.timescale.UpdatePolicy = ((Gtk.UpdateType)(1)); this.timescale.Adjustment.Upper = 1; this.timescale.Adjustment.PageIncrement = 1; this.timescale.Adjustment.StepIncrement = 1; this.timescale.Adjustment.Value = 1; this.timescale.DrawValue = false; this.timescale.Digits = 0; this.timescale.ValuePos = ((Gtk.PositionType)(2)); this.controlsbox.Add(this.timescale); Gtk.Box.BoxChild w58 = ((Gtk.Box.BoxChild)(this.controlsbox[this.timescale])); w58.Position = 2; // Container child controlsbox.Gtk.Box+BoxChild this.timelabel = new Gtk.Label(); this.timelabel.Name = "timelabel"; this.controlsbox.Add(this.timelabel); Gtk.Box.BoxChild w59 = ((Gtk.Box.BoxChild)(this.controlsbox[this.timelabel])); w59.Position = 3; w59.Expand = false; // Container child controlsbox.Gtk.Box+BoxChild this.volumebutton = new Gtk.Button(); this.volumebutton.Name = "volumebutton"; this.volumebutton.UseUnderline = true; this.volumebutton.Relief = ((Gtk.ReliefStyle)(2)); // Container child volumebutton.Gtk.Container+ContainerChild Gtk.Alignment w60 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w61 = new Gtk.HBox(); w61.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w62 = new Gtk.Image(); w62.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_volume", Gtk.IconSize.Button, 16); w61.Add(w62); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w64 = new Gtk.Label(); w61.Add(w64); w60.Add(w61); this.volumebutton.Add(w60); this.controlsbox.Add(this.volumebutton); Gtk.Box.BoxChild w68 = ((Gtk.Box.BoxChild)(this.controlsbox[this.volumebutton])); w68.Position = 4; w68.Expand = false; w68.Fill = false; this.vbox2.Add(this.controlsbox); Gtk.Box.BoxChild w69 = ((Gtk.Box.BoxChild)(this.vbox2[this.controlsbox])); w69.Position = 1; w69.Expand = false; this.mainbox.Add(this.vbox2); Gtk.Box.BoxChild w70 = ((Gtk.Box.BoxChild)(this.mainbox[this.vbox2])); w70.Position = 0; // Container child mainbox.Gtk.Box+BoxChild this.vbox3 = new Gtk.VBox(); this.vbox3.Name = "vbox3"; this.vbox3.Spacing = 6; // Container child vbox3.Gtk.Box+BoxChild this.vscale1 = new Gtk.VScale(null); this.vscale1.WidthRequest = 45; this.vscale1.Sensitive = false; this.vscale1.Name = "vscale1"; this.vscale1.UpdatePolicy = ((Gtk.UpdateType)(1)); this.vscale1.Inverted = true; this.vscale1.Adjustment.Lower = 1; this.vscale1.Adjustment.Upper = 28; this.vscale1.Adjustment.PageIncrement = 3; this.vscale1.Adjustment.PageSize = 1; this.vscale1.Adjustment.StepIncrement = 1; this.vscale1.Adjustment.Value = 25; this.vscale1.DrawValue = true; this.vscale1.Digits = 0; this.vscale1.ValuePos = ((Gtk.PositionType)(3)); this.vbox3.Add(this.vscale1); Gtk.Box.BoxChild w71 = ((Gtk.Box.BoxChild)(this.vbox3[this.vscale1])); w71.Position = 0; this.mainbox.Add(this.vbox3); Gtk.Box.BoxChild w72 = ((Gtk.Box.BoxChild)(this.mainbox[this.vbox3])); w72.Position = 1; w72.Expand = false; w72.Fill = false; this.Add(this.mainbox); if ((this.Child != null)) { this.Child.ShowAll(); } this.closebutton.Hide(); this.prevbutton.Hide(); this.nextbutton.Hide(); this.controlsbox.Hide(); this.Show(); this.closebutton.Clicked += new System.EventHandler(this.OnClosebuttonClicked); this.drawbutton.Clicked += new System.EventHandler(this.OnDrawButtonClicked); this.playbutton.Clicked += new System.EventHandler(this.OnPlaybuttonClicked); this.pausebutton.Clicked += new System.EventHandler(this.OnPausebuttonClicked); this.prevbutton.Clicked += new System.EventHandler(this.OnPrevbuttonClicked); this.nextbutton.Clicked += new System.EventHandler(this.OnNextbuttonClicked); this.timescale.ValueChanged += new System.EventHandler(this.OnTimescaleValueChanged); this.timescale.AdjustBounds += new Gtk.AdjustBoundsHandler(this.OnTimescaleAdjustBounds); this.volumebutton.Clicked += new System.EventHandler(this.OnVolumebuttonClicked); this.vscale1.FormatValue += new Gtk.FormatValueHandler(this.OnVscale1FormatValue); this.vscale1.ValueChanged += new System.EventHandler(this.OnVscale1ValueChanged); } } } longomatch-0.16.8/CesarPlayer/gtk-gui/LongoMatch.Gui.CapturerBin.cs0000644000175000017500000001670411601631101021763 00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace LongoMatch.Gui { public partial class CapturerBin { private Gtk.VBox vbox1; private Gtk.HBox capturerhbox; private Gtk.DrawingArea logodrawingarea; private Gtk.HBox hbox2; private Gtk.HBox buttonsbox; private Gtk.Button recbutton; private Gtk.Button pausebutton; private Gtk.Button stopbutton; private Gtk.Label timelabel; protected virtual void Build() { Stetic.Gui.Initialize(this); // Widget LongoMatch.Gui.CapturerBin Stetic.BinContainer.Attach(this); this.Name = "LongoMatch.Gui.CapturerBin"; // Container child LongoMatch.Gui.CapturerBin.Gtk.Container+ContainerChild this.vbox1 = new Gtk.VBox(); this.vbox1.Name = "vbox1"; this.vbox1.Spacing = 6; // Container child vbox1.Gtk.Box+BoxChild this.capturerhbox = new Gtk.HBox(); this.capturerhbox.Name = "capturerhbox"; this.capturerhbox.Spacing = 6; this.vbox1.Add(this.capturerhbox); Gtk.Box.BoxChild w1 = ((Gtk.Box.BoxChild)(this.vbox1[this.capturerhbox])); w1.Position = 0; // Container child vbox1.Gtk.Box+BoxChild this.logodrawingarea = new Gtk.DrawingArea(); this.logodrawingarea.Name = "logodrawingarea"; this.vbox1.Add(this.logodrawingarea); Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.vbox1[this.logodrawingarea])); w2.Position = 1; // Container child vbox1.Gtk.Box+BoxChild this.hbox2 = new Gtk.HBox(); this.hbox2.Name = "hbox2"; this.hbox2.Spacing = 6; // Container child hbox2.Gtk.Box+BoxChild this.buttonsbox = new Gtk.HBox(); this.buttonsbox.Name = "buttonsbox"; this.buttonsbox.Spacing = 6; // Container child buttonsbox.Gtk.Box+BoxChild this.recbutton = new Gtk.Button(); this.recbutton.TooltipMarkup = "Start or continue capture"; this.recbutton.Name = "recbutton"; this.recbutton.UseUnderline = true; // Container child recbutton.Gtk.Container+ContainerChild Gtk.Alignment w3 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w4 = new Gtk.HBox(); w4.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w5 = new Gtk.Image(); w5.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-record", Gtk.IconSize.Dialog, 48); w4.Add(w5); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w7 = new Gtk.Label(); w4.Add(w7); w3.Add(w4); this.recbutton.Add(w3); this.buttonsbox.Add(this.recbutton); Gtk.Box.BoxChild w11 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.recbutton])); w11.Position = 0; w11.Expand = false; w11.Fill = false; // Container child buttonsbox.Gtk.Box+BoxChild this.pausebutton = new Gtk.Button(); this.pausebutton.TooltipMarkup = "Pause capture"; this.pausebutton.Name = "pausebutton"; this.pausebutton.UseUnderline = true; // Container child pausebutton.Gtk.Container+ContainerChild Gtk.Alignment w12 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w13 = new Gtk.HBox(); w13.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w14 = new Gtk.Image(); w14.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-pause", Gtk.IconSize.Dialog, 48); w13.Add(w14); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w16 = new Gtk.Label(); w13.Add(w16); w12.Add(w13); this.pausebutton.Add(w12); this.buttonsbox.Add(this.pausebutton); Gtk.Box.BoxChild w20 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.pausebutton])); w20.Position = 1; w20.Expand = false; w20.Fill = false; // Container child buttonsbox.Gtk.Box+BoxChild this.stopbutton = new Gtk.Button(); this.stopbutton.TooltipMarkup = "Stop and close capture"; this.stopbutton.Name = "stopbutton"; this.stopbutton.UseUnderline = true; // Container child stopbutton.Gtk.Container+ContainerChild Gtk.Alignment w21 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); // Container child GtkAlignment.Gtk.Container+ContainerChild Gtk.HBox w22 = new Gtk.HBox(); w22.Spacing = 2; // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Image w23 = new Gtk.Image(); w23.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-media-stop", Gtk.IconSize.Dialog, 48); w22.Add(w23); // Container child GtkHBox.Gtk.Container+ContainerChild Gtk.Label w25 = new Gtk.Label(); w22.Add(w25); w21.Add(w22); this.stopbutton.Add(w21); this.buttonsbox.Add(this.stopbutton); Gtk.Box.BoxChild w29 = ((Gtk.Box.BoxChild)(this.buttonsbox[this.stopbutton])); w29.Position = 2; w29.Expand = false; w29.Fill = false; this.hbox2.Add(this.buttonsbox); Gtk.Box.BoxChild w30 = ((Gtk.Box.BoxChild)(this.hbox2[this.buttonsbox])); w30.Position = 0; w30.Expand = false; w30.Fill = false; // Container child hbox2.Gtk.Box+BoxChild this.timelabel = new Gtk.Label(); this.timelabel.Name = "timelabel"; this.timelabel.Xalign = 1F; this.timelabel.LabelProp = "Time: 0:00:00"; this.hbox2.Add(this.timelabel); Gtk.Box.BoxChild w31 = ((Gtk.Box.BoxChild)(this.hbox2[this.timelabel])); w31.PackType = ((Gtk.PackType)(1)); w31.Position = 1; w31.Expand = false; this.vbox1.Add(this.hbox2); Gtk.Box.BoxChild w32 = ((Gtk.Box.BoxChild)(this.vbox1[this.hbox2])); w32.Position = 2; w32.Expand = false; w32.Fill = false; this.Add(this.vbox1); if ((this.Child != null)) { this.Child.ShowAll(); } this.pausebutton.Hide(); this.stopbutton.Hide(); this.Show(); this.logodrawingarea.ExposeEvent += new Gtk.ExposeEventHandler(this.OnLogodrawingareaExposeEvent); this.recbutton.Clicked += new System.EventHandler(this.OnRecbuttonClicked); this.pausebutton.Clicked += new System.EventHandler(this.OnPausebuttonClicked); this.stopbutton.Clicked += new System.EventHandler(this.OnStopbuttonClicked); } } } longomatch-0.16.8/CesarPlayer/gtk-gui/LongoMatch.Gui.VolumeWindow.cs0000644000175000017500000000700611601631101022177 00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace LongoMatch.Gui { public partial class VolumeWindow { private Gtk.VBox vbox2; private Gtk.Button morebutton; private Gtk.VScale volumescale; private Gtk.Button lessbutton; protected virtual void Build() { Stetic.Gui.Initialize(this); // Widget LongoMatch.Gui.VolumeWindow this.Name = "LongoMatch.Gui.VolumeWindow"; this.Title = ""; this.WindowPosition = ((Gtk.WindowPosition)(2)); this.Decorated = false; this.DestroyWithParent = true; this.SkipPagerHint = true; this.SkipTaskbarHint = true; // Container child LongoMatch.Gui.VolumeWindow.Gtk.Container+ContainerChild this.vbox2 = new Gtk.VBox(); this.vbox2.Name = "vbox2"; // Container child vbox2.Gtk.Box+BoxChild this.morebutton = new Gtk.Button(); this.morebutton.Name = "morebutton"; this.morebutton.Relief = ((Gtk.ReliefStyle)(2)); this.morebutton.Label = "+"; this.vbox2.Add(this.morebutton); Gtk.Box.BoxChild w1 = ((Gtk.Box.BoxChild)(this.vbox2[this.morebutton])); w1.Position = 0; w1.Expand = false; w1.Fill = false; // Container child vbox2.Gtk.Box+BoxChild this.volumescale = new Gtk.VScale(null); this.volumescale.CanFocus = true; this.volumescale.Name = "volumescale"; this.volumescale.Inverted = true; this.volumescale.Adjustment.Upper = 1; this.volumescale.Adjustment.PageIncrement = 1; this.volumescale.Adjustment.StepIncrement = 1; this.volumescale.Adjustment.Value = 1; this.volumescale.DrawValue = false; this.volumescale.Digits = 0; this.volumescale.ValuePos = ((Gtk.PositionType)(2)); this.vbox2.Add(this.volumescale); Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.vbox2[this.volumescale])); w2.Position = 1; // Container child vbox2.Gtk.Box+BoxChild this.lessbutton = new Gtk.Button(); this.lessbutton.Name = "lessbutton"; this.lessbutton.Relief = ((Gtk.ReliefStyle)(2)); this.lessbutton.Label = "-"; this.vbox2.Add(this.lessbutton); Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.vbox2[this.lessbutton])); w3.Position = 2; w3.Expand = false; w3.Fill = false; this.Add(this.vbox2); if ((this.Child != null)) { this.Child.ShowAll(); } this.DefaultWidth = 31; this.DefaultHeight = 204; this.Hide(); this.FocusOutEvent += new Gtk.FocusOutEventHandler(this.OnFocusOutEvent); this.morebutton.Clicked += new System.EventHandler(this.OnMorebuttonClicked); this.volumescale.ValueChanged += new System.EventHandler(this.OnVolumescaleValueChanged); this.lessbutton.Clicked += new System.EventHandler(this.OnLessbuttonClicked); } } } longomatch-0.16.8/CesarPlayer/gtk-gui/objects.xml0000644000175000017500000000200711601631101016603 00000000000000 longomatch-0.16.8/CesarPlayer/gtk-gui/gui.stetic0000644000175000017500000005152111601631101016436 00000000000000 .. 2.12 False Mouse False True True True TextOnly + None 0 True False False True True 1 1 1 1 False 0 Top 1 True TextOnly - None 2 True False False 6 6 6 0 True False 6 True False TextAndIcon stock:gtk-close Dnd True 0 True False False TextAndIcon stock:gtk-select-color Menu True 1 True False False TextAndIcon stock:gtk-media-play Button True None 2 True False False TextAndIcon stock:gtk-media-pause Button True None 3 True False False False TextAndIcon stock:gtk-media-previous Button True None 4 True False False False False TextAndIcon stock:gtk-media-next Button True None 5 True False False 0 False False False Time: 1 True False False Discontinuous 1 1 1 1 False 0 Top 2 True 3 False False TextAndIcon stock:stock_volume Button True None 4 True False False 1 False False 0 False 6 45 False Discontinuous True 1 28 3 1 1 25 True 0 Bottom 0 False 1 False False False 6 6 0 False 1 True 6 6 Start or continue capture TextAndIcon stock:gtk-media-record Dialog True 0 False False False False Pause capture TextAndIcon stock:gtk-media-pause Dialog True 1 False False False False Stop and close capture TextAndIcon stock:gtk-media-stop Dialog True 2 False False False 0 True False False 1 Time: 0:00:00 End 1 False False 2 False False False longomatch-0.16.8/CesarPlayer/gtk-gui/generated.cs0000644000175000017500000001040511601631101016716 00000000000000// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace Stetic { internal class Gui { private static bool initialized; internal static void Initialize(Gtk.Widget iconRenderer) { if ((Stetic.Gui.initialized == false)) { Stetic.Gui.initialized = true; } } } internal class BinContainer { private Gtk.Widget child; private Gtk.UIManager uimanager; public static BinContainer Attach(Gtk.Bin bin) { BinContainer bc = new BinContainer(); bin.SizeRequested += new Gtk.SizeRequestedHandler(bc.OnSizeRequested); bin.SizeAllocated += new Gtk.SizeAllocatedHandler(bc.OnSizeAllocated); bin.Added += new Gtk.AddedHandler(bc.OnAdded); return bc; } private void OnSizeRequested(object sender, Gtk.SizeRequestedArgs args) { if ((this.child != null)) { args.Requisition = this.child.SizeRequest(); } } private void OnSizeAllocated(object sender, Gtk.SizeAllocatedArgs args) { if ((this.child != null)) { this.child.Allocation = args.Allocation; } } private void OnAdded(object sender, Gtk.AddedArgs args) { this.child = args.Widget; } public void SetUiManager(Gtk.UIManager uim) { this.uimanager = uim; this.child.Realized += new System.EventHandler(this.OnRealized); } private void OnRealized(object sender, System.EventArgs args) { if ((this.uimanager != null)) { Gtk.Widget w; w = this.child.Toplevel; if (((w != null) && typeof(Gtk.Window).IsInstanceOfType(w))) { ((Gtk.Window)(w)).AddAccelGroup(this.uimanager.AccelGroup); this.uimanager = null; } } } } internal class IconLoader { public static Gdk.Pixbuf LoadIcon(Gtk.Widget widget, string name, Gtk.IconSize size, int sz) { Gdk.Pixbuf res = widget.RenderIcon(name, size, null); if ((res != null)) { return res; } else { try { return Gtk.IconTheme.Default.LoadIcon(name, sz, 0); } catch (System.Exception ) { if ((name != "gtk-missing-image")) { return Stetic.IconLoader.LoadIcon(widget, "gtk-missing-image", size, sz); } else { Gdk.Pixmap pmap = new Gdk.Pixmap(Gdk.Screen.Default.RootWindow, sz, sz); Gdk.GC gc = new Gdk.GC(pmap); gc.RgbFgColor = new Gdk.Color(255, 255, 255); pmap.DrawRectangle(gc, true, 0, 0, sz, sz); gc.RgbFgColor = new Gdk.Color(0, 0, 0); pmap.DrawRectangle(gc, false, 0, 0, (sz - 1), (sz - 1)); gc.SetLineAttributes(3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round); gc.RgbFgColor = new Gdk.Color(255, 0, 0); pmap.DrawLine(gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), ((sz - 1) - (sz / 4))); pmap.DrawLine(gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1) - (sz / 4))); return Gdk.Pixbuf.FromDrawable(pmap, pmap.Colormap, 0, 0, 0, 0, sz, sz); } } } } } internal class ActionGroups { public static Gtk.ActionGroup GetActionGroup(System.Type type) { return Stetic.ActionGroups.GetActionGroup(type.FullName); } public static Gtk.ActionGroup GetActionGroup(string name) { return null; } } } longomatch-0.16.8/CesarPlayer/AssemblyInfo.cs.in0000644000175000017500000000364711601631101016423 00000000000000// Copyright(C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System.Reflection; using System.Runtime.CompilerServices; // Information about this assembly is defined by the following // attributes. // // change them to the information which is associated with the assembly // you compile. [assembly: AssemblyTitle("CesarPlayer")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("Andoni Morales Alastruey")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // The assembly version has following format : // // Major.Minor.Build.Revision // // You can specify all values by your own or you can build default build and revision // numbers with the '*' character (the default): [assembly: AssemblyVersion("@PACKAGE_VERSION@")] // The following attributes specify the key for the sign of your assembly. See the // .NET Framework documentation for more information about signing. // This is not required, if you don't want signing let these attributes like they're. //[assembly: AssemblyDelaySign(false)] //[assembly: AssemblyKeyFile("cesarplayer.key")] longomatch-0.16.8/CesarPlayer/MultimediaFactory.cs0000644000175000017500000000537211601631101017042 00000000000000// PlayerMaker.cs // // Copyright(C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using LongoMatch.Video.Capturer; using LongoMatch.Video.Player; using LongoMatch.Video.Editor; using LongoMatch.Video.Utils; using LongoMatch.Video.Common; namespace LongoMatch.Video { public class MultimediaFactory { OperatingSystem oS; public MultimediaFactory() { oS = Environment.OSVersion; } public IPlayer getPlayer(int width, int height){ switch (oS.Platform) { case PlatformID.Unix: return new GstPlayer(width,height,PlayerUseType.Video); case PlatformID.Win32NT: return new GstPlayer(width,height,PlayerUseType.Video); default: return new GstPlayer(width,height,PlayerUseType.Video); } } public IMetadataReader getMetadataReader(){ switch (oS.Platform) { case PlatformID.Unix: return new GstPlayer(1,1,PlayerUseType.Metadata); case PlatformID.Win32NT: return new GstPlayer(1,1,PlayerUseType.Metadata); default: return new GstPlayer(1,1,PlayerUseType.Metadata); } } public IFramesCapturer getFramesCapturer(){ switch (oS.Platform) { case PlatformID.Unix: return new GstPlayer(1,1,PlayerUseType.Capture); case PlatformID.Win32NT: return new GstPlayer(1,1,PlayerUseType.Capture); default: return new GstPlayer(1,1,PlayerUseType.Capture); } } public IVideoEditor getVideoEditor(){ switch (oS.Platform) { case PlatformID.Unix: return new GstVideoSplitter(); case PlatformID.Win32NT: return new GstVideoSplitter(); default: return new GstVideoSplitter(); } } public ICapturer getCapturer(CapturerType type){ switch (type) { case CapturerType.Fake: return new FakeCapturer(); case CapturerType.Live: return new GstCameraCapturer("test.avi"); default: return new FakeCapturer(); } } } }longomatch-0.16.8/CesarPlayer/Utils/0002755000175000017500000000000011601631302014247 500000000000000longomatch-0.16.8/CesarPlayer/Utils/PreviewMediaFile.cs0000644000175000017500000000752511601631101017703 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using LongoMatch.Video; using LongoMatch.Video.Common; using LongoMatch.Video.Player; using Mono.Unix; using Gdk; namespace LongoMatch.Video.Utils { [Serializable] public class PreviewMediaFile:MediaFile { private byte[] thumbnailBuf; const int THUMBNAIL_MAX_HEIGHT=72; const int THUMBNAIL_MAX_WIDTH=96; public PreviewMediaFile(){} public PreviewMediaFile(string filePath, long length, ushort fps, bool hasAudio, bool hasVideo, string VideoEncoderType, string AudioEncoderType, uint videoWidth, uint videoHeight, Pixbuf preview):base (filePath,length,fps,hasAudio,hasVideo,VideoEncoderType,AudioEncoderType,videoWidth,videoHeight) { this.Preview=preview; } public Pixbuf Preview{ get{ if (thumbnailBuf != null) return new Pixbuf(thumbnailBuf); else return null; } set{ if (value != null){ thumbnailBuf = value.SaveToBuffer("png"); value.Dispose(); } else thumbnailBuf = null; } } public new static PreviewMediaFile GetMediaFile(string filePath){ int duration=0; bool hasVideo; bool hasAudio; string AudioEncoderType = ""; string VideoEncoderType = ""; int fps=0; int height=0; int width=0; Pixbuf preview=null; MultimediaFactory factory; IMetadataReader reader; IFramesCapturer thumbnailer; try{ factory = new MultimediaFactory(); reader = factory.getMetadataReader(); reader.Open(filePath); hasVideo = (bool) reader.GetMetadata(MetadataType.HasVideo); hasAudio = (bool) reader.GetMetadata(MetadataType.HasAudio); if (hasAudio){ AudioEncoderType = (string) reader.GetMetadata(MetadataType.AudioEncoderType); } if (hasVideo){ VideoEncoderType = (string) reader.GetMetadata(MetadataType.VideoEncoderType); fps = (int) reader.GetMetadata(MetadataType.Fps); thumbnailer = factory.getFramesCapturer(); thumbnailer.Open(filePath); thumbnailer.SeekTime(1000,false); preview = thumbnailer.GetCurrentFrame(THUMBNAIL_MAX_WIDTH,THUMBNAIL_MAX_HEIGHT); duration =(int) ((thumbnailer as GstPlayer).StreamLength/1000); /* On Windows some formats report a 0 duration, try a last time with the reader */ if (duration == 0) duration = (int)reader.GetMetadata(MetadataType.Duration); thumbnailer.Dispose(); } height = (int) reader.GetMetadata(MetadataType.DimensionX); width = (int) reader.GetMetadata (MetadataType.DimensionY); reader.Close(); reader.Dispose(); return new PreviewMediaFile(filePath,duration*1000, (ushort)fps,hasAudio, hasVideo,VideoEncoderType, AudioEncoderType,(uint)height, (uint)width,preview); } catch (GLib.GException ex){ throw new Exception (Catalog.GetString("Invalid video file:")+"\n"+ex.Message); } } } } longomatch-0.16.8/CesarPlayer/Utils/TimeString.cs0000644000175000017500000000434211601631101016601 00000000000000// TimeString.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; namespace LongoMatch.Video.Utils { public class TimeString { public TimeString() { } public static string SecondsToString (long time) { long _h, _m, _s; _h = (time / 3600); _m = ((time % 3600) / 60); _s = ((time % 3600) % 60); if (_h > 0) return String.Format ("{0}:{1}:{2}", _h, _m.ToString ("d2"), _s.ToString ("d2")); return String.Format ("{0}:{1}", _m, _s.ToString ("d2")); } public static string MSecondsToMSecondsString (long time) { long _h, _m, _s,_ms,_time; _time = time / 1000; _h = (_time / 3600); _m = ((_time % 3600) / 60); _s = ((_time % 3600) % 60); _ms = ((time % 3600000)%60000)%1000; if (_h > 0) return String.Format ("{0}:{1}:{2},{3}", _h, _m.ToString ("d2"), _s.ToString ("d2"),_ms.ToString("d3")); return String.Format ("{0}:{1},{2}", _m, _s.ToString ("d2"),_ms.ToString("d3")); } public static string MSecondsToSecondsString (long time) { long _h, _m, _s,_time; _time = time / 1000; _h = (_time / 3600); _m = ((_time % 3600) / 60); _s = ((_time % 3600) % 60); if (_h > 0) return String.Format ("{0}:{1}:{2}", _h, _m.ToString ("d2"), _s.ToString ("d2")); return String.Format ("{0}:{1}", _m, _s.ToString ("d2")); } public static string FileName( string filename){ return System.IO.Path.GetFileName(filename); } } } longomatch-0.16.8/CesarPlayer/Utils/Device.cs0000644000175000017500000000467611601631101015725 00000000000000// // Copyright (C) 2010 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using System.Collections.Generic; using LongoMatch.Video.Capturer; using LongoMatch.Video.Common; using Mono.Unix; namespace LongoMatch.Video.Utils { public class Device { public Device () { } /// /// Device Type among Video, Audio or DV (for dv cameras) /// public DeviceType DeviceType { get; set; } /// /// Device id, can be a human friendly name (for DirectShow devices), /// the de device name (/dev/video0) or the GUID (dv1394src) /// public string ID { get; set; } /// /// The name of the gstreamer element property used to set the device /// public string IDProperty { get; set; } static public List ListVideoDevices (){ List devicesList = new List(); /* Generate the list of devices and add the gconf one at the bottom * so that DV sources are always selected before, at least on Linux, * since on Windows both raw an dv sources are listed from the same * source element (dshowvideosrc) */ foreach (string devName in GstCameraCapturer.VideoDevices){ string idProp; if (Environment.OSVersion.Platform == PlatformID.Unix) idProp = Constants.DV1394SRC_PROP; else idProp = Constants.DSHOWVIDEOSINK_PROP; devicesList.Add(new Device { ID = devName, IDProperty = idProp, DeviceType = DeviceType.DV}); } if (Environment.OSVersion.Platform == PlatformID.Unix){ devicesList.Add(new Device { ID = Catalog.GetString("Default device"), IDProperty = "", DeviceType = DeviceType.Video}); } return devicesList; } } } longomatch-0.16.8/CesarPlayer/Utils/MediaFile.cs0000644000175000017500000001014711601631101016333 00000000000000// MediaFile.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Mono.Unix; using Gdk; using LongoMatch.Video; using LongoMatch.Video.Player; using LongoMatch.Video.Common; namespace LongoMatch.Video.Utils { [Serializable] public class MediaFile { string filePath; long length; // In MSeconds ushort fps; bool hasAudio; bool hasVideo; string videoCodec; string audioCodec; uint videoHeight; uint videoWidth; public MediaFile(){} public MediaFile(string filePath, long length, ushort fps, bool hasAudio, bool hasVideo, string videoCodec, string audioCodec, uint videoWidth, uint videoHeight) { this.filePath = filePath; this.length = length; this.hasAudio = hasAudio; this.hasVideo = hasVideo; this.videoCodec = videoCodec; this.audioCodec = audioCodec; this.videoHeight = videoHeight; this.videoWidth = videoWidth; if (fps == 0) //For audio Files this.fps=25; else this.fps = fps; } public string FilePath{ get {return this.filePath;} set {this.filePath = value;} } public long Length{ get {return this.length;} set {this.length = value;} } public bool HasVideo{ get { return this.hasVideo;} set{this.hasVideo = value;} } public bool HasAudio{ get { return this.hasAudio;} set{this.hasAudio = value;} } public string VideoCodec{ get {return this.videoCodec;} set {this.videoCodec = value;} } public string AudioCodec{ get {return this.audioCodec;} set {this.audioCodec = value;} } public uint VideoWidth{ get {return this.videoWidth;} set {this.videoWidth= value;} } public uint VideoHeight{ get {return this.videoHeight;} set {this.videoHeight= value;} } public ushort Fps{ get {return this.fps;} set { if (value == 0) //For audio Files this.fps=25; else this.fps = value;} } public uint GetFrames(){ return (uint) (Fps*Length/1000); } public static MediaFile GetMediaFile(string filePath){ int duration, fps=0, height=0, width=0; bool hasVideo, hasAudio; string audioCodec = "", videoCodec = ""; MultimediaFactory factory; IMetadataReader reader = null; try{ factory = new MultimediaFactory(); reader = factory.getMetadataReader(); reader.Open(filePath); duration = (int)reader.GetMetadata(MetadataType.Duration); hasVideo = (bool) reader.GetMetadata(MetadataType.HasVideo); hasAudio = (bool) reader.GetMetadata(MetadataType.HasAudio); if (hasAudio) audioCodec = (string) reader.GetMetadata(MetadataType.AudioEncoderType); if (hasVideo){ videoCodec = (string) reader.GetMetadata(MetadataType.VideoEncoderType); fps = (int) reader.GetMetadata(MetadataType.Fps); } height = (int) reader.GetMetadata(MetadataType.DimensionX); width = (int) reader.GetMetadata (MetadataType.DimensionY); return new MediaFile(filePath,duration*1000,(ushort)fps,hasAudio,hasVideo,videoCodec,audioCodec,(uint)height,(uint)width); } catch (GLib.GException ex){ throw new Exception (Catalog.GetString("Invalid video file:")+"\n"+ex.Message); } finally { reader.Close(); reader.Dispose(); } } } } longomatch-0.16.8/CesarPlayer/Utils/IFramesCapturer.cs0000644000175000017500000000211111601631101017540 00000000000000// IFramesCapturer.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using Gdk; namespace LongoMatch.Video.Utils { public interface IFramesCapturer { bool Open(string mrl); bool SeekTime(long time, bool accurate); void Pause(); void Dispose(); Pixbuf GetCurrentFrame(int outwidth, int outheight); Pixbuf GetCurrentFrame(); } } longomatch-0.16.8/CesarPlayer/Utils/IMetadataReader.cs0000644000175000017500000000204511601631101017466 00000000000000// IMetadataReader.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using LongoMatch.Video.Player; using LongoMatch.Video.Common; namespace LongoMatch.Video.Utils { public interface IMetadataReader { bool Open(string mrl); void Close(); void Dispose(); object GetMetadata(MetadataType type); } } longomatch-0.16.8/CesarPlayer/Utils/FramesCapturer.cs0000644000175000017500000000613011601631101017434 00000000000000// FramesCapturer.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using LongoMatch.Video.Utils; using LongoMatch.Video; using Gdk; using Gtk; using System.Threading; using LongoMatch.Video.Common; namespace LongoMatch.Video.Utils { public class FramesSeriesCapturer { IFramesCapturer capturer; long start; long stop; uint interval; int totalFrames; string seriesName; string outputDir; bool cancel; private const int THUMBNAIL_MAX_HEIGHT=250; private const int THUMBNAIL_MAX_WIDTH=300; public event FramesProgressHandler Progress; public FramesSeriesCapturer(string videoFile,long start, long stop, uint interval, string outputDir) { MultimediaFactory mf= new MultimediaFactory(); this.capturer=mf.getFramesCapturer(); this.capturer.Open(videoFile); this.start= start; this.stop = stop; this.interval = interval; this.outputDir = outputDir; this.seriesName = System.IO.Path.GetFileName(outputDir); this.totalFrames = (int)Math.Floor((double)((stop - start ) / interval))+1; } public void Cancel(){ cancel = true; } public void Start(){ Thread thread = new Thread(new ThreadStart(CaptureFrames)); thread.Start(); } public void CaptureFrames(){ long pos; Pixbuf frame; Pixbuf scaledFrame=null; int i = 0; System.IO.Directory.CreateDirectory(outputDir); pos = start; if (Progress != null) Application.Invoke(delegate {Progress(0,totalFrames,null);}); while (pos <= stop){ if (!cancel){ capturer.SeekTime(pos,true); capturer.Pause(); frame = capturer.GetCurrentFrame(); if (frame != null) { frame.Save(System.IO.Path.Combine(outputDir,seriesName+"_" + i +".png"),"png"); int h = frame.Height; int w = frame.Width; double rate = (double)w/(double)h; if (h>w) scaledFrame = frame.ScaleSimple((int)(THUMBNAIL_MAX_HEIGHT*rate),THUMBNAIL_MAX_HEIGHT,InterpType.Bilinear); else scaledFrame = frame.ScaleSimple(THUMBNAIL_MAX_WIDTH,(int)(THUMBNAIL_MAX_WIDTH/rate),InterpType.Bilinear); frame.Dispose(); } if (Progress != null) Application.Invoke(delegate {Progress(i+1,totalFrames,scaledFrame);}); pos += interval; i++; } else { System.IO.Directory.Delete(outputDir,true); cancel=false; break; } } } } }longomatch-0.16.8/CesarPlayer/Common/0002755000175000017500000000000011601631301014376 500000000000000longomatch-0.16.8/CesarPlayer/Common/Constants.cs0000644000175000017500000000171211601631101016616 00000000000000// // Copyright (C) 2010 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; namespace LongoMatch.Video.Common { class Constants{ public const string DV1394SRC_PROP = "guid"; public const string DSHOWVIDEOSINK_PROP = "device-name"; } } longomatch-0.16.8/CesarPlayer/Common/Enum.cs0000644000175000017500000000477311601631101015560 00000000000000// // Copyright (C) 2010 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; namespace LongoMatch.Video.Common { public enum Error { AudioPlugin, NoPluginForFile, VideoPlugin, AudioBusy, BrokenFile, FileGeneric, FilePermission, FileEncrypted, FileNotFound, DvdEncrypted, InvalidDevice, UnknownHost, NetworkUnreachable, ConnectionRefused, UnvalidLocation, Generic, CodecNotHandled, AudioOnly, CannotCapture, ReadError, PluginLoad, EmptyFile, } public enum VideoEncoderType { Mpeg4, Xvid, Theora, H264, Mpeg2, VP8, } public enum AudioEncoderType { Mp3, Aac, Vorbis, } public enum VideoMuxerType { Avi, Mp4, Matroska, Ogg, MpegPS, WebM, } public enum CapturerType{ Fake, Live, } public enum VideoFormat { PORTABLE=0, VGA=1, TV=2, HD720p=3, HD1080p=4 } public enum VideoQuality { Low = 1000, Normal = 3000, Good = 5000, Extra = 7000, } public enum AudioQuality { Low = 32000, Normal = 64000, Good = 128000, Extra = 256000, copy, } public enum PlayerUseType { Video, Audio, Capture, Metadata, } public enum VideoProperty { Brightness, Contrast, Saturation, Hue, } public enum AspectRatio { Auto, Square, Fourbythree, Anamorphic, Dvb, } public enum AudioOutType { Stereo, Channel4, Channel41, Channel5, Channel51, Ac3passthru, } public enum MetadataType { Title, Artist, Year, Comment, Album, Duration, TrackNumber, Cover, HasVideo, DimensionX, DimensionY, VideoBitrate, VideoEncoderType, Fps, HasAudio, AudioBitrate, AudioEncoderType, AudioSampleRate, AudioChannels, } public enum DeviceType { Video, Audio, DV } public enum CaptureSourceType { None, DV, Raw, DShow } } longomatch-0.16.8/CesarPlayer/Common/Handlers.cs0000644000175000017500000000515711601631101016411 00000000000000// // Copyright (C) 2010 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using Gdk; namespace LongoMatch.Video.Common { public delegate void PlayListSegmentDoneHandler (); public delegate void SegmentClosedHandler(); public delegate void SegmentDoneHandler(); public delegate void SeekEventHandler(long pos); public delegate void VolumeChangedHandler (double level); public delegate void NextButtonClickedHandler (); public delegate void PrevButtonClickedHandler (); public delegate void ProgressHandler (float progress); public delegate void FramesProgressHandler (int actual, int total,Pixbuf frame); public delegate void DrawFrameHandler (int time); public delegate void EllpasedTimeHandler (int ellapsedTime); public delegate void ErrorHandler(object o, ErrorArgs args); public delegate void PercentCompletedHandler(object o, PercentCompletedArgs args); public delegate void StateChangeHandler(object o, StateChangeArgs args); public delegate void TickHandler(object o, TickArgs args); public delegate void DeviceChangeHandler(object o, DeviceChangeArgs args); public class ErrorArgs : GLib.SignalArgs { public string Message{ get { return (string) Args[0]; } } } public class PercentCompletedArgs : GLib.SignalArgs { public float Percent{ get { return (float) Args[0]; } } } public class StateChangeArgs : GLib.SignalArgs { public bool Playing{ get { return (bool) Args[0]; } } } public class TickArgs : GLib.SignalArgs { public long CurrentTime{ get { return (long) Args[0]; } } public long StreamLength{ get { return (long) Args[1]; } } public float CurrentPosition{ get { return (float) Args[2]; } } public bool Seekable{ get { return (bool) Args[3]; } } } public class DeviceChangeArgs : GLib.SignalArgs { public int DeviceChange{ get { return (int) Args[0]; } } } } longomatch-0.16.8/CesarPlayer/Editor/0002755000175000017500000000000011601631302014375 500000000000000longomatch-0.16.8/CesarPlayer/Editor/VideoSegment.cs0000644000175000017500000000314211601631101017230 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; namespace LongoMatch.Video.Editor { public class VideoSegment { private string filePath; private long start; private long duration; private double rate; private string title; private bool hasAudio; public VideoSegment(string filePath, long start, long duration, double rate, string title,bool hasAudio) { this.filePath = filePath; this.start = start; this.duration = duration; this.rate = rate; this.title = title; this.hasAudio= hasAudio; } public string FilePath{ get{ return filePath;} } public string Title{ get{ return title;} } public long Start{ get{ return start;} } public long Duration{ get { return duration;} } public double Rate{ get{ return rate;} } public bool HasAudio{ get{return hasAudio;} } } } longomatch-0.16.8/CesarPlayer/Editor/IVideoSplitter.cs0000644000175000017500000000306411601631101017550 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using LongoMatch.Video.Common; namespace LongoMatch.Video.Editor { public interface IVideoSplitter { event PercentCompletedHandler PercentCompleted; event ErrorHandler Error; bool EnableAudio{ set; get; } bool EnableTitle{ set; get; } int VideoBitrate { set; get; } int AudioBitrate { set; get; } int Width { get ; set; } int Height { get ; set ; } string OutputFile { get ; set; } void SetSegment(string filePath, long start, long duration, double rate, string title, bool hasAudio); AudioEncoderType AudioEncoder{ set; } VideoEncoderType VideoEncoder{ set; } VideoMuxerType VideoMuxer{ set; } void Start(); void Cancel(); } } longomatch-0.16.8/CesarPlayer/Editor/EditorState.cs0000644000175000017500000000165411601631101017074 00000000000000// // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; namespace LongoMatch.Video.Editor { public enum EditorState { START = 0, FINISHED = 1, CANCELED = -1, ERROR = -2 } } longomatch-0.16.8/CesarPlayer/Editor/GstVideoSplitter.cs0000644000175000017500000002761411601631101020124 00000000000000// GstVideoSplitter.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // namespace LongoMatch.Video.Editor { using System; using System.Collections; using System.Runtime.InteropServices; using LongoMatch.Video.Common; public class GstVideoSplitter : GLib.Object, IVideoEditor, IVideoSplitter { [DllImport("libcesarplayer.dll")] static extern unsafe IntPtr gst_video_editor_new(out IntPtr err); public event ProgressHandler Progress; public unsafe GstVideoSplitter () : base (IntPtr.Zero) { if (GetType () != typeof (GstVideoSplitter)) { throw new InvalidOperationException ("Can't override this constructor."); } IntPtr error = IntPtr.Zero; Raw = gst_video_editor_new(out error); if (error != IntPtr.Zero) throw new GLib.GException (error); PercentCompleted += delegate(object o, PercentCompletedArgs args) { if (Progress!= null) Progress (args.Percent); }; } #region Properties [GLib.Property ("enable-audio")] public bool EnableAudio { get { GLib.Value val = GetProperty ("enable-audio"); bool ret = (bool) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("enable-audio", val); val.Dispose (); } } [GLib.Property ("enable-title")] public bool EnableTitle { get { GLib.Value val = GetProperty ("enable-title"); bool ret = (bool) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("enable-title", val); val.Dispose (); } } [GLib.Property ("video_bitrate")] public int VideoBitrate { get { GLib.Value val = GetProperty ("video_bitrate"); int ret = (int) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("video_bitrate", val); val.Dispose (); } } [GLib.Property ("audio_bitrate")] public int AudioBitrate { get { GLib.Value val = GetProperty ("audio_bitrate"); int ret = (int) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("audio_bitrate", val); val.Dispose (); } } [GLib.Property ("width")] public int Width { get { GLib.Value val = GetProperty ("width"); int ret = (int) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("width", val); val.Dispose (); } } [GLib.Property ("height")] public int Height { get { GLib.Value val = GetProperty ("height"); int ret = (int) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("height", val); val.Dispose (); } } [GLib.Property ("output_file")] public string OutputFile { get { GLib.Value val = GetProperty ("output_file"); string ret = (string) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("output_file", val); val.Dispose (); } } #endregion #region GSignals #pragma warning disable 0169 [GLib.CDeclCallback] delegate void ErrorVMDelegate (IntPtr gvc, IntPtr message); static ErrorVMDelegate ErrorVMCallback; static void error_cb (IntPtr gvc, IntPtr message) { try { GstVideoSplitter gvc_managed = GLib.Object.GetObject (gvc, false) as GstVideoSplitter; gvc_managed.OnError (GLib.Marshaller.Utf8PtrToString (message)); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideError (GLib.GType gtype) { if (ErrorVMCallback == null) ErrorVMCallback = new ErrorVMDelegate (error_cb); OverrideVirtualMethod (gtype, "error", ErrorVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Editor.GstVideoSplitter), ConnectionMethod="OverrideError")] protected virtual void OnError (string message) { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (2); GLib.Value[] vals = new GLib.Value [2]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); vals [1] = new GLib.Value (message); inst_and_params.Append (vals [1]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("error")] public event ErrorHandler Error { add { GLib.Signal sig = GLib.Signal.Lookup (this, "error", typeof (ErrorArgs)); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "error", typeof (ErrorArgs)); sig.RemoveDelegate (value); } } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void PercentCompletedVMDelegate (IntPtr gvc, float percent); static PercentCompletedVMDelegate PercentCompletedVMCallback; static void percentcompleted_cb (IntPtr gvc, float percent) { try { GstVideoSplitter gvc_managed = GLib.Object.GetObject (gvc, false) as GstVideoSplitter; gvc_managed.OnPercentCompleted (percent); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverridePercentCompleted (GLib.GType gtype) { if (PercentCompletedVMCallback == null) PercentCompletedVMCallback = new PercentCompletedVMDelegate (percentcompleted_cb); OverrideVirtualMethod (gtype, "percent_completed", PercentCompletedVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Editor.GstVideoSplitter), ConnectionMethod="OverridePercentCompleted")] protected virtual void OnPercentCompleted (float percent) { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (2); GLib.Value[] vals = new GLib.Value [2]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); vals [1] = new GLib.Value (percent); inst_and_params.Append (vals [1]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("percent_completed")] public event PercentCompletedHandler PercentCompleted { add { GLib.Signal sig = GLib.Signal.Lookup (this, "percent_completed", typeof (PercentCompletedArgs)); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "percent_completed", typeof (PercentCompletedArgs)); sig.RemoveDelegate (value); } } #pragma warning restore 0169 #endregion #region Public Methods [DllImport("libcesarplayer.dll")] static extern IntPtr gst_video_editor_get_type(); public static new GLib.GType GType { get { IntPtr raw_ret = gst_video_editor_get_type(); GLib.GType ret = new GLib.GType(raw_ret); return ret; } } [DllImport("libcesarplayer.dll")] static extern void gst_video_editor_clear_segments_list(IntPtr raw); public void ClearList() { gst_video_editor_clear_segments_list(Handle); } [DllImport("libcesarplayer.dll")] static extern void gst_video_editor_add_segment(IntPtr raw, string file_path, long start, long duration, double rate, IntPtr title, bool hasAudio); public void AddSegment(string filePath, long start, long duration, double rate, string title, bool hasAudio) { if (Environment.OSVersion.Platform == PlatformID.Win32NT) filePath="file:///"+filePath; gst_video_editor_add_segment(Handle, filePath, start, duration, rate, GLib.Marshaller.StringToPtrGStrdup(title), hasAudio); } [DllImport("libcesarplayer.dll")] static extern void gst_video_editor_start(IntPtr raw); public void Start() { gst_video_editor_start(Handle); } [DllImport("libcesarplayer.dll")] static extern void gst_video_editor_cancel(IntPtr raw); public void Cancel() { // The handle might have already been dealocated try{ gst_video_editor_cancel(Handle); }catch{ } } [DllImport("libcesarplayer.dll")] static extern void gst_video_editor_set_video_encoder(IntPtr raw, out IntPtr error_ptr, int type); public void SetVideoEncoder(out string error, VideoEncoderType codec) { IntPtr error_ptr = IntPtr.Zero; gst_video_editor_set_video_encoder(Handle,out error_ptr,(int)codec); if (error_ptr != IntPtr.Zero) error = GLib.Marshaller.Utf8PtrToString(error_ptr); else error = null; } [DllImport("libcesarplayer.dll")] static extern void gst_video_editor_set_audio_encoder(IntPtr raw, out IntPtr error_ptr, int type); public void SetAudioEncoder(out string error, AudioEncoderType codec) { IntPtr error_ptr = IntPtr.Zero; gst_video_editor_set_audio_encoder(Handle,out error_ptr,(int)codec); if (error_ptr != IntPtr.Zero) error = GLib.Marshaller.Utf8PtrToString(error_ptr); else error = null; } [DllImport("libcesarplayer.dll")] static extern void gst_video_editor_set_video_muxer(IntPtr raw, out IntPtr error_ptr, int type); public void SetVideoMuxer(out string error, VideoMuxerType muxer) { IntPtr error_ptr = IntPtr.Zero; gst_video_editor_set_video_muxer(Handle,out error_ptr,(int)muxer); if (error_ptr != IntPtr.Zero) error = GLib.Marshaller.Utf8PtrToString(error_ptr); else error = null; } [DllImport("libcesarplayer.dll")] static extern void gst_video_editor_init_backend(out int argc, IntPtr argv); public static int InitBackend(string argv) { int argc; gst_video_editor_init_backend(out argc, GLib.Marshaller.StringToPtrGStrdup(argv)); return argc; } public void SetSegment (string filePath, long start, long duration, double rate, string title, bool hasAudio){ ClearList(); AddSegment(filePath, start, duration, rate, title,hasAudio); } public VideoQuality VideoQuality{ set{VideoBitrate=(int)value;} } public AudioQuality AudioQuality{ set{AudioBitrate = (int)value;} } public VideoFormat VideoFormat{ set{ if (value == VideoFormat.PORTABLE){ Height = 240; Width = 320; } else if (value == VideoFormat.VGA){ Height = 480 ; Width = 640; } else if (value == VideoFormat.TV){ Height = 576; Width = 720; } else if (value == VideoFormat.HD720p){ Height = 720; Width = 1280; } else if (value == VideoFormat.HD1080p){ Height = 1080; Width = 1920; } } } public AudioEncoderType AudioEncoder{ set{ string error; SetAudioEncoder(out error,value); if (error != null) throw new Exception(error); } } public VideoEncoderType VideoEncoder{ set{ string error; SetVideoEncoder(out error, value); if (error != null) throw new Exception(error); } } public VideoMuxerType VideoMuxer{ set{ string error; SetVideoMuxer(out error,value); if (error != null) throw new Exception(error); } } public string TempDir{ set{;} } #endregion } } longomatch-0.16.8/CesarPlayer/Editor/IVideoEditor.cs0000644000175000017500000000320511601631101017165 00000000000000// IVideoEditor.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using System.Collections.Generic; using LongoMatch.Video.Common; namespace LongoMatch.Video.Editor { public interface IVideoEditor { event ProgressHandler Progress; VideoQuality VideoQuality{ set; } AudioQuality AudioQuality{ set; } VideoFormat VideoFormat{ set; } AudioEncoderType AudioEncoder{ set; } VideoEncoderType VideoEncoder{ set; } VideoMuxerType VideoMuxer{ set; } string OutputFile{ set; } string TempDir{ set; } bool EnableTitle{ set; } bool EnableAudio{ set; } void AddSegment (string filePath, long start, long duration, double rate, string title, bool hasAudio) ; void ClearList(); void Start(); void Cancel(); } } longomatch-0.16.8/CesarPlayer/Capturer/0002755000175000017500000000000011601631302014734 500000000000000longomatch-0.16.8/CesarPlayer/Capturer/FakeCapturer.cs0000644000175000017500000000456011601631101017557 00000000000000// // Copyright (C) 2010 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using Mono.Unix; using GLib; using LongoMatch.Video.Common; using Gdk; namespace LongoMatch.Video.Capturer { public class FakeCapturer : Gtk.Bin, ICapturer { public event EllpasedTimeHandler EllapsedTime; public event ErrorHandler Error; public event DeviceChangeHandler DeviceChange; private LiveSourceTimer timer; public FakeCapturer(): base () { timer = new LiveSourceTimer(); timer.EllapsedTime += delegate(int ellapsedTime) { if (EllapsedTime!= null) EllapsedTime(ellapsedTime); }; } public int CurrentTime{ get{ return timer.CurrentTime; } } public void Run(){ } public void Close(){ } public void Start(){ timer.Start(); } public void Stop(){ timer.Stop(); } public void TogglePause(){ timer.TogglePause(); } public uint OutputWidth { get{return 0;} set{} } public uint OutputHeight { get{return 0;} set{} } public string OutputFile { get {return Catalog.GetString("Fake live source");} set {} } public uint VideoBitrate { get {return 0;} set {} } public uint AudioBitrate { get {return 0;} set {} } public Pixbuf CurrentFrame { get {return null;} } public string DeviceID { get {return "";} set{} } public bool SetVideoEncoder(VideoEncoderType type){ return true; } public bool SetAudioEncoder(AudioEncoderType type){ return true; } public bool SetVideoMuxer(VideoMuxerType type){ return true; } public bool SetSource(CaptureSourceType type){ return true; } } } longomatch-0.16.8/CesarPlayer/Capturer/ObjectManager.cs0000644000175000017500000000250711601631101017703 00000000000000// ObjectManager.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // // This file was generated by the Gtk# code generator. // Any changes made will be lost if regenerated. namespace LongoMatch.GtkSharp.Capturer { public class ObjectManager { static bool initialized = false; // Call this method from the appropriate module init function. public static void Initialize () { if (initialized) return; initialized = true; GLib.GType.Register (LongoMatch.Video.Capturer.GstCameraCapturer.GType, typeof (LongoMatch.Video.Capturer.GstCameraCapturer)); } } } longomatch-0.16.8/CesarPlayer/Capturer/LiveSourceTimer.cs0000644000175000017500000000374711601631101020272 00000000000000// // Copyright (C) 2010 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using LongoMatch.Video.Common; namespace LongoMatch.Video.Capturer { public class LiveSourceTimer { public event EllpasedTimeHandler EllapsedTime; private DateTime lastStart; private TimeSpan ellapsed; private bool playing; private bool started; private uint timerID; public LiveSourceTimer() { lastStart = DateTime.Now; ellapsed = new TimeSpan(0,0,0); playing = false; started = false; } public int CurrentTime{ get{ if (!started) return 0; else if (playing) return (int)(ellapsed + (DateTime.Now - lastStart)).TotalMilliseconds; else return (int)ellapsed.TotalMilliseconds; } } public void TogglePause(){ if (!started) return; if (playing){ playing = false; ellapsed += DateTime.Now - lastStart; } else{ playing = true; lastStart = DateTime.Now; } } public void Start(){ timerID = GLib.Timeout.Add(100, OnTick); lastStart = DateTime.Now; playing = true; started = true; } public void Stop(){ GLib.Source.Remove(timerID); } protected virtual bool OnTick(){ if (EllapsedTime != null) EllapsedTime(CurrentTime); return true; } } } longomatch-0.16.8/CesarPlayer/Capturer/CaptureProperties.cs0000644000175000017500000000232111601631101020654 00000000000000// // Copyright (C) 2010 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // using System; using LongoMatch.Video.Common; namespace LongoMatch.Video.Capturer { public struct CapturePropertiesStruct { public CaptureSourceType CaptureSourceType; public string OutputFile; public string DeviceID; public uint VideoBitrate; public uint AudioBitrate; public VideoEncoderType VideoEncoder; public AudioEncoderType AudioEncoder; public VideoMuxerType Muxer; public uint Height; public uint Width; } } longomatch-0.16.8/CesarPlayer/Capturer/GstCameraCapturer.cs0000644000175000017500000003571011601631101020560 00000000000000// Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // namespace LongoMatch.Video.Capturer { using System; using System.Collections; using System.Runtime.InteropServices; using LongoMatch.Video.Common; #region Autogenerated code public class GstCameraCapturer : Gtk.HBox, LongoMatch.Video.Capturer.ICapturer { public event EllpasedTimeHandler EllapsedTime; private LiveSourceTimer timer; [Obsolete] protected GstCameraCapturer(GLib.GType gtype) : base(gtype) {} public GstCameraCapturer(IntPtr raw) : base(raw) {} [DllImport("libcesarplayer.dll")] static extern unsafe IntPtr gst_camera_capturer_new(IntPtr filename, out IntPtr err); public unsafe GstCameraCapturer (string filename) : base (IntPtr.Zero) { if (GetType () != typeof (GstCameraCapturer)) { throw new InvalidOperationException ("Can't override this constructor."); } IntPtr error = IntPtr.Zero; Raw = gst_camera_capturer_new(GLib.Marshaller.StringToPtrGStrdup(filename), out error); if (error != IntPtr.Zero) throw new GLib.GException (error); timer = new LiveSourceTimer(); timer.EllapsedTime += delegate(int ellapsedTime) { if (EllapsedTime!= null) EllapsedTime(ellapsedTime); }; } [GLib.Property ("output_height")] public uint OutputHeight { get { GLib.Value val = GetProperty ("output_height"); uint ret = (uint) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("output_height", val); val.Dispose (); } } [GLib.Property ("output_width")] public uint OutputWidth { get { GLib.Value val = GetProperty ("output_width"); uint ret = (uint) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("output_width", val); val.Dispose (); } } [GLib.Property ("video_bitrate")] public uint VideoBitrate { get { GLib.Value val = GetProperty ("video_bitrate"); uint ret = (uint) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("video_bitrate", val); val.Dispose (); } } [GLib.Property ("output_file")] public string OutputFile { get { GLib.Value val = GetProperty ("output_file"); string ret = (string) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("output_file", val); val.Dispose (); } } [GLib.Property ("audio_bitrate")] public uint AudioBitrate { get { GLib.Value val = GetProperty ("audio_bitrate"); uint ret = (uint) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("audio_bitrate", val); val.Dispose (); } } [GLib.Property ("device_id")] public string DeviceID { get { GLib.Value val = GetProperty ("device_id"); string ret = (string) val; val.Dispose (); return ret; } set { GLib.Value val = new GLib.Value(value); SetProperty("device_id", val); val.Dispose (); } } #pragma warning disable 0169 [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void ErrorSignalDelegate (IntPtr arg0, IntPtr arg1, IntPtr gch); static void ErrorSignalCallback (IntPtr arg0, IntPtr arg1, IntPtr gch) { ErrorArgs args = new ErrorArgs (); try { GLib.Signal sig = ((GCHandle) gch).Target as GLib.Signal; if (sig == null) throw new Exception("Unknown signal GC handle received " + gch); args.Args = new object[1]; args.Args[0] = GLib.Marshaller.Utf8PtrToString (arg1); ErrorHandler handler = (ErrorHandler) sig.Handler; handler (GLib.Object.GetObject (arg0), args); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void ErrorVMDelegate (IntPtr gcc, IntPtr message); static ErrorVMDelegate ErrorVMCallback; static void error_cb (IntPtr gcc, IntPtr message) { try { GstCameraCapturer gcc_managed = GLib.Object.GetObject (gcc, false) as GstCameraCapturer; gcc_managed.OnError (GLib.Marshaller.Utf8PtrToString (message)); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideError (GLib.GType gtype) { if (ErrorVMCallback == null) ErrorVMCallback = new ErrorVMDelegate (error_cb); OverrideVirtualMethod (gtype, "error", ErrorVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Capturer.GstCameraCapturer), ConnectionMethod="OverrideError")] protected virtual void OnError (string message) { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (2); GLib.Value[] vals = new GLib.Value [2]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); vals [1] = new GLib.Value (message); inst_and_params.Append (vals [1]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("error")] public event ErrorHandler Error { add { GLib.Signal sig = GLib.Signal.Lookup (this, "error", new ErrorSignalDelegate(ErrorSignalCallback)); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "error", new ErrorSignalDelegate(ErrorSignalCallback)); sig.RemoveDelegate (value); } } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void DeviceChangeSignalDelegate (IntPtr arg0, int arg1, IntPtr gch); static void DeviceChangeSignalCallback (IntPtr arg0, int arg1, IntPtr gch) { DeviceChangeArgs args = new DeviceChangeArgs (); try { GLib.Signal sig = ((GCHandle) gch).Target as GLib.Signal; if (sig == null) throw new Exception("Unknown signal GC handle received " + gch); args.Args = new object[1]; args.Args[0] = arg1; DeviceChangeHandler handler = (DeviceChangeHandler) sig.Handler; handler (GLib.Object.GetObject (arg0), args); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void DeviceChangeVMDelegate (IntPtr gcc, int deviceChange); static DeviceChangeVMDelegate DeviceChangeVMCallback; static void device_change_cb (IntPtr gcc, int deviceChange) { try { GstCameraCapturer gcc_managed = GLib.Object.GetObject (gcc, false) as GstCameraCapturer; gcc_managed.OnDeviceChange (deviceChange); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideDeviceChange (GLib.GType gtype) { if (DeviceChangeVMCallback == null) DeviceChangeVMCallback = new DeviceChangeVMDelegate (device_change_cb); OverrideVirtualMethod (gtype, "device_change", DeviceChangeVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Capturer.GstCameraCapturer), ConnectionMethod="OverrideDeviceChange")] protected virtual void OnDeviceChange (int deviceChange) { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (2); GLib.Value[] vals = new GLib.Value [2]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); vals [1] = new GLib.Value (deviceChange); inst_and_params.Append (vals [1]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("device_change")] public event DeviceChangeHandler DeviceChange { add { GLib.Signal sig = GLib.Signal.Lookup (this, "device_change", new DeviceChangeSignalDelegate(DeviceChangeSignalCallback)); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "device_change", new DeviceChangeSignalDelegate(DeviceChangeSignalCallback)); sig.RemoveDelegate (value); } } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void EosVMDelegate (IntPtr gcc); static EosVMDelegate EosVMCallback; static void eos_cb (IntPtr gcc) { try { GstCameraCapturer gcc_managed = GLib.Object.GetObject (gcc, false) as GstCameraCapturer; gcc_managed.OnEos (); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, false); } } private static void OverrideEos (GLib.GType gtype) { if (EosVMCallback == null) EosVMCallback = new EosVMDelegate (eos_cb); OverrideVirtualMethod (gtype, "eos", EosVMCallback); } [GLib.DefaultSignalHandler(Type=typeof(LongoMatch.Video.Capturer.GstCameraCapturer), ConnectionMethod="OverrideEos")] protected virtual void OnEos () { GLib.Value ret = GLib.Value.Empty; GLib.ValueArray inst_and_params = new GLib.ValueArray (1); GLib.Value[] vals = new GLib.Value [1]; vals [0] = new GLib.Value (this); inst_and_params.Append (vals [0]); g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret); foreach (GLib.Value v in vals) v.Dispose (); } [GLib.Signal("eos")] public event System.EventHandler Eos { add { GLib.Signal sig = GLib.Signal.Lookup (this, "eos"); sig.AddDelegate (value); } remove { GLib.Signal sig = GLib.Signal.Lookup (this, "eos"); sig.RemoveDelegate (value); } } #pragma warning restore 0169 [DllImport("libcesarplayer.dll")] static extern void gst_camera_capturer_init_backend(out int argc, IntPtr argv); public static int InitBackend(string argv) { int argc; gst_camera_capturer_init_backend(out argc, GLib.Marshaller.StringToPtrGStrdup(argv)); return argc; } [DllImport("libcesarplayer.dll")] static extern void gst_camera_capturer_stop(IntPtr raw); public void Stop() { timer.Stop(); gst_camera_capturer_stop(Handle); } [DllImport("libcesarplayer.dll")] static extern void gst_camera_capturer_toggle_pause(IntPtr raw); public void TogglePause() { timer.TogglePause(); gst_camera_capturer_toggle_pause(Handle); } public int CurrentTime{ get{ return timer.CurrentTime; } } [DllImport("libcesarplayer.dll")] static extern void gst_camera_capturer_start(IntPtr raw); public void Start() { timer.Start(); gst_camera_capturer_start(Handle); } [DllImport("libcesarplayer.dll")] static extern void gst_camera_capturer_run(IntPtr raw); public void Run() { gst_camera_capturer_run(Handle); } [DllImport("libcesarplayer.dll")] static extern void gst_camera_capturer_close(IntPtr raw); public void Close() { gst_camera_capturer_close(Handle); } [DllImport("libcesarplayer.dll")] static extern bool gst_camera_capturer_set_video_muxer(IntPtr raw, int type, out IntPtr error); public bool SetVideoMuxer(VideoMuxerType type) { IntPtr error = IntPtr.Zero; bool raw_ret = gst_camera_capturer_set_video_muxer(Handle, (int) type, out error); if (error != IntPtr.Zero) throw new GLib.GException (error); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern bool gst_camera_capturer_set_video_encoder(IntPtr raw, int type, out IntPtr error); public bool SetVideoEncoder(VideoEncoderType type) { IntPtr error = IntPtr.Zero; bool raw_ret = gst_camera_capturer_set_video_encoder(Handle, (int) type, out error); if (error != IntPtr.Zero) throw new GLib.GException (error); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern bool gst_camera_capturer_set_audio_encoder(IntPtr raw, int type, out IntPtr error); public bool SetAudioEncoder(AudioEncoderType type) { IntPtr error = IntPtr.Zero; bool raw_ret = gst_camera_capturer_set_audio_encoder(Handle, (int) type, out error); if (error != IntPtr.Zero) throw new GLib.GException (error); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern bool gst_camera_capturer_set_source(IntPtr raw, int type, out IntPtr error); public bool SetSource(CaptureSourceType type) { IntPtr error = IntPtr.Zero; bool raw_ret = gst_camera_capturer_set_source(Handle, (int) type, out error); if (error != IntPtr.Zero) throw new GLib.GException (error); bool ret = raw_ret; return ret; } [DllImport("libcesarplayer.dll")] static extern IntPtr gst_camera_capturer_get_type(); public static new GLib.GType GType { get { IntPtr raw_ret = gst_camera_capturer_get_type(); GLib.GType ret = new GLib.GType(raw_ret); return ret; } } [DllImport("libcesarplayer.dll")] static extern IntPtr gst_camera_capturer_enum_audio_devices(); public static string[] AudioDevices { get { IntPtr raw_ret = gst_camera_capturer_enum_audio_devices(); return (string[])GLib.Marshaller.ListPtrToArray(raw_ret, typeof(GLib.List), true, false, typeof(String)); } } [DllImport("libcesarplayer.dll")] static extern IntPtr gst_camera_capturer_enum_video_devices(); public static string[] VideoDevices { get { IntPtr raw_ret = gst_camera_capturer_enum_video_devices(); return (string[])GLib.Marshaller.ListPtrToArray(raw_ret, typeof(GLib.List), true, false, typeof(String)); } } [DllImport("libcesarplayer.dll")] static extern IntPtr gst_camera_capturer_get_current_frame(IntPtr raw); [DllImport("libcesarplayer.dll")] static extern IntPtr gst_camera_capturer_unref_pixbuf(IntPtr raw); public Gdk.Pixbuf CurrentFrame { get { IntPtr raw_ret = gst_camera_capturer_get_current_frame (Handle); Gdk.Pixbuf p = GLib.Object.GetObject (raw_ret) as Gdk.Pixbuf; /* The refcount for p is now 2. We need to decrease the counter to 1 * so that p.Dipose() sets it to 0 and triggers the pixbuf destroy function * that frees the associated data*/ gst_camera_capturer_unref_pixbuf (raw_ret); return p; } } static GstCameraCapturer () { LongoMatch.GtkSharp.Capturer.ObjectManager.Initialize (); } #endregion } } longomatch-0.16.8/CesarPlayer/Capturer/ICapturer.cs0000644000175000017500000000340711601631101017100 00000000000000// ICapturer.cs // // Copyright (C) 2007-2009 Andoni Morales Alastruey // // 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. // // using System; using LongoMatch.Video.Common; using Gdk; namespace LongoMatch.Video.Capturer { public interface ICapturer { event EllpasedTimeHandler EllapsedTime; event ErrorHandler Error; event DeviceChangeHandler DeviceChange; uint OutputWidth { get ; set ; } uint OutputHeight { get; set ; } string OutputFile { get ; set ; } uint VideoBitrate { get; set ; } uint AudioBitrate { get ; set ; } int CurrentTime { get ; } Pixbuf CurrentFrame { get; } string DeviceID { set; get; } bool SetVideoEncoder(VideoEncoderType type); bool SetAudioEncoder(AudioEncoderType type); bool SetVideoMuxer(VideoMuxerType type); bool SetSource(CaptureSourceType type); void TogglePause(); void Start(); void Stop(); void Run(); void Close(); void Dispose(); } } longomatch-0.16.8/NEWS0000644000175000017500000001724011601631101011353 00000000000000===== LongoMatch 0.16.8 "Una vaaaaca" ===== == Bugs Fixed == * Really fix height and weight limits on win32 * Increase speed settings of the vp8 and h264 encoders ===== LongoMatch 0.16.7 "Wakamole" ===== == Bugs Fixed == * Fix environment initialization * Set more realistic limits to players weight and height ===== LongoMatch 0.16.7 "Wakamole" ===== == Bugs Fixed == * Fix environment initialization * Set more realistic limits to players weight and height ===== LongoMatch 0.16.6 "S.O.S." ===== == Features of this release == * Added turkish translation * Add support for a portable version with no installation required == Bugs Fixed == * Drawing frame do not correspond to the one in the player by a few frames * Project backup file is not saved when something wrong happened in the capture * Index of tagged players is broken and results in wrong tagging ===== LongoMatch 0.16.5 "M&B" ===== == Features of this release == * Added brazilian translation * Add categories list to the timeline * Timeline's time scale doesn't scroll anymore ===== LongoMatch 0.16.4 "Mario Kart is in the the house" ===== == Features of this release == * Select players from the template pool and only the one that are playing == Bugs Fixed == * Bug 634499 - In the Plays List move the Name of the play closer to the expand/collapse arrow * Bug 634494 - Choose players for a project from the template pool * Bug 633495 - typo * Fix hang creating new plays from the timeline when a play is loaded ===== LongoMatch 0.16.3 "Band of koalas" ===== == Bugs Fixed == * Fixed bug in the categories templates manager that prevents it from editing a category ===== LongoMatch 0.16.2 "Uuups, lo volí a parder ===== == Features of this release == * Added Dutch translation * Added Chinese translation * Added player shortcuts in playlist mode * Added date of birth, size, weight and nationality fields to players == Bugs Fixed == * Fix crash on Linux openning the calendar ===== LongoMatch 0.16.1 "Bully'92 DHB" ===== == Features == * Added italian translation * Add plays count in the list * Add accelerators for the different views * Allow framestepping using the mouse scrolls * Add a colors' selection button to the drawing tool == Bugs Fixed == * [#630954] Seeking clicking in the timescale seeks to the beginning of the file * [#630956] Plays marked from the timescale doesn't take the screenshot at the right place ===== LongoMatch 0.16.0 "Arriba las cámaras, esto es un atraco!" ===== == Features == * Added live analisys support. * Live capture from DV camcorders. * Added vp8 and webm support. * Added 'and' 'or' filter to tags' filter. * Video editor keeps DAR adding black borders. * Allow multideletion of projects and templates. * Add file information in the projects list (codecs/lenght). * Added catalan translation. == Bugs Fixed == * [#620656] Allow multiselection to delete projects. * [#620654] Change the plays filter to allow AND and OR * bps/kbps fixes for several codecs. ===== LongoMatch 0.15.7 ===== == Features == * Added tolltips to many widgets. * Use the keyboard arrows for the player's keyboard shortcuts == Bugs Fixed == * Crash loading projects pointing to a file that doesn't exists * The video player's timescale report a wrong value when releasing the mouse, sending wrong seeks * Crash using files without video streams * Arrows should be used for the player's keyboard shortcuts ===== LongoMatch 0.15.6 ===== == Features == * New tagging mode, to tag plays setting the start and stop time instead of using the default values. * Live analysis support with a fake capture device. * Keys bindings for the media player. * Added Norwegian translation. * Added Slovenian translation. * Added Danish translation. * Added Swedish translation. == Bugs Fixed == * [#614133] The drawing tool does not resize properly the image * [#614135] Hotkeys ToString() prints 'none' if the hotkey has no modifier * [#614136] The player grabs the pointer when clicked ===== LongoMatch 0.15.5 ===== == Features == * Plays are now sortable by name, start time, stop time and duration. * Plays can be tagged. * A new tab has been added to display plays filterd by tags. * Tagging Hotkeys can use simple key instead of and Alt or Shift combination * Projects can be imported/exported to/from files. * Templates can be creating copying an existent one. * Plays can be multiselected. * A template from a project can be exported. * Added German translation == Bugs Fixed == * [#603277] The projects manager does not ask to save an edited project when exiting * [#603274] Enable multiple selection of plays * [#603276] Use a template different from the default one when creating a new one * [#603260] Ability to export/import projects to/from other machines ===== LongoMatch 0.15.4 ===== == Features == * New drawing widget with specialized tools that allows to make drawings in a frame and save it in a file or in a play as a key frame. When this drawings are saved as key frame and the play is loaded, the player recall thme when it reaches the instant they belong to. * Speeds improvements in retrieving projects from the database. * Better readabilty of plays using bigger thumbnails and improving info layout == Bugs Fixed == * [#598675] Memory leak handling Project objects ===== LongoMatch 0.15.3 ===== == Features == * Usability improvements in the Projects Manager == Bugs Fixed == * [#596187] GPL headers use the old FSF address * [#596013] Removal of sections on a created project does not repect order * [#] Buttons' label doesn't ellipsize and prevent the main window to shrink ===== LongoMatch 0.15.2 ===== == Features == * Drawing tool for on-video annotations * Redesigned templates manager == Bugs Fixed == * [#594161] Can't edit categories name in the treeview * [#594329] Cannot change the file associated to a project in the Projects Manager * [#595397] Video editor stalls for some audio formats * [#595110] Memory leak handling unamanged Pixbuf ===== LongoMatch 0.15.1 ===== == Features == * Illimted number of tagging categories (previous version allows only 20) * Support for team templates * Plays can be tagged to players * HotKeys support * Database migration tool * New video editor implemented using GNonLin (FFmpeg and Mencoder are not required anymore) * Video Editor with audio support * Overlay title of the play in rendered clips * Change the playrate of plays in the rendered clip * New output formats (TV, HD, FullHD) * New output audio and video codecs supports (Matroska+H264+AAC, AVI+XVID+MP3, OGG+Theora+Vorbis, MPEG2-PS+Mpeg2Video) == Improvements == * Display the name of the play in the timeline * Draw rounded rectangles in thetimeline * Enable projects search * Added image preview to projects * Added "Competion" and "Season" properties to the Project's description * Multimedia player updated to playbin2 * Playlists elements can now have their own playrate * Previsualization of captured frames * Crash reports * Many bug fixes!!! ===== LongoMatch 0.14.1 ==== * [#323] Crash whith no internet conexion ===== LongoMatch 0.14 ===== * Export projects to a csv file * Control tiemline zoom through a scale * Seek in a play segment * Fixed bug playing WMV files on Windows ===== LongoMatch 0.12 ==== * Added skins support * Added mp4 support (Win32) * Added mpeg2 support (Win32-Experimental) * Bugs correction * Changed snapshot series capturer behaviour ===== LongoMatch 0.10 ==== * Support for annotations in plays a * Support to captures frames series from a play ===== No records for revious releases ====