diff -Nru mp3splt-gtk-0.9/aclocal.m4 mp3splt-gtk-0.9.2/aclocal.m4 --- mp3splt-gtk-0.9/aclocal.m4 2013-07-20 07:11:17.000000000 +0000 +++ mp3splt-gtk-0.9.2/aclocal.m4 2014-11-09 16:50:25.000000000 +0000 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.13.3 -*- Autoconf -*- +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -1406,7 +1406,7 @@ rm -rf conftest* ;; -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext @@ -1427,7 +1427,10 @@ ;; esac ;; - ppc64-*linux*|powerpc64-*linux*) + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) @@ -1446,7 +1449,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - ppc*-*linux*|powerpc*-*linux*) + powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) @@ -9674,6 +9680,61 @@ fi[]dnl ])# PKG_CHECK_MODULES + +# PKG_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable pkgconfigdir as the location where a module +# should install pkg-config .pc files. By default the directory is +# $libdir/pkgconfig, but the default can be changed by passing +# DIRECTORY. The user can override through the --with-pkgconfigdir +# parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_INSTALLDIR + + +# PKG_NOARCH_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable noarch_pkgconfigdir as the location where a +# module should install arch-independent pkg-config .pc files. By +# default the directory is $datadir/pkgconfig, but the default can be +# changed by passing DIRECTORY. The user can override through the +# --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_NOARCH_INSTALLDIR + + +# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# ------------------------------------------- +# Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])# PKG_CHECK_VAR + # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation @@ -9686,10 +9747,10 @@ # 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.13' +[am__api_version='1.14' 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.13.3], [], +m4_if([$1], [1.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -9705,7 +9766,7 @@ # 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.13.3])dnl +[AM_AUTOMAKE_VERSION([1.14.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) @@ -10072,6 +10133,12 @@ # 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. +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- @@ -10180,6 +10247,48 @@ AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not @@ -10188,7 +10297,6 @@ 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. @@ -10406,6 +10514,70 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) +# Copyright (C) 1999-2013 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_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2013 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_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. diff -Nru mp3splt-gtk-0.9/AUTHORS mp3splt-gtk-0.9.2/AUTHORS --- mp3splt-gtk-0.9/AUTHORS 2012-10-07 14:33:43.000000000 +0000 +++ mp3splt-gtk-0.9.2/AUTHORS 2014-03-22 23:57:39.000000000 +0000 @@ -14,9 +14,13 @@ - Federico Grau : audacity labels support - David Belohrad : set tags from filename regular expression - Gunter Königsmann : gui improvement and debian packaging + - Sašo Živanović : added customizable seek times in preferences of mp3splt-gtk and others ... +Thanks to Sebastian Gesemann for writing pcutmp3. +This tool helped a lot the mp3splt-project to handle bit reservoir issues. + Homepage : http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/autogen.sh mp3splt-gtk-0.9.2/autogen.sh --- mp3splt-gtk-0.9/autogen.sh 2012-12-30 22:04:54.000000000 +0000 +++ mp3splt-gtk-0.9.2/autogen.sh 2014-03-22 23:57:39.000000000 +0000 @@ -46,7 +46,7 @@ fi echo -n "Running autopoint... "; -autopoint -f && echo "done"; +autopoint --ver 0.13.1 -f && echo "done"; echo -n "Running aclocal... " \ && aclocal -I m4 $WIN_ACLOCAL_FLAGS $ACLOCAL_FLAGS && echo "done" \ && echo -n "Running autoheader... " \ @@ -86,6 +86,10 @@ && echo -n "Running automake... " \ && automake -a -c && echo "done" +if ! test -z $win ;then + touch build-aux/config.rpath + automake -a -c +fi echo -n "Formatting language files with msgfmt... " && \ { diff -Nru mp3splt-gtk-0.9/build-aux/compile mp3splt-gtk-0.9.2/build-aux/compile --- mp3splt-gtk-0.9/build-aux/compile 1970-01-01 00:00:00.000000000 +0000 +++ mp3splt-gtk-0.9.2/build-aux/compile 2013-09-15 21:53:41.000000000 +0000 @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# 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. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# 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: diff -Nru mp3splt-gtk-0.9/build-aux/ltmain.sh mp3splt-gtk-0.9.2/build-aux/ltmain.sh --- mp3splt-gtk-0.9/build-aux/ltmain.sh 2013-07-20 07:11:25.000000000 +0000 +++ mp3splt-gtk-0.9.2/build-aux/ltmain.sh 2014-11-09 16:50:30.000000000 +0000 @@ -70,7 +70,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.3 +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.7 # automake: $automake_version # autoconf: $autoconf_version # @@ -80,7 +80,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.2 Debian-2.4.2-1.3" +VERSION="2.4.2 Debian-2.4.2-1.7" TIMESTAMP="" package_revision=1.3337 diff -Nru mp3splt-gtk-0.9/ChangeLog mp3splt-gtk-0.9.2/ChangeLog --- mp3splt-gtk-0.9/ChangeLog 2013-07-20 06:06:22.000000000 +0000 +++ mp3splt-gtk-0.9.2/ChangeLog 2014-11-09 15:01:51.000000000 +0000 @@ -4,6 +4,47 @@ Some changes are implemented in libmp3splt, but reported here for convenience. ------------------------------------------------------------- +mp3splt-gtk version 0.9.2 + +- added bit reservoir handling for gapless playback option +- added @d to output format which is equal to: last directory of the input filename or the filename itself if no directory +- dropped out GTK 2.x support +- removed gtk3 deprecated symbols and made it look more gtk3-alike + +------------------------------------------------------------- +mp3splt-gtk version 0.9.1b + +- bug fix: make sure to separate artist and performer in CUE files for use of @p and @a (libmp3splt) +- bug fix on CUE: from INDEX format MM:SS:FF, handle FF as frames instead of hundreths (libmp3splt) +- bug fix: issue when having input file inside several recursive symlinks (libmp3splt) +- small improvement on CUE: also accept INDEX 1 and not only INDEX 01 (libmp3splt) + +------------------------------------------------------------- +mp3splt-gtk version 0.9.1a + +- FLAC: fixed an important bug not allowing to split some files (libmp3splt) + +------------------------------------------------------------- +mp3splt-gtk version 0.9.1 + +- FLAC internal cue sheets support +- simple MP3 chapter marks support (with no overlap) +- added 'Use CDDB/CUE file having similar name as the input file' option in Batch split +- optimized amplitude wave drawing time (now consumes less CPU) and make it not to "shake" anymore +- added customizable seeks in mp3splt-gtk (patch #7 - thanks to Sašo Živanović) +- added quick preview closest splitpoint shortcut and option to stop gstreamer quick preview + several milliseconds earlier +- added 'preview closest splitpoint & pause' option (feature request #98) +- now compiled and delivered by default with gtk+-3.0 on Windows +- gstreamer 0.10 support was dropped in favor of the 1.0 version +- fixed bug #157: quick preview goes too far +- fixed bug #159 with some FLAC files being detected as MP3; also look for the file extension + when detecting a file for a plugin (libmp3splt) +- fixed bug #160 '---last cue splitpoint--- created at 99 59 99 for mp3 files >100mins' (libmp3splt) +- better thread handling to make sure there is no overlap between the GTK thread and the other threads +- fixed bug #162 - Tooltip displayed for only a second + +------------------------------------------------------------- mp3splt-gtk version 0.9 - experimental FLAC support added diff -Nru mp3splt-gtk-0.9/configure mp3splt-gtk-0.9.2/configure --- mp3splt-gtk-0.9/configure 2013-07-20 07:11:28.000000000 +0000 +++ mp3splt-gtk-0.9.2/configure 2014-11-09 16:50:32.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for mp3splt-gtk 0.9. +# Generated by GNU Autoconf 2.69 for mp3splt-gtk 0.9.2. # # Report bugs to . # @@ -594,8 +594,8 @@ # Identity of this package. PACKAGE_NAME='mp3splt-gtk' PACKAGE_TARNAME='mp3splt-gtk' -PACKAGE_VERSION='0.9' -PACKAGE_STRING='mp3splt-gtk 0.9' +PACKAGE_VERSION='0.9.2' +PACKAGE_STRING='mp3splt-gtk 0.9.2' PACKAGE_BUGREPORT='mp3splt.sf.net' PACKAGE_URL='' @@ -682,8 +682,6 @@ GNOME_TRUE GTK_LIBS GTK_CFLAGS -FAKE_GTK_LIBS -FAKE_GTK_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG @@ -857,7 +855,6 @@ with_ltdl_include with_ltdl_lib enable_ltdl_install -enable_gtk3 enable_gnome with_help_dir with_omf_dir @@ -885,8 +882,6 @@ PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR -FAKE_GTK_CFLAGS -FAKE_GTK_LIBS GTK_CFLAGS GTK_LIBS LIBMP3SPLT_CFLAGS @@ -1441,7 +1436,7 @@ # 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 mp3splt-gtk 0.9 to adapt to many kinds of systems. +\`configure' configures mp3splt-gtk 0.9.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1511,7 +1506,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of mp3splt-gtk 0.9:";; + short | recursive ) echo "Configuration of mp3splt-gtk 0.9.2:";; esac cat <<\_ACEOF @@ -1536,11 +1531,6 @@ optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-ltdl-install install libltdl - - --enable-gtk3 Compile against GTK 3.x explicitly (default: use GTK - 3.x if available) - --disable-gtk3 Compile against GTK 2.x explicitly (default: use GTK - 3.x if available) --disable-gnome Disable gnome support. --disable-scrollkeeper do not make updates to the scrollkeeper database --disable-audacious Disable audacious player support. @@ -1589,10 +1579,6 @@ directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path - FAKE_GTK_CFLAGS - C compiler flags for FAKE_GTK, overriding pkg-config - FAKE_GTK_LIBS - linker flags for FAKE_GTK, overriding pkg-config GTK_CFLAGS C compiler flags for GTK, overriding pkg-config GTK_LIBS linker flags for GTK, overriding pkg-config LIBMP3SPLT_CFLAGS @@ -1684,7 +1670,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -mp3splt-gtk configure 0.9 +mp3splt-gtk configure 0.9.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2153,7 +2139,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by mp3splt-gtk $as_me 0.9, which was +It was created by mp3splt-gtk $as_me 0.9.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2540,7 +2526,7 @@ # right directory # Initialize automake -am__api_version='1.13' +am__api_version='1.14' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -3026,7 +3012,7 @@ # Define the identity of the package. PACKAGE='mp3splt-gtk' - VERSION='0.9' + VERSION='0.9.2' cat >>confdefs.h <<_ACEOF @@ -3077,6 +3063,48 @@ +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + # Tell autoconf where to put the output file that contains all # definitions our C program will need @@ -3898,6 +3926,65 @@ 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 + +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 whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +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 + DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" @@ -8375,7 +8462,7 @@ rm -rf conftest* ;; -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext @@ -8400,7 +8487,10 @@ ;; esac ;; - ppc64-*linux*|powerpc64-*linux*) + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) @@ -8419,7 +8509,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - ppc*-*linux*|powerpc*-*linux*) + powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) @@ -14683,8 +14776,8 @@ ;; *openbsd*) HOST="OpenBSD" - LIBS="$LIBS `pkg-config --libs gtk+-2.0` -lpthread" - CFLAGS="$CFLAGS `pkg-config --cflags gtk+-2.0`" + LIBS="$LIBS `pkg-config --libs gtk+-3.0` -lpthread" + CFLAGS="$CFLAGS `pkg-config --cflags gtk+-3.0`" ;; *netbsd*) HOST="NetBSD" @@ -14812,18 +14905,9 @@ ################################################# -#enable/disable gtk3 - -# Check whether --enable-gtk3 was given. -if test "${enable_gtk3+set}" = set; then : - enableval=$enable_gtk3; enable_gtk3=$enableval -else - enable_gtk3="auto" -fi +audacious_check="audclient >= 3.0" -#we must keep this as the first call to PKG_CHECK_MODULES in order to force the searching of pkg-config - @@ -14945,83 +15029,6 @@ fi pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FAKE_GTK" >&5 -$as_echo_n "checking for FAKE_GTK... " >&6; } - -if test -n "$FAKE_GTK_CFLAGS"; then - pkg_cv_FAKE_GTK_CFLAGS="$FAKE_GTK_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+-3.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_FAKE_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$FAKE_GTK_LIBS"; then - pkg_cv_FAKE_GTK_LIBS="$FAKE_GTK_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+-3.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_FAKE_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -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 - FAKE_GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0" 2>&1` - else - FAKE_GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$FAKE_GTK_PKG_ERRORS" >&5 - - pkg_config_found=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pkg_config_found=no -else - FAKE_GTK_CFLAGS=$pkg_cv_FAKE_GTK_CFLAGS - FAKE_GTK_LIBS=$pkg_cv_FAKE_GTK_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pkg_config_found=yes -fi - -if test "x$enable_gtk3" = xauto; then - #auto gtk version detection - { $as_echo "$as_me:${as_lineno-$LINENO}: selecting GTK 2.x/3.x automatically" >&5 -$as_echo "$as_me: selecting GTK 2.x/3.x automatically" >&6;} - - -pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 $as_echo_n "checking for GTK... " >&6; } @@ -15029,12 +15036,12 @@ pkg_cv_GTK_CFLAGS="$GTK_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+-3.0 >= 3.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.4.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.4.2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0" 2>/dev/null` + pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.4.2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -15046,12 +15053,12 @@ pkg_cv_GTK_LIBS="$GTK_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+-3.0 >= 3.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.4.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.4.2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0" 2>/dev/null` + pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.4.2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -15072,100 +15079,21 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.0" 2>&1` + GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.4.2" 2>&1` else - GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.0" 2>&1` + GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.4.2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTK_PKG_ERRORS" >&5 - enable_gtk3=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - enable_gtk3=no -else - GTK_CFLAGS=$pkg_cv_GTK_CFLAGS - GTK_LIBS=$pkg_cv_GTK_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - enable_gtk3=yes -fi -fi - -audacious_check="audclient < 3.0" -if test "x$enable_gtk3" = xyes; then - #gtk 3.x check - { $as_echo "$as_me:${as_lineno-$LINENO}: GTK 3.x selected" >&5 -$as_echo "$as_me: GTK 3.x selected" >&6;} - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 -$as_echo_n "checking for GTK... " >&6; } - -if test -n "$GTK_CFLAGS"; then - pkg_cv_GTK_CFLAGS="$GTK_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+-3.0 >= 3.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GTK_LIBS"; then - pkg_cv_GTK_LIBS="$GTK_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+-3.0 >= 3.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -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 - GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.0" 2>&1` - else - GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GTK_PKG_ERRORS" >&5 - - - as_fn_error $? "Cannot find GTK >= 3.0" "$LINENO" 5 + as_fn_error $? "Cannot find GTK >= 3.4.2" "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "Cannot find GTK >= 3.0" "$LINENO" 5 + as_fn_error $? "Cannot find GTK >= 3.4.2" "$LINENO" 5 else GTK_CFLAGS=$pkg_cv_GTK_CFLAGS @@ -15173,92 +15101,10 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGSEAL_ENABLE" - audacious_check="audclient >= 3.0" + CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGSEAL_ENABLE" + #CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGSEAL_ENABLE" fi -else - #gtk 2.x check - { $as_echo "$as_me:${as_lineno-$LINENO}: GTK 2.x selected" >&5 -$as_echo "$as_me: GTK 2.x selected" >&6;} - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 -$as_echo_n "checking for GTK... " >&6; } - -if test -n "$GTK_CFLAGS"; then - pkg_cv_GTK_CFLAGS="$GTK_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.18\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.18" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GTK_LIBS"; then - pkg_cv_GTK_LIBS="$GTK_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.18\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.18" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -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 - GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1` - else - GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-2.0 >= 2.18" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GTK_PKG_ERRORS" >&5 - - - as_fn_error $? "Cannot find GTK >= 2.18" "$LINENO" 5 - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - as_fn_error $? "Cannot find GTK >= 2.18" "$LINENO" 5 - -else - GTK_CFLAGS=$pkg_cv_GTK_CFLAGS - GTK_LIBS=$pkg_cv_GTK_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi -fi - ################################################# # Initialize the gnome integration @@ -15431,12 +15277,12 @@ pkg_cv_LIBMP3SPLT_CFLAGS="$LIBMP3SPLT_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmp3splt = 0.9.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libmp3splt = 0.9.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmp3splt = 0.9.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libmp3splt = 0.9.2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LIBMP3SPLT_CFLAGS=`$PKG_CONFIG --cflags "libmp3splt = 0.9.0" 2>/dev/null` + pkg_cv_LIBMP3SPLT_CFLAGS=`$PKG_CONFIG --cflags "libmp3splt = 0.9.2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -15448,12 +15294,12 @@ pkg_cv_LIBMP3SPLT_LIBS="$LIBMP3SPLT_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmp3splt = 0.9.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libmp3splt = 0.9.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmp3splt = 0.9.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libmp3splt = 0.9.2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LIBMP3SPLT_LIBS=`$PKG_CONFIG --libs "libmp3splt = 0.9.0" 2>/dev/null` + pkg_cv_LIBMP3SPLT_LIBS=`$PKG_CONFIG --libs "libmp3splt = 0.9.2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -15474,21 +15320,21 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LIBMP3SPLT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libmp3splt = 0.9.0" 2>&1` + LIBMP3SPLT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libmp3splt = 0.9.2" 2>&1` else - LIBMP3SPLT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libmp3splt = 0.9.0" 2>&1` + LIBMP3SPLT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libmp3splt = 0.9.2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBMP3SPLT_PKG_ERRORS" >&5 - as_fn_error $? "libmp3splt version 0.9.0 needed : + as_fn_error $? "libmp3splt version 0.9.2 needed : Download the latest version of libmp3splt at http://mp3splt.sourceforge.net/ " "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "libmp3splt version 0.9.0 needed : + as_fn_error $? "libmp3splt version 0.9.2 needed : Download the latest version of libmp3splt at http://mp3splt.sourceforge.net/ " "$LINENO" 5 @@ -15584,9 +15430,7 @@ as_fn_error $? "Audacious player development files for $audacious_check not found. Install it or configure with \"--disable-audacious\". - Also check that if you want to compile with GTK 3.x, you will need audacious >= 3.0. - For GTK 2.x, you will need audacious < 3.0. - You can force the GTK version using --enable-gtk3 and --disable-gtk3. + If you want to compile with GTK 3.x, you need audacious >= 3.0. " "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -15594,9 +15438,7 @@ as_fn_error $? "Audacious player development files for $audacious_check not found. Install it or configure with \"--disable-audacious\". - Also check that if you want to compile with GTK 3.x, you will need audacious >= 3.0. - For GTK 2.x, you will need audacious < 3.0. - You can force the GTK version using --enable-gtk3 and --disable-gtk3. + If you want to compile with GTK 3.x, you need audacious >= 3.0. " "$LINENO" 5 else AUDACIOUS_CFLAGS=$pkg_cv_AUDACIOUS_CFLAGS @@ -15737,18 +15579,12 @@ pkg_cv_GST_CFLAGS="$GST_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-0.10 >= 0.10 - gstreamer-base-0.10 >= 0.10 - gstreamer-plugins-base-0.10 >= 0.10\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gstreamer-0.10 >= 0.10 - gstreamer-base-0.10 >= 0.10 - gstreamer-plugins-base-0.10 >= 0.10") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-1.0 >= 1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gstreamer-1.0 >= 1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GST_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-0.10 >= 0.10 - gstreamer-base-0.10 >= 0.10 - gstreamer-plugins-base-0.10 >= 0.10" 2>/dev/null` + pkg_cv_GST_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-1.0 >= 1.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -15760,18 +15596,12 @@ pkg_cv_GST_LIBS="$GST_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-0.10 >= 0.10 - gstreamer-base-0.10 >= 0.10 - gstreamer-plugins-base-0.10 >= 0.10\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gstreamer-0.10 >= 0.10 - gstreamer-base-0.10 >= 0.10 - gstreamer-plugins-base-0.10 >= 0.10") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-1.0 >= 1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gstreamer-1.0 >= 1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GST_LIBS=`$PKG_CONFIG --libs "gstreamer-0.10 >= 0.10 - gstreamer-base-0.10 >= 0.10 - gstreamer-plugins-base-0.10 >= 0.10" 2>/dev/null` + pkg_cv_GST_LIBS=`$PKG_CONFIG --libs "gstreamer-1.0 >= 1.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -15792,24 +15622,20 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GST_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gstreamer-0.10 >= 0.10 - gstreamer-base-0.10 >= 0.10 - gstreamer-plugins-base-0.10 >= 0.10" 2>&1` + GST_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gstreamer-1.0 >= 1.0" 2>&1` else - GST_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gstreamer-0.10 >= 0.10 - gstreamer-base-0.10 >= 0.10 - gstreamer-plugins-base-0.10 >= 0.10" 2>&1` + GST_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gstreamer-1.0 >= 1.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GST_PKG_ERRORS" >&5 - as_fn_error $? "GStreamer >= 0.10 development files are not installed. + as_fn_error $? "GStreamer >= 1.0 development files are not installed. Install it or configure with \"--disable-gstreamer\"." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "GStreamer >= 0.10 development files are not installed. + as_fn_error $? "GStreamer >= 1.0 development files are not installed. Install it or configure with \"--disable-gstreamer\"." "$LINENO" 5 else @@ -16910,7 +16736,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by mp3splt-gtk $as_me 0.9, which was +This file was extended by mp3splt-gtk $as_me 0.9.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16976,7 +16802,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -mp3splt-gtk config.status 0.9 +mp3splt-gtk config.status 0.9.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru mp3splt-gtk-0.9/configure.ac mp3splt-gtk-0.9.2/configure.ac --- mp3splt-gtk-0.9/configure.ac 2013-07-20 07:09:10.000000000 +0000 +++ mp3splt-gtk-0.9.2/configure.ac 2014-11-09 16:48:11.000000000 +0000 @@ -4,7 +4,7 @@ # * for mp3/ogg splitting without decoding # * # * Copyright (c) 2002-2005 M. Trotta - -# * Copyright (c) 2005-2013 Munteanu Alexandru - m@ioalex.net +# * Copyright (c) 2005-2014 Munteanu Alexandru - m@ioalex.net # * # * http://mp3splt.sourceforge.net # * @@ -32,10 +32,10 @@ # Basic initialisations ################################################# -m4_define([minimum_libmp3splt_version],[0.9.0]) +m4_define([minimum_libmp3splt_version],[0.9.2]) AC_PREREQ(2.62) -AC_INIT(mp3splt-gtk, 0.9, mp3splt.sf.net) +AC_INIT(mp3splt-gtk, 0.9.2, mp3splt.sf.net) # tell autoconf where to put the temporary files and scripts # it generates. Seems to be more clean to put them into a subdir; @@ -97,8 +97,8 @@ ;; *openbsd*) HOST="OpenBSD" - LIBS="$LIBS `pkg-config --libs gtk+-2.0` -lpthread" - CFLAGS="$CFLAGS `pkg-config --cflags gtk+-2.0`" + LIBS="$LIBS `pkg-config --libs gtk+-3.0` -lpthread" + CFLAGS="$CFLAGS `pkg-config --cflags gtk+-3.0`" ;; *netbsd*) HOST="NetBSD" @@ -136,48 +136,16 @@ ################################################# -#enable/disable gtk3 - -AC_ARG_ENABLE(gtk3, [ - AC_HELP_STRING([--enable-gtk3], [Compile against GTK 3.x explicitly (default: use GTK 3.x if available)]) - AC_HELP_STRING([--disable-gtk3], [Compile against GTK 2.x explicitly (default: use GTK 3.x if available)])], - [enable_gtk3=$enableval],[enable_gtk3="auto"]) - -#we must keep this as the first call to PKG_CHECK_MODULES in order to force the searching of pkg-config -PKG_CHECK_MODULES(FAKE_GTK, [gtk+-3.0], [pkg_config_found=yes], [pkg_config_found=no]) - -if test "x$enable_gtk3" = xauto; then - #auto gtk version detection - AC_MSG_NOTICE([selecting GTK 2.x/3.x automatically]) - - PKG_CHECK_MODULES(GTK, [gtk+-3.0 >= 3.0], - [enable_gtk3=yes], [enable_gtk3=no]) -fi - -audacious_check="audclient < 3.0" -if test "x$enable_gtk3" = xyes; then - #gtk 3.x check - AC_MSG_NOTICE([GTK 3.x selected]) - - PKG_CHECK_MODULES(GTK, [gtk+-3.0 >= 3.0], - [ - CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGSEAL_ENABLE" - audacious_check="audclient >= 3.0" - ], - [ - AC_MSG_ERROR([Cannot find GTK >= 3.0]) - ]) -else - #gtk 2.x check - AC_MSG_NOTICE([GTK 2.x selected]) - - PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.18], - [ ], - [ - AC_MSG_ERROR([Cannot find GTK >= 2.18]) - ]) -fi +audacious_check="audclient >= 3.0" +PKG_CHECK_MODULES(GTK, [gtk+-3.0 >= 3.4.2], +[ + CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGSEAL_ENABLE" + #CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGSEAL_ENABLE" +], +[ + AC_MSG_ERROR([Cannot find GTK >= 3.4.2]) +]) ################################################# # Initialize the gnome integration @@ -236,9 +204,7 @@ [AC_MSG_ERROR([Audacious player development files for $audacious_check not found. Install it or configure with "--disable-audacious". - Also check that if you want to compile with GTK 3.x, you will need audacious >= 3.0. - For GTK 2.x, you will need audacious < 3.0. - You can force the GTK version using --enable-gtk3 and --disable-gtk3. + If you want to compile with GTK 3.x, you need audacious >= 3.0. ]) ]) PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1) fi @@ -254,11 +220,9 @@ [enable_gstreamer=$enableval],[enable_gstreamer="yes"]) if test "x$enable_gstreamer" = xyes;then - PKG_CHECK_MODULES(GST, [gstreamer-0.10 >= 0.10 - gstreamer-base-0.10 >= 0.10 - gstreamer-plugins-base-0.10 >= 0.10], + PKG_CHECK_MODULES(GST, [gstreamer-1.0 >= 1.0], [AM_CONDITIONAL(GSTREAMER,true) gstreamer="yes"], - [AC_MSG_ERROR([GStreamer >= 0.10 development files are not installed. + [AC_MSG_ERROR([GStreamer >= 1.0 development files are not installed. Install it or configure with "--disable-gstreamer".])]) fi diff -Nru mp3splt-gtk-0.9/debian/changelog mp3splt-gtk-0.9.2/debian/changelog --- mp3splt-gtk-0.9/debian/changelog 2016-08-15 07:56:36.000000000 +0000 +++ mp3splt-gtk-0.9.2/debian/changelog 2016-08-15 09:59:55.000000000 +0000 @@ -1,3 +1,27 @@ +mp3splt-gtk (0.9.2-0ubuntu0~ppa3) xenial; urgency=medium + + * Need gstreamer 1.0 anyway. + + -- Dominik Stadler (Ubuntu key) Mon, 15 Aug 2016 11:59:44 +0200 + +mp3splt-gtk (0.9.2-0ubuntu0~ppa2) xenial; urgency=medium + + * Try to adjust gstreamer dependencies for Yakkety. + + -- Dominik Stadler (Ubuntu key) Mon, 15 Aug 2016 11:56:07 +0200 + +mp3splt-gtk (0.9.2-0ubuntu0~ppa1) xenial; urgency=medium + + * New upstream version. + + -- Dominik Stadler (Ubuntu key) Mon, 15 Aug 2016 10:58:45 +0200 + +mp3splt-gtk (0.9.2) trusty; urgency=low + + * New Version + + -- Alexandru Munteanu Fri, 9 May 2014 00:00:00 +0100 + mp3splt-gtk (0.9-0ubuntu0~ppa10) xenial; urgency=medium * Once more with chnages in replacement strings as well diff -Nru mp3splt-gtk-0.9/debian/control mp3splt-gtk-0.9.2/debian/control --- mp3splt-gtk-0.9/debian/control 2016-08-15 07:56:42.000000000 +0000 +++ mp3splt-gtk-0.9.2/debian/control 2016-08-15 10:00:12.000000000 +0000 @@ -2,7 +2,7 @@ Section: sound Priority: optional Maintainer: Ryan Niebur -Build-Depends: debhelper (>= 7.0.50), libgtk-3-dev, libgstreamer0.10-dev, libgstreamer-plugins-base0.10-dev | libgstreamer-plugins-base1.0-dev, libaudclient-dev, gnome-doc-utils, rarian-compat, libmp3splt-dev (>= 0.9.0~), libmp3splt-dev (<< 0.9.1~) +Build-Depends: debhelper (>= 7.0.50), libgtk-3-dev, libgstreamer1.0-dev, libgstreamer-plugins-base1.0-dev, libaudclient-dev, gnome-doc-utils, rarian-compat, libmp3splt-dev (>= 0.9.2~), libmp3splt-dev (<< 0.9.3~) Standards-Version: 3.9.3 Homepage: http://mp3splt.sourceforge.net/ Vcs-Git: git://anonscm.debian.org/collab-maint/mp3splt-gtk.git diff -Nru mp3splt-gtk-0.9/debian/copyright mp3splt-gtk-0.9.2/debian/copyright --- mp3splt-gtk-0.9/debian/copyright 2013-09-15 13:49:45.000000000 +0000 +++ mp3splt-gtk-0.9.2/debian/copyright 2016-08-15 08:56:53.000000000 +0000 @@ -2,7 +2,7 @@ Source: http://mp3splt.sourceforge.net/ Files: * -Copyright: 2005-2012 Munteanu Alexandru - , 2002-2005 M. Trotta - +Copyright: 2005-2014 Munteanu Alexandru - , 2002-2005 M. Trotta - License: GPL-2+ Files: debian/* diff -Nru mp3splt-gtk-0.9/debian/patches/allow_deprecated_headers.patch mp3splt-gtk-0.9.2/debian/patches/allow_deprecated_headers.patch --- mp3splt-gtk-0.9/debian/patches/allow_deprecated_headers.patch 2014-06-28 06:59:38.000000000 +0000 +++ mp3splt-gtk-0.9.2/debian/patches/allow_deprecated_headers.patch 2016-08-15 09:12:01.000000000 +0000 @@ -1,26 +1,26 @@ Index: mp3splt-gtk/configure =================================================================== ---- mp3splt-gtk.orig/configure 2013-09-15 15:56:28.000000000 +0200 -+++ mp3splt-gtk/configure 2014-06-28 08:51:43.020524660 +0200 -@@ -15173,7 +15173,7 @@ +--- mp3splt-gtk.orig/configure 2016-08-15 11:11:34.365706041 +0200 ++++ mp3splt-gtk/configure 2016-08-15 11:11:49.537928546 +0200 +@@ -15101,7 +15101,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -- CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGSEAL_ENABLE" -+ CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGSEAL_ENABLE" - audacious_check="audclient >= 3.0" +- CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGSEAL_ENABLE" ++ CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGSEAL_ENABLE" + #CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGSEAL_ENABLE" fi Index: mp3splt-gtk/configure.ac =================================================================== ---- mp3splt-gtk.orig/configure.ac 2013-09-15 15:48:32.000000000 +0200 -+++ mp3splt-gtk/configure.ac 2014-06-28 08:51:31.732401013 +0200 -@@ -161,7 +161,7 @@ +--- mp3splt-gtk.orig/configure.ac 2016-08-15 11:11:34.365706041 +0200 ++++ mp3splt-gtk/configure.ac 2016-08-15 11:11:59.166069738 +0200 +@@ -140,7 +140,7 @@ - PKG_CHECK_MODULES(GTK, [gtk+-3.0 >= 3.0], - [ -- CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGSEAL_ENABLE" -+ CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGSEAL_ENABLE" - audacious_check="audclient >= 3.0" - ], - [ + PKG_CHECK_MODULES(GTK, [gtk+-3.0 >= 3.4.2], + [ +- CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGSEAL_ENABLE" ++ CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGSEAL_ENABLE" + #CFLAGS="$CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGSEAL_ENABLE" + ], + [ diff -Nru mp3splt-gtk-0.9/debian/patches/gcc_error_fprintf.patch mp3splt-gtk-0.9.2/debian/patches/gcc_error_fprintf.patch --- mp3splt-gtk-0.9/debian/patches/gcc_error_fprintf.patch 2013-09-15 17:46:05.000000000 +0000 +++ mp3splt-gtk-0.9.2/debian/patches/gcc_error_fprintf.patch 2016-08-15 09:09:19.000000000 +0000 @@ -1,7 +1,7 @@ Index: mp3splt-gtk/src/ui_manager.c =================================================================== ---- mp3splt-gtk.orig/src/ui_manager.c 2013-09-15 19:42:03.000000000 +0200 -+++ mp3splt-gtk/src/ui_manager.c 2013-09-15 19:43:06.000000000 +0200 +--- mp3splt-gtk.orig/src/ui_manager.c 2016-08-15 11:09:17.571699222 +0200 ++++ mp3splt-gtk/src/ui_manager.c 2016-08-15 11:09:17.571699222 +0200 @@ -182,7 +182,7 @@ g_vsnprintf(formatted_message, 1024, message, ap); va_end(ap); diff -Nru mp3splt-gtk-0.9/debian/patches/link-against-dbus-glib-1.patch mp3splt-gtk-0.9.2/debian/patches/link-against-dbus-glib-1.patch --- mp3splt-gtk-0.9/debian/patches/link-against-dbus-glib-1.patch 2013-09-15 17:46:05.000000000 +0000 +++ mp3splt-gtk-0.9.2/debian/patches/link-against-dbus-glib-1.patch 2016-08-15 09:09:16.000000000 +0000 @@ -1,7 +1,7 @@ Index: mp3splt-gtk/src/Makefile.am =================================================================== ---- mp3splt-gtk.orig/src/Makefile.am 2013-09-15 15:48:32.000000000 +0200 -+++ mp3splt-gtk/src/Makefile.am 2013-09-15 15:54:08.000000000 +0200 +--- mp3splt-gtk.orig/src/Makefile.am 2016-08-15 11:09:12.295621794 +0200 ++++ mp3splt-gtk/src/Makefile.am 2016-08-15 11:09:12.275621501 +0200 @@ -52,7 +52,7 @@ INCLUDES = @GTK_CFLAGS@ @LIBMP3SPLT_CFLAGS@ @@ -11,399 +11,3 @@ # Define a C macro LOCALEDIR indicating where catalogs will be installed. localedir = $(datadir)/locale -Index: mp3splt-gtk/src/Makefile.in -=================================================================== ---- mp3splt-gtk.orig/src/Makefile.in 2013-09-15 15:48:32.000000000 +0200 -+++ mp3splt-gtk/src/Makefile.in 2013-09-15 15:54:54.000000000 +0200 -@@ -1,8 +1,9 @@ --# Makefile.in generated by automake 1.13.3 from Makefile.am. -+# Makefile.in generated by automake 1.11.3 from Makefile.am. - # @configure_input@ - --# Copyright (C) 1994-2013 Free Software Foundation, Inc. -- -+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. -@@ -16,51 +17,6 @@ - - - VPATH = @srcdir@ --am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' --am__make_running_with_option = \ -- case $${target_option-} in \ -- ?) ;; \ -- *) echo "am__make_running_with_option: internal error: invalid" \ -- "target option '$${target_option-}' specified" >&2; \ -- exit 1;; \ -- esac; \ -- has_opt=no; \ -- sane_makeflags=$$MAKEFLAGS; \ -- if $(am__is_gnu_make); then \ -- sane_makeflags=$$MFLAGS; \ -- else \ -- case $$MAKEFLAGS in \ -- *\\[\ \ ]*) \ -- bs=\\; \ -- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ -- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ -- esac; \ -- fi; \ -- skip_next=no; \ -- strip_trailopt () \ -- { \ -- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ -- }; \ -- for flg in $$sane_makeflags; do \ -- test $$skip_next = yes && { skip_next=no; continue; }; \ -- case $$flg in \ -- *=*|--*) continue;; \ -- -*I) strip_trailopt 'I'; skip_next=yes;; \ -- -*I?*) strip_trailopt 'I';; \ -- -*O) strip_trailopt 'O'; skip_next=yes;; \ -- -*O?*) strip_trailopt 'O';; \ -- -*l) strip_trailopt 'l'; skip_next=yes;; \ -- -*l?*) strip_trailopt 'l';; \ -- -[dEDm]) skip_next=yes;; \ -- -[JT]) skip_next=yes;; \ -- esac; \ -- case $$flg in \ -- *$$target_option*) has_opt=yes; break;; \ -- esac; \ -- done; \ -- test $$has_opt = yes --am__make_dryrun = (target_option=n; $(am__make_running_with_option)) --am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) - pkgdatadir = $(datadir)/@PACKAGE@ - pkgincludedir = $(includedir)/@PACKAGE@ - pkglibdir = $(libdir)/@PACKAGE@ -@@ -91,9 +47,7 @@ - @GSTREAMER_TRUE@am__append_9 = @GST_CFLAGS@ - @GSTREAMER_FALSE@am__append_10 = -DNO_GSTREAMER - subdir = src --DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ -- $(top_srcdir)/build-aux/mkinstalldirs \ -- $(top_srcdir)/build-aux/depcomp -+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 - am__aclocal_m4_deps = $(top_srcdir)/m4/cutter.m4 \ - $(top_srcdir)/m4/gettext.m4 \ -@@ -129,53 +83,23 @@ - am__DEPENDENCIES_1 = - mp3splt_gtk_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) --AM_V_lt = $(am__v_lt_@AM_V@) --am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) --am__v_lt_0 = --silent --am__v_lt_1 = --mp3splt_gtk_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ -+mp3splt_gtk_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(mp3splt_gtk_LDFLAGS) $(LDFLAGS) -o $@ --AM_V_P = $(am__v_P_@AM_V@) --am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) --am__v_P_0 = false --am__v_P_1 = : --AM_V_GEN = $(am__v_GEN_@AM_V@) --am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) --am__v_GEN_0 = @echo " GEN " $@; --am__v_GEN_1 = --AM_V_at = $(am__v_at_@AM_V@) --am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) --am__v_at_0 = @ --am__v_at_1 = - DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) - depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp - am__depfiles_maybe = depfiles - am__mv = mv -f - COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) --LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ -- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ -- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ -- $(AM_CFLAGS) $(CFLAGS) --AM_V_CC = $(am__v_CC_@AM_V@) --am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) --am__v_CC_0 = @echo " CC " $@; --am__v_CC_1 = -+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ -+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) - CCLD = $(CC) --LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ -- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ -- $(AM_LDFLAGS) $(LDFLAGS) -o $@ --AM_V_CCLD = $(am__v_CCLD_@AM_V@) --am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) --am__v_CCLD_0 = @echo " CCLD " $@; --am__v_CCLD_1 = -+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ -+ $(LDFLAGS) -o $@ - DIST_SOURCES = $(mp3splt_gtk_SOURCES) --am__can_run_installinfo = \ -- case $$AM_UPDATE_INFO_DIR in \ -- n|no|NO) false;; \ -- *) (install-info --version) >/dev/null 2>&1;; \ -- esac - am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; - am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ -@@ -204,23 +128,6 @@ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } - DATA = $(appicon_DATA) $(image_DATA) --am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) --# Read a list of newline-separated strings from the standard input, --# and print each of them once, without duplicates. Input order is --# *not* preserved. --am__uniquify_input = $(AWK) '\ -- BEGIN { nonempty = 0; } \ -- { items[$$0] = 1; nonempty = 1; } \ -- END { if (nonempty) { for (i in items) print i; }; } \ --' --# Make sure the list of sources is unique. This is necessary because, --# e.g., the same source file might be shared among _SOURCES variables --# for different programs/libraries. --am__define_uniq_tagged_files = \ -- list='$(am__tagged_files)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | $(am__uniquify_input)` - ETAGS = etags - CTAGS = ctags - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -@@ -441,7 +348,7 @@ - INCLUDES = @GTK_CFLAGS@ @LIBMP3SPLT_CFLAGS@ $(am__append_2) \ - $(am__append_6) $(am__append_9) - mp3splt_gtk_LDADD = @GTK_LIBS@ -lgthread-2.0 @LIBMP3SPLT_LIBS@ -lm \ -- $(am__append_3) $(am__append_5) $(am__append_8) -+ -ldbus-glib-1 $(am__append_3) $(am__append_5) $(am__append_8) - @WIN32_TRUE@mp3splt_gtk_LDFLAGS = -mwindows - all: all-am - -@@ -479,19 +386,14 @@ - $(am__aclocal_m4_deps): - install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) -+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ -- if test -n "$$list"; then \ -- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ -- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ -- fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ -- while read p p1; do if test -f $$p \ -- || test -f $$p1 \ -- ; then echo "$$p"; echo "$$p"; else :; fi; \ -+ while read p p1; do if test -f $$p || test -f $$p1; \ -+ then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ -- sed -e 'p;s,.*/,,;n;h' \ -- -e 's|.*|.|' \ -+ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ -@@ -512,8 +414,7 @@ - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -- -e 's/$$/$(EXEEXT)/' \ -- `; \ -+ -e 's/$$/$(EXEEXT)/' `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files -@@ -526,10 +427,9 @@ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -- - mp3splt-gtk$(EXEEXT): $(mp3splt_gtk_OBJECTS) $(mp3splt_gtk_DEPENDENCIES) $(EXTRA_mp3splt_gtk_DEPENDENCIES) - @rm -f mp3splt-gtk$(EXEEXT) -- $(AM_V_CCLD)$(mp3splt_gtk_LINK) $(mp3splt_gtk_OBJECTS) $(mp3splt_gtk_LDADD) $(LIBS) -+ $(mp3splt_gtk_LINK) $(mp3splt_gtk_OBJECTS) $(mp3splt_gtk_LDADD) $(LIBS) - - mostlyclean-compile: - -rm -f *.$(OBJEXT) -@@ -567,25 +467,25 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/widgets_helper.Po@am__quote@ - - .c.o: --@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -+@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@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< -+@am__fastdepCC_FALSE@ $(COMPILE) -c $< - - .c.obj: --@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -+@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@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` -+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - - .c.lo: --@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo --@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -+@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@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< -+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - - mostlyclean-libtool: - -rm -f *.lo -@@ -594,11 +494,8 @@ - -rm -rf .libs _libs - install-appiconDATA: $(appicon_DATA) - @$(NORMAL_INSTALL) -+ test -z "$(appicondir)" || $(MKDIR_P) "$(DESTDIR)$(appicondir)" - @list='$(appicon_DATA)'; test -n "$(appicondir)" || list=; \ -- if test -n "$$list"; then \ -- echo " $(MKDIR_P) '$(DESTDIR)$(appicondir)'"; \ -- $(MKDIR_P) "$(DESTDIR)$(appicondir)" || exit 1; \ -- fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ -@@ -615,11 +512,8 @@ - dir='$(DESTDIR)$(appicondir)'; $(am__uninstall_files_from_dir) - install-imageDATA: $(image_DATA) - @$(NORMAL_INSTALL) -+ test -z "$(imagedir)" || $(MKDIR_P) "$(DESTDIR)$(imagedir)" - @list='$(image_DATA)'; test -n "$(imagedir)" || list=; \ -- if test -n "$$list"; then \ -- echo " $(MKDIR_P) '$(DESTDIR)$(imagedir)'"; \ -- $(MKDIR_P) "$(DESTDIR)$(imagedir)" || exit 1; \ -- fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ -@@ -635,15 +529,26 @@ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(imagedir)'; $(am__uninstall_files_from_dir) - --ID: $(am__tagged_files) -- $(am__define_uniq_tagged_files); mkid -fID $$unique --tags: tags-am --TAGS: tags -+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-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) -+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -+ $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ -- $(am__define_uniq_tagged_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; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ -@@ -655,11 +560,15 @@ - $$unique; \ - fi; \ - fi --ctags: ctags-am -- --CTAGS: ctags --ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) -- $(am__define_uniq_tagged_files); \ -+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 -@@ -668,21 +577,6 @@ - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" --cscopelist: cscopelist-am -- --cscopelist-am: $(am__tagged_files) -- list='$(am__tagged_files)'; \ -- case "$(srcdir)" in \ -- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ -- *) sdir=$(subdir)/$(srcdir) ;; \ -- esac; \ -- for i in $$list; do \ -- if test -f "$$i"; then \ -- echo "$(subdir)/$$i"; \ -- else \ -- echo "$$sdir/$$i"; \ -- fi; \ -- done >> $(top_builddir)/cscope.files - - distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -827,21 +721,20 @@ - - .MAKE: install-am install-strip - --.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ -- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ -- ctags ctags-am distclean distclean-compile distclean-generic \ -- distclean-libtool distclean-tags distdir dvi dvi-am html \ -- html-am info info-am install install-am install-appiconDATA \ -- install-binPROGRAMS install-data install-data-am install-dvi \ -- install-dvi-am install-exec install-exec-am install-html \ -- install-html-am install-imageDATA 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-compile mostlyclean-generic \ -- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ -- uninstall-am uninstall-appiconDATA uninstall-binPROGRAMS \ -- uninstall-imageDATA -+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ -+ clean-generic clean-libtool ctags distclean distclean-compile \ -+ distclean-generic distclean-libtool distclean-tags distdir dvi \ -+ dvi-am html html-am info info-am install install-am \ -+ install-appiconDATA install-binPROGRAMS install-data \ -+ install-data-am install-dvi install-dvi-am install-exec \ -+ install-exec-am install-html install-html-am install-imageDATA \ -+ 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-compile \ -+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ -+ tags uninstall uninstall-am uninstall-appiconDATA \ -+ uninstall-binPROGRAMS uninstall-imageDATA - - - # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru mp3splt-gtk-0.9/debian/rules mp3splt-gtk-0.9.2/debian/rules --- mp3splt-gtk-0.9/debian/rules 2016-08-15 07:55:54.000000000 +0000 +++ mp3splt-gtk-0.9.2/debian/rules 2016-08-15 09:59:31.000000000 +0000 @@ -3,7 +3,7 @@ include /usr/share/libmp3splt-dev/mp3splt.rules -BUILD_DEPS := $(BUILD_DEPS), libgtk-3-dev, libgstreamer0.10-dev, libgstreamer-plugins-base0.10-dev | libgstreamer-plugins-base1.0-dev, libaudclient-dev, gnome-doc-utils, rarian-compat +BUILD_DEPS := $(BUILD_DEPS), libgtk-3-dev, libgstreamer1.0-dev, libgstreamer-plugins-base1.0-dev, libaudclient-dev, gnome-doc-utils, rarian-compat EXTRA_CONFIGURE_OPTS=--enable-gtk3 --disable-gtk2 LONG_INTERFACE="graphical" SHORT_INTERFACE="GTK" diff -Nru mp3splt-gtk-0.9/doc/Makefile.in mp3splt-gtk-0.9.2/doc/Makefile.in --- mp3splt-gtk-0.9/doc/Makefile.in 2013-07-20 07:11:30.000000000 +0000 +++ mp3splt-gtk-0.9.2/doc/Makefile.in 2014-11-09 16:50:34.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -183,8 +183,6 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -FAKE_GTK_CFLAGS = @FAKE_GTK_CFLAGS@ -FAKE_GTK_LIBS = @FAKE_GTK_LIBS@ FGREP = @FGREP@ GMSGFMT = @GMSGFMT@ GRAPHVIZ = @GRAPHVIZ@ diff -Nru mp3splt-gtk-0.9/help/Makefile.in mp3splt-gtk-0.9.2/help/Makefile.in --- mp3splt-gtk-0.9/help/Makefile.in 2013-07-20 07:11:30.000000000 +0000 +++ mp3splt-gtk-0.9.2/help/Makefile.in 2014-11-09 16:50:34.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -176,8 +176,6 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -FAKE_GTK_CFLAGS = @FAKE_GTK_CFLAGS@ -FAKE_GTK_LIBS = @FAKE_GTK_LIBS@ FGREP = @FGREP@ GMSGFMT = @GMSGFMT@ GRAPHVIZ = @GRAPHVIZ@ @@ -555,12 +553,12 @@ maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -@GNOME_FALSE@uninstall-local: -@GNOME_FALSE@distclean-local: -@GNOME_FALSE@install-data-local: -@GNOME_FALSE@maintainer-clean-local: @GNOME_FALSE@mostlyclean-local: +@GNOME_FALSE@maintainer-clean-local: @GNOME_FALSE@clean-local: +@GNOME_FALSE@install-data-local: +@GNOME_FALSE@distclean-local: +@GNOME_FALSE@uninstall-local: clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am diff -Nru mp3splt-gtk-0.9/m4/Makefile.in mp3splt-gtk-0.9.2/m4/Makefile.in --- mp3splt-gtk-0.9/m4/Makefile.in 2013-07-20 07:11:30.000000000 +0000 +++ mp3splt-gtk-0.9.2/m4/Makefile.in 2014-11-09 16:50:34.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -151,8 +151,6 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -FAKE_GTK_CFLAGS = @FAKE_GTK_CFLAGS@ -FAKE_GTK_LIBS = @FAKE_GTK_LIBS@ FGREP = @FGREP@ GMSGFMT = @GMSGFMT@ GRAPHVIZ = @GRAPHVIZ@ diff -Nru mp3splt-gtk-0.9/Makefile.in mp3splt-gtk-0.9.2/Makefile.in --- mp3splt-gtk-0.9/Makefile.in 2013-07-20 07:11:29.000000000 +0000 +++ mp3splt-gtk-0.9.2/Makefile.in 2014-11-09 16:50:34.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -85,9 +85,10 @@ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in $(top_srcdir)/build-aux/mkinstalldirs \ ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README TODO \ - build-aux/config.guess build-aux/config.rpath \ - build-aux/config.sub build-aux/depcomp build-aux/install-sh \ - build-aux/missing build-aux/mkinstalldirs build-aux/ltmain.sh \ + build-aux/compile build-aux/config.guess \ + build-aux/config.rpath build-aux/config.sub build-aux/depcomp \ + build-aux/install-sh build-aux/missing build-aux/mkinstalldirs \ + build-aux/ltmain.sh $(top_srcdir)/build-aux/compile \ $(top_srcdir)/build-aux/config.guess \ $(top_srcdir)/build-aux/config.sub \ $(top_srcdir)/build-aux/install-sh \ @@ -275,8 +276,6 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -FAKE_GTK_CFLAGS = @FAKE_GTK_CFLAGS@ -FAKE_GTK_LIBS = @FAKE_GTK_LIBS@ FGREP = @FGREP@ GMSGFMT = @GMSGFMT@ GRAPHVIZ = @GRAPHVIZ@ @@ -460,8 +459,8 @@ $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then rm -f stamp-h1; else :; fi - @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -691,10 +690,16 @@ $(am__post_remove_distdir) dist-tarZ: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) @@ -736,9 +741,10 @@ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + && ../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ diff -Nru mp3splt-gtk-0.9/NEWS mp3splt-gtk-0.9.2/NEWS --- mp3splt-gtk-0.9/NEWS 2013-07-20 06:05:47.000000000 +0000 +++ mp3splt-gtk-0.9.2/NEWS 2014-11-09 14:59:13.000000000 +0000 @@ -1,6 +1,18 @@ See the ChangeLog file for details. See also the ChangeLog of libmp3splt. +* 09.11.2014 * + -version 0.9.2 released + +* 22.09.2014 * + -version 0.9.1b released + +* 19.07.2014 * + -version 0.9.1a released + +* 02.05.2014 * + -version 0.9.1 released + * 21.07.2013 * -version 0.9 released Binary files /tmp/tmpA90wb_/LJUs5HNncE/mp3splt-gtk-0.9/po/cs.gmo and /tmp/tmpA90wb_/V0ZBgpNw8L/mp3splt-gtk-0.9.2/po/cs.gmo differ diff -Nru mp3splt-gtk-0.9/po/cs.po mp3splt-gtk-0.9.2/po/cs.po --- mp3splt-gtk-0.9/po/cs.po 2013-07-20 07:11:45.000000000 +0000 +++ mp3splt-gtk-0.9.2/po/cs.po 2014-11-09 16:50:48.000000000 +0000 @@ -12,7 +12,7 @@ msgstr "" "Project-Id-Version: mp3splt-gtk\n" "Report-Msgid-Bugs-To: io_alex_2004@users.sourceforge.net\n" -"POT-Creation-Date: 2013-07-20 09:11+0200\n" +"POT-Creation-Date: 2014-11-09 17:50+0100\n" "PO-Revision-Date: 2013-04-29 08:45+0000\n" "Last-Translator: Peter Pall \n" "Language-Team: LANGUAGE \n" @@ -23,40 +23,50 @@ "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: src/audacious_control.c:66 src/snackamp_control.c:337 -#: src/gstreamer_control.c:228 +#: src/gstreamer_control.c:217 msgid "stereo" msgstr "Stereo" #: src/audacious_control.c:70 src/snackamp_control.c:341 -#: src/gstreamer_control.c:232 +#: src/gstreamer_control.c:221 msgid "mono" msgstr "Mono" #: src/audacious_control.c:73 src/snackamp_control.c:344 -#: src/gstreamer_control.c:198 +#: src/gstreamer_control.c:190 msgid "Kbps" msgstr "kbit/s" #: src/audacious_control.c:74 src/snackamp_control.c:345 -#: src/gstreamer_control.c:199 +#: src/gstreamer_control.c:191 msgid "Khz" msgstr "kHz" -#: src/utilities.c:87 +#: src/utilities.c:86 #, c-format msgid "Processing file '%s' ..." msgstr "Zpracovává se soubor »%s«…" -#: src/export.c:93 +#: src/export.c:154 #, fuzzy msgid "Cue filename to export" msgstr "Vybrat soubor pro zavedení" -#: src/export.c:105 +#: src/export.c:157 src/multiple_files_window.c:83 +#: src/splitpoints_window.c:1126 src/splitpoints_window.c:1183 +#: src/main_window.c:1166 src/import.c:59 +msgid "_Cancel" +msgstr "" + +#: src/export.c:159 +msgid "_Save" +msgstr "" + +#: src/export.c:166 msgid "cue files (*.cue)" msgstr "Soubory CUE (*.cue)" -#: src/widgets_helper.c:428 +#: src/widgets_helper.c:401 msgid "_Close" msgstr "Za_vřít" @@ -64,7 +74,7 @@ msgid "Processing Douglas-Peucker filters ..." msgstr "Zpracovávají se Douglas-Peuckerovy filtry ..." -#: src/player_window.c:580 +#: src/player_window.c:576 msgid "" "\n" " Cannot connect to snackAmp player.\n" @@ -100,7 +110,7 @@ " Potom spusťte SnackAmp znovu a mp3splt-gtk\n" " by měl pracovat.\n" -#: src/player_window.c:595 +#: src/player_window.c:591 msgid "" "\n" " Cannot connect to Audacious player.\n" @@ -119,152 +129,159 @@ " jak se to má udělat, spusťte Audacious ručně\n" " a pokuste se spojení vytvořit.\n" -#: src/player_window.c:603 src/player_window.c:607 +#: src/player_window.c:599 src/player_window.c:603 msgid "Cannot connect to player" msgstr "Žádné spojení s přehrávacím programem" -#: src/player_window.c:904 +#: src/player_window.c:604 src/splitpoints_window.c:1124 +#: src/splitpoints_window.c:1181 +msgid "_OK" +msgstr "" + +#: src/player_window.c:900 #, fuzzy msgid "Previous track" msgstr "Předchozí" -#: src/player_window.c:922 +#: src/player_window.c:918 msgid "Play" msgstr "Přehrát" -#: src/player_window.c:939 +#: src/player_window.c:935 msgid "Pause" msgstr "Pozastavit" -#: src/player_window.c:956 +#: src/player_window.c:952 msgid "Stop" msgstr "Zastavit" -#: src/player_window.c:973 +#: src/player_window.c:969 #, fuzzy msgid "Next track" msgstr "stejné skladby" -#: src/player_window.c:980 src/splitpoints_window.c:1436 +#: src/player_window.c:976 src/splitpoints_window.c:1407 msgid "_Add" msgstr "_Přidat" -#: src/player_window.c:987 +#: src/player_window.c:983 #, fuzzy msgid "Add splitpoint at the current player position" msgstr "Přidat bod rozdělení zde" -#: src/player_window.c:996 src/splitpoints_window.c:1134 -#: src/splitpoints_window.c:1479 +#: src/player_window.c:992 src/splitpoints_window.c:1121 +#: src/splitpoints_window.c:1450 msgid "Set trim splitpoints using silence detection" msgstr "Nastavit zastřižení bodů rozdělení s pomocí zjištění ticha" -#: src/player_window.c:1007 src/splitpoints_window.c:1193 -#: src/splitpoints_window.c:1489 +#: src/player_window.c:1003 src/splitpoints_window.c:1178 +#: src/splitpoints_window.c:1460 msgid "Set splitpoints from silence detection" msgstr "Nastavit body rozdělení s pomocí zjištění ticha" -#: src/player_window.c:1012 +#: src/player_window.c:1008 msgid "Amplitude _wave" msgstr "_Vlna rozkmitu" -#: src/player_window.c:1018 +#: src/player_window.c:1014 msgid "Shows the amplitude level wave" msgstr "Ukáže vlnu s rozkmitem zvuku" -#: src/player_window.c:1021 +#: src/player_window.c:1017 msgid "_Connect" msgstr "_Spojit" -#: src/player_window.c:1024 +#: src/player_window.c:1020 msgid "Connect to player" msgstr "Spojit s přehrávačem" -#: src/player_window.c:1027 +#: src/player_window.c:1023 msgid "_Disconnect" msgstr "_Odpojit" -#: src/player_window.c:1030 +#: src/player_window.c:1026 msgid "Disconnect from player" msgstr "Odpojit od přehrávače" -#: src/player_window.c:1153 +#: src/player_window.c:1160 #, c-format msgid "before %s" msgstr "před %s" -#: src/player_window.c:1892 +#: src/player_window.c:1981 msgid "No available wave" msgstr "Žádná dostupná vlna" -#: src/player_window.c:2045 src/preferences_window.c:826 +#: src/player_window.c:2073 src/preferences_window.c:921 msgid "No wave interpolation" msgstr "Žádná interpolace vlny" -#: src/player_window.c:2051 +#: src/player_window.c:2079 #, c-format msgid "Wave interpolation level %d" msgstr "Úroveň interpolace vlny %d" -#: src/player_window.c:2131 +#: src/player_window.c:2141 msgid " Please wait for the process to finish ..." msgstr "Počkejte prosím, na dokončení procesu ..." -#: src/player_window.c:2153 +#: src/player_window.c:2163 msgid " Please wait ... currently computing Douglas Peucker filters." msgstr "" "Prosím počkejte ... v současné době probíhá výpočet Douglas Peucker filtrů." -#: src/player_window.c:2237 +#: src/player_window.c:2247 msgid " left click on splitpoint selects it, right click erases it" msgstr "" "Levé klepnutí na bod rozdělení jej vybere, pravé klepnutí na bod rozdělení " "jej vymaže" -#: src/player_window.c:2242 +#: src/player_window.c:2252 msgid "" " left click + move changes song position, right click + move changes zoom" msgstr "" "Levé klepnutí + posunutí změní polohu názvu, pravé klepnutí + posunutí změní " "násobek zvětšení" -#: src/player_window.c:2248 +#: src/player_window.c:2258 msgid "" " left click on point + move changes point position, right click play preview" msgstr "" "Levé klepnutí na bod + posunutí změní polohu bodu, pravé klepnutí přehraje " "náhled" -#: src/player_window.c:2253 +#: src/player_window.c:2263 msgid " left click on rectangle checks/unchecks 'keep splitpoint'" msgstr "Levé klepnutí na obdélník zapne/vypne »Ponechat bod rozdělení«" -#: src/player_window.c:2678 -msgid " quick preview..." +#: src/player_window.c:2695 +#, fuzzy +msgid " preview..." msgstr " Rychlý náhled..." -#: src/player_window.c:3022 +#: src/player_window.c:3034 msgid "Splitpoints and amplitude wave v_iew" msgstr "Pohled s body rozdělení a vlnou rozkmitu" -#: src/player_window.c:3138 +#: src/player_window.c:3150 msgid "History" msgstr "Historie" -#: src/player_window.c:3228 +#: src/player_window.c:3240 msgid "_Erase selected entries" msgstr "Vymazat vybrané _záznamy" -#: src/player_window.c:3236 +#: src/player_window.c:3248 msgid "E_rase all history" msgstr "Vymazat celou _historii" -#: src/player_window.c:3278 +#: src/player_window.c:3290 msgid "Files h_istory" msgstr "_Historie souborů" -#: src/player_window.c:3404 -msgid " quick preview finished, song paused" +#: src/player_window.c:3330 +#, fuzzy +msgid " preview finished, song paused" msgstr "Rychlý náhled ukončen, přehrávání pozastaveno" #: src/multiple_files_window.c:63 @@ -275,50 +292,51 @@ msgid "Choose files or directories" msgstr "Vybrat soubory nebo adresáře" -#: src/multiple_files_window.c:100 src/main_window.c:691 +#: src/multiple_files_window.c:98 src/main_window.c:671 #, fuzzy msgid "mp3, ogg vorbis and flac files (*.mp3 *.ogg *.flac)" msgstr "Soubory mp3 a ogg (*.mp3 *.ogg)" -#: src/multiple_files_window.c:110 src/main_window.c:701 +#: src/multiple_files_window.c:108 src/main_window.c:681 msgid "mp3 files (*.mp3)" msgstr "Soubory mp3 (*.mp3)" -#: src/multiple_files_window.c:116 src/main_window.c:707 +#: src/multiple_files_window.c:114 src/main_window.c:687 #, fuzzy msgid "ogg vorbis files (*.ogg)" msgstr "Soubory ogg (*.ogg)" -#: src/multiple_files_window.c:122 src/main_window.c:713 +#: src/multiple_files_window.c:120 src/main_window.c:693 #, fuzzy msgid "flac files (*.flac)" msgstr "Soubory CUE (*.cue)" -#: src/multiple_files_window.c:129 +#: src/multiple_files_window.c:127 msgid "All Files" msgstr "Všechny soubory" -#: src/multiple_files_window.c:260 +#: src/multiple_files_window.c:258 msgid "_Add files or directories" msgstr "Přid_at soubory nebo adresáře" -#: src/multiple_files_window.c:261 +#: src/multiple_files_window.c:259 msgid "Only the supported file types are added" msgstr "" -#: src/multiple_files_window.c:269 +#: src/multiple_files_window.c:267 msgid "_Remove selected" msgstr "Ods_tranit vybrané" -#: src/multiple_files_window.c:279 src/splitpoints_window.c:1456 +#: src/multiple_files_window.c:277 src/splitpoints_window.c:1427 msgid "R_emove all" msgstr "Odstranit _vše" -#: src/multiple_files_window.c:287 src/main_window.c:790 -msgid "Batch split !" +#: src/multiple_files_window.c:285 +#, fuzzy +msgid "Batch split" msgstr "Dávkové rozdělení!" -#: src/multiple_files_window.c:288 +#: src/multiple_files_window.c:286 #, fuzzy msgid "Split all the files" msgstr "Rozdělené soubory" @@ -331,11 +349,11 @@ msgid "C_lear" msgstr "_Smazat" -#: src/messages_window.c:168 src/main_window.c:801 +#: src/messages_window.c:168 msgid "Messages history" msgstr "Historie zpráv" -#: src/split_files_window.c:69 src/splitpoints_window.c:1956 +#: src/split_files_window.c:69 src/splitpoints_window.c:1911 msgid "Filename" msgstr "Název souboru" @@ -360,29 +378,29 @@ msgid "Album title" msgstr "Název alba" -#: src/freedb_window.c:169 src/freedb_window.c:477 +#: src/freedb_window.c:154 src/freedb_window.c:472 msgid "please wait... contacting tracktype.org" msgstr "Počkejte, prosím - probíhá spojování se s tracktype.org" -#: src/freedb_window.c:440 src/freedb_window.c:461 src/ui_manager.c:352 +#: src/freedb_window.c:435 src/freedb_window.c:456 src/ui_manager.c:372 #: src/splitpoints_window.c:671 src/splitpoints_window.c:792 #: src/splitpoints_window.c:842 msgid "description here" msgstr "Zadejte, prosím, název" -#: src/freedb_window.c:565 +#: src/freedb_window.c:559 msgid "Search tracktype.org:" msgstr "Hledat na tracktype.org:" -#: src/freedb_window.c:575 +#: src/freedb_window.c:569 msgid "_Search" msgstr "_Hledání" -#: src/freedb_window.c:604 +#: src/freedb_window.c:598 msgid "_Add splitpoints" msgstr "_Přidat body rozdělení" -#: src/freedb_window.c:610 +#: src/freedb_window.c:604 msgid "Set splitpoints to the splitpoints table" msgstr "Přidat body rozdělení do tabulky s body rozdělení" @@ -399,230 +417,230 @@ msgid " error: you already have the splitpoint in table" msgstr " Chyba: bod rozdělení již existuje" -#: src/splitpoints_window.c:1159 src/splitpoints_window.c:1215 -#: src/preferences_window.c:497 +#: src/splitpoints_window.c:1146 src/splitpoints_window.c:1200 +#: src/preferences_window.c:519 msgid "Threshold level (dB):" msgstr "Úroveň prahu (dB):" -#: src/splitpoints_window.c:1229 +#: src/splitpoints_window.c:1214 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end):" msgstr "Odsazení bodu rozdělení (0=začátek ticha 1=konec):" -#: src/splitpoints_window.c:1243 +#: src/splitpoints_window.c:1228 msgid "Number of tracks (0 means all tracks):" msgstr "Počet skladeb (0 znamená všechny skladby):" -#: src/splitpoints_window.c:1255 src/preferences_window.c:513 +#: src/splitpoints_window.c:1240 src/preferences_window.c:535 msgid "Minimum silence length (seconds):" msgstr "Nejmenší délka ticha (sekundy):" -#: src/splitpoints_window.c:1267 +#: src/splitpoints_window.c:1252 msgid "Minimum track length (seconds):" msgstr "Nejmenší délka skladby (sekundy):" -#: src/splitpoints_window.c:1277 +#: src/splitpoints_window.c:1262 msgid "_Remove silence between tracks" msgstr "_Odstranit ticho mezi skladbami" -#: src/splitpoints_window.c:1429 +#: src/splitpoints_window.c:1400 msgid "Minutes:" msgstr "Minuty:" -#: src/splitpoints_window.c:1431 +#: src/splitpoints_window.c:1402 msgid "Seconds:" msgstr "Sekundy:" -#: src/splitpoints_window.c:1433 +#: src/splitpoints_window.c:1404 msgid "Hundredths:" msgstr "Setina:" -#: src/splitpoints_window.c:1443 src/main_window.c:836 +#: src/splitpoints_window.c:1414 msgid "Add splitpoint" msgstr "Přidat bod rozdělení" -#: src/splitpoints_window.c:1446 +#: src/splitpoints_window.c:1417 msgid "_Remove" msgstr "_Odstranit" -#: src/splitpoints_window.c:1453 +#: src/splitpoints_window.c:1424 #, fuzzy msgid "Remove selected splitpoints" msgstr "Ods_tranit vybrané" -#: src/splitpoints_window.c:1463 +#: src/splitpoints_window.c:1434 #, fuzzy msgid "Remove all splitpoints" msgstr "Odstranit všechny řádky" -#: src/splitpoints_window.c:1473 +#: src/splitpoints_window.c:1444 msgid "_Trim splitpoints" msgstr "Zastřihnout body rozdělení" -#: src/splitpoints_window.c:1483 +#: src/splitpoints_window.c:1454 msgid "_Silence detection" msgstr "_Zjištění ticha" -#: src/splitpoints_window.c:1561 src/mp3splt-gtk.c:119 +#: src/splitpoints_window.c:1534 src/mp3splt-gtk.c:129 msgid " finished" msgstr " Dokončeno" -#: src/splitpoints_window.c:1635 +#: src/splitpoints_window.c:1608 msgid " cannot preview, not connected to player" msgstr " Náhled není možný: Žádné spojení s přehrávacím programem" -#: src/splitpoints_window.c:1653 +#: src/splitpoints_window.c:1626 msgid " cannot split preview last splitpoint" msgstr " Náhled na poslední bod rozdělení není možný" -#: src/splitpoints_window.c:1824 +#: src/splitpoints_window.c:1797 msgid "Clone all tags" msgstr "" -#: src/splitpoints_window.c:1832 +#: src/splitpoints_window.c:1803 #, fuzzy msgid "Clone title" msgstr "Název alba" -#: src/splitpoints_window.c:1838 +#: src/splitpoints_window.c:1807 msgid "Clone artist" msgstr "" -#: src/splitpoints_window.c:1844 +#: src/splitpoints_window.c:1811 msgid "Clone album" msgstr "" -#: src/splitpoints_window.c:1850 +#: src/splitpoints_window.c:1815 msgid "Clone genre" msgstr "" -#: src/splitpoints_window.c:1856 +#: src/splitpoints_window.c:1819 msgid "Clone year" msgstr "" -#: src/splitpoints_window.c:1862 +#: src/splitpoints_window.c:1823 msgid "Clone track" msgstr "" -#: src/splitpoints_window.c:1868 +#: src/splitpoints_window.c:1827 msgid "Clone comment" msgstr "" -#: src/splitpoints_window.c:1876 +#: src/splitpoints_window.c:1833 msgid "Auto-increment track" msgstr "" -#: src/splitpoints_window.c:1948 +#: src/splitpoints_window.c:1903 msgid "Keep" msgstr "Ponechat" -#: src/splitpoints_window.c:1964 +#: src/splitpoints_window.c:1919 msgid "Secs" msgstr "Sek" -#: src/splitpoints_window.c:1972 +#: src/splitpoints_window.c:1927 msgid "Mins" msgstr "Min" -#: src/splitpoints_window.c:1980 +#: src/splitpoints_window.c:1935 msgid "Hundr" msgstr "1/100s" -#: src/splitpoints_window.c:1988 +#: src/splitpoints_window.c:1943 msgid "Length" msgstr "Délka" -#: src/splitpoints_window.c:1995 +#: src/splitpoints_window.c:1950 msgid "LiveP" msgstr "LiveP" -#: src/splitpoints_window.c:2003 +#: src/splitpoints_window.c:1958 msgid "SplitP" msgstr "SplitP" -#: src/splitpoints_window.c:2053 +#: src/splitpoints_window.c:2008 msgid "Title" msgstr "" -#: src/splitpoints_window.c:2056 +#: src/splitpoints_window.c:2011 #, fuzzy msgid "Artist" msgstr ": " -#: src/splitpoints_window.c:2059 +#: src/splitpoints_window.c:2014 #, fuzzy msgid "Album" msgstr "Název alba" -#: src/splitpoints_window.c:2062 +#: src/splitpoints_window.c:2017 #, fuzzy msgid "Genre" msgstr "Značka žánru:" -#: src/splitpoints_window.c:2066 +#: src/splitpoints_window.c:2021 #, fuzzy msgid "Comment" msgstr "Značka poznámky:" -#: src/splitpoints_window.c:2069 +#: src/splitpoints_window.c:2024 msgid "Year" msgstr "" -#: src/splitpoints_window.c:2073 +#: src/splitpoints_window.c:2028 #, fuzzy msgid "Track" msgstr "TrackType" -#: src/preferences_window.c:249 +#: src/preferences_window.c:247 msgid "Choose language (requires restart)" msgstr "Vybrat jazyk (vyžaduje nové spuštění)" -#: src/preferences_window.c:358 +#: src/preferences_window.c:357 #, fuzzy msgid "Browse directory ..." msgstr "_Vybrat adresář" -#: src/preferences_window.c:376 +#: src/preferences_window.c:375 #, fuzzy msgid "Example for the single file split:" msgstr "Ruční rozdělení jednoho souboru" -#: src/preferences_window.c:415 +#: src/preferences_window.c:414 #, fuzzy msgid "Custom directory" msgstr "Vybrat výstupní adresář" -#: src/preferences_window.c:417 +#: src/preferences_window.c:416 msgid "Create split files in a custom directory" msgstr "" -#: src/preferences_window.c:422 +#: src/preferences_window.c:421 #, fuzzy msgid "Input file directory" msgstr "Přid_at soubory nebo adresáře" -#: src/preferences_window.c:425 +#: src/preferences_window.c:424 msgid "Create split files in the same directory as the file being split" msgstr "" -#: src/preferences_window.c:431 +#: src/preferences_window.c:430 msgid "Directory for split files" msgstr "Adresář pro rozdělené soubory" -#: src/preferences_window.c:444 +#: src/preferences_window.c:455 msgid "_Splitpoint name from filename (manual single file split only)" msgstr "" "Název bo_du rozdělení z názvu souboru (pouze ruční rozdělení jednoho souboru)" -#: src/preferences_window.c:446 +#: src/preferences_window.c:457 #, fuzzy msgid "Name newly added splitpoints as the input file" msgstr "Stejná verze značky jako u vstupního souboru" -#: src/preferences_window.c:454 +#: src/preferences_window.c:465 msgid "Create directories from _filenames " msgstr "Vytvořit adresáře z názvů sou_borů" -#: src/preferences_window.c:457 +#: src/preferences_window.c:468 msgid "" "If the splitpoint name is 'a/b/output', the directory chain 'a/b' is created " "in the output\n" @@ -630,118 +648,165 @@ "'/a/b' directory" msgstr "" -#: src/preferences_window.c:467 +#: src/preferences_window.c:478 msgid "F_rame mode (useful for mp3 VBR) (mp3 only)" msgstr "Režim F_rame (užitečný pro mp3-VBR) (jen pro mp3)" -#: src/preferences_window.c:469 +#: src/preferences_window.c:480 msgid "" "The split is slower with this option, but some mp3 files having\n" "Variable Bit Rate need this mode to be enabled" msgstr "" -#: src/preferences_window.c:476 +#: src/preferences_window.c:488 +msgid "_[Experimental] Bit reservoir handling for gapless playback (mp3 only)" +msgstr "" + +#: src/preferences_window.c:490 +msgid "" +"Split files will play gapless only on players supporting the LAME tag delay " +"and padding values\n" +"Gapless players examples: cmus, mpg123, foobar2000" +msgstr "" + +#: src/preferences_window.c:498 #, fuzzy msgid "_Auto-adjust mode (use silence detection to auto-adjust splitpoints)" msgstr "_Automatické přesné nastavení bodu rozdělení pomocí zjištění ticha" -#: src/preferences_window.c:479 +#: src/preferences_window.c:501 msgid "" "Splitpoints will be adjusted to match silences (if found)\n" "This mode requires the frame mode" msgstr "" -#: src/preferences_window.c:528 +#: src/preferences_window.c:550 msgid "Cutpoint offset (0 is the begin of silence and 1 the end):" msgstr "Odsazení bodu rozdělení (0=začátek ticha 1=konec):" -#: src/preferences_window.c:545 +#: src/preferences_window.c:567 msgid "Gap level (seconds around splitpoint to search for silence):" msgstr "Přestávka (sekundy okolo bodu rozdělení k prohledání na ticho):" -#: src/preferences_window.c:562 +#: src/preferences_window.c:584 msgid "Set _default split options" msgstr "Nastavit výchozí volby pro rozdělení" -#: src/preferences_window.c:567 +#: src/preferences_window.c:589 msgid "Split options" msgstr "Volby pro rozdělení" -#: src/preferences_window.c:630 +#: src/preferences_window.c:677 msgid "Player:" msgstr "Přehrávač:" -#: src/preferences_window.c:649 +#: src/preferences_window.c:696 msgid "Refresh player every " msgstr "Obnovit přehrávač každých:" -#: src/preferences_window.c:650 +#: src/preferences_window.c:697 src/preferences_window.c:725 msgid "milliseconds." msgstr "milisekund." -#: src/preferences_window.c:652 +#: src/preferences_window.c:699 msgid "\t(higher refresh rate decreases CPU usage - default is 200)" msgstr "»(vyšší obnovovací rychlost sníží užití CPU - výchozí je 200)" -#: src/preferences_window.c:658 +#: src/preferences_window.c:710 +msgid "Stop GStreamer preview" +msgstr "" + +#: src/preferences_window.c:710 +#, fuzzy +msgid "milliseconds before the end." +msgstr "milisekund." + +#: src/preferences_window.c:724 +#, fuzzy +msgid "Small seek jumps for " +msgstr "Malé hledání dopředu" + +#: src/preferences_window.c:733 +msgid "Seek jumps for " +msgstr "" + +#: src/preferences_window.c:734 src/preferences_window.c:743 +#, fuzzy +msgid "milliseconds. (0=auto)" +msgstr "milisekund." + +#: src/preferences_window.c:742 +#, fuzzy +msgid "Big seek jumps for " +msgstr "Velké hledání dopředu" + +#: src/preferences_window.c:753 +msgid "Seek times" +msgstr "" + +#: src/preferences_window.c:761 msgid "Player options" msgstr "Volby pro přehrávač" -#: src/preferences_window.c:777 +#: src/preferences_window.c:872 #, fuzzy -msgid "" -"Wave preview is only available if the amplitude wave is shown in the player" +msgid "Only available if the amplitude wave is shown in the player" msgstr "" "Wave náhled je k dispozici pouze v případě, že se amplituda vlny označí v " "přehrávači" -#: src/preferences_window.c:817 +#: src/preferences_window.c:902 +msgid "Wave preview" +msgstr "" + +#: src/preferences_window.c:912 #, c-format msgid "%d minute(s) window" msgstr "okno %d minut(a)" -#: src/preferences_window.c:822 +#: src/preferences_window.c:917 #, c-format msgid "Wave interpolation level %d with threshold of %.1lf" msgstr "Úroveň interpolace vlny %d s prahem %.1lf" -#: src/preferences_window.c:844 +#: src/preferences_window.c:939 msgid "Wave quality (higher is better but consumes more CPU):" msgstr "Jakost vlny (vyšší je lepší, ale spotřebuje více CPU):" -#: src/preferences_window.c:863 +#: src/preferences_window.c:961 msgid "Amplitude wave options" msgstr "Volby pro vlnu rozkmitu" -#: src/preferences_window.c:920 +#: src/preferences_window.c:1054 msgid "Default format" msgstr "Výchozí formát" -#: src/preferences_window.c:927 +#: src/preferences_window.c:1061 msgid " Default output: " msgstr "Výchozí výstup:" -#: src/preferences_window.c:933 +#: src/preferences_window.c:1067 msgid " CDDB, CUE and tracktype.org default: " msgstr "Výchozí CDDB, CUE a tracktype.org: " -#: src/preferences_window.c:939 +#: src/preferences_window.c:1073 msgid " Split with silence detection default: " msgstr "Rozdělit s pomocí výchozího zjištění ticha:" -#: src/preferences_window.c:945 +#: src/preferences_window.c:1079 msgid " Trim using silence detection default: " msgstr "Zastřihnout pomocí výchozího zjištění ticha:" -#: src/preferences_window.c:951 +#: src/preferences_window.c:1085 msgid " Error mode default: " msgstr "Výchozí nastavení chybového režimu:" -#: src/preferences_window.c:966 +#: src/preferences_window.c:1100 msgid "Custom format" msgstr "Vlastní formát" -#: src/preferences_window.c:985 +#: src/preferences_window.c:1119 +#, fuzzy msgid "" " @A: performer if found, otherwise artist\n" " @a: artist name\n" @@ -758,6 +823,8 @@ "number) **\n" " @U: track tag number as uppercase letter **\n" " @f: input filename (without extension)\n" +" @d: last directory of the input filename or the filename itself if no " +"directory\n" " @m, @s or @h: the number of minutes, seconds or hundreths of seconds of " "the start splitpoint **\n" " @M, @S or @H: the number of minutes, seconds or hundreths of seconds of " @@ -787,87 +854,87 @@ "\n" " (**) může následovat číslice pro počet číslic do výstupu\n" -#: src/preferences_window.c:1010 +#: src/preferences_window.c:1145 #, fuzzy msgid "Output format for batch split and when importing splitpoints" msgstr "" "Formát názvu výstupního souboru pro dávkové rozdělení, CUE, CDDB ad " "tracktype.org" -#: src/preferences_window.c:1060 +#: src/preferences_window.c:1194 msgid "Original file tags" msgstr "Původní značky k souboru" -#: src/preferences_window.c:1063 +#: src/preferences_window.c:1197 #, fuzzy msgid "Custom tags (from the splitpoints table)" msgstr "Přidat body rozdělení do tabulky s body rozdělení" -#: src/preferences_window.c:1066 +#: src/preferences_window.c:1200 msgid "No tags" msgstr "Žádné značky" -#: src/preferences_window.c:1069 +#: src/preferences_window.c:1203 msgid "Extract tags from filename" msgstr "Vytáhnout značky z názvu souboru" -#: src/preferences_window.c:1078 +#: src/preferences_window.c:1212 msgid "Split files tags" msgstr "Značky v rozdělených souborech" -#: src/preferences_window.c:1100 +#: src/preferences_window.c:1234 msgid "No change" msgstr "Žádná změna" -#: src/preferences_window.c:1101 +#: src/preferences_window.c:1235 msgid "lowercase" msgstr "Malá písmena" -#: src/preferences_window.c:1102 +#: src/preferences_window.c:1236 msgid "UPPERCASE" msgstr "VELKÁ PÍSMENA" -#: src/preferences_window.c:1103 +#: src/preferences_window.c:1237 msgid "First uppercase" msgstr "První písmeno velké" -#: src/preferences_window.c:1104 +#: src/preferences_window.c:1238 msgid "Word Uppercase" msgstr "Písmena slov velká" -#: src/preferences_window.c:1126 +#: src/preferences_window.c:1284 msgid ": " msgstr ": " -#: src/preferences_window.c:1135 +#: src/preferences_window.c:1293 msgid ": " msgstr ": " -#: src/preferences_window.c:1145 +#: src/preferences_window.c:1303 msgid ": " msgstr "<title>: " -#: src/preferences_window.c:1154 +#: src/preferences_window.c:1312 msgid "<genre>: " msgstr "<genre>: " -#: src/preferences_window.c:1163 +#: src/preferences_window.c:1321 msgid "<comment>: " msgstr "<comment>: " -#: src/preferences_window.c:1172 +#: src/preferences_window.c:1330 msgid "<year>: " msgstr "<year>: " -#: src/preferences_window.c:1181 +#: src/preferences_window.c:1339 msgid "<track>: " msgstr "<track>: " -#: src/preferences_window.c:1210 +#: src/preferences_window.c:1379 msgid "Regular expression:" msgstr "Regulární výraz:" -#: src/preferences_window.c:1213 +#: src/preferences_window.c:1382 msgid "" "Above enter PERL-like regular expression using named subgroups.\n" "Following names are recognized:\n" @@ -889,583 +956,592 @@ " (?<genre>) - žánr\n" " (?<comment>) - poznámka" -#: src/preferences_window.c:1240 +#: src/preferences_window.c:1409 msgid "_Replace underscores by spaces" msgstr "_Nahradit podtržítka mezerami" -#: src/preferences_window.c:1250 +#: src/preferences_window.c:1419 msgid "Artist text properties:" msgstr "Vlastnosti textu umělce:" -#: src/preferences_window.c:1255 +#: src/preferences_window.c:1424 msgid "Album text properties:" msgstr "Vlastnosti textu alba:" -#: src/preferences_window.c:1260 +#: src/preferences_window.c:1429 msgid "Title text properties:" msgstr "Vlastnosti textu názvu:" -#: src/preferences_window.c:1265 +#: src/preferences_window.c:1434 msgid "Comment text properties:" msgstr "Vlastnosti textu poznámky:" -#: src/preferences_window.c:1269 +#: src/preferences_window.c:1438 msgid "Genre tag:" msgstr "Značka žánru:" -#: src/preferences_window.c:1273 +#: src/preferences_window.c:1442 msgid "Comment tag:" msgstr "Značka poznámky:" -#: src/preferences_window.c:1275 +#: src/preferences_window.c:1444 msgid "Regular expression test" msgstr "Zkouška regulárního výrazu" -#: src/preferences_window.c:1291 +#: src/preferences_window.c:1460 msgid "_Test" msgstr "_Zkouška" -#: src/preferences_window.c:1295 +#: src/preferences_window.c:1464 msgid "Sample filename:" msgstr "Název souboru s příkladem:" -#: src/preferences_window.c:1300 +#: src/preferences_window.c:1469 msgid "Sample result:" msgstr "Výsledek příkladu:" -#: src/preferences_window.c:1312 +#: src/preferences_window.c:1481 msgid "ID3v1 & ID3v2 tags" msgstr "Značky ID3v1 a ID3v2" -#: src/preferences_window.c:1319 +#: src/preferences_window.c:1488 msgid "ID3v2 tags" msgstr "Značky ID3v2" -#: src/preferences_window.c:1326 +#: src/preferences_window.c:1495 msgid "ID3v1 tags" msgstr "Značky ID3v1" -#: src/preferences_window.c:1333 +#: src/preferences_window.c:1502 msgid "Same tags version as the input file" msgstr "Stejná verze značky jako u vstupního souboru" -#: src/preferences_window.c:1339 +#: src/preferences_window.c:1508 msgid "<b>Tags version (mp3 only)</b>" msgstr "<b>Verze značky (jen pro mp3)</b>" -#: src/preferences_window.c:1380 +#: src/preferences_window.c:1548 src/main_window.c:774 msgid "Split" msgstr "Rozdělení" -#: src/preferences_window.c:1385 +#: src/preferences_window.c:1553 msgid "Tags" msgstr "Značky" -#: src/preferences_window.c:1390 +#: src/preferences_window.c:1558 msgid "Player" msgstr "Přehrávač" -#: src/preferences_window.c:1395 +#: src/preferences_window.c:1563 #, fuzzy msgid "Output format" msgstr "Formát názvu výstupního souboru" -#: src/preferences_window.c:1401 +#: src/preferences_window.c:1569 msgid "Language" msgstr "Jazyk" -#: src/split_mode_window.c:193 +#: src/split_mode_window.c:188 msgid "Use manual single file splitpoints" msgstr "Použít ruční body rozdělení jednoho souboru" -#: src/split_mode_window.c:195 +#: src/split_mode_window.c:190 #, fuzzy msgid "Split files using the manually defined splitpoints" msgstr "Použít ruční body rozdělení jednoho souboru" -#: src/split_mode_window.c:205 +#: src/split_mode_window.c:200 msgid "Time" msgstr "Čas" -#: src/split_mode_window.c:207 +#: src/split_mode_window.c:202 msgid "Split every fixed time length; last track will most likely be smaller" msgstr "" -#: src/split_mode_window.c:224 +#: src/split_mode_window.c:219 msgid "Split every" msgstr "Rozdělit každých" -#: src/split_mode_window.c:237 +#: src/split_mode_window.c:232 msgid "seconds." msgstr "sekund." -#: src/split_mode_window.c:244 +#: src/split_mode_window.c:239 msgid "Equal time tracks" msgstr "Skladby se stejnou délkou" -#: src/split_mode_window.c:246 +#: src/split_mode_window.c:241 msgid "Create smaller tracks having exactly the same time length" msgstr "" -#: src/split_mode_window.c:261 +#: src/split_mode_window.c:256 msgid "Split in" msgstr "Rozdělit na" -#: src/split_mode_window.c:275 +#: src/split_mode_window.c:270 msgid "equal tracks." msgstr "stejné skladby" -#: src/split_mode_window.c:282 +#: src/split_mode_window.c:277 msgid "Trim using silence detection" msgstr "Zastřihnout s pomocí zjištění ticha" -#: src/split_mode_window.c:284 +#: src/split_mode_window.c:279 msgid "" "Split by discarding silence from the begin and from the end\n" "If no silence is found, the output file is still created" msgstr "" -#: src/split_mode_window.c:302 src/split_mode_window.c:331 +#: src/split_mode_window.c:297 src/split_mode_window.c:326 msgid "Threshold level (dB) : " msgstr "Úroveň prahu (dB): " -#: src/split_mode_window.c:313 +#: src/split_mode_window.c:308 msgid "Silence - split with silence detection" msgstr "Ticho - vytvořit body rozdělení s pomocí zjištění ticha" -#: src/split_mode_window.c:314 +#: src/split_mode_window.c:309 #, fuzzy msgid "Split where silence is found" msgstr "Rozdělit s pomocí výchozího zjištění ticha:" -#: src/split_mode_window.c:343 +#: src/split_mode_window.c:338 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end) : " msgstr "Odsazení bodu rozdělení (0=začátek ticha 1=konec): " -#: src/split_mode_window.c:355 +#: src/split_mode_window.c:350 msgid "Number of tracks (0 means all tracks) : " msgstr "Počet skladeb (0 znamená všechny skladby): " -#: src/split_mode_window.c:367 +#: src/split_mode_window.c:362 msgid "Minimum silence length (seconds) : " msgstr "Nejmenší délka ticha (sekundy): " -#: src/split_mode_window.c:379 +#: src/split_mode_window.c:374 msgid "Minimum track length (seconds) : " msgstr "Nejmenší délka skladby (sekundy): " -#: src/split_mode_window.c:389 +#: src/split_mode_window.c:384 msgid "Remove silence between tracks" msgstr "Odstranit ticho mezi skladbami" -#: src/split_mode_window.c:410 +#: src/split_mode_window.c:405 msgid "Wrap - split files created with mp3wrap or albumwrap (mp3 only)" msgstr "Obal - rozdělit soubory vytvořené s mp3wrap nebo albumwrap (jen mp3)" -#: src/split_mode_window.c:420 +#: src/split_mode_window.c:415 #, fuzzy msgid "Synchronisation error mode (mp3 only)" msgstr "Chybový režim (jen pro mp3)" -#: src/split_mode_window.c:422 +#: src/split_mode_window.c:417 msgid "" "Split where synchronisation errors are found\n" "Useful for splitting concatenated files" msgstr "" -#: src/mp3splt-gtk.c:102 -msgid " error: no files found in batch mode" -msgstr "Chyba: V dávkovém režimu nebyly nalezeny žádné soubory" +#: src/split_mode_window.c:428 +msgid "Internal sheet mode (CUE sheet for FLAC and ID3v2 chapters for MP3)" +msgstr "" -#: src/mp3splt-gtk.c:278 -msgid " info: stopping the split process before exiting" -msgstr " Informace: Proces rozdělení se zastavuje před ukončením" +#: src/split_mode_window.c:429 +msgid "Split using internal sheet" +msgstr "" -#: src/mp3splt-gtk.c:389 -#, c-format -msgid "Setting the output directory to %s.\n" -msgstr "Výstupní adresář se nastavuje na %s.\n" +#: src/split_mode_window.c:439 +#, fuzzy +msgid "Use CUE file with similar name as the input file" +msgstr "Stejná verze značky jako u vstupního souboru" -#: src/mp3splt-gtk.c:403 -#, c-format -msgid "Option -%c requires an argument.\n" -msgstr "Volba -%c vyžaduje argument.\n" +#: src/split_mode_window.c:441 +msgid "" +"Split using CUE file having similar name as the input file\n" +"Example: test.cue will be looked for when splitting test.mp3" +msgstr "" -#: src/mp3splt-gtk.c:405 -#, c-format -msgid "Unknown option `-%c'.\n" -msgstr "Neznámá volba »-%c«.\n" +#: src/split_mode_window.c:452 +msgid "Use CDDB file with similar name as the input file" +msgstr "" -#: src/mp3splt-gtk.c:407 -#, c-format -msgid "Unknown option character `\\x%x'.\n" -msgstr "Neznámý znak ve volbě »\\x%x«.\n" +#: src/split_mode_window.c:454 +msgid "" +"Split using CDDB file having similar name as the input file\n" +"Example: test.cddb will be looked for when splitting test.mp3" +msgstr "" -#: src/mp3splt-gtk.c:421 -#, c-format -msgid "Cannot open input file %s\n" -msgstr "Vstupní soubor %s nelze otevřít\n" +#: src/mp3splt-gtk.c:112 +msgid " error: no files found in batch mode" +msgstr "Chyba: V dávkovém režimu nebyly nalezeny žádné soubory" -#: src/main_window.c:173 +#: src/mp3splt-gtk.c:350 +msgid " info: stopping the split process before exiting" +msgstr " Informace: Proces rozdělení se zastavuje před ukončením" + +#: src/main_window.c:170 msgid "Error launching external command" msgstr "Chyba při spuštění vnějšího příkazu" -#: src/main_window.c:204 +#: src/main_window.c:203 msgid "using" msgstr "za použití" -#: src/main_window.c:208 +#: src/main_window.c:207 msgid "release of " msgstr "vydání " -#: src/main_window.c:311 +#: src/main_window.c:310 msgid " info: stopping the split process.. please wait" msgstr " Informace: Proces rozdělení se zastavuje, prosím, čekejte" -#: src/main_window.c:319 src/main_window.c:778 -msgid "Preferences" -msgstr "Nastavení" - -#: src/main_window.c:331 -msgid "TrackType" -msgstr "TrackType" - -#: src/main_window.c:346 src/main_window.c:781 -msgid "Split files" -msgstr "Rozdělené soubory" - -#: src/main_window.c:361 src/main_window.c:784 -msgid "Splitpoints" -msgstr "Body rozdělení" - -#: src/main_window.c:432 +#: src/main_window.c:375 msgid " error: split in progress..." msgstr " Chyba: Probíhá rozdělování..." -#: src/main_window.c:442 +#: src/main_window.c:385 msgid " error: no path of split selected" msgstr "Chyba: Nebyla vybrána žádná cesta rozdělení" -#: src/main_window.c:725 -msgid "Choose File" -msgstr "Vybrat soubor" - -#: src/main_window.c:755 -msgid "_File" -msgstr "_Soubor" - -#: src/main_window.c:756 -msgid "_View" -msgstr "Po_hled" - -#: src/main_window.c:757 -msgid "_Player" -msgstr "_Přehrávač" - -#: src/main_window.c:758 -msgid "_Help" -msgstr "_Nápověda" - -#: src/main_window.c:760 -#, fuzzy -msgid "_Open single file..." +#: src/main_window.c:729 +msgid "Open file ..." msgstr "Otevřít soubor..." -#: src/main_window.c:760 -msgid "Open" -msgstr "Otevřít" - -#: src/main_window.c:764 -msgid "_Add files or directories to batch ..." -msgstr "Př_idat soubory nebo adresáře do dávkového zpracování..." - -#: src/main_window.c:765 -msgid "Add files or directories to batch" -msgstr "Přidat soubory nebo adresáře do dávkového zpracování" - -#: src/main_window.c:768 -msgid "_Import splitpoints from file..." -msgstr "_Zavést body rozdělení ze souboru..." - -#: src/main_window.c:769 -msgid "Import splitpoints from file..." -msgstr "Zavést body rozdělení ze souboru..." - -#: src/main_window.c:771 -msgid "Import splitpoints from _TrackType.org..." -msgstr "Zavést body rozdělení z _TrackType.org..." - -#: src/main_window.c:772 -msgid "Import splitpoints from TrackType.org..." -msgstr "Zavést body rozdělení z TrackType.org..." - -#: src/main_window.c:775 -msgid "_Export splitpoints..." -msgstr "_Vyvést body rozdělení..." - -#: src/main_window.c:776 -msgid "Export splitpoints" -msgstr "Vyvést body rozdělení" - -#: src/main_window.c:778 -msgid "_Preferences" -msgstr "_Nastavení" - -#: src/main_window.c:781 -msgid "Split _files" -msgstr "Rozdělit _soubory" - -#: src/main_window.c:784 -msgid "_Splitpoints" -msgstr "_Body rozdělení" - -#: src/main_window.c:787 -msgid "_Split !" -msgstr "_Rozdělit!" - -#: src/main_window.c:787 src/main_window.c:998 -msgid "Split !" -msgstr "Rozdělit!" - -#: src/main_window.c:790 -msgid "_Batch split !" -msgstr "_Dávkové rozdělení!" - -#: src/main_window.c:793 -msgid "_Quit" -msgstr "_Ukončit" - -#: src/main_window.c:793 -msgid "Quit" -msgstr "Ukončit" - -#: src/main_window.c:797 -msgid "_Contents" -msgstr "_Obsah" - -#: src/main_window.c:797 -msgid "Contents" -msgstr "Obsah" - -#: src/main_window.c:801 -msgid "Messages _history" -msgstr "_Historie zpráv" +#: src/main_window.c:777 +#, fuzzy +msgid "Split the current file" +msgstr "Rozdělené soubory" -#: src/main_window.c:804 -msgid "_About" -msgstr "_O programu" +#: src/main_window.c:786 +msgid "Manual single file split" +msgstr "Ruční rozdělení jednoho souboru" #: src/main_window.c:804 -msgid "About" -msgstr "O programu" - -#: src/main_window.c:808 -msgid "P_ause / Play" -msgstr "Př_ehrát/Pozastavit" - -#: src/main_window.c:808 -msgid "Pause/Play" -msgstr "Pozastavit/Přehrát" - -#: src/main_window.c:811 -msgid "Seek _forward" -msgstr "Hledat _dopředu" - -#: src/main_window.c:811 -msgid "Seek forward" -msgstr "Hledat dopředu" - -#: src/main_window.c:813 -msgid "Seek _backward" -msgstr "Hledat _dozadu" - -#: src/main_window.c:813 -msgid "Seek backward" -msgstr "Hledat dozadu" - -#: src/main_window.c:816 -msgid "Small seek f_orward" -msgstr "Malé hledání d_opředu" - -#: src/main_window.c:816 -msgid "Small seek forward" -msgstr "Malé hledání dopředu" - -#: src/main_window.c:818 -msgid "Small seek back_ward" -msgstr "Malé hledání doz_adu" - -#: src/main_window.c:818 -msgid "Small seek backward" -msgstr "Malé hledání dozadu" - -#: src/main_window.c:821 -msgid "Big seek fo_rward" -msgstr "Velké hledání do_předu" - -#: src/main_window.c:821 -msgid "Big seek forward" -msgstr "Velké hledání dopředu" +msgid "Batch & automatic split" +msgstr "Dávkové a automatické rozdělení" -#: src/main_window.c:823 -msgid "Big seek bac_kward" -msgstr "Velké hledání dozad_u" +#: src/main_window.c:822 +msgid "S_top" +msgstr "Za_stavit" -#: src/main_window.c:823 -msgid "Big seek backward" -msgstr "Velké hledání do_zadu" +#: src/main_window.c:1089 +#, c-format +msgid "Setting the output directory to %s.\n" +msgstr "Výstupní adresář se nastavuje na %s.\n" -#: src/main_window.c:826 -msgid "Seek to _next splitpoint" -msgstr "Velké hledání dozadu" +#: src/main_window.c:1103 +#, c-format +msgid "Option -%c requires an argument.\n" +msgstr "Volba -%c vyžaduje argument.\n" -#: src/main_window.c:827 -msgid "Seek to next splitpoint" -msgstr "Hledat po další bod rozdělení" +#: src/main_window.c:1105 +#, c-format +msgid "Unknown option `-%c'.\n" +msgstr "Neznámá volba »-%c«.\n" -#: src/main_window.c:828 -msgid "Seek to _previous splitpoint" -msgstr "Hledat po _předchozí bod rozdělení" +#: src/main_window.c:1107 +#, c-format +msgid "Unknown option character `\\x%x'.\n" +msgstr "Neznámý znak ve volbě »\\x%x«.\n" -#: src/main_window.c:829 -msgid "Seek to previous splitpoint" -msgstr "Hledat po předchozí bod rozdělení" +#: src/main_window.c:1121 +#, c-format +msgid "Cannot open input file %s\n" +msgstr "Vstupní soubor %s nelze otevřít\n" -#: src/main_window.c:832 -#, fuzzy -msgid "_Quick preview before closest splitpoint" -msgstr "_Smazat nejbližší bod rozdělení" +#: src/main_window.c:1164 +msgid "Choose File" +msgstr "Vybrat soubor" -#: src/main_window.c:832 +#: src/main_window.c:1168 src/import.c:61 #, fuzzy -msgid "Quick preview before closest splitpoint" -msgstr "Smazat nejbližší bod rozdělení" - -#: src/main_window.c:835 -msgid "Add _splitpoint" -msgstr "Přidat _bod rozdělení" - -#: src/main_window.c:838 -msgid "_Delete closest splitpoint" -msgstr "_Smazat nejbližší bod rozdělení" +msgid "_Open" +msgstr "Otevřít" -#: src/main_window.c:839 -msgid "Delete closest splitpoint" -msgstr "Smazat nejbližší bod rozdělení" +#: src/main_window.c:1208 +msgid "TrackType" +msgstr "TrackType" -#: src/main_window.c:841 -msgid "Zoom _in" -msgstr "_Přiblížit" - -#: src/main_window.c:841 -msgid "Zoom in" -msgstr "Přiblížit" - -#: src/main_window.c:842 -msgid "Zoom _out" -msgstr "_Oddálit" - -#: src/main_window.c:842 -msgid "Zoom out" -msgstr "Oddálit" +#: src/main_window.c:1225 +msgid "Preferences" +msgstr "Nastavení" -#: src/main_window.c:953 -msgid "Open file ..." -msgstr "Otevřít soubor..." +#: src/main_window.c:1257 +msgid "Splitpoints" +msgstr "Body rozdělení" -#: src/main_window.c:1001 -#, fuzzy -msgid "Split the current file" +#: src/main_window.c:1273 +msgid "Split files" msgstr "Rozdělené soubory" -#: src/main_window.c:1010 -msgid "Manual single file split" -msgstr "Ruční rozdělení jednoho souboru" - -#: src/main_window.c:1028 -msgid "Batch & automatic split" -msgstr "Dávkové a automatické rozdělení" - -#: src/main_window.c:1048 -msgid "S_top" -msgstr "Za_stavit" - #: src/libmp3splt_manager.c:71 #, c-format msgid " File '%s' created" msgstr "Soubor »%s« byl vytvořen" -#: src/libmp3splt_manager.c:182 +#: src/libmp3splt_manager.c:166 #, c-format msgid " preparing \"%s\" (%d of %d)" msgstr "»%s« se připravuje (%d z %d)" -#: src/libmp3splt_manager.c:188 +#: src/libmp3splt_manager.c:172 #, c-format msgid " creating \"%s\" (%d of %d)" msgstr "»%s« se vytváří (%d z %d)" -#: src/libmp3splt_manager.c:194 +#: src/libmp3splt_manager.c:178 msgid " searching for sync errors..." msgstr " Hledají se chyby v seřízení…" -#: src/libmp3splt_manager.c:199 +#: src/libmp3splt_manager.c:183 msgid "Computing amplitude wave data..." msgstr "Počítají se data vlny rozkmitu" -#: src/libmp3splt_manager.c:204 +#: src/libmp3splt_manager.c:188 #, c-format msgid "S: %02d, Level: %.2f dB; scanning for silence..." msgstr "S: %02d, Úroveň: %.2f dB; hledá se ticho…" -#: src/import.c:55 +#: src/import.c:56 msgid "Choose file to import" msgstr "Vybrat soubor pro zavedení" -#: src/import.c:207 -msgid "CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt)" +#: src/import.c:271 +#, fuzzy +msgid "" +"CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt), internal sheet (*." +"flac), chapters (*.mp3)" msgstr "CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt)" -#: src/import.c:211 +#: src/import.c:275 msgid "CDDB files (*.cddb)" msgstr "Soubory CDDB (*.cddb)" -#: src/import.c:213 +#: src/import.c:277 msgid "CUE files (*.cue)" msgstr "Soubory CUE (*.cue)" -#: src/import.c:215 +#: src/import.c:279 msgid "Audacity labels files (*.txt)" msgstr "Soubory Audacity label (*.txt)" -#: src/import.c:217 +#: src/import.c:281 +msgid "FLAC internal sheet (*.flac)" +msgstr "" + +#: src/import.c:283 +#, fuzzy +msgid "ID3v2 chapters (*.mp3)" +msgstr "Soubory mp3 (*.mp3)" + +#: src/import.c:285 msgid "All files" msgstr "Všechny soubory" -#: src/import.c:348 +#: src/import.c:476 #, fuzzy msgid "--- last cue splitpoint ---" msgstr "Smazat nejbližší bod rozdělení" -#: src/gstreamer_control.c:73 +#: src/gstreamer_control.c:71 #, c-format msgid "gstreamer error: %s" msgstr "Chyba v Gstreameru: %s" -#: src/gstreamer_control.c:99 +#: src/gstreamer_control.c:97 #, c-format msgid "Warning: %s" msgstr "Varování: %s" -#: src/gstreamer_control.c:125 +#: src/gstreamer_control.c:123 #, c-format msgid "Info: %s" msgstr "Informace: %s" -#: src/gstreamer_control.c:369 +#: src/gstreamer_control.c:354 msgid " error: cannot create gstreamer playbin\n" msgstr "Chyba: gstreamer-playbin nelze vytvořit\n" +#~ msgid "Split !" +#~ msgstr "Rozdělit!" + +#~ msgid "_File" +#~ msgstr "_Soubor" + +#~ msgid "_View" +#~ msgstr "Po_hled" + +#~ msgid "_Player" +#~ msgstr "_Přehrávač" + +#~ msgid "_Help" +#~ msgstr "_Nápověda" + +#, fuzzy +#~ msgid "_Open single file..." +#~ msgstr "Otevřít soubor..." + +#~ msgid "_Add files or directories to batch ..." +#~ msgstr "Př_idat soubory nebo adresáře do dávkového zpracování..." + +#~ msgid "Add files or directories to batch" +#~ msgstr "Přidat soubory nebo adresáře do dávkového zpracování" + +#~ msgid "_Import splitpoints from file..." +#~ msgstr "_Zavést body rozdělení ze souboru..." + +#~ msgid "Import splitpoints from file..." +#~ msgstr "Zavést body rozdělení ze souboru..." + +#~ msgid "Import splitpoints from _TrackType.org..." +#~ msgstr "Zavést body rozdělení z _TrackType.org..." + +#~ msgid "Import splitpoints from TrackType.org..." +#~ msgstr "Zavést body rozdělení z TrackType.org..." + +#~ msgid "_Export splitpoints..." +#~ msgstr "_Vyvést body rozdělení..." + +#~ msgid "Export splitpoints" +#~ msgstr "Vyvést body rozdělení" + +#~ msgid "_Preferences" +#~ msgstr "_Nastavení" + +#~ msgid "Split _files" +#~ msgstr "Rozdělit _soubory" + +#~ msgid "_Splitpoints" +#~ msgstr "_Body rozdělení" + +#~ msgid "_Split !" +#~ msgstr "_Rozdělit!" + +#~ msgid "_Batch split !" +#~ msgstr "_Dávkové rozdělení!" + +#~ msgid "_Quit" +#~ msgstr "_Ukončit" + +#~ msgid "Quit" +#~ msgstr "Ukončit" + +#~ msgid "_Contents" +#~ msgstr "_Obsah" + +#~ msgid "Contents" +#~ msgstr "Obsah" + +#~ msgid "Messages _history" +#~ msgstr "_Historie zpráv" + +#~ msgid "_About" +#~ msgstr "_O programu" + +#~ msgid "About" +#~ msgstr "O programu" + +#~ msgid "P_ause / Play" +#~ msgstr "Př_ehrát/Pozastavit" + +#~ msgid "Pause/Play" +#~ msgstr "Pozastavit/Přehrát" + +#~ msgid "Seek _forward" +#~ msgstr "Hledat _dopředu" + +#~ msgid "Seek forward" +#~ msgstr "Hledat dopředu" + +#~ msgid "Seek _backward" +#~ msgstr "Hledat _dozadu" + +#~ msgid "Seek backward" +#~ msgstr "Hledat dozadu" + +#~ msgid "Small seek f_orward" +#~ msgstr "Malé hledání d_opředu" + +#~ msgid "Small seek forward" +#~ msgstr "Malé hledání dopředu" + +#~ msgid "Small seek back_ward" +#~ msgstr "Malé hledání doz_adu" + +#~ msgid "Small seek backward" +#~ msgstr "Malé hledání dozadu" + +#~ msgid "Big seek fo_rward" +#~ msgstr "Velké hledání do_předu" + +#~ msgid "Big seek forward" +#~ msgstr "Velké hledání dopředu" + +#~ msgid "Big seek bac_kward" +#~ msgstr "Velké hledání dozad_u" + +#~ msgid "Big seek backward" +#~ msgstr "Velké hledání do_zadu" + +#~ msgid "Seek to _next splitpoint" +#~ msgstr "Velké hledání dozadu" + +#~ msgid "Seek to next splitpoint" +#~ msgstr "Hledat po další bod rozdělení" + +#~ msgid "Seek to _previous splitpoint" +#~ msgstr "Hledat po _předchozí bod rozdělení" + +#~ msgid "Seek to previous splitpoint" +#~ msgstr "Hledat po předchozí bod rozdělení" + +#, fuzzy +#~ msgid "Preview before c_losest splitpoint" +#~ msgstr "Smazat nejbližší bod rozdělení" + +#, fuzzy +#~ msgid "Preview before closest splitpoint" +#~ msgstr "Smazat nejbližší bod rozdělení" + +#, fuzzy +#~ msgid "Preview clos_est splitpoint" +#~ msgstr "Smazat nejbližší bod rozdělení" + +#, fuzzy +#~ msgid "Preview closest splitpoint" +#~ msgstr "Smazat nejbližší bod rozdělení" + +#, fuzzy +#~ msgid "Preview _closest splitpoint & pause" +#~ msgstr "Smazat nejbližší bod rozdělení" + +#, fuzzy +#~ msgid "Preview closest splitpoint & pause" +#~ msgstr "Smazat nejbližší bod rozdělení" + +#~ msgid "Add _splitpoint" +#~ msgstr "Přidat _bod rozdělení" + +#~ msgid "_Delete closest splitpoint" +#~ msgstr "_Smazat nejbližší bod rozdělení" + +#~ msgid "Delete closest splitpoint" +#~ msgstr "Smazat nejbližší bod rozdělení" + +#~ msgid "Zoom _in" +#~ msgstr "_Přiblížit" + +#~ msgid "Zoom in" +#~ msgstr "Přiblížit" + +#~ msgid "Zoom _out" +#~ msgstr "_Oddálit" + +#~ msgid "Zoom out" +#~ msgstr "Oddálit" + +#, fuzzy +#~ msgid "_Quick preview before closest splitpoint" +#~ msgstr "_Smazat nejbližší bod rozdělení" + #~ msgid "Select cue file name" #~ msgstr "Vybrat soubor CUE" Binary files /tmp/tmpA90wb_/LJUs5HNncE/mp3splt-gtk-0.9/po/de_DE.gmo and /tmp/tmpA90wb_/V0ZBgpNw8L/mp3splt-gtk-0.9.2/po/de_DE.gmo differ diff -Nru mp3splt-gtk-0.9/po/de_DE.po mp3splt-gtk-0.9.2/po/de_DE.po --- mp3splt-gtk-0.9/po/de_DE.po 2013-07-20 07:11:45.000000000 +0000 +++ mp3splt-gtk-0.9.2/po/de_DE.po 2014-11-09 16:50:48.000000000 +0000 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: mp3splt-gtk\n" "Report-Msgid-Bugs-To: io_alex_2004@users.sourceforge.net\n" -"POT-Creation-Date: 2013-07-20 09:11+0200\n" +"POT-Creation-Date: 2014-11-09 17:50+0100\n" "PO-Revision-Date: 2013-04-29 08:45+0000\n" "Last-Translator: Peter Pall <gunter@peterpall.de>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -20,40 +20,50 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/audacious_control.c:66 src/snackamp_control.c:337 -#: src/gstreamer_control.c:228 +#: src/gstreamer_control.c:217 msgid "stereo" msgstr "Stereo" #: src/audacious_control.c:70 src/snackamp_control.c:341 -#: src/gstreamer_control.c:232 +#: src/gstreamer_control.c:221 msgid "mono" msgstr "Mono" #: src/audacious_control.c:73 src/snackamp_control.c:344 -#: src/gstreamer_control.c:198 +#: src/gstreamer_control.c:190 msgid "Kbps" msgstr "kbit/s" #: src/audacious_control.c:74 src/snackamp_control.c:345 -#: src/gstreamer_control.c:199 +#: src/gstreamer_control.c:191 msgid "Khz" msgstr "kHz" -#: src/utilities.c:87 +#: src/utilities.c:86 #, c-format msgid "Processing file '%s' ..." msgstr "Datei »%s« wird verarbeitet …" -#: src/export.c:93 +#: src/export.c:154 #, fuzzy msgid "Cue filename to export" msgstr "Datei zum Importieren wählen" -#: src/export.c:105 +#: src/export.c:157 src/multiple_files_window.c:83 +#: src/splitpoints_window.c:1126 src/splitpoints_window.c:1183 +#: src/main_window.c:1166 src/import.c:59 +msgid "_Cancel" +msgstr "" + +#: src/export.c:159 +msgid "_Save" +msgstr "" + +#: src/export.c:166 msgid "cue files (*.cue)" msgstr "cue-Dateien (*.cue)" -#: src/widgets_helper.c:428 +#: src/widgets_helper.c:401 msgid "_Close" msgstr "" @@ -61,7 +71,7 @@ msgid "Processing Douglas-Peucker filters ..." msgstr "" -#: src/player_window.c:580 +#: src/player_window.c:576 msgid "" "\n" " Cannot connect to snackAmp player.\n" @@ -97,7 +107,7 @@ " Danach starten Sie SnackAmp neu und mp3splt-gtk\n" " sollte funktionieren.\n" -#: src/player_window.c:595 +#: src/player_window.c:591 msgid "" "\n" " Cannot connect to Audacious player.\n" @@ -116,147 +126,154 @@ " wie Sie das tun können, starten Sie Audacious manuell\n" " und versuchen Sie, eine Verbindung herzustellen.\n" -#: src/player_window.c:603 src/player_window.c:607 +#: src/player_window.c:599 src/player_window.c:603 msgid "Cannot connect to player" msgstr "Keine Verbindung zum Abspielprogramm möglich" -#: src/player_window.c:904 +#: src/player_window.c:604 src/splitpoints_window.c:1124 +#: src/splitpoints_window.c:1181 +msgid "_OK" +msgstr "" + +#: src/player_window.c:900 msgid "Previous track" msgstr "" -#: src/player_window.c:922 +#: src/player_window.c:918 msgid "Play" msgstr "Wiedergabe" -#: src/player_window.c:939 +#: src/player_window.c:935 msgid "Pause" msgstr "Pause" -#: src/player_window.c:956 +#: src/player_window.c:952 msgid "Stop" msgstr "Stop" -#: src/player_window.c:973 +#: src/player_window.c:969 msgid "Next track" msgstr "" -#: src/player_window.c:980 src/splitpoints_window.c:1436 +#: src/player_window.c:976 src/splitpoints_window.c:1407 msgid "_Add" msgstr "_Hinzufügen" -#: src/player_window.c:987 +#: src/player_window.c:983 msgid "Add splitpoint at the current player position" msgstr "" -#: src/player_window.c:996 src/splitpoints_window.c:1134 -#: src/splitpoints_window.c:1479 +#: src/player_window.c:992 src/splitpoints_window.c:1121 +#: src/splitpoints_window.c:1450 msgid "Set trim splitpoints using silence detection" msgstr "Schnittpunte mittels Stille-detektion erzeugen" -#: src/player_window.c:1007 src/splitpoints_window.c:1193 -#: src/splitpoints_window.c:1489 +#: src/player_window.c:1003 src/splitpoints_window.c:1178 +#: src/splitpoints_window.c:1460 msgid "Set splitpoints from silence detection" msgstr "Schnittpunte mittels Stille-detektion erzeugen" -#: src/player_window.c:1012 +#: src/player_window.c:1008 msgid "Amplitude _wave" msgstr "Pegelkurve _wave" -#: src/player_window.c:1018 +#: src/player_window.c:1014 msgid "Shows the amplitude level wave" msgstr "Zeigt die Audio-Pegelkurve" -#: src/player_window.c:1021 +#: src/player_window.c:1017 msgid "_Connect" msgstr "_Verbinden" -#: src/player_window.c:1024 +#: src/player_window.c:1020 msgid "Connect to player" msgstr "Zum Abspielprogramm verbinden" -#: src/player_window.c:1027 +#: src/player_window.c:1023 msgid "_Disconnect" msgstr "Verbindung _trennen" -#: src/player_window.c:1030 +#: src/player_window.c:1026 msgid "Disconnect from player" msgstr "Verbindung zum Abspielprogramm trennen" -#: src/player_window.c:1153 +#: src/player_window.c:1160 #, c-format msgid "before %s" msgstr "vor %s" -#: src/player_window.c:1892 +#: src/player_window.c:1981 msgid "No available wave" msgstr "Wave ist nicht verfügbar" -#: src/player_window.c:2045 src/preferences_window.c:826 +#: src/player_window.c:2073 src/preferences_window.c:921 msgid "No wave interpolation" msgstr "Keine wave Interpolation " -#: src/player_window.c:2051 +#: src/player_window.c:2079 #, c-format msgid "Wave interpolation level %d" msgstr "Wave Interpolation level %d" -#: src/player_window.c:2131 +#: src/player_window.c:2141 msgid " Please wait for the process to finish ..." msgstr "" -#: src/player_window.c:2153 +#: src/player_window.c:2163 msgid " Please wait ... currently computing Douglas Peucker filters." msgstr "" -#: src/player_window.c:2237 +#: src/player_window.c:2247 msgid " left click on splitpoint selects it, right click erases it" msgstr "" "Linksklick auf Teilungspunkt wählt aus, Rechtsklick löscht Teilungspunkt" -#: src/player_window.c:2242 +#: src/player_window.c:2252 msgid "" " left click + move changes song position, right click + move changes zoom" msgstr "" "Linksklick + Verschieben ändert die Position des Titels, Rechtsklick + " "Verschieben ändert den Vergrößerungsfaktor" -#: src/player_window.c:2248 +#: src/player_window.c:2258 msgid "" " left click on point + move changes point position, right click play preview" msgstr "" "Linksklick + Verschieben ändert die Position des Punktes, Rechtsklick spielt " "Vorschau ab" -#: src/player_window.c:2253 +#: src/player_window.c:2263 msgid " left click on rectangle checks/unchecks 'keep splitpoint'" msgstr "Linksklick aktiviert/deaktiviert »Teilungspunkt behalten«" -#: src/player_window.c:2678 -msgid " quick preview..." +#: src/player_window.c:2695 +#, fuzzy +msgid " preview..." msgstr " Schnellvorschau..." -#: src/player_window.c:3022 +#: src/player_window.c:3034 msgid "Splitpoints and amplitude wave v_iew" msgstr "" -#: src/player_window.c:3138 +#: src/player_window.c:3150 msgid "History" msgstr "Chronik" -#: src/player_window.c:3228 +#: src/player_window.c:3240 msgid "_Erase selected entries" msgstr "Ausgewählte _Einträge löschen" -#: src/player_window.c:3236 +#: src/player_window.c:3248 msgid "E_rase all history" msgstr "_Gesamte Chronik löschen" -#: src/player_window.c:3278 +#: src/player_window.c:3290 msgid "Files h_istory" msgstr "" -#: src/player_window.c:3404 -msgid " quick preview finished, song paused" +#: src/player_window.c:3330 +#, fuzzy +msgid " preview finished, song paused" msgstr "Schnellvorschau beendet, Wiedergabe pausiert" #: src/multiple_files_window.c:63 @@ -267,50 +284,50 @@ msgid "Choose files or directories" msgstr "" -#: src/multiple_files_window.c:100 src/main_window.c:691 +#: src/multiple_files_window.c:98 src/main_window.c:671 #, fuzzy msgid "mp3, ogg vorbis and flac files (*.mp3 *.ogg *.flac)" msgstr "mp3- und ogg-Dateien (*.mp3 *.ogg)" -#: src/multiple_files_window.c:110 src/main_window.c:701 +#: src/multiple_files_window.c:108 src/main_window.c:681 msgid "mp3 files (*.mp3)" msgstr "mp3-Dateien (*.mp3)" -#: src/multiple_files_window.c:116 src/main_window.c:707 +#: src/multiple_files_window.c:114 src/main_window.c:687 #, fuzzy msgid "ogg vorbis files (*.ogg)" msgstr "ogg-Dateien (*.ogg)" -#: src/multiple_files_window.c:122 src/main_window.c:713 +#: src/multiple_files_window.c:120 src/main_window.c:693 #, fuzzy msgid "flac files (*.flac)" msgstr "cue-Dateien (*.cue)" -#: src/multiple_files_window.c:129 +#: src/multiple_files_window.c:127 msgid "All Files" msgstr "Alle Dateien" -#: src/multiple_files_window.c:260 +#: src/multiple_files_window.c:258 msgid "_Add files or directories" msgstr "" -#: src/multiple_files_window.c:261 +#: src/multiple_files_window.c:259 msgid "Only the supported file types are added" msgstr "" -#: src/multiple_files_window.c:269 +#: src/multiple_files_window.c:267 msgid "_Remove selected" msgstr "" -#: src/multiple_files_window.c:279 src/splitpoints_window.c:1456 +#: src/multiple_files_window.c:277 src/splitpoints_window.c:1427 msgid "R_emove all" msgstr "_Alle löschen" -#: src/multiple_files_window.c:287 src/main_window.c:790 -msgid "Batch split !" +#: src/multiple_files_window.c:285 +msgid "Batch split" msgstr "" -#: src/multiple_files_window.c:288 +#: src/multiple_files_window.c:286 #, fuzzy msgid "Split all the files" msgstr "Dateien teilen" @@ -323,11 +340,11 @@ msgid "C_lear" msgstr "_Löschen" -#: src/messages_window.c:168 src/main_window.c:801 +#: src/messages_window.c:168 msgid "Messages history" msgstr "Chronik der Meldungen" -#: src/split_files_window.c:69 src/splitpoints_window.c:1956 +#: src/split_files_window.c:69 src/splitpoints_window.c:1911 msgid "Filename" msgstr "Dateiname" @@ -352,29 +369,29 @@ msgid "Album title" msgstr "Albumtitel" -#: src/freedb_window.c:169 src/freedb_window.c:477 +#: src/freedb_window.c:154 src/freedb_window.c:472 msgid "please wait... contacting tracktype.org" msgstr "Bitte warten - tracktype.org wird kontaktiert" -#: src/freedb_window.c:440 src/freedb_window.c:461 src/ui_manager.c:352 +#: src/freedb_window.c:435 src/freedb_window.c:456 src/ui_manager.c:372 #: src/splitpoints_window.c:671 src/splitpoints_window.c:792 #: src/splitpoints_window.c:842 msgid "description here" msgstr "Bitte Name eingeben" -#: src/freedb_window.c:565 +#: src/freedb_window.c:559 msgid "Search tracktype.org:" msgstr "Suchen auf tracktype.org:" -#: src/freedb_window.c:575 +#: src/freedb_window.c:569 msgid "_Search" msgstr "_Suchen" -#: src/freedb_window.c:604 +#: src/freedb_window.c:598 msgid "_Add splitpoints" msgstr "Teilungspunkte hinzu_fügen" -#: src/freedb_window.c:610 +#: src/freedb_window.c:604 msgid "Set splitpoints to the splitpoints table" msgstr "Teilungspunkte zur Tabelle hinzufügen" @@ -391,225 +408,225 @@ msgid " error: you already have the splitpoint in table" msgstr " Fehler: Schnittpunkt existiert bereits" -#: src/splitpoints_window.c:1159 src/splitpoints_window.c:1215 -#: src/preferences_window.c:497 +#: src/splitpoints_window.c:1146 src/splitpoints_window.c:1200 +#: src/preferences_window.c:519 msgid "Threshold level (dB):" msgstr "Schwelle (dB):" -#: src/splitpoints_window.c:1229 +#: src/splitpoints_window.c:1214 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end):" msgstr "Schnittpunkt-Versatz (0=Beginn der Stille und 1=Ende):" -#: src/splitpoints_window.c:1243 +#: src/splitpoints_window.c:1228 msgid "Number of tracks (0 means all tracks):" msgstr "Anzahl der Titel (0 bedeutet alle):" -#: src/splitpoints_window.c:1255 src/preferences_window.c:513 +#: src/splitpoints_window.c:1240 src/preferences_window.c:535 msgid "Minimum silence length (seconds):" msgstr "Mindestlänge der Stille (Sekunden):" -#: src/splitpoints_window.c:1267 +#: src/splitpoints_window.c:1252 msgid "Minimum track length (seconds):" msgstr "Mindestlänge des Liedes (Sekunden):" -#: src/splitpoints_window.c:1277 +#: src/splitpoints_window.c:1262 msgid "_Remove silence between tracks" msgstr "_Stille zwischen Titeln entfernen" -#: src/splitpoints_window.c:1429 +#: src/splitpoints_window.c:1400 msgid "Minutes:" msgstr "Minuten:" -#: src/splitpoints_window.c:1431 +#: src/splitpoints_window.c:1402 msgid "Seconds:" msgstr "Sekunden:" -#: src/splitpoints_window.c:1433 +#: src/splitpoints_window.c:1404 msgid "Hundredths:" msgstr "Hundertstel:" -#: src/splitpoints_window.c:1443 src/main_window.c:836 +#: src/splitpoints_window.c:1414 msgid "Add splitpoint" msgstr "Schnittpunkt hinzufügen" -#: src/splitpoints_window.c:1446 +#: src/splitpoints_window.c:1417 msgid "_Remove" msgstr "_Löschen" -#: src/splitpoints_window.c:1453 +#: src/splitpoints_window.c:1424 #, fuzzy msgid "Remove selected splitpoints" msgstr "Stille zwischen Titeln entfernen" -#: src/splitpoints_window.c:1463 +#: src/splitpoints_window.c:1434 #, fuzzy msgid "Remove all splitpoints" msgstr "Teilungspunkte trimmen" -#: src/splitpoints_window.c:1473 +#: src/splitpoints_window.c:1444 msgid "_Trim splitpoints" msgstr "Teilungspunkte trimmen" -#: src/splitpoints_window.c:1483 +#: src/splitpoints_window.c:1454 msgid "_Silence detection" msgstr "_Stille erkennen" -#: src/splitpoints_window.c:1561 src/mp3splt-gtk.c:119 +#: src/splitpoints_window.c:1534 src/mp3splt-gtk.c:129 msgid " finished" msgstr " Beendet" -#: src/splitpoints_window.c:1635 +#: src/splitpoints_window.c:1608 msgid " cannot preview, not connected to player" msgstr " Vorschau nicht möglich: Keine Verbindung zum Abspielprogramm" -#: src/splitpoints_window.c:1653 +#: src/splitpoints_window.c:1626 msgid " cannot split preview last splitpoint" msgstr " Vorschau für letzten Teilungspunkt nicht möglich" -#: src/splitpoints_window.c:1824 +#: src/splitpoints_window.c:1797 msgid "Clone all tags" msgstr "" -#: src/splitpoints_window.c:1832 +#: src/splitpoints_window.c:1803 #, fuzzy msgid "Clone title" msgstr "Albumtitel" -#: src/splitpoints_window.c:1838 +#: src/splitpoints_window.c:1807 msgid "Clone artist" msgstr "" -#: src/splitpoints_window.c:1844 +#: src/splitpoints_window.c:1811 msgid "Clone album" msgstr "" -#: src/splitpoints_window.c:1850 +#: src/splitpoints_window.c:1815 msgid "Clone genre" msgstr "" -#: src/splitpoints_window.c:1856 +#: src/splitpoints_window.c:1819 msgid "Clone year" msgstr "" -#: src/splitpoints_window.c:1862 +#: src/splitpoints_window.c:1823 msgid "Clone track" msgstr "" -#: src/splitpoints_window.c:1868 +#: src/splitpoints_window.c:1827 msgid "Clone comment" msgstr "" -#: src/splitpoints_window.c:1876 +#: src/splitpoints_window.c:1833 msgid "Auto-increment track" msgstr "" -#: src/splitpoints_window.c:1948 +#: src/splitpoints_window.c:1903 msgid "Keep" msgstr "Behalten" -#: src/splitpoints_window.c:1964 +#: src/splitpoints_window.c:1919 msgid "Secs" msgstr "Sek" -#: src/splitpoints_window.c:1972 +#: src/splitpoints_window.c:1927 msgid "Mins" msgstr "Min" -#: src/splitpoints_window.c:1980 +#: src/splitpoints_window.c:1935 msgid "Hundr" msgstr "1/100s" -#: src/splitpoints_window.c:1988 +#: src/splitpoints_window.c:1943 msgid "Length" msgstr "Länge" -#: src/splitpoints_window.c:1995 +#: src/splitpoints_window.c:1950 msgid "LiveP" msgstr "LiveP" -#: src/splitpoints_window.c:2003 +#: src/splitpoints_window.c:1958 msgid "SplitP" msgstr "SplitP" -#: src/splitpoints_window.c:2053 +#: src/splitpoints_window.c:2008 msgid "Title" msgstr "" -#: src/splitpoints_window.c:2056 +#: src/splitpoints_window.c:2011 #, fuzzy msgid "Artist" msgstr "<künstler>: " -#: src/splitpoints_window.c:2059 +#: src/splitpoints_window.c:2014 #, fuzzy msgid "Album" msgstr "Albumtitel" -#: src/splitpoints_window.c:2062 +#: src/splitpoints_window.c:2017 #, fuzzy msgid "Genre" msgstr "Genre tag:" -#: src/splitpoints_window.c:2066 +#: src/splitpoints_window.c:2021 #, fuzzy msgid "Comment" msgstr "Kommentar-Tag" -#: src/splitpoints_window.c:2069 +#: src/splitpoints_window.c:2024 msgid "Year" msgstr "" -#: src/splitpoints_window.c:2073 +#: src/splitpoints_window.c:2028 msgid "Track" msgstr "" -#: src/preferences_window.c:249 +#: src/preferences_window.c:247 msgid "<b>Choose language (requires restart)</b>" msgstr "<b>Sprache wählen (erfordert Neustart)</b>" -#: src/preferences_window.c:358 +#: src/preferences_window.c:357 msgid "Browse directory ..." msgstr "" -#: src/preferences_window.c:376 +#: src/preferences_window.c:375 msgid "Example for the single file split:" msgstr "" -#: src/preferences_window.c:415 +#: src/preferences_window.c:414 #, fuzzy msgid "Custom directory" msgstr "Benutzerdefiniert" -#: src/preferences_window.c:417 +#: src/preferences_window.c:416 msgid "Create split files in a custom directory" msgstr "" -#: src/preferences_window.c:422 +#: src/preferences_window.c:421 msgid "Input file directory" msgstr "" -#: src/preferences_window.c:425 +#: src/preferences_window.c:424 msgid "Create split files in the same directory as the file being split" msgstr "" -#: src/preferences_window.c:431 +#: src/preferences_window.c:430 msgid "<b>Directory for split files</b>" msgstr "<b>Ordner für Dateiausgabe</b>" -#: src/preferences_window.c:444 +#: src/preferences_window.c:455 msgid "_Splitpoint name from filename (manual single file split only)" msgstr "" -#: src/preferences_window.c:446 +#: src/preferences_window.c:457 #, fuzzy msgid "Name newly added splitpoints as the input file" msgstr "Gleiche Tag-Version wie Eingabedatei" -#: src/preferences_window.c:454 +#: src/preferences_window.c:465 msgid "Create directories from _filenames " msgstr "" -#: src/preferences_window.c:457 +#: src/preferences_window.c:468 msgid "" "If the splitpoint name is 'a/b/output', the directory chain 'a/b' is created " "in the output\n" @@ -617,116 +634,160 @@ "'<output_directory>/a/b' directory" msgstr "" -#: src/preferences_window.c:467 +#: src/preferences_window.c:478 msgid "F_rame mode (useful for mp3 VBR) (mp3 only)" msgstr "F_rame-Modus (nützlich für mp3-VBR) (nur für mp3)" -#: src/preferences_window.c:469 +#: src/preferences_window.c:480 msgid "" "The split is slower with this option, but some mp3 files having\n" "Variable Bit Rate need this mode to be enabled" msgstr "" -#: src/preferences_window.c:476 +#: src/preferences_window.c:488 +msgid "_[Experimental] Bit reservoir handling for gapless playback (mp3 only)" +msgstr "" + +#: src/preferences_window.c:490 +msgid "" +"Split files will play gapless only on players supporting the LAME tag delay " +"and padding values\n" +"Gapless players examples: cmus, mpg123, foobar2000" +msgstr "" + +#: src/preferences_window.c:498 msgid "_Auto-adjust mode (use silence detection to auto-adjust splitpoints)" msgstr "" -#: src/preferences_window.c:479 +#: src/preferences_window.c:501 msgid "" "Splitpoints will be adjusted to match silences (if found)\n" "This mode requires the frame mode" msgstr "" -#: src/preferences_window.c:528 +#: src/preferences_window.c:550 msgid "Cutpoint offset (0 is the begin of silence and 1 the end):" msgstr "Teilungspunkt-Versatz (0 ist Beginn der Stille und 1 Ende):" -#: src/preferences_window.c:545 +#: src/preferences_window.c:567 msgid "Gap level (seconds around splitpoint to search for silence):" msgstr "Pause (Sekunden um den Teilungspunkt zur Suche nach Stille):" -#: src/preferences_window.c:562 +#: src/preferences_window.c:584 msgid "Set _default split options" msgstr "Standard-_Teilungsoptionen festlegen" -#: src/preferences_window.c:567 +#: src/preferences_window.c:589 msgid "<b>Split options</b>" msgstr "<b>Teilungsoptionen</b>" -#: src/preferences_window.c:630 +#: src/preferences_window.c:677 msgid "Player:" msgstr "Abspieler:" -#: src/preferences_window.c:649 +#: src/preferences_window.c:696 msgid "Refresh player every " msgstr "Player aktualisieren jede" -#: src/preferences_window.c:650 +#: src/preferences_window.c:697 src/preferences_window.c:725 msgid "milliseconds." msgstr "millisekunden." -#: src/preferences_window.c:652 +#: src/preferences_window.c:699 msgid "\t(higher refresh rate decreases CPU usage - default is 200)" msgstr "" "»(Durch Höhere Bildwiederholrate sinkt die CPU-Auslastung - Standard ist " "200) " -#: src/preferences_window.c:658 +#: src/preferences_window.c:710 +msgid "Stop GStreamer preview" +msgstr "" + +#: src/preferences_window.c:710 +#, fuzzy +msgid "milliseconds before the end." +msgstr "millisekunden." + +#: src/preferences_window.c:724 +msgid "Small seek jumps for " +msgstr "" + +#: src/preferences_window.c:733 +msgid "Seek jumps for " +msgstr "" + +#: src/preferences_window.c:734 src/preferences_window.c:743 +#, fuzzy +msgid "milliseconds. (0=auto)" +msgstr "millisekunden." + +#: src/preferences_window.c:742 +msgid "Big seek jumps for " +msgstr "" + +#: src/preferences_window.c:753 +msgid "Seek times" +msgstr "" + +#: src/preferences_window.c:761 msgid "<b>Player options</b>" msgstr "<b>Wiedergabeoptionen</b>" -#: src/preferences_window.c:777 -msgid "" -"Wave preview is only available if the amplitude wave is shown in the player" +#: src/preferences_window.c:872 +msgid "Only available if the amplitude wave is shown in the player" msgstr "" -#: src/preferences_window.c:817 +#: src/preferences_window.c:902 +msgid "Wave preview" +msgstr "" + +#: src/preferences_window.c:912 #, c-format msgid "%d minute(s) window" msgstr "%d minute(n) fenster" -#: src/preferences_window.c:822 +#: src/preferences_window.c:917 #, c-format msgid "Wave interpolation level %d with threshold of %.1lf" msgstr "" -#: src/preferences_window.c:844 +#: src/preferences_window.c:939 msgid "Wave quality (higher is better but consumes more CPU):" msgstr "Wave-Qualität (je höher desto besser, aber verbraucht mehr CPU): " -#: src/preferences_window.c:863 +#: src/preferences_window.c:961 msgid "<b>Amplitude wave options</b>" msgstr "</b>Amplitude wave Optionen</b>" -#: src/preferences_window.c:920 +#: src/preferences_window.c:1054 msgid "Default format" msgstr "Standardformat" -#: src/preferences_window.c:927 +#: src/preferences_window.c:1061 msgid " Default output: " msgstr "" -#: src/preferences_window.c:933 +#: src/preferences_window.c:1067 msgid " CDDB, CUE and tracktype.org default: " msgstr "" -#: src/preferences_window.c:939 +#: src/preferences_window.c:1073 msgid " Split with silence detection default: " msgstr "" -#: src/preferences_window.c:945 +#: src/preferences_window.c:1079 msgid " Trim using silence detection default: " msgstr "" -#: src/preferences_window.c:951 +#: src/preferences_window.c:1085 msgid " Error mode default: " msgstr "" -#: src/preferences_window.c:966 +#: src/preferences_window.c:1100 msgid "Custom format" msgstr "Benutzerdefiniert" -#: src/preferences_window.c:985 +#: src/preferences_window.c:1119 msgid "" " @A: performer if found, otherwise artist\n" " @a: artist name\n" @@ -743,6 +804,8 @@ "number) **\n" " @U: track tag number as uppercase letter **\n" " @f: input filename (without extension)\n" +" @d: last directory of the input filename or the filename itself if no " +"directory\n" " @m, @s or @h: the number of minutes, seconds or hundreths of seconds of " "the start splitpoint **\n" " @M, @S or @H: the number of minutes, seconds or hundreths of seconds of " @@ -751,84 +814,84 @@ " (**) a digit may follow for the number of digits to output\n" msgstr "" -#: src/preferences_window.c:1010 +#: src/preferences_window.c:1145 msgid "<b>Output format for batch split and when importing splitpoints</b>" msgstr "" -#: src/preferences_window.c:1060 +#: src/preferences_window.c:1194 msgid "Original file tags" msgstr "Originale Datei-Tags" -#: src/preferences_window.c:1063 +#: src/preferences_window.c:1197 #, fuzzy msgid "Custom tags (from the splitpoints table)" msgstr "Teilungspunkte zur Tabelle hinzufügen" -#: src/preferences_window.c:1066 +#: src/preferences_window.c:1200 msgid "No tags" msgstr "Keine Tags" -#: src/preferences_window.c:1069 +#: src/preferences_window.c:1203 msgid "Extract tags from filename" msgstr "Tags aus Dateinamen entpacken" -#: src/preferences_window.c:1078 +#: src/preferences_window.c:1212 msgid "<b>Split files tags</b>" msgstr "<b>Tags in ausgegebenen Dateien</b>" -#: src/preferences_window.c:1100 +#: src/preferences_window.c:1234 msgid "No change" msgstr "Keine Änderung" -#: src/preferences_window.c:1101 +#: src/preferences_window.c:1235 msgid "lowercase" msgstr "kleinschreibung" -#: src/preferences_window.c:1102 +#: src/preferences_window.c:1236 msgid "UPPERCASE" msgstr "GROSSSCHREIBUNG" -#: src/preferences_window.c:1103 +#: src/preferences_window.c:1237 msgid "First uppercase" msgstr "Großschreibung/erster Buchstabe" -#: src/preferences_window.c:1104 +#: src/preferences_window.c:1238 msgid "Word Uppercase" msgstr "Großschreibung/Wort" -#: src/preferences_window.c:1126 +#: src/preferences_window.c:1284 msgid "<artist>: " msgstr "<künstler>: " -#: src/preferences_window.c:1135 +#: src/preferences_window.c:1293 msgid "<album>: " msgstr "<album>: " -#: src/preferences_window.c:1145 +#: src/preferences_window.c:1303 msgid "<title>: " msgstr "<titel>: " -#: src/preferences_window.c:1154 +#: src/preferences_window.c:1312 msgid "<genre>: " msgstr "<genre>: " -#: src/preferences_window.c:1163 +#: src/preferences_window.c:1321 msgid "<comment>: " msgstr "<kommentar>: " -#: src/preferences_window.c:1172 +#: src/preferences_window.c:1330 msgid "<year>: " msgstr "<jahr>: " -#: src/preferences_window.c:1181 +#: src/preferences_window.c:1339 msgid "<track>: " msgstr "<lied>: " -#: src/preferences_window.c:1210 +#: src/preferences_window.c:1379 msgid "Regular expression:" msgstr "Regulärer Ausdruck:" -#: src/preferences_window.c:1213 +#: src/preferences_window.c:1382 msgid "" "Above enter PERL-like regular expression using named subgroups.\n" "Following names are recognized:\n" @@ -846,575 +909,467 @@ "<liednummer>) - Nummer des aktuellen Titels ⏎ (?<jahr>) - \t\n" "Jahr der Emission ⏎ (?<genre>) - genre⏎ (?<kommentar>) - kommentar" -#: src/preferences_window.c:1240 +#: src/preferences_window.c:1409 msgid "_Replace underscores by spaces" msgstr "Unterstriche du_rch Leerzeichen ersetzen" -#: src/preferences_window.c:1250 +#: src/preferences_window.c:1419 msgid "Artist text properties:" msgstr "Künstlertext-Eigenschaften:" -#: src/preferences_window.c:1255 +#: src/preferences_window.c:1424 msgid "Album text properties:" msgstr "Albumtext-Eigenschaften:" -#: src/preferences_window.c:1260 +#: src/preferences_window.c:1429 msgid "Title text properties:" msgstr "Titeltext-Eigenschaften:" -#: src/preferences_window.c:1265 +#: src/preferences_window.c:1434 msgid "Comment text properties:" msgstr "Kommentartext-Eigenschaften:" -#: src/preferences_window.c:1269 +#: src/preferences_window.c:1438 msgid "Genre tag:" msgstr "Genre tag:" -#: src/preferences_window.c:1273 +#: src/preferences_window.c:1442 msgid "Comment tag:" msgstr "Kommentar-Tag" -#: src/preferences_window.c:1275 +#: src/preferences_window.c:1444 msgid "Regular expression test" msgstr "Regulärer Ausdruckstest" -#: src/preferences_window.c:1291 +#: src/preferences_window.c:1460 msgid "_Test" msgstr "_Test" -#: src/preferences_window.c:1295 +#: src/preferences_window.c:1464 msgid "Sample filename:" msgstr "Beispiel-Dateiname:" -#: src/preferences_window.c:1300 +#: src/preferences_window.c:1469 msgid "Sample result:" msgstr "Beispiel-Ergebnis:" -#: src/preferences_window.c:1312 +#: src/preferences_window.c:1481 msgid "ID3v1 & ID3v2 tags" msgstr "ID3v1- und ID3v2-Tags" -#: src/preferences_window.c:1319 +#: src/preferences_window.c:1488 msgid "ID3v2 tags" msgstr "ID3v2-Tags" -#: src/preferences_window.c:1326 +#: src/preferences_window.c:1495 msgid "ID3v1 tags" msgstr "ID3v1-Tags" -#: src/preferences_window.c:1333 +#: src/preferences_window.c:1502 msgid "Same tags version as the input file" msgstr "Gleiche Tag-Version wie Eingabedatei" -#: src/preferences_window.c:1339 +#: src/preferences_window.c:1508 msgid "<b>Tags version (mp3 only)</b>" msgstr "<b>Tag-Version (nur für mp3)</b>" -#: src/preferences_window.c:1380 +#: src/preferences_window.c:1548 src/main_window.c:774 msgid "Split" msgstr "Teilung" -#: src/preferences_window.c:1385 +#: src/preferences_window.c:1553 msgid "Tags" msgstr "Tags" -#: src/preferences_window.c:1390 +#: src/preferences_window.c:1558 msgid "Player" msgstr "Abspieler" -#: src/preferences_window.c:1395 +#: src/preferences_window.c:1563 #, fuzzy msgid "Output format" msgstr "Benutzerdefiniert" -#: src/preferences_window.c:1401 +#: src/preferences_window.c:1569 msgid "Language" msgstr "Sprache" -#: src/split_mode_window.c:193 +#: src/split_mode_window.c:188 msgid "Use manual single file splitpoints" msgstr "" -#: src/split_mode_window.c:195 +#: src/split_mode_window.c:190 msgid "Split files using the manually defined splitpoints" msgstr "" -#: src/split_mode_window.c:205 +#: src/split_mode_window.c:200 msgid "Time" msgstr "Zeit" -#: src/split_mode_window.c:207 +#: src/split_mode_window.c:202 msgid "Split every fixed time length; last track will most likely be smaller" msgstr "" -#: src/split_mode_window.c:224 +#: src/split_mode_window.c:219 msgid "Split every" msgstr "" -#: src/split_mode_window.c:237 +#: src/split_mode_window.c:232 msgid "seconds." msgstr "" -#: src/split_mode_window.c:244 +#: src/split_mode_window.c:239 msgid "Equal time tracks" msgstr "Titel gleicher Länge" -#: src/split_mode_window.c:246 +#: src/split_mode_window.c:241 msgid "Create smaller tracks having exactly the same time length" msgstr "" -#: src/split_mode_window.c:261 +#: src/split_mode_window.c:256 msgid "Split in" msgstr "" -#: src/split_mode_window.c:275 +#: src/split_mode_window.c:270 msgid "equal tracks." msgstr "" -#: src/split_mode_window.c:282 +#: src/split_mode_window.c:277 msgid "Trim using silence detection" msgstr "Trimmen mit Stille erkennen Benutzung" -#: src/split_mode_window.c:284 +#: src/split_mode_window.c:279 msgid "" "Split by discarding silence from the begin and from the end\n" "If no silence is found, the output file is still created" msgstr "" -#: src/split_mode_window.c:302 src/split_mode_window.c:331 +#: src/split_mode_window.c:297 src/split_mode_window.c:326 msgid "Threshold level (dB) : " msgstr "Schwelle (dB):" -#: src/split_mode_window.c:313 +#: src/split_mode_window.c:308 msgid "Silence - split with silence detection" msgstr "Stille - Schnittpunte mittels Stille-Erkennung erzeugen" -#: src/split_mode_window.c:314 +#: src/split_mode_window.c:309 #, fuzzy msgid "Split where silence is found" msgstr "Stille - Schnittpunte mittels Stille-Erkennung erzeugen" -#: src/split_mode_window.c:343 +#: src/split_mode_window.c:338 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end) : " msgstr "Schnittpunkt-Versatz (0=Beginn der Stille und 1=Ende):" -#: src/split_mode_window.c:355 +#: src/split_mode_window.c:350 msgid "Number of tracks (0 means all tracks) : " msgstr "Anzahl der Titel (0 bedeutet alle):" -#: src/split_mode_window.c:367 +#: src/split_mode_window.c:362 msgid "Minimum silence length (seconds) : " msgstr "Mindestlänge der Stille (Sekunden):" -#: src/split_mode_window.c:379 +#: src/split_mode_window.c:374 msgid "Minimum track length (seconds) : " msgstr "Mindestlänge des Liedes (Sekunden):" -#: src/split_mode_window.c:389 +#: src/split_mode_window.c:384 msgid "Remove silence between tracks" msgstr "Stille zwischen Titeln entfernen" -#: src/split_mode_window.c:410 +#: src/split_mode_window.c:405 msgid "Wrap - split files created with mp3wrap or albumwrap (mp3 only)" msgstr "Wrap - mit mp3wrap oder albumwrap erzeugte Dateien teilen (nur mp3)" -#: src/split_mode_window.c:420 +#: src/split_mode_window.c:415 msgid "Synchronisation error mode (mp3 only)" msgstr "" -#: src/split_mode_window.c:422 +#: src/split_mode_window.c:417 msgid "" "Split where synchronisation errors are found\n" "Useful for splitting concatenated files" msgstr "" -#: src/mp3splt-gtk.c:102 -msgid " error: no files found in batch mode" +#: src/split_mode_window.c:428 +msgid "Internal sheet mode (CUE sheet for FLAC and ID3v2 chapters for MP3)" msgstr "" -#: src/mp3splt-gtk.c:278 -msgid " info: stopping the split process before exiting" -msgstr " Info: Teilungsvorgang wird vor dem Beenden abgebrochen" +#: src/split_mode_window.c:429 +msgid "Split using internal sheet" +msgstr "" -#: src/mp3splt-gtk.c:389 -#, c-format -msgid "Setting the output directory to %s.\n" +#: src/split_mode_window.c:439 +#, fuzzy +msgid "Use CUE file with similar name as the input file" +msgstr "Gleiche Tag-Version wie Eingabedatei" + +#: src/split_mode_window.c:441 +msgid "" +"Split using CUE file having similar name as the input file\n" +"Example: test.cue will be looked for when splitting test.mp3" msgstr "" -#: src/mp3splt-gtk.c:403 -#, c-format -msgid "Option -%c requires an argument.\n" -msgstr "Option -%c benötigt ein Argument.\n" +#: src/split_mode_window.c:452 +msgid "Use CDDB file with similar name as the input file" +msgstr "" -#: src/mp3splt-gtk.c:405 -#, c-format -msgid "Unknown option `-%c'.\n" -msgstr "Unbekannte Option »-%c«.\n" +#: src/split_mode_window.c:454 +msgid "" +"Split using CDDB file having similar name as the input file\n" +"Example: test.cddb will be looked for when splitting test.mp3" +msgstr "" -#: src/mp3splt-gtk.c:407 -#, c-format -msgid "Unknown option character `\\x%x'.\n" -msgstr "Unbekanntes Optionszeichen »\\x%x«.\n" +#: src/mp3splt-gtk.c:112 +msgid " error: no files found in batch mode" +msgstr "" -#: src/mp3splt-gtk.c:421 -#, c-format -msgid "Cannot open input file %s\n" -msgstr "Eingabedatei %s kann nicht geöffnet werden\n" +#: src/mp3splt-gtk.c:350 +msgid " info: stopping the split process before exiting" +msgstr " Info: Teilungsvorgang wird vor dem Beenden abgebrochen" -#: src/main_window.c:173 +#: src/main_window.c:170 msgid "Error launching external command" msgstr "Fehler beim Start von externen Befehl " -#: src/main_window.c:204 +#: src/main_window.c:203 msgid "using" msgstr "unter Verwendung von" -#: src/main_window.c:208 +#: src/main_window.c:207 msgid "release of " msgstr "Veröffentlichung von" -#: src/main_window.c:311 +#: src/main_window.c:310 msgid " info: stopping the split process.. please wait" msgstr " Info: Teilungsvorgang wird beendet, bitte warten" -#: src/main_window.c:319 src/main_window.c:778 -msgid "Preferences" -msgstr "Einstellungen" - -#: src/main_window.c:331 -msgid "TrackType" -msgstr "" - -#: src/main_window.c:346 src/main_window.c:781 -msgid "Split files" -msgstr "Dateien teilen" - -#: src/main_window.c:361 src/main_window.c:784 -msgid "Splitpoints" -msgstr "Teilungspunkte" - -#: src/main_window.c:432 +#: src/main_window.c:375 msgid " error: split in progress..." msgstr " Fehler: Teilung läuft..." -#: src/main_window.c:442 +#: src/main_window.c:385 msgid " error: no path of split selected" msgstr "" -#: src/main_window.c:725 -msgid "Choose File" -msgstr "Datei wählen" - -#: src/main_window.c:755 -msgid "_File" -msgstr "_Datei" - -#: src/main_window.c:756 -msgid "_View" -msgstr "" - -#: src/main_window.c:757 -msgid "_Player" -msgstr "" - -#: src/main_window.c:758 -msgid "_Help" -msgstr "_Hilfe" - -#: src/main_window.c:760 -msgid "_Open single file..." -msgstr "" - -#: src/main_window.c:760 -msgid "Open" -msgstr "Öffnen" - -#: src/main_window.c:764 -msgid "_Add files or directories to batch ..." -msgstr "" - -#: src/main_window.c:765 -msgid "Add files or directories to batch" -msgstr "" - -#: src/main_window.c:768 -msgid "_Import splitpoints from file..." -msgstr "" - -#: src/main_window.c:769 -msgid "Import splitpoints from file..." -msgstr "" - -#: src/main_window.c:771 -msgid "Import splitpoints from _TrackType.org..." -msgstr "" - -#: src/main_window.c:772 -msgid "Import splitpoints from TrackType.org..." -msgstr "" - -#: src/main_window.c:775 -msgid "_Export splitpoints..." -msgstr "_Exportiere die Teilungspunkte..." - -#: src/main_window.c:776 -msgid "Export splitpoints" -msgstr "" - -#: src/main_window.c:778 -msgid "_Preferences" -msgstr "" - -#: src/main_window.c:781 -msgid "Split _files" -msgstr "" - -#: src/main_window.c:784 -msgid "_Splitpoints" +#: src/main_window.c:729 +msgid "Open file ..." msgstr "" -#: src/main_window.c:787 -msgid "_Split !" -msgstr "_Teilen!" - -#: src/main_window.c:787 src/main_window.c:998 -msgid "Split !" -msgstr "Teilen!" +#: src/main_window.c:777 +#, fuzzy +msgid "Split the current file" +msgstr "Dateien teilen" -#: src/main_window.c:790 -msgid "_Batch split !" +#: src/main_window.c:786 +msgid "Manual single file split" msgstr "" -#: src/main_window.c:793 -msgid "_Quit" -msgstr "_Beenden" - -#: src/main_window.c:793 -msgid "Quit" -msgstr "Beenden" - -#: src/main_window.c:797 -msgid "_Contents" -msgstr "_Inhalt" - -#: src/main_window.c:797 -msgid "Contents" -msgstr "Inhalt" - -#: src/main_window.c:801 -msgid "Messages _history" -msgstr "C_hronik der Meldungen" - -#: src/main_window.c:804 -msgid "_About" -msgstr "_Info" - #: src/main_window.c:804 -msgid "About" -msgstr "Info" - -#: src/main_window.c:808 -msgid "P_ause / Play" -msgstr "" - -#: src/main_window.c:808 -msgid "Pause/Play" -msgstr "" - -#: src/main_window.c:811 -msgid "Seek _forward" -msgstr "" - -#: src/main_window.c:811 -msgid "Seek forward" -msgstr "" - -#: src/main_window.c:813 -msgid "Seek _backward" -msgstr "" - -#: src/main_window.c:813 -msgid "Seek backward" -msgstr "" - -#: src/main_window.c:816 -msgid "Small seek f_orward" -msgstr "" - -#: src/main_window.c:816 -msgid "Small seek forward" -msgstr "" - -#: src/main_window.c:818 -msgid "Small seek back_ward" -msgstr "" - -#: src/main_window.c:818 -msgid "Small seek backward" -msgstr "" - -#: src/main_window.c:821 -msgid "Big seek fo_rward" -msgstr "" - -#: src/main_window.c:821 -msgid "Big seek forward" +msgid "Batch & automatic split" msgstr "" -#: src/main_window.c:823 -msgid "Big seek bac_kward" -msgstr "" +#: src/main_window.c:822 +msgid "S_top" +msgstr "S_top" -#: src/main_window.c:823 -msgid "Big seek backward" +#: src/main_window.c:1089 +#, c-format +msgid "Setting the output directory to %s.\n" msgstr "" -#: src/main_window.c:826 -msgid "Seek to _next splitpoint" -msgstr "" +#: src/main_window.c:1103 +#, c-format +msgid "Option -%c requires an argument.\n" +msgstr "Option -%c benötigt ein Argument.\n" -#: src/main_window.c:827 -msgid "Seek to next splitpoint" -msgstr "" +#: src/main_window.c:1105 +#, c-format +msgid "Unknown option `-%c'.\n" +msgstr "Unbekannte Option »-%c«.\n" -#: src/main_window.c:828 -msgid "Seek to _previous splitpoint" -msgstr "" +#: src/main_window.c:1107 +#, c-format +msgid "Unknown option character `\\x%x'.\n" +msgstr "Unbekanntes Optionszeichen »\\x%x«.\n" -#: src/main_window.c:829 -msgid "Seek to previous splitpoint" -msgstr "" +#: src/main_window.c:1121 +#, c-format +msgid "Cannot open input file %s\n" +msgstr "Eingabedatei %s kann nicht geöffnet werden\n" -#: src/main_window.c:832 -#, fuzzy -msgid "_Quick preview before closest splitpoint" -msgstr " Vorschau für letzten Teilungspunkt nicht möglich" +#: src/main_window.c:1164 +msgid "Choose File" +msgstr "Datei wählen" -#: src/main_window.c:832 +#: src/main_window.c:1168 src/import.c:61 #, fuzzy -msgid "Quick preview before closest splitpoint" -msgstr " Vorschau für letzten Teilungspunkt nicht möglich" - -#: src/main_window.c:835 -msgid "Add _splitpoint" -msgstr "" - -#: src/main_window.c:838 -msgid "_Delete closest splitpoint" -msgstr "" - -#: src/main_window.c:839 -msgid "Delete closest splitpoint" -msgstr "" - -#: src/main_window.c:841 -msgid "Zoom _in" -msgstr "" - -#: src/main_window.c:841 -msgid "Zoom in" -msgstr "" +msgid "_Open" +msgstr "Öffnen" -#: src/main_window.c:842 -msgid "Zoom _out" +#: src/main_window.c:1208 +msgid "TrackType" msgstr "" -#: src/main_window.c:842 -msgid "Zoom out" -msgstr "" +#: src/main_window.c:1225 +msgid "Preferences" +msgstr "Einstellungen" -#: src/main_window.c:953 -msgid "Open file ..." -msgstr "" +#: src/main_window.c:1257 +msgid "Splitpoints" +msgstr "Teilungspunkte" -#: src/main_window.c:1001 -#, fuzzy -msgid "Split the current file" +#: src/main_window.c:1273 +msgid "Split files" msgstr "Dateien teilen" -#: src/main_window.c:1010 -msgid "Manual single file split" -msgstr "" - -#: src/main_window.c:1028 -msgid "Batch & automatic split" -msgstr "" - -#: src/main_window.c:1048 -msgid "S_top" -msgstr "S_top" - #: src/libmp3splt_manager.c:71 #, c-format msgid " File '%s' created" msgstr "Datei »%s« wurde erzeugt" -#: src/libmp3splt_manager.c:182 +#: src/libmp3splt_manager.c:166 #, c-format msgid " preparing \"%s\" (%d of %d)" msgstr "»%s« wird vorbereitet (%d von %d)" -#: src/libmp3splt_manager.c:188 +#: src/libmp3splt_manager.c:172 #, c-format msgid " creating \"%s\" (%d of %d)" msgstr "»%s« wird erzeugt (%d von %d)" -#: src/libmp3splt_manager.c:194 +#: src/libmp3splt_manager.c:178 msgid " searching for sync errors..." msgstr " Nach Synchronisationsfehlern wird gesucht …" -#: src/libmp3splt_manager.c:199 +#: src/libmp3splt_manager.c:183 msgid "Computing amplitude wave data..." msgstr "" -#: src/libmp3splt_manager.c:204 +#: src/libmp3splt_manager.c:188 #, c-format msgid "S: %02d, Level: %.2f dB; scanning for silence..." msgstr "S: %02d, Pegel: %.2f dB; nach Stille wird gesucht …" -#: src/import.c:55 +#: src/import.c:56 msgid "Choose file to import" msgstr "Datei zum Importieren wählen" -#: src/import.c:207 -msgid "CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt)" +#: src/import.c:271 +#, fuzzy +msgid "" +"CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt), internal sheet (*." +"flac), chapters (*.mp3)" msgstr "CDDB (*.cddb), CUE (*.cue), Audacity-Labels (*.txt)" -#: src/import.c:211 +#: src/import.c:275 msgid "CDDB files (*.cddb)" msgstr "CDDB-Dateien (*.cddb)" -#: src/import.c:213 +#: src/import.c:277 msgid "CUE files (*.cue)" msgstr "CUE-Dateien (*.cue)" -#: src/import.c:215 +#: src/import.c:279 msgid "Audacity labels files (*.txt)" msgstr "Audacity-Labeldateien (*.txt)" -#: src/import.c:217 +#: src/import.c:281 +msgid "FLAC internal sheet (*.flac)" +msgstr "" + +#: src/import.c:283 +#, fuzzy +msgid "ID3v2 chapters (*.mp3)" +msgstr "mp3-Dateien (*.mp3)" + +#: src/import.c:285 msgid "All files" msgstr "Alle Dateien" -#: src/import.c:348 +#: src/import.c:476 msgid "--- last cue splitpoint ---" msgstr "" -#: src/gstreamer_control.c:73 +#: src/gstreamer_control.c:71 #, c-format msgid "gstreamer error: %s" msgstr "Gstreamer-Fehler: %s" -#: src/gstreamer_control.c:99 +#: src/gstreamer_control.c:97 #, c-format msgid "Warning: %s" msgstr "Warnung: %s" -#: src/gstreamer_control.c:125 +#: src/gstreamer_control.c:123 #, c-format msgid "Info: %s" msgstr "Info: %s" -#: src/gstreamer_control.c:369 +#: src/gstreamer_control.c:354 msgid " error: cannot create gstreamer playbin\n" msgstr "Fehler: gstreamer-playbin kann nicht erzeugt werden\n" + +#~ msgid "Split !" +#~ msgstr "Teilen!" + +#~ msgid "_File" +#~ msgstr "_Datei" + +#~ msgid "_Help" +#~ msgstr "_Hilfe" + +#~ msgid "_Export splitpoints..." +#~ msgstr "_Exportiere die Teilungspunkte..." + +#~ msgid "_Split !" +#~ msgstr "_Teilen!" + +#~ msgid "_Quit" +#~ msgstr "_Beenden" + +#~ msgid "Quit" +#~ msgstr "Beenden" + +#~ msgid "_Contents" +#~ msgstr "_Inhalt" + +#~ msgid "Contents" +#~ msgstr "Inhalt" + +#~ msgid "Messages _history" +#~ msgstr "C_hronik der Meldungen" + +#~ msgid "_About" +#~ msgstr "_Info" + +#~ msgid "About" +#~ msgstr "Info" + +#, fuzzy +#~ msgid "Preview before c_losest splitpoint" +#~ msgstr " Vorschau für letzten Teilungspunkt nicht möglich" + +#, fuzzy +#~ msgid "Preview before closest splitpoint" +#~ msgstr " Vorschau für letzten Teilungspunkt nicht möglich" + +#, fuzzy +#~ msgid "Preview clos_est splitpoint" +#~ msgstr " Vorschau für letzten Teilungspunkt nicht möglich" + +#, fuzzy +#~ msgid "Preview closest splitpoint" +#~ msgstr " Vorschau für letzten Teilungspunkt nicht möglich" + +#, fuzzy +#~ msgid "Preview _closest splitpoint & pause" +#~ msgstr " Vorschau für letzten Teilungspunkt nicht möglich" + +#, fuzzy +#~ msgid "Preview closest splitpoint & pause" +#~ msgstr " Vorschau für letzten Teilungspunkt nicht möglich" + +#, fuzzy +#~ msgid "_Quick preview before closest splitpoint" +#~ msgstr " Vorschau für letzten Teilungspunkt nicht möglich" Binary files /tmp/tmpA90wb_/LJUs5HNncE/mp3splt-gtk-0.9/po/es_CL.gmo and /tmp/tmpA90wb_/V0ZBgpNw8L/mp3splt-gtk-0.9.2/po/es_CL.gmo differ diff -Nru mp3splt-gtk-0.9/po/es_CL.po mp3splt-gtk-0.9.2/po/es_CL.po --- mp3splt-gtk-0.9/po/es_CL.po 2013-07-20 07:11:45.000000000 +0000 +++ mp3splt-gtk-0.9.2/po/es_CL.po 2014-11-09 16:50:48.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: mp3splt-gtk\n" "Report-Msgid-Bugs-To: io_alex_2004@users.sourceforge.net\n" -"POT-Creation-Date: 2013-07-20 09:11+0200\n" +"POT-Creation-Date: 2014-11-09 17:50+0100\n" "PO-Revision-Date: 2013-04-29 08:45+0000\n" "Last-Translator: Peter Pall <gunter@peterpall.de>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -19,40 +19,50 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/audacious_control.c:66 src/snackamp_control.c:337 -#: src/gstreamer_control.c:228 +#: src/gstreamer_control.c:217 msgid "stereo" msgstr "estéreo" #: src/audacious_control.c:70 src/snackamp_control.c:341 -#: src/gstreamer_control.c:232 +#: src/gstreamer_control.c:221 msgid "mono" msgstr "mono" #: src/audacious_control.c:73 src/snackamp_control.c:344 -#: src/gstreamer_control.c:198 +#: src/gstreamer_control.c:190 msgid "Kbps" msgstr "Kbps." #: src/audacious_control.c:74 src/snackamp_control.c:345 -#: src/gstreamer_control.c:199 +#: src/gstreamer_control.c:191 msgid "Khz" msgstr "Khz" -#: src/utilities.c:87 +#: src/utilities.c:86 #, c-format msgid "Processing file '%s' ..." msgstr "Procesando archivo '%s'..." -#: src/export.c:93 +#: src/export.c:154 #, fuzzy msgid "Cue filename to export" msgstr "Escoja un archivo a importar" -#: src/export.c:105 +#: src/export.c:157 src/multiple_files_window.c:83 +#: src/splitpoints_window.c:1126 src/splitpoints_window.c:1183 +#: src/main_window.c:1166 src/import.c:59 +msgid "_Cancel" +msgstr "" + +#: src/export.c:159 +msgid "_Save" +msgstr "" + +#: src/export.c:166 msgid "cue files (*.cue)" msgstr "" -#: src/widgets_helper.c:428 +#: src/widgets_helper.c:401 msgid "_Close" msgstr "" @@ -60,7 +70,7 @@ msgid "Processing Douglas-Peucker filters ..." msgstr "" -#: src/player_window.c:580 +#: src/player_window.c:576 msgid "" "\n" " Cannot connect to snackAmp player.\n" @@ -94,7 +104,7 @@ "Sólo se admite el puerto por defecto por ahora (8775)\n" "Después de eso, reinicie snackAmp y mp3split-gtk funcionará.\n" -#: src/player_window.c:595 +#: src/player_window.c:591 msgid "" "\n" " Cannot connect to Audacious player.\n" @@ -113,146 +123,153 @@ "Si no sabe cómo hacer esto, inicie Audacious manualmente y luego intente " "conectar.\n" -#: src/player_window.c:603 src/player_window.c:607 +#: src/player_window.c:599 src/player_window.c:603 msgid "Cannot connect to player" msgstr "No se puede conectar al reproductor" -#: src/player_window.c:904 +#: src/player_window.c:604 src/splitpoints_window.c:1124 +#: src/splitpoints_window.c:1181 +msgid "_OK" +msgstr "" + +#: src/player_window.c:900 msgid "Previous track" msgstr "" -#: src/player_window.c:922 +#: src/player_window.c:918 msgid "Play" msgstr "Reproducir" -#: src/player_window.c:939 +#: src/player_window.c:935 msgid "Pause" msgstr "Pausa" -#: src/player_window.c:956 +#: src/player_window.c:952 msgid "Stop" msgstr "Detener" -#: src/player_window.c:973 +#: src/player_window.c:969 msgid "Next track" msgstr "" -#: src/player_window.c:980 src/splitpoints_window.c:1436 +#: src/player_window.c:976 src/splitpoints_window.c:1407 msgid "_Add" msgstr "_Añadir" -#: src/player_window.c:987 +#: src/player_window.c:983 msgid "Add splitpoint at the current player position" msgstr "" -#: src/player_window.c:996 src/splitpoints_window.c:1134 -#: src/splitpoints_window.c:1479 +#: src/player_window.c:992 src/splitpoints_window.c:1121 +#: src/splitpoints_window.c:1450 msgid "Set trim splitpoints using silence detection" msgstr "" -#: src/player_window.c:1007 src/splitpoints_window.c:1193 -#: src/splitpoints_window.c:1489 +#: src/player_window.c:1003 src/splitpoints_window.c:1178 +#: src/splitpoints_window.c:1460 msgid "Set splitpoints from silence detection" msgstr "Establecer puntos de divisiones desde detección de silencio" -#: src/player_window.c:1012 +#: src/player_window.c:1008 msgid "Amplitude _wave" msgstr "" -#: src/player_window.c:1018 +#: src/player_window.c:1014 msgid "Shows the amplitude level wave" msgstr "Muestra el nivel de amplitud de onda" -#: src/player_window.c:1021 +#: src/player_window.c:1017 msgid "_Connect" msgstr "_Conectar" -#: src/player_window.c:1024 +#: src/player_window.c:1020 msgid "Connect to player" msgstr "Conectar al reproductor" -#: src/player_window.c:1027 +#: src/player_window.c:1023 msgid "_Disconnect" msgstr "_Desconectar" -#: src/player_window.c:1030 +#: src/player_window.c:1026 msgid "Disconnect from player" msgstr "Desconectar el reproductor" -#: src/player_window.c:1153 +#: src/player_window.c:1160 #, c-format msgid "before %s" msgstr "antes de %s" -#: src/player_window.c:1892 +#: src/player_window.c:1981 msgid "No available wave" msgstr "" -#: src/player_window.c:2045 src/preferences_window.c:826 +#: src/player_window.c:2073 src/preferences_window.c:921 msgid "No wave interpolation" msgstr "" -#: src/player_window.c:2051 +#: src/player_window.c:2079 #, c-format msgid "Wave interpolation level %d" msgstr "" -#: src/player_window.c:2131 +#: src/player_window.c:2141 msgid " Please wait for the process to finish ..." msgstr "" -#: src/player_window.c:2153 +#: src/player_window.c:2163 msgid " Please wait ... currently computing Douglas Peucker filters." msgstr "" -#: src/player_window.c:2237 +#: src/player_window.c:2247 msgid " left click on splitpoint selects it, right click erases it" msgstr " clic en el punto de división lo selecciona, clic derecho lo elimina" -#: src/player_window.c:2242 +#: src/player_window.c:2252 msgid "" " left click + move changes song position, right click + move changes zoom" msgstr "" " clic + mover cambia la posición de la canción, clic derecho + mover cambia " "el zoom" -#: src/player_window.c:2248 +#: src/player_window.c:2258 msgid "" " left click on point + move changes point position, right click play preview" msgstr "" " clic en el punto + mover cambia la posición del punto, clic derecho " "reproduce la vista previa" -#: src/player_window.c:2253 +#: src/player_window.c:2263 msgid " left click on rectangle checks/unchecks 'keep splitpoint'" msgstr " clic en el rectángulo marca/desmarca 'mantener punto de división'" -#: src/player_window.c:2678 -msgid " quick preview..." +#: src/player_window.c:2695 +#, fuzzy +msgid " preview..." msgstr " vista previa rápida..." -#: src/player_window.c:3022 +#: src/player_window.c:3034 msgid "Splitpoints and amplitude wave v_iew" msgstr "" -#: src/player_window.c:3138 +#: src/player_window.c:3150 msgid "History" msgstr "Historial" -#: src/player_window.c:3228 +#: src/player_window.c:3240 msgid "_Erase selected entries" msgstr "_Eliminar entradas seleccionadas" -#: src/player_window.c:3236 +#: src/player_window.c:3248 msgid "E_rase all history" msgstr "Elimina_r todo el historial" -#: src/player_window.c:3278 +#: src/player_window.c:3290 msgid "Files h_istory" msgstr "" -#: src/player_window.c:3404 -msgid " quick preview finished, song paused" +#: src/player_window.c:3330 +#, fuzzy +msgid " preview finished, song paused" msgstr " vista previa rápida terminada, canción pausada" #: src/multiple_files_window.c:63 @@ -263,50 +280,50 @@ msgid "Choose files or directories" msgstr "" -#: src/multiple_files_window.c:100 src/main_window.c:691 +#: src/multiple_files_window.c:98 src/main_window.c:671 #, fuzzy msgid "mp3, ogg vorbis and flac files (*.mp3 *.ogg *.flac)" msgstr "archivos mp3 y ogg (*.mp3 *.ogg)" -#: src/multiple_files_window.c:110 src/main_window.c:701 +#: src/multiple_files_window.c:108 src/main_window.c:681 msgid "mp3 files (*.mp3)" msgstr "mp3 (*.mp3)" -#: src/multiple_files_window.c:116 src/main_window.c:707 +#: src/multiple_files_window.c:114 src/main_window.c:687 #, fuzzy msgid "ogg vorbis files (*.ogg)" msgstr "ogg (*.ogg)" -#: src/multiple_files_window.c:122 src/main_window.c:713 +#: src/multiple_files_window.c:120 src/main_window.c:693 #, fuzzy msgid "flac files (*.flac)" msgstr "Archivos CUE (*.cue)" -#: src/multiple_files_window.c:129 +#: src/multiple_files_window.c:127 msgid "All Files" msgstr "Todos los archivos" -#: src/multiple_files_window.c:260 +#: src/multiple_files_window.c:258 msgid "_Add files or directories" msgstr "" -#: src/multiple_files_window.c:261 +#: src/multiple_files_window.c:259 msgid "Only the supported file types are added" msgstr "" -#: src/multiple_files_window.c:269 +#: src/multiple_files_window.c:267 msgid "_Remove selected" msgstr "" -#: src/multiple_files_window.c:279 src/splitpoints_window.c:1456 +#: src/multiple_files_window.c:277 src/splitpoints_window.c:1427 msgid "R_emove all" msgstr "R_emover todo" -#: src/multiple_files_window.c:287 src/main_window.c:790 -msgid "Batch split !" +#: src/multiple_files_window.c:285 +msgid "Batch split" msgstr "" -#: src/multiple_files_window.c:288 +#: src/multiple_files_window.c:286 msgid "Split all the files" msgstr "" @@ -318,11 +335,11 @@ msgid "C_lear" msgstr "_Limpiar" -#: src/messages_window.c:168 src/main_window.c:801 +#: src/messages_window.c:168 msgid "Messages history" msgstr "Historial de mensajes" -#: src/split_files_window.c:69 src/splitpoints_window.c:1956 +#: src/split_files_window.c:69 src/splitpoints_window.c:1911 msgid "Filename" msgstr "Nombre de archivo" @@ -347,29 +364,29 @@ msgid "Album title" msgstr "Título del Álbum" -#: src/freedb_window.c:169 src/freedb_window.c:477 +#: src/freedb_window.c:154 src/freedb_window.c:472 msgid "please wait... contacting tracktype.org" msgstr "por favor espere... conectando a tracktype.org" -#: src/freedb_window.c:440 src/freedb_window.c:461 src/ui_manager.c:352 +#: src/freedb_window.c:435 src/freedb_window.c:456 src/ui_manager.c:372 #: src/splitpoints_window.c:671 src/splitpoints_window.c:792 #: src/splitpoints_window.c:842 msgid "description here" msgstr "descripción aquí" -#: src/freedb_window.c:565 +#: src/freedb_window.c:559 msgid "Search tracktype.org:" msgstr "Buscar en tracktype.org" -#: src/freedb_window.c:575 +#: src/freedb_window.c:569 msgid "_Search" msgstr "_Buscar" -#: src/freedb_window.c:604 +#: src/freedb_window.c:598 msgid "_Add splitpoints" msgstr "_Añadir puntos de división" -#: src/freedb_window.c:610 +#: src/freedb_window.c:604 msgid "Set splitpoints to the splitpoints table" msgstr "Establecer puntos de división a la tabla" @@ -386,224 +403,224 @@ msgid " error: you already have the splitpoint in table" msgstr " error: usted ya tiene el punto de división en la tabla" -#: src/splitpoints_window.c:1159 src/splitpoints_window.c:1215 -#: src/preferences_window.c:497 +#: src/splitpoints_window.c:1146 src/splitpoints_window.c:1200 +#: src/preferences_window.c:519 msgid "Threshold level (dB):" msgstr "Umbral (dB):" -#: src/splitpoints_window.c:1229 +#: src/splitpoints_window.c:1214 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end):" msgstr "" "Punto de corte de desplazamiento (0 es el inicio de silencio y 1 el final):" -#: src/splitpoints_window.c:1243 +#: src/splitpoints_window.c:1228 msgid "Number of tracks (0 means all tracks):" msgstr "Número de pistas (0 significa todas las pistas):" -#: src/splitpoints_window.c:1255 src/preferences_window.c:513 +#: src/splitpoints_window.c:1240 src/preferences_window.c:535 msgid "Minimum silence length (seconds):" msgstr "Duración mínima de silencio (segundos):" -#: src/splitpoints_window.c:1267 +#: src/splitpoints_window.c:1252 msgid "Minimum track length (seconds):" msgstr "" -#: src/splitpoints_window.c:1277 +#: src/splitpoints_window.c:1262 msgid "_Remove silence between tracks" msgstr "_Remover silencio entre pistas" -#: src/splitpoints_window.c:1429 +#: src/splitpoints_window.c:1400 msgid "Minutes:" msgstr "Minutos:" -#: src/splitpoints_window.c:1431 +#: src/splitpoints_window.c:1402 msgid "Seconds:" msgstr "Segundos:" -#: src/splitpoints_window.c:1433 +#: src/splitpoints_window.c:1404 msgid "Hundredths:" msgstr "Centésimas:" -#: src/splitpoints_window.c:1443 src/main_window.c:836 +#: src/splitpoints_window.c:1414 msgid "Add splitpoint" msgstr "Añadir punto e división" -#: src/splitpoints_window.c:1446 +#: src/splitpoints_window.c:1417 msgid "_Remove" msgstr "_Remover" -#: src/splitpoints_window.c:1453 +#: src/splitpoints_window.c:1424 #, fuzzy msgid "Remove selected splitpoints" msgstr "Remover silencio entre pistas" -#: src/splitpoints_window.c:1463 +#: src/splitpoints_window.c:1434 #, fuzzy msgid "Remove all splitpoints" msgstr "_Añadir puntos de división" -#: src/splitpoints_window.c:1473 +#: src/splitpoints_window.c:1444 msgid "_Trim splitpoints" msgstr "" -#: src/splitpoints_window.c:1483 +#: src/splitpoints_window.c:1454 msgid "_Silence detection" msgstr "Detección de _Silencio" -#: src/splitpoints_window.c:1561 src/mp3splt-gtk.c:119 +#: src/splitpoints_window.c:1534 src/mp3splt-gtk.c:129 msgid " finished" msgstr " terminado" -#: src/splitpoints_window.c:1635 +#: src/splitpoints_window.c:1608 msgid " cannot preview, not connected to player" msgstr " vista previa no disponible, no está conectado al reproductor" -#: src/splitpoints_window.c:1653 +#: src/splitpoints_window.c:1626 msgid " cannot split preview last splitpoint" msgstr " vista previa no disponible para el último punto de división" -#: src/splitpoints_window.c:1824 +#: src/splitpoints_window.c:1797 msgid "Clone all tags" msgstr "" -#: src/splitpoints_window.c:1832 +#: src/splitpoints_window.c:1803 #, fuzzy msgid "Clone title" msgstr "Título del Álbum" -#: src/splitpoints_window.c:1838 +#: src/splitpoints_window.c:1807 msgid "Clone artist" msgstr "" -#: src/splitpoints_window.c:1844 +#: src/splitpoints_window.c:1811 msgid "Clone album" msgstr "" -#: src/splitpoints_window.c:1850 +#: src/splitpoints_window.c:1815 msgid "Clone genre" msgstr "" -#: src/splitpoints_window.c:1856 +#: src/splitpoints_window.c:1819 msgid "Clone year" msgstr "" -#: src/splitpoints_window.c:1862 +#: src/splitpoints_window.c:1823 msgid "Clone track" msgstr "" -#: src/splitpoints_window.c:1868 +#: src/splitpoints_window.c:1827 msgid "Clone comment" msgstr "" -#: src/splitpoints_window.c:1876 +#: src/splitpoints_window.c:1833 msgid "Auto-increment track" msgstr "" -#: src/splitpoints_window.c:1948 +#: src/splitpoints_window.c:1903 msgid "Keep" msgstr "Mantener" -#: src/splitpoints_window.c:1964 +#: src/splitpoints_window.c:1919 msgid "Secs" msgstr "Segs" -#: src/splitpoints_window.c:1972 +#: src/splitpoints_window.c:1927 msgid "Mins" msgstr "Mins" -#: src/splitpoints_window.c:1980 +#: src/splitpoints_window.c:1935 msgid "Hundr" msgstr "Cents" -#: src/splitpoints_window.c:1988 +#: src/splitpoints_window.c:1943 msgid "Length" msgstr "Duración" -#: src/splitpoints_window.c:1995 +#: src/splitpoints_window.c:1950 msgid "LiveP" msgstr "LiveP" -#: src/splitpoints_window.c:2003 +#: src/splitpoints_window.c:1958 msgid "SplitP" msgstr "SplitP" -#: src/splitpoints_window.c:2053 +#: src/splitpoints_window.c:2008 msgid "Title" msgstr "" -#: src/splitpoints_window.c:2056 +#: src/splitpoints_window.c:2011 msgid "Artist" msgstr "" -#: src/splitpoints_window.c:2059 +#: src/splitpoints_window.c:2014 #, fuzzy msgid "Album" msgstr "Título del Álbum" -#: src/splitpoints_window.c:2062 +#: src/splitpoints_window.c:2017 msgid "Genre" msgstr "" -#: src/splitpoints_window.c:2066 +#: src/splitpoints_window.c:2021 #, fuzzy msgid "Comment" msgstr "Etiqueta del comentario:" -#: src/splitpoints_window.c:2069 +#: src/splitpoints_window.c:2024 msgid "Year" msgstr "" -#: src/splitpoints_window.c:2073 +#: src/splitpoints_window.c:2028 msgid "Track" msgstr "" -#: src/preferences_window.c:249 +#: src/preferences_window.c:247 msgid "<b>Choose language (requires restart)</b>" msgstr "<b>Elija idioma (requiere reiniciar)</b>" -#: src/preferences_window.c:358 +#: src/preferences_window.c:357 msgid "Browse directory ..." msgstr "" -#: src/preferences_window.c:376 +#: src/preferences_window.c:375 msgid "Example for the single file split:" msgstr "" -#: src/preferences_window.c:415 +#: src/preferences_window.c:414 #, fuzzy msgid "Custom directory" msgstr "Formato personalizado" -#: src/preferences_window.c:417 +#: src/preferences_window.c:416 msgid "Create split files in a custom directory" msgstr "" -#: src/preferences_window.c:422 +#: src/preferences_window.c:421 msgid "Input file directory" msgstr "" -#: src/preferences_window.c:425 +#: src/preferences_window.c:424 msgid "Create split files in the same directory as the file being split" msgstr "" -#: src/preferences_window.c:431 +#: src/preferences_window.c:430 msgid "<b>Directory for split files</b>" msgstr "<b>Directorio para dividir archivos</b>" -#: src/preferences_window.c:444 +#: src/preferences_window.c:455 msgid "_Splitpoint name from filename (manual single file split only)" msgstr "" -#: src/preferences_window.c:446 +#: src/preferences_window.c:457 #, fuzzy msgid "Name newly added splitpoints as the input file" msgstr "Mismas etiquetas que el archivo de entrada" -#: src/preferences_window.c:454 +#: src/preferences_window.c:465 msgid "Create directories from _filenames " msgstr "" -#: src/preferences_window.c:457 +#: src/preferences_window.c:468 msgid "" "If the splitpoint name is 'a/b/output', the directory chain 'a/b' is created " "in the output\n" @@ -611,116 +628,158 @@ "'<output_directory>/a/b' directory" msgstr "" -#: src/preferences_window.c:467 +#: src/preferences_window.c:478 msgid "F_rame mode (useful for mp3 VBR) (mp3 only)" msgstr "Modo ma_rco (útil para mp3 VBR) (mp3 solamente)" -#: src/preferences_window.c:469 +#: src/preferences_window.c:480 msgid "" "The split is slower with this option, but some mp3 files having\n" "Variable Bit Rate need this mode to be enabled" msgstr "" -#: src/preferences_window.c:476 +#: src/preferences_window.c:488 +msgid "_[Experimental] Bit reservoir handling for gapless playback (mp3 only)" +msgstr "" + +#: src/preferences_window.c:490 +msgid "" +"Split files will play gapless only on players supporting the LAME tag delay " +"and padding values\n" +"Gapless players examples: cmus, mpg123, foobar2000" +msgstr "" + +#: src/preferences_window.c:498 msgid "_Auto-adjust mode (use silence detection to auto-adjust splitpoints)" msgstr "" -#: src/preferences_window.c:479 +#: src/preferences_window.c:501 msgid "" "Splitpoints will be adjusted to match silences (if found)\n" "This mode requires the frame mode" msgstr "" -#: src/preferences_window.c:528 +#: src/preferences_window.c:550 msgid "Cutpoint offset (0 is the begin of silence and 1 the end):" msgstr "" "Punto de corte de desplazamiento (0 es el inicio de silencio y 1 el final):" -#: src/preferences_window.c:545 +#: src/preferences_window.c:567 msgid "Gap level (seconds around splitpoint to search for silence):" msgstr "" "Nivel de Omisión (segundos en punto de división para buscar un silencio):" -#: src/preferences_window.c:562 +#: src/preferences_window.c:584 msgid "Set _default split options" msgstr "Establecer opciones de división por _defecto" -#: src/preferences_window.c:567 +#: src/preferences_window.c:589 msgid "<b>Split options</b>" msgstr "<b>Opciones de División</b>" -#: src/preferences_window.c:630 +#: src/preferences_window.c:677 msgid "Player:" msgstr "" -#: src/preferences_window.c:649 +#: src/preferences_window.c:696 msgid "Refresh player every " msgstr "" -#: src/preferences_window.c:650 +#: src/preferences_window.c:697 src/preferences_window.c:725 msgid "milliseconds." msgstr "" -#: src/preferences_window.c:652 +#: src/preferences_window.c:699 msgid "\t(higher refresh rate decreases CPU usage - default is 200)" msgstr "" -#: src/preferences_window.c:658 +#: src/preferences_window.c:710 +msgid "Stop GStreamer preview" +msgstr "" + +#: src/preferences_window.c:710 +msgid "milliseconds before the end." +msgstr "" + +#: src/preferences_window.c:724 +msgid "Small seek jumps for " +msgstr "" + +#: src/preferences_window.c:733 +msgid "Seek jumps for " +msgstr "" + +#: src/preferences_window.c:734 src/preferences_window.c:743 +msgid "milliseconds. (0=auto)" +msgstr "" + +#: src/preferences_window.c:742 +msgid "Big seek jumps for " +msgstr "" + +#: src/preferences_window.c:753 +msgid "Seek times" +msgstr "" + +#: src/preferences_window.c:761 msgid "<b>Player options</b>" msgstr "<b>Opciones del reproductor</b>" -#: src/preferences_window.c:777 -msgid "" -"Wave preview is only available if the amplitude wave is shown in the player" +#: src/preferences_window.c:872 +msgid "Only available if the amplitude wave is shown in the player" +msgstr "" + +#: src/preferences_window.c:902 +msgid "Wave preview" msgstr "" -#: src/preferences_window.c:817 +#: src/preferences_window.c:912 #, c-format msgid "%d minute(s) window" msgstr "" -#: src/preferences_window.c:822 +#: src/preferences_window.c:917 #, c-format msgid "Wave interpolation level %d with threshold of %.1lf" msgstr "" -#: src/preferences_window.c:844 +#: src/preferences_window.c:939 msgid "Wave quality (higher is better but consumes more CPU):" msgstr "" -#: src/preferences_window.c:863 +#: src/preferences_window.c:961 msgid "<b>Amplitude wave options</b>" msgstr "" -#: src/preferences_window.c:920 +#: src/preferences_window.c:1054 msgid "Default format" msgstr "Formato predeterminado" -#: src/preferences_window.c:927 +#: src/preferences_window.c:1061 msgid " Default output: " msgstr "" -#: src/preferences_window.c:933 +#: src/preferences_window.c:1067 msgid " CDDB, CUE and tracktype.org default: " msgstr "" -#: src/preferences_window.c:939 +#: src/preferences_window.c:1073 msgid " Split with silence detection default: " msgstr "" -#: src/preferences_window.c:945 +#: src/preferences_window.c:1079 msgid " Trim using silence detection default: " msgstr "" -#: src/preferences_window.c:951 +#: src/preferences_window.c:1085 msgid " Error mode default: " msgstr "" -#: src/preferences_window.c:966 +#: src/preferences_window.c:1100 msgid "Custom format" msgstr "Formato personalizado" -#: src/preferences_window.c:985 +#: src/preferences_window.c:1119 msgid "" " @A: performer if found, otherwise artist\n" " @a: artist name\n" @@ -737,6 +796,8 @@ "number) **\n" " @U: track tag number as uppercase letter **\n" " @f: input filename (without extension)\n" +" @d: last directory of the input filename or the filename itself if no " +"directory\n" " @m, @s or @h: the number of minutes, seconds or hundreths of seconds of " "the start splitpoint **\n" " @M, @S or @H: the number of minutes, seconds or hundreths of seconds of " @@ -745,84 +806,84 @@ " (**) a digit may follow for the number of digits to output\n" msgstr "" -#: src/preferences_window.c:1010 +#: src/preferences_window.c:1145 msgid "<b>Output format for batch split and when importing splitpoints</b>" msgstr "" -#: src/preferences_window.c:1060 +#: src/preferences_window.c:1194 msgid "Original file tags" msgstr "Etiquetas originales del archivo" -#: src/preferences_window.c:1063 +#: src/preferences_window.c:1197 #, fuzzy msgid "Custom tags (from the splitpoints table)" msgstr "Establecer puntos de división a la tabla" -#: src/preferences_window.c:1066 +#: src/preferences_window.c:1200 msgid "No tags" msgstr "No hay ninguna etiqueta" -#: src/preferences_window.c:1069 +#: src/preferences_window.c:1203 msgid "Extract tags from filename" msgstr "Extraer las etiquetas del nombre de archivo" -#: src/preferences_window.c:1078 +#: src/preferences_window.c:1212 msgid "<b>Split files tags</b>" msgstr "<b>Dividir etiquetas de los archivos</b>" -#: src/preferences_window.c:1100 +#: src/preferences_window.c:1234 msgid "No change" msgstr "Sin cambios" -#: src/preferences_window.c:1101 +#: src/preferences_window.c:1235 msgid "lowercase" msgstr "minúsculas" -#: src/preferences_window.c:1102 +#: src/preferences_window.c:1236 msgid "UPPERCASE" msgstr "MAYÚSCULAS" -#: src/preferences_window.c:1103 +#: src/preferences_window.c:1237 msgid "First uppercase" msgstr "Primero mayúsculas" -#: src/preferences_window.c:1104 +#: src/preferences_window.c:1238 msgid "Word Uppercase" msgstr "La palabra en mayúsculas" -#: src/preferences_window.c:1126 +#: src/preferences_window.c:1284 msgid "<artist>: " msgstr "" -#: src/preferences_window.c:1135 +#: src/preferences_window.c:1293 msgid "<album>: " msgstr "" -#: src/preferences_window.c:1145 +#: src/preferences_window.c:1303 msgid "<title>: " msgstr "" -#: src/preferences_window.c:1154 +#: src/preferences_window.c:1312 msgid "<genre>: " msgstr "" -#: src/preferences_window.c:1163 +#: src/preferences_window.c:1321 msgid "<comment>: " msgstr "" -#: src/preferences_window.c:1172 +#: src/preferences_window.c:1330 msgid "<year>: " msgstr "" -#: src/preferences_window.c:1181 +#: src/preferences_window.c:1339 msgid "<track>: " msgstr "" -#: src/preferences_window.c:1210 +#: src/preferences_window.c:1379 msgid "Regular expression:" msgstr "Expresión regular:" -#: src/preferences_window.c:1213 +#: src/preferences_window.c:1382 msgid "" "Above enter PERL-like regular expression using named subgroups.\n" "Following names are recognized:\n" @@ -835,574 +896,463 @@ " (?<comment>) - comment" msgstr "" -#: src/preferences_window.c:1240 +#: src/preferences_window.c:1409 msgid "_Replace underscores by spaces" msgstr "_Reemplazar guión bajo por espacios" -#: src/preferences_window.c:1250 +#: src/preferences_window.c:1419 msgid "Artist text properties:" msgstr "Propiedades del artista:" -#: src/preferences_window.c:1255 +#: src/preferences_window.c:1424 msgid "Album text properties:" msgstr "Propiedades del álbum:" -#: src/preferences_window.c:1260 +#: src/preferences_window.c:1429 msgid "Title text properties:" msgstr "Propiedades del título:" -#: src/preferences_window.c:1265 +#: src/preferences_window.c:1434 msgid "Comment text properties:" msgstr "Propiedades del comentario:" -#: src/preferences_window.c:1269 +#: src/preferences_window.c:1438 msgid "Genre tag:" msgstr "" -#: src/preferences_window.c:1273 +#: src/preferences_window.c:1442 msgid "Comment tag:" msgstr "Etiqueta del comentario:" -#: src/preferences_window.c:1275 +#: src/preferences_window.c:1444 msgid "Regular expression test" msgstr "" -#: src/preferences_window.c:1291 +#: src/preferences_window.c:1460 msgid "_Test" msgstr "" -#: src/preferences_window.c:1295 +#: src/preferences_window.c:1464 msgid "Sample filename:" msgstr "Nombre de archivo de la muestra:" -#: src/preferences_window.c:1300 +#: src/preferences_window.c:1469 msgid "Sample result:" msgstr "Resultado de la muestra:" -#: src/preferences_window.c:1312 +#: src/preferences_window.c:1481 msgid "ID3v1 & ID3v2 tags" msgstr "etiquetas ID3v1 y ID3v2" -#: src/preferences_window.c:1319 +#: src/preferences_window.c:1488 msgid "ID3v2 tags" msgstr "ID3v2" -#: src/preferences_window.c:1326 +#: src/preferences_window.c:1495 msgid "ID3v1 tags" msgstr "ID3v1" -#: src/preferences_window.c:1333 +#: src/preferences_window.c:1502 msgid "Same tags version as the input file" msgstr "Mismas etiquetas que el archivo de entrada" -#: src/preferences_window.c:1339 +#: src/preferences_window.c:1508 msgid "<b>Tags version (mp3 only)</b>" msgstr "<b>Versión Etiquetas (sólo mp3)</b>" -#: src/preferences_window.c:1380 +#: src/preferences_window.c:1548 src/main_window.c:774 msgid "Split" msgstr "Dividir" -#: src/preferences_window.c:1385 +#: src/preferences_window.c:1553 msgid "Tags" msgstr "Etiquetas" -#: src/preferences_window.c:1390 +#: src/preferences_window.c:1558 msgid "Player" msgstr "Reproductor" -#: src/preferences_window.c:1395 +#: src/preferences_window.c:1563 #, fuzzy msgid "Output format" msgstr "Formato personalizado" -#: src/preferences_window.c:1401 +#: src/preferences_window.c:1569 msgid "Language" msgstr "Idioma" -#: src/split_mode_window.c:193 +#: src/split_mode_window.c:188 msgid "Use manual single file splitpoints" msgstr "" -#: src/split_mode_window.c:195 +#: src/split_mode_window.c:190 msgid "Split files using the manually defined splitpoints" msgstr "" -#: src/split_mode_window.c:205 +#: src/split_mode_window.c:200 msgid "Time" msgstr "Tiempo" -#: src/split_mode_window.c:207 +#: src/split_mode_window.c:202 msgid "Split every fixed time length; last track will most likely be smaller" msgstr "" -#: src/split_mode_window.c:224 +#: src/split_mode_window.c:219 msgid "Split every" msgstr "" -#: src/split_mode_window.c:237 +#: src/split_mode_window.c:232 msgid "seconds." msgstr "" -#: src/split_mode_window.c:244 +#: src/split_mode_window.c:239 msgid "Equal time tracks" msgstr "Pistas con el mismo tiempo" -#: src/split_mode_window.c:246 +#: src/split_mode_window.c:241 msgid "Create smaller tracks having exactly the same time length" msgstr "" -#: src/split_mode_window.c:261 +#: src/split_mode_window.c:256 msgid "Split in" msgstr "" -#: src/split_mode_window.c:275 +#: src/split_mode_window.c:270 msgid "equal tracks." msgstr "" -#: src/split_mode_window.c:282 +#: src/split_mode_window.c:277 msgid "Trim using silence detection" msgstr "" -#: src/split_mode_window.c:284 +#: src/split_mode_window.c:279 msgid "" "Split by discarding silence from the begin and from the end\n" "If no silence is found, the output file is still created" msgstr "" -#: src/split_mode_window.c:302 src/split_mode_window.c:331 +#: src/split_mode_window.c:297 src/split_mode_window.c:326 msgid "Threshold level (dB) : " msgstr "" -#: src/split_mode_window.c:313 +#: src/split_mode_window.c:308 msgid "Silence - split with silence detection" msgstr "Silencio - dividir con detección de silencio" -#: src/split_mode_window.c:314 +#: src/split_mode_window.c:309 #, fuzzy msgid "Split where silence is found" msgstr "Silencio - dividir con detección de silencio" -#: src/split_mode_window.c:343 +#: src/split_mode_window.c:338 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end) : " msgstr "" -#: src/split_mode_window.c:355 +#: src/split_mode_window.c:350 msgid "Number of tracks (0 means all tracks) : " msgstr "" -#: src/split_mode_window.c:367 +#: src/split_mode_window.c:362 msgid "Minimum silence length (seconds) : " msgstr "" -#: src/split_mode_window.c:379 +#: src/split_mode_window.c:374 msgid "Minimum track length (seconds) : " msgstr "" -#: src/split_mode_window.c:389 +#: src/split_mode_window.c:384 msgid "Remove silence between tracks" msgstr "Remover silencio entre pistas" -#: src/split_mode_window.c:410 +#: src/split_mode_window.c:405 msgid "Wrap - split files created with mp3wrap or albumwrap (mp3 only)" msgstr "Envolver - dividir archivos creados con mp3wrap o albumwrap (sólo MP3)" -#: src/split_mode_window.c:420 +#: src/split_mode_window.c:415 msgid "Synchronisation error mode (mp3 only)" msgstr "" -#: src/split_mode_window.c:422 +#: src/split_mode_window.c:417 msgid "" "Split where synchronisation errors are found\n" "Useful for splitting concatenated files" msgstr "" -#: src/mp3splt-gtk.c:102 -msgid " error: no files found in batch mode" +#: src/split_mode_window.c:428 +msgid "Internal sheet mode (CUE sheet for FLAC and ID3v2 chapters for MP3)" msgstr "" -#: src/mp3splt-gtk.c:278 -msgid " info: stopping the split process before exiting" -msgstr " Info: deteniendo el proceso de división antes de salir" +#: src/split_mode_window.c:429 +msgid "Split using internal sheet" +msgstr "" -#: src/mp3splt-gtk.c:389 -#, c-format -msgid "Setting the output directory to %s.\n" +#: src/split_mode_window.c:439 +#, fuzzy +msgid "Use CUE file with similar name as the input file" +msgstr "Mismas etiquetas que el archivo de entrada" + +#: src/split_mode_window.c:441 +msgid "" +"Split using CUE file having similar name as the input file\n" +"Example: test.cue will be looked for when splitting test.mp3" msgstr "" -#: src/mp3splt-gtk.c:403 -#, c-format -msgid "Option -%c requires an argument.\n" -msgstr "Opción -%c requiere un argumento.\n" +#: src/split_mode_window.c:452 +msgid "Use CDDB file with similar name as the input file" +msgstr "" -#: src/mp3splt-gtk.c:405 -#, c-format -msgid "Unknown option `-%c'.\n" -msgstr "Opción '-%c' desconocida.\n" +#: src/split_mode_window.c:454 +msgid "" +"Split using CDDB file having similar name as the input file\n" +"Example: test.cddb will be looked for when splitting test.mp3" +msgstr "" -#: src/mp3splt-gtk.c:407 -#, c-format -msgid "Unknown option character `\\x%x'.\n" -msgstr "Carácter de opción desconocido: '\\x%x'.\n" +#: src/mp3splt-gtk.c:112 +msgid " error: no files found in batch mode" +msgstr "" -#: src/mp3splt-gtk.c:421 -#, c-format -msgid "Cannot open input file %s\n" -msgstr "No se puede abrir el archivo de entrada %s\n" +#: src/mp3splt-gtk.c:350 +msgid " info: stopping the split process before exiting" +msgstr " Info: deteniendo el proceso de división antes de salir" -#: src/main_window.c:173 +#: src/main_window.c:170 msgid "Error launching external command" msgstr "" -#: src/main_window.c:204 +#: src/main_window.c:203 msgid "using" msgstr "utilizando" -#: src/main_window.c:208 +#: src/main_window.c:207 msgid "release of " msgstr "" -#: src/main_window.c:311 +#: src/main_window.c:310 msgid " info: stopping the split process.. please wait" msgstr " Info: deteniendo el proceso de división .. por favor espere" -#: src/main_window.c:319 src/main_window.c:778 -msgid "Preferences" -msgstr "Preferencias" - -#: src/main_window.c:331 -msgid "TrackType" -msgstr "" - -#: src/main_window.c:346 src/main_window.c:781 -msgid "Split files" -msgstr "" - -#: src/main_window.c:361 src/main_window.c:784 -msgid "Splitpoints" -msgstr "Puntos de división" - -#: src/main_window.c:432 +#: src/main_window.c:375 msgid " error: split in progress..." msgstr " error: división en proceso..." -#: src/main_window.c:442 +#: src/main_window.c:385 msgid " error: no path of split selected" msgstr "" -#: src/main_window.c:725 -msgid "Choose File" -msgstr "Escoja un Archivo" - -#: src/main_window.c:755 -msgid "_File" -msgstr "_Archivo" - -#: src/main_window.c:756 -msgid "_View" -msgstr "" - -#: src/main_window.c:757 -msgid "_Player" -msgstr "" - -#: src/main_window.c:758 -msgid "_Help" -msgstr "_Ayuda" - -#: src/main_window.c:760 -msgid "_Open single file..." -msgstr "" - -#: src/main_window.c:760 -msgid "Open" -msgstr "Abrir" - -#: src/main_window.c:764 -msgid "_Add files or directories to batch ..." -msgstr "" - -#: src/main_window.c:765 -msgid "Add files or directories to batch" -msgstr "" - -#: src/main_window.c:768 -msgid "_Import splitpoints from file..." -msgstr "" - -#: src/main_window.c:769 -msgid "Import splitpoints from file..." -msgstr "" - -#: src/main_window.c:771 -msgid "Import splitpoints from _TrackType.org..." -msgstr "" - -#: src/main_window.c:772 -msgid "Import splitpoints from TrackType.org..." -msgstr "" - -#: src/main_window.c:775 -msgid "_Export splitpoints..." -msgstr "" - -#: src/main_window.c:776 -msgid "Export splitpoints" -msgstr "" - -#: src/main_window.c:778 -msgid "_Preferences" -msgstr "" - -#: src/main_window.c:781 -msgid "Split _files" +#: src/main_window.c:729 +msgid "Open file ..." msgstr "" -#: src/main_window.c:784 -msgid "_Splitpoints" +#: src/main_window.c:777 +msgid "Split the current file" msgstr "" -#: src/main_window.c:787 -msgid "_Split !" -msgstr "_Dividir!" - -#: src/main_window.c:787 src/main_window.c:998 -msgid "Split !" -msgstr "¡Dividir!" - -#: src/main_window.c:790 -msgid "_Batch split !" +#: src/main_window.c:786 +msgid "Manual single file split" msgstr "" -#: src/main_window.c:793 -msgid "_Quit" -msgstr "_Salir" - -#: src/main_window.c:793 -msgid "Quit" -msgstr "Salir" - -#: src/main_window.c:797 -msgid "_Contents" -msgstr "_Contenidos" - -#: src/main_window.c:797 -msgid "Contents" -msgstr "Contenidos" - -#: src/main_window.c:801 -msgid "Messages _history" -msgstr "_Historial de mensajes" - -#: src/main_window.c:804 -msgid "_About" -msgstr "_Acerca de" - #: src/main_window.c:804 -msgid "About" -msgstr "Acerca de" - -#: src/main_window.c:808 -msgid "P_ause / Play" -msgstr "" - -#: src/main_window.c:808 -msgid "Pause/Play" -msgstr "" - -#: src/main_window.c:811 -msgid "Seek _forward" -msgstr "" - -#: src/main_window.c:811 -msgid "Seek forward" -msgstr "" - -#: src/main_window.c:813 -msgid "Seek _backward" -msgstr "" - -#: src/main_window.c:813 -msgid "Seek backward" -msgstr "" - -#: src/main_window.c:816 -msgid "Small seek f_orward" -msgstr "" - -#: src/main_window.c:816 -msgid "Small seek forward" -msgstr "" - -#: src/main_window.c:818 -msgid "Small seek back_ward" -msgstr "" - -#: src/main_window.c:818 -msgid "Small seek backward" -msgstr "" - -#: src/main_window.c:821 -msgid "Big seek fo_rward" -msgstr "" - -#: src/main_window.c:821 -msgid "Big seek forward" +msgid "Batch & automatic split" msgstr "" -#: src/main_window.c:823 -msgid "Big seek bac_kward" -msgstr "" +#: src/main_window.c:822 +msgid "S_top" +msgstr "De_tener" -#: src/main_window.c:823 -msgid "Big seek backward" +#: src/main_window.c:1089 +#, c-format +msgid "Setting the output directory to %s.\n" msgstr "" -#: src/main_window.c:826 -msgid "Seek to _next splitpoint" -msgstr "" +#: src/main_window.c:1103 +#, c-format +msgid "Option -%c requires an argument.\n" +msgstr "Opción -%c requiere un argumento.\n" -#: src/main_window.c:827 -msgid "Seek to next splitpoint" -msgstr "" +#: src/main_window.c:1105 +#, c-format +msgid "Unknown option `-%c'.\n" +msgstr "Opción '-%c' desconocida.\n" -#: src/main_window.c:828 -msgid "Seek to _previous splitpoint" -msgstr "" +#: src/main_window.c:1107 +#, c-format +msgid "Unknown option character `\\x%x'.\n" +msgstr "Carácter de opción desconocido: '\\x%x'.\n" -#: src/main_window.c:829 -msgid "Seek to previous splitpoint" -msgstr "" +#: src/main_window.c:1121 +#, c-format +msgid "Cannot open input file %s\n" +msgstr "No se puede abrir el archivo de entrada %s\n" -#: src/main_window.c:832 -#, fuzzy -msgid "_Quick preview before closest splitpoint" -msgstr " vista previa no disponible para el último punto de división" +#: src/main_window.c:1164 +msgid "Choose File" +msgstr "Escoja un Archivo" -#: src/main_window.c:832 +#: src/main_window.c:1168 src/import.c:61 #, fuzzy -msgid "Quick preview before closest splitpoint" -msgstr " vista previa no disponible para el último punto de división" - -#: src/main_window.c:835 -msgid "Add _splitpoint" -msgstr "" - -#: src/main_window.c:838 -msgid "_Delete closest splitpoint" -msgstr "" - -#: src/main_window.c:839 -msgid "Delete closest splitpoint" -msgstr "" - -#: src/main_window.c:841 -msgid "Zoom _in" -msgstr "" - -#: src/main_window.c:841 -msgid "Zoom in" -msgstr "" - -#: src/main_window.c:842 -msgid "Zoom _out" -msgstr "" - -#: src/main_window.c:842 -msgid "Zoom out" -msgstr "" +msgid "_Open" +msgstr "Abrir" -#: src/main_window.c:953 -msgid "Open file ..." +#: src/main_window.c:1208 +msgid "TrackType" msgstr "" -#: src/main_window.c:1001 -msgid "Split the current file" -msgstr "" +#: src/main_window.c:1225 +msgid "Preferences" +msgstr "Preferencias" -#: src/main_window.c:1010 -msgid "Manual single file split" -msgstr "" +#: src/main_window.c:1257 +msgid "Splitpoints" +msgstr "Puntos de división" -#: src/main_window.c:1028 -msgid "Batch & automatic split" +#: src/main_window.c:1273 +msgid "Split files" msgstr "" -#: src/main_window.c:1048 -msgid "S_top" -msgstr "De_tener" - #: src/libmp3splt_manager.c:71 #, c-format msgid " File '%s' created" msgstr " Archivo '%s' creado" -#: src/libmp3splt_manager.c:182 +#: src/libmp3splt_manager.c:166 #, c-format msgid " preparing \"%s\" (%d of %d)" msgstr " preparando \"%s\" (%d de %d)" -#: src/libmp3splt_manager.c:188 +#: src/libmp3splt_manager.c:172 #, c-format msgid " creating \"%s\" (%d of %d)" msgstr " creando \"%s\" (%d de %d)" -#: src/libmp3splt_manager.c:194 +#: src/libmp3splt_manager.c:178 msgid " searching for sync errors..." msgstr " buscando por errores de sincronización..." -#: src/libmp3splt_manager.c:199 +#: src/libmp3splt_manager.c:183 msgid "Computing amplitude wave data..." msgstr "" -#: src/libmp3splt_manager.c:204 +#: src/libmp3splt_manager.c:188 #, c-format msgid "S: %02d, Level: %.2f dB; scanning for silence..." msgstr "S: %02d, Nivel: %.2f dB; escaneando por silencios..." -#: src/import.c:55 +#: src/import.c:56 msgid "Choose file to import" msgstr "Escoja un archivo a importar" -#: src/import.c:207 -msgid "CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt)" +#: src/import.c:271 +#, fuzzy +msgid "" +"CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt), internal sheet (*." +"flac), chapters (*.mp3)" msgstr "CDDB (*.cddb), CUE (*.cue), Etiquetas Audacity (*.txt)" -#: src/import.c:211 +#: src/import.c:275 msgid "CDDB files (*.cddb)" msgstr "Archivos CDDB (*.cddb)" -#: src/import.c:213 +#: src/import.c:277 msgid "CUE files (*.cue)" msgstr "Archivos CUE (*.cue)" -#: src/import.c:215 +#: src/import.c:279 msgid "Audacity labels files (*.txt)" msgstr "Archivos de etiquetas Audacity (*.txt)" -#: src/import.c:217 +#: src/import.c:281 +msgid "FLAC internal sheet (*.flac)" +msgstr "" + +#: src/import.c:283 +#, fuzzy +msgid "ID3v2 chapters (*.mp3)" +msgstr "mp3 (*.mp3)" + +#: src/import.c:285 msgid "All files" msgstr "Todos los archivos" -#: src/import.c:348 +#: src/import.c:476 msgid "--- last cue splitpoint ---" msgstr "" -#: src/gstreamer_control.c:73 +#: src/gstreamer_control.c:71 #, c-format msgid "gstreamer error: %s" msgstr "Error gstreamer: %s" -#: src/gstreamer_control.c:99 +#: src/gstreamer_control.c:97 #, c-format msgid "Warning: %s" msgstr "Advertencia: %s" -#: src/gstreamer_control.c:125 +#: src/gstreamer_control.c:123 #, c-format msgid "Info: %s" msgstr "Información: %s" -#: src/gstreamer_control.c:369 +#: src/gstreamer_control.c:354 msgid " error: cannot create gstreamer playbin\n" msgstr " error: No se puede crear playbin gstreamer\n" + +#~ msgid "Split !" +#~ msgstr "¡Dividir!" + +#~ msgid "_File" +#~ msgstr "_Archivo" + +#~ msgid "_Help" +#~ msgstr "_Ayuda" + +#~ msgid "_Split !" +#~ msgstr "_Dividir!" + +#~ msgid "_Quit" +#~ msgstr "_Salir" + +#~ msgid "Quit" +#~ msgstr "Salir" + +#~ msgid "_Contents" +#~ msgstr "_Contenidos" + +#~ msgid "Contents" +#~ msgstr "Contenidos" + +#~ msgid "Messages _history" +#~ msgstr "_Historial de mensajes" + +#~ msgid "_About" +#~ msgstr "_Acerca de" + +#~ msgid "About" +#~ msgstr "Acerca de" + +#, fuzzy +#~ msgid "Preview before c_losest splitpoint" +#~ msgstr " vista previa no disponible para el último punto de división" + +#, fuzzy +#~ msgid "Preview before closest splitpoint" +#~ msgstr " vista previa no disponible para el último punto de división" + +#, fuzzy +#~ msgid "Preview clos_est splitpoint" +#~ msgstr " vista previa no disponible para el último punto de división" + +#, fuzzy +#~ msgid "Preview closest splitpoint" +#~ msgstr " vista previa no disponible para el último punto de división" + +#, fuzzy +#~ msgid "Preview _closest splitpoint & pause" +#~ msgstr " vista previa no disponible para el último punto de división" + +#, fuzzy +#~ msgid "Preview closest splitpoint & pause" +#~ msgstr " vista previa no disponible para el último punto de división" + +#, fuzzy +#~ msgid "_Quick preview before closest splitpoint" +#~ msgstr " vista previa no disponible para el último punto de división" Binary files /tmp/tmpA90wb_/LJUs5HNncE/mp3splt-gtk-0.9/po/es.gmo and /tmp/tmpA90wb_/V0ZBgpNw8L/mp3splt-gtk-0.9.2/po/es.gmo differ diff -Nru mp3splt-gtk-0.9/po/es.po mp3splt-gtk-0.9.2/po/es.po --- mp3splt-gtk-0.9/po/es.po 2013-07-20 07:11:46.000000000 +0000 +++ mp3splt-gtk-0.9.2/po/es.po 2014-11-09 16:50:48.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: mp3splt-gtk\n" "Report-Msgid-Bugs-To: io_alex_2004@users.sourceforge.net\n" -"POT-Creation-Date: 2013-07-20 09:11+0200\n" +"POT-Creation-Date: 2014-11-09 17:50+0100\n" "PO-Revision-Date: 2013-04-29 08:45+0000\n" "Last-Translator: Peter Pall <gunter@peterpall.de>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -19,39 +19,49 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/audacious_control.c:66 src/snackamp_control.c:337 -#: src/gstreamer_control.c:228 +#: src/gstreamer_control.c:217 msgid "stereo" msgstr "estéreo" #: src/audacious_control.c:70 src/snackamp_control.c:341 -#: src/gstreamer_control.c:232 +#: src/gstreamer_control.c:221 msgid "mono" msgstr "mono" #: src/audacious_control.c:73 src/snackamp_control.c:344 -#: src/gstreamer_control.c:198 +#: src/gstreamer_control.c:190 msgid "Kbps" msgstr "Kbps." #: src/audacious_control.c:74 src/snackamp_control.c:345 -#: src/gstreamer_control.c:199 +#: src/gstreamer_control.c:191 msgid "Khz" msgstr "Khz" -#: src/utilities.c:87 +#: src/utilities.c:86 #, c-format msgid "Processing file '%s' ..." msgstr "" -#: src/export.c:93 +#: src/export.c:154 msgid "Cue filename to export" msgstr "" -#: src/export.c:105 +#: src/export.c:157 src/multiple_files_window.c:83 +#: src/splitpoints_window.c:1126 src/splitpoints_window.c:1183 +#: src/main_window.c:1166 src/import.c:59 +msgid "_Cancel" +msgstr "" + +#: src/export.c:159 +msgid "_Save" +msgstr "" + +#: src/export.c:166 msgid "cue files (*.cue)" msgstr "" -#: src/widgets_helper.c:428 +#: src/widgets_helper.c:401 msgid "_Close" msgstr "" @@ -59,7 +69,7 @@ msgid "Processing Douglas-Peucker filters ..." msgstr "" -#: src/player_window.c:580 +#: src/player_window.c:576 msgid "" "\n" " Cannot connect to snackAmp player.\n" @@ -78,7 +88,7 @@ " After that, restart snackamp and mp3splt-gtk should work.\n" msgstr "" -#: src/player_window.c:595 +#: src/player_window.c:591 msgid "" "\n" " Cannot connect to Audacious player.\n" @@ -89,149 +99,156 @@ "connect.\n" msgstr "" -#: src/player_window.c:603 src/player_window.c:607 +#: src/player_window.c:599 src/player_window.c:603 msgid "Cannot connect to player" msgstr "" -#: src/player_window.c:904 +#: src/player_window.c:604 src/splitpoints_window.c:1124 +#: src/splitpoints_window.c:1181 +msgid "_OK" +msgstr "" + +#: src/player_window.c:900 msgid "Previous track" msgstr "" -#: src/player_window.c:922 +#: src/player_window.c:918 msgid "Play" msgstr "Escuchar" -#: src/player_window.c:939 +#: src/player_window.c:935 msgid "Pause" msgstr "Pausa" -#: src/player_window.c:956 +#: src/player_window.c:952 msgid "Stop" msgstr "Detener" -#: src/player_window.c:973 +#: src/player_window.c:969 msgid "Next track" msgstr "" -#: src/player_window.c:980 src/splitpoints_window.c:1436 +#: src/player_window.c:976 src/splitpoints_window.c:1407 msgid "_Add" msgstr "_añada" -#: src/player_window.c:987 +#: src/player_window.c:983 msgid "Add splitpoint at the current player position" msgstr "" -#: src/player_window.c:996 src/splitpoints_window.c:1134 -#: src/splitpoints_window.c:1479 +#: src/player_window.c:992 src/splitpoints_window.c:1121 +#: src/splitpoints_window.c:1450 msgid "Set trim splitpoints using silence detection" msgstr "" -#: src/player_window.c:1007 src/splitpoints_window.c:1193 -#: src/splitpoints_window.c:1489 +#: src/player_window.c:1003 src/splitpoints_window.c:1178 +#: src/splitpoints_window.c:1460 msgid "Set splitpoints from silence detection" msgstr "Establecer splitpoints de detección de silencio" -#: src/player_window.c:1012 +#: src/player_window.c:1008 msgid "Amplitude _wave" msgstr "" -#: src/player_window.c:1018 +#: src/player_window.c:1014 msgid "Shows the amplitude level wave" msgstr "Muestra el nivel de amplitud de onda" -#: src/player_window.c:1021 +#: src/player_window.c:1017 msgid "_Connect" msgstr "_connect" -#: src/player_window.c:1024 +#: src/player_window.c:1020 msgid "Connect to player" msgstr "Conecte al jugador" -#: src/player_window.c:1027 +#: src/player_window.c:1023 msgid "_Disconnect" msgstr "_ Desconecte" -#: src/player_window.c:1030 +#: src/player_window.c:1026 msgid "Disconnect from player" msgstr "Desconecte del jugador" -#: src/player_window.c:1153 +#: src/player_window.c:1160 #, c-format msgid "before %s" msgstr "" -#: src/player_window.c:1892 +#: src/player_window.c:1981 msgid "No available wave" msgstr "" -#: src/player_window.c:2045 src/preferences_window.c:826 +#: src/player_window.c:2073 src/preferences_window.c:921 msgid "No wave interpolation" msgstr "" -#: src/player_window.c:2051 +#: src/player_window.c:2079 #, c-format msgid "Wave interpolation level %d" msgstr "" -#: src/player_window.c:2131 +#: src/player_window.c:2141 msgid " Please wait for the process to finish ..." msgstr "" -#: src/player_window.c:2153 +#: src/player_window.c:2163 msgid " Please wait ... currently computing Douglas Peucker filters." msgstr "" -#: src/player_window.c:2237 +#: src/player_window.c:2247 msgid " left click on splitpoint selects it, right click erases it" msgstr "" "haga clic en la izquierda en splitpoint se selecciona, haga clic en él borra" -#: src/player_window.c:2242 +#: src/player_window.c:2252 msgid "" " left click + move changes song position, right click + move changes zoom" msgstr "" "botón izquierdo del ratón + movimiento posición de la canción, los cambios " "haga clic derecho + movimiento de zoom" -#: src/player_window.c:2248 +#: src/player_window.c:2258 msgid "" " left click on point + move changes point position, right click play preview" msgstr "" "haga clic en la izquierda en la posición del punto + mover el punto de los " "cambios, haga clic en vista previa jugar" -#: src/player_window.c:2253 +#: src/player_window.c:2263 msgid " left click on rectangle checks/unchecks 'keep splitpoint'" msgstr "" "botón izquierdo del ratón sobre los controles rectángulo / 'splitpoint " "mantener' desactiva" -#: src/player_window.c:2678 -msgid " quick preview..." +#: src/player_window.c:2695 +#, fuzzy +msgid " preview..." msgstr "vista previa rápida ..." -#: src/player_window.c:3022 +#: src/player_window.c:3034 msgid "Splitpoints and amplitude wave v_iew" msgstr "" -#: src/player_window.c:3138 +#: src/player_window.c:3150 msgid "History" msgstr "Historia" -#: src/player_window.c:3228 +#: src/player_window.c:3240 msgid "_Erase selected entries" msgstr "_Erase Seleccionados de las entradas" -#: src/player_window.c:3236 +#: src/player_window.c:3248 msgid "E_rase all history" msgstr "E_rase toda la historia" -#: src/player_window.c:3278 +#: src/player_window.c:3290 msgid "Files h_istory" msgstr "" -#: src/player_window.c:3404 -msgid " quick preview finished, song paused" +#: src/player_window.c:3330 +#, fuzzy +msgid " preview finished, song paused" msgstr "vista previa rápida de terminar, una canción en pausa" #: src/multiple_files_window.c:63 @@ -242,50 +259,50 @@ msgid "Choose files or directories" msgstr "" -#: src/multiple_files_window.c:100 src/main_window.c:691 +#: src/multiple_files_window.c:98 src/main_window.c:671 #, fuzzy msgid "mp3, ogg vorbis and flac files (*.mp3 *.ogg *.flac)" msgstr "archivos mp3 y ogg (*. mp3 *. ogg)" -#: src/multiple_files_window.c:110 src/main_window.c:701 +#: src/multiple_files_window.c:108 src/main_window.c:681 msgid "mp3 files (*.mp3)" msgstr "archivos MP3 (*. mp3)" -#: src/multiple_files_window.c:116 src/main_window.c:707 +#: src/multiple_files_window.c:114 src/main_window.c:687 #, fuzzy msgid "ogg vorbis files (*.ogg)" msgstr "ogg archivo(*. ogg)" -#: src/multiple_files_window.c:122 src/main_window.c:713 +#: src/multiple_files_window.c:120 src/main_window.c:693 #, fuzzy msgid "flac files (*.flac)" msgstr "archivos MP3 (*. mp3)" -#: src/multiple_files_window.c:129 +#: src/multiple_files_window.c:127 msgid "All Files" msgstr "Todos los archivos" -#: src/multiple_files_window.c:260 +#: src/multiple_files_window.c:258 msgid "_Add files or directories" msgstr "" -#: src/multiple_files_window.c:261 +#: src/multiple_files_window.c:259 msgid "Only the supported file types are added" msgstr "" -#: src/multiple_files_window.c:269 +#: src/multiple_files_window.c:267 msgid "_Remove selected" msgstr "" -#: src/multiple_files_window.c:279 src/splitpoints_window.c:1456 +#: src/multiple_files_window.c:277 src/splitpoints_window.c:1427 msgid "R_emove all" msgstr "R_emove todos" -#: src/multiple_files_window.c:287 src/main_window.c:790 -msgid "Batch split !" +#: src/multiple_files_window.c:285 +msgid "Batch split" msgstr "" -#: src/multiple_files_window.c:288 +#: src/multiple_files_window.c:286 msgid "Split all the files" msgstr "" @@ -297,11 +314,11 @@ msgid "C_lear" msgstr "" -#: src/messages_window.c:168 src/main_window.c:801 +#: src/messages_window.c:168 msgid "Messages history" msgstr "Mensajes de la historia" -#: src/split_files_window.c:69 src/splitpoints_window.c:1956 +#: src/split_files_window.c:69 src/splitpoints_window.c:1911 msgid "Filename" msgstr "Nombre de archivo" @@ -326,29 +343,29 @@ msgid "Album title" msgstr "Título del álbum" -#: src/freedb_window.c:169 src/freedb_window.c:477 +#: src/freedb_window.c:154 src/freedb_window.c:472 msgid "please wait... contacting tracktype.org" msgstr "por favor espere ... ponerse en contacto con tracktype.org" -#: src/freedb_window.c:440 src/freedb_window.c:461 src/ui_manager.c:352 +#: src/freedb_window.c:435 src/freedb_window.c:456 src/ui_manager.c:372 #: src/splitpoints_window.c:671 src/splitpoints_window.c:792 #: src/splitpoints_window.c:842 msgid "description here" msgstr "descripción aquí" -#: src/freedb_window.c:565 +#: src/freedb_window.c:559 msgid "Search tracktype.org:" msgstr "" -#: src/freedb_window.c:575 +#: src/freedb_window.c:569 msgid "_Search" msgstr "" -#: src/freedb_window.c:604 +#: src/freedb_window.c:598 msgid "_Add splitpoints" msgstr "" -#: src/freedb_window.c:610 +#: src/freedb_window.c:604 msgid "Set splitpoints to the splitpoints table" msgstr "Establecer splitpoints a la mesa de splitpoints" @@ -365,223 +382,223 @@ msgid " error: you already have the splitpoint in table" msgstr "" -#: src/splitpoints_window.c:1159 src/splitpoints_window.c:1215 -#: src/preferences_window.c:497 +#: src/splitpoints_window.c:1146 src/splitpoints_window.c:1200 +#: src/preferences_window.c:519 msgid "Threshold level (dB):" msgstr "Nivel umbral (dB):" -#: src/splitpoints_window.c:1229 +#: src/splitpoints_window.c:1214 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end):" msgstr "" "Punto de corte de desplazamiento (0 es el inicio de silencio, y 1 al final):" -#: src/splitpoints_window.c:1243 +#: src/splitpoints_window.c:1228 msgid "Number of tracks (0 means all tracks):" msgstr "Número de pistas (0 significa que todas las pistas):" -#: src/splitpoints_window.c:1255 src/preferences_window.c:513 +#: src/splitpoints_window.c:1240 src/preferences_window.c:535 msgid "Minimum silence length (seconds):" msgstr "Duración mínima de silencio (segundos):" -#: src/splitpoints_window.c:1267 +#: src/splitpoints_window.c:1252 msgid "Minimum track length (seconds):" msgstr "" -#: src/splitpoints_window.c:1277 +#: src/splitpoints_window.c:1262 msgid "_Remove silence between tracks" msgstr "_Remove Silencio entre pistas" -#: src/splitpoints_window.c:1429 +#: src/splitpoints_window.c:1400 msgid "Minutes:" msgstr "Minutos:" -#: src/splitpoints_window.c:1431 +#: src/splitpoints_window.c:1402 msgid "Seconds:" msgstr "Segundos:" -#: src/splitpoints_window.c:1433 +#: src/splitpoints_window.c:1404 msgid "Hundredths:" msgstr "Centésimas:" -#: src/splitpoints_window.c:1443 src/main_window.c:836 +#: src/splitpoints_window.c:1414 msgid "Add splitpoint" msgstr "Añadir splitpoint" -#: src/splitpoints_window.c:1446 +#: src/splitpoints_window.c:1417 msgid "_Remove" msgstr "_Remove" -#: src/splitpoints_window.c:1453 +#: src/splitpoints_window.c:1424 #, fuzzy msgid "Remove selected splitpoints" msgstr "Quitar silencio entre las pistas" -#: src/splitpoints_window.c:1463 +#: src/splitpoints_window.c:1434 #, fuzzy msgid "Remove all splitpoints" msgstr "Añadir splitpoint" -#: src/splitpoints_window.c:1473 +#: src/splitpoints_window.c:1444 msgid "_Trim splitpoints" msgstr "" -#: src/splitpoints_window.c:1483 +#: src/splitpoints_window.c:1454 msgid "_Silence detection" msgstr "_Silence Detección" -#: src/splitpoints_window.c:1561 src/mp3splt-gtk.c:119 +#: src/splitpoints_window.c:1534 src/mp3splt-gtk.c:129 msgid " finished" msgstr "terminado" -#: src/splitpoints_window.c:1635 +#: src/splitpoints_window.c:1608 msgid " cannot preview, not connected to player" msgstr "no puede ver, no está conectado al reproductor" -#: src/splitpoints_window.c:1653 +#: src/splitpoints_window.c:1626 msgid " cannot split preview last splitpoint" msgstr "No se puede dividir splitpoint última vista previa" -#: src/splitpoints_window.c:1824 +#: src/splitpoints_window.c:1797 msgid "Clone all tags" msgstr "" -#: src/splitpoints_window.c:1832 +#: src/splitpoints_window.c:1803 #, fuzzy msgid "Clone title" msgstr "Título del álbum" -#: src/splitpoints_window.c:1838 +#: src/splitpoints_window.c:1807 msgid "Clone artist" msgstr "" -#: src/splitpoints_window.c:1844 +#: src/splitpoints_window.c:1811 msgid "Clone album" msgstr "" -#: src/splitpoints_window.c:1850 +#: src/splitpoints_window.c:1815 msgid "Clone genre" msgstr "" -#: src/splitpoints_window.c:1856 +#: src/splitpoints_window.c:1819 msgid "Clone year" msgstr "" -#: src/splitpoints_window.c:1862 +#: src/splitpoints_window.c:1823 msgid "Clone track" msgstr "" -#: src/splitpoints_window.c:1868 +#: src/splitpoints_window.c:1827 msgid "Clone comment" msgstr "" -#: src/splitpoints_window.c:1876 +#: src/splitpoints_window.c:1833 msgid "Auto-increment track" msgstr "" -#: src/splitpoints_window.c:1948 +#: src/splitpoints_window.c:1903 msgid "Keep" msgstr "Mantenga" -#: src/splitpoints_window.c:1964 +#: src/splitpoints_window.c:1919 msgid "Secs" msgstr "Segundos" -#: src/splitpoints_window.c:1972 +#: src/splitpoints_window.c:1927 msgid "Mins" msgstr "Minutos" -#: src/splitpoints_window.c:1980 +#: src/splitpoints_window.c:1935 msgid "Hundr" msgstr "Hundr" -#: src/splitpoints_window.c:1988 +#: src/splitpoints_window.c:1943 msgid "Length" msgstr "Longitud" -#: src/splitpoints_window.c:1995 +#: src/splitpoints_window.c:1950 msgid "LiveP" msgstr "LiveP" -#: src/splitpoints_window.c:2003 +#: src/splitpoints_window.c:1958 msgid "SplitP" msgstr "SplitP" -#: src/splitpoints_window.c:2053 +#: src/splitpoints_window.c:2008 msgid "Title" msgstr "" -#: src/splitpoints_window.c:2056 +#: src/splitpoints_window.c:2011 msgid "Artist" msgstr "" -#: src/splitpoints_window.c:2059 +#: src/splitpoints_window.c:2014 #, fuzzy msgid "Album" msgstr "Título del álbum" -#: src/splitpoints_window.c:2062 +#: src/splitpoints_window.c:2017 msgid "Genre" msgstr "" -#: src/splitpoints_window.c:2066 +#: src/splitpoints_window.c:2021 #, fuzzy msgid "Comment" msgstr "Comentario de etiquetas:" -#: src/splitpoints_window.c:2069 +#: src/splitpoints_window.c:2024 msgid "Year" msgstr "" -#: src/splitpoints_window.c:2073 +#: src/splitpoints_window.c:2028 msgid "Track" msgstr "" -#: src/preferences_window.c:249 +#: src/preferences_window.c:247 msgid "<b>Choose language (requires restart)</b>" msgstr "<b>Elija idioma (requiere reiniciar)</b>" -#: src/preferences_window.c:358 +#: src/preferences_window.c:357 msgid "Browse directory ..." msgstr "" -#: src/preferences_window.c:376 +#: src/preferences_window.c:375 msgid "Example for the single file split:" msgstr "" -#: src/preferences_window.c:415 +#: src/preferences_window.c:414 #, fuzzy msgid "Custom directory" msgstr "De formato" -#: src/preferences_window.c:417 +#: src/preferences_window.c:416 msgid "Create split files in a custom directory" msgstr "" -#: src/preferences_window.c:422 +#: src/preferences_window.c:421 msgid "Input file directory" msgstr "" -#: src/preferences_window.c:425 +#: src/preferences_window.c:424 msgid "Create split files in the same directory as the file being split" msgstr "" -#: src/preferences_window.c:431 +#: src/preferences_window.c:430 msgid "<b>Directory for split files</b>" msgstr "<b>Directorio para dividir archivos</b>" -#: src/preferences_window.c:444 +#: src/preferences_window.c:455 msgid "_Splitpoint name from filename (manual single file split only)" msgstr "" -#: src/preferences_window.c:446 +#: src/preferences_window.c:457 msgid "Name newly added splitpoints as the input file" msgstr "" -#: src/preferences_window.c:454 +#: src/preferences_window.c:465 msgid "Create directories from _filenames " msgstr "" -#: src/preferences_window.c:457 +#: src/preferences_window.c:468 msgid "" "If the splitpoint name is 'a/b/output', the directory chain 'a/b' is created " "in the output\n" @@ -589,114 +606,156 @@ "'<output_directory>/a/b' directory" msgstr "" -#: src/preferences_window.c:467 +#: src/preferences_window.c:478 msgid "F_rame mode (useful for mp3 VBR) (mp3 only)" msgstr "modo F_rame (útil para mp3 VBR) (mp3 solamente)" -#: src/preferences_window.c:469 +#: src/preferences_window.c:480 msgid "" "The split is slower with this option, but some mp3 files having\n" "Variable Bit Rate need this mode to be enabled" msgstr "" -#: src/preferences_window.c:476 +#: src/preferences_window.c:488 +msgid "_[Experimental] Bit reservoir handling for gapless playback (mp3 only)" +msgstr "" + +#: src/preferences_window.c:490 +msgid "" +"Split files will play gapless only on players supporting the LAME tag delay " +"and padding values\n" +"Gapless players examples: cmus, mpg123, foobar2000" +msgstr "" + +#: src/preferences_window.c:498 msgid "_Auto-adjust mode (use silence detection to auto-adjust splitpoints)" msgstr "" -#: src/preferences_window.c:479 +#: src/preferences_window.c:501 msgid "" "Splitpoints will be adjusted to match silences (if found)\n" "This mode requires the frame mode" msgstr "" -#: src/preferences_window.c:528 +#: src/preferences_window.c:550 msgid "Cutpoint offset (0 is the begin of silence and 1 the end):" msgstr "" -#: src/preferences_window.c:545 +#: src/preferences_window.c:567 msgid "Gap level (seconds around splitpoint to search for silence):" msgstr "nivel de Gap (segundos en splitpoint para buscar el silencio):" -#: src/preferences_window.c:562 +#: src/preferences_window.c:584 msgid "Set _default split options" msgstr "Establecer las opciones de dividir _default" -#: src/preferences_window.c:567 +#: src/preferences_window.c:589 msgid "<b>Split options</b>" msgstr "<b>Split opciones</b>" -#: src/preferences_window.c:630 +#: src/preferences_window.c:677 msgid "Player:" msgstr "" -#: src/preferences_window.c:649 +#: src/preferences_window.c:696 msgid "Refresh player every " msgstr "" -#: src/preferences_window.c:650 +#: src/preferences_window.c:697 src/preferences_window.c:725 msgid "milliseconds." msgstr "" -#: src/preferences_window.c:652 +#: src/preferences_window.c:699 msgid "\t(higher refresh rate decreases CPU usage - default is 200)" msgstr "" -#: src/preferences_window.c:658 +#: src/preferences_window.c:710 +msgid "Stop GStreamer preview" +msgstr "" + +#: src/preferences_window.c:710 +msgid "milliseconds before the end." +msgstr "" + +#: src/preferences_window.c:724 +msgid "Small seek jumps for " +msgstr "" + +#: src/preferences_window.c:733 +msgid "Seek jumps for " +msgstr "" + +#: src/preferences_window.c:734 src/preferences_window.c:743 +msgid "milliseconds. (0=auto)" +msgstr "" + +#: src/preferences_window.c:742 +msgid "Big seek jumps for " +msgstr "" + +#: src/preferences_window.c:753 +msgid "Seek times" +msgstr "" + +#: src/preferences_window.c:761 msgid "<b>Player options</b>" msgstr "<b>Reproductor de opciones</b>" -#: src/preferences_window.c:777 -msgid "" -"Wave preview is only available if the amplitude wave is shown in the player" +#: src/preferences_window.c:872 +msgid "Only available if the amplitude wave is shown in the player" +msgstr "" + +#: src/preferences_window.c:902 +msgid "Wave preview" msgstr "" -#: src/preferences_window.c:817 +#: src/preferences_window.c:912 #, c-format msgid "%d minute(s) window" msgstr "" -#: src/preferences_window.c:822 +#: src/preferences_window.c:917 #, c-format msgid "Wave interpolation level %d with threshold of %.1lf" msgstr "" -#: src/preferences_window.c:844 +#: src/preferences_window.c:939 msgid "Wave quality (higher is better but consumes more CPU):" msgstr "" -#: src/preferences_window.c:863 +#: src/preferences_window.c:961 msgid "<b>Amplitude wave options</b>" msgstr "" -#: src/preferences_window.c:920 +#: src/preferences_window.c:1054 msgid "Default format" msgstr "Formato predeterminado" -#: src/preferences_window.c:927 +#: src/preferences_window.c:1061 msgid " Default output: " msgstr "" -#: src/preferences_window.c:933 +#: src/preferences_window.c:1067 msgid " CDDB, CUE and tracktype.org default: " msgstr "" -#: src/preferences_window.c:939 +#: src/preferences_window.c:1073 msgid " Split with silence detection default: " msgstr "" -#: src/preferences_window.c:945 +#: src/preferences_window.c:1079 msgid " Trim using silence detection default: " msgstr "" -#: src/preferences_window.c:951 +#: src/preferences_window.c:1085 msgid " Error mode default: " msgstr "" -#: src/preferences_window.c:966 +#: src/preferences_window.c:1100 msgid "Custom format" msgstr "De formato" -#: src/preferences_window.c:985 +#: src/preferences_window.c:1119 msgid "" " @A: performer if found, otherwise artist\n" " @a: artist name\n" @@ -713,6 +772,8 @@ "number) **\n" " @U: track tag number as uppercase letter **\n" " @f: input filename (without extension)\n" +" @d: last directory of the input filename or the filename itself if no " +"directory\n" " @m, @s or @h: the number of minutes, seconds or hundreths of seconds of " "the start splitpoint **\n" " @M, @S or @H: the number of minutes, seconds or hundreths of seconds of " @@ -721,84 +782,84 @@ " (**) a digit may follow for the number of digits to output\n" msgstr "" -#: src/preferences_window.c:1010 +#: src/preferences_window.c:1145 msgid "<b>Output format for batch split and when importing splitpoints</b>" msgstr "" -#: src/preferences_window.c:1060 +#: src/preferences_window.c:1194 msgid "Original file tags" msgstr "Original file tags" -#: src/preferences_window.c:1063 +#: src/preferences_window.c:1197 #, fuzzy msgid "Custom tags (from the splitpoints table)" msgstr "Establecer splitpoints a la mesa de splitpoints" -#: src/preferences_window.c:1066 +#: src/preferences_window.c:1200 msgid "No tags" msgstr "No hay ninguna etiqueta" -#: src/preferences_window.c:1069 +#: src/preferences_window.c:1203 msgid "Extract tags from filename" msgstr "Extracto de las etiquetas de nombre de archivo" -#: src/preferences_window.c:1078 +#: src/preferences_window.c:1212 msgid "<b>Split files tags</b>" msgstr "<b>Dividir archivos de etiquetas</b>" -#: src/preferences_window.c:1100 +#: src/preferences_window.c:1234 msgid "No change" msgstr "Sin cambios" -#: src/preferences_window.c:1101 +#: src/preferences_window.c:1235 msgid "lowercase" msgstr "minúsculas" -#: src/preferences_window.c:1102 +#: src/preferences_window.c:1236 msgid "UPPERCASE" msgstr "MAYÚSCULAS" -#: src/preferences_window.c:1103 +#: src/preferences_window.c:1237 msgid "First uppercase" msgstr "En primer lugar mayúsculas" -#: src/preferences_window.c:1104 +#: src/preferences_window.c:1238 msgid "Word Uppercase" msgstr "La palabra en mayúsculas" -#: src/preferences_window.c:1126 +#: src/preferences_window.c:1284 msgid "<artist>: " msgstr "" -#: src/preferences_window.c:1135 +#: src/preferences_window.c:1293 msgid "<album>: " msgstr "" -#: src/preferences_window.c:1145 +#: src/preferences_window.c:1303 msgid "<title>: " msgstr "" -#: src/preferences_window.c:1154 +#: src/preferences_window.c:1312 msgid "<genre>: " msgstr "" -#: src/preferences_window.c:1163 +#: src/preferences_window.c:1321 msgid "<comment>: " msgstr "" -#: src/preferences_window.c:1172 +#: src/preferences_window.c:1330 msgid "<year>: " msgstr "" -#: src/preferences_window.c:1181 +#: src/preferences_window.c:1339 msgid "<track>: " msgstr "" -#: src/preferences_window.c:1210 +#: src/preferences_window.c:1379 msgid "Regular expression:" msgstr "Expresión regular:" -#: src/preferences_window.c:1213 +#: src/preferences_window.c:1382 msgid "" "Above enter PERL-like regular expression using named subgroups.\n" "Following names are recognized:\n" @@ -811,501 +872,316 @@ " (?<comment>) - comment" msgstr "" -#: src/preferences_window.c:1240 +#: src/preferences_window.c:1409 msgid "_Replace underscores by spaces" msgstr "_Replace Destaca por espacios" -#: src/preferences_window.c:1250 +#: src/preferences_window.c:1419 msgid "Artist text properties:" msgstr "propiedades del artista texto:" -#: src/preferences_window.c:1255 +#: src/preferences_window.c:1424 msgid "Album text properties:" msgstr "Álbum de las propiedades del texto:" -#: src/preferences_window.c:1260 +#: src/preferences_window.c:1429 msgid "Title text properties:" msgstr "Título de las propiedades del texto:" -#: src/preferences_window.c:1265 +#: src/preferences_window.c:1434 msgid "Comment text properties:" msgstr "Comentar las propiedades del texto:" -#: src/preferences_window.c:1269 +#: src/preferences_window.c:1438 msgid "Genre tag:" msgstr "" -#: src/preferences_window.c:1273 +#: src/preferences_window.c:1442 msgid "Comment tag:" msgstr "Comentario de etiquetas:" -#: src/preferences_window.c:1275 +#: src/preferences_window.c:1444 msgid "Regular expression test" msgstr "" -#: src/preferences_window.c:1291 +#: src/preferences_window.c:1460 msgid "_Test" msgstr "" -#: src/preferences_window.c:1295 +#: src/preferences_window.c:1464 msgid "Sample filename:" msgstr "Ejemplo de nombre de archivo:" -#: src/preferences_window.c:1300 +#: src/preferences_window.c:1469 msgid "Sample result:" msgstr "Resultado de la muestra:" -#: src/preferences_window.c:1312 +#: src/preferences_window.c:1481 msgid "ID3v1 & ID3v2 tags" msgstr "" -#: src/preferences_window.c:1319 +#: src/preferences_window.c:1488 msgid "ID3v2 tags" msgstr "" -#: src/preferences_window.c:1326 +#: src/preferences_window.c:1495 msgid "ID3v1 tags" msgstr "" -#: src/preferences_window.c:1333 +#: src/preferences_window.c:1502 msgid "Same tags version as the input file" msgstr "" -#: src/preferences_window.c:1339 +#: src/preferences_window.c:1508 msgid "<b>Tags version (mp3 only)</b>" msgstr "" -#: src/preferences_window.c:1380 +#: src/preferences_window.c:1548 src/main_window.c:774 msgid "Split" msgstr "" -#: src/preferences_window.c:1385 +#: src/preferences_window.c:1553 msgid "Tags" msgstr "" -#: src/preferences_window.c:1390 +#: src/preferences_window.c:1558 msgid "Player" msgstr "" -#: src/preferences_window.c:1395 +#: src/preferences_window.c:1563 #, fuzzy msgid "Output format" msgstr "De formato" -#: src/preferences_window.c:1401 +#: src/preferences_window.c:1569 msgid "Language" msgstr "" -#: src/split_mode_window.c:193 +#: src/split_mode_window.c:188 msgid "Use manual single file splitpoints" msgstr "" -#: src/split_mode_window.c:195 +#: src/split_mode_window.c:190 msgid "Split files using the manually defined splitpoints" msgstr "" -#: src/split_mode_window.c:205 +#: src/split_mode_window.c:200 msgid "Time" msgstr "Tiempo" -#: src/split_mode_window.c:207 +#: src/split_mode_window.c:202 msgid "Split every fixed time length; last track will most likely be smaller" msgstr "" -#: src/split_mode_window.c:224 +#: src/split_mode_window.c:219 msgid "Split every" msgstr "" -#: src/split_mode_window.c:237 +#: src/split_mode_window.c:232 msgid "seconds." msgstr "" -#: src/split_mode_window.c:244 +#: src/split_mode_window.c:239 msgid "Equal time tracks" msgstr "tiempo de Igualdad de pistas" -#: src/split_mode_window.c:246 +#: src/split_mode_window.c:241 msgid "Create smaller tracks having exactly the same time length" msgstr "" -#: src/split_mode_window.c:261 +#: src/split_mode_window.c:256 msgid "Split in" msgstr "" -#: src/split_mode_window.c:275 +#: src/split_mode_window.c:270 msgid "equal tracks." msgstr "" -#: src/split_mode_window.c:282 +#: src/split_mode_window.c:277 msgid "Trim using silence detection" msgstr "" -#: src/split_mode_window.c:284 +#: src/split_mode_window.c:279 msgid "" "Split by discarding silence from the begin and from the end\n" "If no silence is found, the output file is still created" msgstr "" -#: src/split_mode_window.c:302 src/split_mode_window.c:331 +#: src/split_mode_window.c:297 src/split_mode_window.c:326 msgid "Threshold level (dB) : " msgstr "" -#: src/split_mode_window.c:313 +#: src/split_mode_window.c:308 msgid "Silence - split with silence detection" msgstr "El silencio - se separó de la detección de silencio" -#: src/split_mode_window.c:314 +#: src/split_mode_window.c:309 #, fuzzy msgid "Split where silence is found" msgstr "El silencio - se separó de la detección de silencio" -#: src/split_mode_window.c:343 +#: src/split_mode_window.c:338 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end) : " msgstr "" -#: src/split_mode_window.c:355 +#: src/split_mode_window.c:350 msgid "Number of tracks (0 means all tracks) : " msgstr "" -#: src/split_mode_window.c:367 +#: src/split_mode_window.c:362 msgid "Minimum silence length (seconds) : " msgstr "" -#: src/split_mode_window.c:379 +#: src/split_mode_window.c:374 msgid "Minimum track length (seconds) : " msgstr "" -#: src/split_mode_window.c:389 +#: src/split_mode_window.c:384 msgid "Remove silence between tracks" msgstr "Quitar silencio entre las pistas" -#: src/split_mode_window.c:410 +#: src/split_mode_window.c:405 msgid "Wrap - split files created with mp3wrap or albumwrap (mp3 only)" msgstr "Envuelva - dividir archivos creados con mp3wrap o albumwrap (sólo MP3)" -#: src/split_mode_window.c:420 +#: src/split_mode_window.c:415 msgid "Synchronisation error mode (mp3 only)" msgstr "" -#: src/split_mode_window.c:422 +#: src/split_mode_window.c:417 msgid "" "Split where synchronisation errors are found\n" "Useful for splitting concatenated files" msgstr "" -#: src/mp3splt-gtk.c:102 -msgid " error: no files found in batch mode" +#: src/split_mode_window.c:428 +msgid "Internal sheet mode (CUE sheet for FLAC and ID3v2 chapters for MP3)" msgstr "" -#: src/mp3splt-gtk.c:278 -msgid " info: stopping the split process before exiting" -msgstr "Info: detener el proceso de división antes de salir" +#: src/split_mode_window.c:429 +msgid "Split using internal sheet" +msgstr "" -#: src/mp3splt-gtk.c:389 -#, c-format -msgid "Setting the output directory to %s.\n" +#: src/split_mode_window.c:439 +msgid "Use CUE file with similar name as the input file" msgstr "" -#: src/mp3splt-gtk.c:403 -#, c-format -msgid "Option -%c requires an argument.\n" +#: src/split_mode_window.c:441 +msgid "" +"Split using CUE file having similar name as the input file\n" +"Example: test.cue will be looked for when splitting test.mp3" msgstr "" -#: src/mp3splt-gtk.c:405 -#, c-format -msgid "Unknown option `-%c'.\n" +#: src/split_mode_window.c:452 +msgid "Use CDDB file with similar name as the input file" msgstr "" -#: src/mp3splt-gtk.c:407 -#, c-format -msgid "Unknown option character `\\x%x'.\n" +#: src/split_mode_window.c:454 +msgid "" +"Split using CDDB file having similar name as the input file\n" +"Example: test.cddb will be looked for when splitting test.mp3" msgstr "" -#: src/mp3splt-gtk.c:421 -#, c-format -msgid "Cannot open input file %s\n" +#: src/mp3splt-gtk.c:112 +msgid " error: no files found in batch mode" msgstr "" -#: src/main_window.c:173 +#: src/mp3splt-gtk.c:350 +msgid " info: stopping the split process before exiting" +msgstr "Info: detener el proceso de división antes de salir" + +#: src/main_window.c:170 msgid "Error launching external command" msgstr "" -#: src/main_window.c:204 +#: src/main_window.c:203 msgid "using" msgstr "utilizando" -#: src/main_window.c:208 +#: src/main_window.c:207 msgid "release of " msgstr "" -#: src/main_window.c:311 +#: src/main_window.c:310 msgid " info: stopping the split process.. please wait" msgstr "Info: detener el proceso de división .. por favor espere" -#: src/main_window.c:319 src/main_window.c:778 -msgid "Preferences" -msgstr "Preferencias" - -#: src/main_window.c:331 -msgid "TrackType" -msgstr "" - -#: src/main_window.c:346 src/main_window.c:781 -msgid "Split files" -msgstr "" - -#: src/main_window.c:361 src/main_window.c:784 -msgid "Splitpoints" -msgstr "Splitpoints" - -#: src/main_window.c:432 +#: src/main_window.c:375 msgid " error: split in progress..." msgstr "error: dividida en curso ..." -#: src/main_window.c:442 +#: src/main_window.c:385 msgid " error: no path of split selected" msgstr "" -#: src/main_window.c:725 -msgid "Choose File" -msgstr "Elija Archivo" - -#: src/main_window.c:755 -msgid "_File" -msgstr "" - -#: src/main_window.c:756 -msgid "_View" -msgstr "" - -#: src/main_window.c:757 -msgid "_Player" -msgstr "" - -#: src/main_window.c:758 -msgid "_Help" -msgstr "_Help" - -#: src/main_window.c:760 -msgid "_Open single file..." -msgstr "" - -#: src/main_window.c:760 -msgid "Open" -msgstr "Abierto" - -#: src/main_window.c:764 -msgid "_Add files or directories to batch ..." -msgstr "" - -#: src/main_window.c:765 -msgid "Add files or directories to batch" -msgstr "" - -#: src/main_window.c:768 -msgid "_Import splitpoints from file..." -msgstr "" - -#: src/main_window.c:769 -msgid "Import splitpoints from file..." -msgstr "" - -#: src/main_window.c:771 -msgid "Import splitpoints from _TrackType.org..." -msgstr "" - -#: src/main_window.c:772 -msgid "Import splitpoints from TrackType.org..." -msgstr "" - -#: src/main_window.c:775 -msgid "_Export splitpoints..." -msgstr "" - -#: src/main_window.c:776 -msgid "Export splitpoints" -msgstr "" - -#: src/main_window.c:778 -msgid "_Preferences" -msgstr "" - -#: src/main_window.c:781 -msgid "Split _files" +#: src/main_window.c:729 +msgid "Open file ..." msgstr "" -#: src/main_window.c:784 -msgid "_Splitpoints" +#: src/main_window.c:777 +msgid "Split the current file" msgstr "" -#: src/main_window.c:787 -msgid "_Split !" -msgstr "_Split!" - -#: src/main_window.c:787 src/main_window.c:998 -msgid "Split !" -msgstr "Split!" - -#: src/main_window.c:790 -msgid "_Batch split !" +#: src/main_window.c:786 +msgid "Manual single file split" msgstr "" -#: src/main_window.c:793 -msgid "_Quit" -msgstr "_Quit" - -#: src/main_window.c:793 -msgid "Quit" -msgstr "Salir" - -#: src/main_window.c:797 -msgid "_Contents" -msgstr "_Contents" - -#: src/main_window.c:797 -msgid "Contents" -msgstr "Contenido" - -#: src/main_window.c:801 -msgid "Messages _history" -msgstr "Mensajes _history" - -#: src/main_window.c:804 -msgid "_About" -msgstr "_about" - #: src/main_window.c:804 -msgid "About" -msgstr "" - -#: src/main_window.c:808 -msgid "P_ause / Play" -msgstr "" - -#: src/main_window.c:808 -msgid "Pause/Play" -msgstr "" - -#: src/main_window.c:811 -msgid "Seek _forward" -msgstr "" - -#: src/main_window.c:811 -msgid "Seek forward" -msgstr "" - -#: src/main_window.c:813 -msgid "Seek _backward" -msgstr "" - -#: src/main_window.c:813 -msgid "Seek backward" -msgstr "" - -#: src/main_window.c:816 -msgid "Small seek f_orward" -msgstr "" - -#: src/main_window.c:816 -msgid "Small seek forward" -msgstr "" - -#: src/main_window.c:818 -msgid "Small seek back_ward" -msgstr "" - -#: src/main_window.c:818 -msgid "Small seek backward" -msgstr "" - -#: src/main_window.c:821 -msgid "Big seek fo_rward" -msgstr "" - -#: src/main_window.c:821 -msgid "Big seek forward" +msgid "Batch & automatic split" msgstr "" -#: src/main_window.c:823 -msgid "Big seek bac_kward" +#: src/main_window.c:822 +msgid "S_top" msgstr "" -#: src/main_window.c:823 -msgid "Big seek backward" +#: src/main_window.c:1089 +#, c-format +msgid "Setting the output directory to %s.\n" msgstr "" -#: src/main_window.c:826 -msgid "Seek to _next splitpoint" +#: src/main_window.c:1103 +#, c-format +msgid "Option -%c requires an argument.\n" msgstr "" -#: src/main_window.c:827 -msgid "Seek to next splitpoint" +#: src/main_window.c:1105 +#, c-format +msgid "Unknown option `-%c'.\n" msgstr "" -#: src/main_window.c:828 -msgid "Seek to _previous splitpoint" +#: src/main_window.c:1107 +#, c-format +msgid "Unknown option character `\\x%x'.\n" msgstr "" -#: src/main_window.c:829 -msgid "Seek to previous splitpoint" +#: src/main_window.c:1121 +#, c-format +msgid "Cannot open input file %s\n" msgstr "" -#: src/main_window.c:832 -#, fuzzy -msgid "_Quick preview before closest splitpoint" -msgstr "No se puede dividir splitpoint última vista previa" +#: src/main_window.c:1164 +msgid "Choose File" +msgstr "Elija Archivo" -#: src/main_window.c:832 +#: src/main_window.c:1168 src/import.c:61 #, fuzzy -msgid "Quick preview before closest splitpoint" -msgstr "No se puede dividir splitpoint última vista previa" - -#: src/main_window.c:835 -msgid "Add _splitpoint" -msgstr "" - -#: src/main_window.c:838 -msgid "_Delete closest splitpoint" -msgstr "" - -#: src/main_window.c:839 -msgid "Delete closest splitpoint" -msgstr "" - -#: src/main_window.c:841 -msgid "Zoom _in" -msgstr "" - -#: src/main_window.c:841 -msgid "Zoom in" -msgstr "" - -#: src/main_window.c:842 -msgid "Zoom _out" -msgstr "" - -#: src/main_window.c:842 -msgid "Zoom out" -msgstr "" - -#: src/main_window.c:953 -msgid "Open file ..." -msgstr "" +msgid "_Open" +msgstr "Abierto" -#: src/main_window.c:1001 -msgid "Split the current file" +#: src/main_window.c:1208 +msgid "TrackType" msgstr "" -#: src/main_window.c:1010 -msgid "Manual single file split" -msgstr "" +#: src/main_window.c:1225 +msgid "Preferences" +msgstr "Preferencias" -#: src/main_window.c:1028 -msgid "Batch & automatic split" -msgstr "" +#: src/main_window.c:1257 +msgid "Splitpoints" +msgstr "Splitpoints" -#: src/main_window.c:1048 -msgid "S_top" +#: src/main_window.c:1273 +msgid "Split files" msgstr "" #: src/libmp3splt_manager.c:71 @@ -1313,72 +1189,138 @@ msgid " File '%s' created" msgstr "" -#: src/libmp3splt_manager.c:182 +#: src/libmp3splt_manager.c:166 #, c-format msgid " preparing \"%s\" (%d of %d)" msgstr "" -#: src/libmp3splt_manager.c:188 +#: src/libmp3splt_manager.c:172 #, c-format msgid " creating \"%s\" (%d of %d)" msgstr "" -#: src/libmp3splt_manager.c:194 +#: src/libmp3splt_manager.c:178 msgid " searching for sync errors..." msgstr "en busca de errores de sincronización ..." -#: src/libmp3splt_manager.c:199 +#: src/libmp3splt_manager.c:183 msgid "Computing amplitude wave data..." msgstr "" -#: src/libmp3splt_manager.c:204 +#: src/libmp3splt_manager.c:188 #, c-format msgid "S: %02d, Level: %.2f dB; scanning for silence..." msgstr "" -#: src/import.c:55 +#: src/import.c:56 msgid "Choose file to import" msgstr "" -#: src/import.c:207 -msgid "CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt)" +#: src/import.c:271 +msgid "" +"CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt), internal sheet (*." +"flac), chapters (*.mp3)" msgstr "" -#: src/import.c:211 +#: src/import.c:275 msgid "CDDB files (*.cddb)" msgstr "" -#: src/import.c:213 +#: src/import.c:277 msgid "CUE files (*.cue)" msgstr "" -#: src/import.c:215 +#: src/import.c:279 msgid "Audacity labels files (*.txt)" msgstr "" -#: src/import.c:217 +#: src/import.c:281 +msgid "FLAC internal sheet (*.flac)" +msgstr "" + +#: src/import.c:283 +#, fuzzy +msgid "ID3v2 chapters (*.mp3)" +msgstr "archivos MP3 (*. mp3)" + +#: src/import.c:285 msgid "All files" msgstr "Todos los archivos" -#: src/import.c:348 +#: src/import.c:476 msgid "--- last cue splitpoint ---" msgstr "" -#: src/gstreamer_control.c:73 +#: src/gstreamer_control.c:71 #, c-format msgid "gstreamer error: %s" msgstr "" -#: src/gstreamer_control.c:99 +#: src/gstreamer_control.c:97 #, c-format msgid "Warning: %s" msgstr "" -#: src/gstreamer_control.c:125 +#: src/gstreamer_control.c:123 #, c-format msgid "Info: %s" msgstr "" -#: src/gstreamer_control.c:369 +#: src/gstreamer_control.c:354 msgid " error: cannot create gstreamer playbin\n" msgstr "" + +#~ msgid "Split !" +#~ msgstr "Split!" + +#~ msgid "_Help" +#~ msgstr "_Help" + +#~ msgid "_Split !" +#~ msgstr "_Split!" + +#~ msgid "_Quit" +#~ msgstr "_Quit" + +#~ msgid "Quit" +#~ msgstr "Salir" + +#~ msgid "_Contents" +#~ msgstr "_Contents" + +#~ msgid "Contents" +#~ msgstr "Contenido" + +#~ msgid "Messages _history" +#~ msgstr "Mensajes _history" + +#~ msgid "_About" +#~ msgstr "_about" + +#, fuzzy +#~ msgid "Preview before c_losest splitpoint" +#~ msgstr "No se puede dividir splitpoint última vista previa" + +#, fuzzy +#~ msgid "Preview before closest splitpoint" +#~ msgstr "No se puede dividir splitpoint última vista previa" + +#, fuzzy +#~ msgid "Preview clos_est splitpoint" +#~ msgstr "No se puede dividir splitpoint última vista previa" + +#, fuzzy +#~ msgid "Preview closest splitpoint" +#~ msgstr "No se puede dividir splitpoint última vista previa" + +#, fuzzy +#~ msgid "Preview _closest splitpoint & pause" +#~ msgstr "No se puede dividir splitpoint última vista previa" + +#, fuzzy +#~ msgid "Preview closest splitpoint & pause" +#~ msgstr "No se puede dividir splitpoint última vista previa" + +#, fuzzy +#~ msgid "_Quick preview before closest splitpoint" +#~ msgstr "No se puede dividir splitpoint última vista previa" Binary files /tmp/tmpA90wb_/LJUs5HNncE/mp3splt-gtk-0.9/po/fr_FR.gmo and /tmp/tmpA90wb_/V0ZBgpNw8L/mp3splt-gtk-0.9.2/po/fr_FR.gmo differ diff -Nru mp3splt-gtk-0.9/po/fr_FR.po mp3splt-gtk-0.9.2/po/fr_FR.po --- mp3splt-gtk-0.9/po/fr_FR.po 2013-07-20 07:11:45.000000000 +0000 +++ mp3splt-gtk-0.9.2/po/fr_FR.po 2014-11-09 16:50:48.000000000 +0000 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: mp3splt-gtk\n" "Report-Msgid-Bugs-To: io_alex_2004@users.sourceforge.net\n" -"POT-Creation-Date: 2013-07-20 09:11+0200\n" +"POT-Creation-Date: 2014-11-09 17:50+0100\n" "PO-Revision-Date: 2013-04-29 21:06+0000\n" "Last-Translator: Chris38 <ch.daudin@free.fr>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -20,40 +20,50 @@ "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: src/audacious_control.c:66 src/snackamp_control.c:337 -#: src/gstreamer_control.c:228 +#: src/gstreamer_control.c:217 msgid "stereo" msgstr "stéréo" #: src/audacious_control.c:70 src/snackamp_control.c:341 -#: src/gstreamer_control.c:232 +#: src/gstreamer_control.c:221 msgid "mono" msgstr "mono" #: src/audacious_control.c:73 src/snackamp_control.c:344 -#: src/gstreamer_control.c:198 +#: src/gstreamer_control.c:190 msgid "Kbps" msgstr "Kbps" #: src/audacious_control.c:74 src/snackamp_control.c:345 -#: src/gstreamer_control.c:199 +#: src/gstreamer_control.c:191 msgid "Khz" msgstr "Khz" -#: src/utilities.c:87 +#: src/utilities.c:86 #, c-format msgid "Processing file '%s' ..." msgstr "Traitement du fichier '%s' ..." -#: src/export.c:93 +#: src/export.c:154 #, fuzzy msgid "Cue filename to export" msgstr "Choisir un fichier à importer" -#: src/export.c:105 +#: src/export.c:157 src/multiple_files_window.c:83 +#: src/splitpoints_window.c:1126 src/splitpoints_window.c:1183 +#: src/main_window.c:1166 src/import.c:59 +msgid "_Cancel" +msgstr "" + +#: src/export.c:159 +msgid "_Save" +msgstr "" + +#: src/export.c:166 msgid "cue files (*.cue)" msgstr "Fichiers cue (*.cue)" -#: src/widgets_helper.c:428 +#: src/widgets_helper.c:401 msgid "_Close" msgstr "_Fermer" @@ -61,7 +71,7 @@ msgid "Processing Douglas-Peucker filters ..." msgstr "Traitement du filtre Douglas-Peucker..." -#: src/player_window.c:580 +#: src/player_window.c:576 msgid "" "\n" " Cannot connect to snackAmp player.\n" @@ -95,7 +105,7 @@ " Seulement le port par défaut fonctionne (8775)\n" " Après, redémarrer snackamp et réessayer.\n" -#: src/player_window.c:595 +#: src/player_window.c:591 msgid "" "\n" " Cannot connect to Audacious player.\n" @@ -109,149 +119,156 @@ " Impossible de se connecter au lecteur Audacious.\n" " Vérifiez l'installation d'audacious.\n" -#: src/player_window.c:603 src/player_window.c:607 +#: src/player_window.c:599 src/player_window.c:603 msgid "Cannot connect to player" msgstr "Impossible de se connecter au lecteur" -#: src/player_window.c:904 +#: src/player_window.c:604 src/splitpoints_window.c:1124 +#: src/splitpoints_window.c:1181 +msgid "_OK" +msgstr "" + +#: src/player_window.c:900 #, fuzzy msgid "Previous track" msgstr "Précédent" -#: src/player_window.c:922 +#: src/player_window.c:918 msgid "Play" msgstr "Lecture" -#: src/player_window.c:939 +#: src/player_window.c:935 msgid "Pause" msgstr "Pause" -#: src/player_window.c:956 +#: src/player_window.c:952 msgid "Stop" msgstr "Arrêt" -#: src/player_window.c:973 +#: src/player_window.c:969 #, fuzzy msgid "Next track" msgstr "pistes de même taille." -#: src/player_window.c:980 src/splitpoints_window.c:1436 +#: src/player_window.c:976 src/splitpoints_window.c:1407 msgid "_Add" msgstr "Aj_outer" -#: src/player_window.c:987 +#: src/player_window.c:983 #, fuzzy msgid "Add splitpoint at the current player position" msgstr "Ajouter point de découpage depuis le lecteur" -#: src/player_window.c:996 src/splitpoints_window.c:1134 -#: src/splitpoints_window.c:1479 +#: src/player_window.c:992 src/splitpoints_window.c:1121 +#: src/splitpoints_window.c:1450 msgid "Set trim splitpoints using silence detection" msgstr "Définir un point de troncature grâce à la détection de silence" -#: src/player_window.c:1007 src/splitpoints_window.c:1193 -#: src/splitpoints_window.c:1489 +#: src/player_window.c:1003 src/splitpoints_window.c:1178 +#: src/splitpoints_window.c:1460 msgid "Set splitpoints from silence detection" msgstr "Points à partir de la recherche du silence" -#: src/player_window.c:1012 +#: src/player_window.c:1008 msgid "Amplitude _wave" msgstr "_Signal d'amplitude" -#: src/player_window.c:1018 +#: src/player_window.c:1014 msgid "Shows the amplitude level wave" msgstr "Montre le niveau du signal audio" -#: src/player_window.c:1021 +#: src/player_window.c:1017 msgid "_Connect" msgstr "_Connecter" -#: src/player_window.c:1024 +#: src/player_window.c:1020 msgid "Connect to player" msgstr "Se connecter au lecteur" -#: src/player_window.c:1027 +#: src/player_window.c:1023 msgid "_Disconnect" msgstr "_Déconnecter" -#: src/player_window.c:1030 +#: src/player_window.c:1026 msgid "Disconnect from player" msgstr "Se déconnecter du lecteur" -#: src/player_window.c:1153 +#: src/player_window.c:1160 #, c-format msgid "before %s" msgstr "avant %s" -#: src/player_window.c:1892 +#: src/player_window.c:1981 msgid "No available wave" msgstr "Pas de signal disponible" -#: src/player_window.c:2045 src/preferences_window.c:826 +#: src/player_window.c:2073 src/preferences_window.c:921 msgid "No wave interpolation" msgstr "Pas d'interpolation de signal" -#: src/player_window.c:2051 +#: src/player_window.c:2079 #, c-format msgid "Wave interpolation level %d" msgstr "Niveau d'interpolation de signal à %d" -#: src/player_window.c:2131 +#: src/player_window.c:2141 msgid " Please wait for the process to finish ..." msgstr "Attendre la fin du traitement svp..." -#: src/player_window.c:2153 +#: src/player_window.c:2163 msgid " Please wait ... currently computing Douglas Peucker filters." msgstr "Attendre svp, traitement des filtres Douglas-Peucker." -#: src/player_window.c:2237 +#: src/player_window.c:2247 msgid " left click on splitpoint selects it, right click erases it" msgstr " clic gauche sur le point le sélectionne, clic droit l'efface" -#: src/player_window.c:2242 +#: src/player_window.c:2252 msgid "" " left click + move changes song position, right click + move changes zoom" msgstr "" " clic gauche + déplacement change la position, clic droit + déplacement " "change le zoom" -#: src/player_window.c:2248 +#: src/player_window.c:2258 msgid "" " left click on point + move changes point position, right click play preview" msgstr "" " clic gauche sur le point + déplacement change la position du point, clic " "droit aperçu" -#: src/player_window.c:2253 +#: src/player_window.c:2263 msgid " left click on rectangle checks/unchecks 'keep splitpoint'" msgstr " clic gauche sur rectangle coche/décoche 'garder le point'" -#: src/player_window.c:2678 -msgid " quick preview..." +#: src/player_window.c:2695 +#, fuzzy +msgid " preview..." msgstr " aperçu rapide..." -#: src/player_window.c:3022 +#: src/player_window.c:3034 msgid "Splitpoints and amplitude wave v_iew" msgstr "Afficher points de découpages et _signal d'amplitude" -#: src/player_window.c:3138 +#: src/player_window.c:3150 msgid "History" msgstr "Historique" -#: src/player_window.c:3228 +#: src/player_window.c:3240 msgid "_Erase selected entries" msgstr "_Effacer les éléments sélectionnés" -#: src/player_window.c:3236 +#: src/player_window.c:3248 msgid "E_rase all history" msgstr "Effa_cer tout l'historique" -#: src/player_window.c:3278 +#: src/player_window.c:3290 msgid "Files h_istory" msgstr "Historique des fichiers" -#: src/player_window.c:3404 -msgid " quick preview finished, song paused" +#: src/player_window.c:3330 +#, fuzzy +msgid " preview finished, song paused" msgstr " aperçu rapide fini, lecteur sur pause" #: src/multiple_files_window.c:63 @@ -262,50 +279,51 @@ msgid "Choose files or directories" msgstr "Choisir les fichiers ou les dossiers" -#: src/multiple_files_window.c:100 src/main_window.c:691 +#: src/multiple_files_window.c:98 src/main_window.c:671 #, fuzzy msgid "mp3, ogg vorbis and flac files (*.mp3 *.ogg *.flac)" msgstr "fichiers mp3 et ogg (*.mp3 *.ogg)" -#: src/multiple_files_window.c:110 src/main_window.c:701 +#: src/multiple_files_window.c:108 src/main_window.c:681 msgid "mp3 files (*.mp3)" msgstr "fichiers mp3 (*.mp3)" -#: src/multiple_files_window.c:116 src/main_window.c:707 +#: src/multiple_files_window.c:114 src/main_window.c:687 #, fuzzy msgid "ogg vorbis files (*.ogg)" msgstr "fichiers ogg (*.ogg)" -#: src/multiple_files_window.c:122 src/main_window.c:713 +#: src/multiple_files_window.c:120 src/main_window.c:693 #, fuzzy msgid "flac files (*.flac)" msgstr "Fichiers cue (*.cue)" -#: src/multiple_files_window.c:129 +#: src/multiple_files_window.c:127 msgid "All Files" msgstr "Tous les fichiers" -#: src/multiple_files_window.c:260 +#: src/multiple_files_window.c:258 msgid "_Add files or directories" msgstr "_Ajouter fichiers ou dossiers" -#: src/multiple_files_window.c:261 +#: src/multiple_files_window.c:259 msgid "Only the supported file types are added" msgstr "" -#: src/multiple_files_window.c:269 +#: src/multiple_files_window.c:267 msgid "_Remove selected" msgstr "_Enlever la sélection" -#: src/multiple_files_window.c:279 src/splitpoints_window.c:1456 +#: src/multiple_files_window.c:277 src/splitpoints_window.c:1427 msgid "R_emove all" msgstr "Effa_cer tout" -#: src/multiple_files_window.c:287 src/main_window.c:790 -msgid "Batch split !" +#: src/multiple_files_window.c:285 +#, fuzzy +msgid "Batch split" msgstr "Découpage par lot !" -#: src/multiple_files_window.c:288 +#: src/multiple_files_window.c:286 #, fuzzy msgid "Split all the files" msgstr "Fichiers découpés" @@ -318,11 +336,11 @@ msgid "C_lear" msgstr "_Effacer" -#: src/messages_window.c:168 src/main_window.c:801 +#: src/messages_window.c:168 msgid "Messages history" msgstr "Historique des messages" -#: src/split_files_window.c:69 src/splitpoints_window.c:1956 +#: src/split_files_window.c:69 src/splitpoints_window.c:1911 msgid "Filename" msgstr "Nom fichier" @@ -347,29 +365,29 @@ msgid "Album title" msgstr "Titre de l'album" -#: src/freedb_window.c:169 src/freedb_window.c:477 +#: src/freedb_window.c:154 src/freedb_window.c:472 msgid "please wait... contacting tracktype.org" msgstr "veuillez attendre... connexion avec tracktype.org" -#: src/freedb_window.c:440 src/freedb_window.c:461 src/ui_manager.c:352 +#: src/freedb_window.c:435 src/freedb_window.c:456 src/ui_manager.c:372 #: src/splitpoints_window.c:671 src/splitpoints_window.c:792 #: src/splitpoints_window.c:842 msgid "description here" msgstr "description" -#: src/freedb_window.c:565 +#: src/freedb_window.c:559 msgid "Search tracktype.org:" msgstr "Chercher sur tracktype.org :" -#: src/freedb_window.c:575 +#: src/freedb_window.c:569 msgid "_Search" msgstr "_Recherche" -#: src/freedb_window.c:604 +#: src/freedb_window.c:598 msgid "_Add splitpoints" msgstr "Aj_outer les points" -#: src/freedb_window.c:610 +#: src/freedb_window.c:604 msgid "Set splitpoints to the splitpoints table" msgstr "Mettre les points au tableau de points de coupure" @@ -386,231 +404,231 @@ msgid " error: you already have the splitpoint in table" msgstr " erreur : vous avez déjà ce point de coupure dans le tableau" -#: src/splitpoints_window.c:1159 src/splitpoints_window.c:1215 -#: src/preferences_window.c:497 +#: src/splitpoints_window.c:1146 src/splitpoints_window.c:1200 +#: src/preferences_window.c:519 msgid "Threshold level (dB):" msgstr "Niveau seuil (dB) :" -#: src/splitpoints_window.c:1229 +#: src/splitpoints_window.c:1214 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end):" msgstr "Position de la coupure dans le silence (0 = au début, 1 = à la fin) :" -#: src/splitpoints_window.c:1243 +#: src/splitpoints_window.c:1228 msgid "Number of tracks (0 means all tracks):" msgstr "Nombre de pistes (0 signifie toutes les pistes) :" -#: src/splitpoints_window.c:1255 src/preferences_window.c:513 +#: src/splitpoints_window.c:1240 src/preferences_window.c:535 msgid "Minimum silence length (seconds):" msgstr "Durée minimum du silence (secondes) :" -#: src/splitpoints_window.c:1267 +#: src/splitpoints_window.c:1252 msgid "Minimum track length (seconds):" msgstr "Durée minimum d'une piste (secondes) :" -#: src/splitpoints_window.c:1277 +#: src/splitpoints_window.c:1262 msgid "_Remove silence between tracks" msgstr "_Effacer le silence entre les pistes" -#: src/splitpoints_window.c:1429 +#: src/splitpoints_window.c:1400 msgid "Minutes:" msgstr "Minutes :" -#: src/splitpoints_window.c:1431 +#: src/splitpoints_window.c:1402 msgid "Seconds:" msgstr "Secondes :" -#: src/splitpoints_window.c:1433 +#: src/splitpoints_window.c:1404 msgid "Hundredths:" msgstr "Centièmes :" -#: src/splitpoints_window.c:1443 src/main_window.c:836 +#: src/splitpoints_window.c:1414 msgid "Add splitpoint" msgstr "Ajouter le point" -#: src/splitpoints_window.c:1446 +#: src/splitpoints_window.c:1417 msgid "_Remove" msgstr "_Effacer" -#: src/splitpoints_window.c:1453 +#: src/splitpoints_window.c:1424 #, fuzzy msgid "Remove selected splitpoints" msgstr "_Enlever la sélection" -#: src/splitpoints_window.c:1463 +#: src/splitpoints_window.c:1434 #, fuzzy msgid "Remove all splitpoints" msgstr "Retirer toutes le lignes" -#: src/splitpoints_window.c:1473 +#: src/splitpoints_window.c:1444 msgid "_Trim splitpoints" msgstr "Points de _troncature" -#: src/splitpoints_window.c:1483 +#: src/splitpoints_window.c:1454 msgid "_Silence detection" msgstr "Détection du _silence" -#: src/splitpoints_window.c:1561 src/mp3splt-gtk.c:119 +#: src/splitpoints_window.c:1534 src/mp3splt-gtk.c:129 msgid " finished" msgstr " fini" -#: src/splitpoints_window.c:1635 +#: src/splitpoints_window.c:1608 msgid " cannot preview, not connected to player" msgstr " impossible d'écouter l'aperçu, déconnecté du lecteur" -#: src/splitpoints_window.c:1653 +#: src/splitpoints_window.c:1626 msgid " cannot split preview last splitpoint" msgstr " impossible d'écouter l'aperçu du dernier point de coupure" -#: src/splitpoints_window.c:1824 +#: src/splitpoints_window.c:1797 msgid "Clone all tags" msgstr "" -#: src/splitpoints_window.c:1832 +#: src/splitpoints_window.c:1803 #, fuzzy msgid "Clone title" msgstr "Titre de l'album" -#: src/splitpoints_window.c:1838 +#: src/splitpoints_window.c:1807 msgid "Clone artist" msgstr "" -#: src/splitpoints_window.c:1844 +#: src/splitpoints_window.c:1811 msgid "Clone album" msgstr "" -#: src/splitpoints_window.c:1850 +#: src/splitpoints_window.c:1815 msgid "Clone genre" msgstr "" -#: src/splitpoints_window.c:1856 +#: src/splitpoints_window.c:1819 msgid "Clone year" msgstr "" -#: src/splitpoints_window.c:1862 +#: src/splitpoints_window.c:1823 msgid "Clone track" msgstr "" -#: src/splitpoints_window.c:1868 +#: src/splitpoints_window.c:1827 msgid "Clone comment" msgstr "" -#: src/splitpoints_window.c:1876 +#: src/splitpoints_window.c:1833 msgid "Auto-increment track" msgstr "" -#: src/splitpoints_window.c:1948 +#: src/splitpoints_window.c:1903 msgid "Keep" msgstr "Garder" -#: src/splitpoints_window.c:1964 +#: src/splitpoints_window.c:1919 msgid "Secs" msgstr "Secondes" -#: src/splitpoints_window.c:1972 +#: src/splitpoints_window.c:1927 msgid "Mins" msgstr "Minutes" -#: src/splitpoints_window.c:1980 +#: src/splitpoints_window.c:1935 msgid "Hundr" msgstr "Centièmes" -#: src/splitpoints_window.c:1988 +#: src/splitpoints_window.c:1943 msgid "Length" msgstr "Durée" -#: src/splitpoints_window.c:1995 +#: src/splitpoints_window.c:1950 msgid "LiveP" msgstr "ALive" -#: src/splitpoints_window.c:2003 +#: src/splitpoints_window.c:1958 msgid "SplitP" msgstr "ACoupure" -#: src/splitpoints_window.c:2053 +#: src/splitpoints_window.c:2008 msgid "Title" msgstr "" -#: src/splitpoints_window.c:2056 +#: src/splitpoints_window.c:2011 #, fuzzy msgid "Artist" msgstr "<artiste> : " -#: src/splitpoints_window.c:2059 +#: src/splitpoints_window.c:2014 #, fuzzy msgid "Album" msgstr "Titre de l'album" -#: src/splitpoints_window.c:2062 +#: src/splitpoints_window.c:2017 #, fuzzy msgid "Genre" msgstr "Tag genre :" -#: src/splitpoints_window.c:2066 +#: src/splitpoints_window.c:2021 #, fuzzy msgid "Comment" msgstr "Tag commentaire :" -#: src/splitpoints_window.c:2069 +#: src/splitpoints_window.c:2024 msgid "Year" msgstr "" -#: src/splitpoints_window.c:2073 +#: src/splitpoints_window.c:2028 #, fuzzy msgid "Track" msgstr "TrackType" -#: src/preferences_window.c:249 +#: src/preferences_window.c:247 msgid "<b>Choose language (requires restart)</b>" msgstr "<b>Choisir la langue (nécessite redémarrage)</b>" -#: src/preferences_window.c:358 +#: src/preferences_window.c:357 #, fuzzy msgid "Browse directory ..." msgstr "Dossier _explorateur" -#: src/preferences_window.c:376 +#: src/preferences_window.c:375 #, fuzzy msgid "Example for the single file split:" msgstr "Découpage manuel fichier unique" -#: src/preferences_window.c:415 +#: src/preferences_window.c:414 #, fuzzy msgid "Custom directory" msgstr "Choisir le dossier de sortie du découpage" -#: src/preferences_window.c:417 +#: src/preferences_window.c:416 msgid "Create split files in a custom directory" msgstr "" -#: src/preferences_window.c:422 +#: src/preferences_window.c:421 #, fuzzy msgid "Input file directory" msgstr "_Ajouter fichiers ou dossiers" -#: src/preferences_window.c:425 +#: src/preferences_window.c:424 msgid "Create split files in the same directory as the file being split" msgstr "" -#: src/preferences_window.c:431 +#: src/preferences_window.c:430 msgid "<b>Directory for split files</b>" msgstr "<b>Répertoire des fichiers découpés</b>" -#: src/preferences_window.c:444 +#: src/preferences_window.c:455 msgid "_Splitpoint name from filename (manual single file split only)" msgstr "" "Nom du _point de découpage à partir du nom de fichier (seulement pour " "découpage fichier unique)" -#: src/preferences_window.c:446 +#: src/preferences_window.c:457 #, fuzzy msgid "Name newly added splitpoints as the input file" msgstr "Même version des tags que le fichier d'entrée" -#: src/preferences_window.c:454 +#: src/preferences_window.c:465 msgid "Create directories from _filenames " msgstr "Créer dossiers à partir des _noms de fichier" -#: src/preferences_window.c:457 +#: src/preferences_window.c:468 msgid "" "If the splitpoint name is 'a/b/output', the directory chain 'a/b' is created " "in the output\n" @@ -618,123 +636,170 @@ "'<output_directory>/a/b' directory" msgstr "" -#: src/preferences_window.c:467 +#: src/preferences_window.c:478 msgid "F_rame mode (useful for mp3 VBR) (mp3 only)" msgstr "Mode 'f_rame' (utile pour mp3 VBR) (seulement mp3)" -#: src/preferences_window.c:469 +#: src/preferences_window.c:480 msgid "" "The split is slower with this option, but some mp3 files having\n" "Variable Bit Rate need this mode to be enabled" msgstr "" -#: src/preferences_window.c:476 +#: src/preferences_window.c:488 +msgid "_[Experimental] Bit reservoir handling for gapless playback (mp3 only)" +msgstr "" + +#: src/preferences_window.c:490 +msgid "" +"Split files will play gapless only on players supporting the LAME tag delay " +"and padding values\n" +"Gapless players examples: cmus, mpg123, foobar2000" +msgstr "" + +#: src/preferences_window.c:498 #, fuzzy msgid "_Auto-adjust mode (use silence detection to auto-adjust splitpoints)" msgstr "" "Mode _auto ajustement (utilise la détection de silence pour créer les points " "de découpage)" -#: src/preferences_window.c:479 +#: src/preferences_window.c:501 msgid "" "Splitpoints will be adjusted to match silences (if found)\n" "This mode requires the frame mode" msgstr "" -#: src/preferences_window.c:528 +#: src/preferences_window.c:550 msgid "Cutpoint offset (0 is the begin of silence and 1 the end):" msgstr "Position de la coupure dans le silence (0 = au début, 1 = à la fin) :" -#: src/preferences_window.c:545 +#: src/preferences_window.c:567 msgid "Gap level (seconds around splitpoint to search for silence):" msgstr "Fourchette (secondes autour du point pour chercher un silence) :" -#: src/preferences_window.c:562 +#: src/preferences_window.c:584 msgid "Set _default split options" msgstr "Options par _défaut" -#: src/preferences_window.c:567 +#: src/preferences_window.c:589 msgid "<b>Split options</b>" msgstr "<b>Options de coupure</b>" -#: src/preferences_window.c:630 +#: src/preferences_window.c:677 msgid "Player:" msgstr "Lecteur :" -#: src/preferences_window.c:649 +#: src/preferences_window.c:696 msgid "Refresh player every " msgstr "Actualiser lecteur toutes les" -#: src/preferences_window.c:650 +#: src/preferences_window.c:697 src/preferences_window.c:725 msgid "milliseconds." msgstr "millisecondes." -#: src/preferences_window.c:652 +#: src/preferences_window.c:699 msgid "\t(higher refresh rate decreases CPU usage - default is 200)" msgstr "" "\t(un taux élevé de rafraîchissement diminue la performance CPU - valeur par " "défaut = 200)" -#: src/preferences_window.c:658 +#: src/preferences_window.c:710 +msgid "Stop GStreamer preview" +msgstr "" + +#: src/preferences_window.c:710 +#, fuzzy +msgid "milliseconds before the end." +msgstr "millisecondes." + +#: src/preferences_window.c:724 +#, fuzzy +msgid "Small seek jumps for " +msgstr "Avancer un peu" + +#: src/preferences_window.c:733 +msgid "Seek jumps for " +msgstr "" + +#: src/preferences_window.c:734 src/preferences_window.c:743 +#, fuzzy +msgid "milliseconds. (0=auto)" +msgstr "millisecondes." + +#: src/preferences_window.c:742 +#, fuzzy +msgid "Big seek jumps for " +msgstr "Avancer beaucoup" + +#: src/preferences_window.c:753 +msgid "Seek times" +msgstr "" + +#: src/preferences_window.c:761 msgid "<b>Player options</b>" msgstr "<b>Options du lecteur</b>" -#: src/preferences_window.c:777 +#: src/preferences_window.c:872 #, fuzzy -msgid "" -"Wave preview is only available if the amplitude wave is shown in the player" +msgid "Only available if the amplitude wave is shown in the player" msgstr "" "La prévisualisation du signal n'est disponible que si l'option est " "sélectionnée dans le lecteur" -#: src/preferences_window.c:817 +#: src/preferences_window.c:902 +msgid "Wave preview" +msgstr "" + +#: src/preferences_window.c:912 #, c-format msgid "%d minute(s) window" msgstr "fenêtre %d minute(s)" -#: src/preferences_window.c:822 +#: src/preferences_window.c:917 #, c-format msgid "Wave interpolation level %d with threshold of %.1lf" msgstr "Niveau d'interpolation de signal %d avec un seuil de %.1lf" -#: src/preferences_window.c:844 +#: src/preferences_window.c:939 msgid "Wave quality (higher is better but consumes more CPU):" msgstr "" "Qualité de signal (+ élevé = meilleur mais consomme davantage de CPU) :" -#: src/preferences_window.c:863 +#: src/preferences_window.c:961 msgid "<b>Amplitude wave options</b>" msgstr "<b>Options de signal d'amplitude</b>" -#: src/preferences_window.c:920 +#: src/preferences_window.c:1054 msgid "Default format" msgstr "Format par défaut" -#: src/preferences_window.c:927 +#: src/preferences_window.c:1061 msgid " Default output: " msgstr "Sortie par défaut :" -#: src/preferences_window.c:933 +#: src/preferences_window.c:1067 msgid " CDDB, CUE and tracktype.org default: " msgstr " CDDB, CUE et tracktype.org par défaut : " -#: src/preferences_window.c:939 +#: src/preferences_window.c:1073 msgid " Split with silence detection default: " msgstr " Découpage par détection de silence par défaut :" -#: src/preferences_window.c:945 +#: src/preferences_window.c:1079 msgid " Trim using silence detection default: " msgstr " Troncature par détection de silence par défaut :" -#: src/preferences_window.c:951 +#: src/preferences_window.c:1085 msgid " Error mode default: " msgstr " Mode erreur par défaut :" -#: src/preferences_window.c:966 +#: src/preferences_window.c:1100 msgid "Custom format" msgstr "Format personnalisé" -#: src/preferences_window.c:985 +#: src/preferences_window.c:1119 +#, fuzzy msgid "" " @A: performer if found, otherwise artist\n" " @a: artist name\n" @@ -751,6 +816,8 @@ "number) **\n" " @U: track tag number as uppercase letter **\n" " @f: input filename (without extension)\n" +" @d: last directory of the input filename or the filename itself if no " +"directory\n" " @m, @s or @h: the number of minutes, seconds or hundreths of seconds of " "the start splitpoint **\n" " @M, @S or @H: the number of minutes, seconds or hundreths of seconds of " @@ -782,87 +849,87 @@ " (**) un chiffre peut suivre pour indiquer le nombre de chiffres à " "générer\n" -#: src/preferences_window.c:1010 +#: src/preferences_window.c:1145 #, fuzzy msgid "<b>Output format for batch split and when importing splitpoints</b>" msgstr "" "<b>Format du nom de fichier destination pour découpage par lot, CUE, CDDB et " "tracktype.org</b>" -#: src/preferences_window.c:1060 +#: src/preferences_window.c:1194 msgid "Original file tags" msgstr "Tags du fichier d'entrée" -#: src/preferences_window.c:1063 +#: src/preferences_window.c:1197 #, fuzzy msgid "Custom tags (from the splitpoints table)" msgstr "Mettre les points au tableau de points de coupure" -#: src/preferences_window.c:1066 +#: src/preferences_window.c:1200 msgid "No tags" msgstr "Aucun tag" -#: src/preferences_window.c:1069 +#: src/preferences_window.c:1203 msgid "Extract tags from filename" msgstr "Extraire les tags à partir du nom de fichier" -#: src/preferences_window.c:1078 +#: src/preferences_window.c:1212 msgid "<b>Split files tags</b>" msgstr "<b>Tags des fichiers coupés</b>" -#: src/preferences_window.c:1100 +#: src/preferences_window.c:1234 msgid "No change" msgstr "Sans changement" -#: src/preferences_window.c:1101 +#: src/preferences_window.c:1235 msgid "lowercase" msgstr "minuscules" -#: src/preferences_window.c:1102 +#: src/preferences_window.c:1236 msgid "UPPERCASE" msgstr "MAJUSCULES" -#: src/preferences_window.c:1103 +#: src/preferences_window.c:1237 msgid "First uppercase" msgstr "1ère lettre en majuscule" -#: src/preferences_window.c:1104 +#: src/preferences_window.c:1238 msgid "Word Uppercase" msgstr "1ère lettre des Mots en majuscule" -#: src/preferences_window.c:1126 +#: src/preferences_window.c:1284 msgid "<artist>: " msgstr "<artiste> : " -#: src/preferences_window.c:1135 +#: src/preferences_window.c:1293 msgid "<album>: " msgstr "<album> : " -#: src/preferences_window.c:1145 +#: src/preferences_window.c:1303 msgid "<title>: " msgstr "<titre> : " -#: src/preferences_window.c:1154 +#: src/preferences_window.c:1312 msgid "<genre>: " msgstr "<genre> : " -#: src/preferences_window.c:1163 +#: src/preferences_window.c:1321 msgid "<comment>: " msgstr "<commentaire> : " -#: src/preferences_window.c:1172 +#: src/preferences_window.c:1330 msgid "<year>: " msgstr "<année> :" -#: src/preferences_window.c:1181 +#: src/preferences_window.c:1339 msgid "<track>: " msgstr "<piste> :" -#: src/preferences_window.c:1210 +#: src/preferences_window.c:1379 msgid "Regular expression:" msgstr "Expression régulière :" -#: src/preferences_window.c:1213 +#: src/preferences_window.c:1382 msgid "" "Above enter PERL-like regular expression using named subgroups.\n" "Following names are recognized:\n" @@ -885,584 +952,593 @@ " (?<genre>) - genre\n" " (?<comment>) - commentaire" -#: src/preferences_window.c:1240 +#: src/preferences_window.c:1409 msgid "_Replace underscores by spaces" msgstr "_Remplacer les soulignés par des espaces" -#: src/preferences_window.c:1250 +#: src/preferences_window.c:1419 msgid "Artist text properties:" msgstr "Propriétés texte auteur :" -#: src/preferences_window.c:1255 +#: src/preferences_window.c:1424 msgid "Album text properties:" msgstr "Propriétés texte album :" -#: src/preferences_window.c:1260 +#: src/preferences_window.c:1429 msgid "Title text properties:" msgstr "Propriétés texte titre :" -#: src/preferences_window.c:1265 +#: src/preferences_window.c:1434 msgid "Comment text properties:" msgstr "Propriétés commentaire :" -#: src/preferences_window.c:1269 +#: src/preferences_window.c:1438 msgid "Genre tag:" msgstr "Tag genre :" -#: src/preferences_window.c:1273 +#: src/preferences_window.c:1442 msgid "Comment tag:" msgstr "Tag commentaire :" -#: src/preferences_window.c:1275 +#: src/preferences_window.c:1444 msgid "Regular expression test" msgstr "Test expression régulière" -#: src/preferences_window.c:1291 +#: src/preferences_window.c:1460 msgid "_Test" msgstr "_Test" -#: src/preferences_window.c:1295 +#: src/preferences_window.c:1464 msgid "Sample filename:" msgstr "Exemple nom de fichier :" -#: src/preferences_window.c:1300 +#: src/preferences_window.c:1469 msgid "Sample result:" msgstr "Exemple résultat :" -#: src/preferences_window.c:1312 +#: src/preferences_window.c:1481 msgid "ID3v1 & ID3v2 tags" msgstr "Tags ID3v1 & ID3v2" -#: src/preferences_window.c:1319 +#: src/preferences_window.c:1488 msgid "ID3v2 tags" msgstr "Tags ID3v2" -#: src/preferences_window.c:1326 +#: src/preferences_window.c:1495 msgid "ID3v1 tags" msgstr "Tags ID3v1" -#: src/preferences_window.c:1333 +#: src/preferences_window.c:1502 msgid "Same tags version as the input file" msgstr "Même version des tags que le fichier d'entrée" -#: src/preferences_window.c:1339 +#: src/preferences_window.c:1508 msgid "<b>Tags version (mp3 only)</b>" msgstr "<b>Version des tags (seulement mp3)</b>" -#: src/preferences_window.c:1380 +#: src/preferences_window.c:1548 src/main_window.c:774 msgid "Split" msgstr "Découper" -#: src/preferences_window.c:1385 +#: src/preferences_window.c:1553 msgid "Tags" msgstr "Tags" -#: src/preferences_window.c:1390 +#: src/preferences_window.c:1558 msgid "Player" msgstr "Lecteur" -#: src/preferences_window.c:1395 +#: src/preferences_window.c:1563 #, fuzzy msgid "Output format" msgstr "Format de nom de fichier destination" -#: src/preferences_window.c:1401 +#: src/preferences_window.c:1569 msgid "Language" msgstr "Langue" -#: src/split_mode_window.c:193 +#: src/split_mode_window.c:188 msgid "Use manual single file splitpoints" msgstr "Utilise des points de découpage pour fichier unique" -#: src/split_mode_window.c:195 +#: src/split_mode_window.c:190 #, fuzzy msgid "Split files using the manually defined splitpoints" msgstr "Utilise des points de découpage pour fichier unique" -#: src/split_mode_window.c:205 +#: src/split_mode_window.c:200 msgid "Time" msgstr "Durée" -#: src/split_mode_window.c:207 +#: src/split_mode_window.c:202 msgid "Split every fixed time length; last track will most likely be smaller" msgstr "" -#: src/split_mode_window.c:224 +#: src/split_mode_window.c:219 msgid "Split every" msgstr "Découpe toutes les" -#: src/split_mode_window.c:237 +#: src/split_mode_window.c:232 msgid "seconds." msgstr "secondes." -#: src/split_mode_window.c:244 +#: src/split_mode_window.c:239 msgid "Equal time tracks" msgstr "Nombre de morceaux " -#: src/split_mode_window.c:246 +#: src/split_mode_window.c:241 msgid "Create smaller tracks having exactly the same time length" msgstr "" -#: src/split_mode_window.c:261 +#: src/split_mode_window.c:256 msgid "Split in" msgstr "Découpe en " -#: src/split_mode_window.c:275 +#: src/split_mode_window.c:270 msgid "equal tracks." msgstr "pistes de même taille." -#: src/split_mode_window.c:282 +#: src/split_mode_window.c:277 msgid "Trim using silence detection" msgstr "Troncature grâce à la détection de silence" -#: src/split_mode_window.c:284 +#: src/split_mode_window.c:279 msgid "" "Split by discarding silence from the begin and from the end\n" "If no silence is found, the output file is still created" msgstr "" -#: src/split_mode_window.c:302 src/split_mode_window.c:331 +#: src/split_mode_window.c:297 src/split_mode_window.c:326 msgid "Threshold level (dB) : " msgstr "Niveau seuil (dB) :" -#: src/split_mode_window.c:313 +#: src/split_mode_window.c:308 msgid "Silence - split with silence detection" msgstr "Silence - couper par détection des silences" -#: src/split_mode_window.c:314 +#: src/split_mode_window.c:309 #, fuzzy msgid "Split where silence is found" msgstr " Découpage par détection de silence par défaut :" -#: src/split_mode_window.c:343 +#: src/split_mode_window.c:338 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end) : " msgstr "Position de la coupure dans le silence (0 = au début, 1 = à la fin) :" -#: src/split_mode_window.c:355 +#: src/split_mode_window.c:350 msgid "Number of tracks (0 means all tracks) : " msgstr "Nombre de pistes (0 signifie toutes les pistes) :" -#: src/split_mode_window.c:367 +#: src/split_mode_window.c:362 msgid "Minimum silence length (seconds) : " msgstr "Durée minimum du silence (secondes) :" -#: src/split_mode_window.c:379 +#: src/split_mode_window.c:374 msgid "Minimum track length (seconds) : " msgstr "Durée minimum d'une piste (secondes) :" -#: src/split_mode_window.c:389 +#: src/split_mode_window.c:384 msgid "Remove silence between tracks" msgstr "Effacer les silences entre les morceaux" -#: src/split_mode_window.c:410 +#: src/split_mode_window.c:405 msgid "Wrap - split files created with mp3wrap or albumwrap (mp3 only)" msgstr "" "Wrap - découper les fichiers créés avec mp3wrap ou albumwrap (seulement mp3)" -#: src/split_mode_window.c:420 +#: src/split_mode_window.c:415 #, fuzzy msgid "Synchronisation error mode (mp3 only)" msgstr "Mode erreur (mp3 seulement)" -#: src/split_mode_window.c:422 +#: src/split_mode_window.c:417 msgid "" "Split where synchronisation errors are found\n" "Useful for splitting concatenated files" msgstr "" -#: src/mp3splt-gtk.c:102 -msgid " error: no files found in batch mode" -msgstr "erreur : pas de fichier trouvé en mode par lot" +#: src/split_mode_window.c:428 +msgid "Internal sheet mode (CUE sheet for FLAC and ID3v2 chapters for MP3)" +msgstr "" -#: src/mp3splt-gtk.c:278 -msgid " info: stopping the split process before exiting" -msgstr " info : arrêt du processus de découpage avant de sortir" +#: src/split_mode_window.c:429 +msgid "Split using internal sheet" +msgstr "" -#: src/mp3splt-gtk.c:389 -#, c-format -msgid "Setting the output directory to %s.\n" -msgstr "Le dossier de sortie sera %s.\n" +#: src/split_mode_window.c:439 +#, fuzzy +msgid "Use CUE file with similar name as the input file" +msgstr "Même version des tags que le fichier d'entrée" -#: src/mp3splt-gtk.c:403 -#, c-format -msgid "Option -%c requires an argument.\n" -msgstr "L'option -%c doit être suivie d'un paramètre.\n" +#: src/split_mode_window.c:441 +msgid "" +"Split using CUE file having similar name as the input file\n" +"Example: test.cue will be looked for when splitting test.mp3" +msgstr "" -#: src/mp3splt-gtk.c:405 -#, c-format -msgid "Unknown option `-%c'.\n" -msgstr "Option inconnue `-%c'.\n" +#: src/split_mode_window.c:452 +msgid "Use CDDB file with similar name as the input file" +msgstr "" -#: src/mp3splt-gtk.c:407 -#, c-format -msgid "Unknown option character `\\x%x'.\n" -msgstr "Caractère d'option inconnu `\\x%x'.\n" +#: src/split_mode_window.c:454 +msgid "" +"Split using CDDB file having similar name as the input file\n" +"Example: test.cddb will be looked for when splitting test.mp3" +msgstr "" -#: src/mp3splt-gtk.c:421 -#, c-format -msgid "Cannot open input file %s\n" -msgstr "Impossible d'ouvrir le fichier %s.\n" +#: src/mp3splt-gtk.c:112 +msgid " error: no files found in batch mode" +msgstr "erreur : pas de fichier trouvé en mode par lot" -#: src/main_window.c:173 +#: src/mp3splt-gtk.c:350 +msgid " info: stopping the split process before exiting" +msgstr " info : arrêt du processus de découpage avant de sortir" + +#: src/main_window.c:170 msgid "Error launching external command" msgstr "Erreur en lançant un programme externe" -#: src/main_window.c:204 +#: src/main_window.c:203 msgid "using" msgstr "utilisant" -#: src/main_window.c:208 +#: src/main_window.c:207 msgid "release of " msgstr "version du" -#: src/main_window.c:311 +#: src/main_window.c:310 msgid " info: stopping the split process.. please wait" msgstr " info : arrêt du processus de découpage... veuillez attendre" -#: src/main_window.c:319 src/main_window.c:778 -msgid "Preferences" -msgstr "Préférences" - -#: src/main_window.c:331 -msgid "TrackType" -msgstr "TrackType" - -#: src/main_window.c:346 src/main_window.c:781 -msgid "Split files" -msgstr "Fichiers découpés" - -#: src/main_window.c:361 src/main_window.c:784 -msgid "Splitpoints" -msgstr "Points de découpage" - -#: src/main_window.c:432 +#: src/main_window.c:375 msgid " error: split in progress..." msgstr " erreur : découpage en cours..." -#: src/main_window.c:442 +#: src/main_window.c:385 msgid " error: no path of split selected" msgstr "erreur : pas de chemin pour le fichier de découpage choisi" -#: src/main_window.c:725 -msgid "Choose File" -msgstr "Choisir fichier" - -#: src/main_window.c:755 -msgid "_File" -msgstr "_Fichier" - -#: src/main_window.c:756 -msgid "_View" -msgstr "_Afficher" - -#: src/main_window.c:757 -msgid "_Player" -msgstr "_Lecture" - -#: src/main_window.c:758 -msgid "_Help" -msgstr "_Aide" - -#: src/main_window.c:760 -#, fuzzy -msgid "_Open single file..." +#: src/main_window.c:729 +msgid "Open file ..." msgstr "Ouvrir fichier..." -#: src/main_window.c:760 -msgid "Open" -msgstr "Ouvrir" - -#: src/main_window.c:764 -msgid "_Add files or directories to batch ..." -msgstr "_Ajouter fichiers ou dossiers dans le lot..." - -#: src/main_window.c:765 -msgid "Add files or directories to batch" -msgstr "Ajouter fichiers ou dossier dans le lot" - -#: src/main_window.c:768 -msgid "_Import splitpoints from file..." -msgstr "_Importer points de découpe depuis le fichier..." - -#: src/main_window.c:769 -msgid "Import splitpoints from file..." -msgstr "Importer points de découpe depuis le fichier..." - -#: src/main_window.c:771 -msgid "Import splitpoints from _TrackType.org..." -msgstr "Importer points de découpage depuis _TrackType.org..." - -#: src/main_window.c:772 -msgid "Import splitpoints from TrackType.org..." -msgstr "Importer points de découpage depuis TrackType.org..." - -#: src/main_window.c:775 -msgid "_Export splitpoints..." -msgstr "_Exporter points de découpage..." - -#: src/main_window.c:776 -msgid "Export splitpoints" -msgstr "Exporter les points de découpage" - -#: src/main_window.c:778 -msgid "_Preferences" -msgstr "_Préférences" - -#: src/main_window.c:781 -msgid "Split _files" -msgstr "Découper _fichiers" - -#: src/main_window.c:784 -msgid "_Splitpoints" -msgstr "_Points de découpage" - -#: src/main_window.c:787 -msgid "_Split !" -msgstr "_Couper" - -#: src/main_window.c:787 src/main_window.c:998 -msgid "Split !" -msgstr "Couper !" - -#: src/main_window.c:790 -msgid "_Batch split !" -msgstr "Découpage par _lot" - -#: src/main_window.c:793 -msgid "_Quit" -msgstr "_Quitter" - -#: src/main_window.c:793 -msgid "Quit" -msgstr "Quitter" - -#: src/main_window.c:797 -msgid "_Contents" -msgstr "_Contenus" - -#: src/main_window.c:797 -msgid "Contents" -msgstr "Contenus" - -#: src/main_window.c:801 -msgid "Messages _history" -msgstr "_Historique des messages" +#: src/main_window.c:777 +#, fuzzy +msgid "Split the current file" +msgstr "Fichiers découpés" -#: src/main_window.c:804 -msgid "_About" -msgstr "_A propos de" +#: src/main_window.c:786 +msgid "Manual single file split" +msgstr "Découpage manuel fichier unique" #: src/main_window.c:804 -msgid "About" -msgstr "A propos de" - -#: src/main_window.c:808 -msgid "P_ause / Play" -msgstr "P_ause/Lecture" - -#: src/main_window.c:808 -msgid "Pause/Play" -msgstr "Pause/Lecture" - -#: src/main_window.c:811 -msgid "Seek _forward" -msgstr "_Avancer" - -#: src/main_window.c:811 -msgid "Seek forward" -msgstr "Avancer" - -#: src/main_window.c:813 -msgid "Seek _backward" -msgstr "_Reculer" - -#: src/main_window.c:813 -msgid "Seek backward" -msgstr "Reculer" - -#: src/main_window.c:816 -msgid "Small seek f_orward" -msgstr "A_vancer un peu" - -#: src/main_window.c:816 -msgid "Small seek forward" -msgstr "Avancer un peu" - -#: src/main_window.c:818 -msgid "Small seek back_ward" -msgstr "R_eculer un peu" - -#: src/main_window.c:818 -msgid "Small seek backward" -msgstr "Reculer un peu" - -#: src/main_window.c:821 -msgid "Big seek fo_rward" -msgstr "Ava_ncer beaucoup" - -#: src/main_window.c:821 -msgid "Big seek forward" -msgstr "Avancer beaucoup" +msgid "Batch & automatic split" +msgstr "Découpage par lot et automatique" -#: src/main_window.c:823 -msgid "Big seek bac_kward" -msgstr "Rec_uler beaucoup" +#: src/main_window.c:822 +msgid "S_top" +msgstr "S_top" -#: src/main_window.c:823 -msgid "Big seek backward" -msgstr "Reculer beaucoup" +#: src/main_window.c:1089 +#, c-format +msgid "Setting the output directory to %s.\n" +msgstr "Le dossier de sortie sera %s.\n" -#: src/main_window.c:826 -msgid "Seek to _next splitpoint" -msgstr "Avancer au _prochain point de découpage" +#: src/main_window.c:1103 +#, c-format +msgid "Option -%c requires an argument.\n" +msgstr "L'option -%c doit être suivie d'un paramètre.\n" -#: src/main_window.c:827 -msgid "Seek to next splitpoint" -msgstr "Avancer au prochain point de découpage" +#: src/main_window.c:1105 +#, c-format +msgid "Unknown option `-%c'.\n" +msgstr "Option inconnue `-%c'.\n" -#: src/main_window.c:828 -msgid "Seek to _previous splitpoint" -msgstr "Reculer au p_récédent point de découpage" +#: src/main_window.c:1107 +#, c-format +msgid "Unknown option character `\\x%x'.\n" +msgstr "Caractère d'option inconnu `\\x%x'.\n" -#: src/main_window.c:829 -msgid "Seek to previous splitpoint" -msgstr "Reculer au précédent point de découpage" +#: src/main_window.c:1121 +#, c-format +msgid "Cannot open input file %s\n" +msgstr "Impossible d'ouvrir le fichier %s.\n" -#: src/main_window.c:832 -#, fuzzy -msgid "_Quick preview before closest splitpoint" -msgstr "E_ffacer point de découpage le plus proche" +#: src/main_window.c:1164 +msgid "Choose File" +msgstr "Choisir fichier" -#: src/main_window.c:832 +#: src/main_window.c:1168 src/import.c:61 #, fuzzy -msgid "Quick preview before closest splitpoint" -msgstr "Effacer point de découpage" - -#: src/main_window.c:835 -msgid "Add _splitpoint" -msgstr "Ajouter un point de _découpage" - -#: src/main_window.c:838 -msgid "_Delete closest splitpoint" -msgstr "E_ffacer point de découpage le plus proche" +msgid "_Open" +msgstr "Ouvrir" -#: src/main_window.c:839 -msgid "Delete closest splitpoint" -msgstr "Effacer point de découpage" +#: src/main_window.c:1208 +msgid "TrackType" +msgstr "TrackType" -#: src/main_window.c:841 -msgid "Zoom _in" -msgstr "Zoom a_vant" - -#: src/main_window.c:841 -msgid "Zoom in" -msgstr "Zoom avant" - -#: src/main_window.c:842 -msgid "Zoom _out" -msgstr "Zoom arr_ière" - -#: src/main_window.c:842 -msgid "Zoom out" -msgstr "Zoom arrière" +#: src/main_window.c:1225 +msgid "Preferences" +msgstr "Préférences" -#: src/main_window.c:953 -msgid "Open file ..." -msgstr "Ouvrir fichier..." +#: src/main_window.c:1257 +msgid "Splitpoints" +msgstr "Points de découpage" -#: src/main_window.c:1001 -#, fuzzy -msgid "Split the current file" +#: src/main_window.c:1273 +msgid "Split files" msgstr "Fichiers découpés" -#: src/main_window.c:1010 -msgid "Manual single file split" -msgstr "Découpage manuel fichier unique" - -#: src/main_window.c:1028 -msgid "Batch & automatic split" -msgstr "Découpage par lot et automatique" - -#: src/main_window.c:1048 -msgid "S_top" -msgstr "S_top" - #: src/libmp3splt_manager.c:71 #, c-format msgid " File '%s' created" msgstr "Fichier '%s' créé" -#: src/libmp3splt_manager.c:182 +#: src/libmp3splt_manager.c:166 #, c-format msgid " preparing \"%s\" (%d of %d)" msgstr " préparation de \"%s\" (%d sur %d)" -#: src/libmp3splt_manager.c:188 +#: src/libmp3splt_manager.c:172 #, c-format msgid " creating \"%s\" (%d of %d)" msgstr " création de \"%s\" (%d sur %d)" -#: src/libmp3splt_manager.c:194 +#: src/libmp3splt_manager.c:178 msgid " searching for sync errors..." msgstr " recherche d'erreurs de synchronisation..." -#: src/libmp3splt_manager.c:199 +#: src/libmp3splt_manager.c:183 msgid "Computing amplitude wave data..." msgstr "Calcul des données d'amplitude du signal..." -#: src/libmp3splt_manager.c:204 +#: src/libmp3splt_manager.c:188 #, c-format msgid "S: %02d, Level: %.2f dB; scanning for silence..." msgstr "S : %02d, Niveau : %.2f dB; recherche du silence..." -#: src/import.c:55 +#: src/import.c:56 msgid "Choose file to import" msgstr "Choisir un fichier à importer" -#: src/import.c:207 -msgid "CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt)" +#: src/import.c:271 +#, fuzzy +msgid "" +"CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt), internal sheet (*." +"flac), chapters (*.mp3)" msgstr "CDDB (*.cddb), CUE (*.cue), Marqueurs Audacity (*.txt)" -#: src/import.c:211 +#: src/import.c:275 msgid "CDDB files (*.cddb)" msgstr "Fichiers CDDB (*.cddb)" -#: src/import.c:213 +#: src/import.c:277 msgid "CUE files (*.cue)" msgstr "Fichiers CUE (*.cue)" -#: src/import.c:215 +#: src/import.c:279 msgid "Audacity labels files (*.txt)" msgstr "Fichiers marqueurs Audacity (*.txt)" -#: src/import.c:217 +#: src/import.c:281 +msgid "FLAC internal sheet (*.flac)" +msgstr "" + +#: src/import.c:283 +#, fuzzy +msgid "ID3v2 chapters (*.mp3)" +msgstr "fichiers mp3 (*.mp3)" + +#: src/import.c:285 msgid "All files" msgstr "Tous les fichiers" -#: src/import.c:348 +#: src/import.c:476 #, fuzzy msgid "--- last cue splitpoint ---" msgstr "Effacer point de découpage" -#: src/gstreamer_control.c:73 +#: src/gstreamer_control.c:71 #, c-format msgid "gstreamer error: %s" msgstr "erreur gstreamer: %s" -#: src/gstreamer_control.c:99 +#: src/gstreamer_control.c:97 #, c-format msgid "Warning: %s" msgstr "Avertissement : %s" -#: src/gstreamer_control.c:125 +#: src/gstreamer_control.c:123 #, c-format msgid "Info: %s" msgstr "Info : %s" -#: src/gstreamer_control.c:369 +#: src/gstreamer_control.c:354 msgid " error: cannot create gstreamer playbin\n" msgstr " erreur : impossible de créer 'playbin' de gstreamer\n" +#~ msgid "Split !" +#~ msgstr "Couper !" + +#~ msgid "_File" +#~ msgstr "_Fichier" + +#~ msgid "_View" +#~ msgstr "_Afficher" + +#~ msgid "_Player" +#~ msgstr "_Lecture" + +#~ msgid "_Help" +#~ msgstr "_Aide" + +#, fuzzy +#~ msgid "_Open single file..." +#~ msgstr "Ouvrir fichier..." + +#~ msgid "_Add files or directories to batch ..." +#~ msgstr "_Ajouter fichiers ou dossiers dans le lot..." + +#~ msgid "Add files or directories to batch" +#~ msgstr "Ajouter fichiers ou dossier dans le lot" + +#~ msgid "_Import splitpoints from file..." +#~ msgstr "_Importer points de découpe depuis le fichier..." + +#~ msgid "Import splitpoints from file..." +#~ msgstr "Importer points de découpe depuis le fichier..." + +#~ msgid "Import splitpoints from _TrackType.org..." +#~ msgstr "Importer points de découpage depuis _TrackType.org..." + +#~ msgid "Import splitpoints from TrackType.org..." +#~ msgstr "Importer points de découpage depuis TrackType.org..." + +#~ msgid "_Export splitpoints..." +#~ msgstr "_Exporter points de découpage..." + +#~ msgid "Export splitpoints" +#~ msgstr "Exporter les points de découpage" + +#~ msgid "_Preferences" +#~ msgstr "_Préférences" + +#~ msgid "Split _files" +#~ msgstr "Découper _fichiers" + +#~ msgid "_Splitpoints" +#~ msgstr "_Points de découpage" + +#~ msgid "_Split !" +#~ msgstr "_Couper" + +#~ msgid "_Batch split !" +#~ msgstr "Découpage par _lot" + +#~ msgid "_Quit" +#~ msgstr "_Quitter" + +#~ msgid "Quit" +#~ msgstr "Quitter" + +#~ msgid "_Contents" +#~ msgstr "_Contenus" + +#~ msgid "Contents" +#~ msgstr "Contenus" + +#~ msgid "Messages _history" +#~ msgstr "_Historique des messages" + +#~ msgid "_About" +#~ msgstr "_A propos de" + +#~ msgid "About" +#~ msgstr "A propos de" + +#~ msgid "P_ause / Play" +#~ msgstr "P_ause/Lecture" + +#~ msgid "Pause/Play" +#~ msgstr "Pause/Lecture" + +#~ msgid "Seek _forward" +#~ msgstr "_Avancer" + +#~ msgid "Seek forward" +#~ msgstr "Avancer" + +#~ msgid "Seek _backward" +#~ msgstr "_Reculer" + +#~ msgid "Seek backward" +#~ msgstr "Reculer" + +#~ msgid "Small seek f_orward" +#~ msgstr "A_vancer un peu" + +#~ msgid "Small seek forward" +#~ msgstr "Avancer un peu" + +#~ msgid "Small seek back_ward" +#~ msgstr "R_eculer un peu" + +#~ msgid "Small seek backward" +#~ msgstr "Reculer un peu" + +#~ msgid "Big seek fo_rward" +#~ msgstr "Ava_ncer beaucoup" + +#~ msgid "Big seek forward" +#~ msgstr "Avancer beaucoup" + +#~ msgid "Big seek bac_kward" +#~ msgstr "Rec_uler beaucoup" + +#~ msgid "Big seek backward" +#~ msgstr "Reculer beaucoup" + +#~ msgid "Seek to _next splitpoint" +#~ msgstr "Avancer au _prochain point de découpage" + +#~ msgid "Seek to next splitpoint" +#~ msgstr "Avancer au prochain point de découpage" + +#~ msgid "Seek to _previous splitpoint" +#~ msgstr "Reculer au p_récédent point de découpage" + +#~ msgid "Seek to previous splitpoint" +#~ msgstr "Reculer au précédent point de découpage" + +#, fuzzy +#~ msgid "Preview before c_losest splitpoint" +#~ msgstr "Effacer point de découpage" + +#, fuzzy +#~ msgid "Preview before closest splitpoint" +#~ msgstr "Effacer point de découpage" + +#, fuzzy +#~ msgid "Preview clos_est splitpoint" +#~ msgstr "Effacer point de découpage" + +#, fuzzy +#~ msgid "Preview closest splitpoint" +#~ msgstr "Effacer point de découpage" + +#, fuzzy +#~ msgid "Preview _closest splitpoint & pause" +#~ msgstr "Effacer point de découpage" + +#, fuzzy +#~ msgid "Preview closest splitpoint & pause" +#~ msgstr "Effacer point de découpage" + +#~ msgid "Add _splitpoint" +#~ msgstr "Ajouter un point de _découpage" + +#~ msgid "_Delete closest splitpoint" +#~ msgstr "E_ffacer point de découpage le plus proche" + +#~ msgid "Delete closest splitpoint" +#~ msgstr "Effacer point de découpage" + +#~ msgid "Zoom _in" +#~ msgstr "Zoom a_vant" + +#~ msgid "Zoom in" +#~ msgstr "Zoom avant" + +#~ msgid "Zoom _out" +#~ msgstr "Zoom arr_ière" + +#~ msgid "Zoom out" +#~ msgstr "Zoom arrière" + +#, fuzzy +#~ msgid "_Quick preview before closest splitpoint" +#~ msgstr "E_ffacer point de découpage le plus proche" + #~ msgid "Select cue file name" #~ msgstr "Choisir un nom de fichier CUE" diff -Nru mp3splt-gtk-0.9/po/Makefile.in.in mp3splt-gtk-0.9.2/po/Makefile.in.in --- mp3splt-gtk-0.9/po/Makefile.in.in 2012-09-12 20:18:23.000000000 +0000 +++ mp3splt-gtk-0.9.2/po/Makefile.in.in 2014-03-22 23:57:39.000000000 +0000 @@ -29,7 +29,7 @@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = @MKINSTALLDIRS@ -mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) +mkinstalldirs = @MKDIR_P@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ diff -Nru mp3splt-gtk-0.9/po/mp3splt-gtk.pot mp3splt-gtk-0.9.2/po/mp3splt-gtk.pot --- mp3splt-gtk-0.9/po/mp3splt-gtk.pot 2013-07-20 07:11:45.000000000 +0000 +++ mp3splt-gtk-0.9.2/po/mp3splt-gtk.pot 2014-11-09 16:50:48.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: io_alex_2004@users.sourceforge.net\n" -"POT-Creation-Date: 2013-07-20 09:11+0200\n" +"POT-Creation-Date: 2014-11-09 17:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -18,39 +18,49 @@ "Content-Transfer-Encoding: 8bit\n" #: src/audacious_control.c:66 src/snackamp_control.c:337 -#: src/gstreamer_control.c:228 +#: src/gstreamer_control.c:217 msgid "stereo" msgstr "" #: src/audacious_control.c:70 src/snackamp_control.c:341 -#: src/gstreamer_control.c:232 +#: src/gstreamer_control.c:221 msgid "mono" msgstr "" #: src/audacious_control.c:73 src/snackamp_control.c:344 -#: src/gstreamer_control.c:198 +#: src/gstreamer_control.c:190 msgid "Kbps" msgstr "" #: src/audacious_control.c:74 src/snackamp_control.c:345 -#: src/gstreamer_control.c:199 +#: src/gstreamer_control.c:191 msgid "Khz" msgstr "" -#: src/utilities.c:87 +#: src/utilities.c:86 #, c-format msgid "Processing file '%s' ..." msgstr "" -#: src/export.c:93 +#: src/export.c:154 msgid "Cue filename to export" msgstr "" -#: src/export.c:105 +#: src/export.c:157 src/multiple_files_window.c:83 +#: src/splitpoints_window.c:1126 src/splitpoints_window.c:1183 +#: src/main_window.c:1166 src/import.c:59 +msgid "_Cancel" +msgstr "" + +#: src/export.c:159 +msgid "_Save" +msgstr "" + +#: src/export.c:166 msgid "cue files (*.cue)" msgstr "" -#: src/widgets_helper.c:428 +#: src/widgets_helper.c:401 msgid "_Close" msgstr "" @@ -58,7 +68,7 @@ msgid "Processing Douglas-Peucker filters ..." msgstr "" -#: src/player_window.c:580 +#: src/player_window.c:576 msgid "" "\n" " Cannot connect to snackAmp player.\n" @@ -77,7 +87,7 @@ " After that, restart snackamp and mp3splt-gtk should work.\n" msgstr "" -#: src/player_window.c:595 +#: src/player_window.c:591 msgid "" "\n" " Cannot connect to Audacious player.\n" @@ -88,142 +98,147 @@ "connect.\n" msgstr "" -#: src/player_window.c:603 src/player_window.c:607 +#: src/player_window.c:599 src/player_window.c:603 msgid "Cannot connect to player" msgstr "" -#: src/player_window.c:904 +#: src/player_window.c:604 src/splitpoints_window.c:1124 +#: src/splitpoints_window.c:1181 +msgid "_OK" +msgstr "" + +#: src/player_window.c:900 msgid "Previous track" msgstr "" -#: src/player_window.c:922 +#: src/player_window.c:918 msgid "Play" msgstr "" -#: src/player_window.c:939 +#: src/player_window.c:935 msgid "Pause" msgstr "" -#: src/player_window.c:956 +#: src/player_window.c:952 msgid "Stop" msgstr "" -#: src/player_window.c:973 +#: src/player_window.c:969 msgid "Next track" msgstr "" -#: src/player_window.c:980 src/splitpoints_window.c:1436 +#: src/player_window.c:976 src/splitpoints_window.c:1407 msgid "_Add" msgstr "" -#: src/player_window.c:987 +#: src/player_window.c:983 msgid "Add splitpoint at the current player position" msgstr "" -#: src/player_window.c:996 src/splitpoints_window.c:1134 -#: src/splitpoints_window.c:1479 +#: src/player_window.c:992 src/splitpoints_window.c:1121 +#: src/splitpoints_window.c:1450 msgid "Set trim splitpoints using silence detection" msgstr "" -#: src/player_window.c:1007 src/splitpoints_window.c:1193 -#: src/splitpoints_window.c:1489 +#: src/player_window.c:1003 src/splitpoints_window.c:1178 +#: src/splitpoints_window.c:1460 msgid "Set splitpoints from silence detection" msgstr "" -#: src/player_window.c:1012 +#: src/player_window.c:1008 msgid "Amplitude _wave" msgstr "" -#: src/player_window.c:1018 +#: src/player_window.c:1014 msgid "Shows the amplitude level wave" msgstr "" -#: src/player_window.c:1021 +#: src/player_window.c:1017 msgid "_Connect" msgstr "" -#: src/player_window.c:1024 +#: src/player_window.c:1020 msgid "Connect to player" msgstr "" -#: src/player_window.c:1027 +#: src/player_window.c:1023 msgid "_Disconnect" msgstr "" -#: src/player_window.c:1030 +#: src/player_window.c:1026 msgid "Disconnect from player" msgstr "" -#: src/player_window.c:1153 +#: src/player_window.c:1160 #, c-format msgid "before %s" msgstr "" -#: src/player_window.c:1892 +#: src/player_window.c:1981 msgid "No available wave" msgstr "" -#: src/player_window.c:2045 src/preferences_window.c:826 +#: src/player_window.c:2073 src/preferences_window.c:921 msgid "No wave interpolation" msgstr "" -#: src/player_window.c:2051 +#: src/player_window.c:2079 #, c-format msgid "Wave interpolation level %d" msgstr "" -#: src/player_window.c:2131 +#: src/player_window.c:2141 msgid " Please wait for the process to finish ..." msgstr "" -#: src/player_window.c:2153 +#: src/player_window.c:2163 msgid " Please wait ... currently computing Douglas Peucker filters." msgstr "" -#: src/player_window.c:2237 +#: src/player_window.c:2247 msgid " left click on splitpoint selects it, right click erases it" msgstr "" -#: src/player_window.c:2242 +#: src/player_window.c:2252 msgid "" " left click + move changes song position, right click + move changes zoom" msgstr "" -#: src/player_window.c:2248 +#: src/player_window.c:2258 msgid "" " left click on point + move changes point position, right click play preview" msgstr "" -#: src/player_window.c:2253 +#: src/player_window.c:2263 msgid " left click on rectangle checks/unchecks 'keep splitpoint'" msgstr "" -#: src/player_window.c:2678 -msgid " quick preview..." +#: src/player_window.c:2695 +msgid " preview..." msgstr "" -#: src/player_window.c:3022 +#: src/player_window.c:3034 msgid "Splitpoints and amplitude wave v_iew" msgstr "" -#: src/player_window.c:3138 +#: src/player_window.c:3150 msgid "History" msgstr "" -#: src/player_window.c:3228 +#: src/player_window.c:3240 msgid "_Erase selected entries" msgstr "" -#: src/player_window.c:3236 +#: src/player_window.c:3248 msgid "E_rase all history" msgstr "" -#: src/player_window.c:3278 +#: src/player_window.c:3290 msgid "Files h_istory" msgstr "" -#: src/player_window.c:3404 -msgid " quick preview finished, song paused" +#: src/player_window.c:3330 +msgid " preview finished, song paused" msgstr "" #: src/multiple_files_window.c:63 @@ -234,47 +249,47 @@ msgid "Choose files or directories" msgstr "" -#: src/multiple_files_window.c:100 src/main_window.c:691 +#: src/multiple_files_window.c:98 src/main_window.c:671 msgid "mp3, ogg vorbis and flac files (*.mp3 *.ogg *.flac)" msgstr "" -#: src/multiple_files_window.c:110 src/main_window.c:701 +#: src/multiple_files_window.c:108 src/main_window.c:681 msgid "mp3 files (*.mp3)" msgstr "" -#: src/multiple_files_window.c:116 src/main_window.c:707 +#: src/multiple_files_window.c:114 src/main_window.c:687 msgid "ogg vorbis files (*.ogg)" msgstr "" -#: src/multiple_files_window.c:122 src/main_window.c:713 +#: src/multiple_files_window.c:120 src/main_window.c:693 msgid "flac files (*.flac)" msgstr "" -#: src/multiple_files_window.c:129 +#: src/multiple_files_window.c:127 msgid "All Files" msgstr "" -#: src/multiple_files_window.c:260 +#: src/multiple_files_window.c:258 msgid "_Add files or directories" msgstr "" -#: src/multiple_files_window.c:261 +#: src/multiple_files_window.c:259 msgid "Only the supported file types are added" msgstr "" -#: src/multiple_files_window.c:269 +#: src/multiple_files_window.c:267 msgid "_Remove selected" msgstr "" -#: src/multiple_files_window.c:279 src/splitpoints_window.c:1456 +#: src/multiple_files_window.c:277 src/splitpoints_window.c:1427 msgid "R_emove all" msgstr "" -#: src/multiple_files_window.c:287 src/main_window.c:790 -msgid "Batch split !" +#: src/multiple_files_window.c:285 +msgid "Batch split" msgstr "" -#: src/multiple_files_window.c:288 +#: src/multiple_files_window.c:286 msgid "Split all the files" msgstr "" @@ -286,11 +301,11 @@ msgid "C_lear" msgstr "" -#: src/messages_window.c:168 src/main_window.c:801 +#: src/messages_window.c:168 msgid "Messages history" msgstr "" -#: src/split_files_window.c:69 src/splitpoints_window.c:1956 +#: src/split_files_window.c:69 src/splitpoints_window.c:1911 msgid "Filename" msgstr "" @@ -315,29 +330,29 @@ msgid "Album title" msgstr "" -#: src/freedb_window.c:169 src/freedb_window.c:477 +#: src/freedb_window.c:154 src/freedb_window.c:472 msgid "please wait... contacting tracktype.org" msgstr "" -#: src/freedb_window.c:440 src/freedb_window.c:461 src/ui_manager.c:352 +#: src/freedb_window.c:435 src/freedb_window.c:456 src/ui_manager.c:372 #: src/splitpoints_window.c:671 src/splitpoints_window.c:792 #: src/splitpoints_window.c:842 msgid "description here" msgstr "" -#: src/freedb_window.c:565 +#: src/freedb_window.c:559 msgid "Search tracktype.org:" msgstr "" -#: src/freedb_window.c:575 +#: src/freedb_window.c:569 msgid "_Search" msgstr "" -#: src/freedb_window.c:604 +#: src/freedb_window.c:598 msgid "_Add splitpoints" msgstr "" -#: src/freedb_window.c:610 +#: src/freedb_window.c:604 msgid "Set splitpoints to the splitpoints table" msgstr "" @@ -354,216 +369,216 @@ msgid " error: you already have the splitpoint in table" msgstr "" -#: src/splitpoints_window.c:1159 src/splitpoints_window.c:1215 -#: src/preferences_window.c:497 +#: src/splitpoints_window.c:1146 src/splitpoints_window.c:1200 +#: src/preferences_window.c:519 msgid "Threshold level (dB):" msgstr "" -#: src/splitpoints_window.c:1229 +#: src/splitpoints_window.c:1214 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end):" msgstr "" -#: src/splitpoints_window.c:1243 +#: src/splitpoints_window.c:1228 msgid "Number of tracks (0 means all tracks):" msgstr "" -#: src/splitpoints_window.c:1255 src/preferences_window.c:513 +#: src/splitpoints_window.c:1240 src/preferences_window.c:535 msgid "Minimum silence length (seconds):" msgstr "" -#: src/splitpoints_window.c:1267 +#: src/splitpoints_window.c:1252 msgid "Minimum track length (seconds):" msgstr "" -#: src/splitpoints_window.c:1277 +#: src/splitpoints_window.c:1262 msgid "_Remove silence between tracks" msgstr "" -#: src/splitpoints_window.c:1429 +#: src/splitpoints_window.c:1400 msgid "Minutes:" msgstr "" -#: src/splitpoints_window.c:1431 +#: src/splitpoints_window.c:1402 msgid "Seconds:" msgstr "" -#: src/splitpoints_window.c:1433 +#: src/splitpoints_window.c:1404 msgid "Hundredths:" msgstr "" -#: src/splitpoints_window.c:1443 src/main_window.c:836 +#: src/splitpoints_window.c:1414 msgid "Add splitpoint" msgstr "" -#: src/splitpoints_window.c:1446 +#: src/splitpoints_window.c:1417 msgid "_Remove" msgstr "" -#: src/splitpoints_window.c:1453 +#: src/splitpoints_window.c:1424 msgid "Remove selected splitpoints" msgstr "" -#: src/splitpoints_window.c:1463 +#: src/splitpoints_window.c:1434 msgid "Remove all splitpoints" msgstr "" -#: src/splitpoints_window.c:1473 +#: src/splitpoints_window.c:1444 msgid "_Trim splitpoints" msgstr "" -#: src/splitpoints_window.c:1483 +#: src/splitpoints_window.c:1454 msgid "_Silence detection" msgstr "" -#: src/splitpoints_window.c:1561 src/mp3splt-gtk.c:119 +#: src/splitpoints_window.c:1534 src/mp3splt-gtk.c:129 msgid " finished" msgstr "" -#: src/splitpoints_window.c:1635 +#: src/splitpoints_window.c:1608 msgid " cannot preview, not connected to player" msgstr "" -#: src/splitpoints_window.c:1653 +#: src/splitpoints_window.c:1626 msgid " cannot split preview last splitpoint" msgstr "" -#: src/splitpoints_window.c:1824 +#: src/splitpoints_window.c:1797 msgid "Clone all tags" msgstr "" -#: src/splitpoints_window.c:1832 +#: src/splitpoints_window.c:1803 msgid "Clone title" msgstr "" -#: src/splitpoints_window.c:1838 +#: src/splitpoints_window.c:1807 msgid "Clone artist" msgstr "" -#: src/splitpoints_window.c:1844 +#: src/splitpoints_window.c:1811 msgid "Clone album" msgstr "" -#: src/splitpoints_window.c:1850 +#: src/splitpoints_window.c:1815 msgid "Clone genre" msgstr "" -#: src/splitpoints_window.c:1856 +#: src/splitpoints_window.c:1819 msgid "Clone year" msgstr "" -#: src/splitpoints_window.c:1862 +#: src/splitpoints_window.c:1823 msgid "Clone track" msgstr "" -#: src/splitpoints_window.c:1868 +#: src/splitpoints_window.c:1827 msgid "Clone comment" msgstr "" -#: src/splitpoints_window.c:1876 +#: src/splitpoints_window.c:1833 msgid "Auto-increment track" msgstr "" -#: src/splitpoints_window.c:1948 +#: src/splitpoints_window.c:1903 msgid "Keep" msgstr "" -#: src/splitpoints_window.c:1964 +#: src/splitpoints_window.c:1919 msgid "Secs" msgstr "" -#: src/splitpoints_window.c:1972 +#: src/splitpoints_window.c:1927 msgid "Mins" msgstr "" -#: src/splitpoints_window.c:1980 +#: src/splitpoints_window.c:1935 msgid "Hundr" msgstr "" -#: src/splitpoints_window.c:1988 +#: src/splitpoints_window.c:1943 msgid "Length" msgstr "" -#: src/splitpoints_window.c:1995 +#: src/splitpoints_window.c:1950 msgid "LiveP" msgstr "" -#: src/splitpoints_window.c:2003 +#: src/splitpoints_window.c:1958 msgid "SplitP" msgstr "" -#: src/splitpoints_window.c:2053 +#: src/splitpoints_window.c:2008 msgid "Title" msgstr "" -#: src/splitpoints_window.c:2056 +#: src/splitpoints_window.c:2011 msgid "Artist" msgstr "" -#: src/splitpoints_window.c:2059 +#: src/splitpoints_window.c:2014 msgid "Album" msgstr "" -#: src/splitpoints_window.c:2062 +#: src/splitpoints_window.c:2017 msgid "Genre" msgstr "" -#: src/splitpoints_window.c:2066 +#: src/splitpoints_window.c:2021 msgid "Comment" msgstr "" -#: src/splitpoints_window.c:2069 +#: src/splitpoints_window.c:2024 msgid "Year" msgstr "" -#: src/splitpoints_window.c:2073 +#: src/splitpoints_window.c:2028 msgid "Track" msgstr "" -#: src/preferences_window.c:249 +#: src/preferences_window.c:247 msgid "<b>Choose language (requires restart)</b>" msgstr "" -#: src/preferences_window.c:358 +#: src/preferences_window.c:357 msgid "Browse directory ..." msgstr "" -#: src/preferences_window.c:376 +#: src/preferences_window.c:375 msgid "Example for the single file split:" msgstr "" -#: src/preferences_window.c:415 +#: src/preferences_window.c:414 msgid "Custom directory" msgstr "" -#: src/preferences_window.c:417 +#: src/preferences_window.c:416 msgid "Create split files in a custom directory" msgstr "" -#: src/preferences_window.c:422 +#: src/preferences_window.c:421 msgid "Input file directory" msgstr "" -#: src/preferences_window.c:425 +#: src/preferences_window.c:424 msgid "Create split files in the same directory as the file being split" msgstr "" -#: src/preferences_window.c:431 +#: src/preferences_window.c:430 msgid "<b>Directory for split files</b>" msgstr "" -#: src/preferences_window.c:444 +#: src/preferences_window.c:455 msgid "_Splitpoint name from filename (manual single file split only)" msgstr "" -#: src/preferences_window.c:446 +#: src/preferences_window.c:457 msgid "Name newly added splitpoints as the input file" msgstr "" -#: src/preferences_window.c:454 +#: src/preferences_window.c:465 msgid "Create directories from _filenames " msgstr "" -#: src/preferences_window.c:457 +#: src/preferences_window.c:468 msgid "" "If the splitpoint name is 'a/b/output', the directory chain 'a/b' is created " "in the output\n" @@ -571,114 +586,156 @@ "'<output_directory>/a/b' directory" msgstr "" -#: src/preferences_window.c:467 +#: src/preferences_window.c:478 msgid "F_rame mode (useful for mp3 VBR) (mp3 only)" msgstr "" -#: src/preferences_window.c:469 +#: src/preferences_window.c:480 msgid "" "The split is slower with this option, but some mp3 files having\n" "Variable Bit Rate need this mode to be enabled" msgstr "" -#: src/preferences_window.c:476 +#: src/preferences_window.c:488 +msgid "_[Experimental] Bit reservoir handling for gapless playback (mp3 only)" +msgstr "" + +#: src/preferences_window.c:490 +msgid "" +"Split files will play gapless only on players supporting the LAME tag delay " +"and padding values\n" +"Gapless players examples: cmus, mpg123, foobar2000" +msgstr "" + +#: src/preferences_window.c:498 msgid "_Auto-adjust mode (use silence detection to auto-adjust splitpoints)" msgstr "" -#: src/preferences_window.c:479 +#: src/preferences_window.c:501 msgid "" "Splitpoints will be adjusted to match silences (if found)\n" "This mode requires the frame mode" msgstr "" -#: src/preferences_window.c:528 +#: src/preferences_window.c:550 msgid "Cutpoint offset (0 is the begin of silence and 1 the end):" msgstr "" -#: src/preferences_window.c:545 +#: src/preferences_window.c:567 msgid "Gap level (seconds around splitpoint to search for silence):" msgstr "" -#: src/preferences_window.c:562 +#: src/preferences_window.c:584 msgid "Set _default split options" msgstr "" -#: src/preferences_window.c:567 +#: src/preferences_window.c:589 msgid "<b>Split options</b>" msgstr "" -#: src/preferences_window.c:630 +#: src/preferences_window.c:677 msgid "Player:" msgstr "" -#: src/preferences_window.c:649 +#: src/preferences_window.c:696 msgid "Refresh player every " msgstr "" -#: src/preferences_window.c:650 +#: src/preferences_window.c:697 src/preferences_window.c:725 msgid "milliseconds." msgstr "" -#: src/preferences_window.c:652 +#: src/preferences_window.c:699 msgid "\t(higher refresh rate decreases CPU usage - default is 200)" msgstr "" -#: src/preferences_window.c:658 +#: src/preferences_window.c:710 +msgid "Stop GStreamer preview" +msgstr "" + +#: src/preferences_window.c:710 +msgid "milliseconds before the end." +msgstr "" + +#: src/preferences_window.c:724 +msgid "Small seek jumps for " +msgstr "" + +#: src/preferences_window.c:733 +msgid "Seek jumps for " +msgstr "" + +#: src/preferences_window.c:734 src/preferences_window.c:743 +msgid "milliseconds. (0=auto)" +msgstr "" + +#: src/preferences_window.c:742 +msgid "Big seek jumps for " +msgstr "" + +#: src/preferences_window.c:753 +msgid "Seek times" +msgstr "" + +#: src/preferences_window.c:761 msgid "<b>Player options</b>" msgstr "" -#: src/preferences_window.c:777 -msgid "" -"Wave preview is only available if the amplitude wave is shown in the player" +#: src/preferences_window.c:872 +msgid "Only available if the amplitude wave is shown in the player" +msgstr "" + +#: src/preferences_window.c:902 +msgid "Wave preview" msgstr "" -#: src/preferences_window.c:817 +#: src/preferences_window.c:912 #, c-format msgid "%d minute(s) window" msgstr "" -#: src/preferences_window.c:822 +#: src/preferences_window.c:917 #, c-format msgid "Wave interpolation level %d with threshold of %.1lf" msgstr "" -#: src/preferences_window.c:844 +#: src/preferences_window.c:939 msgid "Wave quality (higher is better but consumes more CPU):" msgstr "" -#: src/preferences_window.c:863 +#: src/preferences_window.c:961 msgid "<b>Amplitude wave options</b>" msgstr "" -#: src/preferences_window.c:920 +#: src/preferences_window.c:1054 msgid "Default format" msgstr "" -#: src/preferences_window.c:927 +#: src/preferences_window.c:1061 msgid " Default output: " msgstr "" -#: src/preferences_window.c:933 +#: src/preferences_window.c:1067 msgid " CDDB, CUE and tracktype.org default: " msgstr "" -#: src/preferences_window.c:939 +#: src/preferences_window.c:1073 msgid " Split with silence detection default: " msgstr "" -#: src/preferences_window.c:945 +#: src/preferences_window.c:1079 msgid " Trim using silence detection default: " msgstr "" -#: src/preferences_window.c:951 +#: src/preferences_window.c:1085 msgid " Error mode default: " msgstr "" -#: src/preferences_window.c:966 +#: src/preferences_window.c:1100 msgid "Custom format" msgstr "" -#: src/preferences_window.c:985 +#: src/preferences_window.c:1119 msgid "" " @A: performer if found, otherwise artist\n" " @a: artist name\n" @@ -695,6 +752,8 @@ "number) **\n" " @U: track tag number as uppercase letter **\n" " @f: input filename (without extension)\n" +" @d: last directory of the input filename or the filename itself if no " +"directory\n" " @m, @s or @h: the number of minutes, seconds or hundreths of seconds of " "the start splitpoint **\n" " @M, @S or @H: the number of minutes, seconds or hundreths of seconds of " @@ -703,83 +762,83 @@ " (**) a digit may follow for the number of digits to output\n" msgstr "" -#: src/preferences_window.c:1010 +#: src/preferences_window.c:1145 msgid "<b>Output format for batch split and when importing splitpoints</b>" msgstr "" -#: src/preferences_window.c:1060 +#: src/preferences_window.c:1194 msgid "Original file tags" msgstr "" -#: src/preferences_window.c:1063 +#: src/preferences_window.c:1197 msgid "Custom tags (from the splitpoints table)" msgstr "" -#: src/preferences_window.c:1066 +#: src/preferences_window.c:1200 msgid "No tags" msgstr "" -#: src/preferences_window.c:1069 +#: src/preferences_window.c:1203 msgid "Extract tags from filename" msgstr "" -#: src/preferences_window.c:1078 +#: src/preferences_window.c:1212 msgid "<b>Split files tags</b>" msgstr "" -#: src/preferences_window.c:1100 +#: src/preferences_window.c:1234 msgid "No change" msgstr "" -#: src/preferences_window.c:1101 +#: src/preferences_window.c:1235 msgid "lowercase" msgstr "" -#: src/preferences_window.c:1102 +#: src/preferences_window.c:1236 msgid "UPPERCASE" msgstr "" -#: src/preferences_window.c:1103 +#: src/preferences_window.c:1237 msgid "First uppercase" msgstr "" -#: src/preferences_window.c:1104 +#: src/preferences_window.c:1238 msgid "Word Uppercase" msgstr "" -#: src/preferences_window.c:1126 +#: src/preferences_window.c:1284 msgid "<artist>: " msgstr "" -#: src/preferences_window.c:1135 +#: src/preferences_window.c:1293 msgid "<album>: " msgstr "" -#: src/preferences_window.c:1145 +#: src/preferences_window.c:1303 msgid "<title>: " msgstr "" -#: src/preferences_window.c:1154 +#: src/preferences_window.c:1312 msgid "<genre>: " msgstr "" -#: src/preferences_window.c:1163 +#: src/preferences_window.c:1321 msgid "<comment>: " msgstr "" -#: src/preferences_window.c:1172 +#: src/preferences_window.c:1330 msgid "<year>: " msgstr "" -#: src/preferences_window.c:1181 +#: src/preferences_window.c:1339 msgid "<track>: " msgstr "" -#: src/preferences_window.c:1210 +#: src/preferences_window.c:1379 msgid "Regular expression:" msgstr "" -#: src/preferences_window.c:1213 +#: src/preferences_window.c:1382 msgid "" "Above enter PERL-like regular expression using named subgroups.\n" "Following names are recognized:\n" @@ -792,497 +851,313 @@ " (?<comment>) - comment" msgstr "" -#: src/preferences_window.c:1240 +#: src/preferences_window.c:1409 msgid "_Replace underscores by spaces" msgstr "" -#: src/preferences_window.c:1250 +#: src/preferences_window.c:1419 msgid "Artist text properties:" msgstr "" -#: src/preferences_window.c:1255 +#: src/preferences_window.c:1424 msgid "Album text properties:" msgstr "" -#: src/preferences_window.c:1260 +#: src/preferences_window.c:1429 msgid "Title text properties:" msgstr "" -#: src/preferences_window.c:1265 +#: src/preferences_window.c:1434 msgid "Comment text properties:" msgstr "" -#: src/preferences_window.c:1269 +#: src/preferences_window.c:1438 msgid "Genre tag:" msgstr "" -#: src/preferences_window.c:1273 +#: src/preferences_window.c:1442 msgid "Comment tag:" msgstr "" -#: src/preferences_window.c:1275 +#: src/preferences_window.c:1444 msgid "Regular expression test" msgstr "" -#: src/preferences_window.c:1291 +#: src/preferences_window.c:1460 msgid "_Test" msgstr "" -#: src/preferences_window.c:1295 +#: src/preferences_window.c:1464 msgid "Sample filename:" msgstr "" -#: src/preferences_window.c:1300 +#: src/preferences_window.c:1469 msgid "Sample result:" msgstr "" -#: src/preferences_window.c:1312 +#: src/preferences_window.c:1481 msgid "ID3v1 & ID3v2 tags" msgstr "" -#: src/preferences_window.c:1319 +#: src/preferences_window.c:1488 msgid "ID3v2 tags" msgstr "" -#: src/preferences_window.c:1326 +#: src/preferences_window.c:1495 msgid "ID3v1 tags" msgstr "" -#: src/preferences_window.c:1333 +#: src/preferences_window.c:1502 msgid "Same tags version as the input file" msgstr "" -#: src/preferences_window.c:1339 +#: src/preferences_window.c:1508 msgid "<b>Tags version (mp3 only)</b>" msgstr "" -#: src/preferences_window.c:1380 +#: src/preferences_window.c:1548 src/main_window.c:774 msgid "Split" msgstr "" -#: src/preferences_window.c:1385 +#: src/preferences_window.c:1553 msgid "Tags" msgstr "" -#: src/preferences_window.c:1390 +#: src/preferences_window.c:1558 msgid "Player" msgstr "" -#: src/preferences_window.c:1395 +#: src/preferences_window.c:1563 msgid "Output format" msgstr "" -#: src/preferences_window.c:1401 +#: src/preferences_window.c:1569 msgid "Language" msgstr "" -#: src/split_mode_window.c:193 +#: src/split_mode_window.c:188 msgid "Use manual single file splitpoints" msgstr "" -#: src/split_mode_window.c:195 +#: src/split_mode_window.c:190 msgid "Split files using the manually defined splitpoints" msgstr "" -#: src/split_mode_window.c:205 +#: src/split_mode_window.c:200 msgid "Time" msgstr "" -#: src/split_mode_window.c:207 +#: src/split_mode_window.c:202 msgid "Split every fixed time length; last track will most likely be smaller" msgstr "" -#: src/split_mode_window.c:224 +#: src/split_mode_window.c:219 msgid "Split every" msgstr "" -#: src/split_mode_window.c:237 +#: src/split_mode_window.c:232 msgid "seconds." msgstr "" -#: src/split_mode_window.c:244 +#: src/split_mode_window.c:239 msgid "Equal time tracks" msgstr "" -#: src/split_mode_window.c:246 +#: src/split_mode_window.c:241 msgid "Create smaller tracks having exactly the same time length" msgstr "" -#: src/split_mode_window.c:261 +#: src/split_mode_window.c:256 msgid "Split in" msgstr "" -#: src/split_mode_window.c:275 +#: src/split_mode_window.c:270 msgid "equal tracks." msgstr "" -#: src/split_mode_window.c:282 +#: src/split_mode_window.c:277 msgid "Trim using silence detection" msgstr "" -#: src/split_mode_window.c:284 +#: src/split_mode_window.c:279 msgid "" "Split by discarding silence from the begin and from the end\n" "If no silence is found, the output file is still created" msgstr "" -#: src/split_mode_window.c:302 src/split_mode_window.c:331 +#: src/split_mode_window.c:297 src/split_mode_window.c:326 msgid "Threshold level (dB) : " msgstr "" -#: src/split_mode_window.c:313 +#: src/split_mode_window.c:308 msgid "Silence - split with silence detection" msgstr "" -#: src/split_mode_window.c:314 +#: src/split_mode_window.c:309 msgid "Split where silence is found" msgstr "" -#: src/split_mode_window.c:343 +#: src/split_mode_window.c:338 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end) : " msgstr "" -#: src/split_mode_window.c:355 +#: src/split_mode_window.c:350 msgid "Number of tracks (0 means all tracks) : " msgstr "" -#: src/split_mode_window.c:367 +#: src/split_mode_window.c:362 msgid "Minimum silence length (seconds) : " msgstr "" -#: src/split_mode_window.c:379 +#: src/split_mode_window.c:374 msgid "Minimum track length (seconds) : " msgstr "" -#: src/split_mode_window.c:389 +#: src/split_mode_window.c:384 msgid "Remove silence between tracks" msgstr "" -#: src/split_mode_window.c:410 +#: src/split_mode_window.c:405 msgid "Wrap - split files created with mp3wrap or albumwrap (mp3 only)" msgstr "" -#: src/split_mode_window.c:420 +#: src/split_mode_window.c:415 msgid "Synchronisation error mode (mp3 only)" msgstr "" -#: src/split_mode_window.c:422 +#: src/split_mode_window.c:417 msgid "" "Split where synchronisation errors are found\n" "Useful for splitting concatenated files" msgstr "" -#: src/mp3splt-gtk.c:102 -msgid " error: no files found in batch mode" +#: src/split_mode_window.c:428 +msgid "Internal sheet mode (CUE sheet for FLAC and ID3v2 chapters for MP3)" msgstr "" -#: src/mp3splt-gtk.c:278 -msgid " info: stopping the split process before exiting" +#: src/split_mode_window.c:429 +msgid "Split using internal sheet" msgstr "" -#: src/mp3splt-gtk.c:389 -#, c-format -msgid "Setting the output directory to %s.\n" +#: src/split_mode_window.c:439 +msgid "Use CUE file with similar name as the input file" msgstr "" -#: src/mp3splt-gtk.c:403 -#, c-format -msgid "Option -%c requires an argument.\n" +#: src/split_mode_window.c:441 +msgid "" +"Split using CUE file having similar name as the input file\n" +"Example: test.cue will be looked for when splitting test.mp3" msgstr "" -#: src/mp3splt-gtk.c:405 -#, c-format -msgid "Unknown option `-%c'.\n" +#: src/split_mode_window.c:452 +msgid "Use CDDB file with similar name as the input file" msgstr "" -#: src/mp3splt-gtk.c:407 -#, c-format -msgid "Unknown option character `\\x%x'.\n" +#: src/split_mode_window.c:454 +msgid "" +"Split using CDDB file having similar name as the input file\n" +"Example: test.cddb will be looked for when splitting test.mp3" msgstr "" -#: src/mp3splt-gtk.c:421 -#, c-format -msgid "Cannot open input file %s\n" +#: src/mp3splt-gtk.c:112 +msgid " error: no files found in batch mode" +msgstr "" + +#: src/mp3splt-gtk.c:350 +msgid " info: stopping the split process before exiting" msgstr "" -#: src/main_window.c:173 +#: src/main_window.c:170 msgid "Error launching external command" msgstr "" -#: src/main_window.c:204 +#: src/main_window.c:203 msgid "using" msgstr "" -#: src/main_window.c:208 +#: src/main_window.c:207 msgid "release of " msgstr "" -#: src/main_window.c:311 +#: src/main_window.c:310 msgid " info: stopping the split process.. please wait" msgstr "" -#: src/main_window.c:319 src/main_window.c:778 -msgid "Preferences" -msgstr "" - -#: src/main_window.c:331 -msgid "TrackType" -msgstr "" - -#: src/main_window.c:346 src/main_window.c:781 -msgid "Split files" -msgstr "" - -#: src/main_window.c:361 src/main_window.c:784 -msgid "Splitpoints" -msgstr "" - -#: src/main_window.c:432 +#: src/main_window.c:375 msgid " error: split in progress..." msgstr "" -#: src/main_window.c:442 +#: src/main_window.c:385 msgid " error: no path of split selected" msgstr "" -#: src/main_window.c:725 -msgid "Choose File" -msgstr "" - -#: src/main_window.c:755 -msgid "_File" -msgstr "" - -#: src/main_window.c:756 -msgid "_View" -msgstr "" - -#: src/main_window.c:757 -msgid "_Player" -msgstr "" - -#: src/main_window.c:758 -msgid "_Help" -msgstr "" - -#: src/main_window.c:760 -msgid "_Open single file..." -msgstr "" - -#: src/main_window.c:760 -msgid "Open" -msgstr "" - -#: src/main_window.c:764 -msgid "_Add files or directories to batch ..." -msgstr "" - -#: src/main_window.c:765 -msgid "Add files or directories to batch" -msgstr "" - -#: src/main_window.c:768 -msgid "_Import splitpoints from file..." -msgstr "" - -#: src/main_window.c:769 -msgid "Import splitpoints from file..." -msgstr "" - -#: src/main_window.c:771 -msgid "Import splitpoints from _TrackType.org..." -msgstr "" - -#: src/main_window.c:772 -msgid "Import splitpoints from TrackType.org..." -msgstr "" - -#: src/main_window.c:775 -msgid "_Export splitpoints..." -msgstr "" - -#: src/main_window.c:776 -msgid "Export splitpoints" -msgstr "" - -#: src/main_window.c:778 -msgid "_Preferences" -msgstr "" - -#: src/main_window.c:781 -msgid "Split _files" -msgstr "" - -#: src/main_window.c:784 -msgid "_Splitpoints" -msgstr "" - -#: src/main_window.c:787 -msgid "_Split !" -msgstr "" - -#: src/main_window.c:787 src/main_window.c:998 -msgid "Split !" -msgstr "" - -#: src/main_window.c:790 -msgid "_Batch split !" -msgstr "" - -#: src/main_window.c:793 -msgid "_Quit" -msgstr "" - -#: src/main_window.c:793 -msgid "Quit" -msgstr "" - -#: src/main_window.c:797 -msgid "_Contents" -msgstr "" - -#: src/main_window.c:797 -msgid "Contents" +#: src/main_window.c:729 +msgid "Open file ..." msgstr "" -#: src/main_window.c:801 -msgid "Messages _history" +#: src/main_window.c:777 +msgid "Split the current file" msgstr "" -#: src/main_window.c:804 -msgid "_About" +#: src/main_window.c:786 +msgid "Manual single file split" msgstr "" #: src/main_window.c:804 -msgid "About" -msgstr "" - -#: src/main_window.c:808 -msgid "P_ause / Play" -msgstr "" - -#: src/main_window.c:808 -msgid "Pause/Play" -msgstr "" - -#: src/main_window.c:811 -msgid "Seek _forward" -msgstr "" - -#: src/main_window.c:811 -msgid "Seek forward" -msgstr "" - -#: src/main_window.c:813 -msgid "Seek _backward" -msgstr "" - -#: src/main_window.c:813 -msgid "Seek backward" -msgstr "" - -#: src/main_window.c:816 -msgid "Small seek f_orward" -msgstr "" - -#: src/main_window.c:816 -msgid "Small seek forward" -msgstr "" - -#: src/main_window.c:818 -msgid "Small seek back_ward" -msgstr "" - -#: src/main_window.c:818 -msgid "Small seek backward" -msgstr "" - -#: src/main_window.c:821 -msgid "Big seek fo_rward" -msgstr "" - -#: src/main_window.c:821 -msgid "Big seek forward" -msgstr "" - -#: src/main_window.c:823 -msgid "Big seek bac_kward" -msgstr "" - -#: src/main_window.c:823 -msgid "Big seek backward" -msgstr "" - -#: src/main_window.c:826 -msgid "Seek to _next splitpoint" -msgstr "" - -#: src/main_window.c:827 -msgid "Seek to next splitpoint" -msgstr "" - -#: src/main_window.c:828 -msgid "Seek to _previous splitpoint" -msgstr "" - -#: src/main_window.c:829 -msgid "Seek to previous splitpoint" -msgstr "" - -#: src/main_window.c:832 -msgid "_Quick preview before closest splitpoint" -msgstr "" - -#: src/main_window.c:832 -msgid "Quick preview before closest splitpoint" +msgid "Batch & automatic split" msgstr "" -#: src/main_window.c:835 -msgid "Add _splitpoint" +#: src/main_window.c:822 +msgid "S_top" msgstr "" -#: src/main_window.c:838 -msgid "_Delete closest splitpoint" +#: src/main_window.c:1089 +#, c-format +msgid "Setting the output directory to %s.\n" msgstr "" -#: src/main_window.c:839 -msgid "Delete closest splitpoint" +#: src/main_window.c:1103 +#, c-format +msgid "Option -%c requires an argument.\n" msgstr "" -#: src/main_window.c:841 -msgid "Zoom _in" +#: src/main_window.c:1105 +#, c-format +msgid "Unknown option `-%c'.\n" msgstr "" -#: src/main_window.c:841 -msgid "Zoom in" +#: src/main_window.c:1107 +#, c-format +msgid "Unknown option character `\\x%x'.\n" msgstr "" -#: src/main_window.c:842 -msgid "Zoom _out" +#: src/main_window.c:1121 +#, c-format +msgid "Cannot open input file %s\n" msgstr "" -#: src/main_window.c:842 -msgid "Zoom out" +#: src/main_window.c:1164 +msgid "Choose File" msgstr "" -#: src/main_window.c:953 -msgid "Open file ..." +#: src/main_window.c:1168 src/import.c:61 +msgid "_Open" msgstr "" -#: src/main_window.c:1001 -msgid "Split the current file" +#: src/main_window.c:1208 +msgid "TrackType" msgstr "" -#: src/main_window.c:1010 -msgid "Manual single file split" +#: src/main_window.c:1225 +msgid "Preferences" msgstr "" -#: src/main_window.c:1028 -msgid "Batch & automatic split" +#: src/main_window.c:1257 +msgid "Splitpoints" msgstr "" -#: src/main_window.c:1048 -msgid "S_top" +#: src/main_window.c:1273 +msgid "Split files" msgstr "" #: src/libmp3splt_manager.c:71 @@ -1290,72 +1165,82 @@ msgid " File '%s' created" msgstr "" -#: src/libmp3splt_manager.c:182 +#: src/libmp3splt_manager.c:166 #, c-format msgid " preparing \"%s\" (%d of %d)" msgstr "" -#: src/libmp3splt_manager.c:188 +#: src/libmp3splt_manager.c:172 #, c-format msgid " creating \"%s\" (%d of %d)" msgstr "" -#: src/libmp3splt_manager.c:194 +#: src/libmp3splt_manager.c:178 msgid " searching for sync errors..." msgstr "" -#: src/libmp3splt_manager.c:199 +#: src/libmp3splt_manager.c:183 msgid "Computing amplitude wave data..." msgstr "" -#: src/libmp3splt_manager.c:204 +#: src/libmp3splt_manager.c:188 #, c-format msgid "S: %02d, Level: %.2f dB; scanning for silence..." msgstr "" -#: src/import.c:55 +#: src/import.c:56 msgid "Choose file to import" msgstr "" -#: src/import.c:207 -msgid "CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt)" +#: src/import.c:271 +msgid "" +"CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt), internal sheet (*." +"flac), chapters (*.mp3)" msgstr "" -#: src/import.c:211 +#: src/import.c:275 msgid "CDDB files (*.cddb)" msgstr "" -#: src/import.c:213 +#: src/import.c:277 msgid "CUE files (*.cue)" msgstr "" -#: src/import.c:215 +#: src/import.c:279 msgid "Audacity labels files (*.txt)" msgstr "" -#: src/import.c:217 +#: src/import.c:281 +msgid "FLAC internal sheet (*.flac)" +msgstr "" + +#: src/import.c:283 +msgid "ID3v2 chapters (*.mp3)" +msgstr "" + +#: src/import.c:285 msgid "All files" msgstr "" -#: src/import.c:348 +#: src/import.c:476 msgid "--- last cue splitpoint ---" msgstr "" -#: src/gstreamer_control.c:73 +#: src/gstreamer_control.c:71 #, c-format msgid "gstreamer error: %s" msgstr "" -#: src/gstreamer_control.c:99 +#: src/gstreamer_control.c:97 #, c-format msgid "Warning: %s" msgstr "" -#: src/gstreamer_control.c:125 +#: src/gstreamer_control.c:123 #, c-format msgid "Info: %s" msgstr "" -#: src/gstreamer_control.c:369 +#: src/gstreamer_control.c:354 msgid " error: cannot create gstreamer playbin\n" msgstr "" Binary files /tmp/tmpA90wb_/LJUs5HNncE/mp3splt-gtk-0.9/po/ro.gmo and /tmp/tmpA90wb_/V0ZBgpNw8L/mp3splt-gtk-0.9.2/po/ro.gmo differ diff -Nru mp3splt-gtk-0.9/po/ro.po mp3splt-gtk-0.9.2/po/ro.po --- mp3splt-gtk-0.9/po/ro.po 2013-07-20 07:11:46.000000000 +0000 +++ mp3splt-gtk-0.9.2/po/ro.po 2014-11-09 16:50:48.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: mp3splt-gtk\n" "Report-Msgid-Bugs-To: io_alex_2004@users.sourceforge.net\n" -"POT-Creation-Date: 2013-07-20 09:11+0200\n" +"POT-Creation-Date: 2014-11-09 17:50+0100\n" "PO-Revision-Date: 2013-04-29 08:45+0000\n" "Last-Translator: Peter Pall <gunter@peterpall.de>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -20,39 +20,49 @@ "2:1));\n" #: src/audacious_control.c:66 src/snackamp_control.c:337 -#: src/gstreamer_control.c:228 +#: src/gstreamer_control.c:217 msgid "stereo" msgstr "stereo" #: src/audacious_control.c:70 src/snackamp_control.c:341 -#: src/gstreamer_control.c:232 +#: src/gstreamer_control.c:221 msgid "mono" msgstr "mono" #: src/audacious_control.c:73 src/snackamp_control.c:344 -#: src/gstreamer_control.c:198 +#: src/gstreamer_control.c:190 msgid "Kbps" msgstr "Kbps" #: src/audacious_control.c:74 src/snackamp_control.c:345 -#: src/gstreamer_control.c:199 +#: src/gstreamer_control.c:191 msgid "Khz" msgstr "KHz" -#: src/utilities.c:87 +#: src/utilities.c:86 #, c-format msgid "Processing file '%s' ..." msgstr "" -#: src/export.c:93 +#: src/export.c:154 msgid "Cue filename to export" msgstr "" -#: src/export.c:105 +#: src/export.c:157 src/multiple_files_window.c:83 +#: src/splitpoints_window.c:1126 src/splitpoints_window.c:1183 +#: src/main_window.c:1166 src/import.c:59 +msgid "_Cancel" +msgstr "" + +#: src/export.c:159 +msgid "_Save" +msgstr "" + +#: src/export.c:166 msgid "cue files (*.cue)" msgstr "" -#: src/widgets_helper.c:428 +#: src/widgets_helper.c:401 msgid "_Close" msgstr "" @@ -60,7 +70,7 @@ msgid "Processing Douglas-Peucker filters ..." msgstr "" -#: src/player_window.c:580 +#: src/player_window.c:576 msgid "" "\n" " Cannot connect to snackAmp player.\n" @@ -79,7 +89,7 @@ " After that, restart snackamp and mp3splt-gtk should work.\n" msgstr "" -#: src/player_window.c:595 +#: src/player_window.c:591 msgid "" "\n" " Cannot connect to Audacious player.\n" @@ -90,142 +100,147 @@ "connect.\n" msgstr "" -#: src/player_window.c:603 src/player_window.c:607 +#: src/player_window.c:599 src/player_window.c:603 msgid "Cannot connect to player" msgstr "" -#: src/player_window.c:904 +#: src/player_window.c:604 src/splitpoints_window.c:1124 +#: src/splitpoints_window.c:1181 +msgid "_OK" +msgstr "" + +#: src/player_window.c:900 msgid "Previous track" msgstr "" -#: src/player_window.c:922 +#: src/player_window.c:918 msgid "Play" msgstr "" -#: src/player_window.c:939 +#: src/player_window.c:935 msgid "Pause" msgstr "" -#: src/player_window.c:956 +#: src/player_window.c:952 msgid "Stop" msgstr "" -#: src/player_window.c:973 +#: src/player_window.c:969 msgid "Next track" msgstr "" -#: src/player_window.c:980 src/splitpoints_window.c:1436 +#: src/player_window.c:976 src/splitpoints_window.c:1407 msgid "_Add" msgstr "" -#: src/player_window.c:987 +#: src/player_window.c:983 msgid "Add splitpoint at the current player position" msgstr "" -#: src/player_window.c:996 src/splitpoints_window.c:1134 -#: src/splitpoints_window.c:1479 +#: src/player_window.c:992 src/splitpoints_window.c:1121 +#: src/splitpoints_window.c:1450 msgid "Set trim splitpoints using silence detection" msgstr "" -#: src/player_window.c:1007 src/splitpoints_window.c:1193 -#: src/splitpoints_window.c:1489 +#: src/player_window.c:1003 src/splitpoints_window.c:1178 +#: src/splitpoints_window.c:1460 msgid "Set splitpoints from silence detection" msgstr "" -#: src/player_window.c:1012 +#: src/player_window.c:1008 msgid "Amplitude _wave" msgstr "" -#: src/player_window.c:1018 +#: src/player_window.c:1014 msgid "Shows the amplitude level wave" msgstr "" -#: src/player_window.c:1021 +#: src/player_window.c:1017 msgid "_Connect" msgstr "" -#: src/player_window.c:1024 +#: src/player_window.c:1020 msgid "Connect to player" msgstr "" -#: src/player_window.c:1027 +#: src/player_window.c:1023 msgid "_Disconnect" msgstr "" -#: src/player_window.c:1030 +#: src/player_window.c:1026 msgid "Disconnect from player" msgstr "" -#: src/player_window.c:1153 +#: src/player_window.c:1160 #, c-format msgid "before %s" msgstr "" -#: src/player_window.c:1892 +#: src/player_window.c:1981 msgid "No available wave" msgstr "" -#: src/player_window.c:2045 src/preferences_window.c:826 +#: src/player_window.c:2073 src/preferences_window.c:921 msgid "No wave interpolation" msgstr "" -#: src/player_window.c:2051 +#: src/player_window.c:2079 #, c-format msgid "Wave interpolation level %d" msgstr "" -#: src/player_window.c:2131 +#: src/player_window.c:2141 msgid " Please wait for the process to finish ..." msgstr "" -#: src/player_window.c:2153 +#: src/player_window.c:2163 msgid " Please wait ... currently computing Douglas Peucker filters." msgstr "" -#: src/player_window.c:2237 +#: src/player_window.c:2247 msgid " left click on splitpoint selects it, right click erases it" msgstr "" -#: src/player_window.c:2242 +#: src/player_window.c:2252 msgid "" " left click + move changes song position, right click + move changes zoom" msgstr "" -#: src/player_window.c:2248 +#: src/player_window.c:2258 msgid "" " left click on point + move changes point position, right click play preview" msgstr "" -#: src/player_window.c:2253 +#: src/player_window.c:2263 msgid " left click on rectangle checks/unchecks 'keep splitpoint'" msgstr "" -#: src/player_window.c:2678 -msgid " quick preview..." +#: src/player_window.c:2695 +msgid " preview..." msgstr "" -#: src/player_window.c:3022 +#: src/player_window.c:3034 msgid "Splitpoints and amplitude wave v_iew" msgstr "" -#: src/player_window.c:3138 +#: src/player_window.c:3150 msgid "History" msgstr "" -#: src/player_window.c:3228 +#: src/player_window.c:3240 msgid "_Erase selected entries" msgstr "" -#: src/player_window.c:3236 +#: src/player_window.c:3248 msgid "E_rase all history" msgstr "" -#: src/player_window.c:3278 +#: src/player_window.c:3290 msgid "Files h_istory" msgstr "" -#: src/player_window.c:3404 -msgid " quick preview finished, song paused" +#: src/player_window.c:3330 +msgid " preview finished, song paused" msgstr "" #: src/multiple_files_window.c:63 @@ -236,47 +251,47 @@ msgid "Choose files or directories" msgstr "" -#: src/multiple_files_window.c:100 src/main_window.c:691 +#: src/multiple_files_window.c:98 src/main_window.c:671 msgid "mp3, ogg vorbis and flac files (*.mp3 *.ogg *.flac)" msgstr "" -#: src/multiple_files_window.c:110 src/main_window.c:701 +#: src/multiple_files_window.c:108 src/main_window.c:681 msgid "mp3 files (*.mp3)" msgstr "" -#: src/multiple_files_window.c:116 src/main_window.c:707 +#: src/multiple_files_window.c:114 src/main_window.c:687 msgid "ogg vorbis files (*.ogg)" msgstr "" -#: src/multiple_files_window.c:122 src/main_window.c:713 +#: src/multiple_files_window.c:120 src/main_window.c:693 msgid "flac files (*.flac)" msgstr "" -#: src/multiple_files_window.c:129 +#: src/multiple_files_window.c:127 msgid "All Files" msgstr "" -#: src/multiple_files_window.c:260 +#: src/multiple_files_window.c:258 msgid "_Add files or directories" msgstr "" -#: src/multiple_files_window.c:261 +#: src/multiple_files_window.c:259 msgid "Only the supported file types are added" msgstr "" -#: src/multiple_files_window.c:269 +#: src/multiple_files_window.c:267 msgid "_Remove selected" msgstr "" -#: src/multiple_files_window.c:279 src/splitpoints_window.c:1456 +#: src/multiple_files_window.c:277 src/splitpoints_window.c:1427 msgid "R_emove all" msgstr "" -#: src/multiple_files_window.c:287 src/main_window.c:790 -msgid "Batch split !" +#: src/multiple_files_window.c:285 +msgid "Batch split" msgstr "" -#: src/multiple_files_window.c:288 +#: src/multiple_files_window.c:286 msgid "Split all the files" msgstr "" @@ -288,11 +303,11 @@ msgid "C_lear" msgstr "" -#: src/messages_window.c:168 src/main_window.c:801 +#: src/messages_window.c:168 msgid "Messages history" msgstr "" -#: src/split_files_window.c:69 src/splitpoints_window.c:1956 +#: src/split_files_window.c:69 src/splitpoints_window.c:1911 msgid "Filename" msgstr "" @@ -317,29 +332,29 @@ msgid "Album title" msgstr "" -#: src/freedb_window.c:169 src/freedb_window.c:477 +#: src/freedb_window.c:154 src/freedb_window.c:472 msgid "please wait... contacting tracktype.org" msgstr "" -#: src/freedb_window.c:440 src/freedb_window.c:461 src/ui_manager.c:352 +#: src/freedb_window.c:435 src/freedb_window.c:456 src/ui_manager.c:372 #: src/splitpoints_window.c:671 src/splitpoints_window.c:792 #: src/splitpoints_window.c:842 msgid "description here" msgstr "descriere aici" -#: src/freedb_window.c:565 +#: src/freedb_window.c:559 msgid "Search tracktype.org:" msgstr "" -#: src/freedb_window.c:575 +#: src/freedb_window.c:569 msgid "_Search" msgstr "" -#: src/freedb_window.c:604 +#: src/freedb_window.c:598 msgid "_Add splitpoints" msgstr "" -#: src/freedb_window.c:610 +#: src/freedb_window.c:604 msgid "Set splitpoints to the splitpoints table" msgstr "" @@ -356,216 +371,216 @@ msgid " error: you already have the splitpoint in table" msgstr "eroare: ai deja splitpoint în tabel" -#: src/splitpoints_window.c:1159 src/splitpoints_window.c:1215 -#: src/preferences_window.c:497 +#: src/splitpoints_window.c:1146 src/splitpoints_window.c:1200 +#: src/preferences_window.c:519 msgid "Threshold level (dB):" msgstr "" -#: src/splitpoints_window.c:1229 +#: src/splitpoints_window.c:1214 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end):" msgstr "" -#: src/splitpoints_window.c:1243 +#: src/splitpoints_window.c:1228 msgid "Number of tracks (0 means all tracks):" msgstr "" -#: src/splitpoints_window.c:1255 src/preferences_window.c:513 +#: src/splitpoints_window.c:1240 src/preferences_window.c:535 msgid "Minimum silence length (seconds):" msgstr "" -#: src/splitpoints_window.c:1267 +#: src/splitpoints_window.c:1252 msgid "Minimum track length (seconds):" msgstr "" -#: src/splitpoints_window.c:1277 +#: src/splitpoints_window.c:1262 msgid "_Remove silence between tracks" msgstr "" -#: src/splitpoints_window.c:1429 +#: src/splitpoints_window.c:1400 msgid "Minutes:" msgstr "" -#: src/splitpoints_window.c:1431 +#: src/splitpoints_window.c:1402 msgid "Seconds:" msgstr "" -#: src/splitpoints_window.c:1433 +#: src/splitpoints_window.c:1404 msgid "Hundredths:" msgstr "" -#: src/splitpoints_window.c:1443 src/main_window.c:836 +#: src/splitpoints_window.c:1414 msgid "Add splitpoint" msgstr "" -#: src/splitpoints_window.c:1446 +#: src/splitpoints_window.c:1417 msgid "_Remove" msgstr "" -#: src/splitpoints_window.c:1453 +#: src/splitpoints_window.c:1424 msgid "Remove selected splitpoints" msgstr "" -#: src/splitpoints_window.c:1463 +#: src/splitpoints_window.c:1434 msgid "Remove all splitpoints" msgstr "" -#: src/splitpoints_window.c:1473 +#: src/splitpoints_window.c:1444 msgid "_Trim splitpoints" msgstr "" -#: src/splitpoints_window.c:1483 +#: src/splitpoints_window.c:1454 msgid "_Silence detection" msgstr "" -#: src/splitpoints_window.c:1561 src/mp3splt-gtk.c:119 +#: src/splitpoints_window.c:1534 src/mp3splt-gtk.c:129 msgid " finished" msgstr "" -#: src/splitpoints_window.c:1635 +#: src/splitpoints_window.c:1608 msgid " cannot preview, not connected to player" msgstr "" -#: src/splitpoints_window.c:1653 +#: src/splitpoints_window.c:1626 msgid " cannot split preview last splitpoint" msgstr "" -#: src/splitpoints_window.c:1824 +#: src/splitpoints_window.c:1797 msgid "Clone all tags" msgstr "" -#: src/splitpoints_window.c:1832 +#: src/splitpoints_window.c:1803 msgid "Clone title" msgstr "" -#: src/splitpoints_window.c:1838 +#: src/splitpoints_window.c:1807 msgid "Clone artist" msgstr "" -#: src/splitpoints_window.c:1844 +#: src/splitpoints_window.c:1811 msgid "Clone album" msgstr "" -#: src/splitpoints_window.c:1850 +#: src/splitpoints_window.c:1815 msgid "Clone genre" msgstr "" -#: src/splitpoints_window.c:1856 +#: src/splitpoints_window.c:1819 msgid "Clone year" msgstr "" -#: src/splitpoints_window.c:1862 +#: src/splitpoints_window.c:1823 msgid "Clone track" msgstr "" -#: src/splitpoints_window.c:1868 +#: src/splitpoints_window.c:1827 msgid "Clone comment" msgstr "" -#: src/splitpoints_window.c:1876 +#: src/splitpoints_window.c:1833 msgid "Auto-increment track" msgstr "" -#: src/splitpoints_window.c:1948 +#: src/splitpoints_window.c:1903 msgid "Keep" msgstr "" -#: src/splitpoints_window.c:1964 +#: src/splitpoints_window.c:1919 msgid "Secs" msgstr "" -#: src/splitpoints_window.c:1972 +#: src/splitpoints_window.c:1927 msgid "Mins" msgstr "" -#: src/splitpoints_window.c:1980 +#: src/splitpoints_window.c:1935 msgid "Hundr" msgstr "" -#: src/splitpoints_window.c:1988 +#: src/splitpoints_window.c:1943 msgid "Length" msgstr "" -#: src/splitpoints_window.c:1995 +#: src/splitpoints_window.c:1950 msgid "LiveP" msgstr "" -#: src/splitpoints_window.c:2003 +#: src/splitpoints_window.c:1958 msgid "SplitP" msgstr "" -#: src/splitpoints_window.c:2053 +#: src/splitpoints_window.c:2008 msgid "Title" msgstr "" -#: src/splitpoints_window.c:2056 +#: src/splitpoints_window.c:2011 msgid "Artist" msgstr "" -#: src/splitpoints_window.c:2059 +#: src/splitpoints_window.c:2014 msgid "Album" msgstr "" -#: src/splitpoints_window.c:2062 +#: src/splitpoints_window.c:2017 msgid "Genre" msgstr "" -#: src/splitpoints_window.c:2066 +#: src/splitpoints_window.c:2021 msgid "Comment" msgstr "" -#: src/splitpoints_window.c:2069 +#: src/splitpoints_window.c:2024 msgid "Year" msgstr "" -#: src/splitpoints_window.c:2073 +#: src/splitpoints_window.c:2028 msgid "Track" msgstr "" -#: src/preferences_window.c:249 +#: src/preferences_window.c:247 msgid "<b>Choose language (requires restart)</b>" msgstr "" -#: src/preferences_window.c:358 +#: src/preferences_window.c:357 msgid "Browse directory ..." msgstr "" -#: src/preferences_window.c:376 +#: src/preferences_window.c:375 msgid "Example for the single file split:" msgstr "" -#: src/preferences_window.c:415 +#: src/preferences_window.c:414 msgid "Custom directory" msgstr "" -#: src/preferences_window.c:417 +#: src/preferences_window.c:416 msgid "Create split files in a custom directory" msgstr "" -#: src/preferences_window.c:422 +#: src/preferences_window.c:421 msgid "Input file directory" msgstr "" -#: src/preferences_window.c:425 +#: src/preferences_window.c:424 msgid "Create split files in the same directory as the file being split" msgstr "" -#: src/preferences_window.c:431 +#: src/preferences_window.c:430 msgid "<b>Directory for split files</b>" msgstr "" -#: src/preferences_window.c:444 +#: src/preferences_window.c:455 msgid "_Splitpoint name from filename (manual single file split only)" msgstr "" -#: src/preferences_window.c:446 +#: src/preferences_window.c:457 msgid "Name newly added splitpoints as the input file" msgstr "" -#: src/preferences_window.c:454 +#: src/preferences_window.c:465 msgid "Create directories from _filenames " msgstr "" -#: src/preferences_window.c:457 +#: src/preferences_window.c:468 msgid "" "If the splitpoint name is 'a/b/output', the directory chain 'a/b' is created " "in the output\n" @@ -573,114 +588,156 @@ "'<output_directory>/a/b' directory" msgstr "" -#: src/preferences_window.c:467 +#: src/preferences_window.c:478 msgid "F_rame mode (useful for mp3 VBR) (mp3 only)" msgstr "" -#: src/preferences_window.c:469 +#: src/preferences_window.c:480 msgid "" "The split is slower with this option, but some mp3 files having\n" "Variable Bit Rate need this mode to be enabled" msgstr "" -#: src/preferences_window.c:476 +#: src/preferences_window.c:488 +msgid "_[Experimental] Bit reservoir handling for gapless playback (mp3 only)" +msgstr "" + +#: src/preferences_window.c:490 +msgid "" +"Split files will play gapless only on players supporting the LAME tag delay " +"and padding values\n" +"Gapless players examples: cmus, mpg123, foobar2000" +msgstr "" + +#: src/preferences_window.c:498 msgid "_Auto-adjust mode (use silence detection to auto-adjust splitpoints)" msgstr "" -#: src/preferences_window.c:479 +#: src/preferences_window.c:501 msgid "" "Splitpoints will be adjusted to match silences (if found)\n" "This mode requires the frame mode" msgstr "" -#: src/preferences_window.c:528 +#: src/preferences_window.c:550 msgid "Cutpoint offset (0 is the begin of silence and 1 the end):" msgstr "" -#: src/preferences_window.c:545 +#: src/preferences_window.c:567 msgid "Gap level (seconds around splitpoint to search for silence):" msgstr "" -#: src/preferences_window.c:562 +#: src/preferences_window.c:584 msgid "Set _default split options" msgstr "" -#: src/preferences_window.c:567 +#: src/preferences_window.c:589 msgid "<b>Split options</b>" msgstr "" -#: src/preferences_window.c:630 +#: src/preferences_window.c:677 msgid "Player:" msgstr "" -#: src/preferences_window.c:649 +#: src/preferences_window.c:696 msgid "Refresh player every " msgstr "" -#: src/preferences_window.c:650 +#: src/preferences_window.c:697 src/preferences_window.c:725 msgid "milliseconds." msgstr "" -#: src/preferences_window.c:652 +#: src/preferences_window.c:699 msgid "\t(higher refresh rate decreases CPU usage - default is 200)" msgstr "" -#: src/preferences_window.c:658 +#: src/preferences_window.c:710 +msgid "Stop GStreamer preview" +msgstr "" + +#: src/preferences_window.c:710 +msgid "milliseconds before the end." +msgstr "" + +#: src/preferences_window.c:724 +msgid "Small seek jumps for " +msgstr "" + +#: src/preferences_window.c:733 +msgid "Seek jumps for " +msgstr "" + +#: src/preferences_window.c:734 src/preferences_window.c:743 +msgid "milliseconds. (0=auto)" +msgstr "" + +#: src/preferences_window.c:742 +msgid "Big seek jumps for " +msgstr "" + +#: src/preferences_window.c:753 +msgid "Seek times" +msgstr "" + +#: src/preferences_window.c:761 msgid "<b>Player options</b>" msgstr "" -#: src/preferences_window.c:777 -msgid "" -"Wave preview is only available if the amplitude wave is shown in the player" +#: src/preferences_window.c:872 +msgid "Only available if the amplitude wave is shown in the player" +msgstr "" + +#: src/preferences_window.c:902 +msgid "Wave preview" msgstr "" -#: src/preferences_window.c:817 +#: src/preferences_window.c:912 #, c-format msgid "%d minute(s) window" msgstr "" -#: src/preferences_window.c:822 +#: src/preferences_window.c:917 #, c-format msgid "Wave interpolation level %d with threshold of %.1lf" msgstr "" -#: src/preferences_window.c:844 +#: src/preferences_window.c:939 msgid "Wave quality (higher is better but consumes more CPU):" msgstr "" -#: src/preferences_window.c:863 +#: src/preferences_window.c:961 msgid "<b>Amplitude wave options</b>" msgstr "" -#: src/preferences_window.c:920 +#: src/preferences_window.c:1054 msgid "Default format" msgstr "" -#: src/preferences_window.c:927 +#: src/preferences_window.c:1061 msgid " Default output: " msgstr "" -#: src/preferences_window.c:933 +#: src/preferences_window.c:1067 msgid " CDDB, CUE and tracktype.org default: " msgstr "" -#: src/preferences_window.c:939 +#: src/preferences_window.c:1073 msgid " Split with silence detection default: " msgstr "" -#: src/preferences_window.c:945 +#: src/preferences_window.c:1079 msgid " Trim using silence detection default: " msgstr "" -#: src/preferences_window.c:951 +#: src/preferences_window.c:1085 msgid " Error mode default: " msgstr "" -#: src/preferences_window.c:966 +#: src/preferences_window.c:1100 msgid "Custom format" msgstr "" -#: src/preferences_window.c:985 +#: src/preferences_window.c:1119 msgid "" " @A: performer if found, otherwise artist\n" " @a: artist name\n" @@ -697,6 +754,8 @@ "number) **\n" " @U: track tag number as uppercase letter **\n" " @f: input filename (without extension)\n" +" @d: last directory of the input filename or the filename itself if no " +"directory\n" " @m, @s or @h: the number of minutes, seconds or hundreths of seconds of " "the start splitpoint **\n" " @M, @S or @H: the number of minutes, seconds or hundreths of seconds of " @@ -705,83 +764,83 @@ " (**) a digit may follow for the number of digits to output\n" msgstr "" -#: src/preferences_window.c:1010 +#: src/preferences_window.c:1145 msgid "<b>Output format for batch split and when importing splitpoints</b>" msgstr "" -#: src/preferences_window.c:1060 +#: src/preferences_window.c:1194 msgid "Original file tags" msgstr "" -#: src/preferences_window.c:1063 +#: src/preferences_window.c:1197 msgid "Custom tags (from the splitpoints table)" msgstr "" -#: src/preferences_window.c:1066 +#: src/preferences_window.c:1200 msgid "No tags" msgstr "" -#: src/preferences_window.c:1069 +#: src/preferences_window.c:1203 msgid "Extract tags from filename" msgstr "" -#: src/preferences_window.c:1078 +#: src/preferences_window.c:1212 msgid "<b>Split files tags</b>" msgstr "" -#: src/preferences_window.c:1100 +#: src/preferences_window.c:1234 msgid "No change" msgstr "" -#: src/preferences_window.c:1101 +#: src/preferences_window.c:1235 msgid "lowercase" msgstr "" -#: src/preferences_window.c:1102 +#: src/preferences_window.c:1236 msgid "UPPERCASE" msgstr "" -#: src/preferences_window.c:1103 +#: src/preferences_window.c:1237 msgid "First uppercase" msgstr "" -#: src/preferences_window.c:1104 +#: src/preferences_window.c:1238 msgid "Word Uppercase" msgstr "" -#: src/preferences_window.c:1126 +#: src/preferences_window.c:1284 msgid "<artist>: " msgstr "" -#: src/preferences_window.c:1135 +#: src/preferences_window.c:1293 msgid "<album>: " msgstr "" -#: src/preferences_window.c:1145 +#: src/preferences_window.c:1303 msgid "<title>: " msgstr "" -#: src/preferences_window.c:1154 +#: src/preferences_window.c:1312 msgid "<genre>: " msgstr "" -#: src/preferences_window.c:1163 +#: src/preferences_window.c:1321 msgid "<comment>: " msgstr "" -#: src/preferences_window.c:1172 +#: src/preferences_window.c:1330 msgid "<year>: " msgstr "" -#: src/preferences_window.c:1181 +#: src/preferences_window.c:1339 msgid "<track>: " msgstr "" -#: src/preferences_window.c:1210 +#: src/preferences_window.c:1379 msgid "Regular expression:" msgstr "" -#: src/preferences_window.c:1213 +#: src/preferences_window.c:1382 msgid "" "Above enter PERL-like regular expression using named subgroups.\n" "Following names are recognized:\n" @@ -794,497 +853,313 @@ " (?<comment>) - comment" msgstr "" -#: src/preferences_window.c:1240 +#: src/preferences_window.c:1409 msgid "_Replace underscores by spaces" msgstr "" -#: src/preferences_window.c:1250 +#: src/preferences_window.c:1419 msgid "Artist text properties:" msgstr "" -#: src/preferences_window.c:1255 +#: src/preferences_window.c:1424 msgid "Album text properties:" msgstr "" -#: src/preferences_window.c:1260 +#: src/preferences_window.c:1429 msgid "Title text properties:" msgstr "" -#: src/preferences_window.c:1265 +#: src/preferences_window.c:1434 msgid "Comment text properties:" msgstr "" -#: src/preferences_window.c:1269 +#: src/preferences_window.c:1438 msgid "Genre tag:" msgstr "" -#: src/preferences_window.c:1273 +#: src/preferences_window.c:1442 msgid "Comment tag:" msgstr "" -#: src/preferences_window.c:1275 +#: src/preferences_window.c:1444 msgid "Regular expression test" msgstr "" -#: src/preferences_window.c:1291 +#: src/preferences_window.c:1460 msgid "_Test" msgstr "" -#: src/preferences_window.c:1295 +#: src/preferences_window.c:1464 msgid "Sample filename:" msgstr "" -#: src/preferences_window.c:1300 +#: src/preferences_window.c:1469 msgid "Sample result:" msgstr "" -#: src/preferences_window.c:1312 +#: src/preferences_window.c:1481 msgid "ID3v1 & ID3v2 tags" msgstr "" -#: src/preferences_window.c:1319 +#: src/preferences_window.c:1488 msgid "ID3v2 tags" msgstr "" -#: src/preferences_window.c:1326 +#: src/preferences_window.c:1495 msgid "ID3v1 tags" msgstr "" -#: src/preferences_window.c:1333 +#: src/preferences_window.c:1502 msgid "Same tags version as the input file" msgstr "" -#: src/preferences_window.c:1339 +#: src/preferences_window.c:1508 msgid "<b>Tags version (mp3 only)</b>" msgstr "" -#: src/preferences_window.c:1380 +#: src/preferences_window.c:1548 src/main_window.c:774 msgid "Split" msgstr "" -#: src/preferences_window.c:1385 +#: src/preferences_window.c:1553 msgid "Tags" msgstr "" -#: src/preferences_window.c:1390 +#: src/preferences_window.c:1558 msgid "Player" msgstr "" -#: src/preferences_window.c:1395 +#: src/preferences_window.c:1563 msgid "Output format" msgstr "" -#: src/preferences_window.c:1401 +#: src/preferences_window.c:1569 msgid "Language" msgstr "" -#: src/split_mode_window.c:193 +#: src/split_mode_window.c:188 msgid "Use manual single file splitpoints" msgstr "" -#: src/split_mode_window.c:195 +#: src/split_mode_window.c:190 msgid "Split files using the manually defined splitpoints" msgstr "" -#: src/split_mode_window.c:205 +#: src/split_mode_window.c:200 msgid "Time" msgstr "" -#: src/split_mode_window.c:207 +#: src/split_mode_window.c:202 msgid "Split every fixed time length; last track will most likely be smaller" msgstr "" -#: src/split_mode_window.c:224 +#: src/split_mode_window.c:219 msgid "Split every" msgstr "" -#: src/split_mode_window.c:237 +#: src/split_mode_window.c:232 msgid "seconds." msgstr "" -#: src/split_mode_window.c:244 +#: src/split_mode_window.c:239 msgid "Equal time tracks" msgstr "" -#: src/split_mode_window.c:246 +#: src/split_mode_window.c:241 msgid "Create smaller tracks having exactly the same time length" msgstr "" -#: src/split_mode_window.c:261 +#: src/split_mode_window.c:256 msgid "Split in" msgstr "" -#: src/split_mode_window.c:275 +#: src/split_mode_window.c:270 msgid "equal tracks." msgstr "" -#: src/split_mode_window.c:282 +#: src/split_mode_window.c:277 msgid "Trim using silence detection" msgstr "" -#: src/split_mode_window.c:284 +#: src/split_mode_window.c:279 msgid "" "Split by discarding silence from the begin and from the end\n" "If no silence is found, the output file is still created" msgstr "" -#: src/split_mode_window.c:302 src/split_mode_window.c:331 +#: src/split_mode_window.c:297 src/split_mode_window.c:326 msgid "Threshold level (dB) : " msgstr "" -#: src/split_mode_window.c:313 +#: src/split_mode_window.c:308 msgid "Silence - split with silence detection" msgstr "" -#: src/split_mode_window.c:314 +#: src/split_mode_window.c:309 msgid "Split where silence is found" msgstr "" -#: src/split_mode_window.c:343 +#: src/split_mode_window.c:338 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end) : " msgstr "" -#: src/split_mode_window.c:355 +#: src/split_mode_window.c:350 msgid "Number of tracks (0 means all tracks) : " msgstr "" -#: src/split_mode_window.c:367 +#: src/split_mode_window.c:362 msgid "Minimum silence length (seconds) : " msgstr "" -#: src/split_mode_window.c:379 +#: src/split_mode_window.c:374 msgid "Minimum track length (seconds) : " msgstr "" -#: src/split_mode_window.c:389 +#: src/split_mode_window.c:384 msgid "Remove silence between tracks" msgstr "" -#: src/split_mode_window.c:410 +#: src/split_mode_window.c:405 msgid "Wrap - split files created with mp3wrap or albumwrap (mp3 only)" msgstr "" -#: src/split_mode_window.c:420 +#: src/split_mode_window.c:415 msgid "Synchronisation error mode (mp3 only)" msgstr "" -#: src/split_mode_window.c:422 +#: src/split_mode_window.c:417 msgid "" "Split where synchronisation errors are found\n" "Useful for splitting concatenated files" msgstr "" -#: src/mp3splt-gtk.c:102 -msgid " error: no files found in batch mode" +#: src/split_mode_window.c:428 +msgid "Internal sheet mode (CUE sheet for FLAC and ID3v2 chapters for MP3)" msgstr "" -#: src/mp3splt-gtk.c:278 -msgid " info: stopping the split process before exiting" +#: src/split_mode_window.c:429 +msgid "Split using internal sheet" msgstr "" -#: src/mp3splt-gtk.c:389 -#, c-format -msgid "Setting the output directory to %s.\n" +#: src/split_mode_window.c:439 +msgid "Use CUE file with similar name as the input file" msgstr "" -#: src/mp3splt-gtk.c:403 -#, c-format -msgid "Option -%c requires an argument.\n" +#: src/split_mode_window.c:441 +msgid "" +"Split using CUE file having similar name as the input file\n" +"Example: test.cue will be looked for when splitting test.mp3" msgstr "" -#: src/mp3splt-gtk.c:405 -#, c-format -msgid "Unknown option `-%c'.\n" +#: src/split_mode_window.c:452 +msgid "Use CDDB file with similar name as the input file" msgstr "" -#: src/mp3splt-gtk.c:407 -#, c-format -msgid "Unknown option character `\\x%x'.\n" +#: src/split_mode_window.c:454 +msgid "" +"Split using CDDB file having similar name as the input file\n" +"Example: test.cddb will be looked for when splitting test.mp3" msgstr "" -#: src/mp3splt-gtk.c:421 -#, c-format -msgid "Cannot open input file %s\n" +#: src/mp3splt-gtk.c:112 +msgid " error: no files found in batch mode" +msgstr "" + +#: src/mp3splt-gtk.c:350 +msgid " info: stopping the split process before exiting" msgstr "" -#: src/main_window.c:173 +#: src/main_window.c:170 msgid "Error launching external command" msgstr "" -#: src/main_window.c:204 +#: src/main_window.c:203 msgid "using" msgstr "" -#: src/main_window.c:208 +#: src/main_window.c:207 msgid "release of " msgstr "" -#: src/main_window.c:311 +#: src/main_window.c:310 msgid " info: stopping the split process.. please wait" msgstr "" -#: src/main_window.c:319 src/main_window.c:778 -msgid "Preferences" -msgstr "" - -#: src/main_window.c:331 -msgid "TrackType" -msgstr "" - -#: src/main_window.c:346 src/main_window.c:781 -msgid "Split files" -msgstr "" - -#: src/main_window.c:361 src/main_window.c:784 -msgid "Splitpoints" -msgstr "" - -#: src/main_window.c:432 +#: src/main_window.c:375 msgid " error: split in progress..." msgstr "" -#: src/main_window.c:442 +#: src/main_window.c:385 msgid " error: no path of split selected" msgstr "" -#: src/main_window.c:725 -msgid "Choose File" -msgstr "" - -#: src/main_window.c:755 -msgid "_File" -msgstr "" - -#: src/main_window.c:756 -msgid "_View" -msgstr "" - -#: src/main_window.c:757 -msgid "_Player" -msgstr "" - -#: src/main_window.c:758 -msgid "_Help" -msgstr "" - -#: src/main_window.c:760 -msgid "_Open single file..." -msgstr "" - -#: src/main_window.c:760 -msgid "Open" -msgstr "" - -#: src/main_window.c:764 -msgid "_Add files or directories to batch ..." -msgstr "" - -#: src/main_window.c:765 -msgid "Add files or directories to batch" -msgstr "" - -#: src/main_window.c:768 -msgid "_Import splitpoints from file..." -msgstr "" - -#: src/main_window.c:769 -msgid "Import splitpoints from file..." -msgstr "" - -#: src/main_window.c:771 -msgid "Import splitpoints from _TrackType.org..." -msgstr "" - -#: src/main_window.c:772 -msgid "Import splitpoints from TrackType.org..." -msgstr "" - -#: src/main_window.c:775 -msgid "_Export splitpoints..." -msgstr "" - -#: src/main_window.c:776 -msgid "Export splitpoints" -msgstr "" - -#: src/main_window.c:778 -msgid "_Preferences" -msgstr "" - -#: src/main_window.c:781 -msgid "Split _files" -msgstr "" - -#: src/main_window.c:784 -msgid "_Splitpoints" -msgstr "" - -#: src/main_window.c:787 -msgid "_Split !" -msgstr "" - -#: src/main_window.c:787 src/main_window.c:998 -msgid "Split !" -msgstr "" - -#: src/main_window.c:790 -msgid "_Batch split !" -msgstr "" - -#: src/main_window.c:793 -msgid "_Quit" -msgstr "" - -#: src/main_window.c:793 -msgid "Quit" -msgstr "" - -#: src/main_window.c:797 -msgid "_Contents" -msgstr "" - -#: src/main_window.c:797 -msgid "Contents" +#: src/main_window.c:729 +msgid "Open file ..." msgstr "" -#: src/main_window.c:801 -msgid "Messages _history" +#: src/main_window.c:777 +msgid "Split the current file" msgstr "" -#: src/main_window.c:804 -msgid "_About" +#: src/main_window.c:786 +msgid "Manual single file split" msgstr "" #: src/main_window.c:804 -msgid "About" -msgstr "" - -#: src/main_window.c:808 -msgid "P_ause / Play" -msgstr "" - -#: src/main_window.c:808 -msgid "Pause/Play" -msgstr "" - -#: src/main_window.c:811 -msgid "Seek _forward" -msgstr "" - -#: src/main_window.c:811 -msgid "Seek forward" -msgstr "" - -#: src/main_window.c:813 -msgid "Seek _backward" -msgstr "" - -#: src/main_window.c:813 -msgid "Seek backward" -msgstr "" - -#: src/main_window.c:816 -msgid "Small seek f_orward" -msgstr "" - -#: src/main_window.c:816 -msgid "Small seek forward" -msgstr "" - -#: src/main_window.c:818 -msgid "Small seek back_ward" -msgstr "" - -#: src/main_window.c:818 -msgid "Small seek backward" -msgstr "" - -#: src/main_window.c:821 -msgid "Big seek fo_rward" -msgstr "" - -#: src/main_window.c:821 -msgid "Big seek forward" -msgstr "" - -#: src/main_window.c:823 -msgid "Big seek bac_kward" -msgstr "" - -#: src/main_window.c:823 -msgid "Big seek backward" -msgstr "" - -#: src/main_window.c:826 -msgid "Seek to _next splitpoint" -msgstr "" - -#: src/main_window.c:827 -msgid "Seek to next splitpoint" -msgstr "" - -#: src/main_window.c:828 -msgid "Seek to _previous splitpoint" -msgstr "" - -#: src/main_window.c:829 -msgid "Seek to previous splitpoint" -msgstr "" - -#: src/main_window.c:832 -msgid "_Quick preview before closest splitpoint" -msgstr "" - -#: src/main_window.c:832 -msgid "Quick preview before closest splitpoint" +msgid "Batch & automatic split" msgstr "" -#: src/main_window.c:835 -msgid "Add _splitpoint" +#: src/main_window.c:822 +msgid "S_top" msgstr "" -#: src/main_window.c:838 -msgid "_Delete closest splitpoint" +#: src/main_window.c:1089 +#, c-format +msgid "Setting the output directory to %s.\n" msgstr "" -#: src/main_window.c:839 -msgid "Delete closest splitpoint" +#: src/main_window.c:1103 +#, c-format +msgid "Option -%c requires an argument.\n" msgstr "" -#: src/main_window.c:841 -msgid "Zoom _in" +#: src/main_window.c:1105 +#, c-format +msgid "Unknown option `-%c'.\n" msgstr "" -#: src/main_window.c:841 -msgid "Zoom in" +#: src/main_window.c:1107 +#, c-format +msgid "Unknown option character `\\x%x'.\n" msgstr "" -#: src/main_window.c:842 -msgid "Zoom _out" +#: src/main_window.c:1121 +#, c-format +msgid "Cannot open input file %s\n" msgstr "" -#: src/main_window.c:842 -msgid "Zoom out" +#: src/main_window.c:1164 +msgid "Choose File" msgstr "" -#: src/main_window.c:953 -msgid "Open file ..." +#: src/main_window.c:1168 src/import.c:61 +msgid "_Open" msgstr "" -#: src/main_window.c:1001 -msgid "Split the current file" +#: src/main_window.c:1208 +msgid "TrackType" msgstr "" -#: src/main_window.c:1010 -msgid "Manual single file split" +#: src/main_window.c:1225 +msgid "Preferences" msgstr "" -#: src/main_window.c:1028 -msgid "Batch & automatic split" +#: src/main_window.c:1257 +msgid "Splitpoints" msgstr "" -#: src/main_window.c:1048 -msgid "S_top" +#: src/main_window.c:1273 +msgid "Split files" msgstr "" #: src/libmp3splt_manager.c:71 @@ -1292,72 +1167,82 @@ msgid " File '%s' created" msgstr "" -#: src/libmp3splt_manager.c:182 +#: src/libmp3splt_manager.c:166 #, c-format msgid " preparing \"%s\" (%d of %d)" msgstr "" -#: src/libmp3splt_manager.c:188 +#: src/libmp3splt_manager.c:172 #, c-format msgid " creating \"%s\" (%d of %d)" msgstr "" -#: src/libmp3splt_manager.c:194 +#: src/libmp3splt_manager.c:178 msgid " searching for sync errors..." msgstr "" -#: src/libmp3splt_manager.c:199 +#: src/libmp3splt_manager.c:183 msgid "Computing amplitude wave data..." msgstr "" -#: src/libmp3splt_manager.c:204 +#: src/libmp3splt_manager.c:188 #, c-format msgid "S: %02d, Level: %.2f dB; scanning for silence..." msgstr "" -#: src/import.c:55 +#: src/import.c:56 msgid "Choose file to import" msgstr "" -#: src/import.c:207 -msgid "CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt)" +#: src/import.c:271 +msgid "" +"CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt), internal sheet (*." +"flac), chapters (*.mp3)" msgstr "" -#: src/import.c:211 +#: src/import.c:275 msgid "CDDB files (*.cddb)" msgstr "" -#: src/import.c:213 +#: src/import.c:277 msgid "CUE files (*.cue)" msgstr "" -#: src/import.c:215 +#: src/import.c:279 msgid "Audacity labels files (*.txt)" msgstr "" -#: src/import.c:217 +#: src/import.c:281 +msgid "FLAC internal sheet (*.flac)" +msgstr "" + +#: src/import.c:283 +msgid "ID3v2 chapters (*.mp3)" +msgstr "" + +#: src/import.c:285 msgid "All files" msgstr "" -#: src/import.c:348 +#: src/import.c:476 msgid "--- last cue splitpoint ---" msgstr "" -#: src/gstreamer_control.c:73 +#: src/gstreamer_control.c:71 #, c-format msgid "gstreamer error: %s" msgstr "" -#: src/gstreamer_control.c:99 +#: src/gstreamer_control.c:97 #, c-format msgid "Warning: %s" msgstr "" -#: src/gstreamer_control.c:125 +#: src/gstreamer_control.c:123 #, c-format msgid "Info: %s" msgstr "" -#: src/gstreamer_control.c:369 +#: src/gstreamer_control.c:354 msgid " error: cannot create gstreamer playbin\n" msgstr "" Binary files /tmp/tmpA90wb_/LJUs5HNncE/mp3splt-gtk-0.9/po/ru_RU.gmo and /tmp/tmpA90wb_/V0ZBgpNw8L/mp3splt-gtk-0.9.2/po/ru_RU.gmo differ diff -Nru mp3splt-gtk-0.9/po/ru_RU.po mp3splt-gtk-0.9.2/po/ru_RU.po --- mp3splt-gtk-0.9/po/ru_RU.po 2013-07-20 07:11:46.000000000 +0000 +++ mp3splt-gtk-0.9.2/po/ru_RU.po 2014-11-09 16:50:48.000000000 +0000 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: mp3splt-gtk\n" "Report-Msgid-Bugs-To: io_alex_2004@users.sourceforge.net\n" -"POT-Creation-Date: 2013-07-20 09:11+0200\n" +"POT-Creation-Date: 2014-11-09 17:50+0100\n" "PO-Revision-Date: 2013-04-29 08:45+0000\n" "Last-Translator: Peter Pall <gunter@peterpall.de>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -21,40 +21,50 @@ "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: src/audacious_control.c:66 src/snackamp_control.c:337 -#: src/gstreamer_control.c:228 +#: src/gstreamer_control.c:217 msgid "stereo" msgstr "стерео" #: src/audacious_control.c:70 src/snackamp_control.c:341 -#: src/gstreamer_control.c:232 +#: src/gstreamer_control.c:221 msgid "mono" msgstr "моно" #: src/audacious_control.c:73 src/snackamp_control.c:344 -#: src/gstreamer_control.c:198 +#: src/gstreamer_control.c:190 msgid "Kbps" msgstr "Кбит/с" #: src/audacious_control.c:74 src/snackamp_control.c:345 -#: src/gstreamer_control.c:199 +#: src/gstreamer_control.c:191 msgid "Khz" msgstr "КГц" -#: src/utilities.c:87 +#: src/utilities.c:86 #, c-format msgid "Processing file '%s' ..." msgstr "Обработка файла '%s' ..." -#: src/export.c:93 +#: src/export.c:154 #, fuzzy msgid "Cue filename to export" msgstr "Выберите файл для импорта" -#: src/export.c:105 +#: src/export.c:157 src/multiple_files_window.c:83 +#: src/splitpoints_window.c:1126 src/splitpoints_window.c:1183 +#: src/main_window.c:1166 src/import.c:59 +msgid "_Cancel" +msgstr "" + +#: src/export.c:159 +msgid "_Save" +msgstr "" + +#: src/export.c:166 msgid "cue files (*.cue)" msgstr "cue файлы (*.cue)" -#: src/widgets_helper.c:428 +#: src/widgets_helper.c:401 msgid "_Close" msgstr "" @@ -62,7 +72,7 @@ msgid "Processing Douglas-Peucker filters ..." msgstr "" -#: src/player_window.c:580 +#: src/player_window.c:576 msgid "" "\n" " Cannot connect to snackAmp player.\n" @@ -81,7 +91,7 @@ " After that, restart snackamp and mp3splt-gtk should work.\n" msgstr "" -#: src/player_window.c:595 +#: src/player_window.c:591 msgid "" "\n" " Cannot connect to Audacious player.\n" @@ -92,149 +102,156 @@ "connect.\n" msgstr "" -#: src/player_window.c:603 src/player_window.c:607 +#: src/player_window.c:599 src/player_window.c:603 msgid "Cannot connect to player" msgstr "Не удается подключиться к плееру" -#: src/player_window.c:904 +#: src/player_window.c:604 src/splitpoints_window.c:1124 +#: src/splitpoints_window.c:1181 +msgid "_OK" +msgstr "" + +#: src/player_window.c:900 msgid "Previous track" msgstr "" -#: src/player_window.c:922 +#: src/player_window.c:918 msgid "Play" msgstr "Слушать" -#: src/player_window.c:939 +#: src/player_window.c:935 msgid "Pause" msgstr "Пауза" -#: src/player_window.c:956 +#: src/player_window.c:952 msgid "Stop" msgstr "Остановить" -#: src/player_window.c:973 +#: src/player_window.c:969 msgid "Next track" msgstr "" -#: src/player_window.c:980 src/splitpoints_window.c:1436 +#: src/player_window.c:976 src/splitpoints_window.c:1407 msgid "_Add" msgstr "Добавить" -#: src/player_window.c:987 +#: src/player_window.c:983 msgid "Add splitpoint at the current player position" msgstr "" -#: src/player_window.c:996 src/splitpoints_window.c:1134 -#: src/splitpoints_window.c:1479 +#: src/player_window.c:992 src/splitpoints_window.c:1121 +#: src/splitpoints_window.c:1450 msgid "Set trim splitpoints using silence detection" msgstr "" -#: src/player_window.c:1007 src/splitpoints_window.c:1193 -#: src/splitpoints_window.c:1489 +#: src/player_window.c:1003 src/splitpoints_window.c:1178 +#: src/splitpoints_window.c:1460 msgid "Set splitpoints from silence detection" msgstr "" -#: src/player_window.c:1012 +#: src/player_window.c:1008 msgid "Amplitude _wave" msgstr "" -#: src/player_window.c:1018 +#: src/player_window.c:1014 msgid "Shows the amplitude level wave" msgstr "Показывает уровень амплитуды волны" -#: src/player_window.c:1021 +#: src/player_window.c:1017 msgid "_Connect" msgstr "Сединение" -#: src/player_window.c:1024 +#: src/player_window.c:1020 msgid "Connect to player" msgstr "Подключение к плееру" -#: src/player_window.c:1027 +#: src/player_window.c:1023 msgid "_Disconnect" msgstr "Отключение" -#: src/player_window.c:1030 +#: src/player_window.c:1026 msgid "Disconnect from player" msgstr "Отключение от плеера" -#: src/player_window.c:1153 +#: src/player_window.c:1160 #, c-format msgid "before %s" msgstr "до %s" -#: src/player_window.c:1892 +#: src/player_window.c:1981 msgid "No available wave" msgstr "" -#: src/player_window.c:2045 src/preferences_window.c:826 +#: src/player_window.c:2073 src/preferences_window.c:921 msgid "No wave interpolation" msgstr "" -#: src/player_window.c:2051 +#: src/player_window.c:2079 #, c-format msgid "Wave interpolation level %d" msgstr "" -#: src/player_window.c:2131 +#: src/player_window.c:2141 msgid " Please wait for the process to finish ..." msgstr "" -#: src/player_window.c:2153 +#: src/player_window.c:2163 msgid " Please wait ... currently computing Douglas Peucker filters." msgstr "" -#: src/player_window.c:2237 +#: src/player_window.c:2247 msgid " left click on splitpoint selects it, right click erases it" msgstr "" " щелчок левой клавишей мыши выделяет точку разделения, правой — удаляет её" -#: src/player_window.c:2242 +#: src/player_window.c:2252 msgid "" " left click + move changes song position, right click + move changes zoom" msgstr "" " щелчок левой клавишей мыши и перемещение меняет позицию, правой — меняет " "масштаб" -#: src/player_window.c:2248 +#: src/player_window.c:2258 msgid "" " left click on point + move changes point position, right click play preview" msgstr "" " щелчок левой клавишей мыши по точке меняет её позицию, правой — включает " "прослушивание" -#: src/player_window.c:2253 +#: src/player_window.c:2263 msgid " left click on rectangle checks/unchecks 'keep splitpoint'" msgstr "" " щелчок левой клавишей мыши по прямоугольнику переключает сохранение точки " "разделения" -#: src/player_window.c:2678 -msgid " quick preview..." +#: src/player_window.c:2695 +#, fuzzy +msgid " preview..." msgstr "быстрый просмотр ..." -#: src/player_window.c:3022 +#: src/player_window.c:3034 msgid "Splitpoints and amplitude wave v_iew" msgstr "" -#: src/player_window.c:3138 +#: src/player_window.c:3150 msgid "History" msgstr "История" -#: src/player_window.c:3228 +#: src/player_window.c:3240 msgid "_Erase selected entries" msgstr "_Удалить выделенные записи" -#: src/player_window.c:3236 +#: src/player_window.c:3248 msgid "E_rase all history" msgstr "У_далить всю историю" -#: src/player_window.c:3278 +#: src/player_window.c:3290 msgid "Files h_istory" msgstr "" -#: src/player_window.c:3404 -msgid " quick preview finished, song paused" +#: src/player_window.c:3330 +#, fuzzy +msgid " preview finished, song paused" msgstr "быстрый просмотр закончен, проигрование приостановлено" #: src/multiple_files_window.c:63 @@ -245,50 +262,50 @@ msgid "Choose files or directories" msgstr "" -#: src/multiple_files_window.c:100 src/main_window.c:691 +#: src/multiple_files_window.c:98 src/main_window.c:671 #, fuzzy msgid "mp3, ogg vorbis and flac files (*.mp3 *.ogg *.flac)" msgstr "mp3 и ogg файлы (*.mp3 *.ogg)" -#: src/multiple_files_window.c:110 src/main_window.c:701 +#: src/multiple_files_window.c:108 src/main_window.c:681 msgid "mp3 files (*.mp3)" msgstr "mp3 файлы (*.mp3)" -#: src/multiple_files_window.c:116 src/main_window.c:707 +#: src/multiple_files_window.c:114 src/main_window.c:687 #, fuzzy msgid "ogg vorbis files (*.ogg)" msgstr "ogg файлы (*.ogg)" -#: src/multiple_files_window.c:122 src/main_window.c:713 +#: src/multiple_files_window.c:120 src/main_window.c:693 #, fuzzy msgid "flac files (*.flac)" msgstr "cue файлы (*.cue)" -#: src/multiple_files_window.c:129 +#: src/multiple_files_window.c:127 msgid "All Files" msgstr "Все файлы" -#: src/multiple_files_window.c:260 +#: src/multiple_files_window.c:258 msgid "_Add files or directories" msgstr "" -#: src/multiple_files_window.c:261 +#: src/multiple_files_window.c:259 msgid "Only the supported file types are added" msgstr "" -#: src/multiple_files_window.c:269 +#: src/multiple_files_window.c:267 msgid "_Remove selected" msgstr "" -#: src/multiple_files_window.c:279 src/splitpoints_window.c:1456 +#: src/multiple_files_window.c:277 src/splitpoints_window.c:1427 msgid "R_emove all" msgstr "Удалить все" -#: src/multiple_files_window.c:287 src/main_window.c:790 -msgid "Batch split !" +#: src/multiple_files_window.c:285 +msgid "Batch split" msgstr "" -#: src/multiple_files_window.c:288 +#: src/multiple_files_window.c:286 #, fuzzy msgid "Split all the files" msgstr "Разделённые файлы" @@ -301,11 +318,11 @@ msgid "C_lear" msgstr "О_чистить" -#: src/messages_window.c:168 src/main_window.c:801 +#: src/messages_window.c:168 msgid "Messages history" msgstr "История сообщений" -#: src/split_files_window.c:69 src/splitpoints_window.c:1956 +#: src/split_files_window.c:69 src/splitpoints_window.c:1911 msgid "Filename" msgstr "Имя файла" @@ -330,29 +347,29 @@ msgid "Album title" msgstr "Название альбома" -#: src/freedb_window.c:169 src/freedb_window.c:477 +#: src/freedb_window.c:154 src/freedb_window.c:472 msgid "please wait... contacting tracktype.org" msgstr "Пожалуйста, подождите ... cвязь с tracktype.org" -#: src/freedb_window.c:440 src/freedb_window.c:461 src/ui_manager.c:352 +#: src/freedb_window.c:435 src/freedb_window.c:456 src/ui_manager.c:372 #: src/splitpoints_window.c:671 src/splitpoints_window.c:792 #: src/splitpoints_window.c:842 msgid "description here" msgstr "здесь могло быть описание" -#: src/freedb_window.c:565 +#: src/freedb_window.c:559 msgid "Search tracktype.org:" msgstr "Поиск в tracktype.org:" -#: src/freedb_window.c:575 +#: src/freedb_window.c:569 msgid "_Search" msgstr "_Поиск" -#: src/freedb_window.c:604 +#: src/freedb_window.c:598 msgid "_Add splitpoints" msgstr "_Добавить точки разделения" -#: src/freedb_window.c:610 +#: src/freedb_window.c:604 msgid "Set splitpoints to the splitpoints table" msgstr "" @@ -369,224 +386,224 @@ msgid " error: you already have the splitpoint in table" msgstr "" -#: src/splitpoints_window.c:1159 src/splitpoints_window.c:1215 -#: src/preferences_window.c:497 +#: src/splitpoints_window.c:1146 src/splitpoints_window.c:1200 +#: src/preferences_window.c:519 msgid "Threshold level (dB):" msgstr "Пороговый уровень (дБ):" -#: src/splitpoints_window.c:1229 +#: src/splitpoints_window.c:1214 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end):" msgstr "" -#: src/splitpoints_window.c:1243 +#: src/splitpoints_window.c:1228 msgid "Number of tracks (0 means all tracks):" msgstr "Количество дорожек (0 означает все дорожки):" -#: src/splitpoints_window.c:1255 src/preferences_window.c:513 +#: src/splitpoints_window.c:1240 src/preferences_window.c:535 msgid "Minimum silence length (seconds):" msgstr "Минимальная длина задержки (секунды): " -#: src/splitpoints_window.c:1267 +#: src/splitpoints_window.c:1252 msgid "Minimum track length (seconds):" msgstr "" -#: src/splitpoints_window.c:1277 +#: src/splitpoints_window.c:1262 msgid "_Remove silence between tracks" msgstr "Убрать задержку между треками" -#: src/splitpoints_window.c:1429 +#: src/splitpoints_window.c:1400 msgid "Minutes:" msgstr "Минуты:" -#: src/splitpoints_window.c:1431 +#: src/splitpoints_window.c:1402 msgid "Seconds:" msgstr "Секунды:" -#: src/splitpoints_window.c:1433 +#: src/splitpoints_window.c:1404 msgid "Hundredths:" msgstr "Миллисекунды:" -#: src/splitpoints_window.c:1443 src/main_window.c:836 +#: src/splitpoints_window.c:1414 msgid "Add splitpoint" msgstr "Добавить точку разделения" -#: src/splitpoints_window.c:1446 +#: src/splitpoints_window.c:1417 msgid "_Remove" msgstr "Удалить" -#: src/splitpoints_window.c:1453 +#: src/splitpoints_window.c:1424 #, fuzzy msgid "Remove selected splitpoints" msgstr "Убрать задержку между дорожками" -#: src/splitpoints_window.c:1463 +#: src/splitpoints_window.c:1434 #, fuzzy msgid "Remove all splitpoints" msgstr "О_брезать точки разделения" -#: src/splitpoints_window.c:1473 +#: src/splitpoints_window.c:1444 msgid "_Trim splitpoints" msgstr "О_брезать точки разделения" -#: src/splitpoints_window.c:1483 +#: src/splitpoints_window.c:1454 msgid "_Silence detection" msgstr "О_пределение тишины" -#: src/splitpoints_window.c:1561 src/mp3splt-gtk.c:119 +#: src/splitpoints_window.c:1534 src/mp3splt-gtk.c:129 msgid " finished" msgstr "завершенный" -#: src/splitpoints_window.c:1635 +#: src/splitpoints_window.c:1608 msgid " cannot preview, not connected to player" msgstr "" -#: src/splitpoints_window.c:1653 +#: src/splitpoints_window.c:1626 msgid " cannot split preview last splitpoint" msgstr "" -#: src/splitpoints_window.c:1824 +#: src/splitpoints_window.c:1797 msgid "Clone all tags" msgstr "" -#: src/splitpoints_window.c:1832 +#: src/splitpoints_window.c:1803 #, fuzzy msgid "Clone title" msgstr "Название альбома" -#: src/splitpoints_window.c:1838 +#: src/splitpoints_window.c:1807 msgid "Clone artist" msgstr "" -#: src/splitpoints_window.c:1844 +#: src/splitpoints_window.c:1811 msgid "Clone album" msgstr "" -#: src/splitpoints_window.c:1850 +#: src/splitpoints_window.c:1815 msgid "Clone genre" msgstr "" -#: src/splitpoints_window.c:1856 +#: src/splitpoints_window.c:1819 msgid "Clone year" msgstr "" -#: src/splitpoints_window.c:1862 +#: src/splitpoints_window.c:1823 msgid "Clone track" msgstr "" -#: src/splitpoints_window.c:1868 +#: src/splitpoints_window.c:1827 msgid "Clone comment" msgstr "" -#: src/splitpoints_window.c:1876 +#: src/splitpoints_window.c:1833 msgid "Auto-increment track" msgstr "" -#: src/splitpoints_window.c:1948 +#: src/splitpoints_window.c:1903 msgid "Keep" msgstr "Сохранить" -#: src/splitpoints_window.c:1964 +#: src/splitpoints_window.c:1919 msgid "Secs" msgstr "С" -#: src/splitpoints_window.c:1972 +#: src/splitpoints_window.c:1927 msgid "Mins" msgstr "мин" -#: src/splitpoints_window.c:1980 +#: src/splitpoints_window.c:1935 msgid "Hundr" msgstr "мс" -#: src/splitpoints_window.c:1988 +#: src/splitpoints_window.c:1943 msgid "Length" msgstr "Длительность" -#: src/splitpoints_window.c:1995 +#: src/splitpoints_window.c:1950 msgid "LiveP" msgstr "" -#: src/splitpoints_window.c:2003 +#: src/splitpoints_window.c:1958 msgid "SplitP" msgstr "" -#: src/splitpoints_window.c:2053 +#: src/splitpoints_window.c:2008 msgid "Title" msgstr "" -#: src/splitpoints_window.c:2056 +#: src/splitpoints_window.c:2011 msgid "Artist" msgstr "" -#: src/splitpoints_window.c:2059 +#: src/splitpoints_window.c:2014 #, fuzzy msgid "Album" msgstr "Название альбома" -#: src/splitpoints_window.c:2062 +#: src/splitpoints_window.c:2017 #, fuzzy msgid "Genre" msgstr "Тег жанра:" -#: src/splitpoints_window.c:2066 +#: src/splitpoints_window.c:2021 #, fuzzy msgid "Comment" msgstr "Метки комментариев" -#: src/splitpoints_window.c:2069 +#: src/splitpoints_window.c:2024 msgid "Year" msgstr "" -#: src/splitpoints_window.c:2073 +#: src/splitpoints_window.c:2028 msgid "Track" msgstr "" -#: src/preferences_window.c:249 +#: src/preferences_window.c:247 msgid "<b>Choose language (requires restart)</b>" msgstr "<b>Выбрать язык (необходима перезагрузка)</b>" -#: src/preferences_window.c:358 +#: src/preferences_window.c:357 msgid "Browse directory ..." msgstr "" -#: src/preferences_window.c:376 +#: src/preferences_window.c:375 msgid "Example for the single file split:" msgstr "" -#: src/preferences_window.c:415 +#: src/preferences_window.c:414 #, fuzzy msgid "Custom directory" msgstr "Пользовательский формат" -#: src/preferences_window.c:417 +#: src/preferences_window.c:416 msgid "Create split files in a custom directory" msgstr "" -#: src/preferences_window.c:422 +#: src/preferences_window.c:421 msgid "Input file directory" msgstr "" -#: src/preferences_window.c:425 +#: src/preferences_window.c:424 msgid "Create split files in the same directory as the file being split" msgstr "" -#: src/preferences_window.c:431 +#: src/preferences_window.c:430 msgid "<b>Directory for split files</b>" msgstr "<b>Каталог для разделённых файлов</b>" -#: src/preferences_window.c:444 +#: src/preferences_window.c:455 msgid "_Splitpoint name from filename (manual single file split only)" msgstr "" -#: src/preferences_window.c:446 +#: src/preferences_window.c:457 #, fuzzy msgid "Name newly added splitpoints as the input file" msgstr "Та же, что у исходных файлов" -#: src/preferences_window.c:454 +#: src/preferences_window.c:465 msgid "Create directories from _filenames " msgstr "" -#: src/preferences_window.c:457 +#: src/preferences_window.c:468 msgid "" "If the splitpoint name is 'a/b/output', the directory chain 'a/b' is created " "in the output\n" @@ -594,114 +611,156 @@ "'<output_directory>/a/b' directory" msgstr "" -#: src/preferences_window.c:467 +#: src/preferences_window.c:478 msgid "F_rame mode (useful for mp3 VBR) (mp3 only)" msgstr "По_кадровый режим (использовать для VBR) (только MP3)" -#: src/preferences_window.c:469 +#: src/preferences_window.c:480 msgid "" "The split is slower with this option, but some mp3 files having\n" "Variable Bit Rate need this mode to be enabled" msgstr "" -#: src/preferences_window.c:476 +#: src/preferences_window.c:488 +msgid "_[Experimental] Bit reservoir handling for gapless playback (mp3 only)" +msgstr "" + +#: src/preferences_window.c:490 +msgid "" +"Split files will play gapless only on players supporting the LAME tag delay " +"and padding values\n" +"Gapless players examples: cmus, mpg123, foobar2000" +msgstr "" + +#: src/preferences_window.c:498 msgid "_Auto-adjust mode (use silence detection to auto-adjust splitpoints)" msgstr "" -#: src/preferences_window.c:479 +#: src/preferences_window.c:501 msgid "" "Splitpoints will be adjusted to match silences (if found)\n" "This mode requires the frame mode" msgstr "" -#: src/preferences_window.c:528 +#: src/preferences_window.c:550 msgid "Cutpoint offset (0 is the begin of silence and 1 the end):" msgstr "" -#: src/preferences_window.c:545 +#: src/preferences_window.c:567 msgid "Gap level (seconds around splitpoint to search for silence):" msgstr "На сколько секунд вокруг точки разделения искать искать тишину:" -#: src/preferences_window.c:562 +#: src/preferences_window.c:584 msgid "Set _default split options" msgstr "_Вернуть исходные параметры" -#: src/preferences_window.c:567 +#: src/preferences_window.c:589 msgid "<b>Split options</b>" msgstr "<b>Параметры разделения</b>" -#: src/preferences_window.c:630 +#: src/preferences_window.c:677 msgid "Player:" msgstr "" -#: src/preferences_window.c:649 +#: src/preferences_window.c:696 msgid "Refresh player every " msgstr "" -#: src/preferences_window.c:650 +#: src/preferences_window.c:697 src/preferences_window.c:725 msgid "milliseconds." msgstr "" -#: src/preferences_window.c:652 +#: src/preferences_window.c:699 msgid "\t(higher refresh rate decreases CPU usage - default is 200)" msgstr "" -#: src/preferences_window.c:658 +#: src/preferences_window.c:710 +msgid "Stop GStreamer preview" +msgstr "" + +#: src/preferences_window.c:710 +msgid "milliseconds before the end." +msgstr "" + +#: src/preferences_window.c:724 +msgid "Small seek jumps for " +msgstr "" + +#: src/preferences_window.c:733 +msgid "Seek jumps for " +msgstr "" + +#: src/preferences_window.c:734 src/preferences_window.c:743 +msgid "milliseconds. (0=auto)" +msgstr "" + +#: src/preferences_window.c:742 +msgid "Big seek jumps for " +msgstr "" + +#: src/preferences_window.c:753 +msgid "Seek times" +msgstr "" + +#: src/preferences_window.c:761 msgid "<b>Player options</b>" msgstr "<b>Настройки плеера</b>" -#: src/preferences_window.c:777 -msgid "" -"Wave preview is only available if the amplitude wave is shown in the player" +#: src/preferences_window.c:872 +msgid "Only available if the amplitude wave is shown in the player" +msgstr "" + +#: src/preferences_window.c:902 +msgid "Wave preview" msgstr "" -#: src/preferences_window.c:817 +#: src/preferences_window.c:912 #, c-format msgid "%d minute(s) window" msgstr "" -#: src/preferences_window.c:822 +#: src/preferences_window.c:917 #, c-format msgid "Wave interpolation level %d with threshold of %.1lf" msgstr "" -#: src/preferences_window.c:844 +#: src/preferences_window.c:939 msgid "Wave quality (higher is better but consumes more CPU):" msgstr "" -#: src/preferences_window.c:863 +#: src/preferences_window.c:961 msgid "<b>Amplitude wave options</b>" msgstr "" -#: src/preferences_window.c:920 +#: src/preferences_window.c:1054 msgid "Default format" msgstr "Формат по умолчанию " -#: src/preferences_window.c:927 +#: src/preferences_window.c:1061 msgid " Default output: " msgstr "" -#: src/preferences_window.c:933 +#: src/preferences_window.c:1067 msgid " CDDB, CUE and tracktype.org default: " msgstr "" -#: src/preferences_window.c:939 +#: src/preferences_window.c:1073 msgid " Split with silence detection default: " msgstr "" -#: src/preferences_window.c:945 +#: src/preferences_window.c:1079 msgid " Trim using silence detection default: " msgstr "" -#: src/preferences_window.c:951 +#: src/preferences_window.c:1085 msgid " Error mode default: " msgstr "" -#: src/preferences_window.c:966 +#: src/preferences_window.c:1100 msgid "Custom format" msgstr "Пользовательский формат" -#: src/preferences_window.c:985 +#: src/preferences_window.c:1119 msgid "" " @A: performer if found, otherwise artist\n" " @a: artist name\n" @@ -718,6 +777,8 @@ "number) **\n" " @U: track tag number as uppercase letter **\n" " @f: input filename (without extension)\n" +" @d: last directory of the input filename or the filename itself if no " +"directory\n" " @m, @s or @h: the number of minutes, seconds or hundreths of seconds of " "the start splitpoint **\n" " @M, @S or @H: the number of minutes, seconds or hundreths of seconds of " @@ -726,83 +787,83 @@ " (**) a digit may follow for the number of digits to output\n" msgstr "" -#: src/preferences_window.c:1010 +#: src/preferences_window.c:1145 msgid "<b>Output format for batch split and when importing splitpoints</b>" msgstr "" -#: src/preferences_window.c:1060 +#: src/preferences_window.c:1194 msgid "Original file tags" msgstr "Исходные теги файлов" -#: src/preferences_window.c:1063 +#: src/preferences_window.c:1197 msgid "Custom tags (from the splitpoints table)" msgstr "" -#: src/preferences_window.c:1066 +#: src/preferences_window.c:1200 msgid "No tags" msgstr "Нет меток" -#: src/preferences_window.c:1069 +#: src/preferences_window.c:1203 msgid "Extract tags from filename" msgstr "Извлечь метки из имени файла" -#: src/preferences_window.c:1078 +#: src/preferences_window.c:1212 msgid "<b>Split files tags</b>" msgstr "<b>Теги разделённых файлов</b>" -#: src/preferences_window.c:1100 +#: src/preferences_window.c:1234 msgid "No change" msgstr "Без изменений" -#: src/preferences_window.c:1101 +#: src/preferences_window.c:1235 msgid "lowercase" msgstr "строчные" -#: src/preferences_window.c:1102 +#: src/preferences_window.c:1236 msgid "UPPERCASE" msgstr "ЗАГЛАВНЫЕ" -#: src/preferences_window.c:1103 +#: src/preferences_window.c:1237 msgid "First uppercase" msgstr "Первый заглавный символ" -#: src/preferences_window.c:1104 +#: src/preferences_window.c:1238 msgid "Word Uppercase" msgstr "Слово из заглавных букв" -#: src/preferences_window.c:1126 +#: src/preferences_window.c:1284 msgid "<artist>: " msgstr "" -#: src/preferences_window.c:1135 +#: src/preferences_window.c:1293 msgid "<album>: " msgstr "" -#: src/preferences_window.c:1145 +#: src/preferences_window.c:1303 msgid "<title>: " msgstr "" -#: src/preferences_window.c:1154 +#: src/preferences_window.c:1312 msgid "<genre>: " msgstr "" -#: src/preferences_window.c:1163 +#: src/preferences_window.c:1321 msgid "<comment>: " msgstr "" -#: src/preferences_window.c:1172 +#: src/preferences_window.c:1330 msgid "<year>: " msgstr "" -#: src/preferences_window.c:1181 +#: src/preferences_window.c:1339 msgid "<track>: " msgstr "" -#: src/preferences_window.c:1210 +#: src/preferences_window.c:1379 msgid "Regular expression:" msgstr "Регулярное выражение:" -#: src/preferences_window.c:1213 +#: src/preferences_window.c:1382 msgid "" "Above enter PERL-like regular expression using named subgroups.\n" "Following names are recognized:\n" @@ -825,573 +886,463 @@ " (?<genre>) — жанр\n" " (?<comment>) — комментарий" -#: src/preferences_window.c:1240 +#: src/preferences_window.c:1409 msgid "_Replace underscores by spaces" msgstr "_Заменить подчёркивания на пробелы" -#: src/preferences_window.c:1250 +#: src/preferences_window.c:1419 msgid "Artist text properties:" msgstr "Свойства имени исполнителя:" -#: src/preferences_window.c:1255 +#: src/preferences_window.c:1424 msgid "Album text properties:" msgstr "Свойства названия альбома:" -#: src/preferences_window.c:1260 +#: src/preferences_window.c:1429 msgid "Title text properties:" msgstr "Свойства названия композиции:" -#: src/preferences_window.c:1265 +#: src/preferences_window.c:1434 msgid "Comment text properties:" msgstr "Свойства текста комментариев" -#: src/preferences_window.c:1269 +#: src/preferences_window.c:1438 msgid "Genre tag:" msgstr "Тег жанра:" -#: src/preferences_window.c:1273 +#: src/preferences_window.c:1442 msgid "Comment tag:" msgstr "Метки комментариев" -#: src/preferences_window.c:1275 +#: src/preferences_window.c:1444 msgid "Regular expression test" msgstr "Тест регулярных выражений" -#: src/preferences_window.c:1291 +#: src/preferences_window.c:1460 msgid "_Test" msgstr "_Проверить" -#: src/preferences_window.c:1295 +#: src/preferences_window.c:1464 msgid "Sample filename:" msgstr "Пример имени файла:" -#: src/preferences_window.c:1300 +#: src/preferences_window.c:1469 msgid "Sample result:" msgstr "Пример результата:" -#: src/preferences_window.c:1312 +#: src/preferences_window.c:1481 msgid "ID3v1 & ID3v2 tags" msgstr "Теги ID3v1 и ID3v2" -#: src/preferences_window.c:1319 +#: src/preferences_window.c:1488 msgid "ID3v2 tags" msgstr "Теги ID3v2" -#: src/preferences_window.c:1326 +#: src/preferences_window.c:1495 msgid "ID3v1 tags" msgstr "Теги ID3v1" -#: src/preferences_window.c:1333 +#: src/preferences_window.c:1502 msgid "Same tags version as the input file" msgstr "Та же, что у исходных файлов" -#: src/preferences_window.c:1339 +#: src/preferences_window.c:1508 msgid "<b>Tags version (mp3 only)</b>" msgstr "<b>Версия тегов (только MP3)</b>" -#: src/preferences_window.c:1380 +#: src/preferences_window.c:1548 src/main_window.c:774 msgid "Split" msgstr "Разделение" -#: src/preferences_window.c:1385 +#: src/preferences_window.c:1553 msgid "Tags" msgstr "Теги" -#: src/preferences_window.c:1390 +#: src/preferences_window.c:1558 msgid "Player" msgstr "Плеер" -#: src/preferences_window.c:1395 +#: src/preferences_window.c:1563 #, fuzzy msgid "Output format" msgstr "Пользовательский формат" -#: src/preferences_window.c:1401 +#: src/preferences_window.c:1569 msgid "Language" msgstr "Язык" -#: src/split_mode_window.c:193 +#: src/split_mode_window.c:188 msgid "Use manual single file splitpoints" msgstr "" -#: src/split_mode_window.c:195 +#: src/split_mode_window.c:190 msgid "Split files using the manually defined splitpoints" msgstr "" -#: src/split_mode_window.c:205 +#: src/split_mode_window.c:200 msgid "Time" msgstr "Время" -#: src/split_mode_window.c:207 +#: src/split_mode_window.c:202 msgid "Split every fixed time length; last track will most likely be smaller" msgstr "" -#: src/split_mode_window.c:224 +#: src/split_mode_window.c:219 msgid "Split every" msgstr "" -#: src/split_mode_window.c:237 +#: src/split_mode_window.c:232 msgid "seconds." msgstr "" -#: src/split_mode_window.c:244 +#: src/split_mode_window.c:239 msgid "Equal time tracks" msgstr "Одинаковая длительность дорожек" -#: src/split_mode_window.c:246 +#: src/split_mode_window.c:241 msgid "Create smaller tracks having exactly the same time length" msgstr "" -#: src/split_mode_window.c:261 +#: src/split_mode_window.c:256 msgid "Split in" msgstr "" -#: src/split_mode_window.c:275 +#: src/split_mode_window.c:270 msgid "equal tracks." msgstr "" -#: src/split_mode_window.c:282 +#: src/split_mode_window.c:277 msgid "Trim using silence detection" msgstr "Обрезать с помощью вычисления тишины" -#: src/split_mode_window.c:284 +#: src/split_mode_window.c:279 msgid "" "Split by discarding silence from the begin and from the end\n" "If no silence is found, the output file is still created" msgstr "" -#: src/split_mode_window.c:302 src/split_mode_window.c:331 +#: src/split_mode_window.c:297 src/split_mode_window.c:326 msgid "Threshold level (dB) : " msgstr "Уровень порога (Дб): " -#: src/split_mode_window.c:313 +#: src/split_mode_window.c:308 msgid "Silence - split with silence detection" msgstr "Тишина — разделить, найдя тишину" -#: src/split_mode_window.c:314 +#: src/split_mode_window.c:309 #, fuzzy msgid "Split where silence is found" msgstr "Тишина — разделить, найдя тишину" -#: src/split_mode_window.c:343 +#: src/split_mode_window.c:338 msgid "Cutpoint offset (0 is the begin of silence,and 1 the end) : " msgstr "Смещение точки разреза (0 — начало тишины. 1 — конец): " -#: src/split_mode_window.c:355 +#: src/split_mode_window.c:350 msgid "Number of tracks (0 means all tracks) : " msgstr "Количество дорожек (0 значит все): " -#: src/split_mode_window.c:367 +#: src/split_mode_window.c:362 msgid "Minimum silence length (seconds) : " msgstr "Мин. длительность тишины (секунды) : " -#: src/split_mode_window.c:379 +#: src/split_mode_window.c:374 msgid "Minimum track length (seconds) : " msgstr "" -#: src/split_mode_window.c:389 +#: src/split_mode_window.c:384 msgid "Remove silence between tracks" msgstr "Убрать задержку между дорожками" -#: src/split_mode_window.c:410 +#: src/split_mode_window.c:405 msgid "Wrap - split files created with mp3wrap or albumwrap (mp3 only)" msgstr "" -#: src/split_mode_window.c:420 +#: src/split_mode_window.c:415 msgid "Synchronisation error mode (mp3 only)" msgstr "" -#: src/split_mode_window.c:422 +#: src/split_mode_window.c:417 msgid "" "Split where synchronisation errors are found\n" "Useful for splitting concatenated files" msgstr "" -#: src/mp3splt-gtk.c:102 -msgid " error: no files found in batch mode" +#: src/split_mode_window.c:428 +msgid "Internal sheet mode (CUE sheet for FLAC and ID3v2 chapters for MP3)" msgstr "" -#: src/mp3splt-gtk.c:278 -msgid " info: stopping the split process before exiting" +#: src/split_mode_window.c:429 +msgid "Split using internal sheet" msgstr "" -#: src/mp3splt-gtk.c:389 -#, c-format -msgid "Setting the output directory to %s.\n" +#: src/split_mode_window.c:439 +#, fuzzy +msgid "Use CUE file with similar name as the input file" +msgstr "Та же, что у исходных файлов" + +#: src/split_mode_window.c:441 +msgid "" +"Split using CUE file having similar name as the input file\n" +"Example: test.cue will be looked for when splitting test.mp3" msgstr "" -#: src/mp3splt-gtk.c:403 -#, c-format -msgid "Option -%c requires an argument.\n" -msgstr "Опция -%c требует значение.\n" +#: src/split_mode_window.c:452 +msgid "Use CDDB file with similar name as the input file" +msgstr "" -#: src/mp3splt-gtk.c:405 -#, c-format -msgid "Unknown option `-%c'.\n" -msgstr "Неизвестная опция `-%c'.\n" +#: src/split_mode_window.c:454 +msgid "" +"Split using CDDB file having similar name as the input file\n" +"Example: test.cddb will be looked for when splitting test.mp3" +msgstr "" -#: src/mp3splt-gtk.c:407 -#, c-format -msgid "Unknown option character `\\x%x'.\n" -msgstr "Неизвестный символ опции `\\x%x'.\n" +#: src/mp3splt-gtk.c:112 +msgid " error: no files found in batch mode" +msgstr "" -#: src/mp3splt-gtk.c:421 -#, c-format -msgid "Cannot open input file %s\n" -msgstr "Не могу открыть входной файл %s\n" +#: src/mp3splt-gtk.c:350 +msgid " info: stopping the split process before exiting" +msgstr "" -#: src/main_window.c:173 +#: src/main_window.c:170 msgid "Error launching external command" msgstr "Ошибка при запуске внешней команды" -#: src/main_window.c:204 +#: src/main_window.c:203 msgid "using" msgstr "использование" -#: src/main_window.c:208 +#: src/main_window.c:207 msgid "release of " msgstr "" -#: src/main_window.c:311 +#: src/main_window.c:310 msgid " info: stopping the split process.. please wait" msgstr "" -#: src/main_window.c:319 src/main_window.c:778 -msgid "Preferences" -msgstr "Параметры" - -#: src/main_window.c:331 -msgid "TrackType" -msgstr "" - -#: src/main_window.c:346 src/main_window.c:781 -msgid "Split files" -msgstr "Разделённые файлы" - -#: src/main_window.c:361 src/main_window.c:784 -msgid "Splitpoints" -msgstr "Точки разделения" - -#: src/main_window.c:432 +#: src/main_window.c:375 msgid " error: split in progress..." msgstr "" -#: src/main_window.c:442 +#: src/main_window.c:385 msgid " error: no path of split selected" msgstr "" -#: src/main_window.c:725 -msgid "Choose File" -msgstr "Выберите Файл" - -#: src/main_window.c:755 -msgid "_File" -msgstr "_Файл" - -#: src/main_window.c:756 -msgid "_View" -msgstr "" - -#: src/main_window.c:757 -msgid "_Player" -msgstr "" - -#: src/main_window.c:758 -msgid "_Help" -msgstr "_Справка" - -#: src/main_window.c:760 -msgid "_Open single file..." -msgstr "" - -#: src/main_window.c:760 -msgid "Open" -msgstr "Открыть" - -#: src/main_window.c:764 -msgid "_Add files or directories to batch ..." -msgstr "" - -#: src/main_window.c:765 -msgid "Add files or directories to batch" -msgstr "" - -#: src/main_window.c:768 -msgid "_Import splitpoints from file..." -msgstr "" - -#: src/main_window.c:769 -msgid "Import splitpoints from file..." -msgstr "" - -#: src/main_window.c:771 -msgid "Import splitpoints from _TrackType.org..." -msgstr "" - -#: src/main_window.c:772 -msgid "Import splitpoints from TrackType.org..." -msgstr "" - -#: src/main_window.c:775 -msgid "_Export splitpoints..." -msgstr "_Экспортировать точки разделения..." - -#: src/main_window.c:776 -msgid "Export splitpoints" -msgstr "" - -#: src/main_window.c:778 -msgid "_Preferences" -msgstr "" - -#: src/main_window.c:781 -msgid "Split _files" -msgstr "" - -#: src/main_window.c:784 -msgid "_Splitpoints" +#: src/main_window.c:729 +msgid "Open file ..." msgstr "" -#: src/main_window.c:787 -msgid "_Split !" -msgstr "_Разделить!" - -#: src/main_window.c:787 src/main_window.c:998 -msgid "Split !" -msgstr "Разделить" +#: src/main_window.c:777 +#, fuzzy +msgid "Split the current file" +msgstr "Разделённые файлы" -#: src/main_window.c:790 -msgid "_Batch split !" +#: src/main_window.c:786 +msgid "Manual single file split" msgstr "" -#: src/main_window.c:793 -msgid "_Quit" -msgstr "_Выход" - -#: src/main_window.c:793 -msgid "Quit" -msgstr "ВЫход" - -#: src/main_window.c:797 -msgid "_Contents" -msgstr "_Контент" - -#: src/main_window.c:797 -msgid "Contents" -msgstr "Контент" - -#: src/main_window.c:801 -msgid "Messages _history" -msgstr "_История сообщений" - -#: src/main_window.c:804 -msgid "_About" -msgstr "_О программе" - #: src/main_window.c:804 -msgid "About" -msgstr "О программе" - -#: src/main_window.c:808 -msgid "P_ause / Play" -msgstr "" - -#: src/main_window.c:808 -msgid "Pause/Play" -msgstr "" - -#: src/main_window.c:811 -msgid "Seek _forward" -msgstr "" - -#: src/main_window.c:811 -msgid "Seek forward" -msgstr "" - -#: src/main_window.c:813 -msgid "Seek _backward" -msgstr "" - -#: src/main_window.c:813 -msgid "Seek backward" -msgstr "" - -#: src/main_window.c:816 -msgid "Small seek f_orward" -msgstr "" - -#: src/main_window.c:816 -msgid "Small seek forward" -msgstr "" - -#: src/main_window.c:818 -msgid "Small seek back_ward" -msgstr "" - -#: src/main_window.c:818 -msgid "Small seek backward" -msgstr "" - -#: src/main_window.c:821 -msgid "Big seek fo_rward" -msgstr "" - -#: src/main_window.c:821 -msgid "Big seek forward" -msgstr "" - -#: src/main_window.c:823 -msgid "Big seek bac_kward" -msgstr "" - -#: src/main_window.c:823 -msgid "Big seek backward" -msgstr "" - -#: src/main_window.c:826 -msgid "Seek to _next splitpoint" -msgstr "" - -#: src/main_window.c:827 -msgid "Seek to next splitpoint" -msgstr "" - -#: src/main_window.c:828 -msgid "Seek to _previous splitpoint" +msgid "Batch & automatic split" msgstr "" -#: src/main_window.c:829 -msgid "Seek to previous splitpoint" -msgstr "" +#: src/main_window.c:822 +msgid "S_top" +msgstr "_Стоп" -#: src/main_window.c:832 -msgid "_Quick preview before closest splitpoint" +#: src/main_window.c:1089 +#, c-format +msgid "Setting the output directory to %s.\n" msgstr "" -#: src/main_window.c:832 -msgid "Quick preview before closest splitpoint" -msgstr "" +#: src/main_window.c:1103 +#, c-format +msgid "Option -%c requires an argument.\n" +msgstr "Опция -%c требует значение.\n" -#: src/main_window.c:835 -msgid "Add _splitpoint" -msgstr "" +#: src/main_window.c:1105 +#, c-format +msgid "Unknown option `-%c'.\n" +msgstr "Неизвестная опция `-%c'.\n" -#: src/main_window.c:838 -msgid "_Delete closest splitpoint" -msgstr "" +#: src/main_window.c:1107 +#, c-format +msgid "Unknown option character `\\x%x'.\n" +msgstr "Неизвестный символ опции `\\x%x'.\n" -#: src/main_window.c:839 -msgid "Delete closest splitpoint" -msgstr "" +#: src/main_window.c:1121 +#, c-format +msgid "Cannot open input file %s\n" +msgstr "Не могу открыть входной файл %s\n" -#: src/main_window.c:841 -msgid "Zoom _in" -msgstr "" +#: src/main_window.c:1164 +msgid "Choose File" +msgstr "Выберите Файл" -#: src/main_window.c:841 -msgid "Zoom in" -msgstr "" +#: src/main_window.c:1168 src/import.c:61 +#, fuzzy +msgid "_Open" +msgstr "Открыть" -#: src/main_window.c:842 -msgid "Zoom _out" +#: src/main_window.c:1208 +msgid "TrackType" msgstr "" -#: src/main_window.c:842 -msgid "Zoom out" -msgstr "" +#: src/main_window.c:1225 +msgid "Preferences" +msgstr "Параметры" -#: src/main_window.c:953 -msgid "Open file ..." -msgstr "" +#: src/main_window.c:1257 +msgid "Splitpoints" +msgstr "Точки разделения" -#: src/main_window.c:1001 -#, fuzzy -msgid "Split the current file" +#: src/main_window.c:1273 +msgid "Split files" msgstr "Разделённые файлы" -#: src/main_window.c:1010 -msgid "Manual single file split" -msgstr "" - -#: src/main_window.c:1028 -msgid "Batch & automatic split" -msgstr "" - -#: src/main_window.c:1048 -msgid "S_top" -msgstr "_Стоп" - #: src/libmp3splt_manager.c:71 #, c-format msgid " File '%s' created" msgstr "Файл '%s' создан" -#: src/libmp3splt_manager.c:182 +#: src/libmp3splt_manager.c:166 #, c-format msgid " preparing \"%s\" (%d of %d)" msgstr "" -#: src/libmp3splt_manager.c:188 +#: src/libmp3splt_manager.c:172 #, c-format msgid " creating \"%s\" (%d of %d)" msgstr "" -#: src/libmp3splt_manager.c:194 +#: src/libmp3splt_manager.c:178 msgid " searching for sync errors..." msgstr "" -#: src/libmp3splt_manager.c:199 +#: src/libmp3splt_manager.c:183 msgid "Computing amplitude wave data..." msgstr "" -#: src/libmp3splt_manager.c:204 +#: src/libmp3splt_manager.c:188 #, c-format msgid "S: %02d, Level: %.2f dB; scanning for silence..." msgstr "" -#: src/import.c:55 +#: src/import.c:56 msgid "Choose file to import" msgstr "Выберите файл для импорта" -#: src/import.c:207 -msgid "CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt)" +#: src/import.c:271 +#, fuzzy +msgid "" +"CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt), internal sheet (*." +"flac), chapters (*.mp3)" msgstr "CDDB (*.cddb), CUE (*.cue), Метки Audacity (*.txt)" -#: src/import.c:211 +#: src/import.c:275 msgid "CDDB files (*.cddb)" msgstr "Файлы CDDB (*.cddb)" -#: src/import.c:213 +#: src/import.c:277 msgid "CUE files (*.cue)" msgstr "Файлы CUE (*.cue)" -#: src/import.c:215 +#: src/import.c:279 msgid "Audacity labels files (*.txt)" msgstr "Файлы меток Audacity (*.txt)" -#: src/import.c:217 +#: src/import.c:281 +msgid "FLAC internal sheet (*.flac)" +msgstr "" + +#: src/import.c:283 +#, fuzzy +msgid "ID3v2 chapters (*.mp3)" +msgstr "mp3 файлы (*.mp3)" + +#: src/import.c:285 msgid "All files" msgstr "Все файлы" -#: src/import.c:348 +#: src/import.c:476 msgid "--- last cue splitpoint ---" msgstr "" -#: src/gstreamer_control.c:73 +#: src/gstreamer_control.c:71 #, c-format msgid "gstreamer error: %s" msgstr "Ошибка GStreamer: %s" -#: src/gstreamer_control.c:99 +#: src/gstreamer_control.c:97 #, c-format msgid "Warning: %s" msgstr "Предупреждение: %s" -#: src/gstreamer_control.c:125 +#: src/gstreamer_control.c:123 #, c-format msgid "Info: %s" msgstr "Информация:%s" -#: src/gstreamer_control.c:369 +#: src/gstreamer_control.c:354 msgid " error: cannot create gstreamer playbin\n" msgstr "" + +#~ msgid "Split !" +#~ msgstr "Разделить" + +#~ msgid "_File" +#~ msgstr "_Файл" + +#~ msgid "_Help" +#~ msgstr "_Справка" + +#~ msgid "_Export splitpoints..." +#~ msgstr "_Экспортировать точки разделения..." + +#~ msgid "_Split !" +#~ msgstr "_Разделить!" + +#~ msgid "_Quit" +#~ msgstr "_Выход" + +#~ msgid "Quit" +#~ msgstr "ВЫход" + +#~ msgid "_Contents" +#~ msgstr "_Контент" + +#~ msgid "Contents" +#~ msgstr "Контент" + +#~ msgid "Messages _history" +#~ msgstr "_История сообщений" + +#~ msgid "_About" +#~ msgstr "_О программе" + +#~ msgid "About" +#~ msgstr "О программе" + +#, fuzzy +#~ msgid "Preview before c_losest splitpoint" +#~ msgstr "Убрать задержку между дорожками" + +#, fuzzy +#~ msgid "Preview before closest splitpoint" +#~ msgstr "Убрать задержку между дорожками" + +#, fuzzy +#~ msgid "Preview clos_est splitpoint" +#~ msgstr "Убрать задержку между дорожками" + +#, fuzzy +#~ msgid "Preview closest splitpoint" +#~ msgstr "Убрать задержку между дорожками" + +#, fuzzy +#~ msgid "Preview _closest splitpoint & pause" +#~ msgstr "Убрать задержку между дорожками" + +#, fuzzy +#~ msgid "Preview closest splitpoint & pause" +#~ msgstr "Убрать задержку между дорожками" diff -Nru mp3splt-gtk-0.9/README mp3splt-gtk-0.9.2/README --- mp3splt-gtk-0.9/README 2013-07-20 07:09:10.000000000 +0000 +++ mp3splt-gtk-0.9.2/README 2014-11-09 16:48:11.000000000 +0000 @@ -1,6 +1,6 @@ - mp3splt-gtk version 0.9 + mp3splt-gtk version 0.9.2 - Copyright (C) 2005-2013 Alexandru Ionut Munteanu + Copyright (C) 2005-2014 Alexandru Ionut Munteanu Visit http://mp3splt.sourceforge.net for latest releases diff -Nru mp3splt-gtk-0.9/src/all_includes.h mp3splt-gtk-0.9.2/src/all_includes.h --- mp3splt-gtk-0.9/src/all_includes.h 2013-02-08 09:25:58.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/all_includes.h 2014-05-10 14:49:00.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -41,10 +41,10 @@ #include "preferences_manager.h" #include "main_window.h" #include "player_window.h" +#include "utilities.h" #include "splitpoints_window.h" #include "widgets_helper.h" #include "preferences_window.h" -#include "utilities.h" #include "mp3splt-gtk.h" #include "player_control.h" #include "freedb_window.h" diff -Nru mp3splt-gtk-0.9/src/audacious_control.c mp3splt-gtk-0.9.2/src/audacious_control.c --- mp3splt-gtk-0.9/src/audacious_control.c 2013-02-08 09:25:52.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/audacious_control.c 2014-05-10 14:48:54.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * from BMP to Audacious patch from Roberto Neri - 2007,2008 diff -Nru mp3splt-gtk-0.9/src/audacious_control.h mp3splt-gtk-0.9.2/src/audacious_control.h --- mp3splt-gtk-0.9/src/audacious_control.h 2013-02-08 09:25:58.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/audacious_control.h 2014-05-10 14:49:00.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * http://mp3splt.sourceforge.net/ * diff -Nru mp3splt-gtk-0.9/src/combo_helper.c mp3splt-gtk-0.9.2/src/combo_helper.c --- mp3splt-gtk-0.9/src/combo_helper.c 2013-02-08 09:25:52.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/combo_helper.c 2014-05-10 14:48:54.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * * for mp3/ogg splitting without decoding - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/combo_helper.h mp3splt-gtk-0.9.2/src/combo_helper.h --- mp3splt-gtk-0.9/src/combo_helper.h 2013-02-08 09:25:58.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/combo_helper.h 2014-05-10 14:49:00.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/douglas_peucker.c mp3splt-gtk-0.9.2/src/douglas_peucker.c --- mp3splt-gtk-0.9/src/douglas_peucker.c 2013-02-08 09:25:52.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/douglas_peucker.c 2014-05-10 14:48:55.000000000 +0000 @@ -3,7 +3,7 @@ * for mp3/ogg splitting without decoding * mp3splt-gtk -- utility based on mp3splt, * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/douglas_peucker.h mp3splt-gtk-0.9.2/src/douglas_peucker.h --- mp3splt-gtk-0.9/src/douglas_peucker.h 2013-02-08 09:25:58.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/douglas_peucker.h 2014-05-10 14:49:00.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * http://mp3splt.sourceforge.net/ * diff -Nru mp3splt-gtk-0.9/src/drag_and_drop.c mp3splt-gtk-0.9.2/src/drag_and_drop.c --- mp3splt-gtk-0.9/src/drag_and_drop.c 2013-04-07 22:32:11.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/drag_and_drop.c 2014-05-10 14:48:55.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -140,7 +140,7 @@ } else if (!discard_data_files) { - import_file(filename, ui); + import_file(filename, ui, FALSE); } g_string_free(ext_str, FALSE); } @@ -180,7 +180,7 @@ if (single_file_mode) { GSList *last_filename = g_slist_last(filenames); - import_file(last_filename->data, ui); + import_file(last_filename->data, ui, FALSE); g_slist_foreach(filenames, (GFunc)g_free, NULL); g_slist_free(filenames); diff -Nru mp3splt-gtk-0.9/src/drag_and_drop.h mp3splt-gtk-0.9.2/src/drag_and_drop.h --- mp3splt-gtk-0.9/src/drag_and_drop.h 2013-02-08 09:25:58.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/drag_and_drop.h 2014-05-10 14:49:00.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/drawing_helper.c mp3splt-gtk-0.9.2/src/drawing_helper.c --- mp3splt-gtk-0.9/src/drawing_helper.c 2013-02-08 09:25:53.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/drawing_helper.c 2014-05-10 14:48:55.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -33,7 +33,12 @@ void dh_set_color(cairo_t *cairo, GdkColor *color) { - gdk_cairo_set_source_color(cairo, color); + GdkRGBA rgba_color; + rgba_color.red = ((double) color->red) / 65535.0; + rgba_color.green = ((double) color->green) / 65535.0; + rgba_color.blue = ((double) color->blue) / 65535.0; + rgba_color.alpha = 1.0; + gdk_cairo_set_source_rgba(cairo, &rgba_color); } void dh_set_white_color(cairo_t *cairo_surface) diff -Nru mp3splt-gtk-0.9/src/drawing_helper.h mp3splt-gtk-0.9.2/src/drawing_helper.h --- mp3splt-gtk-0.9/src/drawing_helper.h 2013-02-08 09:25:59.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/drawing_helper.h 2014-05-10 14:49:00.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/export.c mp3splt-gtk-0.9.2/src/export.c --- mp3splt-gtk-0.9/src/export.c 2013-01-12 22:01:12.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/export.c 2014-05-08 21:02:20.000000000 +0000 @@ -38,14 +38,12 @@ #include "export.h" //! Export the current split points into a cue file -static void export_to_cue_file(const gchar* filename, ui_state *ui) +static void export_to_cue_file(const gchar* filename, ui_state *ui, points_and_tags *pat) { const gchar *old_fname = mp3splt_get_filename_to_split(ui->mp3splt_state); gchar *fname = NULL; if (old_fname != NULL) { fname = g_strdup(old_fname); } - mp3splt_set_filename_to_split(ui->mp3splt_state, get_input_filename(ui->gui)); - gchar *directory = g_path_get_dirname(filename); mp3splt_set_path_of_split(ui->mp3splt_state, directory); g_free(directory); @@ -53,20 +51,35 @@ mp3splt_erase_all_splitpoints(ui->mp3splt_state); mp3splt_erase_all_tags(ui->mp3splt_state); - put_splitpoints_and_tags_in_mp3splt_state(ui->mp3splt_state, ui); + gint i = 0; + for (i = 0;i < pat->splitpoints->len; i++) + { + splt_point *point = g_ptr_array_index(pat->splitpoints, i); + mp3splt_append_splitpoint(ui->mp3splt_state, point); + splt_tags *tags = g_ptr_array_index(pat->tags, i); + mp3splt_append_tags(ui->mp3splt_state, tags); + } + free_points_and_tags(&pat); gchar *file = g_path_get_basename(filename); splt_code err = mp3splt_export(ui->mp3splt_state, CUE_EXPORT, file, SPLT_FALSE); - print_status_bar_confirmation(err, ui); + print_status_bar_confirmation_in_idle(err, ui); g_free(file); mp3splt_set_filename_to_split(ui->mp3splt_state, fname); if (fname != NULL) { g_free(fname); } } -void export_cue_file_in_configuration_directory(ui_state *ui) +static gpointer export_cue_in_configuration_directory_for_thread(ui_with_pat *ui_pat) { - if (ui->status->lock_cue_export) { return; } + ui_state *ui = ui_pat->ui; + + if (ui_pat->previous_thread) + { + g_thread_join(ui_pat->previous_thread); + } + + set_process_in_progress_and_wait_safe(TRUE, ui); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_CUE_DISABLE_CUE_FILE_CREATED_MESSAGE, SPLT_TRUE); @@ -78,24 +91,72 @@ g_snprintf(splitpoints_cue_filename, filename_size, "%s%s%s", configuration_directory, G_DIR_SEPARATOR_S, "splitpoints.cue"); - export_to_cue_file(splitpoints_cue_filename, ui); + export_to_cue_file(splitpoints_cue_filename, ui, ui_pat->pat); g_free(configuration_directory); g_free(splitpoints_cue_filename); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_CUE_DISABLE_CUE_FILE_CREATED_MESSAGE, SPLT_FALSE); + + set_process_in_progress_and_wait_safe(FALSE, ui); + + g_free(ui_pat); + + return NULL; +} + +void export_cue_file_in_configuration_directory(ui_state *ui) +{ + if (ui->status->lock_cue_export) { return; } + + ui_with_pat *ui_pat = g_malloc0(sizeof(ui_with_pat)); + ui_pat->ui = ui; + ui_pat->pat = get_splitpoints_and_tags_for_mp3splt_state(ui); + if (ui->infos->previous_export_thread != NULL) + { + ui_pat->previous_thread = ui->infos->previous_export_thread; + } + else + { + ui_pat->previous_thread = NULL; + } + + ui->infos->previous_export_thread = + create_thread((GThreadFunc) export_cue_in_configuration_directory_for_thread, + ui_pat, ui, "export_cue_auto"); +} + +static gpointer export_to_cue_file_for_thread(ui_with_pat *ui_pat) +{ + if (ui_pat->previous_thread) + { + g_thread_join(ui_pat->previous_thread); + } + + set_process_in_progress_and_wait_safe(TRUE, ui_pat->ui); + + export_to_cue_file(ui_pat->export_filename, ui_pat->ui, ui_pat->pat); + + g_free(ui_pat->export_filename); + + set_process_in_progress_and_wait_safe(FALSE, ui_pat->ui); + + g_free(ui_pat); + + return NULL; } -//! Choose the file to save the session to -void export_cue_file_event(GtkWidget *widget, ui_state *ui) +void export_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; + GtkWidget *file_chooser = gtk_file_chooser_dialog_new(_("Cue filename to export"), NULL, GTK_FILE_CHOOSER_ACTION_SAVE, - GTK_STOCK_CANCEL, + _("_Cancel"), GTK_RESPONSE_CANCEL, - GTK_STOCK_SAVE, + _("_Save"), GTK_RESPONSE_ACCEPT, NULL); @@ -110,9 +171,22 @@ if (gtk_dialog_run(GTK_DIALOG(file_chooser)) == GTK_RESPONSE_ACCEPT) { - gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(file_chooser)); - export_to_cue_file(filename, ui); - g_free(filename); + ui_with_pat *ui_pat = g_malloc0(sizeof(ui_with_pat)); + ui_pat->ui = ui; + ui_pat->pat = get_splitpoints_and_tags_for_mp3splt_state(ui); + ui_pat->export_filename = + g_strdup(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(file_chooser))); + if (ui->infos->previous_export_thread != NULL) + { + ui_pat->previous_thread = ui->infos->previous_export_thread; + } + else + { + ui_pat->previous_thread = NULL; + } + + ui->infos->previous_export_thread = + create_thread((GThreadFunc) export_to_cue_file_for_thread, ui_pat, ui, "export_cue"); } gtk_widget_destroy(file_chooser); diff -Nru mp3splt-gtk-0.9/src/export.h mp3splt-gtk-0.9.2/src/export.h --- mp3splt-gtk-0.9/src/export.h 2013-01-09 22:11:23.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/export.h 2014-05-08 21:02:36.000000000 +0000 @@ -35,7 +35,7 @@ #include "all_includes.h" void export_cue_file_in_configuration_directory(ui_state *ui); -void export_cue_file_event(GtkWidget *widget, ui_state *ui); +void export_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data); #endif diff -Nru mp3splt-gtk-0.9/src/external_includes.h mp3splt-gtk-0.9.2/src/external_includes.h --- mp3splt-gtk-0.9/src/external_includes.h 2013-07-20 07:09:10.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/external_includes.h 2014-11-09 16:48:11.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -36,7 +36,7 @@ #ifdef HAVE_CONFIG_H #include "config.h" #else -#define VERSION "0.9" +#define VERSION "0.9.2" #define PACKAGE_NAME "mp3splt-gtk" #endif @@ -56,10 +56,9 @@ #ifdef __WIN32__ -#include <windows.h> - #include <winsock2.h> #include <ws2tcpip.h> +#include <windows.h> #include <shlwapi.h> #define usleep(x) Sleep(x/1000) diff -Nru mp3splt-gtk-0.9/src/freedb_window.c mp3splt-gtk-0.9.2/src/freedb_window.c --- mp3splt-gtk-0.9/src/freedb_window.c 2013-03-27 21:58:57.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/freedb_window.c 2014-05-10 14:48:55.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -103,21 +103,6 @@ gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(name_column), TRUE); } -static void set_freedb_selected_id_safe(gint selected_id, ui_state *ui) -{ - lock_mutex(&ui->variables_mutex); - ui->infos->freedb_selected_id = selected_id; - unlock_mutex(&ui->variables_mutex); -} - -static gint get_freedb_selected_id_safe(ui_state *ui) -{ - lock_mutex(&ui->variables_mutex); - gint selected_id = ui->infos->freedb_selected_id; - unlock_mutex(&ui->variables_mutex); - return selected_id; -} - //!freedb selection has changed static void freedb_selection_changed(GtkTreeSelection *selection, ui_state *ui) { @@ -131,7 +116,7 @@ gtk_tree_model_get(model, &iter, ALBUM_NAME, &info, NUMBER, &selected_id, -1); g_free(info); - set_freedb_selected_id_safe(selected_id, ui); + ui->infos->freedb_selected_id = selected_id; gtk_widget_set_sensitive(ui->gui->freedb_add_button, TRUE); } @@ -238,29 +223,29 @@ } //!search the freedb.org -static gpointer freedb_search(ui_state *ui) +static gpointer freedb_search(ui_with_fname *ui_fname) { + ui_state *ui = ui_fname->ui; + set_process_in_progress_and_wait_safe(TRUE, ui); - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, (GSourceFunc)freedb_search_start, ui, NULL); + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)freedb_search_start, ui, NULL); gint err = SPLT_OK; - enter_threads(); - const gchar *freedb_search_value = gtk_entry_get_text(GTK_ENTRY(ui->gui->freedb_entry)); - exit_threads(); - //freedb_search_results is only used in the idle of the end of the thread, so no mutex needed ui->infos->freedb_search_results = - mp3splt_get_freedb_search(ui->mp3splt_state, freedb_search_value, &err, + mp3splt_get_freedb_search(ui->mp3splt_state, ui_fname->fname, &err, SPLT_FREEDB_SEARCH_TYPE_CDDB_CGI, "\0", -1); - print_status_bar_confirmation_in_idle(err, ui); ui_with_err *ui_err = g_malloc0(sizeof(ui_with_err)); ui_err->err = err; ui_err->ui = ui; - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, (GSourceFunc)freedb_search_end, ui_err, NULL); + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)freedb_search_end, ui_err, NULL); + + g_free(ui_fname->fname); + g_free(ui_fname); return NULL; } @@ -268,7 +253,15 @@ //! Start a thread for the freedb search static void freedb_search_start_thread(ui_state *ui) { - create_thread((GThreadFunc)freedb_search, ui); + ui_with_fname *ui_fname = g_malloc0(sizeof(ui_with_fname)); + ui_fname->ui = ui; + + const gchar *freedb_search_value = gtk_entry_get_text(GTK_ENTRY(ui->gui->freedb_entry)); + if (freedb_search_value) + { + ui_fname->fname = g_strdup(freedb_search_value); + create_thread_and_unref((GThreadFunc)freedb_search, (gpointer)ui_fname, ui, "freedb search"); + } } //!we push the search button @@ -416,13 +409,15 @@ gint number_of_rows = 0; while ((point = mp3splt_points_next(points))) { - //ugly hack because we use maximum ints in the GUI - //-GUI must be changed to accept long values + //ugly hack long old_point_value = mp3splt_point_get_value(point); - int point_value = (int) old_point_value; + int point_value = 0; if (old_point_value > INT_MAX) { - point_value = INT_MAX; + point_value = 100 * 60 * 10000; + } + else { + point_value = (int) old_point_value; } get_secs_mins_hundr(point_value, @@ -491,14 +486,15 @@ return FALSE; } -static gpointer put_freedb_splitpoints(ui_state *ui) +static gpointer put_freedb_splitpoints(ui_for_split *ui_fs) { + ui_state *ui = ui_fs->ui; + set_process_in_progress_and_wait_safe(TRUE, ui); - gint selected_id = get_freedb_selected_id_safe(ui); + gint selected_id = ui_fs->freedb_selected_id; - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, - (GSourceFunc)put_freedb_splitpoints_start, ui, NULL); + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)put_freedb_splitpoints_start, ui, NULL); gchar *configuration_directory = get_configuration_directory(); gint malloc_number = strlen(configuration_directory) + 20; @@ -511,20 +507,14 @@ filename, SPLT_FREEDB_GET_FILE_TYPE_CDDB_CGI, "\0",-1); print_status_bar_confirmation_in_idle(err, ui); - enter_threads(); - if (get_checked_output_radio_box(ui)) + if (ui_fs->is_checked_output_radio_box) { - exit_threads(); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_DEFAULT); } else { - const char *data = gtk_entry_get_text(GTK_ENTRY(ui->gui->output_entry)); - exit_threads(); - mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_FORMAT); - - gint error = mp3splt_set_oformat(ui->mp3splt_state, data); + gint error = mp3splt_set_oformat(ui->mp3splt_state, ui_fs->output_format); print_status_bar_confirmation_in_idle(error, ui); } @@ -537,8 +527,9 @@ filename = NULL; } - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, - (GSourceFunc)put_freedb_splitpoints_end, ui, NULL); + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)put_freedb_splitpoints_end, ui, NULL); + + free_ui_for_split(ui_fs); return NULL; } @@ -546,7 +537,10 @@ //!event for the freedb add button when clicked static void freedb_add_button_clicked_event(GtkButton *button, ui_state *ui) { - create_thread((GThreadFunc)put_freedb_splitpoints, ui); + ui_for_split *ui_fs = build_ui_for_split(ui); + ui_fs->freedb_selected_id = ui->infos->freedb_selected_id; + create_thread_and_unref((GThreadFunc)put_freedb_splitpoints, + (gpointer)ui_fs, ui, "put_freedb_points"); } //!creates the freedb box @@ -572,7 +566,7 @@ g_signal_connect(G_OBJECT(freedb_entry), "activate", G_CALLBACK(freedb_entry_activate_event), ui); - GtkWidget *freedb_search_button = wh_create_cool_button(GTK_STOCK_FIND, _("_Search"),FALSE); + GtkWidget *freedb_search_button = wh_create_cool_button("edit-find", _("_Search"),FALSE); ui->gui->freedb_search_button = freedb_search_button; g_signal_connect(G_OBJECT(freedb_search_button), "clicked", G_CALLBACK(freedb_search_button_event), ui); @@ -601,7 +595,7 @@ G_CALLBACK(freedb_selection_changed), ui); /* add button */ - GtkWidget *freedb_add_button = wh_create_cool_button(GTK_STOCK_ADD,_("_Add splitpoints"), FALSE); + GtkWidget *freedb_add_button = wh_create_cool_button("list-add", _("_Add splitpoints"), FALSE); ui->gui->freedb_add_button = freedb_add_button; gtk_widget_set_sensitive(freedb_add_button, FALSE); diff -Nru mp3splt-gtk-0.9/src/freedb_window.h mp3splt-gtk-0.9.2/src/freedb_window.h --- mp3splt-gtk-0.9/src/freedb_window.h 2013-02-08 09:25:59.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/freedb_window.h 2014-05-10 14:49:01.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/gstreamer_control.c mp3splt-gtk-0.9.2/src/gstreamer_control.c --- mp3splt-gtk-0.9/src/gstreamer_control.c 2013-02-08 09:25:53.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/gstreamer_control.c 2014-05-10 14:48:55.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * from BMP to Audacious patch from Roberto Neri - 2007,2008 @@ -48,8 +48,6 @@ //! Send a call over the dbus static gboolean bus_call(GstBus *bus, GstMessage *msg, gpointer data) { - enter_threads(); - ui_state *ui = (ui_state *) data; switch (GST_MESSAGE_TYPE(msg)) @@ -72,7 +70,7 @@ memset(message,'\0',malloc_size); g_snprintf(message, malloc_size,_("gstreamer error: %s"),error->message); - put_status_message(message, ui); + put_status_message_in_idle(message, ui); g_free(message); } @@ -98,7 +96,7 @@ memset(message,'\0',malloc_size); g_snprintf(message, malloc_size,_("Warning: %s"),error->message); - put_status_message(message, ui); + put_status_message_in_idle(message, ui); g_free(message); } @@ -124,7 +122,7 @@ memset(message,'\0',malloc_size); g_snprintf(message, malloc_size,_("Info: %s"),error->message); - put_status_message(message, ui); + put_status_message_in_idle(message, ui); g_free(message); } @@ -168,12 +166,10 @@ break; } - exit_threads(); - return TRUE; } -//!Gets information about the< song +//!Gets information about the song void gstreamer_get_song_infos(gchar *total_infos, ui_state *ui) { if (!ui->pi->play) @@ -184,12 +180,8 @@ gint freq = 0; gint nch = 0; - gint number_of_stream = 0; - g_object_get(ui->pi->play, "current-audio", &number_of_stream, NULL); - - //get the stream info - GList *streaminfo = NULL; - g_object_get(ui->pi->play, "stream-info", &streaminfo, NULL); + gint current_audio_stream = 0; + g_object_get(ui->pi->play, "current-audio", ¤t_audio_stream, NULL); gchar rate_str[32] = { '\0' }; gchar freq_str[32] = { '\0' }; @@ -198,27 +190,24 @@ gchar *_Kbps = _("Kbps"); gchar *_Khz = _("Khz"); - GObject *object = g_list_nth_data(streaminfo, number_of_stream); - if (object) + GstCaps *caps = NULL; + + GstPad *pad = NULL; + g_signal_emit_by_name(ui->pi->play, "get-audio-pad", current_audio_stream, &pad); + if (pad) { - GstObject *obj = NULL; - g_object_get(G_OBJECT(object), "object", &obj, NULL); + caps = gst_pad_get_current_caps(pad); + } - //get the caps from the first element - GstCaps *caps = NULL; - g_object_get(obj, "caps", &caps, NULL); - if (caps) - { - //get the structure from the caps - GstStructure *structure = NULL; - structure = gst_caps_get_structure(caps, number_of_stream); - - //get the rate and the number of channels from the structure - gst_structure_get_int(structure, "rate", &freq); - gst_structure_get_int(structure, "channels", &nch); + if (caps) + { + GstStructure *structure = NULL; + structure = gst_caps_get_structure(caps, 0); - gst_caps_unref(caps); - } + gst_structure_get_int(structure, "rate", &freq); + gst_structure_get_int(structure, "channels", &nch); + + gst_caps_unref(caps); g_snprintf(rate_str, 32, "%d", ui->pi->rate / 1000); g_snprintf(freq_str, 32, "%d", freq / 1000); @@ -359,11 +348,7 @@ gst_init(NULL, NULL); -#ifdef __WIN32__ - gst_default_registry_add_path("./"); -#endif - - ui->pi->play = gst_element_factory_make("playbin", "play"); + ui->pi->play = gst_element_factory_make("playbin", "playbin"); if (!ui->pi->play) { put_status_message(_(" error: cannot create gstreamer playbin\n"), ui); @@ -410,6 +395,10 @@ return; } + GstState state; + gst_element_get_state(ui->pi->play, &state, NULL, GST_CLOCK_TIME_NONE); + gst_element_set_state(ui->pi->play, GST_STATE_NULL); + gint i = 0; gchar *song = NULL; while ((song = g_list_nth_data(list, i)) != NULL) @@ -428,6 +417,15 @@ i++; } + + if (state == GST_STATE_PLAYING) + { + gst_element_set_state(ui->pi->play, GST_STATE_PLAYING); + } + else if (state == GST_STATE_PAUSED) + { + gst_element_set_state(ui->pi->play, GST_STATE_PAUSED); + } } //!sets volume @@ -531,12 +529,17 @@ if (state == GST_STATE_PLAYING) { + //gint time = gstreamer_get_time_elapsed(ui); + gst_element_set_state(ui->pi->play, GST_STATE_PAUSED); + + /*gst_element_seek(ui->pi->play, + 1.0, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH, + GST_SEEK_TYPE_SET, time * GST_MSECOND, 0, 0);*/ + return; } - else - { - gstreamer_play(ui); - } + + gstreamer_play(ui); } //!changes to next song diff -Nru mp3splt-gtk-0.9/src/gstreamer_control.h mp3splt-gtk-0.9.2/src/gstreamer_control.h --- mp3splt-gtk-0.9/src/gstreamer_control.h 2013-02-08 09:25:59.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/gstreamer_control.h 2014-05-10 14:49:01.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * http://mp3splt.sourceforge.net/ * diff -Nru mp3splt-gtk-0.9/src/import.c mp3splt-gtk-0.9.2/src/import.c --- mp3splt-gtk-0.9/src/import.c 2013-04-07 22:32:26.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/import.c 2014-05-04 18:58:46.000000000 +0000 @@ -47,6 +47,7 @@ static gpointer add_audacity_labels_splitpoints(ui_with_fname *ui_fname); static gpointer add_cddb_splitpoints(ui_with_fname *ui_fname); static gpointer add_cue_splitpoints(ui_with_fname *ui_fname); +static gpointer add_plugin_internal_cue_splitpoints(ui_with_fname *ui_fname); //! What happens if the "Import" button is pressed void import_event(GtkWidget *widget, ui_state *ui) @@ -55,9 +56,9 @@ gtk_file_chooser_dialog_new(_("Choose file to import"), NULL, GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, + _("_Cancel"), GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, + _("_Open"), GTK_RESPONSE_ACCEPT, NULL); @@ -68,7 +69,7 @@ { gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(file_chooser)); - import_file(filename, ui); + import_file(filename, ui, TRUE); g_free(filename); filename = NULL; @@ -79,11 +80,26 @@ gtk_widget_destroy(file_chooser); } +static ui_with_fname *create_ui_with_fname(ui_state *ui, const gchar *filename) +{ + ui_with_fname *ui_fname = g_malloc0(sizeof(ui_with_fname)); + ui_fname->ui = ui; + ui_fname->fname = strdup(filename); + ui_fname->is_checked_output_radio_box = get_checked_output_radio_box(ui); + const gchar *output_format = gtk_entry_get_text(GTK_ENTRY(ui->gui->output_entry)); + if (output_format != NULL) + { + ui_fname->output_format = g_strdup(output_format); + } + + return ui_fname; +} + /*! Handles the import of an input file (audio or splitpoint) The file type is determined by the extension of the file. */ -void import_file(gchar *filename, ui_state *ui) +void import_file(gchar *filename, ui_state *ui, gboolean force_import_cue) { if (filename == NULL) { @@ -95,33 +111,37 @@ g_string_ascii_up(ext_str); - if ((strstr(ext_str->str, ".MP3") != NULL) || - (strstr(ext_str->str, ".OGG") != NULL) || - (strstr(ext_str->str, ".FLAC") != NULL)) + if (!force_import_cue && + ((strstr(ext_str->str, ".MP3") != NULL) || + (strstr(ext_str->str, ".OGG") != NULL) || + (strstr(ext_str->str, ".FLAC") != NULL))) { file_chooser_ok_event(filename, ui); remove_status_message(ui->gui); } else if ((strstr(ext_str->str, ".CUE") != NULL)) { - ui_with_fname *ui_fname = g_malloc0(sizeof(ui_with_fname)); - ui_fname->ui = ui; - ui_fname->fname = strdup(filename); - create_thread_with_fname((GThreadFunc)add_cue_splitpoints, ui_fname); + ui_with_fname *ui_fname = create_ui_with_fname(ui, filename); + create_thread_and_unref((GThreadFunc)add_cue_splitpoints, + (gpointer) ui_fname, ui, "import_cue"); } else if ((strstr(ext_str->str, ".CDDB") != NULL)) { - ui_with_fname *ui_fname = g_malloc0(sizeof(ui_with_fname)); - ui_fname->ui = ui; - ui_fname->fname = strdup(filename); - create_thread_with_fname((GThreadFunc)add_cddb_splitpoints, ui_fname); + ui_with_fname *ui_fname = create_ui_with_fname(ui, filename); + create_thread_and_unref((GThreadFunc)add_cddb_splitpoints, + (gpointer) ui_fname, ui, "import_cddb"); } else if ((strstr(ext_str->str, ".TXT") != NULL)) { - ui_with_fname *ui_fname = g_malloc0(sizeof(ui_with_fname)); - ui_fname->ui = ui; - ui_fname->fname = strdup(filename); - create_thread_with_fname((GThreadFunc)add_audacity_labels_splitpoints, ui_fname); + ui_with_fname *ui_fname = create_ui_with_fname(ui, filename); + create_thread_and_unref((GThreadFunc)add_audacity_labels_splitpoints, + (gpointer) ui_fname, ui, "import_audacity"); + } + else + { + ui_with_fname *ui_fname = create_ui_with_fname(ui, filename); + create_thread_and_unref((GThreadFunc)add_plugin_internal_cue_splitpoints, + (gpointer) ui_fname, ui, "import_internal"); } if (ext_str) @@ -144,17 +164,60 @@ ui->importing_cue_from_configuration_directory = TRUE; mp3splt_set_int_option(ui->mp3splt_state, - SPLT_OPT_CUE_SET_SPLITPOINT_NAMES_FROM_REM_NAME, SPLT_TRUE); - import_file(splitpoints_cue_filename, ui); + SPLT_OPT_CUE_SET_SPLITPOINT_NAMES_FROM_REM_NAME, SPLT_TRUE); + import_file(splitpoints_cue_filename, ui, FALSE); } g_free(configuration_directory); g_free(splitpoints_cue_filename); } -void import_files_to_batch_and_free(GSList *files, ui_state *ui) +static gboolean import_files_to_batch(ui_with_fnames *ui_wf) +{ + ui_state *ui = ui_wf->ui; + char **splt_filenames = ui_wf->filenames; + + gint i = 0; + for (i = 0;i < ui_wf->num_of_filenames;i++) + { + if (!splt_filenames[i]) + { + continue; + } + + multiple_files_add_filename(splt_filenames[i], ui); + + free(splt_filenames[i]); + splt_filenames[i] = NULL; + } + + free(splt_filenames); + splt_filenames = NULL; + + g_free(ui_wf); + + return FALSE; +} + +static gboolean import_files_to_batch_end(ui_state *ui) +{ + if (ui->infos->multiple_files_tree_number > 0) + { + gtk_widget_set_sensitive(ui->gui->multiple_files_remove_all_files_button, TRUE); + } + + set_process_in_progress_and_wait_safe(FALSE, ui); + + return FALSE; +} + +static gpointer import_files_to_batch_thread(ui_with_list *ui_wl) { - GSList *current_file = files; + ui_state *ui = ui_wl->ui; + + set_process_in_progress_and_wait_safe(TRUE, ui); + + GSList *current_file = ui_wl->list; while (current_file) { gchar *filename = current_file->data; @@ -167,22 +230,12 @@ if (splt_filenames) { - gint i = 0; - for (i = 0;i < num_of_files_found;i++) - { - if (!splt_filenames[i]) - { - continue; - } - - multiple_files_add_filename(splt_filenames[i], ui); - - free(splt_filenames[i]); - splt_filenames[i] = NULL; - } + ui_with_fnames *ui_wf = g_malloc0(sizeof(ui_with_fnames)); + ui_wf->ui = ui; + ui_wf->filenames = splt_filenames; + ui_wf->num_of_filenames = num_of_files_found; - free(splt_filenames); - splt_filenames = NULL; + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)import_files_to_batch, ui_wf, NULL); } g_free(filename); @@ -191,12 +244,23 @@ current_file = g_slist_next(current_file); } - g_slist_free(files); + g_slist_free(ui_wl->list); - if (ui->infos->multiple_files_tree_number > 0) - { - gtk_widget_set_sensitive(ui->gui->multiple_files_remove_all_files_button, TRUE); - } + g_free(ui_wl); + + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)import_files_to_batch_end, ui, NULL); + + return NULL; +} + +void import_files_to_batch_and_free(GSList *files, ui_state *ui) +{ + ui_with_list *ui_wl = g_malloc0(sizeof(ui_with_list)); + ui_wl->ui = ui; + ui_wl->list = files; + + create_thread_and_unref((GThreadFunc)import_files_to_batch_thread, + (gpointer) ui_wl, ui, "import_to_batch"); } //! Set the file chooser filters to "splitpoint file" @@ -204,7 +268,7 @@ { GtkFileFilter *all_filter = gtk_file_filter_new(); gtk_file_filter_set_name(GTK_FILE_FILTER(all_filter), - _("CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt)")); + _("CDDB (*.cddb), CUE (*.cue), Audacity labels (*.txt), internal sheet (*.flac), chapters (*.mp3)")); GList *filters = NULL; @@ -214,6 +278,10 @@ &filters, all_filter); build_import_filter(chooser, _("Audacity labels files (*.txt)"), "*.txt", "*.TXT", &filters, all_filter); + build_import_filter(chooser, _("FLAC internal sheet (*.flac)"), "*.flac", "*.FLAC", + &filters, all_filter); + build_import_filter(chooser, _("ID3v2 chapters (*.mp3)"), "*.mp3", "*.MP3", + &filters, all_filter); build_import_filter(chooser, _("All files"), "*", NULL, &filters, NULL); gtk_file_chooser_add_filter(chooser, all_filter); @@ -277,6 +345,7 @@ set_process_in_progress_and_wait_safe(TRUE, ui); gchar *filename = ui_fname->fname; + if (ui_fname->output_format) { g_free(ui_fname->output_format); } g_free(ui_fname); gint err = mp3splt_import(ui->mp3splt_state, AUDACITY_LABELS_IMPORT, filename); @@ -286,7 +355,51 @@ ui_err->ui = ui; ui_err->err = err; - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, (GSourceFunc)add_audacity_labels_splitpoints_end, + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)add_audacity_labels_splitpoints_end, + ui_err, NULL); + + return NULL; +} + +static gboolean add_plugin_internal_cue_splitpoints_end(ui_with_err *ui_err) +{ + ui_state *ui = ui_err->ui; + gint err = ui_err->err; + + if (err >= 0) + { + update_splitpoints_from_mp3splt_state(ui); + } + + print_status_bar_confirmation(err, ui); + + set_process_in_progress_and_wait_safe(FALSE, ui_err->ui); + + g_free(ui_err); + + return FALSE; +} + +static gpointer add_plugin_internal_cue_splitpoints(ui_with_fname *ui_fname) +{ + ui_state *ui = ui_fname->ui; + + set_process_in_progress_and_wait_safe(TRUE, ui); + + update_output_options(ui, ui_fname->is_checked_output_radio_box, ui_fname->output_format); + + gchar *filename = ui_fname->fname; + if (ui_fname->output_format) { g_free(ui_fname->output_format); } + g_free(ui_fname); + + gint err = mp3splt_import(ui->mp3splt_state, PLUGIN_INTERNAL_IMPORT, filename); + g_free(filename); + + ui_with_err *ui_err = g_malloc0(sizeof(ui_with_err)); + ui_err->ui = ui; + ui_err->err = err; + + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)add_plugin_internal_cue_splitpoints_end, ui_err, NULL); return NULL; @@ -318,13 +431,12 @@ set_process_in_progress_and_wait_safe(TRUE, ui); + update_output_options(ui, ui_fname->is_checked_output_radio_box, ui_fname->output_format); + gchar *filename = ui_fname->fname; + if (ui_fname->output_format) { g_free(ui_fname->output_format); } g_free(ui_fname); - enter_threads(); - update_output_options(ui); - exit_threads(); - gint err = mp3splt_import(ui->mp3splt_state, CDDB_IMPORT, filename); g_free(filename); @@ -332,7 +444,7 @@ ui_err->ui = ui; ui_err->err = err; - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, (GSourceFunc)add_cddb_splitpoints_end, + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)add_cddb_splitpoints_end, ui_err, NULL); return NULL; @@ -344,7 +456,23 @@ if (!ui->importing_cue_from_configuration_directory) { - splt_point *splitpoint = mp3splt_point_new(600000 - 1, NULL); + long max_point = 0; + + splt_code err = SPLT_OK; + splt_points *points = mp3splt_get_splitpoints(ui->mp3splt_state, &err); + print_status_bar_confirmation(err, ui); + if (points != NULL) + { + mp3splt_points_init_iterator(points); + const splt_point *point = NULL; + while ((point = mp3splt_points_next(points))) + { + long point_value = mp3splt_point_get_value(point); + if (point_value > max_point) { max_point = point_value; } + } + } + + splt_point *splitpoint = mp3splt_point_new(max_point + (100 * 60 * 100), NULL); mp3splt_point_set_name(splitpoint, _("--- last cue splitpoint ---")); mp3splt_append_splitpoint(ui->mp3splt_state, splitpoint); } @@ -359,10 +487,14 @@ } print_status_bar_confirmation(ui_err->err, ui); + mp3splt_set_int_option(ui->mp3splt_state, + SPLT_OPT_CUE_SET_SPLITPOINT_NAMES_FROM_REM_NAME, SPLT_FALSE); + //The cue file has provided libmp3splt with a input filename. //But since we use the filename from the gui instead we need to set //the value the gui uses, too, which we do in the next line. const gchar *filename_to_split = mp3splt_get_filename_to_split(ui->mp3splt_state); + if (file_exists(filename_to_split)) { file_chooser_ok_event(filename_to_split, ui); @@ -370,9 +502,6 @@ set_process_in_progress_and_wait_safe(FALSE, ui_err->ui); - mp3splt_set_int_option(ui->mp3splt_state, - SPLT_OPT_CUE_SET_SPLITPOINT_NAMES_FROM_REM_NAME, SPLT_FALSE); - g_free(ui_err); return FALSE; @@ -385,13 +514,12 @@ set_process_in_progress_and_wait_safe(TRUE, ui); + update_output_options(ui, ui_fname->is_checked_output_radio_box, ui_fname->output_format); + gchar *filename = ui_fname->fname; + if (ui_fname->output_format) { g_free(ui_fname->output_format); } g_free(ui_fname); - enter_threads(); - update_output_options(ui); - exit_threads(); - mp3splt_set_filename_to_split(ui->mp3splt_state, NULL); gint err = mp3splt_import(ui->mp3splt_state, CUE_IMPORT, filename); @@ -401,7 +529,7 @@ ui_err->ui = ui; ui_err->err = err; - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, (GSourceFunc)add_cue_splitpoints_end, + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)add_cue_splitpoints_end, ui_err, NULL); return NULL; diff -Nru mp3splt-gtk-0.9/src/import.h mp3splt-gtk-0.9.2/src/import.h --- mp3splt-gtk-0.9/src/import.h 2013-01-10 20:58:55.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/import.h 2014-03-22 23:57:39.000000000 +0000 @@ -35,7 +35,7 @@ #include "all_includes.h" void import_event(GtkWidget *widget, ui_state *ui); -void import_file(gchar *filename, ui_state *ui); +void import_file(gchar *filename, ui_state *ui, gboolean force_import_cue); void import_cue_file_from_the_configuration_directory(ui_state *ui); void import_files_to_batch_and_free(GSList *files, ui_state *ui); diff -Nru mp3splt-gtk-0.9/src/libmp3splt_manager.c mp3splt-gtk-0.9.2/src/libmp3splt_manager.c --- mp3splt-gtk-0.9/src/libmp3splt_manager.c 2013-02-08 09:25:53.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/libmp3splt_manager.c 2014-05-10 14:48:56.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -81,14 +81,6 @@ gtk_widget_set_sensitive(ui->gui->queue_files_button, TRUE); gtk_widget_set_sensitive(ui->gui->remove_all_files_button, TRUE); -#ifdef __WIN32__ - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - gdk_flush(); -#endif - if (filename) { g_free(filename); @@ -111,7 +103,7 @@ ui_fname->fname = strdup(filename); } - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)lmanager_put_split_filename_idle, ui_fname, NULL); } @@ -135,14 +127,6 @@ put_status_message_with_type(mess, mess_type, ui); -#ifdef __WIN32__ - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - gdk_flush(); -#endif - g_free(mess); mess = NULL; } @@ -166,7 +150,7 @@ } ui_message->mess_type = mess_type; - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)lmanager_put_message_from_library_idle, ui_message, NULL); } @@ -216,14 +200,6 @@ gtk_progress_bar_set_fraction(ui->gui->percent_progress_bar, ui_p_bar->percent_progress); gtk_progress_bar_set_text(ui->gui->percent_progress_bar, printed_value); -#ifdef __WIN32__ - while (gtk_events_pending()) - { - gtk_main_iteration(); - } - gdk_flush(); -#endif - if (ui_p_bar->filename_shorted) { g_free(ui_p_bar->filename_shorted); @@ -249,7 +225,7 @@ ui_p_bar->silence_db_level = mp3splt_progress_get_silence_db_level(p_bar); ui_p_bar->percent_progress = mp3splt_progress_get_percent_progress(p_bar); - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)lmanager_change_window_progress_bar_idle, ui_p_bar, NULL); } diff -Nru mp3splt-gtk-0.9/src/libmp3splt_manager.h mp3splt-gtk-0.9.2/src/libmp3splt_manager.h --- mp3splt-gtk-0.9/src/libmp3splt_manager.h 2013-02-08 09:25:59.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/libmp3splt_manager.h 2014-05-10 14:49:01.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/main_window.c mp3splt-gtk-0.9.2/src/main_window.c --- mp3splt-gtk-0.9/src/main_window.c 2013-04-07 22:33:22.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/main_window.c 2014-05-10 14:48:56.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -48,7 +48,6 @@ return; } - lock_mutex(&ui->variables_mutex); if (ui->gui->input_filename != NULL) { g_string_free(ui->gui->input_filename,TRUE); @@ -63,8 +62,6 @@ update_example_output_dir_for_single_file_split(ui); export_cue_file_in_configuration_directory(ui); - - unlock_mutex(&ui->variables_mutex); } /*! Get the name of the input file @@ -88,7 +85,7 @@ ui_set_main_win_position(ui, event->configure.x, event->configure.y); ui_set_main_win_size(ui, event->configure.width, event->configure.height); - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); refresh_preview_drawing_areas(ui->gui); clear_previous_distances(ui); @@ -96,9 +93,9 @@ return FALSE; } -static void initialize_window(ui_state *ui) +static void initialize_window(GApplication *app, ui_state *ui) { - GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + GtkWidget *window = gtk_application_window_new(GTK_APPLICATION(app)); ui->gui->window = window; g_signal_connect(G_OBJECT(window), "configure-event", G_CALLBACK(configure_window_callback), ui); @@ -184,8 +181,10 @@ #endif } -static void about_window(GtkWidget *widget, ui_state *ui) +static void about_window(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; + GtkWidget *dialog = gtk_about_dialog_new(); GString *imagefile = g_string_new(""); @@ -197,7 +196,7 @@ gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(dialog), (gchar *)PACKAGE_NAME); gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), VERSION); gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog), - PACKAGE_NAME" : Copyright © 2005-2013 Alexandru" + PACKAGE_NAME" : Copyright © 2005-2014 Alexandru" " Munteanu \n mp3splt : Copyright © 2002-2005 Matteo Trotta"); gchar b3[100] = { '\0' }; @@ -279,7 +278,7 @@ { gui_state *gui = ui->gui; - if (mess_type == SPLT_MESSAGE_INFO) + if (mess_type == SPLT_MESSAGE_INFO || mess_type == SPLT_MESSAGE_WARNING) { guint status_id = gtk_statusbar_get_context_id(gui->status_bar, "mess"); gtk_statusbar_pop(gui->status_bar, status_id); @@ -311,62 +310,6 @@ put_status_message(_(" info: stopping the split process.. please wait"), ui); } -static void show_preferences_window(GtkWidget *widget, ui_state *ui) -{ - if (ui->gui->preferences_window == NULL) - { - ui->gui->preferences_window = - wh_create_window_with_close_button(_("Preferences"), 600, 450, GTK_WIN_POS_CENTER, - GTK_WINDOW(ui->gui->window), ui->gui->preferences_widget, NULL); - } - - wh_show_window(ui->gui->preferences_window); -} - -static void show_tracktype_window(GtkWidget *widget, ui_state *ui) -{ - if (ui->gui->freedb_window == NULL) - { - ui->gui->freedb_window = - wh_create_window_with_close_button(_("TrackType"), 500, 300, GTK_WIN_POS_CENTER, - GTK_WINDOW(ui->gui->window), - ui->gui->freedb_widget, - ui->gui->freedb_add_button, NULL); - } - - wh_show_window(ui->gui->freedb_window); - hide_freedb_spinner(ui->gui); -} - -static void show_split_files_window(GtkWidget *widget, ui_state *ui) -{ - if (ui->gui->split_files_window == NULL) - { - ui->gui->split_files_window = - wh_create_window_with_close_button(_("Split files"), 500, 300, GTK_WIN_POS_CENTER, - GTK_WINDOW(ui->gui->window), - ui->gui->split_files_widget, - ui->gui->queue_files_button, ui->gui->remove_file_button, - ui->gui->remove_all_files_button, NULL); - } - - wh_show_window(ui->gui->split_files_window); -} - -static void show_splitpoints_window(GtkWidget *widget, ui_state *ui) -{ - if (ui->gui->splitpoints_window == NULL) - { - ui->gui->splitpoints_window = - wh_create_window_with_close_button(_("Splitpoints"), 500, 300, GTK_WIN_POS_CENTER, - GTK_WINDOW(ui->gui->window), - ui->gui->splitpoints_widget, - ui->gui->scan_trim_silence_button, ui->gui->scan_silence_button, NULL); - } - - wh_show_window(ui->gui->splitpoints_window); -} - void set_is_splitting_safe(gboolean value, ui_state *ui) { lock_mutex(&ui->variables_mutex); @@ -443,101 +386,113 @@ } } -void set_split_file_mode_safe(gint file_mode, ui_state *ui) +void set_split_file_mode(gint file_mode, ui_state *ui) { - lock_mutex(&ui->variables_mutex); ui->infos->split_file_mode = file_mode; - unlock_mutex(&ui->variables_mutex); } -gint get_split_file_mode_safe(ui_state *ui) +gint get_split_file_mode(ui_state *ui) { - lock_mutex(&ui->variables_mutex); - gint file_mode = ui->infos->split_file_mode; - unlock_mutex(&ui->variables_mutex); - - return file_mode; + return ui->infos->split_file_mode; } static void single_file_mode_split_button_event(GtkWidget *widget, ui_state *ui) { - set_split_file_mode_safe(FILE_MODE_SINGLE, ui); + set_split_file_mode(FILE_MODE_SINGLE, ui); split_button_event(widget, ui); } -//!event for the "messages history" button -static void show_messages_history_window(GtkWidget *widget, ui_state *ui) +static void show_messages_history_window(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; wh_show_window(ui->gui->mess_history_window); } #ifndef NO_GNOME -static void ShowHelp(GtkWidget *widget, ui_state *ui) +static void ShowHelp(GSimpleAction *action, GVariant *parameter, gpointer data) { GError* gerror = NULL; gtk_show_uri(gdk_screen_get_default(), "ghelp:mp3splt-gtk", gtk_get_current_event_time(), &gerror); } #endif -static gchar *my_dgettext(const gchar *key, const gchar *domain) -{ - return dgettext("mp3splt-gtk", key); -} - -static void player_pause_action(GtkWidget *widget, ui_state *ui) +static void player_pause_action(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; pause_event(ui->gui->pause_button, ui); } -static void player_seek_forward_action(GtkWidget *widget, ui_state *ui) +static void player_seek_forward_action(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; + gfloat total_time = ui->infos->total_time; - gfloat new_time = ui->infos->current_time * 10 + 2./100. * total_time * 10; + gfloat new_time = ui->infos->current_time * 10 + + (ui->infos->seek_jump_value != 0 ? ui->infos->seek_jump_value : + 2./100. * total_time * 10); if (new_time > total_time * 10) { new_time = total_time * 10; } player_seek(new_time, ui); } -static void player_seek_backward_action(GtkWidget *widget, ui_state *ui) +static void player_seek_backward_action(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; + gfloat total_time = ui->infos->total_time; - gfloat new_time = ui->infos->current_time * 10 - 2./100. * total_time * 10; + gfloat new_time = ui->infos->current_time * 10 - + (ui->infos->seek_jump_value != 0 ? ui->infos->seek_jump_value : + 2./100. * total_time * 10); if (new_time <= 0) { new_time = 0; } player_seek(new_time, ui); } -static void player_big_seek_forward_action(GtkWidget *widget, ui_state *ui) +static void player_big_seek_forward_action(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; + gfloat total_time = ui->infos->total_time; - gfloat new_time = ui->infos->current_time * 10 + 15./100. * total_time * 10; + gfloat new_time = ui->infos->current_time * 10 + + (ui->infos->big_seek_jump_value != 0 ? ui->infos->big_seek_jump_value : + 15./100. * total_time * 10); if (new_time > total_time * 10) { new_time = total_time * 10; } player_seek(new_time, ui); } -static void player_big_seek_backward_action(GtkWidget *widget, ui_state *ui) +static void player_big_seek_backward_action(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; + gfloat total_time = ui->infos->total_time; - gfloat new_time = ui->infos->current_time * 10 - 15./100. * total_time * 10; + gfloat new_time = ui->infos->current_time * 10 - + (ui->infos->big_seek_jump_value != 0 ? ui->infos->big_seek_jump_value : + 15./100. * total_time * 10); if (new_time <= 0) { new_time = 0; } player_seek(new_time, ui); } -static void player_small_seek_forward_action(GtkWidget *widget, ui_state *ui) +static void player_small_seek_forward_action(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; + gfloat total_time = ui->infos->total_time; - gfloat new_time = ui->infos->current_time * 10 + 100 * 3 * 10; + gfloat new_time = ui->infos->current_time * 10 + ui->infos->small_seek_jump_value; if (new_time > total_time * 10) { new_time = total_time * 10; } player_seek(new_time, ui); } -static void player_small_seek_backward_action(GtkWidget *widget, ui_state *ui) +static void player_small_seek_backward_action(GSimpleAction *action, GVariant *parameter, gpointer data) { - gfloat new_time = ui->infos->current_time * 10 - 100 * 3 * 10; + ui_state *ui = (ui_state *) data; + + gfloat new_time = ui->infos->current_time * 10 - ui->infos->small_seek_jump_value; if (new_time <= 0) { new_time = 0; } player_seek(new_time, ui); } -static void player_seek_to_next_splitpoint_action(GtkWidget *widget, ui_state *ui) +static void player_seek_to_next_splitpoint_action(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; + gint time_left = -1; gint time_right = -1; get_current_splitpoints_time_left_right(&time_left, &time_right, NULL, ui); @@ -548,8 +503,10 @@ } } -static void player_seek_to_previous_splitpoint_action(GtkWidget *widget, ui_state *ui) +static void player_seek_to_previous_splitpoint_action(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; + gint time_left = -1; gint time_right = -1; get_current_splitpoints_time_left_right(&time_left, &time_right, NULL, ui); @@ -607,8 +564,10 @@ return right_index_point; } -static void delete_closest_splitpoint(GtkWidget *widget, ui_state *ui) +static void delete_closest_splitpoint(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; + int closest_splitpoint_index = find_closest_splitpoint(ui); if (closest_splitpoint_index == -1) { @@ -618,8 +577,10 @@ remove_splitpoint(closest_splitpoint_index, TRUE, ui); } -static void player_seek_before_closest_splitpoint(GtkWidget *widget, ui_state *ui) +static void player_seek_before_closest_splitpoint(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; + int closest_splitpoint_index = find_closest_splitpoint(ui); if (closest_splitpoint_index == -1) { return; } @@ -647,42 +608,61 @@ ui->status->quick_preview = TRUE; } -static void zoom_in(GtkWidget *widget, ui_state *ui) +static void player_seek_closest_splitpoint_no_pause(GSimpleAction *action, GVariant *parameter, gpointer data) { - gdouble fraction = 40./100. * ui->infos->zoom_coeff; - ui->infos->zoom_coeff += fraction; - adjust_zoom_coeff(ui->infos); - refresh_drawing_area(ui->gui); + ui_state *ui = (ui_state *) data; + + int closest_splitpoint_index = find_closest_splitpoint(ui); + if (closest_splitpoint_index == -1) { return; } + + gint current_point_hundr_secs = get_splitpoint_time(closest_splitpoint_index, ui); + player_seek(current_point_hundr_secs * 10, ui); + + set_preview_start_position_safe(current_point_hundr_secs, ui); + ui->status->preview_start_splitpoint = closest_splitpoint_index; + + if (closest_splitpoint_index < (ui->infos->splitnumber - 1)) + { + set_quick_preview_end_splitpoint_safe(closest_splitpoint_index + 1, ui); + } + else + { + set_quick_preview_end_splitpoint_safe(-1, ui); + } + + if (player_is_paused(ui)) + { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ui->gui->pause_button), FALSE); + } + + ui->status->quick_preview = TRUE; } -static void zoom_out(GtkWidget *widget, ui_state *ui) +static void player_seek_closest_splitpoint(GSimpleAction *action, GVariant *parameter, gpointer data) { + ui_state *ui = (ui_state *) data; + player_seek_closest_splitpoint_no_pause(NULL, NULL, ui); + ui->status->stop_preview_right_after_start = TRUE; +} + +static void zoom_in(GSimpleAction *action, GVariant *parameter, gpointer data) +{ + ui_state *ui = (ui_state *) data; + gdouble fraction = 40./100. * ui->infos->zoom_coeff; - ui->infos->zoom_coeff -= fraction; + ui->infos->zoom_coeff += fraction; adjust_zoom_coeff(ui->infos); - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); } -static gboolean window_key_press_event(GtkWidget *window, GdkEventKey *event, ui_state *ui) +static void zoom_out(GSimpleAction *action, GVariant *parameter, gpointer data) { - if (event->type != GDK_KEY_PRESS) { return FALSE; } - - if (event->state != 0) - { - return FALSE; - } + ui_state *ui = (ui_state *) data; - switch (event->keyval) - { - case GDK_Left: - player_seek_backward_action(NULL, ui); - return TRUE; - case GDK_Right: - player_seek_forward_action(NULL, ui); - return TRUE; - default: - return FALSE; - } + gdouble fraction = 40./100. * ui->infos->zoom_coeff; + ui->infos->zoom_coeff -= fraction; + adjust_zoom_coeff(ui->infos); + refresh_drawing_area(ui->gui, ui->infos); } void add_filters_to_file_chooser(GtkWidget *file_chooser) @@ -716,210 +696,6 @@ gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(file_chooser), our_filter); } -/*! \brief Events for browse button - -Also used for the cddb and cue browses. -*/ -static void open_file_button_event(GtkWidget *widget, ui_state *ui) -{ - GtkWidget *file_chooser = gtk_file_chooser_dialog_new(_("Choose File"), NULL, - GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, - GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, - GTK_RESPONSE_ACCEPT, NULL); - - add_filters_to_file_chooser(file_chooser); - wh_set_browser_directory_handler(ui, file_chooser); - - if (gtk_dialog_run(GTK_DIALOG(file_chooser)) == GTK_RESPONSE_ACCEPT) - { - gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(file_chooser)); - file_chooser_ok_event(filename, ui); - if (filename) - { - g_free(filename); - filename = NULL; - } - } - - gtk_widget_destroy(file_chooser); - remove_status_message(ui->gui); -} - -//!creates the menu bar -static GtkWidget *create_menu_bar(ui_state *ui) -{ - static const GtkActionEntry entries[] = { - //name, stock id, label, accelerator, tooltip, callback - { "FileMenu", NULL, N_("_File"), NULL, NULL, NULL }, - { "ViewMenu", NULL, N_("_View"), NULL, NULL, NULL }, - { "PlayerMenu", NULL, N_("_Player"), NULL, NULL, NULL }, - { "HelpMenu", NULL, N_("_Help"), NULL, NULL, NULL }, - - { "Open", GTK_STOCK_OPEN, N_("_Open single file..."), "<Ctrl>O", N_("Open"), - G_CALLBACK(open_file_button_event) }, - - { "AddFilesToBatch", GTK_STOCK_DIRECTORY, - N_("_Add files or directories to batch ..."), "<Ctrl>D", - N_("Add files or directories to batch"), - G_CALLBACK(multiple_files_add_button_event) }, - - { "Import", GTK_STOCK_FILE, N_("_Import splitpoints from file..."), "<Ctrl>I", - N_("Import splitpoints from file..."), G_CALLBACK(import_event) }, - - { "ImportFromTrackType", GTK_STOCK_FIND, N_("Import splitpoints from _TrackType.org..."), "<Ctrl>T", - N_("Import splitpoints from TrackType.org..."), - G_CALLBACK(show_tracktype_window) }, - - { "Export", GTK_STOCK_SAVE_AS, N_("_Export splitpoints..."), "<Ctrl>E", - N_("Export splitpoints"), G_CALLBACK(export_cue_file_event) }, - - { "Preferences", GTK_STOCK_PREFERENCES, N_("_Preferences"), "<Ctrl>P", N_("Preferences"), - G_CALLBACK(show_preferences_window) }, - - { "SplitFiles", NULL, N_("Split _files"), "<Ctrl>F", N_("Split files"), - G_CALLBACK(show_split_files_window) }, - - { "Splitpoints", GTK_STOCK_EDIT, N_("_Splitpoints"), "<Ctrl>L", N_("Splitpoints"), - G_CALLBACK(show_splitpoints_window) }, - - { "Split", GTK_STOCK_APPLY, N_("_Split !"), "<Ctrl>S", N_("Split !"), - G_CALLBACK(single_file_mode_split_button_event) }, - - { "BatchSplit", GTK_STOCK_EXECUTE, N_("_Batch split !"), "<Ctrl>B", N_("Batch split !"), - G_CALLBACK(batch_file_mode_split_button_event) }, - - { "Quit", GTK_STOCK_QUIT, N_("_Quit"), "<Ctrl>Q", N_("Quit"), - G_CALLBACK(exit_application_bis) }, - -#ifndef NO_GNOME - { "Contents", GTK_STOCK_HELP, N_("_Contents"), "F1", N_("Contents"), - G_CALLBACK(ShowHelp)}, -#endif - - { "Messages history", GTK_STOCK_INFO, N_("Messages _history"), "<Ctrl>H", N_("Messages history"), - G_CALLBACK(show_messages_history_window) }, - - { "About", GTK_STOCK_ABOUT, N_("_About"), "<Ctrl>A", N_("About"), - G_CALLBACK(about_window)}, - - //player key bindings - { "Player_pause", NULL, N_("P_ause / Play"), "space", N_("Pause/Play"), - G_CALLBACK(player_pause_action)}, - - { "Player_forward", GTK_STOCK_MEDIA_FORWARD, N_("Seek _forward"), "Right", N_("Seek forward"), - G_CALLBACK(player_seek_forward_action)}, - { "Player_backward", GTK_STOCK_MEDIA_REWIND, N_("Seek _backward"), "Left", N_("Seek backward"), - G_CALLBACK(player_seek_backward_action)}, - - { "Player_small_forward", NULL, N_("Small seek f_orward"), "<Alt>Right", N_("Small seek forward"), - G_CALLBACK(player_small_seek_forward_action)}, - { "Player_small_backward", NULL, N_("Small seek back_ward"), "<Alt>Left", N_("Small seek backward"), - G_CALLBACK(player_small_seek_backward_action)}, - - { "Player_big_forward", NULL, N_("Big seek fo_rward"), "<Shift>Right", N_("Big seek forward"), - G_CALLBACK(player_big_seek_forward_action)}, - { "Player_big_backward", NULL, N_("Big seek bac_kward"), "<Shift>Left", N_("Big seek backward"), - G_CALLBACK(player_big_seek_backward_action)}, - - { "Player_next_splitpoint", GTK_STOCK_MEDIA_NEXT, N_("Seek to _next splitpoint"), "<Ctrl>Right", - N_("Seek to next splitpoint"), G_CALLBACK(player_seek_to_next_splitpoint_action)}, - { "Player_previous_splitpoint", GTK_STOCK_MEDIA_PREVIOUS, N_("Seek to _previous splitpoint"), "<Ctrl>Left", - N_("Seek to previous splitpoint"), G_CALLBACK(player_seek_to_previous_splitpoint_action)}, - - { "Player_before_closest_splitpoint", GTK_STOCK_JUMP_TO, - N_("_Quick preview before closest splitpoint"), "<Ctrl>Down", N_("Quick preview before closest splitpoint"), - G_CALLBACK(player_seek_before_closest_splitpoint)}, - - { "Add_splitpoint", GTK_STOCK_ADD, N_("Add _splitpoint"), "s", - N_("Add splitpoint"), G_CALLBACK(add_splitpoint_from_player)}, - - { "Delete_closest_splitpoint", GTK_STOCK_REMOVE, N_("_Delete closest splitpoint"), "d", - N_("Delete closest splitpoint"), G_CALLBACK(delete_closest_splitpoint)}, - - { "Zoom_in", GTK_STOCK_ZOOM_IN, N_("Zoom _in"), "<Ctrl>plus", N_("Zoom in"), G_CALLBACK(zoom_in)}, - { "Zoom_out", GTK_STOCK_ZOOM_OUT, N_("Zoom _out"), "<Ctrl>minus", N_("Zoom out"), G_CALLBACK(zoom_out)}, - }; - - static const gchar *ui_info = - "<ui>" - " <menubar name='MenuBar'>" - " <menu action='FileMenu'>" - " <menuitem action='Open'/>" - " <menuitem action='AddFilesToBatch'/>" - " <separator/>" - " <menuitem action='Import'/>" - " <menuitem action='ImportFromTrackType'/>" - " <menuitem action='Export'/>" - " <separator/>" - " <menuitem action='Preferences'/>" - " <separator/>" - " <menuitem action='Split'/>" - " <menuitem action='BatchSplit'/>" - " <separator/>" - " <menuitem action='Quit'/>" - " </menu>" - " <menu action='ViewMenu'>" - " <menuitem action='Splitpoints'/>" - " <menuitem action='SplitFiles'/>" - " </menu>" - " <menu action='PlayerMenu'>" - " <menuitem action='Player_pause'/>" - " <separator/>" - " <menuitem action='Player_forward'/>" - " <menuitem action='Player_backward'/>" - " <menuitem action='Player_small_forward'/>" - " <menuitem action='Player_small_backward'/>" - " <menuitem action='Player_big_forward'/>" - " <menuitem action='Player_big_backward'/>" - " <menuitem action='Player_next_splitpoint'/>" - " <menuitem action='Player_previous_splitpoint'/>" - " <menuitem action='Player_before_closest_splitpoint'/>" - " <separator/>" - " <menuitem action='Add_splitpoint'/>" - " <menuitem action='Delete_closest_splitpoint'/>" - " <separator/>" - " <menuitem action='Zoom_in'/>" - " <menuitem action='Zoom_out'/>" - " </menu>" - " <menu action='HelpMenu'>" -#ifndef NO_GNOME - " <menuitem action='Contents'/>" - " <separator/>" -#endif - " <menuitem action='Messages history'/>" - " <separator/>" - " <menuitem action='About'/>" - " </menu>" - " </menubar>" - "</ui>"; - - GtkActionGroup *action_group = gtk_action_group_new("Actions"); - ui->gui->action_group = action_group; - - gtk_action_group_set_translation_domain(action_group, "mp3splt-gtk"); - gtk_action_group_set_translate_func(action_group, - (GtkTranslateFunc)my_dgettext, NULL, NULL); - - gtk_action_group_add_actions(action_group, entries, G_N_ELEMENTS(entries), ui); - GtkUIManager *uim = gtk_ui_manager_new(); - gtk_ui_manager_insert_action_group(uim, action_group, 0); - - g_signal_connect(G_OBJECT(ui->gui->window), "key_press_event", - G_CALLBACK(window_key_press_event), ui); - - gtk_window_add_accel_group(GTK_WINDOW(ui->gui->window), gtk_ui_manager_get_accel_group(uim)); - gtk_ui_manager_add_ui_from_string(uim, ui_info, -1, NULL); - - GtkWidget *menu_box = wh_hbox_new(); - gtk_box_pack_start(GTK_BOX(menu_box), gtk_ui_manager_get_widget(uim, "/MenuBar"), FALSE, FALSE, 0); - - player_key_actions_set_sensitivity(FALSE, ui->gui); - - return menu_box; -} - static void file_selection_changed(GtkFileChooser *open_file_chooser, ui_state *ui) { gchar *filename = gtk_file_chooser_get_filename(open_file_chooser); @@ -995,7 +771,7 @@ gtk_box_pack_start(GTK_BOX(top_hbox), create_choose_file_frame(ui), TRUE, TRUE, 0); //single mode split button - GtkWidget *split_button = wh_create_cool_button(GTK_STOCK_APPLY,_("Split !"), FALSE); + GtkWidget *split_button = wh_create_cool_button("system-run",_("Split"), FALSE); g_signal_connect(G_OBJECT(split_button), "clicked", G_CALLBACK(single_file_mode_split_button_event), ui); gtk_widget_set_tooltip_text(split_button, _("Split the current file")); @@ -1007,7 +783,7 @@ ui->gui->playlist_box = create_player_playlist_frame(ui); gtk_box_pack_start(GTK_BOX(player_vbox), ui->gui->playlist_box, TRUE, TRUE, 0); - GtkWidget *notebook_label = wh_create_cool_label(GTK_STOCK_APPLY, _("Manual single file split")); + GtkWidget *notebook_label = wh_create_cool_label(NULL, _("Manual single file split")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), player_vbox, notebook_label); /* splitpoints page */ @@ -1025,7 +801,7 @@ GtkWidget *frame = create_special_split_page(ui); gtk_box_pack_start(GTK_BOX(special_split_vbox), frame, TRUE, TRUE, 0); - notebook_label = wh_create_cool_label(GTK_STOCK_EXECUTE, _("Batch & automatic split")); + notebook_label = wh_create_cool_label(NULL, _("Batch & automatic split")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), special_split_vbox, notebook_label); /* preferences widget */ @@ -1037,15 +813,13 @@ gtk_progress_bar_set_fraction(percent_progress_bar, 0.0); gtk_progress_bar_set_text(percent_progress_bar, ""); -#if GTK_MAJOR_VERSION >= 3 gtk_progress_bar_set_show_text(percent_progress_bar, TRUE); -#endif GtkWidget *hbox = wh_hbox_new(); gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(percent_progress_bar), TRUE, TRUE, 0); //stop button - GtkWidget *cancel_button = wh_create_cool_button(GTK_STOCK_STOP, _("S_top"), FALSE); + GtkWidget *cancel_button = wh_create_cool_button("process-stop", _("S_top"), FALSE); ui->gui->cancel_button = cancel_button; g_signal_connect(G_OBJECT(cancel_button), "clicked", G_CALLBACK(cancel_button_event), ui); gtk_box_pack_start(GTK_BOX(hbox), cancel_button, FALSE, TRUE, 3); @@ -1084,14 +858,285 @@ gtk_window_resize(GTK_WINDOW(ui->gui->window), main_win->width, main_win->height); } -void create_application(ui_state *ui) +static void application_startup(GApplication *app, ui_state *ui) +{ + GtkBuilder *builder = gtk_builder_new(); + + gtk_builder_add_from_string(builder, + "<?xml version=\"1.0\" ?>" + "<interface>" + + " <menu id=\"appmenu\">" + " <section>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_Preferences</attribute>" + " <attribute name=\"action\">app.preferences</attribute>" + " <attribute name=\"accel\"><Primary>p</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_Quit</attribute>" + " <attribute name=\"action\">app.quit</attribute>" + " <attribute name=\"accel\"><Primary>q</attribute>" + " </item>" + " </section>" + " </menu>" + + " <menu id=\"menubar\">" + + " <submenu>" + " <attribute name=\"label\" translatable=\"yes\">_File</attribute>" + " <section>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_Open single file...</attribute>" + " <attribute name=\"action\">app.open_single_file</attribute>" + " <attribute name=\"accel\"><Primary>o</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_Add files or directories to batch...</attribute>" + " <attribute name=\"action\">app.add_files_to_batch</attribute>" + " <attribute name=\"accel\"><Primary>d</attribute>" + " </item>" + " </section>" + " <section>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_Import splitpoints from file...</attribute>" + " <attribute name=\"action\">app.import_splitpoints_from_file</attribute>" + " <attribute name=\"accel\"><Primary>i</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_Import splitpoints from _TrackType.org...</attribute>" + " <attribute name=\"action\">app.import_splitpoints_from_tracktype</attribute>" + " <attribute name=\"accel\"><Primary>t</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_Export splitpoints...</attribute>" + " <attribute name=\"action\">app.export_splitpoints</attribute>" + " <attribute name=\"accel\"><Primary>e</attribute>" + " </item>" + " </section>" + " <section>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_Split</attribute>" + " <attribute name=\"action\">app.split</attribute>" + " <attribute name=\"accel\"><Primary>s</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_Batch split</attribute>" + " <attribute name=\"action\">app.batch_split</attribute>" + " <attribute name=\"accel\"><Primary>b</attribute>" + " </item>" + " </section>" + " </submenu>" + + " <submenu>" + " <attribute name=\"label\" translatable=\"yes\">_View</attribute>" + " <section>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_Splitpoints</attribute>" + " <attribute name=\"action\">app.view_splitpoints</attribute>" + " <attribute name=\"accel\"><Primary>l</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Split _files</attribute>" + " <attribute name=\"action\">app.view_split_files</attribute>" + " <attribute name=\"accel\"><Primary>f</attribute>" + " </item>" + " </section>" + " </submenu>" + + " <submenu>" + " <attribute name=\"label\" translatable=\"yes\">_Player</attribute>" + " <section>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">P_ause / Play</attribute>" + " <attribute name=\"action\">app.pause_play</attribute>" + " <attribute name=\"accel\">space</attribute>" + " </item>" + " </section>" + + " <section>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Seek _forward</attribute>" + " <attribute name=\"action\">app.seek_forward</attribute>" + " <attribute name=\"accel\">Right</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Seek _backward</attribute>" + " <attribute name=\"action\">app.seek_backward</attribute>" + " <attribute name=\"accel\">Left</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Small seek f_orward</attribute>" + " <attribute name=\"action\">app.small_seek_forward</attribute>" + " <attribute name=\"accel\"><Alt>Right</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Small seek back_ward</attribute>" + " <attribute name=\"action\">app.small_seek_backward</attribute>" + " <attribute name=\"accel\"><Alt>Left</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Big seek fo_rward</attribute>" + " <attribute name=\"action\">app.big_seek_forward</attribute>" + " <attribute name=\"accel\"><Shift>Right</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Big seek bac_kward</attribute>" + " <attribute name=\"action\">app.big_seek_backward</attribute>" + " <attribute name=\"accel\"><Shift>Left</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Seek to _next splitpoint</attribute>" + " <attribute name=\"action\">app.seek_next_splitpoint</attribute>" + " <attribute name=\"accel\"><Primary>Right</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Seek to _previous splitpoint</attribute>" + " <attribute name=\"action\">app.seek_previous_splitpoint</attribute>" + " <attribute name=\"accel\"><Primary>Left</attribute>" + " </item>" + " </section>" + + " <section>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Preview clos_est splitpoint</attribute>" + " <attribute name=\"action\">app.preview_closest</attribute>" + " <attribute name=\"accel\"><Shift>Up</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Preview _closest splitpoint & pause</attribute>" + " <attribute name=\"action\">app.preview_closest_and_pause</attribute>" + " <attribute name=\"accel\"><Primary>Up</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Preview before c_losest splitpoint</attribute>" + " <attribute name=\"action\">app.preview_before_closest</attribute>" + " <attribute name=\"accel\"><Primary>Down</attribute>" + " </item>" + " </section>" + + " <section>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Add _splitpoint</attribute>" + " <attribute name=\"action\">app.add_splitpoint</attribute>" + " <attribute name=\"accel\">s</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_Delete closest splitpoint</attribute>" + " <attribute name=\"action\">app.delete_closest_splitpoint</attribute>" + " <attribute name=\"accel\">d</attribute>" + " </item>" + " </section>" + + " <section>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Zoom _in</attribute>" + " <attribute name=\"action\">app.zoom_in</attribute>" + " <attribute name=\"accel\"><Primary>plus</attribute>" + " </item>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Zoom _out</attribute>" + " <attribute name=\"action\">app.zoom_out</attribute>" + " <attribute name=\"accel\"><Primary>minus</attribute>" + " </item>" + " </section>" + " </submenu>" + + " <submenu>" + " <attribute name=\"label\" translatable=\"yes\">_Help</attribute>" + " <section>" + " <item>" + " <attribute name=\"label\" translatable=\"yes\">Messages _history</attribute>" + " <attribute name=\"action\">app.messages_history</attribute>" + " <attribute name=\"accel\"><Primary>h</attribute>" + " </item>" +#ifndef NO_GNOME + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_Contents</attribute>" + " <attribute name=\"action\">app.contents</attribute>" + " <attribute name=\"accel\">F1</attribute>" + " </item>" +#endif + " <item>" + " <attribute name=\"label\" translatable=\"yes\">_About</attribute>" + " <attribute name=\"action\">app.about</attribute>" + " <attribute name=\"accel\"><Primary>a</attribute>" + " </item>" + " </section>" + " </submenu>" + + " </menu>" + "</interface>", -1, NULL); + + GMenuModel *appmenu = (GMenuModel *) gtk_builder_get_object(builder, "appmenu"); + gtk_application_set_app_menu(GTK_APPLICATION(app), appmenu); + + GMenuModel *menubar = (GMenuModel *) gtk_builder_get_object (builder, "menubar"); + gtk_application_set_menubar(GTK_APPLICATION(app), menubar); + + g_object_unref(builder); +} + +static void parse_command_line_options(gint argc, gchar * argv[], ui_state *ui) +{ + opterr = 0; + int option; + while ((option = getopt(argc, argv, "d:")) != -1) + { + switch (option) + { + case 'd': + fprintf(stdout, _("Setting the output directory to %s.\n"), optarg); + set_output_directory_and_update_ui((gchar *)optarg, ui); +#ifdef __WIN32__ + mkdir(optarg); +#else + mkdir(optarg, 0777); +#endif + if (!directory_exists(optarg)) + { + ui_fail(ui, "Error: The specified output directory is inaccessible!\n"); + } + break; + case '?': + if (optopt == 'd') + ui_fail(ui, _("Option -%c requires an argument.\n"), optopt); + else if (isprint(optopt)) + ui_fail(ui, _("Unknown option `-%c'.\n"), optopt, NULL); + else + ui_fail(ui, _("Unknown option character `\\x%x'.\n"), optopt); + break; + default: + ui_fail(ui, NULL); + } + } + + if (optind == argc) + { + return; + } + + if (!file_exists(argv[optind])) + { + ui_fail(ui, _("Cannot open input file %s\n"), argv[optind]); + } + +#ifndef __WIN32__ + char *input_filename = realpath(argv[optind], NULL); + import_file(input_filename, ui, FALSE); + free(input_filename); +#else + import_file(argv[optind], ui, FALSE); +#endif +} + +static void application_activate(GApplication *app, ui_state *ui) { - initialize_window(ui); + initialize_window(app, ui); GtkWidget *window_vbox = wh_vbox_new(); gtk_container_add(GTK_CONTAINER(ui->gui->window), window_vbox); - gtk_box_pack_start(GTK_BOX(window_vbox), create_menu_bar(ui), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(window_vbox), create_main_vbox(ui), TRUE, TRUE, 0); ui_load_preferences(ui); @@ -1106,6 +1151,190 @@ } hide_freedb_spinner(ui->gui); + + import_cue_file_from_the_configuration_directory(ui); + + parse_command_line_options(ui->argc, ui->argv, ui); +} + +static void open_file_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data) +{ + ui_state *ui = (ui_state *) data; + + GtkWidget *file_chooser = gtk_file_chooser_dialog_new(_("Choose File"), NULL, + GTK_FILE_CHOOSER_ACTION_OPEN, + _("_Cancel"), + GTK_RESPONSE_CANCEL, + _("_Open"), + GTK_RESPONSE_ACCEPT, NULL); + + add_filters_to_file_chooser(file_chooser); + wh_set_browser_directory_handler(ui, file_chooser); + + if (gtk_dialog_run(GTK_DIALOG(file_chooser)) == GTK_RESPONSE_ACCEPT) + { + gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(file_chooser)); + file_chooser_ok_event(filename, ui); + if (filename) + { + g_free(filename); + filename = NULL; + } + } + + gtk_widget_destroy(file_chooser); + remove_status_message(ui->gui); +} + +static void multiple_files_add_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data) +{ + ui_state *ui = (ui_state *) data; + multiple_files_add_button_event(NULL, ui); +} + +static void import_event_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data) +{ + ui_state *ui = (ui_state *) data; + import_event(NULL, ui); +} + +static void show_tracktype_window_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data) +{ + ui_state *ui = (ui_state *) data; + + if (ui->gui->freedb_window == NULL) + { + ui->gui->freedb_window = + wh_create_window_with_close_button(_("TrackType"), 500, 300, GTK_WIN_POS_CENTER, + GTK_WINDOW(ui->gui->window), + ui->gui->freedb_widget, + ui->gui->freedb_add_button, NULL); + } + + wh_show_window(ui->gui->freedb_window); + hide_freedb_spinner(ui->gui); +} + +static void show_preferences_window_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data) +{ + ui_state *ui = (ui_state *) data; + + if (ui->gui->preferences_window == NULL) + { + ui->gui->preferences_window = + wh_create_window_with_close_button(_("Preferences"), 750, 450, GTK_WIN_POS_CENTER, + GTK_WINDOW(ui->gui->window), ui->gui->preferences_widget, NULL); + } + + wh_show_window(ui->gui->preferences_window); +} + +static void split_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data) +{ + ui_state *ui = (ui_state *) data; + single_file_mode_split_button_event(NULL, ui); +} + +static void batch_split_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data) +{ + ui_state *ui = (ui_state *) data; + batch_file_mode_split_button_event(NULL, ui); +} + +static void exit_application_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data) +{ + ui_state *ui = (ui_state *) data; + exit_application(NULL, NULL, ui); +} + +static void show_splitpoints_window_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data) +{ + ui_state *ui = (ui_state *) data; + + if (ui->gui->splitpoints_window == NULL) + { + ui->gui->splitpoints_window = + wh_create_window_with_close_button(_("Splitpoints"), 500, 300, GTK_WIN_POS_CENTER, + GTK_WINDOW(ui->gui->window), + ui->gui->splitpoints_widget, + ui->gui->scan_trim_silence_button, ui->gui->scan_silence_button, NULL); + } + + wh_show_window(ui->gui->splitpoints_window); +} + +static void show_split_files_window_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data) +{ + ui_state *ui = (ui_state *) data; + + if (ui->gui->split_files_window == NULL) + { + ui->gui->split_files_window = + wh_create_window_with_close_button(_("Split files"), 500, 300, GTK_WIN_POS_CENTER, + GTK_WINDOW(ui->gui->window), + ui->gui->split_files_widget, + ui->gui->queue_files_button, ui->gui->remove_file_button, + ui->gui->remove_all_files_button, NULL); + } + + wh_show_window(ui->gui->split_files_window); +} + +static void add_splitpoint_from_player_menu_action(GSimpleAction *action, GVariant *parameter, gpointer data) +{ + ui_state *ui = (ui_state *) data; + add_splitpoint_from_player(NULL, ui); +} + +const static GActionEntry app_entries[] = { + {"open_single_file", open_file_menu_action}, + {"add_files_to_batch", multiple_files_add_menu_action}, + {"import_splitpoints_from_file", import_event_menu_action}, + {"import_splitpoints_from_tracktype", show_tracktype_window_menu_action}, + {"export_splitpoints", export_menu_action}, + {"preferences", show_preferences_window_menu_action}, + {"split", split_menu_action}, + {"batch_split", batch_split_menu_action}, + {"quit", exit_application_menu_action}, + + {"view_splitpoints", show_splitpoints_window_menu_action}, + {"view_split_files", show_split_files_window_menu_action}, + + {"pause_play", player_pause_action}, + {"seek_forward", player_seek_forward_action}, + {"seek_backward", player_seek_backward_action}, + {"small_seek_forward", player_small_seek_forward_action}, + {"small_seek_backward", player_small_seek_backward_action}, + {"big_seek_forward", player_big_seek_forward_action}, + {"big_seek_backward", player_big_seek_backward_action}, + {"seek_next_splitpoint", player_seek_to_next_splitpoint_action}, + {"seek_previous_splitpoint", player_seek_to_previous_splitpoint_action}, + {"preview_closest", player_seek_closest_splitpoint_no_pause}, + {"preview_closest_and_pause", player_seek_closest_splitpoint}, + {"preview_before_closest", player_seek_before_closest_splitpoint}, + {"add_splitpoint", add_splitpoint_from_player_menu_action}, + {"delete_closest_splitpoint", delete_closest_splitpoint}, + {"zoom_in", zoom_in}, + {"zoom_out", zoom_out}, + + {"messages_history", show_messages_history_window}, +#ifndef NO_GNOME + {"contents", ShowHelp}, +#endif + {"about", about_window} +}; + +void create_application(ui_state *ui) +{ + GtkApplication *app = gtk_application_new("net.sf.mp3splt", G_APPLICATION_FLAGS_NONE); + ui->gui->application = app; + + g_action_map_add_action_entries(G_ACTION_MAP(app), app_entries, G_N_ELEMENTS(app_entries), ui); + + player_key_actions_set_sensitivity(FALSE, ui->gui); + + g_signal_connect(app, "startup", G_CALLBACK(application_startup), ui); + g_signal_connect(app, "activate", G_CALLBACK(application_activate), ui); } /*!Output an error message from libmp3splt to the status bar @@ -1122,20 +1351,36 @@ error_from_library = NULL; } -static gboolean print_status_bar_confirmation_idle(ui_with_err *ui_err) +static gboolean put_status_message_idle(ui_with_fname *ui_fname) { - print_status_bar_confirmation(ui_err->err, ui_err->ui); - g_free(ui_err); + put_status_message(ui_fname->fname, ui_fname->ui); + + g_free(ui_fname->fname); + g_free(ui_fname); + return FALSE; } -void print_status_bar_confirmation_in_idle(gint error, ui_state *ui) +void put_status_message_in_idle(const gchar *text, ui_state *ui) { - ui_with_err *ui_err = g_malloc0(sizeof(ui_with_err)); - ui_err->err = error; - ui_err->ui = ui; + if (text == NULL) { return; } + + ui_with_fname *ui_fname = g_malloc0(sizeof(ui_with_fname)); + ui_fname->ui = ui; + ui_fname->fname = strdup(text); + if (ui_fname->fname == NULL) + { + g_free(ui_fname); + return; + } - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, - (GSourceFunc)print_status_bar_confirmation_idle, ui_err, NULL); + add_idle(G_PRIORITY_HIGH_IDLE, + (GSourceFunc)put_status_message_idle, ui_fname, NULL); +} + +void print_status_bar_confirmation_in_idle(gint error, ui_state *ui) +{ + char *error_from_library = mp3splt_get_strerror(ui->mp3splt_state, error); + put_status_message_in_idle(error_from_library, ui); } diff -Nru mp3splt-gtk-0.9/src/main_window.h mp3splt-gtk-0.9.2/src/main_window.h --- mp3splt-gtk-0.9/src/main_window.h 2013-02-08 09:25:59.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/main_window.h 2014-05-10 14:49:01.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -57,9 +57,11 @@ void remove_status_message(gui_state *gui); void put_status_message(const gchar *text, ui_state *ui); -void put_status_message_with_type(const gchar *text, - splt_message_type mess_type, ui_state *ui); -void create_application(); +void put_status_message_with_type(const gchar *text, splt_message_type mess_type, + ui_state *ui); +void put_status_message_in_idle(const gchar *text, ui_state *ui); + +void create_application(ui_state *ui); void print_status_bar_confirmation(gint error, ui_state *ui); void cancel_button_event(GtkWidget *widget, ui_state *ui); @@ -76,8 +78,8 @@ gint get_is_splitting_safe(ui_state *ui); void set_is_splitting_safe(gboolean value, ui_state *ui); -void set_split_file_mode_safe(gint file_mode, ui_state *ui); -gint get_split_file_mode_safe(ui_state *ui); +void set_split_file_mode(gint file_mode, ui_state *ui); +gint get_split_file_mode(ui_state *ui); void set_process_in_progress_and_wait_safe(gboolean value, ui_state *ui); void set_process_in_progress_safe(gboolean value, ui_state *ui); diff -Nru mp3splt-gtk-0.9/src/Makefile.in mp3splt-gtk-0.9.2/src/Makefile.in --- mp3splt-gtk-0.9/src/Makefile.in 2013-07-20 07:11:30.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/Makefile.in 2014-11-09 16:50:34.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -261,8 +261,6 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -FAKE_GTK_CFLAGS = @FAKE_GTK_CFLAGS@ -FAKE_GTK_LIBS = @FAKE_GTK_LIBS@ FGREP = @FGREP@ GMSGFMT = @GMSGFMT@ GRAPHVIZ = @GRAPHVIZ@ @@ -571,14 +569,14 @@ @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< diff -Nru mp3splt-gtk-0.9/src/messages_window.c mp3splt-gtk-0.9.2/src/messages_window.c --- mp3splt-gtk-0.9/src/messages_window.c 2013-02-08 09:25:54.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/messages_window.c 2014-05-10 14:48:56.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -53,7 +53,7 @@ { gui_state *gui = ui->gui; - if (mess_type == SPLT_MESSAGE_INFO || + if (mess_type == SPLT_MESSAGE_INFO || mess_type == SPLT_MESSAGE_WARNING || (mess_type == SPLT_MESSAGE_DEBUG && ui->infos->debug_is_active)) { GtkTextTag *gray_tag = gtk_text_tag_table_lookup(gui->mess_hist_tag_table, "gray_bold"); @@ -150,7 +150,7 @@ gtk_box_pack_start(GTK_BOX(hbox), debug_check_button, FALSE, FALSE, 0); //clear button - GtkWidget *clear_button = wh_create_cool_button(GTK_STOCK_CLEAR, _("C_lear"), FALSE); + GtkWidget *clear_button = wh_create_cool_button("edit-clear", _("C_lear"), FALSE); g_signal_connect(G_OBJECT(clear_button), "clicked", G_CALLBACK(clear_messages_event), ui); gtk_box_pack_end(GTK_BOX(hbox), clear_button, FALSE, FALSE, 0); diff -Nru mp3splt-gtk-0.9/src/messages_window.h mp3splt-gtk-0.9.2/src/messages_window.h --- mp3splt-gtk-0.9/src/messages_window.h 2013-02-08 09:26:00.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/messages_window.h 2014-05-10 14:49:01.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/mp3splt-gtk.c mp3splt-gtk-0.9.2/src/mp3splt-gtk.c --- mp3splt-gtk-0.9/src/mp3splt-gtk.c 2013-02-08 09:25:54.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/mp3splt-gtk.c 2014-05-10 14:48:56.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -39,9 +39,13 @@ #include "mp3splt-gtk.h" +#ifndef __WIN32__ + #include <langinfo.h> +#endif + ui_state *ui; -static gpointer split_collected_files(ui_state *ui); +static gpointer split_collected_files(ui_for_split *ui_fs); static gboolean collect_files_to_split(ui_state *ui); void split_action(ui_state *ui) @@ -52,9 +56,15 @@ set_is_splitting_safe(FALSE, ui); return; } - set_is_splitting_safe(FALSE, ui); - create_thread((GThreadFunc)split_collected_files, ui); + gtk_widget_set_sensitive(ui->gui->cancel_button, TRUE); + remove_all_split_rows(ui); + + ui_for_split *ui_fs = build_ui_for_split(ui); + ui_fs->pat = get_splitpoints_and_tags_for_mp3splt_state(ui); + + create_thread_and_unref((GThreadFunc)split_collected_files, + (gpointer) ui_fs, ui, "split"); } static gboolean collect_files_to_split(ui_state *ui) @@ -74,7 +84,7 @@ ui->files_to_split = g_ptr_array_new(); //collect - if (get_split_file_mode_safe(ui) == FILE_MODE_SINGLE) + if (get_split_file_mode(ui) == FILE_MODE_SINGLE) { g_ptr_array_add(ui->files_to_split, g_strdup(get_input_filename(ui->gui))); } @@ -137,33 +147,21 @@ } //! Split the file -static gpointer split_collected_files(ui_state *ui) +static gpointer split_collected_files(ui_for_split *ui_fs) { - set_process_in_progress_and_wait_safe(TRUE, ui); + ui_state *ui = ui_fs->ui; - enter_threads(); - - gtk_widget_set_sensitive(ui->gui->cancel_button, TRUE); + set_process_in_progress_and_wait_safe(TRUE, ui); - put_options_from_preferences(ui); + put_options_from_preferences(ui_fs); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_DEFAULT); - if (!get_checked_output_radio_box(ui)) + if (!ui_fs->is_checked_output_radio_box) { mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_FORMAT); } - exit_threads(); - - gint split_file_mode = get_split_file_mode_safe(ui); - - lock_mutex(&ui->variables_mutex); - mp3splt_set_path_of_split(ui->mp3splt_state, get_output_directory(ui)); - unlock_mutex(&ui->variables_mutex); - - enter_threads(); - remove_all_split_rows(ui); - exit_threads(); + mp3splt_set_path_of_split(ui->mp3splt_state, ui_fs->output_directory); gint err = mp3splt_erase_all_splitpoints(ui->mp3splt_state); err = mp3splt_erase_all_tags(ui->mp3splt_state); @@ -171,37 +169,38 @@ gint split_mode = mp3splt_get_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, &err); print_status_bar_confirmation_in_idle(err, ui); - enter_threads(); - gchar *format = strdup(gtk_entry_get_text(GTK_ENTRY(ui->gui->output_entry))); - exit_threads(); - - err = mp3splt_set_oformat(ui->mp3splt_state, format); - - if (format) - { - free(format); - format = NULL; - } + err = mp3splt_set_oformat(ui->mp3splt_state, ui_fs->output_format); if (mp3splt_get_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, &err) == SPLT_OPTION_NORMAL_MODE && - split_file_mode == FILE_MODE_SINGLE) + ui_fs->split_file_mode == FILE_MODE_SINGLE) { mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_CUSTOM); } if (split_mode == SPLT_OPTION_NORMAL_MODE) { - enter_threads(); - put_splitpoints_and_tags_in_mp3splt_state(ui->mp3splt_state, ui); + gint i = 0; + for (i = 0;i < ui_fs->pat->splitpoints->len; i++) + { + splt_point *point = g_ptr_array_index(ui_fs->pat->splitpoints, i); + mp3splt_append_splitpoint(ui->mp3splt_state, point); + splt_tags *tags = g_ptr_array_index(ui_fs->pat->tags, i); + mp3splt_append_tags(ui->mp3splt_state, tags); + } err = mp3splt_remove_tags_of_skippoints(ui->mp3splt_state); print_status_bar_confirmation_in_idle(err, ui); - exit_threads(); } - err = SPLT_OK; gint output_filenames = mp3splt_get_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, &err); + gint selected_split_mode = ui_fs->selected_split_mode; + gboolean is_single_file_mode = FALSE; + if (ui_fs->split_file_mode == FILE_MODE_SINGLE) + { + is_single_file_mode = TRUE; + } + //files_to_split will not have a read/write issue because the 'splitting' boolean, which does not //allow us to modify it while we read it here - no mutex needed GPtrArray *files_to_split = ui->files_to_split; @@ -211,13 +210,48 @@ { gchar *filename = g_ptr_array_index(files_to_split, i); - enter_threads(); print_processing_file(filename, ui); - exit_threads(); mp3splt_set_filename_to_split(ui->mp3splt_state, filename); - gint err = mp3splt_split(ui->mp3splt_state); + gint err = SPLT_OK; + + if (!is_single_file_mode) + { + if (selected_split_mode == SELECTED_SPLIT_INTERNAL_SHEET) + { + err = mp3splt_import(ui->mp3splt_state, PLUGIN_INTERNAL_IMPORT, filename); + print_status_bar_confirmation_in_idle(err, ui); + if (err < 0) { continue; } + } + else if ((selected_split_mode == SELECTED_SPLIT_CUE_FILE) || + (selected_split_mode == SELECTED_SPLIT_CDDB_FILE)) + { + gchar *cue_or_cddb = g_strdup(filename); + gchar *last_ext = g_strrstr(cue_or_cddb, "."); + *last_ext = '\0'; + + GString *cue_or_cddb_file = g_string_new(cue_or_cddb); + g_free(cue_or_cddb); + + if (selected_split_mode == SELECTED_SPLIT_CUE_FILE) + { + g_string_append(cue_or_cddb_file, ".cue"); + err = mp3splt_import(ui->mp3splt_state, CUE_IMPORT, cue_or_cddb_file->str); + } + else + { + g_string_append(cue_or_cddb_file, ".cddb"); + err = mp3splt_import(ui->mp3splt_state, CDDB_IMPORT, cue_or_cddb_file->str); + } + + print_status_bar_confirmation_in_idle(err, ui); + g_string_free(cue_or_cddb_file, SPLT_TRUE); + if (err < 0) { continue; } + } + } + + err = mp3splt_split(ui->mp3splt_state); print_status_bar_confirmation_in_idle(err, ui); err = mp3splt_erase_all_tags(ui->mp3splt_state); @@ -235,35 +269,73 @@ mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, output_filenames); + free_ui_for_split(ui_fs); + ui_with_err *ui_err = g_malloc0(sizeof(ui_with_err)); ui_err->err = err; ui_err->ui = ui; - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, (GSourceFunc)split_collected_files_end, ui_err, NULL); + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)split_collected_files_end, ui_err, NULL); return NULL; } -GThread *create_thread(GThreadFunc func, ui_state *ui) +static gpointer thread_wrapper_function(gpointer data) { + ui_with_data *ui_wd = (ui_with_data *) data; + ui_state *ui = ui_wd->ui; + + set_process_in_progress_and_wait_safe(TRUE, ui); + + //some general options + if (ui_wd->filename_to_split != NULL) + { + mp3splt_set_filename_to_split(ui->mp3splt_state, ui_wd->filename_to_split); + } + mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_DEBUG_MODE, ui->infos->debug_is_active); - return g_thread_create(func, ui, TRUE, NULL); + if (ui_wd->is_checked_output_radio_box) + { + mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_FORMAT); + } + else + { + mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_DEFAULT); + } + + set_process_in_progress_and_wait_safe(FALSE, ui); + + gpointer returned_value = ui_wd->thread(ui_wd->data); + + if (ui_wd->filename_to_split) { g_free(ui_wd->filename_to_split); } + g_free(ui_wd); + + return returned_value; } -GThread *create_thread_with_fname(GThreadFunc func, ui_with_fname *ui_fname) +GThread *create_thread(GThreadFunc func, gpointer data, ui_state *ui, const char *name) { - mp3splt_set_int_option(ui_fname->ui->mp3splt_state, SPLT_OPT_DEBUG_MODE, ui_fname->ui->infos->debug_is_active); - return g_thread_create(func, ui_fname, TRUE, NULL); + ui_with_data *ui_wd = g_malloc0(sizeof(ui_with_data)); + ui_wd->ui = ui; + ui_wd->data = data; + ui_wd->thread = func; + ui_wd->is_checked_output_radio_box = get_checked_output_radio_box(ui); + gchar *input_filename = get_input_filename(ui->gui); + if (input_filename != NULL) + { + ui_wd->filename_to_split = g_strdup(input_filename); + } + return g_thread_new(name, thread_wrapper_function, ui_wd); } -void enter_threads() +void create_thread_and_unref(GThreadFunc func, gpointer data, ui_state *ui, const char *name) { - gdk_threads_enter(); + g_thread_unref(create_thread(func, data, ui, name)); } -void exit_threads() +void add_idle(gint priority, GSourceFunc function, gpointer data, GDestroyNotify notify) { - gdk_threads_leave(); + gdk_threads_add_idle_full(priority, function, data, notify); } gboolean exit_application(GtkWidget *widget, GdkEvent *event, gpointer data) @@ -283,16 +355,11 @@ player_quit(ui); } - gtk_main_quit(); + g_application_quit(G_APPLICATION(ui->gui->application)); return FALSE; } -void exit_application_bis(GtkWidget *widget, gpointer data) -{ - exit_application(widget, NULL, data); -} - static gboolean sigint_called = FALSE; static void sigint_handler(gint sig) { @@ -359,10 +426,11 @@ bindtextdomain(LIBMP3SPLT_WITH_SONAME, "translations"); bindtextdomain("mp3splt-gtk", "translations"); + bind_textdomain_codeset("mp3splt-gtk", "UTF-8"); #else bindtextdomain("mp3splt-gtk", LOCALEDIR); + bind_textdomain_codeset("mp3splt-gtk", nl_langinfo(CODESET)); #endif - bind_textdomain_codeset("mp3splt-gtk", "UTF-8"); #ifdef __WIN32__ if (executable != NULL) @@ -377,59 +445,6 @@ #endif } -static void parse_command_line_options(gint argc, gchar * argv[], ui_state *ui) -{ - opterr = 0; - int option; - while ((option = getopt(argc, argv, "d:")) != -1) - { - switch (option) - { - case 'd': - fprintf(stdout, _("Setting the output directory to %s.\n"), optarg); - set_output_directory_and_update_ui((gchar *)optarg, ui); -#ifdef __WIN32__ - mkdir(optarg); -#else - mkdir(optarg, 0777); -#endif - if (!directory_exists(optarg)) - { - ui_fail(ui, "Error: The specified output directory is inaccessible!\n"); - } - break; - case '?': - if (optopt == 'd') - ui_fail(ui, _("Option -%c requires an argument.\n"), optopt); - else if (isprint(optopt)) - ui_fail(ui, _("Unknown option `-%c'.\n"), optopt, NULL); - else - ui_fail(ui, _("Unknown option character `\\x%x'.\n"), optopt); - break; - default: - ui_fail(ui, NULL); - } - } - - if (optind == argc) - { - return; - } - - if (!file_exists(argv[optind])) - { - ui_fail(ui, _("Cannot open input file %s\n"), argv[optind]); - } - -#ifndef __WIN32__ - char *input_filename = realpath(argv[optind], NULL); - import_file(input_filename, ui); - free(input_filename); -#else - import_file(argv[optind], ui); -#endif -} - #ifdef __WIN32__ //!sets the language, loaded only at start static void set_language_env_variable_from_preferences() @@ -479,12 +494,12 @@ if the pathname we give to it is 0 => find a solution that works everywhere. */ -gint main(gint argc, gchar *argv[], gchar **envp) +gint main(gint argc, gchar **argv, gchar **envp) { ui = ui_state_new(); - g_thread_init(NULL); - gdk_threads_init(); + ui->argc = argc; + ui->argv = argv; register_application_signals(); init_i18n_and_plugin_paths(argv, ui); @@ -498,18 +513,17 @@ #endif create_application(ui); - - import_cue_file_from_the_configuration_directory(ui); - - parse_command_line_options(argc, argv, ui); - - enter_threads(); - gtk_main(); - exit_threads(); + int application_code = + g_application_run(G_APPLICATION(ui->gui->application), argc, argv); gint return_code = ui->return_code; ui_state_free(ui); + if (application_code != 0) + { + return application_code; + } + return return_code; } diff -Nru mp3splt-gtk-0.9/src/mp3splt-gtk.h mp3splt-gtk-0.9.2/src/mp3splt-gtk.h --- mp3splt-gtk-0.9/src/mp3splt-gtk.h 2013-07-20 07:09:10.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/mp3splt-gtk.h 2014-11-09 16:48:11.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -42,14 +42,14 @@ #include "all_includes.h" void split_action(ui_state *ui); -GThread *create_thread(GThreadFunc func, ui_state *ui); -GThread *create_thread_with_fname(GThreadFunc func, ui_with_fname *ui_fname); -void enter_threads(); -void exit_threads(); +void create_thread_and_unref(GThreadFunc func, gpointer data, ui_state *ui, const char *name); +GThread *create_thread(GThreadFunc func, gpointer data, ui_state *ui, const char *name); + +void add_idle(gint priority, GSourceFunc function, gpointer data, GDestroyNotify notify); + gboolean exit_application(GtkWidget *widget, GdkEvent *event, gpointer data); -void exit_application_bis(GtkWidget *widget, gpointer data); -#define MP3SPLT_GTK_DATE "20/07/13" +#define MP3SPLT_GTK_DATE "09/11/14" #endif diff -Nru mp3splt-gtk-0.9/src/multiple_files_window.c mp3splt-gtk-0.9.2/src/multiple_files_window.c --- mp3splt-gtk-0.9/src/multiple_files_window.c 2013-04-07 22:35:06.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/multiple_files_window.c 2014-05-10 14:48:56.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -80,15 +80,13 @@ GtkWidget *file_chooser = gtk_file_chooser_dialog_new(_("Choose files or directories"), NULL, GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, + _("_Cancel"), GTK_RESPONSE_CANCEL, NULL); wh_set_browser_directory_handler(ui, file_chooser); - GtkWidget *button = gtk_dialog_add_button(GTK_DIALOG(file_chooser), - GTK_STOCK_ADD, MY_GTK_RESPONSE); - gtk_button_set_use_stock(GTK_BUTTON(button), TRUE); + GtkWidget *button = gtk_dialog_add_button(GTK_DIALOG(file_chooser), "Add", MY_GTK_RESPONSE); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(multiple_files_open_button_event), file_chooser); g_signal_connect(G_OBJECT(file_chooser), "file-activated", @@ -247,7 +245,7 @@ void batch_file_mode_split_button_event(GtkWidget *widget, ui_state *ui) { - set_split_file_mode_safe(FILE_MODE_MULTIPLE, ui); + set_split_file_mode(FILE_MODE_MULTIPLE, ui); split_button_event(widget, ui); } @@ -257,7 +255,7 @@ //button for adding file(s) GtkWidget *multiple_files_add_button = - wh_create_cool_button(GTK_STOCK_DIRECTORY, _("_Add files or directories"), FALSE); + wh_create_cool_button("folder", _("_Add files or directories"), FALSE); gtk_widget_set_tooltip_text(multiple_files_add_button, _("Only the supported file types are added")); gtk_box_pack_start(GTK_BOX(hbox), multiple_files_add_button, FALSE, FALSE, 5); gtk_widget_set_sensitive(multiple_files_add_button, TRUE); @@ -266,7 +264,7 @@ //button for removing a file GtkWidget *multiple_files_remove_file_button = - wh_create_cool_button(GTK_STOCK_REMOVE, _("_Remove selected"),FALSE); + wh_create_cool_button("list-remove", _("_Remove selected"),FALSE); ui->gui->multiple_files_remove_file_button = multiple_files_remove_file_button; gtk_box_pack_start(GTK_BOX(hbox), multiple_files_remove_file_button, FALSE, FALSE, 5); @@ -276,7 +274,7 @@ //button for removing a file GtkWidget *multiple_files_remove_all_files_button = - wh_create_cool_button(GTK_STOCK_CLEAR, _("R_emove all"),FALSE); + wh_create_cool_button("edit-clear", _("R_emove all"),FALSE); ui->gui->multiple_files_remove_all_files_button = multiple_files_remove_all_files_button; gtk_box_pack_start(GTK_BOX(hbox), multiple_files_remove_all_files_button, FALSE, FALSE, 5); @@ -284,7 +282,7 @@ g_signal_connect(G_OBJECT(multiple_files_remove_all_files_button), "clicked", G_CALLBACK(multiple_files_remove_all_button_event), ui); - GtkWidget *split_button = wh_create_cool_button(GTK_STOCK_EXECUTE,_("Batch split !"), FALSE); + GtkWidget *split_button = wh_create_cool_button("system-run",_("Batch split"), FALSE); gtk_widget_set_tooltip_text(split_button, _("Split all the files")); g_signal_connect(G_OBJECT(split_button), "clicked", G_CALLBACK(batch_file_mode_split_button_event), ui); diff -Nru mp3splt-gtk-0.9/src/multiple_files_window.h mp3splt-gtk-0.9.2/src/multiple_files_window.h --- mp3splt-gtk-0.9/src/multiple_files_window.h 2013-02-08 09:26:00.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/multiple_files_window.h 2014-05-10 14:49:02.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/mutex.c mp3splt-gtk-0.9.2/src/mutex.c --- mp3splt-gtk-0.9/src/mutex.c 2013-02-08 09:25:54.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/mutex.c 2014-05-10 14:48:57.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -34,21 +34,21 @@ void init_mutex(SPLT_MUTEX *mutex) { - g_static_mutex_init(mutex); + g_mutex_init(mutex); } void clear_mutex(SPLT_MUTEX *mutex) { - g_static_mutex_free(mutex); + g_mutex_clear(mutex); } void lock_mutex(SPLT_MUTEX *mutex) { - g_static_mutex_lock(mutex); + g_mutex_lock(mutex); } void unlock_mutex(SPLT_MUTEX *mutex) { - g_static_mutex_unlock(mutex); + g_mutex_unlock(mutex); } diff -Nru mp3splt-gtk-0.9/src/mutex.h mp3splt-gtk-0.9.2/src/mutex.h --- mp3splt-gtk-0.9/src/mutex.h 2013-02-08 09:26:00.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/mutex.h 2014-05-10 14:49:02.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/options_manager.c mp3splt-gtk-0.9.2/src/options_manager.c --- mp3splt-gtk-0.9/src/options_manager.c 2013-02-08 09:25:55.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/options_manager.c 2014-05-28 22:42:43.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -47,18 +47,13 @@ All other options are read out in put_options_from_preferences() */ -void update_output_options(ui_state *ui) +void update_output_options(ui_state *ui, gboolean is_checked_output_radio_box, gchar *output_format) { - lock_mutex(&ui->variables_mutex); - mp3splt_set_filename_to_split(ui->mp3splt_state, get_input_filename(ui->gui)); - unlock_mutex(&ui->variables_mutex); - - if (get_checked_output_radio_box(ui) == 0) + if (!is_checked_output_radio_box) { mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_FORMAT); - const char *data = gtk_entry_get_text(GTK_ENTRY(ui->gui->output_entry)); - gint error = mp3splt_set_oformat(ui->mp3splt_state, data); - print_status_bar_confirmation(error, ui); + gint error = mp3splt_set_oformat(ui->mp3splt_state, output_format); + print_status_bar_confirmation_in_idle(error, ui); } else { @@ -66,6 +61,120 @@ } } +ui_for_split *build_ui_for_split(ui_state *ui) +{ + gui_state *gui = ui->gui; + + ui_for_split *ui_fs = g_malloc0(sizeof(ui_for_split)); + ui_fs->ui = ui; + + ui_fs->frame_mode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->frame_mode)); + ui_fs->bit_reservoir_mode = + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->bit_reservoir_mode)); + + ui_fs->adjust_mode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->adjust_mode)); + ui_fs->adjust_offset = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->spinner_adjust_offset)); + ui_fs->adjust_gap = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gui->spinner_adjust_gap)); + ui_fs->adjust_threshold = + gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->spinner_adjust_threshold)); + ui_fs->adjust_min = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->spinner_adjust_min)); + + ui_fs->split_file_mode = get_split_file_mode(ui); + + ui_fs->selected_split_mode = get_selected_split_mode(ui); + + ui_fs->time_split_value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gui->spinner_time)); + ui_fs->equal_tracks_value = + gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gui->spinner_equal_tracks)); + + ui_fs->silence_threshold = + gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_silence_threshold)); + ui_fs->silence_offset = + gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_silence_offset)); + ui_fs->silence_number = + gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gui->all_spinner_silence_number_tracks)); + ui_fs->silence_minimum_length = + gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_silence_minimum)); + ui_fs->silence_minimum_track_length = + gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_track_minimum)); + ui_fs->silence_remove = + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->all_silence_remove_silence)); + + ui_fs->trim_silence_threshold = + gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_trim_silence_threshold)); + + ui_fs->single_silence_threshold = ui->infos->silence_threshold_value; + ui_fs->single_silence_offset = ui->infos->silence_offset_value; + ui_fs->single_silence_number = ui->infos->silence_number_of_tracks; + ui_fs->single_silence_minimum_length = ui->infos->silence_minimum_length; + ui_fs->single_silence_minimum_track_length = ui->infos->silence_minimum_track_length; + ui_fs->single_silence_remove = ui->infos->silence_remove_silence_between_tracks; + + ui_fs->selected_tags_value = rh_get_active_value(gui->tags_radio); + ui_fs->tags_version = get_checked_tags_version_radio_box(gui); + + ui_fs->create_dirs_from_filenames = + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->create_dirs_from_output_files)); + + ui_fs->regex_replace_underscores = + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->replace_underscore_by_space_check_box)); + ui_fs->regex_artist_tag_format = ch_get_active_value(gui->artist_text_properties_combo); + ui_fs->regex_album_tag_format = ch_get_active_value(gui->album_text_properties_combo); + ui_fs->regex_title_tag_format = ch_get_active_value(gui->title_text_properties_combo); + ui_fs->regex_comment_tag_format = ch_get_active_value(gui->comment_text_properties_combo); + + const gchar *regex = gtk_entry_get_text(GTK_ENTRY(gui->regex_entry)); + if (regex != NULL) + { + ui_fs->regex = g_strdup(regex); + } + + const gchar *regex_default_comment = gtk_entry_get_text(GTK_ENTRY(gui->comment_tag_entry)); + if (regex_default_comment != NULL) + { + ui_fs->regex_default_comment = g_strdup(regex_default_comment); + } + + const gchar *regex_default_genre = ch_get_active_str_value(gui->genre_combo); + if (regex_default_genre != NULL) + { + ui_fs->regex_default_genre = g_strdup(regex_default_genre); + } + + const gchar *output_format = gtk_entry_get_text(GTK_ENTRY(ui->gui->output_entry)); + if (output_format != NULL) + { + ui_fs->output_format = g_strdup(output_format); + } + + const gchar *output_directory = get_output_directory(ui); + if (output_directory != NULL) + { + ui_fs->output_directory = g_strdup(output_directory); + } + + ui_fs->is_checked_output_radio_box = get_checked_output_radio_box(ui); + + return ui_fs; +} + +void free_ui_for_split(ui_for_split *ui_fs) +{ + if (ui_fs->pat) + { + free_points_and_tags(&ui_fs->pat); + } + + if (ui_fs->regex) { g_free(ui_fs->regex); } + if (ui_fs->regex_default_comment) { g_free(ui_fs->regex_default_comment); } + if (ui_fs->regex_default_genre) { g_free(ui_fs->regex_default_genre); } + if (ui_fs->output_format) { g_free(ui_fs->output_format); } + if (ui_fs->output_directory) { g_free(ui_fs->output_directory); } + if (ui_fs->test_regex_filename) { g_free(ui_fs->test_regex_filename); } + + g_free(ui_fs); +} + /*! Update the ui->mp3splt_state structure Updates the ui->mp3splt_state structure by reading out the state of the GUI @@ -73,11 +182,11 @@ connected to audio output have been split into a separate function: update_output_options(ui) */ -void put_options_from_preferences(ui_state *ui) +void put_options_from_preferences(ui_for_split *ui_fs) { - gui_state *gui = ui->gui; + ui_state *ui = ui_fs->ui; - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->frame_mode))) + if (ui_fs->frame_mode) { mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_FRAME_MODE, SPLT_TRUE); } @@ -86,17 +195,16 @@ mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_FRAME_MODE, SPLT_FALSE); } - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->adjust_mode))) + mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_HANDLE_BIT_RESERVOIR, + ui_fs->bit_reservoir_mode); + + if (ui_fs->adjust_mode) { mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_AUTO_ADJUST, SPLT_TRUE); - mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_OFFSET, - gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->spinner_adjust_offset))); - mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_GAP, - gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gui->spinner_adjust_gap))); - mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_THRESHOLD, - gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->spinner_adjust_threshold))); - mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_MIN_LENGTH, - gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->spinner_adjust_min))); + mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_OFFSET, ui_fs->adjust_offset); + mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_GAP, ui_fs->adjust_gap); + mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_THRESHOLD, ui_fs->adjust_threshold); + mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_MIN_LENGTH, ui_fs->adjust_min); } else { @@ -106,13 +214,13 @@ mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_INPUT_NOT_SEEKABLE, SPLT_FALSE); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_NORMAL_MODE); - if (get_split_file_mode_safe(ui) == FILE_MODE_SINGLE) + if (ui_fs->split_file_mode == FILE_MODE_SINGLE) { mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_NORMAL_MODE); } else { - switch (get_selected_split_mode_safe(ui)) + switch (ui_fs->selected_split_mode) { case SELECTED_SPLIT_NORMAL: mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_NORMAL_MODE); @@ -123,26 +231,25 @@ case SELECTED_SPLIT_TIME: mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_TIME_MODE); mp3splt_set_long_option(ui->mp3splt_state, SPLT_OPT_SPLIT_TIME, - gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gui->spinner_time)) * 100); + ui_fs->time_split_value * 100); break; case SELECTED_SPLIT_EQUAL_TIME_TRACKS: mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_LENGTH_MODE); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_LENGTH_SPLIT_FILE_NUMBER, - gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gui->spinner_equal_tracks))); + ui_fs->equal_tracks_value); break; case SELECTED_SPLIT_SILENCE: mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_SILENCE_MODE); mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_THRESHOLD, - gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_silence_threshold))); - mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_OFFSET, - gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_silence_offset))); - mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_NUMBER_TRACKS, - gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gui->all_spinner_silence_number_tracks))); + ui_fs->silence_threshold); + mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_OFFSET, ui_fs->silence_offset); + mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_NUMBER_TRACKS, + ui_fs->silence_number); mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_MIN_LENGTH, - gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_silence_minimum))); + ui_fs->silence_minimum_length); mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_MIN_TRACK_LENGTH, - gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_track_minimum))); - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->all_silence_remove_silence))) + ui_fs->silence_minimum_track_length); + if (ui_fs->silence_remove) { mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_REMOVE_SILENCE, SPLT_TRUE); } @@ -153,8 +260,7 @@ break; case SELECTED_SPLIT_TRIM_SILENCE: mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_TRIM_SILENCE_MODE); - mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_THRESHOLD, - gtk_spin_button_get_value(GTK_SPIN_BUTTON(gui->all_spinner_trim_silence_threshold))); + mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_THRESHOLD, ui_fs->trim_silence_threshold); break; case SELECTED_SPLIT_ERROR: mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_ERROR_MODE); @@ -164,7 +270,7 @@ } } - gint selected_tags_value = rh_get_active_value(gui->tags_radio); + int selected_tags_value = ui_fs->selected_tags_value;; if (selected_tags_value == NO_TAGS) { mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_TAGS, SPLT_NO_TAGS); @@ -179,10 +285,10 @@ } else if (selected_tags_value == TAGS_FROM_FILENAME) { - put_tags_from_filename_regex_options(ui); + put_tags_from_filename_regex_options(ui_fs); } - gint tags_radio_choice = get_checked_tags_version_radio_box(gui); + int tags_radio_choice = ui_fs->tags_version; if (tags_radio_choice == 0) { mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_FORCE_TAGS_VERSION, 0); @@ -200,39 +306,37 @@ mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_FORCE_TAGS_VERSION, 12); } - mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_CREATE_DIRS_FROM_FILENAMES, - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->create_dirs_from_output_files))); + mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_CREATE_DIRS_FROM_FILENAMES, + ui_fs->create_dirs_from_filenames); } -void put_tags_from_filename_regex_options(ui_state *ui) +void put_tags_from_filename_regex_options(ui_for_split *ui_fs) { - gui_state *gui = ui->gui; + ui_state *ui = ui_fs->ui; mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_TAGS, SPLT_TAGS_FROM_FILENAME_REGEX); - gint underscores = - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gui->replace_underscore_by_space_check_box)); + int underscores = ui_fs->regex_replace_underscores; mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_REPLACE_UNDERSCORES_TAG_FORMAT, underscores); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_ARTIST_TAG_FORMAT, - ch_get_active_value(gui->artist_text_properties_combo)); + ui_fs->regex_artist_tag_format); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_ALBUM_TAG_FORMAT, - ch_get_active_value(gui->album_text_properties_combo)); + ui_fs->regex_album_tag_format); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_TITLE_TAG_FORMAT, - ch_get_active_value(gui->title_text_properties_combo)); + ui_fs->regex_title_tag_format); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_COMMENT_TAG_FORMAT, - ch_get_active_value(gui->comment_text_properties_combo)); + ui_fs->regex_comment_tag_format); - const gchar *regular_expression = gtk_entry_get_text(GTK_ENTRY(gui->regex_entry)); - mp3splt_set_input_filename_regex(ui->mp3splt_state, regular_expression); + mp3splt_set_input_filename_regex(ui->mp3splt_state, ui_fs->regex); - const gchar *default_comment = gtk_entry_get_text(GTK_ENTRY(gui->comment_tag_entry)); + const gchar *default_comment = ui_fs->regex_default_comment; if (strlen(default_comment) == 0) { default_comment = NULL; } mp3splt_set_default_comment_tag(ui->mp3splt_state, default_comment); - mp3splt_set_default_genre_tag(ui->mp3splt_state, ch_get_active_str_value(gui->genre_combo)); + mp3splt_set_default_genre_tag(ui->mp3splt_state, ui_fs->regex_default_genre); } diff -Nru mp3splt-gtk-0.9/src/options_manager.h mp3splt-gtk-0.9.2/src/options_manager.h --- mp3splt-gtk-0.9/src/options_manager.h 2013-02-08 09:26:00.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/options_manager.h 2014-05-10 14:49:02.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * @@ -36,9 +36,12 @@ #include "all_includes.h" -void update_output_options(ui_state *ui); -void put_options_from_preferences(ui_state *ui); -void put_tags_from_filename_regex_options(ui_state *ui); +void update_output_options(ui_state *ui, gboolean is_checked_output_radio_box, gchar *output_format); +void put_options_from_preferences(ui_for_split *ui_fs); +void put_tags_from_filename_regex_options(ui_for_split *ui_fs); + +ui_for_split *build_ui_for_split(ui_state *ui); +void free_ui_for_split(ui_for_split *ui_fs); #endif diff -Nru mp3splt-gtk-0.9/src/player_control.c mp3splt-gtk-0.9.2/src/player_control.c --- mp3splt-gtk-0.9/src/player_control.c 2013-02-08 09:25:55.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/player_control.c 2014-05-10 14:48:57.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * diff -Nru mp3splt-gtk-0.9/src/player_control.h mp3splt-gtk-0.9.2/src/player_control.h --- mp3splt-gtk-0.9/src/player_control.h 2013-02-08 09:26:00.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/player_control.h 2014-05-10 14:49:02.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * diff -Nru mp3splt-gtk-0.9/src/player_window.c mp3splt-gtk-0.9.2/src/player_window.c --- mp3splt-gtk-0.9/src/player_window.c 2013-07-17 18:54:06.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/player_window.c 2014-05-10 14:48:57.000000000 +0000 @@ -3,7 +3,7 @@ * * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -36,6 +36,8 @@ * this file is used for the player control tab **********************************************************/ +#include <sys/timeb.h> + #include "player_window.h" #define DRAWING_AREA_WIDTH 400 @@ -52,6 +54,7 @@ static void draw_small_rectangle(gint time_left, gint time_right, GdkColor color, cairo_t *cairo_surface, ui_state *ui); static gint mytimer(ui_state *ui); +static gint remaining_time_to_stop_timer(ui_state *ui); //!function called from the library when scanning for the silence level static void get_silence_level(long time, float level, void *user_data) @@ -64,9 +67,6 @@ return; } - //TODO: using an idle here does not work. - // At least on windows idles are not executed in order - if (!ui->infos->silence_points) { ui->infos->silence_points = g_malloc(sizeof(silence_wave) * 3000); @@ -117,10 +117,13 @@ gtk_progress_bar_set_text(ui->gui->percent_progress_bar, _("Processing Douglas-Peucker filters ...")); gtk_widget_queue_draw(GTK_WIDGET(ui->gui->percent_progress_bar)); + +#ifndef __WIN32__ while (gtk_events_pending()) { gtk_main_iteration(); } +#endif ui->status->douglas_callback_counter = 0; } @@ -189,7 +192,7 @@ print_status_bar_confirmation(ui_err->err, ui); gtk_widget_set_sensitive(ui->gui->cancel_button, FALSE); - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); refresh_preview_drawing_areas(ui->gui); set_process_in_progress_and_wait_safe(FALSE, ui_err->ui); @@ -213,14 +216,6 @@ ui->infos->number_of_silence_points = 0; } - enter_threads(); - gtk_widget_set_sensitive(ui->gui->cancel_button, TRUE); - exit_threads(); - - lock_mutex(&ui->variables_mutex); - mp3splt_set_filename_to_split(ui->mp3splt_state, get_input_filename(ui->gui)); - unlock_mutex(&ui->variables_mutex); - mp3splt_set_silence_level_function(ui->mp3splt_state, get_silence_level, ui); gint err = SPLT_OK; @@ -230,14 +225,15 @@ ui_err->err = err; ui_err->ui = ui; - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, (GSourceFunc)detect_silence_end, ui_err, NULL); + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)detect_silence_end, ui_err, NULL); return NULL; } static void detect_silence_action(ui_state *ui) { - create_thread((GThreadFunc)detect_silence, ui); + gtk_widget_set_sensitive(ui->gui->cancel_button, TRUE); + create_thread_and_unref((GThreadFunc)detect_silence, (gpointer) ui, ui, "scan_silence_wave"); } /*! Initialize scanning for silence in the background. @@ -605,7 +601,7 @@ } GtkWidget *dialog = gtk_dialog_new_with_buttons(_("Cannot connect to player"), - GTK_WINDOW(ui->gui->window), GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_NONE, NULL); + GTK_WINDOW(ui->gui->window), GTK_DIALOG_MODAL, _("_OK"), GTK_RESPONSE_NONE, NULL); g_signal_connect_swapped(dialog, "response", G_CALLBACK(gtk_widget_destroy), dialog); gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), label); gtk_widget_show_all(dialog); @@ -620,7 +616,7 @@ } mytimer(ui); - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); } //!checks if we have a stream @@ -678,7 +674,7 @@ cancel_button_event(ui->gui->cancel_button, ui); } - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); } void restart_player_timer(ui_state *ui) @@ -812,7 +808,7 @@ cancel_button_event(ui->gui->cancel_button, ui); } - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); refresh_preview_drawing_areas(ui->gui); ui_save_preferences(NULL, ui); @@ -977,7 +973,7 @@ gtk_box_pack_start(player_buttons_hbox, vol_button, FALSE, FALSE, 5); //add button - GtkWidget *player_add_button = wh_create_cool_button(GTK_STOCK_ADD, _("_Add"), FALSE); + GtkWidget *player_add_button = wh_create_cool_button("list-add", _("_Add"), FALSE); ui->gui->player_add_button = player_add_button; gtk_box_pack_start(player_buttons_hbox, player_add_button, FALSE, FALSE, 0); gtk_button_set_relief(GTK_BUTTON(player_add_button), GTK_RELIEF_NONE); @@ -987,7 +983,7 @@ gtk_widget_set_tooltip_text(player_add_button,_("Add splitpoint at the current player position")); //set splitpoints from trim silence button - GtkWidget *scan_trim_silence_button = wh_create_cool_button(GTK_STOCK_CUT, NULL, FALSE); + GtkWidget *scan_trim_silence_button = wh_create_cool_button("edit-find", NULL, FALSE); ui->gui->scan_trim_silence_button_player = scan_trim_silence_button; gtk_widget_set_sensitive(scan_trim_silence_button, TRUE); g_signal_connect(G_OBJECT(scan_trim_silence_button), "clicked", @@ -998,7 +994,7 @@ gtk_button_set_relief(GTK_BUTTON(scan_trim_silence_button), GTK_RELIEF_NONE); //set splitpoints from silence button - GtkWidget *scan_silence_button = wh_create_cool_button(GTK_STOCK_FIND_AND_REPLACE, NULL, FALSE); + GtkWidget *scan_silence_button = wh_create_cool_button("edit-find-replace", NULL, FALSE); ui->gui->scan_silence_button_player = scan_silence_button; gtk_widget_set_sensitive(scan_silence_button, TRUE); g_signal_connect(G_OBJECT(scan_silence_button), "clicked", @@ -1018,13 +1014,13 @@ gtk_widget_set_tooltip_text(silence_wave_check_button, _("Shows the amplitude level wave")); /* connect player button */ - GtkWidget *connect_button = wh_create_cool_button(GTK_STOCK_CONNECT,_("_Connect"), FALSE); + GtkWidget *connect_button = wh_create_cool_button(NULL, _("_Connect"), FALSE); ui->gui->connect_button = connect_button; g_signal_connect(G_OBJECT(connect_button), "clicked", G_CALLBACK(connect_button_event), ui); gtk_widget_set_tooltip_text(connect_button,_("Connect to player")); /* disconnect player button */ - GtkWidget *disconnect_button = wh_create_cool_button(GTK_STOCK_DISCONNECT,_("_Disconnect"), FALSE); + GtkWidget *disconnect_button = wh_create_cool_button(NULL, _("_Disconnect"), FALSE); ui->gui->disconnect_button = disconnect_button; g_signal_connect(G_OBJECT(disconnect_button), "clicked", G_CALLBACK(disconnect_button_event), ui); gtk_widget_set_tooltip_text(disconnect_button,_("Disconnect from player")); @@ -1048,6 +1044,17 @@ return song_info_hbox; } +static void invalidate_previous_points_caches(ui_infos *infos) +{ + g_hash_table_remove_all(infos->previous_pixel_by_time); + g_hash_table_remove_all(infos->pixel_moved_by_time); + + infos->previous_mark_time = 0; + infos->previous_mark_pixel = 0.0; + infos->pixels_diff_regarding_previous = -1; + infos->accumulated_diff = 0.0; +} + //!when we unclick the progress bar static gboolean progress_bar_unclick_event(GtkWidget *widget, GdkEventCrossing *event, ui_state *ui) { @@ -1078,7 +1085,7 @@ return (adj_position * ui->infos->total_time) / 100000; } -void refresh_drawing_area(gui_state *gui) +void refresh_drawing_area(gui_state *gui, ui_infos *infos) { gtk_widget_queue_draw(gui->drawing_area); } @@ -1192,21 +1199,21 @@ //!event when the progress bar value changed static void progress_bar_value_changed_event(GtkRange *range, ui_state *ui) { - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); ui_infos *infos = ui->infos; - + infos->player_hundr_secs2 = (gint)infos->current_time % 100; - + gint tt2 = infos->total_time / 100; gfloat adj_position = (gint)gtk_adjustment_get_value(ui->gui->progress_adj); infos->current_time = (adj_position * tt2) / 100000; - + infos->player_seconds2 = (gint)infos->current_time % 60; infos->player_minutes2 = (gint)infos->current_time / 60; - + infos->current_time = get_elapsed_time(ui); - + check_update_down_progress_bar(ui); } @@ -1376,7 +1383,7 @@ if (!player_is_running(ui) || status->mouse_on_progress_bar) { - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); return; } @@ -1412,14 +1419,7 @@ gtk_label_set_ellipsize(GTK_LABEL(song_name_label), PANGO_ELLIPSIZE_END); GtkWidget *filename_player_hbox = wh_hbox_new(); - -#if GTK_MAJOR_VERSION <= 2 - //ellipsize does not work as in gtk+2, so we show the label in the middle - gtk_box_pack_start(GTK_BOX(filename_player_hbox), song_name_label, - TRUE, TRUE, 15); -#else gtk_box_pack_start(GTK_BOX(filename_player_hbox), song_name_label, FALSE, FALSE, 15); -#endif return filename_player_hbox; } @@ -1477,20 +1477,98 @@ static gint time_to_pixels(gint width, gfloat time, gfloat total_time, gfloat zoom_coeff) { - return roundf(time_to_pixels_float(width, time, total_time, zoom_coeff)); + return (gint) roundf(time_to_pixels_float(width, time, total_time, zoom_coeff)); } -/*!returns the position of a time mark on the screen +static gfloat convert_time_to_pixels_float(gint width, gfloat time, + gfloat current_time, gfloat total_time, gfloat zoom_coeff) +{ + return (gfloat) width/2.0 + time_to_pixels_float(width, time - current_time, total_time, zoom_coeff); +} -\param width The width of the drawing -\param The time in hundreths of a second -*/ -static gint convert_time_to_pixels(gint width, gfloat time, +static gint convert_time_to_pixels_without_diff(gint width, gfloat time, gfloat current_time, gfloat total_time, gfloat zoom_coeff) { return width/2 + time_to_pixels(width, time - current_time, total_time, zoom_coeff); } +static gint convert_time_to_pixels(gint width, gfloat time, + gfloat current_time, gfloat total_time, gfloat zoom_coeff, ui_infos *infos) +{ + gint real_pixel = + convert_time_to_pixels_without_diff(width, time, current_time, total_time, zoom_coeff); + if (infos->drawing_preferences_silence_wave) + { + return real_pixel; + } + + gint *new_pixel = g_new(gint, 1); + + gdouble *time_key = g_new(gdouble, 1); + *time_key = (gdouble) time; + + gdouble *second_time_key = g_new(gdouble, 1); + *second_time_key = *time_key; + + gint *previous_pixel = g_hash_table_lookup(infos->previous_pixel_by_time, time_key); + if (previous_pixel != NULL && infos->pixels_diff_regarding_previous >= 0) + { + gint diff = infos->pixels_diff_regarding_previous; + gint *pixel_moved = g_hash_table_lookup(infos->pixel_moved_by_time, second_time_key); + if (pixel_moved != NULL) { diff = 0; } + + *new_pixel = *previous_pixel - diff; + + if (real_pixel - *new_pixel > 2) + { + *new_pixel = real_pixel; + } + } + else + { + *new_pixel = real_pixel; + } + + g_hash_table_insert(infos->previous_pixel_by_time, time_key, new_pixel); + + gint *yes = g_new(gint, 1); + *yes = 1; + g_hash_table_insert(infos->pixel_moved_by_time, second_time_key, yes); + + return *new_pixel; +} + +static void save_previous_pixels_for_time(gint time, ui_infos *infos, gui_status *status) +{ + gfloat pixel = convert_time_to_pixels_float(infos->width_drawing_area, + time, infos->current_time, infos->total_time, infos->zoom_coeff); + + infos->previous_mark_time = time; + infos->previous_mark_pixel = pixel; + g_hash_table_remove_all(infos->pixel_moved_by_time); +} + +static void compute_pixels_diff_from_previous_mark(ui_infos *infos, gui_status *status) +{ + gfloat previous_pixel = convert_time_to_pixels_float(infos->width_drawing_area, + infos->previous_mark_time, infos->current_time, infos->total_time, infos->zoom_coeff); + + gfloat diff = infos->previous_mark_pixel - previous_pixel; + infos->accumulated_diff += diff; + + gint pixels_diff = roundf(infos->accumulated_diff); + if (pixels_diff >= 0) + { + infos->pixels_diff_regarding_previous = pixels_diff; + infos->accumulated_diff -= pixels_diff; + } + else + { + infos->pixels_diff_regarding_previous = -1; + infos->accumulated_diff = 0.0; + } +} + static void draw_motif(GtkWidget *da, cairo_t *gc, gint ylimit, gint x, gint time_interval) { GdkColor color; @@ -1557,17 +1635,16 @@ } gint i; - gint i_pixel; for (i = left2; i <= right_mark; i += time_interval) { - i_pixel = convert_time_to_pixels(ui->infos->width_drawing_area, i, - ui->infos->current_time, ui->infos->total_time, ui->infos->zoom_coeff); - + gint i_pixel = convert_time_to_pixels(ui->infos->width_drawing_area, i, + ui->infos->current_time, ui->infos->total_time, ui->infos->zoom_coeff, + ui->infos); draw_motif(da, gc, ylimit, i_pixel, time_interval); } } -//!full cancel of the quick preview +//!full cancel of the preview void cancel_quick_preview_all(ui_state *ui) { cancel_quick_preview(ui->status); @@ -1575,10 +1652,11 @@ ui->status->preview_start_splitpoint = -1; } -//!cancels quick preview +//!cancels preview void cancel_quick_preview(gui_status *status) { status->quick_preview = FALSE; + status->stop_preview_right_after_start = SPLT_FALSE; } /*!motif for splitpoints @@ -1747,7 +1825,8 @@ { gint split_pixel = convert_time_to_pixels(ui->infos->width_drawing_area, current_point_hundr_secs, - ui->infos->current_time, ui->infos->total_time, ui->infos->zoom_coeff); + ui->infos->current_time, ui->infos->total_time, ui->infos->zoom_coeff, + ui->infos); //the splitpoint that we move, draw it differently gboolean draw = TRUE; @@ -1870,6 +1949,16 @@ return filtered_index; } +static void line_and_move(gint x, gint y, gint stroke_counter, cairo_t *gc) +{ + cairo_line_to(gc, x, y); + if (stroke_counter % 4 == 0) + { + cairo_stroke(gc); + } + cairo_move_to(gc, x, y); +} + //! Draws the silence wave gint draw_silence_wave(gint left_mark, gint right_mark, gint interpolation_text_x, gint interpolation_text_y, @@ -1906,24 +1995,21 @@ gint interpolation_level = adjust_filtered_index_according_to_number_of_points(filtered_index, left_mark, right_mark, ui); - gint stroke_counter = 0; - - if (!double_equals(zoom_coeff, ui->status->previous_zoom_coeff) || - interpolation_level != ui->status->previous_interpolation_level) + if (interpolation_level != ui->status->previous_interpolation_level) { clear_previous_distances(ui); } - ui->status->previous_zoom_coeff = zoom_coeff; ui->status->previous_interpolation_level = interpolation_level; - GHashTable* distance_by_time = g_hash_table_new_full(g_int64_hash, g_int64_equal, g_free, g_free); + gint stroke_counter = 0; gint i = 0; gint previous_x = 0; - long second_splitpoint_time = -2; - gint second_splitpoint_time_displayed = 0; - gint missed_lookups = 0; - gint time_counter = 0; + + gint min_y = INT_MAX; + gint max_y = 0; + gint same_x_count = 1; + gint previous_y = 0; for (i = 0;i < ui->infos->number_of_silence_points;i++) { if (interpolation_level >= 0 && point_is_filtered(i, interpolation_level, ui->infos)) @@ -1932,12 +2018,6 @@ } long time = ui->infos->silence_points[i].time; - if (time_counter == 1) - { - second_splitpoint_time = time; - } - time_counter++; - if ((time > right_mark) || (time < left_mark)) { continue; @@ -1945,96 +2025,44 @@ float level = ui->infos->silence_points[i].level; - gint x = - convert_time_to_pixels(width_drawing_area, (gfloat)time, current_time, total_time, zoom_coeff); + gint x = convert_time_to_pixels(width_drawing_area, (gfloat)time, current_time, + total_time, zoom_coeff, ui->infos); gint y = y_margin + (gint)floorf(level); - if (time > second_splitpoint_time && second_splitpoint_time > -2) + if (x != previous_x || i == ui->infos->number_of_silence_points - 1) { - gint64 *time_key = g_new(gint64, 1); - *time_key = (gint64)time; + stroke_counter++; - gint *has_distance = g_hash_table_lookup(distance_by_time, time_key); - if (has_distance != NULL) { continue; } - - if (ui->status->previous_distance_by_time != NULL) + if (same_x_count == 1) { - gint *previous_diff = - g_hash_table_lookup(ui->status->previous_distance_by_time, time_key); - - //if we miss some lookups at the start, invalid distances - if (previous_diff == NULL && stroke_counter < 20) - { - missed_lookups++; - if (missed_lookups > 3) - { - clear_previous_distances(ui); - } - } - - if (previous_diff != NULL && stroke_counter > 0) + line_and_move(x, y, stroke_counter, gc); + } + else + { + if (max_y != min_y) { - x = previous_x + *previous_diff; - if (stroke_counter == 1) - { - ui->status->previous_second_x_drawed = x; - ui->status->previous_second_time_drawed = time; - } - } - else if (stroke_counter == 0 && !second_splitpoint_time_displayed) - { - if (x < 0) { x = 0; } - - //the first point always needs to grow up - if (time == ui->status->previous_first_time_drawed && - x > ui->status->previous_first_x_drawed) - { - x = ui->status->previous_first_x_drawed; - } - else - { - //when the second point becomes the first point, dont make it grow - if (time == ui->status->previous_second_time_drawed && - x > ui->status->previous_second_x_drawed) - { - x = ui->status->previous_second_x_drawed; - } - - ui->status->previous_first_time_drawed = time; - ui->status->previous_first_x_drawed = x; - } + cairo_move_to(gc, previous_x, min_y); + cairo_line_to(gc, previous_x, max_y); + cairo_move_to(gc, previous_x, previous_y); } + line_and_move(x, y, stroke_counter, gc); } - gint *diff = g_new(gint, 1); - *diff = x - previous_x; - if (*diff < 0) { *diff = 0; } - - g_hash_table_insert(distance_by_time, time_key, diff); + min_y = y; + max_y = y; + same_x_count = 1; } - else if (time == second_splitpoint_time) + else { - second_splitpoint_time_displayed = 1; + if (y < min_y) { min_y = y; } + if (y > max_y) { max_y = y; } + same_x_count++; } previous_x = x; - - cairo_line_to(gc, x, y); - - stroke_counter++; - if (stroke_counter % 4 == 0) - { - cairo_stroke(gc); - } - cairo_move_to(gc, x, y); + previous_y = y; } - if (ui->status->previous_distance_by_time != NULL) - { - g_hash_table_destroy(ui->status->previous_distance_by_time); - } - ui->status->previous_distance_by_time = distance_by_time; - cairo_stroke(gc); color.red = 0;color.green = 0;color.blue = 0; @@ -2057,18 +2085,7 @@ void clear_previous_distances(ui_state *ui) { - gui_status *status = ui->status; - - if (status->previous_distance_by_time != NULL) - { - g_hash_table_destroy(status->previous_distance_by_time); - status->previous_distance_by_time = NULL; - } - - status->previous_first_time_drawed = -2; - status->previous_first_x_drawed = -2; - status->previous_second_x_drawed = -2; - status->previous_second_time_drawed = -2; + invalidate_previous_points_caches(ui->infos); } static void draw_rectangles_between_splitpoints(cairo_t *cairo_surface, ui_state *ui) @@ -2108,15 +2125,8 @@ } } -#if GTK_MAJOR_VERSION <= 2 -static gboolean da_draw_event(GtkWidget *da, GdkEventExpose *event, ui_state *ui) -{ - cairo_t *gc = gdk_cairo_create(da->window); -#else static gboolean da_draw_event(GtkWidget *da, cairo_t *gc, ui_state *ui) { -#endif - ui_infos *infos = ui->infos; gui_state *gui = ui->gui; gui_status *status = ui->status; @@ -2272,11 +2282,13 @@ right_mark = (gint)infos->total_time; } + compute_pixels_diff_from_previous_mark(infos, status); + gfloat total_draw_time = right_time - left_time; gchar str[30] = { '\0' }; gint beg_pixel = convert_time_to_pixels(infos->width_drawing_area, 0, - infos->current_time, infos->total_time, infos->zoom_coeff); + infos->current_time, infos->total_time, infos->zoom_coeff, infos); draw_rectangles_between_splitpoints(gc, ui); @@ -2290,18 +2302,18 @@ gint right_pixel = convert_time_to_pixels(infos->width_drawing_area, get_splitpoint_time(get_quick_preview_end_splitpoint_safe(ui), ui), - infos->current_time, infos->total_time, infos->zoom_coeff); + infos->current_time, infos->total_time, infos->zoom_coeff, infos); gint left_pixel = convert_time_to_pixels(infos->width_drawing_area, get_splitpoint_time(status->preview_start_splitpoint, ui), - infos->current_time, infos->total_time, infos->zoom_coeff); + infos->current_time, infos->total_time, infos->zoom_coeff, infos); gint preview_splitpoint_length = right_pixel - left_pixel + 1; //top buttons dh_draw_rectangle(gc, TRUE, left_pixel, gui->progress_ylimit-2, preview_splitpoint_length, 3); - //for quick preview, put red bar + //for preview, put red bar if (status->quick_preview) { color.red = 255 * 255;color.green = 255 * 160;color.blue = 255 * 160; @@ -2318,10 +2330,10 @@ gint left_pixel = convert_time_to_pixels(infos->width_drawing_area, get_splitpoint_time(status->preview_start_splitpoint, ui), - infos->current_time, infos->total_time, infos->zoom_coeff); + infos->current_time, infos->total_time, infos->zoom_coeff, infos); dh_draw_rectangle(gc, TRUE, left_pixel, gui->progress_ylimit-2, infos->width_drawing_area-left_pixel, 3); - //red bar quick preview + //red bar preview if (status->quick_preview) { color.red = 255 * 255;color.green = 255 * 160;color.blue = 255 * 160; @@ -2348,8 +2360,8 @@ } gint end_pixel = - convert_time_to_pixels(infos->width_drawing_area, infos->total_time, - infos->current_time, infos->total_time, infos->zoom_coeff); + convert_time_to_pixels(infos->width_drawing_area, infos->total_time, + infos->current_time, infos->total_time, infos->zoom_coeff, infos); //song end if (right_time >= infos->total_time) { @@ -2402,9 +2414,8 @@ //draw mobile button1 position line if (status->button1_pressed) { - gint move_pixel = convert_time_to_pixels(infos->width_drawing_area, - status->move_time, infos->current_time, - infos->total_time, infos->zoom_coeff); + gint move_pixel = convert_time_to_pixels(infos->width_drawing_area, + status->move_time, infos->current_time, infos->total_time, infos->zoom_coeff, infos); if (status->move_splitpoints) { @@ -2451,6 +2462,13 @@ dh_draw_line(gc, infos->width_drawing_area/2, gui->erase_split_ylimit, infos->width_drawing_area/2, gui->progress_ylimit, FALSE, TRUE); + //clear caches if needed + if (!double_equals(infos->zoom_coeff, ui->status->previous_zoom_coeff)) + { + clear_previous_distances(ui); + } + ui->status->previous_zoom_coeff = infos->zoom_coeff; + //silence wave if (status->show_silence_wave) { @@ -2470,9 +2488,7 @@ draw_splitpoints(left_mark, right_mark, da, gc, ui); -#if GTK_MAJOR_VERSION <= 2 - cairo_destroy(gc); -#endif + save_previous_pixels_for_time(infos->current_time, infos, status); set_process_in_progress_safe(FALSE, ui); @@ -2488,9 +2504,9 @@ } gint pixels_left = convert_time_to_pixels(ui->infos->width_drawing_area, time_left, - ui->infos->current_time, ui->infos->total_time, ui->infos->zoom_coeff); + ui->infos->current_time, ui->infos->total_time, ui->infos->zoom_coeff, ui->infos); gint pixels_right = convert_time_to_pixels(ui->infos->width_drawing_area, time_right, - ui->infos->current_time, ui->infos->total_time, ui->infos->zoom_coeff); + ui->infos->current_time, ui->infos->total_time, ui->infos->zoom_coeff, ui->infos); gint pixels_length = pixels_right - pixels_left; dh_set_color(cairo_surface, &color); @@ -2628,6 +2644,7 @@ { lock_mutex(&ui->variables_mutex); ui->status->preview_start_position = value; + ui->status->stop_preview_right_after_start = FALSE; unlock_mutex(&ui->variables_mutex); } @@ -2640,7 +2657,7 @@ return preview_start_position; } -//!makes a quick preview of the song +//!makes a preview of the song void player_quick_preview(gint splitpoint_to_preview, ui_state *ui) { if (splitpoint_to_preview == -1) @@ -2675,7 +2692,7 @@ player_seek(get_preview_start_position_safe(ui) * 10, ui); change_progress_bar(ui); - put_status_message(_(" quick preview..."), ui); + put_status_message(_(" preview..."), ui); status->quick_preview = FALSE; if (get_quick_preview_end_splitpoint_safe(ui) != -1) @@ -2729,7 +2746,7 @@ status->select_splitpoints = TRUE; select_splitpoint(splitpoint_selected, gui); } - refresh_drawing_area(gui); + refresh_drawing_area(gui, ui->infos); } else { @@ -2743,7 +2760,7 @@ status->check_splitpoint = TRUE; update_splitpoint_check(splitpoint_selected, ui); } - refresh_drawing_area(gui); + refresh_drawing_area(gui, ui->infos); } } } @@ -2787,7 +2804,7 @@ remove_splitpoint(splitpoint_to_erase, TRUE, ui); } - refresh_drawing_area(gui); + refresh_drawing_area(gui, ui->infos); } } } @@ -2863,7 +2880,7 @@ } end: - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); return TRUE; } @@ -2919,7 +2936,7 @@ status->move_time = infos->total_time; } - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); } else { @@ -2950,7 +2967,7 @@ adjust_zoom_coeff(infos); - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); } } } @@ -3001,12 +3018,7 @@ gtk_widget_set_size_request(drawing_area, DRAWING_AREA_WIDTH, DRAWING_AREA_HEIGHT); -#if GTK_MAJOR_VERSION <= 2 - g_signal_connect(drawing_area, "expose_event", G_CALLBACK(da_draw_event), ui); -#else g_signal_connect(drawing_area, "draw", G_CALLBACK(da_draw_event), ui); -#endif - g_signal_connect(drawing_area, "button_press_event", G_CALLBACK(da_press_event), ui); g_signal_connect(drawing_area, "button_release_event", G_CALLBACK(da_unpress_event), ui); g_signal_connect(drawing_area, "motion_notify_event", G_CALLBACK(da_notify_event), ui); @@ -3225,7 +3237,7 @@ GtkWidget *hbox = wh_hbox_new(); GtkWidget *playlist_remove_file_button = - wh_create_cool_button(GTK_STOCK_REMOVE, _("_Erase selected entries"), FALSE); + wh_create_cool_button("list-remove", _("_Erase selected entries"), FALSE); ui->gui->playlist_remove_file_button = playlist_remove_file_button; gtk_box_pack_start(GTK_BOX(hbox), playlist_remove_file_button, FALSE, FALSE, 5); gtk_widget_set_sensitive(playlist_remove_file_button,FALSE); @@ -3233,7 +3245,7 @@ G_CALLBACK(playlist_remove_file_button_event), ui); GtkWidget *playlist_remove_all_files_button = - wh_create_cool_button(GTK_STOCK_CLEAR, _("E_rase all history"),FALSE); + wh_create_cool_button("edit-clear", _("E_rase all history"),FALSE); ui->gui->playlist_remove_all_files_button = playlist_remove_all_files_button; gtk_box_pack_start(GTK_BOX(hbox), playlist_remove_all_files_button, FALSE, FALSE, 5); gtk_widget_set_sensitive(playlist_remove_all_files_button,FALSE); @@ -3285,28 +3297,62 @@ return main_hbox; } -static void action_set_sensitivity(gchar *name, gboolean sensitivity, gui_state *gui) +static void action_set_sensitivity(const gchar *name, gboolean sensitivity, gui_state *gui) { - GtkAction *action = gtk_action_group_get_action(gui->action_group, name); - gtk_action_set_sensitive(action, sensitivity); + GAction *action = g_action_map_lookup_action(G_ACTION_MAP(gui->application), name); + g_simple_action_set_enabled(G_SIMPLE_ACTION(action), sensitivity); } void player_key_actions_set_sensitivity(gboolean sensitivity, gui_state *gui) { - action_set_sensitivity("Player_pause", sensitivity, gui); - action_set_sensitivity("Player_forward", sensitivity, gui); - action_set_sensitivity("Player_backward", sensitivity, gui); - action_set_sensitivity("Player_small_forward", sensitivity, gui); - action_set_sensitivity("Player_small_backward", sensitivity, gui); - action_set_sensitivity("Player_big_forward", sensitivity, gui); - action_set_sensitivity("Player_big_backward", sensitivity, gui); - action_set_sensitivity("Player_next_splitpoint", sensitivity, gui); - action_set_sensitivity("Player_previous_splitpoint", sensitivity, gui); - action_set_sensitivity("Player_before_closest_splitpoint", sensitivity, gui); - action_set_sensitivity("Add_splitpoint", sensitivity, gui); - action_set_sensitivity("Delete_closest_splitpoint", sensitivity, gui); - action_set_sensitivity("Zoom_in", sensitivity, gui); - action_set_sensitivity("Zoom_out", sensitivity, gui); + action_set_sensitivity("pause_play", sensitivity, gui); + action_set_sensitivity("seek_forward", sensitivity, gui); + action_set_sensitivity("seek_backward", sensitivity, gui); + action_set_sensitivity("small_seek_forward", sensitivity, gui); + action_set_sensitivity("small_seek_backward", sensitivity, gui); + action_set_sensitivity("big_seek_forward", sensitivity, gui); + action_set_sensitivity("big_seek_backward", sensitivity, gui); + action_set_sensitivity("seek_next_splitpoint", sensitivity, gui); + action_set_sensitivity("seek_previous_splitpoint", sensitivity, gui); + action_set_sensitivity("preview_closest", sensitivity, gui); + action_set_sensitivity("preview_closest_and_pause", sensitivity, gui); + action_set_sensitivity("preview_before_closest", sensitivity, gui); + action_set_sensitivity("add_splitpoint", sensitivity, gui); + action_set_sensitivity("delete_closest_splitpoint", sensitivity, gui); + action_set_sensitivity("zoom_in", sensitivity, gui); + action_set_sensitivity("zoom_out", sensitivity, gui); +} + +static void pause_quick_preview_now(ui_state *ui) +{ + cancel_quick_preview(ui->status); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ui->gui->pause_button), TRUE); + put_status_message(_(" preview finished, song paused"), ui); +} + +static gint remaining_time_to_stop_timer(ui_state *ui) +{ + pause_quick_preview_now(ui); + return FALSE; +} + +static gint get_preview_end_time(ui_state *ui) +{ + gint preview_end_point = get_quick_preview_end_splitpoint_safe(ui); + if (preview_end_point < 0) { + return -1; + } + + if (ui->status->stop_preview_right_after_start) + { + if (ui->status->preview_start_splitpoint < 0) { return -1; } + gint start_time = get_splitpoint_time(ui->status->preview_start_splitpoint, ui); + return start_time + 100 * 3; + } + + gint stop_splitpoint_time = get_splitpoint_time(preview_end_point, ui); + + return stop_splitpoint_time; } /*! timer used to print infos about the song @@ -3373,7 +3419,7 @@ change_progress_bar(ui); } - //part of quick preview + //part of preview if (status->preview_start_splitpoint != -1) { //if we have a splitpoint after the current @@ -3392,16 +3438,20 @@ } //if we have a preview, stop if needed - if (status->quick_preview) + gint preview_end_time = get_preview_end_time(ui); + if (status->quick_preview && preview_end_time >= 0) { - gint stop_splitpoint = get_splitpoint_time(get_quick_preview_end_splitpoint_safe(ui), ui); + if (ui->infos->selected_player == PLAYER_GSTREAMER) + { + preview_end_time -= (ui->infos->gstreamer_stop_before_end / 10); + } - if ((stop_splitpoint < (gint)infos->current_time) - && (get_quick_preview_end_splitpoint_safe(ui) != -1)) + double rounded = round((double)ui->infos->timeout_value / 10.0); + gint compared_time = (gint)infos->current_time + (gint) rounded; + if (preview_end_time <= compared_time) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gui->pause_button), TRUE); - cancel_quick_preview(status); - put_status_message(_(" quick preview finished, song paused"), ui); + gint remaining_time_to_stop = (preview_end_time - (gint) infos->current_time) * 10; + g_timeout_add(remaining_time_to_stop, (GSourceFunc)remaining_time_to_stop_timer, ui); } } @@ -3479,6 +3529,7 @@ void file_chooser_ok_event(const gchar *fname, ui_state *ui) { change_current_filename(fname, ui); + gtk_widget_set_sensitive(ui->gui->play_button, TRUE); wh_set_image_on_button(GTK_BUTTON(ui->gui->play_button), g_object_ref(ui->gui->PlayButton_active)); diff -Nru mp3splt-gtk-0.9/src/player_window.h mp3splt-gtk-0.9.2/src/player_window.h --- mp3splt-gtk-0.9/src/player_window.h 2013-02-08 09:26:01.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/player_window.h 2014-05-10 14:49:02.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * http://mp3splt.sourceforge.net/ * @@ -44,6 +44,13 @@ #define ICON_EXT ".svg" #define DEFAULT_TIMEOUT_VALUE 200 + +#define DEFAULT_GSTREAMER_STOP_BEFORE_END_VALUE 200 + +#define DEFAULT_SMALL_SEEK_JUMP_VALUE 300 +#define DEFAULT_SEEK_JUMP_VALUE 0 +#define DEFAULT_BIG_SEEK_JUMP_VALUE 0 + #define DEFAULT_SILENCE_WAVE_NUMBER_OF_POINTS_THRESHOLD 4000 //float comparison @@ -66,7 +73,7 @@ void connect_button_event(GtkWidget *widget, ui_state *ui); void disconnect_button_event(GtkWidget *widget, ui_state *ui); void pause_event(GtkWidget *widget, ui_state *ui); -void refresh_drawing_area(gui_state *gui); +void refresh_drawing_area(gui_state *gui, ui_infos *infos); gfloat get_right_drawing_time(gfloat current_time, gfloat total_time, gfloat zoom_coeff); gfloat get_left_drawing_time(gfloat current_time, gfloat total_time, gfloat zoom_coeff); diff -Nru mp3splt-gtk-0.9/src/preferences_manager.c mp3splt-gtk-0.9.2/src/preferences_manager.c --- mp3splt-gtk-0.9/src/preferences_manager.c 2013-02-08 09:25:55.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/preferences_manager.c 2014-05-28 22:43:53.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -38,10 +38,10 @@ * start of the program. ********************************************************/ -#include "preferences_manager.h" - #include "all_includes.h" +#include "preferences_manager.h" + static void check_pref_file_and_write_default(ui_state *ui); static void pm_free_spinner_int_preferences(GArray *spinner_int_preferences); static void pm_free_range_preferences(GArray *range_preferences); @@ -275,6 +275,10 @@ item = g_key_file_get_boolean(key_file, "split", "frame_mode", NULL); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ui->gui->frame_mode), item); + //bit reservoir mode + item = g_key_file_get_boolean(key_file, "split", "bit_reservoir_mode", NULL); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ui->gui->bit_reservoir_mode), item); + //adjust mode item = g_key_file_get_boolean(key_file, "split", "adjust_mode", NULL); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ui->gui->adjust_mode), item); @@ -503,6 +507,9 @@ g_key_file_set_boolean(my_key_file, "split", "frame_mode", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ui->gui->frame_mode))); + g_key_file_set_boolean(my_key_file, "split", "bit_reservoir_mode", + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ui->gui->bit_reservoir_mode))); + //adjust mode g_key_file_set_boolean(my_key_file, "split", "adjust_mode", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ui->gui->adjust_mode))); @@ -583,7 +590,7 @@ get_checked_tags_version_radio_box(ui->gui)); //type of split: split mode - g_key_file_set_integer(my_key_file, "split", "split_mode", get_selected_split_mode_safe(ui)); + g_key_file_set_integer(my_key_file, "split", "split_mode", get_selected_split_mode(ui)); //time value g_key_file_set_integer(my_key_file, "split", "split_mode_time_value", gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(ui->gui->spinner_time))); @@ -673,6 +680,11 @@ g_key_file_set_boolean(my_key_file, "split", "frame_mode", FALSE); } + if (!g_key_file_has_key(my_key_file, "split", "bit_reservoir_mode",NULL)) + { + g_key_file_set_boolean(my_key_file, "split", "bit_reservoir_mode", FALSE); + } + //adjust mode if (!g_key_file_has_key(my_key_file, "split", "adjust_mode",NULL)) { diff -Nru mp3splt-gtk-0.9/src/preferences_manager.h mp3splt-gtk-0.9.2/src/preferences_manager.h --- mp3splt-gtk-0.9/src/preferences_manager.h 2013-02-08 09:26:01.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/preferences_manager.h 2014-05-10 14:49:02.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * http://mp3splt.sourceforge.net/ * diff -Nru mp3splt-gtk-0.9/src/preferences_window.c mp3splt-gtk-0.9.2/src/preferences_window.c --- mp3splt-gtk-0.9/src/preferences_window.c 2013-07-14 22:24:28.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/preferences_window.c 2014-10-12 09:55:50.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -204,14 +204,12 @@ { gtk_widget_set_sensitive(ui->gui->output_entry, TRUE); gtk_widget_set_sensitive(ui->gui->output_label, TRUE); - mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_FORMAT); gtk_widget_set_sensitive(ui->gui->output_default_label, FALSE); } else { gtk_widget_set_sensitive(ui->gui->output_entry, FALSE); gtk_widget_set_sensitive(ui->gui->output_label, FALSE); - mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_DEFAULT); gtk_widget_set_sensitive(ui->gui->output_default_label, TRUE); } @@ -256,8 +254,7 @@ GtkWidget *language_inside_hbox = wh_hbox_new();; GtkWidget *scrolled_window = wh_create_scrolled_window(); - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), - GTK_WIDGET(language_inside_hbox)); + wh_add_box_to_scrolled_window(language_inside_hbox, scrolled_window); gtk_box_pack_start(GTK_BOX(language_hbox), scrolled_window, TRUE, TRUE, 0); GtkWidget *vbox = wh_vbox_new();; @@ -303,7 +300,8 @@ { if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(frame_mode))) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ui->gui->adjust_mode),FALSE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ui->gui->adjust_mode), FALSE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ui->gui->bit_reservoir_mode), FALSE); } ui_save_preferences(NULL, ui); @@ -330,6 +328,7 @@ gui_state *gui = ui->gui; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gui->frame_mode), FALSE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gui->bit_reservoir_mode), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gui->adjust_mode), FALSE); gtk_spin_button_set_value(GTK_SPIN_BUTTON(gui->spinner_adjust_threshold), SPLT_DEFAULT_PARAM_THRESHOLD); @@ -431,6 +430,18 @@ return wh_set_title_and_get_vbox(vbox, _("<b>Directory for split files</b>")); } +static void bit_reservoir_event(GtkToggleButton *bit_reservoir, ui_state *ui) +{ + gint with_bit_reservoir = + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ui->gui->bit_reservoir_mode)); + if (with_bit_reservoir == TRUE) + { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ui->gui->frame_mode), TRUE); + } + + ui_save_preferences(NULL, ui); +} + //! Creates the box for split mode selection static GtkWidget *create_split_options_box(ui_state *ui) { @@ -472,6 +483,17 @@ gtk_box_pack_start(GTK_BOX(vbox), frame_mode, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(frame_mode), "toggled", G_CALLBACK(frame_event), ui); + //bit reservoir handling option + GtkWidget *bit_reservoir_mode = + gtk_check_button_new_with_mnemonic(_("_[Experimental] Bit reservoir handling for gapless playback (mp3 only)")); + gtk_widget_set_tooltip_text(bit_reservoir_mode, + _("Split files will play gapless only on players " + "supporting the LAME tag delay and padding values\n" + "Gapless players examples: cmus, mpg123, foobar2000")); + gui->bit_reservoir_mode = bit_reservoir_mode; + gtk_box_pack_start(GTK_BOX(vbox), bit_reservoir_mode, FALSE, FALSE, 0); + g_signal_connect(G_OBJECT(bit_reservoir_mode), "toggled", G_CALLBACK(bit_reservoir_event), ui); + //auto adjust option GtkWidget *adjust_mode = gtk_check_button_new_with_mnemonic(_("_Auto-adjust mode (use" " silence detection to auto-adjust splitpoints)")); @@ -559,7 +581,7 @@ gtk_box_pack_start(GTK_BOX(vbox), horiz_fake, FALSE, FALSE, 0); GtkWidget *set_default_prefs_button = - wh_create_cool_button(GTK_STOCK_PROPERTIES, _("Set _default split options"),FALSE); + wh_create_cool_button("document-properties", _("Set _default split options"),FALSE); g_signal_connect(G_OBJECT(set_default_prefs_button), "clicked", G_CALLBACK(set_default_prefs_event), ui); gtk_box_pack_start (GTK_BOX (horiz_fake), set_default_prefs_button, FALSE, FALSE, 5); @@ -574,8 +596,7 @@ GtkWidget *inside_hbox = wh_hbox_new(); GtkWidget *scrolled_window = wh_create_scrolled_window(); - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), - GTK_WIDGET(inside_hbox)); + wh_add_box_to_scrolled_window(inside_hbox, scrolled_window); gtk_box_pack_start(GTK_BOX(general_hbox), scrolled_window, TRUE, TRUE, 0); GtkWidget *inside_vbox = wh_vbox_new(); @@ -600,11 +621,13 @@ { hide_connect_button(ui->gui); gtk_widget_show(ui->gui->playlist_box); + gtk_widget_set_sensitive(ui->gui->gstreamer_stop_before_end_box, TRUE); } else { show_connect_button(ui->gui); gtk_widget_hide(ui->gui->playlist_box); + gtk_widget_set_sensitive(ui->gui->gstreamer_stop_before_end_box, FALSE); } gtk_widget_show(ui->gui->player_box); @@ -621,6 +644,30 @@ ui_save_preferences(NULL, ui); } +static void update_gstreamer_stop_before_end_value(GtkWidget *spinner, ui_state *ui) +{ + ui->infos->gstreamer_stop_before_end = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinner)); + ui_save_preferences(NULL, ui); +} + +static void update_small_seek_jump_value(GtkWidget *spinner, ui_state *ui) +{ + ui->infos->small_seek_jump_value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinner)); + ui_save_preferences(NULL, ui); +} + +static void update_seek_jump_value(GtkWidget *spinner, ui_state *ui) +{ + ui->infos->seek_jump_value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinner)); + ui_save_preferences(NULL, ui); +} + +static void update_big_seek_jump_value(GtkWidget *spinner, ui_state *ui) +{ + ui->infos->big_seek_jump_value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinner)); + ui_save_preferences(NULL, ui); +} + //!Create the box the player backend can be selected with static GtkWidget *create_player_options_box(ui_state *ui) { @@ -655,6 +702,62 @@ spinner, (void (*)(GtkWidget *, gpointer)) update_timeout_value, ui, ui); + GtkWidget *gstreamer_vbox = wh_vbox_new(); + ui->gui->gstreamer_stop_before_end_box = gstreamer_vbox; + +#ifndef NO_GSTREAMER + GtkWidget *gstreamer_stop_before_end = + wh_create_int_spinner_in_box(_("Stop GStreamer preview"), _("milliseconds before the end."), + (gdouble)DEFAULT_GSTREAMER_STOP_BEFORE_END_VALUE, 0.0, 1000.0, 50.0, 100.0, + NULL, update_gstreamer_stop_before_end_value, ui, gstreamer_vbox); + ui_register_spinner_int_preference("player", "gstreamer_stop_before_end", + DEFAULT_GSTREAMER_STOP_BEFORE_END_VALUE, gstreamer_stop_before_end, + (void (*)(GtkWidget *, gpointer)) update_gstreamer_stop_before_end_value, ui, ui); + + gtk_box_pack_start(GTK_BOX(vbox), gstreamer_vbox, TRUE, TRUE, 0); +#endif + + //Seek times + + GtkWidget *seek_vbox = wh_vbox_new(); + + GtkWidget *small_seek_jump = wh_create_int_spinner_in_box(_("Small seek jumps for "), + _("milliseconds."), + (gdouble)DEFAULT_SMALL_SEEK_JUMP_VALUE, 0.0, (gdouble)G_MAXINT, 100.0, 1000.0, + NULL, + update_small_seek_jump_value, ui, seek_vbox); + ui_register_spinner_int_preference("player", "small_seek_jump", DEFAULT_SMALL_SEEK_JUMP_VALUE, + small_seek_jump, (void (*)(GtkWidget *, gpointer)) update_small_seek_jump_value, + ui, ui); + + GtkWidget *seek_jump = wh_create_int_spinner_in_box(_("Seek jumps for "), + _("milliseconds. (0=auto)"), + (gdouble)DEFAULT_SEEK_JUMP_VALUE, 0.0, (gdouble)G_MAXINT, 1000.0, 10000.0, + NULL, + update_seek_jump_value, ui, seek_vbox); + ui_register_spinner_int_preference("player", "seek_jump", DEFAULT_SEEK_JUMP_VALUE, + seek_jump, (void (*)(GtkWidget *, gpointer)) update_seek_jump_value, + ui, ui); + + GtkWidget *big_seek_jump = wh_create_int_spinner_in_box(_("Big seek jumps for "), + _("milliseconds. (0=auto)"), + (gdouble)DEFAULT_BIG_SEEK_JUMP_VALUE, 0.0, (gdouble)G_MAXINT, 1000.0, 60000.0, + NULL, + update_big_seek_jump_value, ui, seek_vbox); + ui_register_spinner_int_preference("player", "big_seek_jump", DEFAULT_BIG_SEEK_JUMP_VALUE, + big_seek_jump, (void (*)(GtkWidget *, gpointer)) update_big_seek_jump_value, + ui, ui); + + GtkWidget *hbox_for_margin = wh_put_in_new_hbox(seek_vbox, 3, FALSE, FALSE); + + GtkWidget *seek_times_frame = gtk_frame_new(_("Seek times")); + gtk_container_add(GTK_CONTAINER(seek_times_frame), hbox_for_margin); + + horiz_fake = wh_hbox_new(); + gtk_box_pack_start(GTK_BOX(horiz_fake), seek_times_frame, FALSE, FALSE, 0); + + gtk_box_pack_start(GTK_BOX(vbox), horiz_fake, FALSE, FALSE, 0); + return wh_set_title_and_get_vbox(vbox, _("<b>Player options</b>")); } @@ -711,17 +814,9 @@ return ui->infos->width_drawing_area; } -#if GTK_MAJOR_VERSION <= 2 -static gboolean wave_quality_draw_event(GtkWidget *drawing_area, GdkEventExpose *event, - preview_index_and_data *data) -{ - cairo_t *cairo_surface = gdk_cairo_create(drawing_area->window); -#else static gboolean wave_quality_draw_event(GtkWidget *drawing_area, cairo_t *cairo_surface, preview_index_and_data *data) { -#endif - ui_state *ui = data->data; gint index = data->index; @@ -751,16 +846,16 @@ if (zoom_coeff > 100) { break; } } + ui->infos->drawing_preferences_silence_wave = SPLT_TRUE; + gint interpolation_level = draw_silence_wave((gint)left_time, (gint)right_time, width / 2, 50, drawing_time, width, 0, current_time, ui->infos->total_time, zoom_coeff, drawing_area, cairo_surface, ui); - update_wave_preview_label_markup(index, interpolation_level, ui); + ui->infos->drawing_preferences_silence_wave = SPLT_FALSE; -#if GTK_MAJOR_VERSION <= 2 - cairo_destroy(cairo_surface); -#endif + update_wave_preview_label_markup(index, interpolation_level, ui); return TRUE; } @@ -774,7 +869,7 @@ gchar wave_availability[256] = { '\0' }; g_snprintf(wave_availability, 256, "<span style='italic' color='#0000AA'>%s</span>", - _("Wave preview is only available if the amplitude wave is shown in the player")); + _("Only available if the amplitude wave is shown in the player")); gtk_label_set_markup(GTK_LABEL(wave_preview_label), wave_availability); gtk_box_pack_start(GTK_BOX(label_hbox), wave_preview_label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), label_hbox, FALSE, FALSE, 4); @@ -790,13 +885,9 @@ ui->infos->preview_indexes[i].index = i; ui->infos->preview_indexes[i].data = ui; -#if GTK_MAJOR_VERSION <= 2 - g_signal_connect(wave_quality_da, "expose_event", G_CALLBACK(wave_quality_draw_event), - &ui->infos->preview_indexes[i]); -#else g_signal_connect(wave_quality_da, "draw", G_CALLBACK(wave_quality_draw_event), &ui->infos->preview_indexes[i]); -#endif + wh_put_in_hbox_and_attach_to_vbox(wave_quality_da, vbox, 0); GtkWidget *minutes_label = gtk_label_new(NULL); @@ -806,7 +897,11 @@ wh_put_in_hbox_and_attach_to_vbox_with_bottom_margin(minutes_label, vbox, 0, 4); } - return vbox; + GtkWidget *hbox_for_margin = wh_put_in_new_hbox(vbox, 6, FALSE, FALSE); + + GtkWidget *wave_preview_frame = gtk_frame_new(_("Wave preview")); + gtk_container_add(GTK_CONTAINER(wave_preview_frame), hbox_for_margin); + return wh_put_in_new_hbox(wave_preview_frame, 0, FALSE, FALSE); } static void update_wave_preview_label_markup(gint index, gint interpolation_level, ui_state *ui) @@ -843,7 +938,7 @@ GtkWidget *wave_quality_label = gtk_label_new(_("Wave quality (higher is better but consumes more CPU):")); gtk_box_pack_start(GTK_BOX(range_hbox), wave_quality_label, FALSE, FALSE, 0); - + GtkWidget *wave_quality_hscale = wh_hscale_new_with_range(-6.0, 6.0, 1.0); gtk_scale_set_draw_value(GTK_SCALE(wave_quality_hscale), TRUE); gtk_box_pack_start(GTK_BOX(range_hbox), wave_quality_hscale, FALSE, FALSE, 4); @@ -860,6 +955,9 @@ gtk_box_pack_start(GTK_BOX(vbox), range_hbox, FALSE, FALSE, 0); + GtkWidget *wave_quality_box = create_wave_quality_preview_box(ui); + gtk_box_pack_start(GTK_BOX(vbox), wave_quality_box, FALSE, FALSE, 0); + return wh_set_title_and_get_vbox(vbox, _("<b>Amplitude wave options</b>")); } @@ -874,8 +972,7 @@ GtkWidget *player_scrolled_window = wh_create_scrolled_window(); ui->gui->player_scrolled_window = player_scrolled_window; - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(player_scrolled_window), - GTK_WIDGET(inside_hbox)); + wh_add_box_to_scrolled_window(inside_hbox, player_scrolled_window); gtk_box_pack_start(GTK_BOX(player_hbox), player_scrolled_window, TRUE, TRUE, 0); GtkWidget *vbox = wh_vbox_new();; @@ -887,22 +984,59 @@ GtkWidget *wave_options_box = create_wave_options_box(ui); gtk_box_pack_start(GTK_BOX(vbox), wave_options_box, FALSE, FALSE, 3); - GtkWidget *wave_quality_box = create_wave_quality_preview_box(ui); - gtk_box_pack_start(GTK_BOX(inside_vbox), wave_quality_box, FALSE, FALSE, 0); - return player_hbox; } +static gboolean check_output_format_end(ui_with_err *ui_err) +{ + ui_state *ui = ui_err->ui; + + remove_status_message(ui->gui); + print_status_bar_confirmation_in_idle(ui_err->err, ui); + + set_process_in_progress_and_wait_safe(FALSE, ui_err->ui); + + g_free(ui_err); + + return FALSE; +} + +static gpointer check_output_format_thread(ui_with_fname *ui_fname) +{ + ui_state *ui = ui_fname->ui; + + set_process_in_progress_and_wait_safe(TRUE, ui); + + gint error = mp3splt_set_oformat(ui->mp3splt_state, ui_fname->fname); + + ui_with_err *ui_err = g_malloc0(sizeof(ui_with_err)); + ui_err->err = error; + ui_err->ui = ui; + + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)check_output_format_end, ui_err, NULL); + + g_free(ui_fname->fname); + g_free(ui_fname); + + return NULL; +} + //!update the save buttons on an output entry event static gboolean output_entry_event(GtkWidget *widget, GdkEventKey *event, ui_state *ui) { const char *data = gtk_entry_get_text(GTK_ENTRY(ui->gui->output_entry)); - gint error = mp3splt_set_oformat(ui->mp3splt_state, data); - remove_status_message(ui->gui); - print_status_bar_confirmation(error, ui); + if (data) + { + ui_with_fname *ui_fname = g_malloc0(sizeof(ui_with_fname)); + ui_fname->ui = ui; + ui_fname->fname = strdup(data); + + create_thread_and_unref((GThreadFunc)check_output_format_thread, + (gpointer) ui_fname, ui, "check_output_format"); + } ui_save_preferences(NULL, ui); - + return FALSE; } @@ -995,6 +1129,7 @@ " @u: track number identifier as uppercase letter (not the real ID3 track number) **\n" " @U: track tag number as uppercase letter **\n" " @f: input filename (without extension)\n" + " @d: last directory of the input filename or the filename itself if no directory\n" " @m, @s or @h: the number of minutes, seconds or hundreths of seconds of the start splitpoint **\n" " @M, @S or @H: the number of minutes, seconds or hundreths of seconds of the end splitpoint **\n" "\n" @@ -1017,8 +1152,7 @@ GtkWidget *output_inside_hbox = wh_hbox_new();; GtkWidget *scrolled_window = wh_create_scrolled_window(); - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), - GTK_WIDGET(output_inside_hbox)); + wh_add_box_to_scrolled_window(output_inside_hbox, scrolled_window); gtk_box_pack_start(GTK_BOX(output_hbox), scrolled_window, TRUE, TRUE, 0); GtkWidget *vbox = wh_vbox_new();; @@ -1108,97 +1242,132 @@ return combo; } -static void test_regex_event(GtkWidget *widget, ui_state *ui) +static gboolean test_regex_end(ui_with_fname *ui_fname) { - put_tags_from_filename_regex_options(ui); + ui_state *ui = ui_fname->ui; - const gchar *test_regex_filename = gtk_entry_get_text(GTK_ENTRY(ui->gui->test_regex_fname_entry)); - mp3splt_set_filename_to_split(ui->mp3splt_state, test_regex_filename); + if (ui_fname->fname) + { + gtk_label_set_text(GTK_LABEL(ui->gui->sample_result_label), ui_fname->fname); + g_free(ui_fname->fname); + } + else + { + gtk_label_set_text(GTK_LABEL(ui->gui->sample_result_label), ""); + } + + g_free(ui_fname); + + set_process_in_progress_and_wait_safe(FALSE, ui); + + return FALSE; +} + +static gpointer test_regex_thread(ui_for_split *ui_fs) +{ + ui_state *ui = ui_fs->ui; + + set_process_in_progress_and_wait_safe(TRUE, ui); + + put_tags_from_filename_regex_options(ui_fs); + + mp3splt_set_filename_to_split(ui->mp3splt_state, ui_fs->test_regex_filename); gint error = SPLT_OK; splt_tags *tags = mp3splt_parse_filename_regex(ui->mp3splt_state, &error); - print_status_bar_confirmation(error, ui); + print_status_bar_confirmation_in_idle(error, ui); - if (error >= 0) - { - GString *regex_result = g_string_new(NULL); + if (error < 0) { goto end; } - g_string_append(regex_result, _("<artist>: ")); - char *artist = mp3splt_tags_get(tags, SPLT_TAGS_ARTIST); - if (artist) - { - g_string_append(regex_result, artist); - free(artist); - } - g_string_append(regex_result, "\n"); - - g_string_append(regex_result, _("<album>: ")); - char *album = mp3splt_tags_get(tags, SPLT_TAGS_ALBUM); - if (album) - { - g_string_append(regex_result, album); - free(album); - } - g_string_append(regex_result, "\n"); + GString *regex_result = g_string_new(NULL); + g_string_append(regex_result, _("<artist>: ")); + char *artist = mp3splt_tags_get(tags, SPLT_TAGS_ARTIST); + if (artist) + { + g_string_append(regex_result, artist); + free(artist); + } + g_string_append(regex_result, "\n"); - g_string_append(regex_result, _("<title>: ")); - char *title = mp3splt_tags_get(tags, SPLT_TAGS_TITLE); - if (title) - { - g_string_append(regex_result, title); - free(title); - } - g_string_append(regex_result, "\n"); + g_string_append(regex_result, _("<album>: ")); + char *album = mp3splt_tags_get(tags, SPLT_TAGS_ALBUM); + if (album) + { + g_string_append(regex_result, album); + free(album); + } + g_string_append(regex_result, "\n"); - g_string_append(regex_result, _("<genre>: ")); - char *genre = mp3splt_tags_get(tags, SPLT_TAGS_GENRE); - if (genre) - { - g_string_append(regex_result, genre); - free(genre); - } - g_string_append(regex_result, "\n"); - g_string_append(regex_result, _("<comment>: ")); - char *comment = mp3splt_tags_get(tags, SPLT_TAGS_COMMENT); - if (comment) - { - g_string_append(regex_result, comment); - free(comment); - } - g_string_append(regex_result, "\n"); + g_string_append(regex_result, _("<title>: ")); + char *title = mp3splt_tags_get(tags, SPLT_TAGS_TITLE); + if (title) + { + g_string_append(regex_result, title); + free(title); + } + g_string_append(regex_result, "\n"); - g_string_append(regex_result, _("<year>: ")); - char *year = mp3splt_tags_get(tags, SPLT_TAGS_YEAR); - if (year) - { - g_string_append(regex_result, year); - free(year); - } - g_string_append(regex_result, "\n"); + g_string_append(regex_result, _("<genre>: ")); + char *genre = mp3splt_tags_get(tags, SPLT_TAGS_GENRE); + if (genre) + { + g_string_append(regex_result, genre); + free(genre); + } + g_string_append(regex_result, "\n"); - g_string_append(regex_result, _("<track>: ")); - gchar *track = mp3splt_tags_get(tags, SPLT_TAGS_TRACK); - if (track) - { - g_string_append(regex_result, track); - free(track); - } + g_string_append(regex_result, _("<comment>: ")); + char *comment = mp3splt_tags_get(tags, SPLT_TAGS_COMMENT); + if (comment) + { + g_string_append(regex_result, comment); + free(comment); + } + g_string_append(regex_result, "\n"); - gchar *regex_result_text = g_string_free(regex_result, FALSE); - if (regex_result_text) - { - gtk_label_set_text(GTK_LABEL(ui->gui->sample_result_label), regex_result_text); - g_free(regex_result_text); - } + g_string_append(regex_result, _("<year>: ")); + char *year = mp3splt_tags_get(tags, SPLT_TAGS_YEAR); + if (year) + { + g_string_append(regex_result, year); + free(year); } - else + g_string_append(regex_result, "\n"); + + g_string_append(regex_result, _("<track>: ")); + gchar *track = mp3splt_tags_get(tags, SPLT_TAGS_TRACK); + if (track) { - gtk_label_set_text(GTK_LABEL(ui->gui->sample_result_label), ""); + g_string_append(regex_result, track); + free(track); } +end: mp3splt_free_one_tag(tags); + free_ui_for_split(ui_fs); + + ui_with_fname *ui_fname = g_malloc0(sizeof(ui_with_fname)); + ui_fname->ui = ui; + ui_fname->fname = g_string_free(regex_result, FALSE); + + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)test_regex_end, ui_fname, NULL); + + return NULL; +} + +static void test_regex_event(GtkWidget *widget, ui_state *ui) +{ + ui_for_split *ui_fs = build_ui_for_split(ui); + + const gchar *test_regex_filename = gtk_entry_get_text(GTK_ENTRY(ui->gui->test_regex_fname_entry)); + if (test_regex_filename != NULL) + { + ui_fs->test_regex_filename = g_strdup(test_regex_filename); + } + + create_thread_and_unref((GThreadFunc)test_regex_thread, (gpointer) ui_fs, ui, "test_regex"); } static GtkWidget *create_extract_tags_from_filename_options_box(ui_state *ui) @@ -1346,8 +1515,7 @@ GtkWidget *inside_hbox = wh_hbox_new(); GtkWidget *scrolled_window = wh_create_scrolled_window(); - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), - GTK_WIDGET(inside_hbox)); + wh_add_box_to_scrolled_window(inside_hbox, scrolled_window); gtk_box_pack_start(GTK_BOX(outside_vbox), scrolled_window, TRUE, TRUE, 0); GtkWidget *vbox = wh_vbox_new();; diff -Nru mp3splt-gtk-0.9/src/preferences_window.h mp3splt-gtk-0.9.2/src/preferences_window.h --- mp3splt-gtk-0.9/src/preferences_window.h 2013-02-08 09:26:01.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/preferences_window.h 2014-05-10 14:49:03.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * http://mp3splt.sourceforge.net/ * diff -Nru mp3splt-gtk-0.9/src/radio_helper.c mp3splt-gtk-0.9.2/src/radio_helper.c --- mp3splt-gtk-0.9/src/radio_helper.c 2013-02-08 09:25:56.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/radio_helper.c 2014-05-10 14:48:58.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/radio_helper.h mp3splt-gtk-0.9.2/src/radio_helper.h --- mp3splt-gtk-0.9/src/radio_helper.h 2013-02-08 09:26:01.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/radio_helper.h 2014-05-10 14:49:03.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/snackamp_control.c mp3splt-gtk-0.9.2/src/snackamp_control.c --- mp3splt-gtk-0.9/src/snackamp_control.c 2013-02-08 09:25:56.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/snackamp_control.c 2014-05-10 14:48:58.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/snackamp_control.h mp3splt-gtk-0.9.2/src/snackamp_control.h --- mp3splt-gtk-0.9/src/snackamp_control.h 2013-02-08 09:26:01.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/snackamp_control.h 2014-05-10 14:49:03.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * http://mp3splt.sourceforge.net/ * diff -Nru mp3splt-gtk-0.9/src/split_files_window.c mp3splt-gtk-0.9.2/src/split_files_window.c --- mp3splt-gtk-0.9/src/split_files_window.c 2013-02-08 09:25:56.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/split_files_window.c 2014-05-10 14:48:58.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -226,8 +226,8 @@ static void create_queue_buttons(ui_state *ui) { //button for queueing all files - GtkWidget *queue_files_button = - wh_create_cool_button(GTK_STOCK_INDEX, _("_Queue to player"),FALSE); + GtkWidget *queue_files_button = + wh_create_cool_button(NULL, _("_Queue to player"),FALSE); ui->gui->queue_files_button = queue_files_button; gtk_widget_set_sensitive(queue_files_button, FALSE); g_signal_connect(G_OBJECT(queue_files_button), "clicked", @@ -235,7 +235,7 @@ //button for removing a file GtkWidget *remove_file_button = - wh_create_cool_button(GTK_STOCK_DELETE, _("_Delete selected"), FALSE); + wh_create_cool_button(NULL, _("_Delete selected"), FALSE); ui->gui->remove_file_button = remove_file_button; gtk_widget_set_sensitive(remove_file_button, FALSE); g_signal_connect(G_OBJECT(remove_file_button), "clicked", @@ -243,7 +243,7 @@ //button for removing a file GtkWidget *remove_all_files_button = - wh_create_cool_button(GTK_STOCK_DELETE, _("D_elete all"), FALSE); + wh_create_cool_button("list-remove", _("D_elete all"), FALSE); ui->gui->remove_all_files_button = remove_all_files_button; gtk_widget_set_sensitive(remove_all_files_button, FALSE); g_signal_connect(G_OBJECT(remove_all_files_button), "clicked", diff -Nru mp3splt-gtk-0.9/src/split_files_window.h mp3splt-gtk-0.9.2/src/split_files_window.h --- mp3splt-gtk-0.9/src/split_files_window.h 2013-02-08 09:26:01.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/split_files_window.h 2014-05-10 14:49:03.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * http://mp3splt.sourceforge.net/ * diff -Nru mp3splt-gtk-0.9/src/split_mode_window.c mp3splt-gtk-0.9.2/src/split_mode_window.c --- mp3splt-gtk-0.9/src/split_mode_window.c 2013-02-08 09:25:57.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/split_mode_window.c 2014-05-10 14:48:59.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -40,7 +40,7 @@ #include "split_mode_window.h" //! Get the split mode -static gint get_selected_split_mode(GtkToggleButton *radio_b) +static gint get_selected_split_mode_(GtkToggleButton *radio_b) { GSList *radio_button_list = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio_b)); @@ -76,19 +76,14 @@ } } -gint get_selected_split_mode_safe(ui_state *ui) +gint get_selected_split_mode(ui_state *ui) { - lock_mutex(&ui->variables_mutex); - gint selected_split_mode = ui->status->selected_split_mode; - unlock_mutex(&ui->variables_mutex); - return selected_split_mode; + return ui->status->selected_split_mode; } -void set_selected_split_mode_safe(gint value, ui_state *ui) +void set_selected_split_mode(gint value, ui_state *ui) { - lock_mutex(&ui->variables_mutex); ui->status->selected_split_mode = value; - unlock_mutex(&ui->variables_mutex); } static void deactivate_silence_parameters(gui_state *gui) @@ -136,8 +131,8 @@ //! Issued when the split mode selection changed static void split_mode_changed(GtkToggleButton *radio_b, ui_state *ui) { - gint selected_split_mode = get_selected_split_mode(radio_b); - set_selected_split_mode_safe(selected_split_mode, ui); + gint selected_split_mode = get_selected_split_mode_(radio_b); + set_selected_split_mode(selected_split_mode, ui); int enable_time = (selected_split_mode == SELECTED_SPLIT_TIME); gtk_widget_set_sensitive(ui->gui->spinner_time, enable_time); @@ -428,12 +423,47 @@ g_object_set_data(G_OBJECT(split_mode_radio_button), "split_type_id", GINT_TO_POINTER(SELECTED_SPLIT_ERROR)); + //internal sheet mode split + split_mode_radio_button = gtk_radio_button_new_with_label_from_widget + (GTK_RADIO_BUTTON(split_mode_radio_button), _("Internal sheet mode (CUE sheet for FLAC and ID3v2 chapters for MP3)")); + gtk_widget_set_tooltip_text(split_mode_radio_button, _("Split using internal sheet")); + ui->gui->split_mode_radio_button = split_mode_radio_button; + gtk_box_pack_start(GTK_BOX(local_vbox), split_mode_radio_button, FALSE, FALSE, 2); + g_signal_connect(GTK_TOGGLE_BUTTON(split_mode_radio_button), "toggled", + G_CALLBACK(split_mode_changed), ui); + g_object_set_data(G_OBJECT(split_mode_radio_button), "split_type_id", + GINT_TO_POINTER(SELECTED_SPLIT_INTERNAL_SHEET)); + + //CUE file with the same name as the input file + split_mode_radio_button = gtk_radio_button_new_with_label_from_widget + (GTK_RADIO_BUTTON(split_mode_radio_button), _("Use CUE file with similar name as the input file")); + gtk_widget_set_tooltip_text(split_mode_radio_button, + _("Split using CUE file having similar name as the input file\n" + "Example: test.cue will be looked for when splitting test.mp3")); + ui->gui->split_mode_radio_button = split_mode_radio_button; + gtk_box_pack_start(GTK_BOX(local_vbox), split_mode_radio_button, FALSE, FALSE, 2); + g_signal_connect(GTK_TOGGLE_BUTTON(split_mode_radio_button), "toggled", + G_CALLBACK(split_mode_changed), ui); + g_object_set_data(G_OBJECT(split_mode_radio_button), "split_type_id", + GINT_TO_POINTER(SELECTED_SPLIT_CUE_FILE)); + + //CDDB file with the same name as the input file + split_mode_radio_button = gtk_radio_button_new_with_label_from_widget + (GTK_RADIO_BUTTON(split_mode_radio_button), _("Use CDDB file with similar name as the input file")); + gtk_widget_set_tooltip_text(split_mode_radio_button, + _("Split using CDDB file having similar name as the input file\n" + "Example: test.cddb will be looked for when splitting test.mp3")); + ui->gui->split_mode_radio_button = split_mode_radio_button; + gtk_box_pack_start(GTK_BOX(local_vbox), split_mode_radio_button, FALSE, FALSE, 2); + g_signal_connect(GTK_TOGGLE_BUTTON(split_mode_radio_button), "toggled", + G_CALLBACK(split_mode_changed), ui); + g_object_set_data(G_OBJECT(split_mode_radio_button), "split_type_id", + GINT_TO_POINTER(SELECTED_SPLIT_CDDB_FILE)); + select_split_mode(SELECTED_SPLIT_NORMAL, ui); GtkWidget *scrolled_window = wh_create_scrolled_window(); - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), - GTK_WIDGET(local_vbox)); - + wh_add_box_to_scrolled_window(local_vbox, scrolled_window); return scrolled_window; } @@ -458,11 +488,7 @@ { GtkWidget *vbox = wh_vbox_new();; -#if GTK_MAJOR_VERSION <= 2 - GtkWidget *paned_widget = gtk_vpaned_new(); -#else GtkWidget *paned_widget = gtk_paned_new(GTK_ORIENTATION_VERTICAL); -#endif gtk_box_pack_start(GTK_BOX(vbox), paned_widget, TRUE, TRUE, 0); diff -Nru mp3splt-gtk-0.9/src/split_mode_window.h mp3splt-gtk-0.9.2/src/split_mode_window.h --- mp3splt-gtk-0.9/src/split_mode_window.h 2013-02-08 09:26:02.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/split_mode_window.h 2014-05-10 14:49:03.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * * http://mp3splt.sourceforge.net/ @@ -38,6 +38,9 @@ #define FILE_MODE_SINGLE 1 #define FILE_MODE_MULTIPLE 0 +#define SELECTED_SPLIT_INTERNAL_SHEET 9 +#define SELECTED_SPLIT_CUE_FILE 8 +#define SELECTED_SPLIT_CDDB_FILE 7 #define SELECTED_SPLIT_TRIM_SILENCE 6 #define SELECTED_SPLIT_SILENCE 5 #define SELECTED_SPLIT_EQUAL_TIME_TRACKS 4 @@ -46,13 +49,13 @@ #define SELECTED_SPLIT_WRAP 1 #define SELECTED_SPLIT_ERROR 0 -#define NUMBER_OF_SPLIT_MODES 6 +#define NUMBER_OF_SPLIT_MODES 9 void select_split_mode(int split_mode, ui_state *ui); GtkWidget *create_special_split_page(ui_state *ui); -gint get_selected_split_mode_safe(ui_state *ui); -void set_selected_split_mode_safe(gint value, ui_state *ui); +gint get_selected_split_mode(ui_state *ui); +void set_selected_split_mode(gint value, ui_state *ui); #endif diff -Nru mp3splt-gtk-0.9/src/splitpoints_window.c mp3splt-gtk-0.9.2/src/splitpoints_window.c --- mp3splt-gtk-0.9/src/splitpoints_window.c 2013-02-08 09:25:57.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/splitpoints_window.c 2014-10-11 13:19:22.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -428,7 +428,7 @@ GtkTreeIter iter; gtk_tree_model_get_iter(model, &iter, path); - //cancel quick preview if necessary + //cancel preview if necessary if (((index == ui->status->preview_start_splitpoint) && stop_preview) || ((index == get_quick_preview_end_splitpoint_safe(ui)) && (get_quick_preview_end_splitpoint_safe(ui) == (ui->infos->splitnumber-1)) && stop_preview)) @@ -467,7 +467,7 @@ remove_status_message(ui->gui); update_add_button(ui); check_update_down_progress_bar(ui); - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); export_cue_file_in_configuration_directory(ui); } @@ -672,7 +672,7 @@ } update_add_button(ui); - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); check_update_down_progress_bar(ui); export_cue_file_in_configuration_directory(ui); @@ -980,74 +980,50 @@ g_free(ui_err); - return FALSE; -} + export_cue_file_in_configuration_directory(ui); -static void set_should_trim_safe(gboolean value, ui_state *ui) -{ - lock_mutex(&ui->variables_mutex); - ui->status->should_trim = value; - unlock_mutex(&ui->variables_mutex); + return FALSE; } -static gint get_should_trim_safe(ui_state *ui) -{ - lock_mutex(&ui->variables_mutex); - gint should_trim = ui->status->should_trim; - unlock_mutex(&ui->variables_mutex); - return should_trim; -} //!set splitpints from silence detection -static gpointer detect_silence_and_set_splitpoints(ui_state *ui) +static gpointer detect_silence_and_set_splitpoints(ui_for_split *ui_fs) { + ui_state *ui = ui_fs->ui; + set_process_in_progress_and_wait_safe(TRUE, ui); set_is_splitting_safe(TRUE, ui); - gint err = SPLT_OK; - - enter_threads(); - - gtk_widget_set_sensitive(ui->gui->scan_silence_button, FALSE); - gtk_widget_set_sensitive(ui->gui->scan_silence_button_player, FALSE); - gtk_widget_set_sensitive(ui->gui->scan_trim_silence_button, FALSE); - gtk_widget_set_sensitive(ui->gui->scan_trim_silence_button_player, FALSE); - gtk_widget_set_sensitive(ui->gui->cancel_button, TRUE); - gchar *format = strdup(gtk_entry_get_text(GTK_ENTRY(ui->gui->output_entry))); + mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_THRESHOLD, ui_fs->single_silence_threshold); + mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_OFFSET, ui_fs->single_silence_offset); + mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_NUMBER_TRACKS, ui_fs->single_silence_number); + mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_MIN_LENGTH, + ui_fs->single_silence_minimum_length); + mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_MIN_TRACK_LENGTH, + ui_fs->single_silence_minimum_track_length); + mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_REMOVE_SILENCE, + ui_fs->single_silence_remove); - lock_mutex(&ui->variables_mutex); - mp3splt_set_filename_to_split(ui->mp3splt_state, get_input_filename(ui->gui)); - unlock_mutex(&ui->variables_mutex); - - gint checked_output_radio_box = get_checked_output_radio_box(ui); - - exit_threads(); - - err = mp3splt_erase_all_splitpoints(ui->mp3splt_state); - - if (checked_output_radio_box == 0) + gint err = SPLT_OK; + if (ui_fs->is_checked_output_radio_box == 0) { - err = mp3splt_set_oformat(ui->mp3splt_state, format); + err = mp3splt_set_oformat(ui->mp3splt_state, ui_fs->output_format); } + print_status_bar_confirmation_in_idle(err, ui); - if (format) - { - free(format); - format = NULL; - } + err = mp3splt_erase_all_splitpoints(ui->mp3splt_state); + print_status_bar_confirmation_in_idle(err, ui); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PRETEND_TO_SPLIT, SPLT_TRUE); mp3splt_set_split_filename_function(ui->mp3splt_state, NULL, ui); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_TAGS, SPLT_TAGS_ORIGINAL_FILE); - print_status_bar_confirmation_in_idle(err, ui); - err = SPLT_OK; int old_split_mode = mp3splt_get_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, &err); int old_tags_option = mp3splt_get_int_option(ui->mp3splt_state, SPLT_OPT_TAGS, &err); - if (get_should_trim_safe(ui)) + if (ui_fs->should_trim) { err = mp3splt_set_trim_silence_points(ui->mp3splt_state); } @@ -1055,36 +1031,47 @@ { mp3splt_set_silence_points(ui->mp3splt_state, &err); } + print_status_bar_confirmation_in_idle(err, ui); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_TAGS, old_tags_option); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, old_split_mode); + free_ui_for_split(ui_fs); + ui_with_err *ui_err = g_malloc0(sizeof(ui_with_err)); ui_err->err = err; ui_err->ui = ui; - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)detect_silence_and_set_splitpoints_end, ui_err, NULL); return NULL; } -static void detect_silence_and_set_splitpoints_action(ui_state *ui) +static void detect_silence_and_set_splitpoints_action(ui_state *ui, gboolean should_trim) { - create_thread((GThreadFunc)detect_silence_and_set_splitpoints, ui); + gtk_widget_set_sensitive(ui->gui->scan_silence_button, FALSE); + gtk_widget_set_sensitive(ui->gui->scan_silence_button_player, FALSE); + gtk_widget_set_sensitive(ui->gui->scan_trim_silence_button, FALSE); + gtk_widget_set_sensitive(ui->gui->scan_trim_silence_button_player, FALSE); + gtk_widget_set_sensitive(ui->gui->cancel_button, TRUE); + + ui_for_split *ui_fs = build_ui_for_split(ui); + ui_fs->should_trim = should_trim; + + create_thread_and_unref((GThreadFunc)detect_silence_and_set_splitpoints, + (gpointer) ui_fs, ui, "detect_silence"); } //!start thread with 'set splitpints from silence detection' static void detect_silence_and_add_splitpoints_start_thread(ui_state *ui) { - set_should_trim_safe(FALSE, ui); - detect_silence_and_set_splitpoints_action(ui); + detect_silence_and_set_splitpoints_action(ui, FALSE); } static void detect_silence_and_add_trim_splitpoints_start_thread(ui_state *ui) { - set_should_trim_safe(TRUE, ui); - detect_silence_and_set_splitpoints_action(ui); + detect_silence_and_set_splitpoints_action(ui, TRUE); } //!update silence parameters when 'widget' changes @@ -1134,9 +1121,9 @@ gtk_dialog_new_with_buttons(_("Set trim splitpoints using silence detection"), GTK_WINDOW(ui->gui->window), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, - GTK_STOCK_OK, + _("_OK"), GTK_RESPONSE_YES, - GTK_STOCK_CANCEL, + _("_Cancel"), GTK_RESPONSE_CANCEL, NULL); @@ -1176,11 +1163,9 @@ gtk_widget_destroy(silence_detection_window); - if (result == GTK_RESPONSE_YES) - { - mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_THRESHOLD, ui->infos->silence_threshold_value); - detect_silence_and_add_trim_splitpoints_start_thread(ui); - } + if (result != GTK_RESPONSE_YES) { return; } + + detect_silence_and_add_trim_splitpoints_start_thread(ui); } //!event for clicking the 'detect silence and add splitpoints' button @@ -1193,9 +1178,9 @@ gtk_dialog_new_with_buttons(_("Set splitpoints from silence detection"), GTK_WINDOW(gui->window), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, - GTK_STOCK_OK, + _("_OK"), GTK_RESPONSE_YES, - GTK_STOCK_CANCEL, + _("_Cancel"), GTK_RESPONSE_CANCEL, NULL); @@ -1315,23 +1300,9 @@ gtk_widget_destroy(silence_detection_window); - if (result == GTK_RESPONSE_YES) - { - mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_THRESHOLD, - infos->silence_threshold_value); - mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_OFFSET, - infos->silence_offset_value); - mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_NUMBER_TRACKS, - infos->silence_number_of_tracks); - mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_MIN_LENGTH, - infos->silence_minimum_length); - mp3splt_set_float_option(ui->mp3splt_state, SPLT_OPT_PARAM_MIN_TRACK_LENGTH, - infos->silence_minimum_track_length); - mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_PARAM_REMOVE_SILENCE, - infos->silence_remove_silence_between_tracks); + if (result != GTK_RESPONSE_YES) { return; } - detect_silence_and_add_splitpoints_start_thread(ui); - } + detect_silence_and_add_splitpoints_start_thread(ui); } //!remove a row from the table @@ -1379,7 +1350,7 @@ remove_status_message(ui->gui); cancel_quick_preview_all(ui); update_add_button(ui); - refresh_drawing_area(ui->gui); + refresh_drawing_area(ui->gui, ui->infos); check_update_down_progress_bar(ui); export_cue_file_in_configuration_directory(ui); @@ -1433,7 +1404,7 @@ ui->gui->spinner_hundr_secs = create_init_spinner(hbox, 0, 99, _("Hundredths:"), 2, ui); /* add button */ - GtkWidget *add_button = wh_create_cool_button(GTK_STOCK_ADD, _("_Add"), FALSE); + GtkWidget *add_button = wh_create_cool_button("list-add", _("_Add"), FALSE); ui->gui->add_button = add_button; gtk_button_set_relief(GTK_BUTTON(add_button), GTK_RELIEF_NONE); @@ -1443,7 +1414,7 @@ gtk_widget_set_tooltip_text(add_button,_("Add splitpoint")); /* remove row button */ - GtkWidget *remove_row_button = wh_create_cool_button(GTK_STOCK_REMOVE, _("_Remove"), FALSE); + GtkWidget *remove_row_button = wh_create_cool_button("list-remove", _("_Remove"), FALSE); ui->gui->remove_row_button = remove_row_button; gtk_button_set_relief(GTK_BUTTON(remove_row_button), GTK_RELIEF_NONE); @@ -1453,7 +1424,7 @@ gtk_widget_set_tooltip_text(remove_row_button, _("Remove selected splitpoints")); /* remove all rows button */ - GtkWidget *remove_all_button = wh_create_cool_button(GTK_STOCK_CLEAR, _("R_emove all"), FALSE); + GtkWidget *remove_all_button = wh_create_cool_button("edit-clear", _("R_emove all"), FALSE); ui->gui->remove_all_button = remove_all_button; gtk_button_set_relief(GTK_BUTTON(remove_all_button), GTK_RELIEF_NONE); @@ -1470,7 +1441,7 @@ { /* set splitpoints from trim silence detection */ GtkWidget *scan_trim_silence_button = - wh_create_cool_button(GTK_STOCK_CUT, _("_Trim splitpoints"), FALSE); + wh_create_cool_button("edit-find", _("_Trim splitpoints"), FALSE); ui->gui->scan_trim_silence_button = scan_trim_silence_button; gtk_widget_set_sensitive(scan_trim_silence_button, TRUE); g_signal_connect(G_OBJECT(scan_trim_silence_button), "clicked", @@ -1480,7 +1451,7 @@ /* set splitpoints from silence detection */ GtkWidget *scan_silence_button = - wh_create_cool_button(GTK_STOCK_FIND_AND_REPLACE, _("_Silence detection"), FALSE); + wh_create_cool_button("edit-find-replace", _("_Silence detection"), FALSE); ui->gui->scan_silence_button = scan_silence_button; gtk_widget_set_sensitive(scan_silence_button, TRUE); g_signal_connect(G_OBJECT(scan_silence_button), "clicked", @@ -1538,6 +1509,8 @@ static gboolean split_preview_end(ui_with_err *ui_err) { + set_process_in_progress_and_wait_safe(FALSE, ui_err->ui); + gint err = ui_err->err; ui_state *ui = ui_err->ui; @@ -1561,21 +1534,22 @@ gtk_progress_bar_set_text(ui->gui->percent_progress_bar, _(" finished")); } - set_process_in_progress_and_wait_safe(FALSE, ui_err->ui); - g_free(ui_err); return FALSE; } -static gpointer split_preview(ui_state *ui) +static gpointer split_preview(ui_for_split *ui_fs) { + ui_state *ui = ui_fs->ui; + set_process_in_progress_and_wait_safe(TRUE, ui); int err = mp3splt_erase_all_splitpoints(ui->mp3splt_state); - err = mp3splt_erase_all_tags(ui->mp3splt_state); + print_status_bar_confirmation_in_idle(err, ui); - enter_threads(); + err = mp3splt_erase_all_tags(ui->mp3splt_state); + print_status_bar_confirmation_in_idle(err, ui); splt_point *splitpoint = mp3splt_point_new(get_preview_start_position_safe(ui), NULL); mp3splt_point_set_name(splitpoint, "preview"); @@ -1587,17 +1561,10 @@ mp3splt_point_set_type(splitpoint, SPLT_SKIPPOINT); mp3splt_append_splitpoint(ui->mp3splt_state, splitpoint); - lock_mutex(&ui->variables_mutex); - mp3splt_set_filename_to_split(ui->mp3splt_state, get_input_filename(ui->gui)); - unlock_mutex(&ui->variables_mutex); - mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_OUTPUT_FILENAMES, SPLT_OUTPUT_CUSTOM); mp3splt_set_int_option(ui->mp3splt_state, SPLT_OPT_SPLIT_MODE, SPLT_OPTION_NORMAL_MODE); - put_options_from_preferences(ui); - remove_all_split_rows(ui); - - exit_threads(); + put_options_from_preferences(ui_fs); gchar *fname_path = get_preferences_filename(); fname_path[strlen(fname_path) - 18] = '\0'; @@ -1606,18 +1573,24 @@ err = mp3splt_split(ui->mp3splt_state); + free_ui_for_split(ui_fs); + ui_with_err *ui_err = g_malloc0(sizeof(ui_with_err)); ui_err->err = err; ui_err->ui = ui; - gdk_threads_add_idle_full(G_PRIORITY_HIGH_IDLE, (GSourceFunc)split_preview_end, ui_err, NULL); + add_idle(G_PRIORITY_HIGH_IDLE, (GSourceFunc)split_preview_end, ui_err, NULL); return NULL; } static void split_preview_action(ui_state *ui) { - create_thread((GThreadFunc)split_preview, ui); + ui_for_split *ui_fs = build_ui_for_split(ui); + + remove_all_split_rows(ui); + + create_thread_and_unref((GThreadFunc)split_preview, (gpointer) ui_fs, ui, "split_preview"); } //!the row clicked event, preview the song @@ -1821,61 +1794,43 @@ { GtkWidget *menu = gtk_menu_new(); - GtkWidget *item = gtk_image_menu_item_new_with_label(_("Clone all tags")); - GtkWidget *image = gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + GtkWidget *item = gtk_menu_item_new_with_label(_("Clone all tags")); g_signal_connect(item, "activate", G_CALLBACK(clone_all_event), ui); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); - item = gtk_image_menu_item_new_with_label(_("Clone title")); - image = gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + item = gtk_menu_item_new_with_label(_("Clone title")); g_signal_connect(item, "activate", G_CALLBACK(clone_title_event), ui); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - item = gtk_image_menu_item_new_with_label(_("Clone artist")); - image = gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + item = gtk_menu_item_new_with_label(_("Clone artist")); g_signal_connect(item, "activate", G_CALLBACK(clone_artist_event), ui); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - item = gtk_image_menu_item_new_with_label(_("Clone album")); - image = gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + item = gtk_menu_item_new_with_label(_("Clone album")); g_signal_connect(item, "activate", G_CALLBACK(clone_album_event), ui); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - item = gtk_image_menu_item_new_with_label(_("Clone genre")); - image = gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + item = gtk_menu_item_new_with_label(_("Clone genre")); g_signal_connect(item, "activate", G_CALLBACK(clone_genre_event), ui); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - item = gtk_image_menu_item_new_with_label(_("Clone year")); - image = gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + item = gtk_menu_item_new_with_label(_("Clone year")); g_signal_connect(item, "activate", G_CALLBACK(clone_year_event), ui); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - item = gtk_image_menu_item_new_with_label(_("Clone track")); - image = gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + item = gtk_menu_item_new_with_label(_("Clone track")); g_signal_connect(item, "activate", G_CALLBACK(clone_track_event), ui); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - item = gtk_image_menu_item_new_with_label(_("Clone comment")); - image = gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + item = gtk_menu_item_new_with_label(_("Clone comment")); g_signal_connect(item, "activate", G_CALLBACK(clone_comment_event), ui); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); - item = gtk_image_menu_item_new_with_label(_("Auto-increment track")); - image = gtk_image_new_from_stock(GTK_STOCK_GO_DOWN, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + item = gtk_menu_item_new_with_label(_("Auto-increment track")); g_signal_connect(item, "activate", G_CALLBACK(auto_increment_track_event), ui); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); @@ -1989,7 +1944,7 @@ /* column preview */ renderer_pix = GTK_CELL_RENDERER_PIXBUF(gtk_cell_renderer_pixbuf_new()); - g_object_set(renderer_pix, "stock-id", GTK_STOCK_MEDIA_PLAY, + g_object_set(renderer_pix, "icon-name", "media-playback-start", "stock-size", GTK_ICON_SIZE_MENU, NULL); column_preview = gtk_tree_view_column_new_with_attributes (_("LiveP"), GTK_CELL_RENDERER(renderer_pix), NULL); @@ -1997,7 +1952,7 @@ /* split preview */ renderer_pix = GTK_CELL_RENDERER_PIXBUF(gtk_cell_renderer_pixbuf_new()); - g_object_set(renderer_pix, "stock-id", GTK_STOCK_MEDIA_PLAY, + g_object_set(renderer_pix, "icon-name", "media-playback-start", "stock-size", GTK_ICON_SIZE_MENU, NULL); column_split_preview = gtk_tree_view_column_new_with_attributes (_("SplitP"), GTK_CELL_RENDERER(renderer_pix), NULL); @@ -2162,9 +2117,10 @@ } } -//!puts the splitpoints into the state -void put_splitpoints_and_tags_in_mp3splt_state(splt_state *state, ui_state *ui) +points_and_tags *get_splitpoints_and_tags_for_mp3splt_state(ui_state *ui) { + points_and_tags *pat = new_points_and_tags(); + glong hundr[ui->infos->splitnumber]; garray_to_array(ui->splitpoints, hundr, ui); @@ -2194,7 +2150,7 @@ mp3splt_point_set_name(splitpoint, description); g_free(description); mp3splt_point_set_type(splitpoint, splitpoint_type); - mp3splt_append_splitpoint(state, splitpoint); + append_point_to_pat(splitpoint, pat); gint year = 0, track = 0; gchar *title = NULL, *artist = NULL, *album = NULL, *genre = NULL, *comment = NULL; @@ -2230,10 +2186,11 @@ SPLT_TAGS_GENRE, genre, SPLT_TAGS_COMMENT, comment, 0); - mp3splt_append_tags(state, tags); + append_tags_to_pat(tags, pat); free(title); free(artist); free(album); free(genre); free(comment); } -} + return pat; +} diff -Nru mp3splt-gtk-0.9/src/splitpoints_window.h mp3splt-gtk-0.9.2/src/splitpoints_window.h --- mp3splt-gtk-0.9/src/splitpoints_window.h 2013-02-08 09:26:02.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/splitpoints_window.h 2014-05-10 14:49:03.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * http://mp3splt.sourceforge.net/ * @@ -75,7 +75,7 @@ void add_splitpoint_from_player(GtkWidget *widget, ui_state *ui); void add_row(gint checked, ui_state *ui); GtkWidget *create_splitpoints_frame(ui_state *ui); -void put_splitpoints_and_tags_in_mp3splt_state(splt_state *state, ui_state *ui); +points_and_tags *get_splitpoints_and_tags_for_mp3splt_state(ui_state *ui); void clear_current_description(ui_state *ui); void copy_filename_to_current_description(const gchar *fname, ui_state *ui); void remove_all_rows(GtkWidget *widget, ui_state *ui); diff -Nru mp3splt-gtk-0.9/src/ui_manager.c mp3splt-gtk-0.9.2/src/ui_manager.c --- mp3splt-gtk-0.9/src/ui_manager.c 2013-03-26 21:42:20.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/ui_manager.c 2014-05-10 14:48:59.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * http://mp3splt.sourceforge.net/ * @@ -265,9 +265,9 @@ infos->douglas_peucker_thresholds_defaults[0] = 2.0; infos->douglas_peucker_thresholds_defaults[1] = 5.0; infos->douglas_peucker_thresholds_defaults[2] = 8.0; - infos->douglas_peucker_thresholds_defaults[3] = 11.0; - infos->douglas_peucker_thresholds_defaults[4] = 15.0; - infos->douglas_peucker_thresholds_defaults[5] = 22.0; + infos->douglas_peucker_thresholds_defaults[3] = 10.0; + infos->douglas_peucker_thresholds_defaults[4] = 12.0; + infos->douglas_peucker_thresholds_defaults[5] = 15.0; infos->douglas_peucker_thresholds[0] = infos->douglas_peucker_thresholds_defaults[0]; infos->douglas_peucker_thresholds[1] = infos->douglas_peucker_thresholds_defaults[1]; @@ -306,6 +306,25 @@ infos->timeout_value = DEFAULT_TIMEOUT_VALUE; + infos->gstreamer_stop_before_end = DEFAULT_GSTREAMER_STOP_BEFORE_END_VALUE; + + infos->small_seek_jump_value = DEFAULT_SMALL_SEEK_JUMP_VALUE; + infos->seek_jump_value = DEFAULT_SEEK_JUMP_VALUE; + infos->big_seek_jump_value = DEFAULT_BIG_SEEK_JUMP_VALUE; + + infos->previous_export_thread = NULL; + + infos->previous_mark_time = 0; + infos->previous_mark_pixel = 0.0; + infos->pixels_diff_regarding_previous = -1; + infos->accumulated_diff = 0.0; + infos->previous_pixel_by_time = + g_hash_table_new_full(g_double_hash, g_double_equal, g_free, g_free); + infos->pixel_moved_by_time = + g_hash_table_new_full(g_double_hash, g_double_equal, g_free, g_free); + + infos->drawing_preferences_silence_wave = SPLT_FALSE; + ui->infos = infos; } @@ -314,7 +333,7 @@ gui_status *status = g_malloc0(sizeof(gui_status)); status->splitting = FALSE; - status->process_in_progress = FALSE; + status->process_in_progress = 0; status->mouse_on_progress_bar = FALSE; status->currently_compute_douglas_peucker_filters = FALSE; @@ -324,6 +343,7 @@ status->timer_active = FALSE; status->quick_preview_end_splitpoint = -1; status->preview_start_splitpoint = -1; + status->stop_preview_right_after_start = FALSE; status->move_time = 0; @@ -370,20 +390,13 @@ status->preview_row = 0; status->selected_split_mode = SELECTED_SPLIT_NORMAL; - status->should_trim = FALSE; - status->file_selection_changed = FALSE; status->stop_split = FALSE; - status->previous_distance_by_time = NULL; status->previous_zoom_coeff = -2; status->previous_interpolation_level = -2; - status->previous_first_time_drawed = -2; - status->previous_first_x_drawed = -2; - status->previous_second_x_drawed = -2; - status->previous_second_time_drawed = -2; - + return status; } @@ -469,6 +482,18 @@ (*infos)->number_of_silence_points = 0; } + if ((*infos)->previous_pixel_by_time != NULL) + { + g_hash_table_destroy((*infos)->previous_pixel_by_time); + (*infos)->previous_pixel_by_time = NULL; + } + + if ((*infos)->pixel_moved_by_time != NULL) + { + g_hash_table_destroy((*infos)->pixel_moved_by_time); + (*infos)->pixel_moved_by_time = NULL; + } + g_array_free((*infos)->preview_time_windows, TRUE); g_free(*infos); @@ -482,12 +507,6 @@ return; } - if ((*status)->previous_distance_by_time != NULL) - { - g_hash_table_destroy((*status)->previous_distance_by_time); - (*status)->previous_distance_by_time = NULL; - } - g_free(*status); *status = NULL; } diff -Nru mp3splt-gtk-0.9/src/ui_manager.h mp3splt-gtk-0.9.2/src/ui_manager.h --- mp3splt-gtk-0.9/src/ui_manager.h 2013-02-08 09:26:02.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/ui_manager.h 2014-05-10 14:49:04.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ diff -Nru mp3splt-gtk-0.9/src/ui_types.h mp3splt-gtk-0.9.2/src/ui_types.h --- mp3splt-gtk-0.9/src/ui_types.h 2013-07-14 20:49:39.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/ui_types.h 2014-05-28 22:44:34.000000000 +0000 @@ -3,7 +3,7 @@ * * * Contact: m@ioalex.net - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * * http://mp3splt.sourceforge.net/ * @@ -96,6 +96,11 @@ gpointer data; } preview_index_and_data; +typedef struct points_and_tags { + GPtrArray *splitpoints; + GPtrArray *tags; +} points_and_tags; + typedef struct { gchar *browser_directory; ui_main_window *main_win; @@ -170,6 +175,25 @@ preview_index_and_data preview_indexes[6]; gint timeout_value; + + gint gstreamer_stop_before_end; + + gint small_seek_jump_value; + gint seek_jump_value; + gint big_seek_jump_value; + + //make export threads to execute in order + GThread *previous_export_thread; + + //previous right mark time/pixels + gint previous_mark_time; + gfloat previous_mark_pixel; + gfloat accumulated_diff; + gint pixels_diff_regarding_previous; + GHashTable *previous_pixel_by_time; + GHashTable *pixel_moved_by_time; + + gint drawing_preferences_silence_wave; } ui_infos; typedef struct { @@ -200,9 +224,9 @@ } player_infos; typedef struct { + GtkApplication *application; GtkWidget *window; - GtkActionGroup *action_group; GtkWidget *open_file_chooser_button; GString *input_filename; @@ -288,6 +312,7 @@ GtkWidget *playlist_remove_all_files_button; GtkWidget *frame_mode; + GtkWidget *bit_reservoir_mode; GtkWidget *adjust_mode; GtkWidget *spinner_adjust_offset; @@ -382,6 +407,7 @@ GtkWidget *player_combo_box; GtkWidget *radio_button; + GtkWidget *gstreamer_stop_before_end_box; GPtrArray *wave_preview_labels; @@ -417,6 +443,7 @@ gint quick_preview_end_splitpoint; gint preview_start_splitpoint; + gboolean stop_preview_right_after_start; gfloat move_time; @@ -463,24 +490,17 @@ gint preview_row; gint selected_split_mode; - gint should_trim; - gint file_selection_changed; gint stop_split; - long previous_first_time_drawed; - gint previous_first_x_drawed; - long previous_second_time_drawed; - gint previous_second_x_drawed; - GHashTable *previous_distance_by_time; gfloat previous_zoom_coeff; gint previous_interpolation_level; gint lock_cue_export; } gui_status; -#define SPLT_MUTEX GStaticMutex +#define SPLT_MUTEX GMutex typedef struct { gint return_code; @@ -499,6 +519,9 @@ SPLT_MUTEX variables_mutex; int importing_cue_from_configuration_directory; + + gint argc; + gchar **argv; } ui_state; typedef struct { @@ -508,8 +531,103 @@ typedef struct { ui_state *ui; + gpointer data; + GThreadFunc thread; + gint is_checked_output_radio_box; + gchar *filename_to_split; +} ui_with_data; + +typedef struct { + ui_state *ui; char *fname; + gboolean is_checked_output_radio_box; + gchar *output_format; } ui_with_fname; +typedef struct { + ui_state *ui; + points_and_tags *pat; + GThread *previous_thread; + gchar *export_filename; +} ui_with_pat; + +typedef struct { + ui_state *ui; + GSList *list; +} ui_with_list; + +typedef struct { + ui_state *ui; + char **filenames; + int num_of_filenames; +} ui_with_fnames; + +typedef struct { + ui_state *ui; + + int frame_mode; + int bit_reservoir_mode; + + //adjust options + int adjust_mode; + float adjust_offset; + int adjust_gap; + float adjust_threshold; + float adjust_min; + + //single or batch + int split_file_mode; + + //type of split + int selected_split_mode; + + long time_split_value; + int equal_tracks_value; + + //batch split by silence options + float silence_threshold; + float silence_offset; + int silence_number; + float silence_minimum_length; + float silence_minimum_track_length; + int silence_remove; + + float trim_silence_threshold; + + //single split by silence options + float single_silence_threshold; + float single_silence_offset; + int single_silence_number; + float single_silence_minimum_length; + float single_silence_minimum_track_length; + int single_silence_remove; + + //no_tags, default_tags, ... + int selected_tags_value; + //version of tags + int tags_version; + + int create_dirs_from_filenames; + + //tags from filename regex + int regex_replace_underscores; + int regex_artist_tag_format; + int regex_album_tag_format; + int regex_title_tag_format; + int regex_comment_tag_format; + gchar *regex; + gchar *regex_default_comment; + gchar *regex_default_genre; + + points_and_tags *pat; + gchar *output_format; + gboolean is_checked_output_radio_box; + gchar *output_directory; + + gchar *test_regex_filename; + gboolean should_trim; + gint freedb_selected_id; +} ui_for_split; + #endif diff -Nru mp3splt-gtk-0.9/src/utilities.c mp3splt-gtk-0.9.2/src/utilities.c --- mp3splt-gtk-0.9/src/utilities.c 2013-02-08 09:25:57.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/utilities.c 2014-05-10 14:48:59.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -83,9 +83,8 @@ { gint fname_status_size = (strlen(filename) + 255); gchar *fname_status = g_malloc(sizeof(char) * fname_status_size); - g_snprintf(fname_status, fname_status_size, - _("Processing file '%s' ..."), filename); - put_status_message(fname_status, ui); + g_snprintf(fname_status, fname_status_size, _("Processing file '%s' ..."), filename); + put_status_message_in_idle(fname_status, ui); if (fname_status) { free(fname_status); @@ -179,4 +178,34 @@ return fabs(double_to_compare - compared_value) < DOUBLE_PRECISION; } +//points and tags utilities + +points_and_tags *new_points_and_tags() +{ + points_and_tags *pat = g_malloc(sizeof(points_and_tags)); + pat->splitpoints = g_ptr_array_new(); + pat->tags = g_ptr_array_new(); + return pat; +} + +void free_points_and_tags(points_and_tags **pat) +{ + if (!pat || !*pat) { return; } + g_ptr_array_free((*pat)->splitpoints, SPLT_TRUE); + (*pat)->splitpoints = NULL; + g_ptr_array_free((*pat)->tags, SPLT_TRUE); + (*pat)->tags = NULL; + g_free(*pat); + *pat = NULL; +} + +void append_point_to_pat(splt_point *point, points_and_tags *pat) +{ + g_ptr_array_add(pat->splitpoints, point); +} + +void append_tags_to_pat(splt_tags *tags, points_and_tags *pat) +{ + g_ptr_array_add(pat->tags, tags); +} diff -Nru mp3splt-gtk-0.9/src/utilities.h mp3splt-gtk-0.9.2/src/utilities.h --- mp3splt-gtk-0.9/src/utilities.h 2013-02-08 09:26:02.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/utilities.h 2014-05-10 14:49:04.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright (c) 2005-2013 Alexandru Munteanu - m@ioalex.net + * Copyright (c) 2005-2014 Alexandru Munteanu - m@ioalex.net * * http://mp3splt.sourceforge.net/ * @@ -47,5 +47,12 @@ gboolean double_equals(gdouble double_to_compare, gdouble compared_value); +//points and tags utilities + +points_and_tags *new_points_and_tags(); +void free_points_and_tags(); +void append_point_to_pat(splt_point *point, points_and_tags *pat); +void append_tags_to_pat(splt_tags *tags, points_and_tags *pat); + #endif diff -Nru mp3splt-gtk-0.9/src/widgets_helper.c mp3splt-gtk-0.9.2/src/widgets_helper.c --- mp3splt-gtk-0.9/src/widgets_helper.c 2013-07-17 19:28:29.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/widgets_helper.c 2014-05-10 14:49:00.000000000 +0000 @@ -3,7 +3,7 @@ * * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -38,7 +38,6 @@ #include "widgets_helper.h" static guint _wh_add_row_to_table(); -static GtkWidget *_wh_put_in_new_hbox_with_margin(GtkWidget *widget, gint margin); static void _wh_attach_to_table(GtkWidget *table, GtkWidget *widget, guint start_column, guint end_column, guint row, int expand); static void _wh_add_in_table_with_label(GtkWidget *table, const gchar *label_text, @@ -75,16 +74,10 @@ GtkWidget *wh_new_table() { -#if GTK_MAJOR_VERSION >= 3 GtkWidget *table = gtk_grid_new(); g_object_set_data(G_OBJECT(table), "rows", GINT_TO_POINTER(0)); gtk_grid_set_column_spacing(GTK_GRID(table), 5); gtk_grid_set_row_spacing(GTK_GRID(table), 4); -#else - GtkWidget *table = gtk_table_new(1, 2, FALSE); - gtk_table_set_col_spacing(GTK_TABLE(table), 0, 0); - gtk_table_set_col_spacing(GTK_TABLE(table), 1, 5); -#endif return table; } @@ -107,7 +100,14 @@ GtkWidget *wh_put_in_new_hbox_with_margin_level(GtkWidget *widget, gint margin_level) { - return _wh_put_in_new_hbox_with_margin(widget, 6 * margin_level); + return wh_put_in_new_hbox(widget, 6 * margin_level, TRUE, TRUE); +} + +GtkWidget *wh_put_in_new_hbox(GtkWidget *widget, gint margin, gboolean expand, gboolean fill) +{ + GtkWidget *hbox = wh_hbox_new(); + gtk_box_pack_start(GTK_BOX(hbox), widget, expand, fill, margin); + return hbox; } void wh_put_in_hbox_and_attach_to_vbox(GtkWidget *widget, GtkWidget *vbox, gint vertical_margin) @@ -149,20 +149,6 @@ void wh_get_widget_size(GtkWidget *widget, gint *width, gint *height) { -#if GTK_MAJOR_VERSION <= 2 - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - - if (width != NULL) - { - *width = allocation.width; - } - - if (height != NULL) - { - *height= allocation.height; - } -#else if (width != NULL) { *width = gtk_widget_get_allocated_width(widget); @@ -172,12 +158,10 @@ { *height = gtk_widget_get_allocated_height(widget); } -#endif } GtkWidget *wh_create_int_spinner_in_box_with_top_width(gchar *before_label, gchar *after_label, - gdouble initial_value, - gdouble minimum_value, gdouble maximum_value, + gdouble initial_value, gdouble minimum_value, gdouble maximum_value, gdouble step_increment, gdouble page_increment, gchar *after_newline_label, void (*spinner_callback)(GtkWidget *spinner, ui_state *ui), @@ -235,51 +219,31 @@ GtkWidget *wh_hbox_new() { -#if GTK_MAJOR_VERSION <= 2 - return gtk_hbox_new(FALSE, 0); -#else GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(hbox), FALSE); return hbox; -#endif } GtkWidget *wh_vbox_new() { -#if GTK_MAJOR_VERSION <= 2 - return gtk_vbox_new(FALSE, 0); -#else GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_box_set_homogeneous(GTK_BOX(vbox), FALSE); return vbox; -#endif } GtkWidget *wh_hscale_new(GtkAdjustment *adjustment) { -#if GTK_MAJOR_VERSION <= 2 - return gtk_hscale_new(adjustment); -#else return gtk_scale_new(GTK_ORIENTATION_HORIZONTAL, adjustment); -#endif } GtkWidget *wh_hscale_new_with_range(gdouble min, gdouble max, gdouble step) { -#if GTK_MAJOR_VERSION <= 2 - return gtk_hscale_new_with_range(min, max, step); -#else return gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, min, max, step); -#endif } void wh_get_pointer(GdkEventMotion *event, gint *x, gint *y, GdkModifierType *state) { -#if GTK_MAJOR_VERSION <= 2 - gdk_window_get_pointer(event->window, x, y, state); -#else - gdk_window_get_device_position(event->window, event->device, x, y, state); -#endif + gdk_window_get_device_position(event->window, event->device, x, y, state); } //!creates a scrolled window @@ -293,6 +257,13 @@ return scrolled_window; } +void wh_add_box_to_scrolled_window(GtkWidget *box, GtkWidget *scrolled_window) +{ + GtkWidget *viewport = gtk_viewport_new(NULL, NULL); + gtk_container_add(GTK_CONTAINER(viewport), box); + gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(viewport)); +} + /*! Does this GtkContainer contain that object? \param GtkContainer The Container that has to be searched for the @@ -318,6 +289,8 @@ void wh_set_image_on_button(GtkButton *button, GtkWidget *image) { + GtkImage *previous_image = GTK_IMAGE(gtk_button_get_image(button)); + if (previous_image != NULL && previous_image == GTK_IMAGE(image)) { return; } gtk_button_set_image(button, image); } @@ -338,21 +311,17 @@ G_CALLBACK(_wh_folder_changed_event), ui); } -/*!creates a cool button with image from stock - -\param label_text The text that has to be displayed on the button -\param stock_id The name of the stock image to be displayed on the - button -\param toggle_or_not TRUE means we create a toggle button -*/ -GtkWidget *wh_create_cool_button(gchar *stock_id, gchar *label_text, +GtkWidget *wh_create_cool_button(gchar *icon_name, gchar *label_text, gint toggle_or_not) { GtkWidget *box = wh_hbox_new(); gtk_container_set_border_width(GTK_CONTAINER(box), 0); - GtkWidget *image = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_MENU); - gtk_box_pack_start(GTK_BOX(box), image, FALSE, FALSE, 0); + if (icon_name != NULL) + { + GtkWidget *image = gtk_image_new_from_icon_name(icon_name, GTK_ICON_SIZE_MENU); + gtk_box_pack_start(GTK_BOX(box), image, FALSE, FALSE, 0); + } if (label_text != NULL) { @@ -376,13 +345,16 @@ return button; } -GtkWidget *wh_create_cool_label(gchar *stock_id, gchar *label_text) +GtkWidget *wh_create_cool_label(gchar *icon_name, gchar *label_text) { GtkWidget *box = wh_hbox_new(); gtk_container_set_border_width(GTK_CONTAINER(box), 0); - GtkWidget *image = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_MENU); - gtk_box_pack_start(GTK_BOX(box), image, FALSE, FALSE, 0); + if (icon_name != NULL) + { + GtkWidget *image = gtk_image_new_from_icon_name(icon_name, GTK_ICON_SIZE_MENU); + gtk_box_pack_start(GTK_BOX(box), image, FALSE, FALSE, 0); + } if (label_text != NULL) { @@ -400,17 +372,18 @@ GtkWindowPosition position, GtkWindow *parent_window, GtkWidget *main_area_widget, GtkWidget *bottom_widget, ...) { - GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - g_signal_connect(G_OBJECT(window), "delete_event", - G_CALLBACK(gtk_widget_hide_on_delete), window); + GtkWidget *window = gtk_dialog_new(); + + g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(gtk_widget_hide_on_delete), window); gtk_window_set_title(GTK_WINDOW(window), title); gtk_window_set_destroy_with_parent(GTK_WINDOW(window), TRUE); gtk_window_set_default_size(GTK_WINDOW(window), width, height); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); GtkWidget *vbox = wh_vbox_new(); - gtk_container_set_border_width(GTK_CONTAINER(vbox), 4); - gtk_container_add(GTK_CONTAINER(window), vbox); + + GtkContainer *dialog_container = GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(window))); + gtk_box_pack_start(GTK_BOX(dialog_container), vbox, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), main_area_widget, TRUE, TRUE, 2); GtkWidget *bottom_hbox = wh_hbox_new(); @@ -425,7 +398,7 @@ } va_end(ap); - GtkWidget *close_button = wh_create_cool_button(GTK_STOCK_CLOSE, _("_Close"), FALSE); + GtkWidget *close_button = wh_create_cool_button("window-close", _("_Close"), FALSE); gtk_box_pack_end(GTK_BOX(bottom_hbox), close_button, FALSE, FALSE, 3); g_signal_connect(G_OBJECT(close_button), "clicked", G_CALLBACK(hide_window_from_button), window); @@ -452,35 +425,11 @@ static guint _wh_add_row_to_table(GtkWidget *table) { -#if GTK_MAJOR_VERSION >= 3 int number_of_rows = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(table), "rows")); number_of_rows++; g_object_set_data(G_OBJECT(table), "rows", GINT_TO_POINTER(number_of_rows)); gtk_grid_insert_row(GTK_GRID(table), number_of_rows); return number_of_rows; -#else - guint rows; - guint columns; - - g_object_get(G_OBJECT(table), - "n-rows", &rows, - "n-columns", &columns, - NULL); - - guint new_rows = rows + 1; - - gtk_table_resize(GTK_TABLE(table), new_rows, columns); - gtk_table_set_row_spacing(GTK_TABLE(table), new_rows - 1, 4); - - return new_rows; -#endif -} - -static GtkWidget *_wh_put_in_new_hbox_with_margin(GtkWidget *widget, gint margin) -{ - GtkWidget *hbox = wh_hbox_new(); - gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, margin); - return hbox; } static void _wh_add_in_table_with_label(GtkWidget *table, const gchar *label_text, @@ -501,18 +450,11 @@ GtkWidget *my_widget = widget; GtkWidget *hbox; -#if GTK_MAJOR_VERSION >= 3 gtk_widget_set_halign(my_widget, GTK_ALIGN_FILL); -#else - GtkAttachOptions xoptions = GTK_FILL; -#endif + if (expand) { -#if GTK_MAJOR_VERSION >= 3 gtk_widget_set_hexpand(my_widget, TRUE); -#else - xoptions |= GTK_EXPAND; -#endif } else { @@ -521,13 +463,6 @@ my_widget = hbox; } -#if GTK_MAJOR_VERSION >= 3 gtk_grid_attach(GTK_GRID(table), my_widget, start_column, row - 1, end_column - start_column, 1); -#else - gtk_table_attach(GTK_TABLE(table), my_widget, - start_column, end_column, row-1, row, - xoptions, GTK_FILL | GTK_EXPAND, - 0, 0); -#endif } diff -Nru mp3splt-gtk-0.9/src/widgets_helper.h mp3splt-gtk-0.9.2/src/widgets_helper.h --- mp3splt-gtk-0.9/src/widgets_helper.h 2013-02-08 09:26:02.000000000 +0000 +++ mp3splt-gtk-0.9.2/src/widgets_helper.h 2014-05-10 14:49:04.000000000 +0000 @@ -3,7 +3,7 @@ * mp3splt-gtk -- utility based on mp3splt, * for mp3/ogg splitting without decoding * - * Copyright: (C) 2005-2013 Alexandru Munteanu + * Copyright: (C) 2005-2014 Alexandru Munteanu * Contact: m@ioalex.net * * http://mp3splt.sourceforge.net/ @@ -39,9 +39,12 @@ void wh_put_in_hbox_and_attach_to_vbox(GtkWidget *widget, GtkWidget *vbox, gint vertical_margin); GtkWidget *wh_put_in_new_hbox_with_margin_level(GtkWidget *widget, gint margin_level); +GtkWidget *wh_put_in_new_hbox(GtkWidget *widget, gint margin, gboolean expand, gboolean fill); void wh_put_in_hbox_and_attach_to_vbox_with_bottom_margin(GtkWidget *widget, GtkWidget *vbox, gint vertical_margin, gint bottom_margin); +void wh_add_box_to_scrolled_window(GtkWidget *box, GtkWidget *scrolled_window); + GtkWidget *wh_new_table(); void wh_add_in_table(GtkWidget *table, GtkWidget *widget); void wh_add_in_table_with_label(GtkWidget *table, const gchar *label_text, diff -Nru mp3splt-gtk-0.9/test/Makefile.in mp3splt-gtk-0.9.2/test/Makefile.in --- mp3splt-gtk-0.9/test/Makefile.in 2013-07-20 07:11:30.000000000 +0000 +++ mp3splt-gtk-0.9.2/test/Makefile.in 2014-11-09 16:50:34.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -423,8 +423,6 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -FAKE_GTK_CFLAGS = @FAKE_GTK_CFLAGS@ -FAKE_GTK_LIBS = @FAKE_GTK_LIBS@ FGREP = @FGREP@ GMSGFMT = @GMSGFMT@ GRAPHVIZ = @GRAPHVIZ@ @@ -632,14 +630,14 @@ @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<